@hominis/fireforge 0.45.0 → 0.46.1
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 +409 -446
- package/dist/bin/fireforge.d.ts +1 -1
- package/dist/bin/fireforge.js +21 -15
- package/dist/build-info.json +4 -4
- package/dist/src/cli-usage-error.d.ts +46 -0
- package/dist/src/cli-usage-error.js +81 -0
- package/dist/src/cli.d.ts +7 -2
- package/dist/src/cli.js +47 -47
- package/dist/src/commands/bootstrap-checks.js +2 -1
- package/dist/src/commands/bootstrap.js +3 -4
- package/dist/src/commands/build.js +27 -17
- package/dist/src/commands/config.js +9 -9
- package/dist/src/commands/destructive-decision.d.ts +19 -0
- package/dist/src/commands/destructive-decision.js +31 -0
- package/dist/src/commands/discard.js +5 -5
- package/dist/src/commands/doctor-check-core.d.ts +4 -10
- package/dist/src/commands/doctor-check-core.js +0 -8
- package/dist/src/commands/doctor-external-toolchains.js +2 -2
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +2 -2
- package/dist/src/commands/doctor-furnace-config-sync.js +20 -20
- package/dist/src/commands/doctor-furnace-jar.d.ts +1 -1
- package/dist/src/commands/doctor-furnace-jar.js +1 -1
- package/dist/src/commands/doctor-furnace.js +22 -22
- package/dist/src/commands/doctor-orphaned-harness.d.ts +10 -17
- package/dist/src/commands/doctor-orphaned-harness.js +14 -23
- package/dist/src/commands/doctor-patch-manifest.d.ts +2 -1
- package/dist/src/commands/doctor-patch-manifest.js +7 -6
- package/dist/src/commands/doctor-post-rebase-audit.js +3 -3
- package/dist/src/commands/doctor-source-pin.d.ts +12 -12
- package/dist/src/commands/doctor-source-pin.js +14 -14
- package/dist/src/commands/doctor-working-tree.d.ts +3 -3
- package/dist/src/commands/doctor-working-tree.js +3 -3
- package/dist/src/commands/doctor.d.ts +3 -1
- package/dist/src/commands/doctor.js +15 -16
- package/dist/src/commands/download.js +50 -37
- package/dist/src/commands/export-all.js +29 -12
- package/dist/src/commands/export-flow.d.ts +5 -5
- package/dist/src/commands/export-flow.js +29 -59
- package/dist/src/commands/export-placement-conflicts.d.ts +3 -3
- package/dist/src/commands/export-placement-conflicts.js +12 -12
- package/dist/src/commands/export-placement-gate.d.ts +2 -2
- package/dist/src/commands/export-placement-gate.js +7 -13
- package/dist/src/commands/export-placement-policy.d.ts +1 -1
- package/dist/src/commands/export-placement-policy.js +4 -6
- package/dist/src/commands/export-shared.d.ts +51 -32
- package/dist/src/commands/export-shared.js +17 -32
- package/dist/src/commands/export.js +14 -5
- package/dist/src/commands/furnace/apply.js +16 -16
- package/dist/src/commands/furnace/authoring-config.d.ts +13 -0
- package/dist/src/commands/furnace/authoring-config.js +19 -0
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +1 -1
- package/dist/src/commands/furnace/chrome-doc-remove.js +2 -2
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +14 -14
- package/dist/src/commands/furnace/chrome-doc-templates.js +17 -17
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +2 -2
- package/dist/src/commands/furnace/chrome-doc-tests.js +4 -4
- package/dist/src/commands/furnace/chrome-doc.d.ts +8 -8
- package/dist/src/commands/furnace/chrome-doc.js +18 -18
- package/dist/src/commands/furnace/create-browser-test.d.ts +1 -1
- package/dist/src/commands/furnace/create-browser-test.js +7 -12
- package/dist/src/commands/furnace/create-dry-run.d.ts +4 -4
- package/dist/src/commands/furnace/create-dry-run.js +6 -9
- package/dist/src/commands/furnace/create-features.d.ts +2 -2
- package/dist/src/commands/furnace/create-features.js +2 -2
- package/dist/src/commands/furnace/create-mochikit.d.ts +4 -4
- package/dist/src/commands/furnace/create-mochikit.js +7 -7
- package/dist/src/commands/furnace/create-templates.d.ts +31 -15
- package/dist/src/commands/furnace/create-templates.js +20 -19
- package/dist/src/commands/furnace/create-xpcshell.d.ts +5 -5
- package/dist/src/commands/furnace/create-xpcshell.js +8 -8
- package/dist/src/commands/furnace/create.d.ts +1 -1
- package/dist/src/commands/furnace/create.js +35 -29
- package/dist/src/commands/furnace/deploy.js +15 -6
- package/dist/src/commands/furnace/diff.js +7 -7
- package/dist/src/commands/furnace/index.js +1 -1
- package/dist/src/commands/furnace/init.js +17 -16
- package/dist/src/commands/furnace/list.js +2 -2
- package/dist/src/commands/furnace/override.d.ts +1 -1
- package/dist/src/commands/furnace/override.js +43 -34
- package/dist/src/commands/furnace/preview.js +17 -17
- package/dist/src/commands/furnace/refresh.js +15 -7
- package/dist/src/commands/furnace/remove-mutations.d.ts +9 -10
- package/dist/src/commands/furnace/remove-mutations.js +19 -19
- package/dist/src/commands/furnace/remove-state.d.ts +1 -1
- package/dist/src/commands/furnace/remove-state.js +1 -1
- package/dist/src/commands/furnace/remove.js +4 -8
- package/dist/src/commands/furnace/rename-browser-test.js +10 -15
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +2 -2
- package/dist/src/commands/furnace/rename-xpcshell.js +3 -3
- package/dist/src/commands/furnace/rename.js +36 -36
- package/dist/src/commands/furnace/scan.js +3 -3
- package/dist/src/commands/furnace/status.js +19 -16
- package/dist/src/commands/furnace/sync.js +6 -6
- package/dist/src/commands/furnace/test-file-name.d.ts +28 -0
- package/dist/src/commands/furnace/test-file-name.js +39 -0
- package/dist/src/commands/furnace/validate.js +11 -12
- package/dist/src/commands/furnace/validation-output.d.ts +21 -9
- package/dist/src/commands/furnace/validation-output.js +3 -8
- package/dist/src/commands/import.js +22 -29
- package/dist/src/commands/lint-per-patch.d.ts +2 -2
- package/dist/src/commands/lint-per-patch.js +27 -12
- package/dist/src/commands/lint-per-run-checkjs.d.ts +14 -15
- package/dist/src/commands/lint-per-run-checkjs.js +14 -15
- package/dist/src/commands/lint-report.d.ts +3 -3
- package/dist/src/commands/lint-report.js +4 -4
- package/dist/src/commands/lint.d.ts +5 -4
- package/dist/src/commands/lint.js +36 -36
- package/dist/src/commands/manifest.d.ts +4 -4
- package/dist/src/commands/manifest.js +1 -1
- package/dist/src/commands/package.js +4 -6
- package/dist/src/commands/patch/compact.d.ts +2 -2
- package/dist/src/commands/patch/compact.js +19 -20
- package/dist/src/commands/patch/delete.d.ts +1 -1
- package/dist/src/commands/patch/delete.js +23 -33
- package/dist/src/commands/patch/entry-projection.d.ts +13 -0
- package/dist/src/commands/patch/entry-projection.js +24 -0
- package/dist/src/commands/patch/lint-ignore.d.ts +3 -12
- package/dist/src/commands/patch/lint-ignore.js +33 -44
- package/dist/src/commands/patch/move-files-create.d.ts +2 -2
- package/dist/src/commands/patch/move-files-create.js +29 -15
- package/dist/src/commands/patch/move-files-into.d.ts +2 -2
- package/dist/src/commands/patch/move-files-into.js +41 -37
- package/dist/src/commands/patch/move-files.js +5 -14
- package/dist/src/commands/patch/patch-context.d.ts +1 -1
- package/dist/src/commands/patch/rename.d.ts +4 -4
- package/dist/src/commands/patch/rename.js +35 -49
- package/dist/src/commands/patch/reorder.js +35 -48
- package/dist/src/commands/patch/split-plan.d.ts +7 -8
- package/dist/src/commands/patch/split-plan.js +10 -13
- package/dist/src/commands/patch/split.d.ts +2 -2
- package/dist/src/commands/patch/split.js +50 -48
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +1 -1
- package/dist/src/commands/patch/staged-dependency-validate.js +3 -3
- package/dist/src/commands/patch/staged-dependency.d.ts +1 -1
- package/dist/src/commands/patch/staged-dependency.js +22 -28
- package/dist/src/commands/patch/tier.d.ts +2 -2
- package/dist/src/commands/patch/tier.js +20 -30
- package/dist/src/commands/patch-rename-map.d.ts +19 -0
- package/dist/src/commands/patch-rename-map.js +36 -0
- package/dist/src/commands/pending-resolution.d.ts +15 -0
- package/dist/src/commands/pending-resolution.js +25 -0
- package/dist/src/commands/re-export-adjacent.d.ts +25 -3
- package/dist/src/commands/re-export-adjacent.js +40 -24
- package/dist/src/commands/re-export-bulk-scan.d.ts +3 -3
- package/dist/src/commands/re-export-bulk-scan.js +23 -27
- package/dist/src/commands/re-export-drift.d.ts +10 -10
- package/dist/src/commands/re-export-drift.js +33 -33
- package/dist/src/commands/re-export-files.d.ts +2 -3
- package/dist/src/commands/re-export-files.js +52 -44
- package/dist/src/commands/re-export-lint.d.ts +29 -30
- package/dist/src/commands/re-export-lint.js +36 -29
- package/dist/src/commands/re-export-options.d.ts +1 -1
- package/dist/src/commands/re-export-options.js +1 -1
- package/dist/src/commands/re-export-register.d.ts +1 -1
- package/dist/src/commands/re-export-register.js +1 -1
- package/dist/src/commands/re-export-scan.d.ts +1 -1
- package/dist/src/commands/re-export-scan.js +12 -9
- package/dist/src/commands/re-export-single.d.ts +23 -4
- package/dist/src/commands/re-export-single.js +39 -31
- package/dist/src/commands/re-export.js +35 -17
- package/dist/src/commands/rebase/abort.js +9 -14
- package/dist/src/commands/rebase/continue.js +20 -19
- package/dist/src/commands/rebase/index.d.ts +1 -1
- package/dist/src/commands/rebase/index.js +5 -5
- package/dist/src/commands/rebase/patch-loop.d.ts +2 -2
- package/dist/src/commands/rebase/patch-loop.js +20 -24
- package/dist/src/commands/register.js +5 -5
- package/dist/src/commands/reset.js +1 -1
- package/dist/src/commands/resolve.d.ts +2 -2
- package/dist/src/commands/resolve.js +21 -13
- package/dist/src/commands/run.d.ts +0 -13
- package/dist/src/commands/run.js +38 -51
- package/dist/src/commands/setup-support.d.ts +16 -4
- package/dist/src/commands/setup-support.js +20 -20
- package/dist/src/commands/setup.js +4 -10
- package/dist/src/commands/source.js +9 -2
- package/dist/src/commands/status-check.d.ts +3 -3
- package/dist/src/commands/status-check.js +6 -6
- package/dist/src/commands/status-json.d.ts +14 -13
- package/dist/src/commands/status-json.js +9 -8
- package/dist/src/commands/status-output.d.ts +3 -3
- package/dist/src/commands/status-output.js +5 -5
- package/dist/src/commands/status-ownership.d.ts +3 -3
- package/dist/src/commands/status-ownership.js +3 -3
- package/dist/src/commands/status.js +25 -26
- package/dist/src/commands/test-build-phase.d.ts +3 -3
- package/dist/src/commands/test-build-phase.js +48 -24
- package/dist/src/commands/test-diagnose.d.ts +1 -1
- package/dist/src/commands/test-diagnose.js +20 -20
- package/dist/src/commands/test-modes.d.ts +4 -4
- package/dist/src/commands/test-modes.js +4 -5
- package/dist/src/commands/test-register.js +5 -3
- package/dist/src/commands/test-run.d.ts +11 -11
- package/dist/src/commands/test-run.js +40 -33
- package/dist/src/commands/test-stale-gate.d.ts +12 -12
- package/dist/src/commands/test-stale-gate.js +17 -17
- package/dist/src/commands/test-verdict.d.ts +19 -5
- package/dist/src/commands/test-verdict.js +26 -11
- package/dist/src/commands/test.d.ts +3 -3
- package/dist/src/commands/test.js +73 -36
- package/dist/src/commands/token-coverage.js +3 -3
- package/dist/src/commands/token-list.d.ts +26 -0
- package/dist/src/commands/token-list.js +153 -0
- package/dist/src/commands/token.js +26 -10
- package/dist/src/commands/tree.js +26 -21
- package/dist/src/commands/typecheck.d.ts +6 -6
- package/dist/src/commands/typecheck.js +16 -16
- package/dist/src/commands/verify.d.ts +3 -3
- package/dist/src/commands/verify.js +10 -10
- package/dist/src/commands/watch.js +11 -11
- package/dist/src/commands/wire.js +17 -16
- package/dist/src/core/ast-utils.d.ts +7 -7
- package/dist/src/core/ast-utils.js +8 -8
- package/dist/src/core/branding.d.ts +5 -12
- package/dist/src/core/branding.js +6 -5
- package/dist/src/core/browser-wire.d.ts +1 -1
- package/dist/src/core/browser-wire.js +10 -7
- package/dist/src/core/build-audit-platform.d.ts +32 -3
- package/dist/src/core/build-audit-platform.js +153 -13
- package/dist/src/core/build-audit-registration.d.ts +5 -5
- package/dist/src/core/build-audit-registration.js +10 -9
- package/dist/src/core/build-audit-resolve.d.ts +5 -5
- package/dist/src/core/build-audit-resolve.js +6 -6
- package/dist/src/core/build-audit-skip.d.ts +57 -0
- package/dist/src/core/build-audit-skip.js +112 -0
- package/dist/src/core/build-audit-transforms.d.ts +2 -2
- package/dist/src/core/build-audit-transforms.js +3 -3
- package/dist/src/core/build-audit.d.ts +21 -8
- package/dist/src/core/build-audit.js +142 -40
- package/dist/src/core/build-baseline-types.d.ts +19 -18
- package/dist/src/core/build-baseline-types.js +1 -1
- package/dist/src/core/build-baseline.d.ts +48 -31
- package/dist/src/core/build-baseline.js +20 -43
- package/dist/src/core/build-jar-escalation.d.ts +8 -8
- package/dist/src/core/build-jar-escalation.js +18 -17
- package/dist/src/core/build-overwrite-guard.d.ts +4 -4
- package/dist/src/core/build-overwrite-guard.js +14 -14
- package/dist/src/core/build-prepare.d.ts +4 -12
- package/dist/src/core/build-prepare.js +22 -26
- package/dist/src/core/config-mutate.js +4 -4
- package/dist/src/core/config-paths.d.ts +2 -6
- package/dist/src/core/config-paths.js +4 -2
- package/dist/src/core/config-state.d.ts +0 -6
- package/dist/src/core/config-state.js +3 -21
- package/dist/src/core/config-validate-build-audit.d.ts +8 -0
- package/dist/src/core/config-validate-build-audit.js +80 -0
- package/dist/src/core/config-validate-file-size.d.ts +1 -1
- package/dist/src/core/config-validate-file-size.js +3 -3
- package/dist/src/core/config-validate-patch-policy.d.ts +2 -2
- package/dist/src/core/config-validate-patch-policy.js +3 -3
- package/dist/src/core/config-validate-test-toolchains.d.ts +2 -2
- package/dist/src/core/config-validate-test-toolchains.js +4 -5
- package/dist/src/core/config-validate.js +22 -12
- package/dist/src/core/config.d.ts +12 -12
- package/dist/src/core/config.js +21 -25
- package/dist/src/core/coverage-extend.d.ts +16 -16
- package/dist/src/core/coverage-extend.js +20 -20
- package/dist/src/core/destructive.d.ts +14 -14
- package/dist/src/core/destructive.js +9 -9
- package/dist/src/core/diff-hunks.d.ts +2 -2
- package/dist/src/core/diff-hunks.js +7 -7
- package/dist/src/core/discard-baseline.d.ts +10 -10
- package/dist/src/core/discard-baseline.js +22 -23
- package/dist/src/core/display-state.d.ts +11 -11
- package/dist/src/core/display-state.js +12 -12
- package/dist/src/core/engine-changes.d.ts +2 -2
- package/dist/src/core/engine-changes.js +2 -2
- package/dist/src/core/engine-precondition.d.ts +5 -13
- package/dist/src/core/engine-precondition.js +5 -10
- package/dist/src/core/engine-session-lock.d.ts +18 -18
- package/dist/src/core/engine-session-lock.js +50 -54
- package/dist/src/core/export-moved-code-shape.d.ts +7 -7
- package/dist/src/core/export-moved-code-shape.js +10 -10
- package/dist/src/core/file-lock-owner.d.ts +103 -0
- package/dist/src/core/file-lock-owner.js +259 -0
- package/dist/src/core/file-lock.d.ts +14 -19
- package/dist/src/core/file-lock.js +90 -128
- package/dist/src/core/firefox-cache.d.ts +13 -1
- package/dist/src/core/firefox-cache.js +61 -36
- package/dist/src/core/firefox-download.d.ts +15 -0
- package/dist/src/core/firefox-download.js +38 -22
- package/dist/src/core/firefox-extract.d.ts +8 -7
- package/dist/src/core/firefox-extract.js +45 -27
- package/dist/src/core/firefox.d.ts +34 -36
- package/dist/src/core/firefox.js +13 -44
- package/dist/src/core/furnace-apply-dry-run.d.ts +1 -6
- package/dist/src/core/furnace-apply-dry-run.js +2 -8
- package/dist/src/core/furnace-apply-ftl.d.ts +5 -5
- package/dist/src/core/furnace-apply-ftl.js +8 -8
- package/dist/src/core/furnace-apply-helpers.d.ts +9 -20
- package/dist/src/core/furnace-apply-helpers.js +28 -39
- package/dist/src/core/furnace-apply-output.js +1 -1
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +9 -9
- package/dist/src/core/furnace-apply-overwrite-warn.js +13 -11
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +1 -1
- package/dist/src/core/furnace-apply-undeploy-actions.js +1 -1
- package/dist/src/core/furnace-apply.d.ts +4 -4
- package/dist/src/core/furnace-apply.js +50 -29
- package/dist/src/core/furnace-checksum-utils.d.ts +5 -5
- package/dist/src/core/furnace-checksum-utils.js +5 -5
- package/dist/src/core/furnace-config-custom.d.ts +1 -1
- package/dist/src/core/furnace-config-custom.js +2 -2
- package/dist/src/core/furnace-config-order.js +1 -1
- package/dist/src/core/furnace-config-tokens.d.ts +3 -3
- package/dist/src/core/furnace-config-tokens.js +3 -3
- package/dist/src/core/furnace-config-validate.js +2 -2
- package/dist/src/core/furnace-config.d.ts +5 -5
- package/dist/src/core/furnace-config.js +40 -53
- package/dist/src/core/furnace-constants.d.ts +6 -6
- package/dist/src/core/furnace-constants.js +9 -8
- package/dist/src/core/furnace-css-fragments.d.ts +6 -6
- package/dist/src/core/furnace-css-fragments.js +11 -11
- package/dist/src/core/furnace-dir-entry.d.ts +20 -0
- package/dist/src/core/furnace-dir-entry.js +21 -0
- package/dist/src/core/furnace-jsconfig.d.ts +7 -7
- package/dist/src/core/furnace-jsconfig.js +22 -20
- package/dist/src/core/furnace-operation.d.ts +22 -19
- package/dist/src/core/furnace-operation.js +38 -34
- package/dist/src/core/furnace-precondition.d.ts +10 -10
- package/dist/src/core/furnace-precondition.js +8 -8
- package/dist/src/core/furnace-refresh.d.ts +18 -6
- package/dist/src/core/furnace-refresh.js +5 -8
- package/dist/src/core/furnace-registration-ast.d.ts +2 -3
- package/dist/src/core/furnace-registration-ast.js +9 -12
- package/dist/src/core/furnace-registration-remove.d.ts +4 -4
- package/dist/src/core/furnace-registration-remove.js +6 -6
- package/dist/src/core/furnace-registration-validate.d.ts +2 -2
- package/dist/src/core/furnace-registration-validate.js +2 -2
- package/dist/src/core/furnace-registration.d.ts +7 -6
- package/dist/src/core/furnace-registration.js +29 -36
- package/dist/src/core/furnace-rollback.d.ts +1 -1
- package/dist/src/core/furnace-rollback.js +5 -5
- package/dist/src/core/furnace-scanner.js +3 -6
- package/dist/src/core/furnace-stale-export.d.ts +17 -16
- package/dist/src/core/furnace-stale-export.js +16 -15
- package/dist/src/core/furnace-staleness.d.ts +2 -2
- package/dist/src/core/furnace-staleness.js +2 -2
- package/dist/src/core/furnace-state-persist.d.ts +12 -12
- package/dist/src/core/furnace-state-persist.js +10 -10
- package/dist/src/core/furnace-step-errors.d.ts +6 -6
- package/dist/src/core/furnace-step-errors.js +6 -6
- package/dist/src/core/furnace-validate-accessibility.js +14 -14
- package/dist/src/core/furnace-validate-compatibility.js +9 -9
- package/dist/src/core/furnace-validate-registration.d.ts +2 -2
- package/dist/src/core/furnace-validate-registration.js +18 -20
- package/dist/src/core/furnace-validate-structure.d.ts +1 -1
- package/dist/src/core/furnace-validate-structure.js +4 -4
- package/dist/src/core/furnace-validate.js +9 -9
- package/dist/src/core/furnace-version-drift.d.ts +5 -5
- package/dist/src/core/furnace-version-drift.js +5 -5
- package/dist/src/core/git-base.d.ts +6 -4
- package/dist/src/core/git-base.js +29 -7
- package/dist/src/core/git-diff-new-file.d.ts +40 -0
- package/dist/src/core/git-diff-new-file.js +119 -0
- package/dist/src/core/git-diff.d.ts +13 -13
- package/dist/src/core/git-diff.js +121 -189
- package/dist/src/core/git-file-ops.d.ts +6 -13
- package/dist/src/core/git-file-ops.js +11 -35
- package/dist/src/core/git-readonly-index.d.ts +12 -14
- package/dist/src/core/git-readonly-index.js +12 -16
- package/dist/src/core/git-status.d.ts +9 -2
- package/dist/src/core/git-status.js +23 -11
- package/dist/src/core/git.d.ts +3 -9
- package/dist/src/core/git.js +28 -57
- package/dist/src/core/harness-orphans.d.ts +17 -17
- package/dist/src/core/harness-orphans.js +28 -27
- package/dist/src/core/history-log.d.ts +19 -0
- package/dist/src/core/history-log.js +29 -0
- package/dist/src/core/license-headers.d.ts +19 -18
- package/dist/src/core/license-headers.js +29 -28
- package/dist/src/core/mach-build-artifacts.d.ts +21 -21
- package/dist/src/core/mach-build-artifacts.js +23 -23
- package/dist/src/core/mach-error-hints.d.ts +5 -10
- package/dist/src/core/mach-error-hints.js +14 -14
- package/dist/src/core/mach-known-noise-filter.d.ts +42 -38
- package/dist/src/core/mach-known-noise-filter.js +57 -56
- package/dist/src/core/mach-mozconfig.d.ts +6 -6
- package/dist/src/core/mach-mozconfig.js +17 -16
- package/dist/src/core/mach-python.d.ts +3 -0
- package/dist/src/core/mach-python.js +13 -7
- package/dist/src/core/mach-resource-shim.d.ts +24 -12
- package/dist/src/core/mach-resource-shim.js +124 -21
- package/dist/src/core/mach.d.ts +59 -73
- package/dist/src/core/mach.js +47 -115
- package/dist/src/core/marionette-port.d.ts +15 -30
- package/dist/src/core/marionette-port.js +46 -89
- package/dist/src/core/marionette-preflight.d.ts +6 -6
- package/dist/src/core/marionette-preflight.js +32 -50
- package/dist/src/core/markdown-table.d.ts +9 -9
- package/dist/src/core/markdown-table.js +14 -14
- package/dist/src/core/mochitest-server-port.d.ts +8 -8
- package/dist/src/core/mochitest-server-port.js +17 -17
- package/dist/src/core/module-resolution-preflight.d.ts +8 -8
- package/dist/src/core/module-resolution-preflight.js +11 -11
- package/dist/src/core/moz-manifest-helpers.d.ts +7 -7
- package/dist/src/core/moz-manifest-helpers.js +7 -7
- package/dist/src/core/moz-manifest-register.d.ts +1 -1
- package/dist/src/core/moz-manifest-register.js +2 -2
- package/dist/src/core/moz-manifest-rules.js +46 -42
- package/dist/src/core/moz-manifest-tokenizers.js +1 -1
- package/dist/src/core/ownership-table.d.ts +5 -5
- package/dist/src/core/ownership-table.js +7 -7
- package/dist/src/core/parser-fallback.d.ts +3 -3
- package/dist/src/core/parser-fallback.js +3 -3
- package/dist/src/core/patch-apply-fuzz.d.ts +5 -5
- package/dist/src/core/patch-apply-fuzz.js +13 -13
- package/dist/src/core/patch-apply.d.ts +13 -14
- package/dist/src/core/patch-apply.js +36 -42
- package/dist/src/core/patch-export-coverage.d.ts +0 -9
- package/dist/src/core/patch-export-coverage.js +1 -30
- package/dist/src/core/patch-export-update.d.ts +21 -4
- package/dist/src/core/patch-export-update.js +7 -6
- package/dist/src/core/patch-export.d.ts +20 -30
- package/dist/src/core/patch-export.js +55 -77
- package/dist/src/core/patch-files.d.ts +0 -4
- package/dist/src/core/patch-files.js +0 -11
- package/dist/src/core/patch-identifier-suggest.d.ts +1 -1
- package/dist/src/core/patch-identifier-suggest.js +4 -4
- package/dist/src/core/patch-lint-binary.d.ts +12 -18
- package/dist/src/core/patch-lint-cache.d.ts +18 -2
- package/dist/src/core/patch-lint-cache.js +16 -19
- package/dist/src/core/patch-lint-checkjs.d.ts +55 -38
- package/dist/src/core/patch-lint-checkjs.js +78 -64
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +8 -9
- package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -11
- package/dist/src/core/patch-lint-creators.d.ts +5 -9
- package/dist/src/core/patch-lint-creators.js +3 -3
- package/dist/src/core/patch-lint-cross.d.ts +27 -19
- package/dist/src/core/patch-lint-cross.js +67 -110
- package/dist/src/core/patch-lint-css.d.ts +1 -1
- package/dist/src/core/patch-lint-css.js +15 -11
- package/dist/src/core/patch-lint-diff-tag.d.ts +5 -5
- package/dist/src/core/patch-lint-diff-tag.js +5 -5
- package/dist/src/core/patch-lint-diff.d.ts +4 -4
- package/dist/src/core/patch-lint-diff.js +4 -4
- package/dist/src/core/patch-lint-file-size.d.ts +3 -3
- package/dist/src/core/patch-lint-file-size.js +6 -6
- package/dist/src/core/patch-lint-forward-registration.d.ts +58 -0
- package/dist/src/core/patch-lint-forward-registration.js +210 -0
- package/dist/src/core/patch-lint-jsdoc.d.ts +2 -2
- package/dist/src/core/patch-lint-jsdoc.js +46 -46
- package/dist/src/core/patch-lint-module-registration.d.ts +3 -9
- package/dist/src/core/patch-lint-module-registration.js +1 -1
- package/dist/src/core/patch-lint-mozbuild.d.ts +1 -1
- package/dist/src/core/patch-lint-mozbuild.js +10 -10
- package/dist/src/core/patch-lint-observer.d.ts +3 -3
- package/dist/src/core/patch-lint-observer.js +7 -7
- package/dist/src/core/patch-lint-ownership.d.ts +6 -6
- package/dist/src/core/patch-lint-ownership.js +6 -6
- package/dist/src/core/patch-lint-prettier.d.ts +6 -6
- package/dist/src/core/patch-lint-prettier.js +7 -7
- package/dist/src/core/patch-lint-queue-types.d.ts +60 -0
- package/dist/src/core/patch-lint-queue-types.js +12 -0
- package/dist/src/core/patch-lint-staged-registration.d.ts +61 -0
- package/dist/src/core/patch-lint-staged-registration.js +90 -0
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +23 -23
- package/dist/src/core/patch-lint-unmanaged-companion.js +26 -26
- package/dist/src/core/patch-lint.d.ts +41 -35
- package/dist/src/core/patch-lint.js +52 -49
- package/dist/src/core/patch-lock.d.ts +1 -1
- package/dist/src/core/patch-lock.js +11 -11
- package/dist/src/core/patch-manifest-consistency.d.ts +7 -7
- package/dist/src/core/patch-manifest-consistency.js +16 -17
- package/dist/src/core/patch-manifest-files-affected.d.ts +1 -1
- package/dist/src/core/patch-manifest-files-affected.js +3 -3
- package/dist/src/core/patch-manifest-io.d.ts +14 -14
- package/dist/src/core/patch-manifest-io.js +35 -34
- package/dist/src/core/patch-manifest-query.d.ts +1 -1
- package/dist/src/core/patch-manifest-query.js +4 -4
- package/dist/src/core/patch-manifest-resolve.d.ts +5 -5
- package/dist/src/core/patch-manifest-resolve.js +7 -7
- package/dist/src/core/patch-manifest-validate.js +3 -3
- package/dist/src/core/patch-manifest.d.ts +2 -2
- package/dist/src/core/patch-manifest.js +2 -2
- package/dist/src/core/patch-parse.d.ts +32 -21
- package/dist/src/core/patch-parse.js +40 -15
- package/dist/src/core/patch-policy.js +15 -27
- package/dist/src/core/patch-registration-refs.d.ts +4 -4
- package/dist/src/core/patch-registration-refs.js +7 -7
- package/dist/src/core/patch-source-metadata.d.ts +1 -3
- package/dist/src/core/patch-source-metadata.js +0 -4
- package/dist/src/core/patch-transform.d.ts +8 -16
- package/dist/src/core/patch-transform.js +13 -23
- package/dist/src/core/process-cpu-time.d.ts +1 -1
- package/dist/src/core/process-cpu-time.js +6 -6
- package/dist/src/core/rebase-session.d.ts +9 -15
- package/dist/src/core/rebase-session.js +13 -25
- package/dist/src/core/register-browser-content.js +3 -2
- package/dist/src/core/register-browser-test.js +2 -1
- package/dist/src/core/register-module.js +2 -1
- package/dist/src/core/register-result.d.ts +1 -1
- package/dist/src/core/register-result.js +1 -1
- package/dist/src/core/register-scaffold.d.ts +2 -2
- package/dist/src/core/register-scaffold.js +8 -7
- package/dist/src/core/register-shared-css.d.ts +3 -3
- package/dist/src/core/register-shared-css.js +6 -5
- package/dist/src/core/register-xpcshell-test.d.ts +2 -2
- package/dist/src/core/register-xpcshell-test.js +2 -2
- package/dist/src/core/run-log-redact.d.ts +38 -0
- package/dist/src/core/run-log-redact.js +69 -0
- package/dist/src/core/run-log.d.ts +21 -10
- package/dist/src/core/run-log.js +76 -27
- package/dist/src/core/shared-ftl.d.ts +2 -2
- package/dist/src/core/shared-ftl.js +6 -6
- package/dist/src/core/signal-critical.d.ts +2 -2
- package/dist/src/core/signal-critical.js +4 -6
- package/dist/src/core/smoke-patterns.d.ts +5 -6
- package/dist/src/core/smoke-patterns.js +15 -20
- package/dist/src/core/state-file.d.ts +15 -4
- package/dist/src/core/state-file.js +14 -1
- package/dist/src/core/status-binary.d.ts +8 -8
- package/dist/src/core/status-binary.js +12 -12
- package/dist/src/core/status-classify.d.ts +17 -17
- package/dist/src/core/status-classify.js +13 -12
- package/dist/src/core/test-changed-prefs.d.ts +12 -12
- package/dist/src/core/test-changed-prefs.js +40 -25
- package/dist/src/core/test-harness-crash.d.ts +39 -39
- package/dist/src/core/test-harness-crash.js +69 -69
- package/dist/src/core/test-harness-output.d.ts +7 -7
- package/dist/src/core/test-harness-output.js +7 -7
- package/dist/src/core/test-harness-verdict-notes.d.ts +13 -14
- package/dist/src/core/test-harness-verdict-notes.js +4 -4
- package/dist/src/core/test-path-scope.d.ts +8 -8
- package/dist/src/core/test-path-scope.js +11 -11
- package/dist/src/core/test-stale-check.d.ts +22 -23
- package/dist/src/core/test-stale-check.js +31 -30
- package/dist/src/core/test-stale-symlink.d.ts +1 -1
- package/dist/src/core/test-stale-symlink.js +1 -1
- package/dist/src/core/test-stall-triage.d.ts +9 -9
- package/dist/src/core/test-stall-triage.js +22 -22
- package/dist/src/core/test-xpcshell-retry.d.ts +26 -7
- package/dist/src/core/test-xpcshell-retry.js +14 -11
- package/dist/src/core/token-category.d.ts +35 -2
- package/dist/src/core/token-category.js +67 -58
- package/dist/src/core/token-coverage.js +4 -5
- package/dist/src/core/token-dark-mode.d.ts +9 -9
- package/dist/src/core/token-dark-mode.js +13 -25
- package/dist/src/core/token-docs.d.ts +1 -1
- package/dist/src/core/token-inventory.d.ts +56 -0
- package/dist/src/core/token-inventory.js +109 -0
- package/dist/src/core/token-manager.d.ts +4 -4
- package/dist/src/core/token-manager.js +22 -22
- package/dist/src/core/token-scaffold.d.ts +4 -4
- package/dist/src/core/token-scaffold.js +4 -4
- package/dist/src/core/token-variant.d.ts +14 -14
- package/dist/src/core/token-variant.js +52 -53
- package/dist/src/core/toolchain-preflight.d.ts +15 -15
- package/dist/src/core/toolchain-preflight.js +23 -23
- package/dist/src/core/tree-cow.d.ts +3 -5
- package/dist/src/core/tree-cow.js +8 -8
- package/dist/src/core/tree-guard.d.ts +3 -3
- package/dist/src/core/tree-guard.js +23 -23
- package/dist/src/core/tree-store.d.ts +15 -15
- package/dist/src/core/tree-store.js +39 -38
- package/dist/src/core/typecheck-shim.d.ts +16 -15
- package/dist/src/core/typecheck-shim.js +26 -25
- package/dist/src/core/typecheck.d.ts +12 -12
- package/dist/src/core/typecheck.js +33 -33
- package/dist/src/core/wire-destroy.d.ts +2 -2
- package/dist/src/core/wire-destroy.js +5 -5
- package/dist/src/core/wire-dom-fragment.d.ts +3 -3
- package/dist/src/core/wire-dom-fragment.js +12 -23
- package/dist/src/core/wire-init.d.ts +2 -2
- package/dist/src/core/wire-init.js +7 -7
- package/dist/src/core/wire-subscript.d.ts +1 -1
- package/dist/src/core/wire-subscript.js +3 -3
- package/dist/src/core/wire-utils.d.ts +9 -9
- package/dist/src/core/wire-utils.js +16 -28
- package/dist/src/core/xpcshell-appdir.d.ts +20 -20
- package/dist/src/core/xpcshell-appdir.js +28 -30
- package/dist/src/core/xpcshell-profile-dir.d.ts +3 -3
- package/dist/src/core/xpcshell-profile-dir.js +7 -7
- package/dist/src/errors/base.d.ts +69 -16
- package/dist/src/errors/base.js +95 -26
- package/dist/src/errors/build.d.ts +6 -6
- package/dist/src/errors/build.js +26 -34
- package/dist/src/errors/codes.d.ts +10 -10
- package/dist/src/errors/codes.js +10 -10
- package/dist/src/errors/config.d.ts +0 -14
- package/dist/src/errors/config.js +13 -34
- package/dist/src/errors/download.d.ts +13 -0
- package/dist/src/errors/download.js +53 -24
- package/dist/src/errors/furnace.d.ts +2 -2
- package/dist/src/errors/furnace.js +8 -9
- package/dist/src/errors/git.d.ts +9 -9
- package/dist/src/errors/git.js +21 -31
- package/dist/src/errors/patch.d.ts +3 -3
- package/dist/src/errors/patch.js +11 -13
- package/dist/src/errors/rebase.d.ts +1 -1
- package/dist/src/errors/rebase.js +8 -8
- package/dist/src/errors/run.d.ts +1 -1
- package/dist/src/errors/run.js +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.js +4 -4
- package/dist/src/types/commands/options.d.ts +155 -200
- package/dist/src/types/commands/patches.d.ts +19 -19
- package/dist/src/types/commands/project.d.ts +3 -3
- package/dist/src/types/config.d.ts +52 -19
- package/dist/src/types/furnace.d.ts +17 -17
- package/dist/src/types/index.d.ts +0 -1
- package/dist/src/types/json.d.ts +3 -3
- package/dist/src/types/json.js +2 -2
- package/dist/src/types/typecheck.d.ts +3 -3
- package/dist/src/utils/assert.d.ts +4 -16
- package/dist/src/utils/assert.js +7 -24
- package/dist/src/utils/build-info.d.ts +6 -6
- package/dist/src/utils/build-info.js +6 -6
- package/dist/src/utils/child-env.d.ts +7 -6
- package/dist/src/utils/child-env.js +5 -5
- package/dist/src/utils/concurrency.d.ts +2 -2
- package/dist/src/utils/concurrency.js +2 -2
- package/dist/src/utils/elapsed.js +10 -1
- package/dist/src/utils/errors.d.ts +8 -8
- package/dist/src/utils/errors.js +8 -8
- package/dist/src/utils/fs.d.ts +1 -1
- package/dist/src/utils/fs.js +15 -20
- package/dist/src/utils/hash.d.ts +12 -0
- package/dist/src/utils/hash.js +16 -0
- package/dist/src/utils/line-dispatch.d.ts +15 -0
- package/dist/src/utils/line-dispatch.js +48 -0
- package/dist/src/utils/logger.d.ts +4 -4
- package/dist/src/utils/logger.js +11 -11
- package/dist/src/utils/machine-output.js +2 -2
- package/dist/src/utils/options.d.ts +14 -20
- package/dist/src/utils/options.js +26 -27
- package/dist/src/utils/package-root.js +5 -14
- package/dist/src/utils/paths.d.ts +4 -4
- package/dist/src/utils/paths.js +4 -4
- package/dist/src/utils/platform.d.ts +0 -4
- package/dist/src/utils/process-group.d.ts +10 -9
- package/dist/src/utils/process-group.js +37 -36
- package/dist/src/utils/process.d.ts +70 -55
- package/dist/src/utils/process.js +129 -179
- package/dist/src/utils/ps-duration.d.ts +4 -4
- package/dist/src/utils/ps-duration.js +9 -9
- package/dist/src/utils/regex.d.ts +4 -4
- package/dist/src/utils/regex.js +7 -7
- package/dist/src/utils/sleep.d.ts +26 -0
- package/dist/src/utils/sleep.js +31 -0
- package/dist/src/utils/stdio-drain.d.ts +7 -7
- package/dist/src/utils/stdio-drain.js +8 -8
- package/dist/src/utils/validation.d.ts +12 -49
- package/dist/src/utils/validation.js +26 -36
- package/docs/README.md +2 -2
- package/docs/configuration.md +163 -69
- package/docs/exit-codes.md +66 -49
- package/docs/furnace.md +20 -19
- package/docs/lifecycle-invariants.md +414 -247
- package/docs/machine-output.md +58 -34
- package/docs/patch-workflow.md +48 -44
- package/docs/run-logs.md +72 -28
- package/docs/testing.md +105 -98
- package/docs/verification-trees.md +23 -22
- package/package.json +7 -6
- package/dist/src/commands/rebase.d.ts +0 -4
- package/dist/src/commands/rebase.js +0 -5
- package/dist/src/core/patch-artifact-normalize.d.ts +0 -21
- package/dist/src/core/patch-artifact-normalize.js +0 -24
- package/dist/src/core/patch-lint-reexports.d.ts +0 -7
- package/dist/src/core/patch-lint-reexports.js +0 -8
- package/dist/src/core/wire-targets.d.ts +0 -7
- package/dist/src/core/wire-targets.js +0 -8
|
@@ -3,6 +3,61 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { FirefoxProduct, ProjectLicense } from '../config.js';
|
|
5
5
|
import type { PatchCategory } from './patches.js';
|
|
6
|
+
/**
|
|
7
|
+
* `--dry-run`: print the planned change and exit without writing anything.
|
|
8
|
+
*
|
|
9
|
+
* Twenty-four option types spelled this field with five different doc
|
|
10
|
+
* comments for one behaviour. The contract is uniform and load-bearing (a
|
|
11
|
+
* dry run must perform every check the real run does and then write
|
|
12
|
+
* nothing), so it is stated once.
|
|
13
|
+
*/
|
|
14
|
+
export interface DryRunnable {
|
|
15
|
+
/** Print the planned change without writing anything. */
|
|
16
|
+
dryRun?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* `--yes`: answer the confirmation prompt non-interactively.
|
|
20
|
+
*
|
|
21
|
+
* Required for non-TTY runs, where there is no prompt to answer. It waives
|
|
22
|
+
* the prompt only, never a safety gate. Flags that waive a refusal are
|
|
23
|
+
* spelled `--force*` and live on their own types.
|
|
24
|
+
*/
|
|
25
|
+
export interface Confirmable {
|
|
26
|
+
/** Skip the confirmation prompt. Required for non-TTY runs. */
|
|
27
|
+
yes?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* `--force-unsafe`: proceed past a refusal the command would otherwise raise.
|
|
31
|
+
*
|
|
32
|
+
* Distinct from {@link Confirmable}: this waives a correctness gate (a
|
|
33
|
+
* projected-lint failure, a patchPolicy violation), not a prompt.
|
|
34
|
+
*/
|
|
35
|
+
export interface UnsafeOverridable {
|
|
36
|
+
/** Bypass refusals the command would otherwise raise. */
|
|
37
|
+
forceUnsafe?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* `--wait-lock [seconds]` for commands that take the ENGINE SESSION lock.
|
|
41
|
+
*
|
|
42
|
+
* Parsed at the CLI layer (`true` for the bare flag, meaning 60 seconds) and
|
|
43
|
+
* consumed there to bound the wait. The command implementation ignores it.
|
|
44
|
+
*/
|
|
45
|
+
export interface EngineLockWaitable {
|
|
46
|
+
/** Parsed `--wait-lock [seconds]` value. `true` means the 60-second default. */
|
|
47
|
+
waitLock?: number | boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* `--wait-lock [seconds]` for commands that mutate patch metadata under the
|
|
51
|
+
* PATCH DIRECTORY lock.
|
|
52
|
+
*
|
|
53
|
+
* Separate from {@link EngineLockWaitable}: the two flags share a
|
|
54
|
+
* spelling but bound different locks, and a reader needs to know which one a
|
|
55
|
+
* command contends for.
|
|
56
|
+
*/
|
|
57
|
+
export interface PatchLockWaitable {
|
|
58
|
+
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
59
|
+
waitLock?: number | boolean;
|
|
60
|
+
}
|
|
6
61
|
/**
|
|
7
62
|
* Options for the setup command.
|
|
8
63
|
*/
|
|
@@ -51,7 +106,7 @@ export interface SourceSetOptions {
|
|
|
51
106
|
/**
|
|
52
107
|
* Options for the build command.
|
|
53
108
|
*/
|
|
54
|
-
export interface BuildOptions {
|
|
109
|
+
export interface BuildOptions extends EngineLockWaitable {
|
|
55
110
|
/** Fast UI-only rebuild */
|
|
56
111
|
ui?: boolean;
|
|
57
112
|
/** Number of parallel jobs */
|
|
@@ -70,21 +125,15 @@ export interface BuildOptions {
|
|
|
70
125
|
* Refuse the build (rather than warn) when it would overwrite engine
|
|
71
126
|
* content recorded in neither a patch body nor the pristine baseline.
|
|
72
127
|
* The default is a loud warning, because an interactive
|
|
73
|
-
* operator often means to discard the drift
|
|
128
|
+
* operator often means to discard the drift. A scripted gate on a
|
|
74
129
|
* multi-session checkout wants the hard stop.
|
|
75
130
|
*/
|
|
76
131
|
refuseUnexportedDrift?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Parsed `--wait-lock [seconds]` value (`true` for the bare flag, meaning
|
|
79
|
-
* 60). Consumed at the CLI layer to bound the engine-session-lock wait;
|
|
80
|
-
* the command implementation ignores it.
|
|
81
|
-
*/
|
|
82
|
-
waitLock?: number | boolean;
|
|
83
132
|
}
|
|
84
133
|
/**
|
|
85
134
|
* Options for the export command.
|
|
86
135
|
*/
|
|
87
|
-
export interface ExportOptions {
|
|
136
|
+
export interface ExportOptions extends EngineLockWaitable {
|
|
88
137
|
/** Name/description for the patch */
|
|
89
138
|
name?: string;
|
|
90
139
|
/** Category classification */
|
|
@@ -130,15 +179,9 @@ export interface ExportOptions {
|
|
|
130
179
|
* another patch, because the resulting queue fails `verify` immediately.
|
|
131
180
|
*/
|
|
132
181
|
allowOverlap?: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Parsed `--wait-lock [seconds]` value (`true` for the bare flag, meaning
|
|
135
|
-
* 60). Consumed at the CLI layer to bound the engine-session-lock wait;
|
|
136
|
-
* the command implementation ignores it.
|
|
137
|
-
*/
|
|
138
|
-
waitLock?: number | boolean;
|
|
139
182
|
/**
|
|
140
183
|
* Force a tier override on the new patch's `PatchMetadata.tier`. Only
|
|
141
|
-
* `"branding"` is currently recognised
|
|
184
|
+
* `"branding"` is currently recognised. Commander rejects other values
|
|
142
185
|
* before the handler runs. Use when a branding patch legitimately
|
|
143
186
|
* touches a non-allowlisted sibling that `isBrandingOnlyPatch` cannot
|
|
144
187
|
* reach (a fork-specific theme override under `browser/themes/<name>/`,
|
|
@@ -147,7 +190,7 @@ export interface ExportOptions {
|
|
|
147
190
|
tier?: 'branding';
|
|
148
191
|
/**
|
|
149
192
|
* Lint check IDs to suppress on this patch. Writes to
|
|
150
|
-
* `PatchMetadata.lintIgnore`. Repeatable on the CLI
|
|
193
|
+
* `PatchMetadata.lintIgnore`. Repeatable on the CLI, and each occurrence
|
|
151
194
|
* appends to the list. Useful when a patch is advisory-noisy by nature
|
|
152
195
|
* (a cohesive branding bundle, an auto-generated manifest) and a
|
|
153
196
|
* specific check does not apply, but `--skip-lint` is too coarse a
|
|
@@ -158,16 +201,14 @@ export interface ExportOptions {
|
|
|
158
201
|
/**
|
|
159
202
|
* Options for the reset command.
|
|
160
203
|
*/
|
|
161
|
-
export interface ResetOptions {
|
|
162
|
-
/** Skip confirmation prompt */
|
|
163
|
-
yes?: boolean;
|
|
204
|
+
export interface ResetOptions extends Confirmable {
|
|
164
205
|
/** Show what would be reset without doing it */
|
|
165
206
|
dryRun?: boolean;
|
|
166
207
|
}
|
|
167
208
|
/**
|
|
168
209
|
* Options for the discard command.
|
|
169
210
|
*/
|
|
170
|
-
export interface DiscardOptions {
|
|
211
|
+
export interface DiscardOptions extends Confirmable {
|
|
171
212
|
/**
|
|
172
213
|
* Restore to pristine upstream (HEAD) instead of the patch-applied
|
|
173
214
|
* baseline, deleting patch-created files.
|
|
@@ -175,8 +216,6 @@ export interface DiscardOptions {
|
|
|
175
216
|
toUpstream?: boolean;
|
|
176
217
|
/** Show what would be discarded without doing it */
|
|
177
218
|
dryRun?: boolean;
|
|
178
|
-
/** Skip confirmation prompt */
|
|
179
|
-
yes?: boolean;
|
|
180
219
|
}
|
|
181
220
|
/**
|
|
182
221
|
* Options for the package command.
|
|
@@ -191,7 +230,7 @@ export interface PackageOptions {
|
|
|
191
230
|
export interface ImportOptions {
|
|
192
231
|
/**
|
|
193
232
|
* Answer the engine-drift prompt non-interactively. Unlike `force`,
|
|
194
|
-
* this does
|
|
233
|
+
* this does not waive the patch-integrity gate.
|
|
195
234
|
*/
|
|
196
235
|
yes?: boolean;
|
|
197
236
|
/** Specific patches to apply (by name) */
|
|
@@ -212,7 +251,7 @@ export interface ImportOptions {
|
|
|
212
251
|
/**
|
|
213
252
|
* Options for the re-export command.
|
|
214
253
|
*/
|
|
215
|
-
export interface ReExportOptions {
|
|
254
|
+
export interface ReExportOptions extends EngineLockWaitable {
|
|
216
255
|
/** Re-export all patches */
|
|
217
256
|
all?: boolean;
|
|
218
257
|
/** Scan directories for new/removed files and update filesAffected */
|
|
@@ -226,15 +265,15 @@ export interface ReExportOptions {
|
|
|
226
265
|
/**
|
|
227
266
|
* Path to a JSON manifest containing bulk scan assignments:
|
|
228
267
|
* `{ "assignments": [{ "patch": "<patch>", "files": ["path"] }] }`.
|
|
229
|
-
* Requires `--scan
|
|
268
|
+
* Requires `--scan`. Mutually exclusive with positional patches, `--all`,
|
|
230
269
|
* `--scan-file`, and `--files`.
|
|
231
270
|
*/
|
|
232
271
|
scanFilesManifest?: string;
|
|
233
272
|
/**
|
|
234
273
|
* Restrict the re-exported patch's filesAffected to this explicit list.
|
|
235
|
-
* Files currently in the patch but not in this list are dropped (shrink)
|
|
236
|
-
*
|
|
237
|
-
* exclusive with `--scan` and `--all
|
|
274
|
+
* Files currently in the patch but not in this list are dropped (shrink).
|
|
275
|
+
* Files in this list but not currently in the patch are added. Mutually
|
|
276
|
+
* exclusive with `--scan` and `--all`. Applies to a single target patch
|
|
238
277
|
* at a time.
|
|
239
278
|
*/
|
|
240
279
|
files?: string[];
|
|
@@ -262,60 +301,54 @@ export interface ReExportOptions {
|
|
|
262
301
|
* After every selected patch re-exports cleanly, stamp each re-exported
|
|
263
302
|
* patch's `sourceEsrVersion` in `patches.json` to the current
|
|
264
303
|
* `firefox.version` from `fireforge.json`. Opt-in because the default
|
|
265
|
-
* contract of `re-export` is "refresh the patch body and filesAffected"
|
|
266
|
-
*
|
|
304
|
+
* contract of `re-export` is "refresh the patch body and filesAffected".
|
|
305
|
+
* Version stamping is normally a `rebase` responsibility. Use this when
|
|
267
306
|
* re-exporting after a manual Firefox bump that did not go through
|
|
268
307
|
* `rebase`.
|
|
269
308
|
*/
|
|
270
309
|
stamp?: boolean;
|
|
271
310
|
/**
|
|
272
311
|
* Force a tier override on the selected patch(es). Only `"branding"` is
|
|
273
|
-
* currently recognised. Mutually exclusive with `--all
|
|
274
|
-
* changes are virtually always footguns
|
|
312
|
+
* currently recognised. Mutually exclusive with `--all`, since mass
|
|
313
|
+
* tier changes are virtually always footguns: different patches in
|
|
275
314
|
* the queue have different shapes.
|
|
276
315
|
*/
|
|
277
316
|
tier?: 'branding';
|
|
278
317
|
/**
|
|
279
|
-
* Lint check IDs to suppress,
|
|
318
|
+
* Lint check IDs to suppress, appended (union) to the patch's existing
|
|
280
319
|
* `lintIgnore` list. De-duplicated. Mutually exclusive with `--all`. To
|
|
281
320
|
* remove an entry or clear the list, use `fireforge patch lint-ignore`,
|
|
282
321
|
* which has explicit `--add` / `--remove` / `--clear` modes.
|
|
283
322
|
*/
|
|
284
323
|
lintIgnore?: string[];
|
|
285
|
-
/**
|
|
286
|
-
* Parsed `--wait-lock [seconds]` value (`true` for the bare flag, meaning
|
|
287
|
-
* 60). Consumed at the CLI layer to bound the engine-session-lock wait;
|
|
288
|
-
* the command implementation ignores it.
|
|
289
|
-
*/
|
|
290
|
-
waitLock?: number | boolean;
|
|
291
324
|
/**
|
|
292
325
|
* Refuse (non-zero exit, patch not written) a scan-less re-export when
|
|
293
326
|
* unmanaged files exist adjacent to the patch's ownership, instead of
|
|
294
327
|
* warning. Gate-driven workflows use this so a freshly created file
|
|
295
328
|
* beside a patch's owned files cannot be silently left out of the
|
|
296
|
-
* refreshed body. Only meaningful on the plain path
|
|
329
|
+
* refreshed body. Only meaningful on the plain path, and mutually
|
|
297
330
|
* exclusive with `--scan` and `--files`, which set filesAffected
|
|
298
331
|
* explicitly.
|
|
299
332
|
*/
|
|
300
333
|
refuseAdjacentUnmanaged?: boolean;
|
|
301
334
|
/**
|
|
302
|
-
* Bypass per-patch lint result cache reads
|
|
335
|
+
* Bypass per-patch lint result cache reads and writes for this invocation
|
|
303
336
|
* (`--no-cache`). The cache is what lets a repeat re-export of an unchanged
|
|
304
337
|
* patch skip the checkJs program build entirely.
|
|
305
338
|
*/
|
|
306
339
|
noCache?: boolean;
|
|
307
340
|
/**
|
|
308
341
|
* Refuse (non-zero exit, patch not written) a re-export whose refreshed
|
|
309
|
-
* body would absorb engine lines not present in the old patch body
|
|
310
|
-
* the multi-session guard against silently capturing another
|
|
311
|
-
* uncommitted edits in files the patch already owns. The drift preview
|
|
312
|
-
* always prints
|
|
342
|
+
* body would absorb engine lines not present in the old patch body.
|
|
343
|
+
* This is the multi-session guard against silently capturing another
|
|
344
|
+
* session's uncommitted edits in files the patch already owns. The drift preview
|
|
345
|
+
* always prints. This flag turns it into a hard stop. Mutually
|
|
313
346
|
* exclusive with `--scan` and `--files`.
|
|
314
347
|
*/
|
|
315
348
|
refuseForeignDrift?: boolean;
|
|
316
349
|
/**
|
|
317
|
-
* Engine-relative files whose drift is
|
|
318
|
-
*
|
|
350
|
+
* Engine-relative files whose drift is expected (`--expect`, repeatable).
|
|
351
|
+
* Requires `--refuse-foreign-drift`. The content-based drift detector
|
|
319
352
|
* cannot tell the exporting session's own slice edits from another
|
|
320
353
|
* session's, so a slice export under the refusal flag names its intended
|
|
321
354
|
* files here: drift confined to expected files proceeds, drift anywhere
|
|
@@ -323,69 +356,47 @@ export interface ReExportOptions {
|
|
|
323
356
|
*/
|
|
324
357
|
expect?: string[];
|
|
325
358
|
/**
|
|
326
|
-
* Engine-relative files that are an
|
|
327
|
-
* (`--expect-unmanaged`, repeatable
|
|
328
|
-
* `--refuse-adjacent-unmanaged
|
|
329
|
-
* without it: a project with a reviewed,
|
|
330
|
-
* a patch's ownership has to drop the flag entirely and hand-read
|
|
331
|
-
* notice, which is a weaker belt than the one being disarmed.
|
|
332
|
-
* paths are still
|
|
359
|
+
* Engine-relative files that are an approved unmanaged exception
|
|
360
|
+
* (`--expect-unmanaged`, repeatable). Requires
|
|
361
|
+
* `--refuse-adjacent-unmanaged`. The adjacency refusal is all-or-nothing
|
|
362
|
+
* without it: a project with a reviewed, intentionally unmanaged path
|
|
363
|
+
* beside a patch's ownership has to drop the flag entirely and hand-read
|
|
364
|
+
* the notice, which is a weaker belt than the one being disarmed.
|
|
365
|
+
* Approved paths are still listed. They are carved out of the refusal
|
|
366
|
+
* rather than hidden.
|
|
333
367
|
*/
|
|
334
368
|
expectUnmanaged?: string[];
|
|
335
369
|
}
|
|
336
370
|
/**
|
|
337
371
|
* Options for the `fireforge patch tier` subcommand. Sets or clears the
|
|
338
372
|
* `PatchMetadata.tier` field on a single patch without rewriting the
|
|
339
|
-
* `.patch` file body
|
|
373
|
+
* `.patch` file body. The manifest is the only thing that changes.
|
|
340
374
|
*/
|
|
341
|
-
export interface PatchTierOptions {
|
|
342
|
-
/**
|
|
343
|
-
* Seconds to wait for the patch directory lock. This command mutates patch
|
|
344
|
-
* metadata under that lock.
|
|
345
|
-
*/
|
|
346
|
-
waitLock?: number | boolean;
|
|
375
|
+
export interface PatchTierOptions extends Confirmable, DryRunnable, PatchLockWaitable {
|
|
347
376
|
/** Force the named tier on the patch. Only `"branding"` is recognised. */
|
|
348
377
|
tier?: 'branding';
|
|
349
378
|
/** Remove the `tier` override entirely, restoring auto-detection. */
|
|
350
379
|
clear?: boolean;
|
|
351
|
-
/** Print the planned change without writing. */
|
|
352
|
-
dryRun?: boolean;
|
|
353
|
-
/** Skip the confirmation prompt (required for non-TTY). */
|
|
354
|
-
yes?: boolean;
|
|
355
380
|
}
|
|
356
381
|
/**
|
|
357
382
|
* Options for the `fireforge patch lint-ignore` subcommand. Modes are
|
|
358
|
-
* mutually exclusive
|
|
383
|
+
* mutually exclusive: exactly one of `add`, `remove`, or `clear` must
|
|
359
384
|
* be set per invocation.
|
|
360
385
|
*/
|
|
361
|
-
export interface PatchLintIgnoreOptions {
|
|
362
|
-
/**
|
|
363
|
-
* Seconds to wait for the patch directory lock. This command mutates patch
|
|
364
|
-
* metadata under that lock.
|
|
365
|
-
*/
|
|
366
|
-
waitLock?: number | boolean;
|
|
386
|
+
export interface PatchLintIgnoreOptions extends Confirmable, DryRunnable, PatchLockWaitable {
|
|
367
387
|
/** Lint check IDs to add to the patch's `lintIgnore` list (union, de-duped). */
|
|
368
388
|
add?: string[];
|
|
369
389
|
/** Lint check IDs to remove from the patch's `lintIgnore` list. */
|
|
370
390
|
remove?: string[];
|
|
371
391
|
/** Drop the `lintIgnore` field entirely. */
|
|
372
392
|
clear?: boolean;
|
|
373
|
-
/** Print the planned change without writing. */
|
|
374
|
-
dryRun?: boolean;
|
|
375
|
-
/** Skip the confirmation prompt (required for non-TTY). */
|
|
376
|
-
yes?: boolean;
|
|
377
393
|
}
|
|
378
394
|
/**
|
|
379
395
|
* Options for the `fireforge patch staged-dependency` subcommand. Modes are
|
|
380
396
|
* mutually exclusive: add a declaration, remove one or more matching
|
|
381
397
|
* declarations, or clear all staged dependencies from the patch.
|
|
382
398
|
*/
|
|
383
|
-
export interface PatchStagedDependencyOptions {
|
|
384
|
-
/**
|
|
385
|
-
* Seconds to wait for the patch directory lock. This command mutates patch
|
|
386
|
-
* metadata under that lock.
|
|
387
|
-
*/
|
|
388
|
-
waitLock?: number | boolean;
|
|
399
|
+
export interface PatchStagedDependencyOptions extends Confirmable, DryRunnable, PatchLockWaitable {
|
|
389
400
|
/** Add a staged dependency declaration. */
|
|
390
401
|
add?: boolean;
|
|
391
402
|
/** Remove matching staged dependency declarations. */
|
|
@@ -413,20 +424,16 @@ export interface PatchStagedDependencyOptions {
|
|
|
413
424
|
owner?: string;
|
|
414
425
|
/** Optional human-readable rationale stored with the declaration. */
|
|
415
426
|
reason?: string;
|
|
416
|
-
/** Print the planned change without writing. */
|
|
417
|
-
dryRun?: boolean;
|
|
418
|
-
/** Skip the confirmation prompt (required for non-TTY). */
|
|
419
|
-
yes?: boolean;
|
|
420
427
|
}
|
|
421
428
|
/**
|
|
422
429
|
* Options for the `patch split` command.
|
|
423
430
|
*/
|
|
424
|
-
export interface PatchSplitOptions {
|
|
431
|
+
export interface PatchSplitOptions extends Confirmable, PatchLockWaitable, UnsafeOverridable {
|
|
425
432
|
/** Files to move out of the source patch (engine-relative). */
|
|
426
433
|
files: string[];
|
|
427
434
|
/** Name for the new patch (used in its filename slug). */
|
|
428
435
|
name: string;
|
|
429
|
-
/** Category for the new patch
|
|
436
|
+
/** Category for the new patch. Defaults to the source patch's category. */
|
|
430
437
|
category?: string;
|
|
431
438
|
/** Description for the new patch. */
|
|
432
439
|
description?: string;
|
|
@@ -438,14 +445,8 @@ export interface PatchSplitOptions {
|
|
|
438
445
|
after?: string;
|
|
439
446
|
/** Preview without writing. */
|
|
440
447
|
dryRun?: boolean;
|
|
441
|
-
/** Skip interactive confirmation (required for non-TTY). */
|
|
442
|
-
yes?: boolean;
|
|
443
|
-
/** Bypass projected-lint refusals. */
|
|
444
|
-
forceUnsafe?: boolean;
|
|
445
448
|
/** Skip per-patch lint of the projected bodies. */
|
|
446
449
|
skipLint?: boolean;
|
|
447
|
-
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
448
|
-
waitLock?: number | boolean;
|
|
449
450
|
}
|
|
450
451
|
/**
|
|
451
452
|
* Options for the `fireforge patch move-files` subcommand. Without
|
|
@@ -454,27 +455,21 @@ export interface PatchSplitOptions {
|
|
|
454
455
|
* With `--create --order <n>` the target patch is created at that order
|
|
455
456
|
* and the files move into it as one split-style transaction.
|
|
456
457
|
*/
|
|
457
|
-
export interface PatchMoveFilesOptions {
|
|
458
|
+
export interface PatchMoveFilesOptions extends Confirmable, PatchLockWaitable, UnsafeOverridable {
|
|
458
459
|
/** File paths relative to engine/ to move from the source patch to the target patch. */
|
|
459
460
|
file?: string[];
|
|
460
461
|
/** Create the target patch (transactional bootstrap of a split). Requires `order`. */
|
|
461
462
|
create?: boolean;
|
|
462
463
|
/** Exact sparse order for the created patch. Only valid with `create`. */
|
|
463
464
|
order?: number;
|
|
464
|
-
/** Category for the created patch
|
|
465
|
+
/** Category for the created patch. Defaults to the source patch's. */
|
|
465
466
|
category?: string;
|
|
466
467
|
/** Description for the created patch. */
|
|
467
468
|
description?: string;
|
|
468
469
|
/** Preview the create+move without writing. */
|
|
469
470
|
dryRun?: boolean;
|
|
470
|
-
/** Skip interactive confirmation (required for non-TTY). */
|
|
471
|
-
yes?: boolean;
|
|
472
|
-
/** Bypass projected-lint refusals. */
|
|
473
|
-
forceUnsafe?: boolean;
|
|
474
471
|
/** Skip per-patch lint of the projected bodies. */
|
|
475
472
|
skipLint?: boolean;
|
|
476
|
-
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
477
|
-
waitLock?: number | boolean;
|
|
478
473
|
}
|
|
479
474
|
/**
|
|
480
475
|
* Options for the rebase command.
|
|
@@ -506,15 +501,15 @@ export interface RunOptions {
|
|
|
506
501
|
* Enable smoke-run mode. Launches the browser, streams the console,
|
|
507
502
|
* sends SIGTERM to the whole process group after `smokeExit` seconds,
|
|
508
503
|
* and applies the smoke exit contract:
|
|
509
|
-
* - `0
|
|
510
|
-
* - `ExitCode.SMOKE_EXIT_FAILURE` (12)
|
|
504
|
+
* - `0`: clean window (no unallowed error lines).
|
|
505
|
+
* - `ExitCode.SMOKE_EXIT_FAILURE` (12): one or more console lines
|
|
511
506
|
* matched the error heuristic and were not covered by the allowlist.
|
|
512
|
-
* - `ExitCode.SMOKE_LAUNCH_FAILURE` (13)
|
|
513
|
-
* non-clean status before the smoke window elapsed (launch-side
|
|
514
|
-
* failure we cannot observe as a console line
|
|
515
|
-
* wiring, missing profile
|
|
507
|
+
* - `ExitCode.SMOKE_LAUNCH_FAILURE` (13): the browser exited with a
|
|
508
|
+
* non-clean status before the smoke window elapsed (a launch-side
|
|
509
|
+
* failure we cannot observe as a console line, such as a crash
|
|
510
|
+
* before console wiring, or a missing profile).
|
|
516
511
|
*
|
|
517
|
-
* POSIX only (process-group semantics do not map cleanly onto Windows)
|
|
512
|
+
* POSIX only (process-group semantics do not map cleanly onto Windows).
|
|
518
513
|
* `runSmokeExit` rejects the flag up front on `win32`.
|
|
519
514
|
*/
|
|
520
515
|
smokeExit?: number;
|
|
@@ -526,7 +521,7 @@ export interface RunOptions {
|
|
|
526
521
|
consoleAllow?: string[];
|
|
527
522
|
/**
|
|
528
523
|
* Path to a newline-delimited allowlist regex file. Blank lines and
|
|
529
|
-
* `#` comments are ignored
|
|
524
|
+
* `#` comments are ignored. Each remaining line is compiled as a
|
|
530
525
|
* regex and appended to the active allowlist.
|
|
531
526
|
*/
|
|
532
527
|
consoleAllowFile?: string;
|
|
@@ -546,7 +541,7 @@ export interface RunOptions {
|
|
|
546
541
|
/**
|
|
547
542
|
* Options for the test command.
|
|
548
543
|
*/
|
|
549
|
-
export interface TestOptions {
|
|
544
|
+
export interface TestOptions extends EngineLockWaitable {
|
|
550
545
|
/** Run tests in headless mode */
|
|
551
546
|
headless?: boolean;
|
|
552
547
|
/**
|
|
@@ -561,7 +556,7 @@ export interface TestOptions {
|
|
|
561
556
|
* Run the scoped pre-test build (packaging exactly the requested paths,
|
|
562
557
|
* MIXED harnesses allowed) and exit without dispatching tests. One
|
|
563
558
|
* ~10-minute build then covers both an xpcshell and a browser-chrome
|
|
564
|
-
* half of a slice
|
|
559
|
+
* half of a slice. Run each harness afterwards without `--build`.
|
|
565
560
|
* Emits `FIREFORGE-VERDICT: PASS` on success.
|
|
566
561
|
*/
|
|
567
562
|
buildOnly?: boolean;
|
|
@@ -579,7 +574,7 @@ export interface TestOptions {
|
|
|
579
574
|
* Forwarded to the PRE-TEST build: refuse (rather than warn) when that
|
|
580
575
|
* build would overwrite engine content recorded in neither a patch body
|
|
581
576
|
* nor the pristine baseline. Same meaning as `fireforge build`'s flag of
|
|
582
|
-
* the same name
|
|
577
|
+
* the same name. A scripted `test --build` is exactly the shape the
|
|
583
578
|
* multi-session hazard shows up in, and until now it was the one shape
|
|
584
579
|
* that could not arm the refusal. Valid only with `--build`/`--build-only`.
|
|
585
580
|
*/
|
|
@@ -595,8 +590,8 @@ export interface TestOptions {
|
|
|
595
590
|
/**
|
|
596
591
|
* Extra arguments forwarded verbatim to `mach test` (repeatable). Escape
|
|
597
592
|
* valve for upstream xpcshell/mochitest flags that FireForge does not
|
|
598
|
-
* model directly. Order relative to other flags is preserved
|
|
599
|
-
* values appear after `--headless` if both are set.
|
|
593
|
+
* model directly. Order relative to other flags is preserved, and
|
|
594
|
+
* passthrough values appear after `--headless` if both are set.
|
|
600
595
|
*/
|
|
601
596
|
machArg?: string[];
|
|
602
597
|
/**
|
|
@@ -614,8 +609,8 @@ export interface TestOptions {
|
|
|
614
609
|
/**
|
|
615
610
|
* Terminate harness helper processes (`xpcshell` httpd, `pywebsocket`,
|
|
616
611
|
* `ssltunnel`, `moz-http2`) that survived an earlier run in this
|
|
617
|
-
* project's objdir. The census itself runs on
|
|
618
|
-
* report-only
|
|
612
|
+
* project's objdir. The census itself runs on every test dispatch and is
|
|
613
|
+
* report-only. This flag opts into the kill. Survivors slow later runs
|
|
619
614
|
* without appearing in their output, so the visibility is the default and
|
|
620
615
|
* the termination is the choice.
|
|
621
616
|
*/
|
|
@@ -624,9 +619,9 @@ export interface TestOptions {
|
|
|
624
619
|
allowStaleBuild?: boolean;
|
|
625
620
|
/**
|
|
626
621
|
* Permit tests despite `components.conf` changes that only a full
|
|
627
|
-
* `fireforge build` compiles into the StaticComponents table
|
|
628
|
-
* packaged child process will resolve the
|
|
629
|
-
* rebuilt out-of-band and accept the risk
|
|
622
|
+
* `fireforge build` compiles into the StaticComponents table. The
|
|
623
|
+
* packaged child process will resolve the old table. For operators who
|
|
624
|
+
* rebuilt out-of-band and accept the risk. Distinct from
|
|
630
625
|
* `allowStaleBuild`, which only accepts stale packaged content.
|
|
631
626
|
*/
|
|
632
627
|
allowStaleComponents?: boolean;
|
|
@@ -643,14 +638,14 @@ export interface TestOptions {
|
|
|
643
638
|
* Force dispatch through the generic `mach test` command instead of the
|
|
644
639
|
* suite-specific `mach xpcshell-test` / `mach mochitest` commands a
|
|
645
640
|
* single-suite run auto-selects. Escape hatch for the rare case where a
|
|
646
|
-
* suite-specific command misbehaves
|
|
641
|
+
* suite-specific command misbehaves. On a healthy host the generic command
|
|
647
642
|
* is equivalent. The default (auto suite dispatch) skips the mozlog
|
|
648
643
|
* resource monitor that crashes `mach test` on a broken host.
|
|
649
644
|
*/
|
|
650
645
|
genericMachTest?: boolean;
|
|
651
646
|
/**
|
|
652
647
|
* Commander negation flag for `--no-shard`. When false, multiple test
|
|
653
|
-
* paths run in one combined mach invocation
|
|
648
|
+
* paths run in one combined mach invocation. By default they shard into
|
|
654
649
|
* sequential single-file harness runs with an aggregate report.
|
|
655
650
|
*/
|
|
656
651
|
shard?: boolean;
|
|
@@ -660,19 +655,11 @@ export interface TestOptions {
|
|
|
660
655
|
* checkers that consume a sample artifact after the run.
|
|
661
656
|
*/
|
|
662
657
|
perfSamples?: string;
|
|
663
|
-
/**
|
|
664
|
-
* Parsed `--wait-lock [seconds]` value (`true` for the bare flag, meaning
|
|
665
|
-
* 60). Consumed at the CLI layer to bound the engine-session-lock wait;
|
|
666
|
-
* the command implementation ignores it.
|
|
667
|
-
*/
|
|
668
|
-
waitLock?: number | boolean;
|
|
669
658
|
}
|
|
670
659
|
/**
|
|
671
660
|
* Options for the furnace apply command.
|
|
672
661
|
*/
|
|
673
|
-
export interface FurnaceApplyOptions {
|
|
674
|
-
/** Show what would be changed without writing */
|
|
675
|
-
dryRun?: boolean;
|
|
662
|
+
export interface FurnaceApplyOptions extends DryRunnable {
|
|
676
663
|
/** Proceed despite baseVersion drift (stale overrides) */
|
|
677
664
|
force?: boolean;
|
|
678
665
|
/** Watch component directories and re-apply on changes */
|
|
@@ -694,9 +681,7 @@ export interface FurnacePreviewOptions {
|
|
|
694
681
|
/**
|
|
695
682
|
* Options for the furnace deploy command.
|
|
696
683
|
*/
|
|
697
|
-
export interface FurnaceDeployOptions {
|
|
698
|
-
/** Show what would be changed without writing */
|
|
699
|
-
dryRun?: boolean;
|
|
684
|
+
export interface FurnaceDeployOptions extends DryRunnable {
|
|
700
685
|
/** Proceed despite baseVersion drift (stale overrides) */
|
|
701
686
|
force?: boolean;
|
|
702
687
|
/** Skip the validation step (apply only, no accessibility/compatibility checks) */
|
|
@@ -711,9 +696,7 @@ export interface FurnaceDeployOptions {
|
|
|
711
696
|
/**
|
|
712
697
|
* Options for the furnace refresh command.
|
|
713
698
|
*/
|
|
714
|
-
export interface FurnaceRefreshOptions {
|
|
715
|
-
/** Show what would change without modifying files */
|
|
716
|
-
dryRun?: boolean;
|
|
699
|
+
export interface FurnaceRefreshOptions extends DryRunnable {
|
|
717
700
|
/** Refresh all overrides in a single batch */
|
|
718
701
|
all?: boolean;
|
|
719
702
|
/** Conflict resolution strategy for automated use (ours = keep local, theirs = accept upstream) */
|
|
@@ -724,9 +707,7 @@ export interface FurnaceRefreshOptions {
|
|
|
724
707
|
/**
|
|
725
708
|
* Options for the furnace sync command.
|
|
726
709
|
*/
|
|
727
|
-
export interface FurnaceSyncOptions {
|
|
728
|
-
/** Show what would change without modifying files */
|
|
729
|
-
dryRun?: boolean;
|
|
710
|
+
export interface FurnaceSyncOptions extends DryRunnable {
|
|
730
711
|
/** Conflict resolution strategy for three-way merge (ours = keep local, theirs = accept upstream) */
|
|
731
712
|
strategy?: 'ours' | 'theirs';
|
|
732
713
|
/**
|
|
@@ -753,12 +734,10 @@ export interface FurnaceOverrideOptions {
|
|
|
753
734
|
description?: string;
|
|
754
735
|
}
|
|
755
736
|
/**
|
|
756
|
-
* Options for the furnace remove command.
|
|
737
|
+
* Options for the furnace remove command. `--yes` is the only flag it takes,
|
|
738
|
+
* so the type is the confirmation mixin under a command-specific name.
|
|
757
739
|
*/
|
|
758
|
-
export
|
|
759
|
-
/** Skip confirmation prompt */
|
|
760
|
-
yes?: boolean;
|
|
761
|
-
}
|
|
740
|
+
export type FurnaceRemoveOptions = Confirmable;
|
|
762
741
|
/**
|
|
763
742
|
* Options for the furnace create command.
|
|
764
743
|
*/
|
|
@@ -795,15 +774,15 @@ export interface FurnaceCreateOptions {
|
|
|
795
774
|
* Test harness style to scaffold when `--with-tests` is set.
|
|
796
775
|
*
|
|
797
776
|
* - `browser-chrome` (default when `--with-tests` is set without
|
|
798
|
-
* `--test-style`)
|
|
777
|
+
* `--test-style`): browser mochitest scaffold. Requires a working
|
|
799
778
|
* `tabbrowser`. Prefer this for interactive chrome/widget coverage
|
|
800
779
|
* (including on macOS).
|
|
801
|
-
* - `mochikit
|
|
780
|
+
* - `mochikit`: opt-in MochiKit test at
|
|
802
781
|
* `engine/toolkit/content/tests/widgets/test_<tag>.html` that loads
|
|
803
782
|
* the component via `chrome://global/`. Use when the top-level chrome
|
|
804
|
-
* document lacks a `tabbrowser
|
|
783
|
+
* document lacks a `tabbrowser`. On macOS the toolkit mochitest-chrome
|
|
805
784
|
* flavor can be unreliable (long idle timeout).
|
|
806
|
-
* - `xpcshell
|
|
785
|
+
* - `xpcshell`: equivalent to setting `--xpcshell`. Headless, storage-only.
|
|
807
786
|
*/
|
|
808
787
|
testStyle?: 'mochikit' | 'browser-chrome' | 'xpcshell';
|
|
809
788
|
/** Stock component tag names composed internally by this component */
|
|
@@ -829,7 +808,7 @@ export interface FurnaceCreateOptions {
|
|
|
829
808
|
* Without this flag, a name that does not start with the prefix is
|
|
830
809
|
* rejected before any files are written, so a prefix-mismatched
|
|
831
810
|
* component cannot leave behind a half-scaffolded state. Pass this
|
|
832
|
-
* flag only when you know the prefix mismatch is intentional
|
|
811
|
+
* flag only when you know the prefix mismatch is intentional, e.g.
|
|
833
812
|
* creating an experimental component whose name intentionally breaks
|
|
834
813
|
* the fork's convention.
|
|
835
814
|
*/
|
|
@@ -865,15 +844,9 @@ export interface RegisterOptions {
|
|
|
865
844
|
/**
|
|
866
845
|
* Options for the patch delete command.
|
|
867
846
|
*/
|
|
868
|
-
export interface PatchDeleteOptions {
|
|
869
|
-
/** Skip confirmation prompt; required for non-TTY runs. */
|
|
870
|
-
yes?: boolean;
|
|
871
|
-
/** Print what would happen without writing anything. */
|
|
872
|
-
dryRun?: boolean;
|
|
847
|
+
export interface PatchDeleteOptions extends Confirmable, DryRunnable, PatchLockWaitable {
|
|
873
848
|
/** Bypass the hard refusal when later patches depend on the target. */
|
|
874
849
|
forceUnsafe?: boolean;
|
|
875
|
-
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
876
|
-
waitLock?: number | boolean;
|
|
877
850
|
}
|
|
878
851
|
/**
|
|
879
852
|
* Options for the `fireforge patch rename` subcommand. Updates the patch's
|
|
@@ -882,67 +855,49 @@ export interface PatchDeleteOptions {
|
|
|
882
855
|
* for the case where the body is already correct but the patch's identity
|
|
883
856
|
* describes a pre-shrink scope.
|
|
884
857
|
*/
|
|
885
|
-
export interface PatchRenameOptions {
|
|
858
|
+
export interface PatchRenameOptions extends Confirmable, DryRunnable, PatchLockWaitable, UnsafeOverridable {
|
|
886
859
|
/**
|
|
887
860
|
* New human-readable name. Sanitised the same way `export --name`
|
|
888
861
|
* sanitises into the filename slug (lowercase, non-alphanumerics
|
|
889
862
|
* collapsed to `-`, length-capped). The patch's `name` field stores
|
|
890
|
-
* the raw value
|
|
863
|
+
* the raw value. The filename uses the sanitised slug. Optional when
|
|
891
864
|
* `--category`/`--order`/`--description` carry the change.
|
|
892
865
|
*/
|
|
893
866
|
to?: string;
|
|
894
867
|
/**
|
|
895
868
|
* New category (validated against configured categories). Rewrites
|
|
896
|
-
* the filename prefix and the manifest row in one transaction
|
|
869
|
+
* the filename prefix and the manifest row in one transaction, so
|
|
897
870
|
* recategorising no longer requires `patch delete` + fresh export.
|
|
898
871
|
*/
|
|
899
872
|
category?: string;
|
|
900
873
|
/**
|
|
901
|
-
* Move the patch to this exact
|
|
902
|
-
* with a pointer to `patch reorder` (which renumbers siblings)
|
|
874
|
+
* Move the patch to this exact unused sparse order. Collisions refuse
|
|
875
|
+
* with a pointer to `patch reorder` (which renumbers siblings). An
|
|
903
876
|
* order change is projected through cross-patch lint first.
|
|
904
877
|
*/
|
|
905
878
|
order?: number;
|
|
906
879
|
/**
|
|
907
880
|
* Replacement description. Omit to leave the description unchanged
|
|
908
|
-
* (intentional
|
|
881
|
+
* (intentional: operators frequently want to relabel the slug
|
|
909
882
|
* without touching the description).
|
|
910
883
|
*/
|
|
911
884
|
description?: string;
|
|
912
|
-
/** Print the planned change without writing. */
|
|
913
|
-
dryRun?: boolean;
|
|
914
|
-
/** Skip the confirmation prompt (required for non-TTY). */
|
|
915
|
-
yes?: boolean;
|
|
916
|
-
/** Bypass force-mode patchPolicy refusals. */
|
|
917
|
-
forceUnsafe?: boolean;
|
|
918
|
-
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
919
|
-
waitLock?: number | boolean;
|
|
920
885
|
}
|
|
921
886
|
/**
|
|
922
887
|
* Options for the patch reorder command.
|
|
923
888
|
*/
|
|
924
|
-
export interface PatchReorderOptions {
|
|
889
|
+
export interface PatchReorderOptions extends PatchLockWaitable {
|
|
925
890
|
to?: number;
|
|
926
891
|
before?: string;
|
|
927
892
|
after?: string;
|
|
928
893
|
yes?: boolean;
|
|
929
894
|
dryRun?: boolean;
|
|
930
895
|
forceUnsafe?: boolean;
|
|
931
|
-
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
932
|
-
waitLock?: number | boolean;
|
|
933
896
|
}
|
|
934
897
|
/**
|
|
935
898
|
* Options for the patch compact command.
|
|
936
899
|
*/
|
|
937
|
-
export interface PatchCompactOptions {
|
|
938
|
-
/** Skip confirmation prompt; required for non-TTY runs. */
|
|
939
|
-
yes?: boolean;
|
|
940
|
-
/** Print what would happen without writing anything. */
|
|
941
|
-
dryRun?: boolean;
|
|
942
|
-
/** Bypass force-mode patchPolicy refusals. */
|
|
943
|
-
forceUnsafe?: boolean;
|
|
944
|
-
/** Wait budget for the patch directory lock (`--wait-lock [seconds]`). */
|
|
945
|
-
waitLock?: number | boolean;
|
|
900
|
+
export interface PatchCompactOptions extends Confirmable, DryRunnable, PatchLockWaitable, UnsafeOverridable {
|
|
946
901
|
}
|
|
947
902
|
/**
|
|
948
903
|
* Options for the status command.
|
|
@@ -952,9 +907,9 @@ export interface StatusOptions {
|
|
|
952
907
|
/**
|
|
953
908
|
* Report the engine-session lock instead of file status:
|
|
954
909
|
* holder pid, the command it is running, how long it has held the lock,
|
|
955
|
-
* and how many waiters are queued behind it. Read-only
|
|
910
|
+
* and how many waiters are queued behind it. Read-only: it never
|
|
956
911
|
* acquires the lock, so it is safe to run while a build or test holds
|
|
957
|
-
* it, which is
|
|
912
|
+
* it, which is when an operator usually asks.
|
|
958
913
|
*/
|
|
959
914
|
lock?: boolean;
|
|
960
915
|
unmanaged?: boolean;
|
|
@@ -967,7 +922,7 @@ export interface StatusOptions {
|
|
|
967
922
|
ownership?: boolean;
|
|
968
923
|
/**
|
|
969
924
|
* Print the recorded test-packaging coverage of the last build baseline
|
|
970
|
-
* (scope, timestamp, recording invocation) and exit. Read-only
|
|
925
|
+
* (scope, timestamp, recording invocation) and exit. Read-only, and the
|
|
971
926
|
* counterpart to the out-of-coverage test refusal.
|
|
972
927
|
*/
|
|
973
928
|
testCoverage?: boolean;
|
|
@@ -982,18 +937,18 @@ export interface StatusOptions {
|
|
|
982
937
|
summary?: boolean;
|
|
983
938
|
/**
|
|
984
939
|
* With `--json` (and composing with `--summary`), append an additive
|
|
985
|
-
* `ownership` block
|
|
986
|
-
* managed/unmanaged/conflict counts
|
|
987
|
-
* classification, and the check verdict from
|
|
988
|
-
* back-to-back `status` invocations.
|
|
989
|
-
* semantics are unchanged, so ownership conflicts still fail
|
|
990
|
-
* human `--ownership` mode. Refused without `--json`.
|
|
940
|
+
* `ownership` block (the flat path→owning-patch rows plus
|
|
941
|
+
* managed/unmanaged/conflict counts) so a gate reads ownership,
|
|
942
|
+
* classification, and the check verdict from one scan instead of three
|
|
943
|
+
* back-to-back `status` invocations. This is a modifier rather than a
|
|
944
|
+
* mode: exit semantics are unchanged, so ownership conflicts still fail
|
|
945
|
+
* only the human `--ownership` mode. Refused without `--json`.
|
|
991
946
|
*/
|
|
992
947
|
includeOwnership?: boolean;
|
|
993
948
|
/**
|
|
994
949
|
* Exit non-zero when any classification in the fail policy is
|
|
995
950
|
* non-empty (default policy: unmanaged, patch-owned-drift, conflict).
|
|
996
|
-
* Composes with the default view and `--json
|
|
951
|
+
* Composes with the default view and `--json`. Refused alongside
|
|
997
952
|
* `--raw`/`--unmanaged`/`--ownership`/`--test-coverage`.
|
|
998
953
|
*/
|
|
999
954
|
check?: boolean;
|
|
@@ -1009,7 +964,7 @@ export interface StatusOptions {
|
|
|
1009
964
|
*/
|
|
1010
965
|
export interface TokenAddOptions {
|
|
1011
966
|
/**
|
|
1012
|
-
* Required for a base declaration
|
|
967
|
+
* Required for a base declaration. Optional under
|
|
1013
968
|
* {@link TokenAddOptions.variant}, which routes into a `:root<selector>`
|
|
1014
969
|
* block where no category applies.
|
|
1015
970
|
*/
|
|
@@ -1084,8 +1039,8 @@ export interface LintCommandOptions {
|
|
|
1084
1039
|
/**
|
|
1085
1040
|
* When set, tag each issue as `introduced` or `cumulative` based on
|
|
1086
1041
|
* whether its file changed since this git revision (e.g. `HEAD`, a
|
|
1087
|
-
* branch name, or a SHA). Issues are not filtered
|
|
1088
|
-
* prints
|
|
1042
|
+
* branch name, or a SHA). Issues are not filtered and the full set
|
|
1043
|
+
* still prints, but a diff-scoped summary makes it easy to see which
|
|
1089
1044
|
* errors the current task introduced.
|
|
1090
1045
|
*/
|
|
1091
1046
|
since?: string;
|
|
@@ -1108,8 +1063,8 @@ export interface LintCommandOptions {
|
|
|
1108
1063
|
* On a repo where `import` or `rebase` has just applied the full queue,
|
|
1109
1064
|
* the aggregate diff sums every patch's changes, and the patch-size
|
|
1110
1065
|
* advisory rules (`large-patch-lines`, `large-patch-files`) fire against
|
|
1111
|
-
* that sum
|
|
1112
|
-
* patches. `--per-patch` rescopes the diff to each patch's own
|
|
1066
|
+
* that sum, reporting "Patch is 37529 lines" for a queue of
|
|
1067
|
+
* individually-fine patches. `--per-patch` rescopes the diff to each patch's own
|
|
1113
1068
|
* `filesAffected`, honours the patch's own `lintIgnore`, and runs the
|
|
1114
1069
|
* cross-patch rules once over the whole queue so queue-level findings
|
|
1115
1070
|
* still surface.
|
|
@@ -1122,7 +1077,7 @@ export interface LintCommandOptions {
|
|
|
1122
1077
|
* Restrict `--per-patch` to a named subset of the queue (by filename,
|
|
1123
1078
|
* filename ± `.patch`, or manifest `name`). Lets a change that touches a
|
|
1124
1079
|
* handful of patches run the per-patch gate over just those instead of
|
|
1125
|
-
* the full ~90-patch queue. Only valid with {@link perPatch}
|
|
1080
|
+
* the full ~90-patch queue. Only valid with {@link perPatch}. Queue-level
|
|
1126
1081
|
* findings (policy, cross-patch) are scoped to files the subset touches.
|
|
1127
1082
|
*/
|
|
1128
1083
|
patches?: string[];
|