@hominis/fireforge 0.43.0 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +127 -0
- package/README.md +10 -1
- 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 +4 -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-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.js +35 -53
- 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 +9 -9
- 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 +9 -16
- 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 +42 -35
- 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 +27 -33
- 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 +62 -19
- package/dist/src/core/build-prepare.d.ts +2 -2
- package/dist/src/core/build-prepare.js +8 -9
- 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 +12 -12
- package/dist/src/core/furnace-apply-helpers.d.ts +7 -7
- package/dist/src/core/furnace-apply-helpers.js +19 -16
- 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 +7 -9
- package/dist/src/core/git-base.js +7 -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 +54 -70
- 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 +16 -16
- 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 +2 -1
- package/dist/src/core/patch-manifest-consistency.js +25 -27
- 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-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 +5 -7
- 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 +9 -11
- package/dist/src/core/token-docs.d.ts +2 -0
- package/dist/src/core/token-docs.js +2 -0
- 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 +4 -4
- 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 +63 -42
- 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 +8 -8
- 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 +88 -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 +2 -2
- 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
|
@@ -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,6 +982,11 @@ 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;
|
|
958
990
|
repairPatchesManifest?: boolean;
|
|
959
991
|
/**
|
|
960
992
|
* Clear a stale `pendingResolution` marker, but only after the same
|
|
@@ -976,13 +1008,6 @@ export interface DoctorOptions {
|
|
|
976
1008
|
/** Run extra post-rebase checks for common Firefox registration surfaces. */
|
|
977
1009
|
postRebaseAudit?: boolean;
|
|
978
1010
|
}
|
|
979
|
-
/**
|
|
980
|
-
* Global CLI options available to all commands.
|
|
981
|
-
*/
|
|
982
|
-
export interface GlobalOptions {
|
|
983
|
-
/** Enable verbose/debug output */
|
|
984
|
-
verbose?: boolean;
|
|
985
|
-
}
|
|
986
1011
|
/** Options controlling how the lint command filters and tags its output. */
|
|
987
1012
|
export interface LintCommandOptions {
|
|
988
1013
|
/**
|
|
@@ -995,38 +1020,31 @@ export interface LintCommandOptions {
|
|
|
995
1020
|
since?: string;
|
|
996
1021
|
/**
|
|
997
1022
|
* 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.
|
|
1023
|
+
* tagged `introduced`. Cumulative pre-existing errors still print, so the
|
|
1024
|
+
* operator sees the full queue state, but do not fail lint. This is for a
|
|
1025
|
+
* branch whose own diff is clean but whose repo carries unrelated
|
|
1026
|
+
* `raw-color` / license-header errors from older patches.
|
|
1005
1027
|
*
|
|
1006
|
-
* Requires {@link since}: without a revision to diff against there is
|
|
1007
|
-
*
|
|
1008
|
-
*
|
|
1028
|
+
* Requires {@link since}: without a revision to diff against there is no
|
|
1029
|
+
* distinction between introduced and cumulative, so the flag is rejected
|
|
1030
|
+
* up-front rather than silently ignored.
|
|
1009
1031
|
*/
|
|
1010
1032
|
onlyIntroduced?: boolean;
|
|
1011
1033
|
/**
|
|
1012
|
-
* Lint each patch in the queue as its own isolated diff, rather than
|
|
1013
|
-
*
|
|
1034
|
+
* Lint each patch in the queue as its own isolated diff, rather than the
|
|
1035
|
+
* aggregate `git diff HEAD` across all applied patches.
|
|
1014
1036
|
*
|
|
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.
|
|
1037
|
+
* On a repo where `import` or `rebase` has just applied the full queue,
|
|
1038
|
+
* the aggregate diff sums every patch's changes, and the patch-size
|
|
1039
|
+
* advisory rules (`large-patch-lines`, `large-patch-files`) fire against
|
|
1040
|
+
* that sum — "Patch is 37529 lines" for a queue of individually-fine
|
|
1041
|
+
* patches. `--per-patch` rescopes the diff to each patch's own
|
|
1042
|
+
* `filesAffected`, honours the patch's own `lintIgnore`, and runs the
|
|
1043
|
+
* cross-patch rules once over the whole queue so queue-level findings
|
|
1044
|
+
* still surface.
|
|
1026
1045
|
*
|
|
1027
|
-
* Positional file arguments change meaning under this flag: they are
|
|
1028
|
-
*
|
|
1029
|
-
* file paths.
|
|
1046
|
+
* Positional file arguments change meaning under this flag: they are PATCH
|
|
1047
|
+
* selectors resolved like {@link patches} entries, not engine file paths.
|
|
1030
1048
|
*/
|
|
1031
1049
|
perPatch?: boolean;
|
|
1032
1050
|
/**
|
|
@@ -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
|
/**
|
|
@@ -4,47 +4,18 @@
|
|
|
4
4
|
/**
|
|
5
5
|
* Result of a doctor check.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* failure and `'warning'` as a warning REGARDLESS of `passed`.
|
|
10
|
-
* 2. Without `severity`, `passed: false` is a failure unless
|
|
11
|
-
* `warning: true` downgrades it to a warning.
|
|
12
|
-
* Producers should prefer setting `severity` explicitly; `warning` exists
|
|
13
|
-
* for older checks that predate the field. Do not emit contradictory
|
|
14
|
-
* combinations like `passed: true, severity: 'error'`.
|
|
7
|
+
* `severity` is the single source of truth; consumers that want a boolean
|
|
8
|
+
* derive it as `severity !== 'error'`.
|
|
15
9
|
*/
|
|
16
10
|
export interface DoctorCheck {
|
|
17
11
|
/** Name of the check */
|
|
18
12
|
name: string;
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
/** Severity of the result (authoritative when present — see above) */
|
|
22
|
-
severity?: 'ok' | 'warning' | 'error';
|
|
13
|
+
/** Outcome of the check. Authoritative and required. */
|
|
14
|
+
severity: 'ok' | 'warning' | 'error';
|
|
23
15
|
/** Description of the result */
|
|
24
16
|
message: string;
|
|
25
|
-
/** Suggested fix
|
|
17
|
+
/** Suggested fix when the check did not pass */
|
|
26
18
|
fix?: string;
|
|
27
|
-
/** Legacy warning flag for checks that predate `severity` */
|
|
28
|
-
warning?: boolean;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Status of the project.
|
|
32
|
-
*/
|
|
33
|
-
export interface ProjectStatus {
|
|
34
|
-
/** Whether fireforge.json exists */
|
|
35
|
-
hasConfig: boolean;
|
|
36
|
-
/** Whether engine/ exists */
|
|
37
|
-
hasEngine: boolean;
|
|
38
|
-
/** Whether patches/ exists */
|
|
39
|
-
hasPatches: boolean;
|
|
40
|
-
/** Number of patch files */
|
|
41
|
-
patchCount: number;
|
|
42
|
-
/** Whether build output exists */
|
|
43
|
-
hasBuild: boolean;
|
|
44
|
-
/** Firefox version from config */
|
|
45
|
-
firefoxVersion?: string;
|
|
46
|
-
/** Downloaded Firefox version */
|
|
47
|
-
downloadedVersion?: string;
|
|
48
19
|
}
|
|
49
20
|
/**
|
|
50
21
|
* Per-file token coverage breakdown.
|
|
@@ -182,11 +182,10 @@ export interface TypecheckConfig {
|
|
|
182
182
|
*/
|
|
183
183
|
projectOverrides?: Record<string, string | null>;
|
|
184
184
|
/**
|
|
185
|
-
* How to report undefined free identifiers (TS2304/TS2552).
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
* blocking; `'off'` restores the historical suppression.
|
|
185
|
+
* How to report undefined free identifiers (TS2304/TS2552). Default
|
|
186
|
+
* `'warning'`: visible without failing the gate, since shim gaps produce
|
|
187
|
+
* the same diagnostic as a genuine missing import. `'error'` makes them
|
|
188
|
+
* blocking; `'off'` suppresses them.
|
|
190
189
|
*/
|
|
191
190
|
undefinedIdentifiers?: PatchLintSeverityGate;
|
|
192
191
|
}
|
|
@@ -235,9 +234,9 @@ export interface PatchLintConfig {
|
|
|
235
234
|
checkJs?: boolean;
|
|
236
235
|
/**
|
|
237
236
|
* When true with `checkJs: true`, run checkJs with `strict` and
|
|
238
|
-
* `noImplicitAny` enabled (CI-style). Default false
|
|
239
|
-
*
|
|
240
|
-
*
|
|
237
|
+
* `noImplicitAny` enabled (CI-style). Default false uses the loose preset.
|
|
238
|
+
* Optional {@link checkJsCompilerOptions} can relax individual strict
|
|
239
|
+
* flags (e.g. `strictNullChecks: false`).
|
|
241
240
|
*/
|
|
242
241
|
checkJsStrict?: boolean;
|
|
243
242
|
/**
|
|
@@ -249,27 +248,26 @@ export interface PatchLintConfig {
|
|
|
249
248
|
* Project-relative path to an additional `.d.ts` file whose contents
|
|
250
249
|
* are concatenated to the built-in `FIREFOX_GLOBALS_SHIM` for the
|
|
251
250
|
* `patchLint.checkJs` pass. Same semantics as `typecheck.extraShim`
|
|
252
|
-
* but scoped to the patch-hygiene flow. Default unset
|
|
253
|
-
* behaviour (built-in shim only).
|
|
251
|
+
* but scoped to the patch-hygiene flow. Default unset: built-in shim only.
|
|
254
252
|
*/
|
|
255
253
|
checkJsExtraShim?: string;
|
|
256
254
|
/**
|
|
257
255
|
* Extend the checkJs pass to patch-owned test `.js` files
|
|
258
256
|
* (`browser_*` / `test_*` / `xpcshell_*` basenames and files under a
|
|
259
|
-
* `/test/` path), each checked as its own small script-scope program
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
257
|
+
* `/test/` path), each checked as its own small script-scope program with
|
|
258
|
+
* same-directory patch-owned `head*.js` helpers included, so a call to a
|
|
259
|
+
* harness global that does not exist fails at the patch boundary where the
|
|
260
|
+
* test was authored rather than in a downstream jsconfig-project run.
|
|
261
|
+
* Opt-in: it is a new failure surface with nonzero compile cost. Requires
|
|
262
|
+
* `checkJs: true`.
|
|
265
263
|
*/
|
|
266
264
|
checkJsTestFiles?: boolean;
|
|
267
265
|
/**
|
|
268
266
|
* Project-relative `.d.ts` appended to the built-in test-harness shim
|
|
269
267
|
* (loose `TestUtils`/`BrowserTestUtils`/`add_task`/… declarations) for
|
|
270
|
-
* the `checkJsTestFiles` pass
|
|
271
|
-
*
|
|
272
|
-
*
|
|
268
|
+
* the `checkJsTestFiles` pass. A consumer-typed `TestUtils` here is what
|
|
269
|
+
* turns a call to a nonexistent harness member into a TS2339 at export
|
|
270
|
+
* time. Requires `checkJsTestFiles: true`.
|
|
273
271
|
*/
|
|
274
272
|
checkJsTestShim?: string;
|
|
275
273
|
/** File paths exempt from the raw-color-value check (exact or basename match) */
|
|
@@ -291,16 +289,20 @@ export interface PatchLintConfig {
|
|
|
291
289
|
chromeScriptJsDoc?: PatchLintSeverityGate;
|
|
292
290
|
/**
|
|
293
291
|
* How the checkJs pass reports undefined free identifiers
|
|
294
|
-
* (TS2304/TS2552). Same semantics as `typecheck.undefinedIdentifiers
|
|
295
|
-
|
|
292
|
+
* (TS2304/TS2552). Same semantics as `typecheck.undefinedIdentifiers`;
|
|
293
|
+
* the two flows share the suppression policy so a patch
|
|
296
294
|
* cannot pass one and fail the other. Default: 'warning'.
|
|
297
295
|
*/
|
|
298
296
|
undefinedIdentifiers?: PatchLintSeverityGate;
|
|
299
297
|
}
|
|
300
298
|
/**
|
|
301
|
-
* Build
|
|
299
|
+
* Build modes for mach.
|
|
300
|
+
*
|
|
301
|
+
* Derived from the list so the runtime allowlist cannot drift from the type.
|
|
302
302
|
*/
|
|
303
|
-
export
|
|
303
|
+
export declare const BUILD_MODES: readonly ["dev", "debug", "release"];
|
|
304
|
+
/** Build mode for mach. */
|
|
305
|
+
export type BuildMode = (typeof BUILD_MODES)[number];
|
|
304
306
|
/**
|
|
305
307
|
* Runtime state stored in .fireforge/state.json.
|
|
306
308
|
*/
|
package/dist/src/types/config.js
CHANGED
|
@@ -117,11 +117,10 @@ export interface FurnaceConfig {
|
|
|
117
117
|
tokenAllowlist?: string[];
|
|
118
118
|
/**
|
|
119
119
|
* CSS custom-property prefixes that identify upstream / platform
|
|
120
|
-
* variables the fork does not own. `token coverage` counts matches
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* to restore the pre-0.18.0 strict contract.
|
|
120
|
+
* variables the fork does not own. `token coverage` counts matches as
|
|
121
|
+
* `allowlisted` rather than `unknown` so a copied upstream baseline does
|
|
122
|
+
* not drag fork-owned coverage percentages down. Defaults to `['--moz-']`
|
|
123
|
+
* when unset; pass an explicit empty array to count every prefix.
|
|
125
124
|
*/
|
|
126
125
|
platformPrefixes?: string[];
|
|
127
126
|
/**
|
|
@@ -176,7 +175,13 @@ export interface FurnaceConfig {
|
|
|
176
175
|
* state before clearing authoring markers. The string is surfaced in doctor's
|
|
177
176
|
* failure message verbatim, so new entries should be self-explanatory.
|
|
178
177
|
*/
|
|
179
|
-
export
|
|
178
|
+
export declare const FURNACE_PENDING_REPAIR_OPERATIONS: readonly ["preview-teardown", "apply-rollback", "deploy-rollback", "remove-rollback", "create-rollback", "override-rollback", "scan-rollback", "rename-rollback", "refresh-rollback", "chrome-doc-rollback"];
|
|
179
|
+
/**
|
|
180
|
+
* Operations that can leave a pending-repair marker when they fail to roll
|
|
181
|
+
* back cleanly. Derived from the list above so the runtime allowlist in
|
|
182
|
+
* `furnace-config.ts` cannot drift from the union.
|
|
183
|
+
*/
|
|
184
|
+
export type FurnacePendingRepairOperation = (typeof FURNACE_PENDING_REPAIR_OPERATIONS)[number];
|
|
180
185
|
/**
|
|
181
186
|
* Marker persisted into `.fireforge/furnace-state.json` when a furnace
|
|
182
187
|
* mutation failed to roll back cleanly. Its presence tells the next
|
|
@@ -222,13 +227,10 @@ export interface StepError {
|
|
|
222
227
|
step: string;
|
|
223
228
|
error: string;
|
|
224
229
|
/**
|
|
225
|
-
* Advisory step errors are reported as warnings and never trigger
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
* shipping. Before this flag existed the contract was contradicted in
|
|
230
|
-
* practice — any FTL step error rolled back the entire apply, so a
|
|
231
|
-
* localized component on such a fork could never be applied at all.
|
|
230
|
+
* Advisory step errors are reported as warnings and never trigger rollback
|
|
231
|
+
* or a non-zero exit. Used by the `.ftl` helpers, whose module contract is
|
|
232
|
+
* graceful degradation: a missing locale jar.mn on a fork without a locale
|
|
233
|
+
* package must not block a working `.mjs`/`.css` from shipping.
|
|
232
234
|
*/
|
|
233
235
|
advisory?: boolean;
|
|
234
236
|
}
|
|
@@ -318,3 +320,25 @@ export interface ValidationIssue {
|
|
|
318
320
|
}
|
|
319
321
|
/** Resolved test-harness selection for a `furnace create` run. */
|
|
320
322
|
export type ResolvedTestStyle = 'mochikit' | 'browser-chrome' | 'xpcshell' | 'none';
|
|
323
|
+
/**
|
|
324
|
+
* The four paths and the name that every per-component apply, dry-run, FTL
|
|
325
|
+
* and drift helper needs some subset of.
|
|
326
|
+
*
|
|
327
|
+
* Passing these positionally is unsafe: they are all `string`, so any
|
|
328
|
+
* permutation typechecks against any other and a swap surfaces as a
|
|
329
|
+
* wrong-directory read at runtime. Helpers take
|
|
330
|
+
* `Pick<ComponentApplyContext, …>` of exactly the members they read, so a
|
|
331
|
+
* caller is never asked to invent a value it does not have.
|
|
332
|
+
*/
|
|
333
|
+
export interface ComponentApplyContext {
|
|
334
|
+
/** Project root — what registration consistency resolves against. */
|
|
335
|
+
root: string;
|
|
336
|
+
/** Firefox source directory the component deploys into. */
|
|
337
|
+
engineDir: string;
|
|
338
|
+
/** Component name as it appears in `furnace.json`. */
|
|
339
|
+
name: string;
|
|
340
|
+
/** Absolute path to the component's authoring directory. */
|
|
341
|
+
componentDir: string;
|
|
342
|
+
/** Engine-relative locale directory holding the component's `.ftl`. */
|
|
343
|
+
ftlDir: string;
|
|
344
|
+
}
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Operations that can leave a pending-repair marker when they fail to roll
|
|
3
|
+
* back cleanly. The marker is consumed by `fireforge doctor`, which either
|
|
4
|
+
* re-runs apply for engine-side failures or validates the current authoring
|
|
5
|
+
* state before clearing authoring markers. The string is surfaced in doctor's
|
|
6
|
+
* failure message verbatim, so new entries should be self-explanatory.
|
|
7
|
+
*/
|
|
8
|
+
export const FURNACE_PENDING_REPAIR_OPERATIONS = [
|
|
9
|
+
'preview-teardown',
|
|
10
|
+
'apply-rollback',
|
|
11
|
+
'deploy-rollback',
|
|
12
|
+
'remove-rollback',
|
|
13
|
+
'create-rollback',
|
|
14
|
+
'override-rollback',
|
|
15
|
+
'scan-rollback',
|
|
16
|
+
'rename-rollback',
|
|
17
|
+
'refresh-rollback',
|
|
18
|
+
'chrome-doc-rollback',
|
|
19
|
+
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Re-exports all type definitions.
|
|
3
3
|
*/
|
|
4
|
-
export type {
|
|
5
|
-
export type { BuildConfig,
|
|
6
|
-
export type { ApplyResult, ComponentType, CustomComponentConfig, DryRunAction, FurnaceConfig, FurnaceState, OverrideComponentConfig, OverrideType,
|
|
4
|
+
export type {} from './commands/index.js';
|
|
5
|
+
export type { BuildConfig, FireForgeConfig, FirefoxConfig, FirefoxProduct, ProjectLicense, ProjectPaths, WireConfig, } from './config.js';
|
|
6
|
+
export type { ApplyResult, ComponentType, CustomComponentConfig, DryRunAction, FurnaceConfig, FurnaceState, OverrideComponentConfig, OverrideType, StepError, ValidationIssue, } from './furnace.js';
|