@hominis/fireforge 0.43.1 → 0.44.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 +153 -0
- package/README.md +3 -3
- package/dist/bin/fireforge.d.ts +4 -9
- package/dist/bin/fireforge.js +42 -40
- package/dist/build-info.json +4 -4
- package/dist/src/cli.js +74 -8
- package/dist/src/commands/bootstrap.js +17 -20
- package/dist/src/commands/build.js +25 -32
- package/dist/src/commands/config.js +34 -41
- package/dist/src/commands/discard.js +8 -9
- package/dist/src/commands/doctor-check-core.d.ts +13 -18
- package/dist/src/commands/doctor-check-core.js +8 -35
- package/dist/src/commands/doctor-external-toolchains.js +2 -2
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +18 -0
- package/dist/src/commands/{doctor-furnace-manifest-sync.js → doctor-furnace-config-sync.js} +27 -26
- package/dist/src/commands/doctor-furnace-jar.d.ts +7 -9
- package/dist/src/commands/doctor-furnace-jar.js +7 -9
- package/dist/src/commands/doctor-furnace.js +21 -24
- package/dist/src/commands/doctor-orphaned-harness.d.ts +16 -20
- package/dist/src/commands/doctor-orphaned-harness.js +18 -44
- package/dist/src/commands/doctor-patch-manifest.d.ts +8 -0
- package/dist/src/commands/doctor-patch-manifest.js +155 -0
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +2 -0
- package/dist/src/commands/{doctor/post-rebase-audit.js → doctor-post-rebase-audit.js} +3 -3
- package/dist/src/commands/doctor-working-tree.d.ts +10 -12
- package/dist/src/commands/doctor-working-tree.js +11 -18
- package/dist/src/commands/doctor.d.ts +1 -1
- package/dist/src/commands/doctor.js +64 -96
- package/dist/src/commands/download.js +32 -48
- package/dist/src/commands/export-all.js +29 -33
- package/dist/src/commands/export-flow.js +6 -6
- package/dist/src/commands/export-placement-conflicts.js +10 -9
- package/dist/src/commands/export-placement-gate.js +5 -5
- package/dist/src/commands/export-shared.d.ts +30 -33
- package/dist/src/commands/export-shared.js +45 -43
- package/dist/src/commands/export.js +21 -27
- package/dist/src/commands/furnace/apply.js +14 -23
- package/dist/src/commands/furnace/chrome-doc-remove.js +14 -21
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +23 -23
- package/dist/src/commands/furnace/chrome-doc-templates.js +23 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +26 -29
- package/dist/src/commands/furnace/chrome-doc.d.ts +16 -17
- package/dist/src/commands/furnace/chrome-doc.js +31 -41
- package/dist/src/commands/furnace/create-browser-test.d.ts +4 -4
- package/dist/src/commands/furnace/create-browser-test.js +8 -8
- package/dist/src/commands/furnace/create-mochikit.d.ts +6 -7
- package/dist/src/commands/furnace/create-mochikit.js +8 -9
- package/dist/src/commands/furnace/create-readback.d.ts +12 -13
- package/dist/src/commands/furnace/create-readback.js +12 -13
- package/dist/src/commands/furnace/create-templates.d.ts +22 -28
- package/dist/src/commands/furnace/create-templates.js +35 -30
- package/dist/src/commands/furnace/create-xpcshell.js +2 -2
- package/dist/src/commands/furnace/create.js +33 -23
- package/dist/src/commands/furnace/deploy.js +16 -24
- package/dist/src/commands/furnace/diff.js +15 -10
- package/dist/src/commands/furnace/init.js +33 -36
- package/dist/src/commands/furnace/override.js +23 -25
- package/dist/src/commands/furnace/preview.js +47 -67
- package/dist/src/commands/furnace/refresh.js +12 -16
- package/dist/src/commands/furnace/remove-mutations.d.ts +3 -6
- package/dist/src/commands/furnace/remove-mutations.js +14 -17
- package/dist/src/commands/furnace/remove-state.js +1 -1
- package/dist/src/commands/furnace/remove.js +33 -38
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +8 -11
- package/dist/src/commands/furnace/rename-xpcshell.js +8 -11
- package/dist/src/commands/furnace/rename.js +59 -69
- package/dist/src/commands/furnace/scan.js +19 -33
- package/dist/src/commands/furnace/status.js +12 -9
- package/dist/src/commands/furnace/sync.js +9 -16
- package/dist/src/commands/furnace/validate.js +20 -20
- package/dist/src/commands/import.js +48 -37
- package/dist/src/commands/lint-per-patch.js +15 -10
- package/dist/src/commands/lint-per-run-checkjs.d.ts +13 -13
- package/dist/src/commands/lint-per-run-checkjs.js +13 -13
- package/dist/src/commands/lint-report.js +6 -7
- package/dist/src/commands/lint.d.ts +15 -16
- package/dist/src/commands/lint.js +86 -102
- package/dist/src/commands/package.js +6 -11
- package/dist/src/commands/patch/compact.js +1 -1
- package/dist/src/commands/patch/delete.js +24 -33
- package/dist/src/commands/patch/index.d.ts +5 -6
- package/dist/src/commands/patch/index.js +10 -12
- package/dist/src/commands/patch/lint-ignore.js +14 -13
- package/dist/src/commands/patch/move-files-create.d.ts +6 -6
- package/dist/src/commands/patch/move-files-create.js +8 -8
- package/dist/src/commands/patch/move-files-into.d.ts +6 -6
- package/dist/src/commands/patch/move-files-into.js +8 -8
- package/dist/src/commands/patch/patch-context.d.ts +2 -3
- package/dist/src/commands/patch/patch-context.js +2 -3
- package/dist/src/commands/patch/rename.d.ts +10 -11
- package/dist/src/commands/patch/rename.js +11 -12
- package/dist/src/commands/patch/reorder.js +8 -9
- package/dist/src/commands/patch/split-plan.js +1 -1
- package/dist/src/commands/patch/split.d.ts +8 -10
- package/dist/src/commands/patch/split.js +9 -11
- package/dist/src/commands/patch/staged-dependency-validate.js +8 -8
- package/dist/src/commands/patch/staged-dependency.js +7 -3
- package/dist/src/commands/patch/tier.d.ts +9 -9
- package/dist/src/commands/patch/tier.js +18 -15
- package/dist/src/commands/re-export-adjacent.js +9 -8
- package/dist/src/commands/re-export-bulk-scan.d.ts +9 -9
- package/dist/src/commands/re-export-bulk-scan.js +22 -21
- package/dist/src/commands/re-export-drift.js +10 -10
- package/dist/src/commands/re-export-files.d.ts +6 -7
- package/dist/src/commands/re-export-files.js +34 -44
- package/dist/src/commands/re-export-lint.d.ts +10 -13
- package/dist/src/commands/re-export-lint.js +16 -14
- package/dist/src/commands/re-export-options.d.ts +6 -6
- package/dist/src/commands/re-export-options.js +6 -6
- package/dist/src/commands/re-export-register.d.ts +4 -10
- package/dist/src/commands/re-export-register.js +5 -11
- package/dist/src/commands/re-export-scan.js +1 -1
- package/dist/src/commands/re-export-single.d.ts +3 -3
- package/dist/src/commands/re-export-single.js +33 -25
- package/dist/src/commands/re-export.js +13 -21
- package/dist/src/commands/rebase/abort.js +3 -3
- package/dist/src/commands/rebase/confirm.js +2 -1
- package/dist/src/commands/rebase/continue.d.ts +1 -1
- package/dist/src/commands/rebase/continue.js +14 -9
- package/dist/src/commands/rebase/index.js +11 -11
- package/dist/src/commands/rebase/patch-loop.d.ts +7 -1
- package/dist/src/commands/rebase/patch-loop.js +60 -39
- package/dist/src/commands/rebase/summary.js +1 -1
- package/dist/src/commands/register.js +5 -7
- package/dist/src/commands/reset.js +2 -1
- package/dist/src/commands/resolve.d.ts +16 -13
- package/dist/src/commands/resolve.js +30 -33
- package/dist/src/commands/run.js +33 -35
- package/dist/src/commands/setup-support.js +15 -19
- package/dist/src/commands/setup.js +13 -9
- package/dist/src/commands/status-check.d.ts +6 -6
- package/dist/src/commands/status-json.d.ts +6 -6
- package/dist/src/commands/status-json.js +5 -0
- package/dist/src/commands/status-output.d.ts +5 -5
- package/dist/src/commands/status-output.js +6 -6
- package/dist/src/commands/status-ownership.d.ts +16 -14
- package/dist/src/commands/status-ownership.js +16 -14
- package/dist/src/commands/status.js +42 -34
- package/dist/src/commands/test-build-phase.js +26 -13
- package/dist/src/commands/test-diagnose.js +44 -44
- package/dist/src/commands/test-register.js +1 -0
- package/dist/src/commands/test-run.d.ts +14 -16
- package/dist/src/commands/test-run.js +21 -13
- package/dist/src/commands/test-stale-gate.d.ts +15 -16
- package/dist/src/commands/test-stale-gate.js +15 -16
- package/dist/src/commands/test-verdict.d.ts +20 -3
- package/dist/src/commands/test-verdict.js +30 -0
- package/dist/src/commands/test.js +83 -76
- package/dist/src/commands/token-coverage.js +3 -4
- package/dist/src/commands/token.js +16 -18
- package/dist/src/commands/tree.js +47 -31
- package/dist/src/commands/typecheck.d.ts +10 -12
- package/dist/src/commands/typecheck.js +24 -27
- package/dist/src/commands/verify.js +13 -15
- package/dist/src/commands/watch.js +21 -23
- package/dist/src/commands/wire.js +52 -62
- package/dist/src/core/ast-utils.d.ts +8 -7
- package/dist/src/core/ast-utils.js +8 -7
- package/dist/src/core/branding.d.ts +9 -14
- package/dist/src/core/branding.js +7 -11
- package/dist/src/core/browser-wire.d.ts +1 -1
- package/dist/src/core/browser-wire.js +14 -19
- package/dist/src/core/build-audit-platform.js +25 -33
- package/dist/src/core/build-audit-registration.js +17 -25
- package/dist/src/core/build-audit-resolve.d.ts +15 -17
- package/dist/src/core/build-audit-resolve.js +39 -36
- package/dist/src/core/build-audit-transforms.js +18 -19
- package/dist/src/core/build-audit.js +28 -42
- package/dist/src/core/build-baseline-types.d.ts +29 -35
- package/dist/src/core/build-baseline.d.ts +5 -4
- package/dist/src/core/build-baseline.js +14 -14
- package/dist/src/core/build-overwrite-guard.d.ts +7 -14
- package/dist/src/core/build-overwrite-guard.js +17 -27
- package/dist/src/core/build-prepare.d.ts +2 -2
- package/dist/src/core/build-prepare.js +8 -9
- package/dist/src/core/config-mutate.js +20 -19
- package/dist/src/core/config-state.js +12 -4
- package/dist/src/core/config-validate.js +8 -5
- package/dist/src/core/config.d.ts +5 -8
- package/dist/src/core/config.js +7 -16
- package/dist/src/core/coverage-extend.d.ts +15 -13
- package/dist/src/core/coverage-extend.js +15 -13
- package/dist/src/core/destructive.d.ts +31 -9
- package/dist/src/core/destructive.js +29 -26
- package/dist/src/core/diff-hunks.js +10 -12
- package/dist/src/core/discard-baseline.d.ts +8 -8
- package/dist/src/core/discard-baseline.js +16 -15
- package/dist/src/core/display-state.d.ts +12 -14
- package/dist/src/core/display-state.js +12 -14
- package/dist/src/core/engine-changes.d.ts +2 -4
- package/dist/src/core/engine-changes.js +2 -4
- package/dist/src/core/engine-precondition.d.ts +28 -13
- package/dist/src/core/engine-precondition.js +25 -10
- package/dist/src/core/engine-session-lock.d.ts +47 -21
- package/dist/src/core/engine-session-lock.js +168 -33
- package/dist/src/core/export-moved-code-shape.d.ts +10 -10
- package/dist/src/core/export-moved-code-shape.js +10 -10
- package/dist/src/core/file-lock.d.ts +62 -5
- package/dist/src/core/file-lock.js +196 -59
- package/dist/src/core/firefox-cache.js +1 -3
- package/dist/src/core/firefox-extract.js +10 -14
- package/dist/src/core/firefox.d.ts +7 -5
- package/dist/src/core/firefox.js +4 -5
- package/dist/src/core/furnace-apply-dry-run.d.ts +2 -2
- package/dist/src/core/furnace-apply-dry-run.js +3 -2
- package/dist/src/core/furnace-apply-ftl.d.ts +7 -9
- package/dist/src/core/furnace-apply-ftl.js +16 -13
- package/dist/src/core/furnace-apply-helpers.d.ts +7 -7
- package/dist/src/core/furnace-apply-helpers.js +30 -21
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +8 -9
- package/dist/src/core/furnace-apply-overwrite-warn.js +8 -9
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +3 -4
- package/dist/src/core/furnace-apply-undeploy-actions.js +3 -4
- package/dist/src/core/furnace-apply.d.ts +5 -8
- package/dist/src/core/furnace-apply.js +19 -24
- package/dist/src/core/furnace-checksum-utils.d.ts +14 -0
- package/dist/src/core/furnace-checksum-utils.js +16 -0
- package/dist/src/core/furnace-config.d.ts +21 -30
- package/dist/src/core/furnace-config.js +32 -54
- package/dist/src/core/furnace-constants.d.ts +8 -0
- package/dist/src/core/furnace-constants.js +10 -2
- package/dist/src/core/furnace-css-fragments.d.ts +5 -5
- package/dist/src/core/furnace-css-fragments.js +5 -5
- package/dist/src/core/furnace-jsconfig.d.ts +11 -12
- package/dist/src/core/furnace-jsconfig.js +11 -12
- package/dist/src/core/furnace-marker.d.ts +7 -8
- package/dist/src/core/furnace-marker.js +7 -8
- package/dist/src/core/furnace-operation.d.ts +31 -0
- package/dist/src/core/furnace-operation.js +54 -17
- package/dist/src/core/furnace-precondition.d.ts +61 -0
- package/dist/src/core/furnace-precondition.js +67 -0
- package/dist/src/core/furnace-registration-remove.d.ts +5 -6
- package/dist/src/core/furnace-registration-remove.js +6 -7
- package/dist/src/core/furnace-registration-validate.d.ts +13 -0
- package/dist/src/core/furnace-registration-validate.js +20 -1
- package/dist/src/core/furnace-registration.d.ts +5 -6
- package/dist/src/core/furnace-registration.js +10 -12
- package/dist/src/core/furnace-rollback.js +7 -7
- package/dist/src/core/furnace-scanner.d.ts +1 -0
- package/dist/src/core/furnace-scanner.js +1 -2
- package/dist/src/core/furnace-stale-export.d.ts +10 -10
- package/dist/src/core/furnace-stale-export.js +10 -10
- package/dist/src/core/furnace-state-persist.d.ts +6 -8
- package/dist/src/core/furnace-state-persist.js +6 -8
- package/dist/src/core/furnace-validate-accessibility.d.ts +22 -0
- package/dist/src/core/furnace-validate-accessibility.js +310 -1
- package/dist/src/core/furnace-validate-compatibility.js +141 -1
- package/dist/src/core/furnace-validate-helpers.d.ts +5 -116
- package/dist/src/core/furnace-validate-helpers.js +0 -491
- package/dist/src/core/furnace-validate-registration.d.ts +7 -0
- package/dist/src/core/furnace-validate-registration.js +115 -41
- package/dist/src/core/furnace-validate.d.ts +16 -0
- package/dist/src/core/furnace-validate.js +188 -145
- package/dist/src/core/furnace-version-drift.d.ts +10 -11
- package/dist/src/core/furnace-version-drift.js +10 -11
- package/dist/src/core/git-base.d.ts +21 -9
- package/dist/src/core/git-base.js +24 -9
- package/dist/src/core/git-diff.d.ts +20 -9
- package/dist/src/core/git-diff.js +148 -63
- package/dist/src/core/git-file-ops.d.ts +19 -19
- package/dist/src/core/git-file-ops.js +19 -19
- package/dist/src/core/git-readonly-index.d.ts +53 -19
- package/dist/src/core/git-readonly-index.js +75 -31
- package/dist/src/core/git-status.d.ts +5 -6
- package/dist/src/core/git-status.js +5 -6
- package/dist/src/core/git.d.ts +9 -10
- package/dist/src/core/git.js +57 -71
- package/dist/src/core/license-headers.d.ts +17 -23
- package/dist/src/core/license-headers.js +17 -23
- package/dist/src/core/mach-build-artifacts.d.ts +9 -9
- package/dist/src/core/mach-build-artifacts.js +57 -19
- package/dist/src/core/mach-error-hints.js +42 -29
- package/dist/src/core/mach-known-noise-filter.d.ts +15 -16
- package/dist/src/core/mach-known-noise-filter.js +18 -20
- package/dist/src/core/mach-mozconfig.d.ts +14 -0
- package/dist/src/core/mach-mozconfig.js +30 -0
- package/dist/src/core/mach-resource-shim.d.ts +43 -58
- package/dist/src/core/mach-resource-shim.js +50 -67
- package/dist/src/core/mach.d.ts +37 -41
- package/dist/src/core/mach.js +50 -51
- package/dist/src/core/marionette-port.d.ts +36 -1
- package/dist/src/core/marionette-port.js +96 -31
- package/dist/src/core/marionette-preflight.d.ts +8 -12
- package/dist/src/core/marionette-preflight.js +86 -52
- package/dist/src/core/mochitest-server-port.d.ts +42 -0
- package/dist/src/core/mochitest-server-port.js +119 -0
- package/dist/src/core/module-resolution-preflight.d.ts +9 -11
- package/dist/src/core/module-resolution-preflight.js +9 -11
- package/dist/src/core/moz-manifest-helpers.d.ts +79 -0
- package/dist/src/core/moz-manifest-helpers.js +163 -0
- package/dist/src/core/{manifest-register.d.ts → moz-manifest-register.d.ts} +1 -1
- package/dist/src/core/{manifest-register.js → moz-manifest-register.js} +13 -28
- package/dist/src/core/{manifest-rules.d.ts → moz-manifest-rules.d.ts} +10 -1
- package/dist/src/core/{manifest-rules.js → moz-manifest-rules.js} +31 -24
- package/dist/src/core/{manifest-tokenizers.d.ts → moz-manifest-tokenizers.d.ts} +3 -5
- package/dist/src/core/{manifest-tokenizers.js → moz-manifest-tokenizers.js} +9 -12
- package/dist/src/core/ownership-table.d.ts +14 -16
- package/dist/src/core/ownership-table.js +14 -16
- package/dist/src/core/parser-fallback.d.ts +15 -1
- package/dist/src/core/parser-fallback.js +22 -3
- package/dist/src/core/patch-apply-fuzz.d.ts +10 -12
- package/dist/src/core/patch-apply-fuzz.js +15 -18
- package/dist/src/core/patch-apply.d.ts +13 -34
- package/dist/src/core/patch-apply.js +16 -76
- package/dist/src/core/patch-artifact-normalize.d.ts +13 -15
- package/dist/src/core/patch-artifact-normalize.js +13 -15
- package/dist/src/core/patch-export-metadata.d.ts +12 -2
- package/dist/src/core/patch-export-metadata.js +13 -4
- package/dist/src/core/patch-export-update.d.ts +13 -1
- package/dist/src/core/patch-export-update.js +25 -8
- package/dist/src/core/patch-export.d.ts +15 -8
- package/dist/src/core/patch-export.js +10 -11
- package/dist/src/core/patch-files.d.ts +5 -6
- package/dist/src/core/patch-files.js +5 -6
- package/dist/src/core/patch-identifier-suggest.d.ts +7 -12
- package/dist/src/core/patch-identifier-suggest.js +14 -19
- package/dist/src/core/patch-lint-binary.d.ts +51 -0
- package/dist/src/core/patch-lint-binary.js +39 -0
- package/dist/src/core/{lint-cache.d.ts → patch-lint-cache.d.ts} +5 -5
- package/dist/src/core/{lint-cache.js → patch-lint-cache.js} +21 -23
- package/dist/src/core/patch-lint-checkjs.d.ts +16 -16
- package/dist/src/core/patch-lint-checkjs.js +41 -20
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +6 -9
- package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -14
- package/dist/src/core/patch-lint-creators.d.ts +8 -8
- package/dist/src/core/patch-lint-creators.js +8 -8
- package/dist/src/core/patch-lint-cross.d.ts +17 -20
- package/dist/src/core/patch-lint-cross.js +16 -16
- package/dist/src/core/patch-lint-css.d.ts +3 -5
- package/dist/src/core/patch-lint-css.js +17 -22
- package/dist/src/core/patch-lint-diff-tag.d.ts +14 -16
- package/dist/src/core/patch-lint-diff-tag.js +14 -16
- package/dist/src/core/patch-lint-jsdoc.d.ts +7 -8
- package/dist/src/core/patch-lint-jsdoc.js +26 -19
- package/dist/src/core/patch-lint-mozbuild.js +20 -20
- package/dist/src/core/patch-lint-observer.d.ts +7 -7
- package/dist/src/core/patch-lint-observer.js +7 -7
- package/dist/src/core/patch-lint.d.ts +38 -29
- package/dist/src/core/patch-lint.js +89 -121
- package/dist/src/core/patch-lock.d.ts +1 -1
- package/dist/src/core/patch-lock.js +45 -9
- package/dist/src/core/patch-manifest-consistency.d.ts +57 -6
- package/dist/src/core/patch-manifest-consistency.js +111 -40
- package/dist/src/core/patch-manifest-files-affected.d.ts +43 -0
- package/dist/src/core/patch-manifest-files-affected.js +77 -0
- package/dist/src/core/patch-manifest-io.js +14 -18
- package/dist/src/core/patch-manifest-resolve.d.ts +9 -12
- package/dist/src/core/patch-manifest-resolve.js +9 -12
- package/dist/src/core/patch-manifest-validate.d.ts +6 -1
- package/dist/src/core/patch-manifest-validate.js +25 -13
- package/dist/src/core/patch-manifest.d.ts +2 -1
- package/dist/src/core/patch-manifest.js +2 -1
- package/dist/src/core/patch-parse.d.ts +24 -13
- package/dist/src/core/patch-parse.js +19 -14
- package/dist/src/core/patch-policy.d.ts +2 -2
- package/dist/src/core/patch-policy.js +2 -2
- package/dist/src/core/patch-registration-refs.d.ts +7 -8
- package/dist/src/core/patch-registration-refs.js +9 -9
- package/dist/src/core/process-cpu-time.d.ts +12 -0
- package/dist/src/core/process-cpu-time.js +52 -0
- package/dist/src/core/rebase-session.d.ts +38 -26
- package/dist/src/core/rebase-session.js +55 -28
- package/dist/src/core/register-browser-content.js +9 -74
- package/dist/src/core/{register-test-manifest.js → register-browser-test.js} +7 -42
- package/dist/src/core/register-module.js +10 -43
- package/dist/src/core/register-scaffold.d.ts +8 -8
- package/dist/src/core/register-scaffold.js +10 -10
- package/dist/src/core/register-shared-css.d.ts +9 -12
- package/dist/src/core/register-shared-css.js +17 -87
- package/dist/src/core/register-xpcshell-test.d.ts +6 -7
- package/dist/src/core/register-xpcshell-test.js +7 -8
- package/dist/src/core/shared-ftl.js +12 -4
- package/dist/src/core/state-file.d.ts +45 -0
- package/dist/src/core/state-file.js +34 -0
- package/dist/src/core/status-binary.d.ts +18 -11
- package/dist/src/core/status-binary.js +19 -12
- package/dist/src/core/status-classify.d.ts +30 -36
- package/dist/src/core/status-classify.js +21 -26
- package/dist/src/core/test-changed-prefs.d.ts +30 -0
- package/dist/src/core/test-changed-prefs.js +78 -0
- package/dist/src/core/test-harness-crash.d.ts +25 -63
- package/dist/src/core/test-harness-crash.js +121 -142
- package/dist/src/core/test-harness-signature.d.ts +18 -0
- package/dist/src/core/test-harness-signature.js +13 -0
- package/dist/src/core/test-path-scope.d.ts +12 -15
- package/dist/src/core/test-path-scope.js +15 -18
- package/dist/src/core/test-stale-check.d.ts +17 -17
- package/dist/src/core/test-stale-check.js +50 -43
- package/dist/src/core/test-stall-triage.d.ts +51 -0
- package/dist/src/core/test-stall-triage.js +126 -0
- package/dist/src/core/token-category.js +66 -14
- package/dist/src/core/token-coverage.js +9 -9
- package/dist/src/core/token-dark-mode.d.ts +9 -11
- package/dist/src/core/token-dark-mode.js +29 -13
- package/dist/src/core/token-docs.d.ts +2 -0
- package/dist/src/core/token-docs.js +3 -1
- package/dist/src/core/token-manager.d.ts +10 -2
- package/dist/src/core/token-manager.js +17 -8
- package/dist/src/core/token-scaffold.d.ts +7 -7
- package/dist/src/core/token-scaffold.js +7 -7
- package/dist/src/core/token-variant.d.ts +4 -4
- package/dist/src/core/token-variant.js +28 -6
- package/dist/src/core/toolchain-preflight.d.ts +20 -21
- package/dist/src/core/toolchain-preflight.js +28 -31
- package/dist/src/core/tree-guard.js +12 -2
- package/dist/src/core/tree-store.d.ts +41 -27
- package/dist/src/core/tree-store.js +68 -43
- package/dist/src/core/typecheck-shim.d.ts +23 -24
- package/dist/src/core/typecheck-shim.js +23 -24
- package/dist/src/core/typecheck.js +15 -9
- package/dist/src/core/wire-destroy.d.ts +3 -3
- package/dist/src/core/wire-destroy.js +7 -15
- package/dist/src/core/wire-dom-fragment.d.ts +9 -17
- package/dist/src/core/wire-dom-fragment.js +11 -44
- package/dist/src/core/wire-init.d.ts +2 -3
- package/dist/src/core/wire-init.js +8 -19
- package/dist/src/core/wire-subscript.d.ts +2 -3
- package/dist/src/core/wire-subscript.js +4 -13
- package/dist/src/core/wire-utils.d.ts +7 -8
- package/dist/src/core/wire-utils.js +7 -8
- package/dist/src/core/xpcshell-appdir.d.ts +38 -45
- package/dist/src/core/xpcshell-appdir.js +38 -45
- package/dist/src/errors/base.d.ts +37 -16
- package/dist/src/errors/base.js +37 -16
- package/dist/src/errors/build.d.ts +13 -1
- package/dist/src/errors/build.js +14 -2
- package/dist/src/errors/codes.d.ts +16 -0
- package/dist/src/errors/codes.js +16 -0
- package/dist/src/errors/furnace.d.ts +4 -4
- package/dist/src/errors/git.d.ts +6 -10
- package/dist/src/errors/git.js +6 -10
- package/dist/src/errors/patch.d.ts +7 -7
- package/dist/src/errors/patch.js +7 -7
- package/dist/src/errors/rebase.d.ts +4 -4
- package/dist/src/errors/rebase.js +4 -4
- package/dist/src/index.d.ts +7 -1
- package/dist/src/index.js +5 -0
- package/dist/src/types/commands/index.d.ts +2 -2
- package/dist/src/types/commands/options.d.ts +111 -70
- package/dist/src/types/commands/patches.d.ts +24 -34
- package/dist/src/types/commands/project.d.ts +5 -34
- package/dist/src/types/config.d.ts +25 -23
- package/dist/src/types/config.js +6 -1
- package/dist/src/types/furnace.d.ts +37 -13
- package/dist/src/types/furnace.js +19 -1
- package/dist/src/types/index.d.ts +3 -3
- package/dist/src/utils/build-info.d.ts +7 -8
- package/dist/src/utils/build-info.js +12 -11
- package/dist/src/utils/errors.d.ts +6 -8
- package/dist/src/utils/errors.js +6 -8
- package/dist/src/utils/logger.d.ts +27 -10
- package/dist/src/utils/logger.js +28 -16
- package/dist/src/utils/machine-output.d.ts +12 -0
- package/dist/src/utils/machine-output.js +33 -0
- package/dist/src/utils/options.d.ts +31 -14
- package/dist/src/utils/options.js +86 -30
- package/dist/src/utils/paths.d.ts +10 -8
- package/dist/src/utils/paths.js +10 -8
- package/dist/src/utils/platform.d.ts +0 -25
- package/dist/src/utils/platform.js +1 -42
- package/dist/src/utils/process-group.d.ts +9 -4
- package/dist/src/utils/process-group.js +19 -5
- package/dist/src/utils/process.d.ts +42 -7
- package/dist/src/utils/process.js +44 -17
- package/dist/src/utils/ps-duration.d.ts +31 -0
- package/dist/src/utils/ps-duration.js +70 -0
- package/dist/src/utils/regex.d.ts +9 -10
- package/dist/src/utils/regex.js +9 -10
- package/dist/src/utils/validation.d.ts +58 -28
- package/dist/src/utils/validation.js +60 -33
- package/package.json +3 -3
- package/dist/src/commands/doctor/post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-furnace-manifest-sync.d.ts +0 -18
- package/dist/src/core/manifest-helpers.d.ts +0 -38
- package/dist/src/core/manifest-helpers.js +0 -120
- /package/dist/src/core/{lint-projection.d.ts → patch-lint-projection.d.ts} +0 -0
- /package/dist/src/core/{lint-projection.js → patch-lint-projection.js} +0 -0
- /package/dist/src/core/{register-test-manifest.d.ts → register-browser-test.d.ts} +0 -0
|
@@ -48,6 +48,22 @@ export declare const ExitCode: {
|
|
|
48
48
|
* missing profile, etc.).
|
|
49
49
|
*/
|
|
50
50
|
readonly SMOKE_LAUNCH_FAILURE: 13;
|
|
51
|
+
/**
|
|
52
|
+
* A `fireforge test` run produced a harness result that cannot be trusted
|
|
53
|
+
* — `engine/` moved (or became unprobeable) while the tests ran. Distinct
|
|
54
|
+
* from BUILD_ERROR because the two are opposites: a 5 is a suite that
|
|
55
|
+
* FAILED, a 14 is a suite whose result was THROWN AWAY. A consumer should
|
|
56
|
+
* re-run a 14 (after settling the writers) and must not report it as red.
|
|
57
|
+
*/
|
|
58
|
+
readonly INCONCLUSIVE: 14;
|
|
59
|
+
/**
|
|
60
|
+
* A lock wait expired: the run never started, because another FireForge
|
|
61
|
+
* process held the lock for the whole budget. Distinct from GENERAL_ERROR
|
|
62
|
+
* because nothing about the request was wrong — a consumer should re-queue
|
|
63
|
+
* it, with a larger `--wait-lock` budget, rather than treat it as a
|
|
64
|
+
* failure of the work it asked for.
|
|
65
|
+
*/
|
|
66
|
+
readonly LOCK_TIMEOUT: 15;
|
|
51
67
|
/**
|
|
52
68
|
* The user cancelled an interactive prompt. 130 = 128 + SIGINT, the
|
|
53
69
|
* conventional "interrupted by the user" code — scripts and CI can tell
|
package/dist/src/errors/codes.js
CHANGED
|
@@ -49,6 +49,22 @@ export const ExitCode = {
|
|
|
49
49
|
* missing profile, etc.).
|
|
50
50
|
*/
|
|
51
51
|
SMOKE_LAUNCH_FAILURE: 13,
|
|
52
|
+
/**
|
|
53
|
+
* A `fireforge test` run produced a harness result that cannot be trusted
|
|
54
|
+
* — `engine/` moved (or became unprobeable) while the tests ran. Distinct
|
|
55
|
+
* from BUILD_ERROR because the two are opposites: a 5 is a suite that
|
|
56
|
+
* FAILED, a 14 is a suite whose result was THROWN AWAY. A consumer should
|
|
57
|
+
* re-run a 14 (after settling the writers) and must not report it as red.
|
|
58
|
+
*/
|
|
59
|
+
INCONCLUSIVE: 14,
|
|
60
|
+
/**
|
|
61
|
+
* A lock wait expired: the run never started, because another FireForge
|
|
62
|
+
* process held the lock for the whole budget. Distinct from GENERAL_ERROR
|
|
63
|
+
* because nothing about the request was wrong — a consumer should re-queue
|
|
64
|
+
* it, with a larger `--wait-lock` budget, rather than treat it as a
|
|
65
|
+
* failure of the work it asked for.
|
|
66
|
+
*/
|
|
67
|
+
LOCK_TIMEOUT: 15,
|
|
52
68
|
/**
|
|
53
69
|
* The user cancelled an interactive prompt. 130 = 128 + SIGINT, the
|
|
54
70
|
* conventional "interrupted by the user" code — scripts and CI can tell
|
|
@@ -8,10 +8,10 @@ export declare class FurnaceError extends FireForgeError {
|
|
|
8
8
|
constructor(message: string, component?: string | undefined, cause?: Error, options?: {
|
|
9
9
|
/**
|
|
10
10
|
* Suppresses the "run furnace validate" advice line. Set by callers
|
|
11
|
-
* whose message already tells the user to run validate
|
|
12
|
-
* the validate command
|
|
13
|
-
* `
|
|
14
|
-
*
|
|
11
|
+
* whose message already tells the user to run validate, or that ARE
|
|
12
|
+
* the validate command. An explicit flag rather than sniffing the
|
|
13
|
+
* message for `furnace validate`, which drops the advice from any
|
|
14
|
+
* error that merely MENTIONS the command.
|
|
15
15
|
*/
|
|
16
16
|
omitValidateAdvice?: boolean;
|
|
17
17
|
});
|
package/dist/src/errors/git.d.ts
CHANGED
|
@@ -48,17 +48,13 @@ export declare class GitIndexLockError extends GitError {
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function isGitIndexLockConflict(error: unknown): boolean;
|
|
50
50
|
/**
|
|
51
|
-
* Error thrown when `git add` (monolithic or chunked) exceeds the
|
|
52
|
-
*
|
|
51
|
+
* Error thrown when `git add` (monolithic or chunked) exceeds the configured
|
|
52
|
+
* timeout while indexing the Firefox source tree.
|
|
53
53
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* from any other AbortError and gave the operator no actionable
|
|
59
|
-
* direction. This typed error carries the elapsed budget and the
|
|
60
|
-
* environment-variable override so the recovery path is
|
|
61
|
-
* self-documenting.
|
|
54
|
+
* A bare `AbortError: The operation was aborted` after ~15 minutes is
|
|
55
|
+
* indistinguishable from any other AbortError and gives the operator no
|
|
56
|
+
* actionable direction. This typed error carries the elapsed budget and the
|
|
57
|
+
* environment-variable override so the recovery path is self-documenting.
|
|
62
58
|
*/
|
|
63
59
|
export declare class GitIndexingTimeoutError extends GitError {
|
|
64
60
|
readonly phase: 'monolithic' | 'chunked';
|
package/dist/src/errors/git.js
CHANGED
|
@@ -114,17 +114,13 @@ export function isGitIndexLockConflict(error) {
|
|
|
114
114
|
/(unable to create|another git process seems to be running|file exists|locked)/i.test(error.message));
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
|
-
* Error thrown when `git add` (monolithic or chunked) exceeds the
|
|
118
|
-
*
|
|
117
|
+
* Error thrown when `git add` (monolithic or chunked) exceeds the configured
|
|
118
|
+
* timeout while indexing the Firefox source tree.
|
|
119
119
|
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* from any other AbortError and gave the operator no actionable
|
|
125
|
-
* direction. This typed error carries the elapsed budget and the
|
|
126
|
-
* environment-variable override so the recovery path is
|
|
127
|
-
* self-documenting.
|
|
120
|
+
* A bare `AbortError: The operation was aborted` after ~15 minutes is
|
|
121
|
+
* indistinguishable from any other AbortError and gives the operator no
|
|
122
|
+
* actionable direction. This typed error carries the elapsed budget and the
|
|
123
|
+
* environment-variable override so the recovery path is self-documenting.
|
|
128
124
|
*/
|
|
129
125
|
export class GitIndexingTimeoutError extends GitError {
|
|
130
126
|
phase;
|
|
@@ -2,13 +2,13 @@ import { FireForgeError } from './base.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Error thrown when `patches.json` exists but cannot be parsed or validated.
|
|
4
4
|
*
|
|
5
|
-
* This must be a HARD error on every mutating path.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* This must be a HARD error on every mutating path. Collapsing "corrupt"
|
|
6
|
+
* into "absent" — a `loadPatchesManifest` that returns null for both — makes
|
|
7
|
+
* the next `fireforge export` rebuild the manifest containing only the new
|
|
8
|
+
* patch, silently destroying every other patch's metadata (tiers,
|
|
9
|
+
* descriptions, lintIgnore, staged dependencies); a failed export's rollback
|
|
10
|
+
* then deletes `patches.json` outright, because the "before" state looked
|
|
11
|
+
* absent.
|
|
12
12
|
*/
|
|
13
13
|
export declare class PatchManifestCorruptError extends FireForgeError {
|
|
14
14
|
readonly manifestPath: string;
|
package/dist/src/errors/patch.js
CHANGED
|
@@ -4,13 +4,13 @@ import { ExitCode } from './codes.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Error thrown when `patches.json` exists but cannot be parsed or validated.
|
|
6
6
|
*
|
|
7
|
-
* This must be a HARD error on every mutating path.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
7
|
+
* This must be a HARD error on every mutating path. Collapsing "corrupt"
|
|
8
|
+
* into "absent" — a `loadPatchesManifest` that returns null for both — makes
|
|
9
|
+
* the next `fireforge export` rebuild the manifest containing only the new
|
|
10
|
+
* patch, silently destroying every other patch's metadata (tiers,
|
|
11
|
+
* descriptions, lintIgnore, staged dependencies); a failed export's rollback
|
|
12
|
+
* then deletes `patches.json` outright, because the "before" state looked
|
|
13
|
+
* absent.
|
|
14
14
|
*/
|
|
15
15
|
export class PatchManifestCorruptError extends FireForgeError {
|
|
16
16
|
manifestPath;
|
|
@@ -21,11 +21,11 @@ export declare class NoRebaseSessionError extends RebaseError {
|
|
|
21
21
|
/**
|
|
22
22
|
* Thrown when the session file exists but cannot be used.
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
* Without an error of its own, this case is reported as
|
|
25
25
|
* {@link NoRebaseSessionError} by `--continue`/`--abort` while `rebase`
|
|
26
|
-
*
|
|
27
|
-
* command
|
|
28
|
-
* always has a way out, and `--abort`
|
|
26
|
+
* reports {@link RebaseSessionExistsError} — a closed cycle in which each
|
|
27
|
+
* command points at the other two. The message names the file so an operator
|
|
28
|
+
* always has a way out, and `--abort` clears a corrupt session rather than
|
|
29
29
|
* refusing to run against one.
|
|
30
30
|
*/
|
|
31
31
|
export declare class CorruptRebaseSessionError extends RebaseError {
|
|
@@ -35,11 +35,11 @@ export class NoRebaseSessionError extends RebaseError {
|
|
|
35
35
|
/**
|
|
36
36
|
* Thrown when the session file exists but cannot be used.
|
|
37
37
|
*
|
|
38
|
-
*
|
|
38
|
+
* Without an error of its own, this case is reported as
|
|
39
39
|
* {@link NoRebaseSessionError} by `--continue`/`--abort` while `rebase`
|
|
40
|
-
*
|
|
41
|
-
* command
|
|
42
|
-
* always has a way out, and `--abort`
|
|
40
|
+
* reports {@link RebaseSessionExistsError} — a closed cycle in which each
|
|
41
|
+
* command points at the other two. The message names the file so an operator
|
|
42
|
+
* always has a way out, and `--abort` clears a corrupt session rather than
|
|
43
43
|
* refusing to run against one.
|
|
44
44
|
*/
|
|
45
45
|
export class CorruptRebaseSessionError extends RebaseError {
|
package/dist/src/index.d.ts
CHANGED
|
@@ -8,9 +8,15 @@
|
|
|
8
8
|
* but may change between minor versions until 1.0 is released. Pin to an
|
|
9
9
|
* exact version if you depend on the programmatic API.
|
|
10
10
|
*
|
|
11
|
+
* **What belongs here:** a type earns a place on this surface only if it is
|
|
12
|
+
* reachable from the signature of an exported VALUE — i.e. a consumer needs
|
|
13
|
+
* it to name an argument or a return. Everything else stays internal to
|
|
14
|
+
* `src/types/`.
|
|
15
|
+
*
|
|
11
16
|
* @packageDocumentation
|
|
12
17
|
*/
|
|
13
18
|
export { loadConfig, validateConfig } from './core/config.js';
|
|
19
|
+
export type { ApplyAllComponentsResult } from './core/furnace-apply.js';
|
|
14
20
|
export { applyAllComponents } from './core/furnace-apply.js';
|
|
15
21
|
export { ensureFurnaceConfig, loadFurnaceConfig, loadFurnaceState, saveFurnaceState, validateFurnaceConfig, } from './core/furnace-config.js';
|
|
16
22
|
export { validateAllComponents, validateComponent } from './core/furnace-validate.js';
|
|
@@ -20,4 +26,4 @@ export type { AddTokenOptions, AddTokenResult, TokenMode } from './core/token-ma
|
|
|
20
26
|
export { addToken, getTokensCssPath, validateTokenAdd } from './core/token-manager.js';
|
|
21
27
|
export { CancellationError, CommandError, FireForgeError, GeneralError, InvalidArgumentError, ResolutionError, } from './errors/base.js';
|
|
22
28
|
export { ExitCode } from './errors/codes.js';
|
|
23
|
-
export type { ApplyResult, BuildConfig,
|
|
29
|
+
export type { ApplyResult, BuildConfig, ComponentType, CustomComponentConfig, DryRunAction, FireForgeConfig, FirefoxConfig, FirefoxProduct, FurnaceConfig, FurnaceState, OverrideComponentConfig, OverrideType, ProjectLicense, StepError, ValidationIssue, WireConfig, } from './types/index.js';
|
package/dist/src/index.js
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* but may change between minor versions until 1.0 is released. Pin to an
|
|
10
10
|
* exact version if you depend on the programmatic API.
|
|
11
11
|
*
|
|
12
|
+
* **What belongs here:** a type earns a place on this surface only if it is
|
|
13
|
+
* reachable from the signature of an exported VALUE — i.e. a consumer needs
|
|
14
|
+
* it to name an argument or a return. Everything else stays internal to
|
|
15
|
+
* `src/types/`.
|
|
16
|
+
*
|
|
12
17
|
* @packageDocumentation
|
|
13
18
|
*/
|
|
14
19
|
export { loadConfig, validateConfig } from './core/config.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Re-exports all command-related types from focused sub-modules.
|
|
3
3
|
*/
|
|
4
|
-
export type { BuildOptions, DiscardOptions, DoctorOptions, DownloadOptions, ExportOptions, FurnaceApplyOptions, FurnaceCreateOptions, FurnaceDeployOptions, FurnaceOverrideOptions, FurnacePreviewOptions, FurnaceRefreshOptions, FurnaceRemoveOptions, FurnaceSyncOptions, FurnaceValidateOptions,
|
|
4
|
+
export type { BuildOptions, DiscardOptions, DoctorOptions, DownloadOptions, ExportOptions, FurnaceApplyOptions, FurnaceCreateOptions, FurnaceDeployOptions, FurnaceOverrideOptions, FurnacePreviewOptions, FurnaceRefreshOptions, FurnaceRemoveOptions, FurnaceSyncOptions, FurnaceValidateOptions, ImportOptions, LintCommandOptions, PackageOptions, PatchCompactOptions, PatchDeleteOptions, PatchLintIgnoreOptions, PatchMoveFilesOptions, PatchRenameOptions, PatchReorderOptions, PatchSplitOptions, PatchStagedDependencyOptions, PatchTierOptions, RebaseOptions, ReExportOptions, RegisterOptions, ResetOptions, RunOptions, SetupOptions, SourceSetOptions, StatusOptions, TestOptions, TokenAddOptions, WireOptions, } from './options.js';
|
|
5
5
|
export type { ImportSummary, PatchCategory, PatchesManifest, PatchInfo, PatchLintIssue, PatchMetadata, PatchResult, PatchStagedDependencies, PatchStagedForwardImport, PatchStagedRegistration, } from './patches.js';
|
|
6
|
-
export type { DoctorCheck,
|
|
6
|
+
export type { DoctorCheck, TokenCoverageFileEntry, TokenCoverageReport } from './project.js';
|
|
@@ -68,8 +68,8 @@ export interface BuildOptions {
|
|
|
68
68
|
rewriteMozinfo?: boolean;
|
|
69
69
|
/**
|
|
70
70
|
* Refuse the build (rather than warn) when it would overwrite engine
|
|
71
|
-
* content recorded in neither a patch body nor the pristine baseline
|
|
72
|
-
|
|
71
|
+
* content recorded in neither a patch body nor the pristine baseline.
|
|
72
|
+
* The default is a loud warning, because an interactive
|
|
73
73
|
* operator often means to discard the drift; a scripted gate on a
|
|
74
74
|
* multi-session checkout wants the hard stop.
|
|
75
75
|
*/
|
|
@@ -170,8 +170,7 @@ export interface ResetOptions {
|
|
|
170
170
|
export interface DiscardOptions {
|
|
171
171
|
/**
|
|
172
172
|
* Restore to pristine upstream (HEAD) instead of the patch-applied
|
|
173
|
-
* baseline
|
|
174
|
-
*).
|
|
173
|
+
* baseline, deleting patch-created files.
|
|
175
174
|
*/
|
|
176
175
|
toUpstream?: boolean;
|
|
177
176
|
/** Show what would be discarded without doing it */
|
|
@@ -190,6 +189,11 @@ export interface PackageOptions {
|
|
|
190
189
|
* Options for the import command.
|
|
191
190
|
*/
|
|
192
191
|
export interface ImportOptions {
|
|
192
|
+
/**
|
|
193
|
+
* Answer the engine-drift prompt non-interactively. Unlike `force`,
|
|
194
|
+
* this does NOT waive the patch-integrity gate.
|
|
195
|
+
*/
|
|
196
|
+
yes?: boolean;
|
|
193
197
|
/** Specific patches to apply (by name) */
|
|
194
198
|
patches?: string[];
|
|
195
199
|
/** Continue applying patches even if one fails */
|
|
@@ -272,13 +276,10 @@ export interface ReExportOptions {
|
|
|
272
276
|
*/
|
|
273
277
|
tier?: 'branding';
|
|
274
278
|
/**
|
|
275
|
-
* Lint check IDs to suppress, **appended** (union) to the patch's
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
* `
|
|
279
|
-
* `--add` / `--remove` / `--clear` modes); re-export's append-only
|
|
280
|
-
* semantics match the operator's most common intent ("I want this
|
|
281
|
-
* patch to also suppress X").
|
|
279
|
+
* Lint check IDs to suppress, **appended** (union) to the patch's existing
|
|
280
|
+
* `lintIgnore` list. De-duplicated. Mutually exclusive with `--all`. To
|
|
281
|
+
* remove an entry or clear the list, use `fireforge patch lint-ignore`,
|
|
282
|
+
* which has explicit `--add` / `--remove` / `--clear` modes.
|
|
282
283
|
*/
|
|
283
284
|
lintIgnore?: string[];
|
|
284
285
|
/**
|
|
@@ -298,10 +299,9 @@ export interface ReExportOptions {
|
|
|
298
299
|
*/
|
|
299
300
|
refuseAdjacentUnmanaged?: boolean;
|
|
300
301
|
/**
|
|
301
|
-
* Bypass per-patch lint result cache reads AND writes for this
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
* entirely.
|
|
302
|
+
* Bypass per-patch lint result cache reads AND writes for this invocation
|
|
303
|
+
* (`--no-cache`). The cache is what lets a repeat re-export of an unchanged
|
|
304
|
+
* patch skip the checkJs program build entirely.
|
|
305
305
|
*/
|
|
306
306
|
noCache?: boolean;
|
|
307
307
|
/**
|
|
@@ -317,9 +317,9 @@ export interface ReExportOptions {
|
|
|
317
317
|
* Engine-relative files whose drift is EXPECTED (`--expect`, repeatable;
|
|
318
318
|
* requires `--refuse-foreign-drift`). The content-based drift detector
|
|
319
319
|
* cannot tell the exporting session's own slice edits from another
|
|
320
|
-
* session's, so a
|
|
321
|
-
*
|
|
322
|
-
*
|
|
320
|
+
* session's, so a slice export under the refusal flag names its intended
|
|
321
|
+
* files here: drift confined to expected files proceeds, drift anywhere
|
|
322
|
+
* else still refuses.
|
|
323
323
|
*/
|
|
324
324
|
expect?: string[];
|
|
325
325
|
}
|
|
@@ -329,6 +329,11 @@ export interface ReExportOptions {
|
|
|
329
329
|
* `.patch` file body — the manifest is the only thing that changes.
|
|
330
330
|
*/
|
|
331
331
|
export interface PatchTierOptions {
|
|
332
|
+
/**
|
|
333
|
+
* Seconds to wait for the patch directory lock. This command mutates patch
|
|
334
|
+
* metadata under that lock.
|
|
335
|
+
*/
|
|
336
|
+
waitLock?: number | boolean;
|
|
332
337
|
/** Force the named tier on the patch. Only `"branding"` is recognised. */
|
|
333
338
|
tier?: 'branding';
|
|
334
339
|
/** Remove the `tier` override entirely, restoring auto-detection. */
|
|
@@ -344,6 +349,11 @@ export interface PatchTierOptions {
|
|
|
344
349
|
* be set per invocation.
|
|
345
350
|
*/
|
|
346
351
|
export interface PatchLintIgnoreOptions {
|
|
352
|
+
/**
|
|
353
|
+
* Seconds to wait for the patch directory lock. This command mutates patch
|
|
354
|
+
* metadata under that lock.
|
|
355
|
+
*/
|
|
356
|
+
waitLock?: number | boolean;
|
|
347
357
|
/** Lint check IDs to add to the patch's `lintIgnore` list (union, de-duped). */
|
|
348
358
|
add?: string[];
|
|
349
359
|
/** Lint check IDs to remove from the patch's `lintIgnore` list. */
|
|
@@ -361,6 +371,11 @@ export interface PatchLintIgnoreOptions {
|
|
|
361
371
|
* declarations, or clear all staged dependencies from the patch.
|
|
362
372
|
*/
|
|
363
373
|
export interface PatchStagedDependencyOptions {
|
|
374
|
+
/**
|
|
375
|
+
* Seconds to wait for the patch directory lock. This command mutates patch
|
|
376
|
+
* metadata under that lock.
|
|
377
|
+
*/
|
|
378
|
+
waitLock?: number | boolean;
|
|
364
379
|
/** Add a staged dependency declaration. */
|
|
365
380
|
add?: boolean;
|
|
366
381
|
/** Remove matching staged dependency declarations. */
|
|
@@ -455,6 +470,11 @@ export interface PatchMoveFilesOptions {
|
|
|
455
470
|
* Options for the rebase command.
|
|
456
471
|
*/
|
|
457
472
|
export interface RebaseOptions {
|
|
473
|
+
/**
|
|
474
|
+
* Seconds to wait for the patch directory lock. The rebase loop rewrites
|
|
475
|
+
* patch bodies under that lock.
|
|
476
|
+
*/
|
|
477
|
+
waitLock?: number | boolean;
|
|
458
478
|
/** Resume a previously interrupted rebase session */
|
|
459
479
|
continue?: boolean;
|
|
460
480
|
/** Cancel the current rebase session and restore engine */
|
|
@@ -525,20 +545,29 @@ export interface TestOptions {
|
|
|
525
545
|
* Run the scoped pre-test build (packaging exactly the requested paths,
|
|
526
546
|
* MIXED harnesses allowed) and exit without dispatching tests. One
|
|
527
547
|
* ~10-minute build then covers both an xpcshell and a browser-chrome
|
|
528
|
-
* half of a slice; run each harness afterwards without `--build
|
|
529
|
-
|
|
548
|
+
* half of a slice; run each harness afterwards without `--build`.
|
|
549
|
+
* Emits `FIREFORGE-VERDICT: PASS` on success.
|
|
530
550
|
*/
|
|
531
551
|
buildOnly?: boolean;
|
|
532
552
|
/**
|
|
533
553
|
* Union the paths this build packages onto the recorded coverage claim
|
|
534
|
-
* instead of REPLACING it, so successive scoped builds
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
*
|
|
554
|
+
* instead of REPLACING it, so successive scoped builds accumulate and an
|
|
555
|
+
* earlier slice's build-less runs stay covered. Valid only with
|
|
556
|
+
* `--build`/`--build-only` and explicit paths. Refused fail-closed unless
|
|
557
|
+
* the build anchor is unchanged: same engine HEAD, same `engine/mozconfig`,
|
|
558
|
+
* and every previously fingerprinted packageable file byte-identical. See
|
|
559
|
+
* `src/core/coverage-extend.ts`.
|
|
540
560
|
*/
|
|
541
561
|
extendCoverage?: boolean;
|
|
562
|
+
/**
|
|
563
|
+
* Forwarded to the PRE-TEST build: refuse (rather than warn) when that
|
|
564
|
+
* build would overwrite engine content recorded in neither a patch body
|
|
565
|
+
* nor the pristine baseline. Same meaning as `fireforge build`'s flag of
|
|
566
|
+
* the same name — a scripted `test --build` is exactly the shape the
|
|
567
|
+
* multi-session hazard shows up in, and until now it was the one shape
|
|
568
|
+
* that could not arm the refusal. Valid only with `--build`/`--build-only`.
|
|
569
|
+
*/
|
|
570
|
+
refuseUnexportedDrift?: boolean;
|
|
542
571
|
/** Forward mach's pathless auto-selection mode. Valid only with no explicit paths. */
|
|
543
572
|
auto?: boolean;
|
|
544
573
|
/**
|
|
@@ -591,7 +620,7 @@ export interface TestOptions {
|
|
|
591
620
|
* single-suite run auto-selects. Escape hatch for the rare case where a
|
|
592
621
|
* suite-specific command misbehaves; on a healthy host the generic command
|
|
593
622
|
* is equivalent. The default (auto suite dispatch) skips the mozlog
|
|
594
|
-
* resource monitor that crashes `mach test` on a broken host
|
|
623
|
+
* resource monitor that crashes `mach test` on a broken host.
|
|
595
624
|
*/
|
|
596
625
|
genericMachTest?: boolean;
|
|
597
626
|
/**
|
|
@@ -804,13 +833,11 @@ export interface PatchDeleteOptions {
|
|
|
804
833
|
waitLock?: number | boolean;
|
|
805
834
|
}
|
|
806
835
|
/**
|
|
807
|
-
* Options for the `fireforge patch rename` subcommand. Updates the
|
|
808
|
-
*
|
|
809
|
-
*
|
|
810
|
-
*
|
|
811
|
-
*
|
|
812
|
-
* pre-shrink scope; before this verb existed the only workaround was
|
|
813
|
-
* `delete` + re-export, which briefly dropped the patch from the queue.
|
|
836
|
+
* Options for the `fireforge patch rename` subcommand. Updates the patch's
|
|
837
|
+
* filename, manifest `name`, and (optionally) `description` atomically
|
|
838
|
+
* without rewriting the `.patch` file body. Companion to `re-export --files`
|
|
839
|
+
* for the case where the body is already correct but the patch's identity
|
|
840
|
+
* describes a pre-shrink scope.
|
|
814
841
|
*/
|
|
815
842
|
export interface PatchRenameOptions {
|
|
816
843
|
/**
|
|
@@ -915,9 +942,9 @@ export interface StatusOptions {
|
|
|
915
942
|
* `ownership` block — the flat path→owning-patch rows plus
|
|
916
943
|
* managed/unmanaged/conflict counts — so a gate reads ownership,
|
|
917
944
|
* classification, and the check verdict from ONE scan instead of three
|
|
918
|
-
* back-to-back `status` invocations. A modifier, not a mode:
|
|
919
|
-
*
|
|
920
|
-
*
|
|
945
|
+
* back-to-back `status` invocations. A modifier, not a mode: exit
|
|
946
|
+
* semantics are unchanged, so ownership conflicts still fail only the
|
|
947
|
+
* human `--ownership` mode. Refused without `--json`.
|
|
921
948
|
*/
|
|
922
949
|
includeOwnership?: boolean;
|
|
923
950
|
/**
|
|
@@ -955,7 +982,35 @@ export interface TokenAddOptions {
|
|
|
955
982
|
* Options for the doctor command.
|
|
956
983
|
*/
|
|
957
984
|
export interface DoctorOptions {
|
|
985
|
+
/**
|
|
986
|
+
* Seconds to wait for the patch directory lock. This command can mutate
|
|
987
|
+
* the patch manifest under that lock.
|
|
988
|
+
*/
|
|
989
|
+
waitLock?: number | boolean;
|
|
990
|
+
/**
|
|
991
|
+
* Rebuild patches.json from the on-disk patch files, preserving every
|
|
992
|
+
* field the patch bodies cannot express. Refused when patches.json exists
|
|
993
|
+
* but cannot be parsed, unless `allowMetadataLoss` is also set.
|
|
994
|
+
*/
|
|
958
995
|
repairPatchesManifest?: boolean;
|
|
996
|
+
/**
|
|
997
|
+
* Repair only the `filesAffected` lists that disagree with their patch
|
|
998
|
+
* body. Narrower than `repairPatchesManifest`: it rewrites one field on the
|
|
999
|
+
* drifted rows and leaves every other row byte-identical, and it needs no
|
|
1000
|
+
* project config, so it works on a project whose fireforge.json is broken.
|
|
1001
|
+
*/
|
|
1002
|
+
repairFilesAffected?: boolean;
|
|
1003
|
+
/**
|
|
1004
|
+
* Accept the whole-manifest metadata reinvention that rebuilding an
|
|
1005
|
+
* unparseable patches.json implies. Only meaningful with
|
|
1006
|
+
* `repairPatchesManifest`.
|
|
1007
|
+
*/
|
|
1008
|
+
allowMetadataLoss?: boolean;
|
|
1009
|
+
/**
|
|
1010
|
+
* Project what a requested repair would change and write nothing. Refused
|
|
1011
|
+
* without a repair flag rather than accepted as a silent no-op.
|
|
1012
|
+
*/
|
|
1013
|
+
dryRun?: boolean;
|
|
959
1014
|
/**
|
|
960
1015
|
* Clear a stale `pendingResolution` marker, but only after the same
|
|
961
1016
|
* read-only queue health checks used by `fireforge verify` report no
|
|
@@ -976,13 +1031,6 @@ export interface DoctorOptions {
|
|
|
976
1031
|
/** Run extra post-rebase checks for common Firefox registration surfaces. */
|
|
977
1032
|
postRebaseAudit?: boolean;
|
|
978
1033
|
}
|
|
979
|
-
/**
|
|
980
|
-
* Global CLI options available to all commands.
|
|
981
|
-
*/
|
|
982
|
-
export interface GlobalOptions {
|
|
983
|
-
/** Enable verbose/debug output */
|
|
984
|
-
verbose?: boolean;
|
|
985
|
-
}
|
|
986
1034
|
/** Options controlling how the lint command filters and tags its output. */
|
|
987
1035
|
export interface LintCommandOptions {
|
|
988
1036
|
/**
|
|
@@ -995,38 +1043,31 @@ export interface LintCommandOptions {
|
|
|
995
1043
|
since?: string;
|
|
996
1044
|
/**
|
|
997
1045
|
* When set together with {@link since}, scope the exit code to issues
|
|
998
|
-
* tagged `introduced`. Cumulative pre-existing errors still print
|
|
999
|
-
*
|
|
1000
|
-
*
|
|
1001
|
-
*
|
|
1002
|
-
* older patches. Without this flag, CI treats the clean branch as
|
|
1003
|
-
* failing; with it, a branch "breaks the build" only when its own diff
|
|
1004
|
-
* introduced a new error.
|
|
1046
|
+
* tagged `introduced`. Cumulative pre-existing errors still print, so the
|
|
1047
|
+
* operator sees the full queue state, but do not fail lint. This is for a
|
|
1048
|
+
* branch whose own diff is clean but whose repo carries unrelated
|
|
1049
|
+
* `raw-color` / license-header errors from older patches.
|
|
1005
1050
|
*
|
|
1006
|
-
* Requires {@link since}: without a revision to diff against there is
|
|
1007
|
-
*
|
|
1008
|
-
*
|
|
1051
|
+
* Requires {@link since}: without a revision to diff against there is no
|
|
1052
|
+
* distinction between introduced and cumulative, so the flag is rejected
|
|
1053
|
+
* up-front rather than silently ignored.
|
|
1009
1054
|
*/
|
|
1010
1055
|
onlyIntroduced?: boolean;
|
|
1011
1056
|
/**
|
|
1012
|
-
* Lint each patch in the queue as its own isolated diff, rather than
|
|
1013
|
-
*
|
|
1057
|
+
* Lint each patch in the queue as its own isolated diff, rather than the
|
|
1058
|
+
* aggregate `git diff HEAD` across all applied patches.
|
|
1014
1059
|
*
|
|
1015
|
-
*
|
|
1016
|
-
*
|
|
1017
|
-
*
|
|
1018
|
-
*
|
|
1019
|
-
*
|
|
1020
|
-
*
|
|
1021
|
-
*
|
|
1022
|
-
*
|
|
1023
|
-
* own `filesAffected`, honours the patch's own `lintIgnore`, and runs
|
|
1024
|
-
* the cross-patch rules once over the whole queue so queue-level
|
|
1025
|
-
* findings (duplicate creations, forward imports) still surface.
|
|
1060
|
+
* On a repo where `import` or `rebase` has just applied the full queue,
|
|
1061
|
+
* the aggregate diff sums every patch's changes, and the patch-size
|
|
1062
|
+
* advisory rules (`large-patch-lines`, `large-patch-files`) fire against
|
|
1063
|
+
* that sum — "Patch is 37529 lines" for a queue of individually-fine
|
|
1064
|
+
* patches. `--per-patch` rescopes the diff to each patch's own
|
|
1065
|
+
* `filesAffected`, honours the patch's own `lintIgnore`, and runs the
|
|
1066
|
+
* cross-patch rules once over the whole queue so queue-level findings
|
|
1067
|
+
* still surface.
|
|
1026
1068
|
*
|
|
1027
|
-
* Positional file arguments change meaning under this flag: they are
|
|
1028
|
-
*
|
|
1029
|
-
* file paths.
|
|
1069
|
+
* Positional file arguments change meaning under this flag: they are PATCH
|
|
1070
|
+
* selectors resolved like {@link patches} entries, not engine file paths.
|
|
1030
1071
|
*/
|
|
1031
1072
|
perPatch?: boolean;
|
|
1032
1073
|
/**
|
|
@@ -68,49 +68,39 @@ export interface PatchMetadata {
|
|
|
68
68
|
/** Array of file paths affected by this patch */
|
|
69
69
|
filesAffected: string[];
|
|
70
70
|
/**
|
|
71
|
-
* Optional per-patch list of lint check IDs to suppress when this patch
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
71
|
+
* Optional per-patch list of lint check IDs to suppress when this patch is
|
|
72
|
+
* the target of `export`, `export-all`, or `re-export`. Exists for the
|
|
73
|
+
* class of patch that is advisory-noisy by nature — a cohesive branding
|
|
74
|
+
* bundle, a localised-resource pack, an auto-generated manifest — where
|
|
75
|
+
* the generic `large-patch-lines` / `large-patch-files` thresholds do not
|
|
76
|
+
* apply but `--skip-lint`, which silences every error rather than the one
|
|
77
|
+
* that does not apply, is too coarse.
|
|
78
78
|
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* one patch body).
|
|
84
|
-
*
|
|
85
|
-
* Values are free-form check IDs (e.g. `"large-patch-lines"`,
|
|
86
|
-
* `"large-patch-files"`). Checks not listed here still run normally.
|
|
87
|
-
* An entry for an unknown check ID is a no-op — the patch metadata
|
|
88
|
-
* documents the *intent* to suppress even if the check is later
|
|
89
|
-
* renamed or removed.
|
|
79
|
+
* Values are free-form check IDs (e.g. `"large-patch-lines"`). Checks not
|
|
80
|
+
* listed here still run normally. An entry for an unknown check ID is a
|
|
81
|
+
* no-op — the metadata documents the intent to suppress even if the check
|
|
82
|
+
* is later renamed or removed.
|
|
90
83
|
*/
|
|
91
84
|
lintIgnore?: string[];
|
|
92
85
|
/**
|
|
93
86
|
* Optional per-patch threshold-tier override for the `large-patch-lines`
|
|
94
87
|
* rule. Exists for branding patches that must touch a small number of
|
|
95
88
|
* cross-cutting registration files alongside `browser/branding/<name>/`
|
|
96
|
-
* (notably `browser/moz.configure
|
|
97
|
-
* with the top-level configure). The narrow auto-detect allowlist
|
|
98
|
-
* `isBrandingOnlyPatch` covers the canonical shape
|
|
99
|
-
* branding patch also touches an unlisted sibling
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* limit on what is legitimately one branding diff.
|
|
89
|
+
* (notably `browser/moz.configure`, which registers the new branding
|
|
90
|
+
* flavor with the top-level configure). The narrow auto-detect allowlist
|
|
91
|
+
* in `isBrandingOnlyPatch` covers the canonical shape; a fork whose
|
|
92
|
+
* branding patch also touches an unlisted sibling falls through to the
|
|
93
|
+
* general tier and trips the hard limit on what is legitimately one
|
|
94
|
+
* branding diff.
|
|
103
95
|
*
|
|
104
|
-
* Declaring `tier: "branding"`
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* more permissive and a test that is also branding-shaped is
|
|
110
|
-
* vanishingly rare.
|
|
96
|
+
* Declaring `tier: "branding"` forces the branding thresholds (notice
|
|
97
|
+
* 8000 / warning 18000 / error 30000 lines, ≤60 files) regardless of
|
|
98
|
+
* `filesAffected`. It is the weaker claim than test: an all-tests patch
|
|
99
|
+
* stays in the test tier even with this set, because those thresholds are
|
|
100
|
+
* already more permissive.
|
|
111
101
|
*
|
|
112
|
-
* Only `"branding"` is
|
|
113
|
-
*
|
|
102
|
+
* Only `"branding"` is recognised. Unknown values are rejected by the
|
|
103
|
+
* manifest validator, not silently stripped.
|
|
114
104
|
*/
|
|
115
105
|
tier?: 'branding';
|
|
116
106
|
/**
|