@hominis/fireforge 0.45.0 → 0.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +409 -446
- package/dist/bin/fireforge.d.ts +1 -1
- package/dist/bin/fireforge.js +21 -15
- package/dist/build-info.json +4 -4
- package/dist/src/cli-usage-error.d.ts +46 -0
- package/dist/src/cli-usage-error.js +81 -0
- package/dist/src/cli.d.ts +7 -2
- package/dist/src/cli.js +47 -47
- package/dist/src/commands/bootstrap-checks.js +2 -1
- package/dist/src/commands/bootstrap.js +3 -4
- package/dist/src/commands/build.js +27 -17
- package/dist/src/commands/config.js +9 -9
- package/dist/src/commands/destructive-decision.d.ts +19 -0
- package/dist/src/commands/destructive-decision.js +31 -0
- package/dist/src/commands/discard.js +5 -5
- package/dist/src/commands/doctor-check-core.d.ts +4 -10
- package/dist/src/commands/doctor-check-core.js +0 -8
- package/dist/src/commands/doctor-external-toolchains.js +2 -2
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +2 -2
- package/dist/src/commands/doctor-furnace-config-sync.js +20 -20
- package/dist/src/commands/doctor-furnace-jar.d.ts +1 -1
- package/dist/src/commands/doctor-furnace-jar.js +1 -1
- package/dist/src/commands/doctor-furnace.js +22 -22
- package/dist/src/commands/doctor-orphaned-harness.d.ts +10 -17
- package/dist/src/commands/doctor-orphaned-harness.js +14 -23
- package/dist/src/commands/doctor-patch-manifest.d.ts +2 -1
- package/dist/src/commands/doctor-patch-manifest.js +7 -6
- package/dist/src/commands/doctor-post-rebase-audit.js +3 -3
- package/dist/src/commands/doctor-source-pin.d.ts +12 -12
- package/dist/src/commands/doctor-source-pin.js +14 -14
- package/dist/src/commands/doctor-working-tree.d.ts +3 -3
- package/dist/src/commands/doctor-working-tree.js +3 -3
- package/dist/src/commands/doctor.d.ts +3 -1
- package/dist/src/commands/doctor.js +15 -16
- package/dist/src/commands/download.js +50 -37
- package/dist/src/commands/export-all.js +29 -12
- package/dist/src/commands/export-flow.d.ts +5 -5
- package/dist/src/commands/export-flow.js +29 -59
- package/dist/src/commands/export-placement-conflicts.d.ts +3 -3
- package/dist/src/commands/export-placement-conflicts.js +12 -12
- package/dist/src/commands/export-placement-gate.d.ts +2 -2
- package/dist/src/commands/export-placement-gate.js +7 -13
- package/dist/src/commands/export-placement-policy.d.ts +1 -1
- package/dist/src/commands/export-placement-policy.js +4 -6
- package/dist/src/commands/export-shared.d.ts +51 -32
- package/dist/src/commands/export-shared.js +17 -32
- package/dist/src/commands/export.js +14 -5
- package/dist/src/commands/furnace/apply.js +16 -16
- package/dist/src/commands/furnace/authoring-config.d.ts +13 -0
- package/dist/src/commands/furnace/authoring-config.js +19 -0
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +1 -1
- package/dist/src/commands/furnace/chrome-doc-remove.js +2 -2
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +14 -14
- package/dist/src/commands/furnace/chrome-doc-templates.js +17 -17
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +2 -2
- package/dist/src/commands/furnace/chrome-doc-tests.js +4 -4
- package/dist/src/commands/furnace/chrome-doc.d.ts +8 -8
- package/dist/src/commands/furnace/chrome-doc.js +18 -18
- package/dist/src/commands/furnace/create-browser-test.d.ts +1 -1
- package/dist/src/commands/furnace/create-browser-test.js +7 -12
- package/dist/src/commands/furnace/create-dry-run.d.ts +4 -4
- package/dist/src/commands/furnace/create-dry-run.js +6 -9
- package/dist/src/commands/furnace/create-features.d.ts +2 -2
- package/dist/src/commands/furnace/create-features.js +2 -2
- package/dist/src/commands/furnace/create-mochikit.d.ts +4 -4
- package/dist/src/commands/furnace/create-mochikit.js +7 -7
- package/dist/src/commands/furnace/create-templates.d.ts +31 -15
- package/dist/src/commands/furnace/create-templates.js +20 -19
- package/dist/src/commands/furnace/create-xpcshell.d.ts +5 -5
- package/dist/src/commands/furnace/create-xpcshell.js +8 -8
- package/dist/src/commands/furnace/create.d.ts +1 -1
- package/dist/src/commands/furnace/create.js +35 -29
- package/dist/src/commands/furnace/deploy.js +15 -6
- package/dist/src/commands/furnace/diff.js +7 -7
- package/dist/src/commands/furnace/index.js +1 -1
- package/dist/src/commands/furnace/init.js +17 -16
- package/dist/src/commands/furnace/list.js +2 -2
- package/dist/src/commands/furnace/override.d.ts +1 -1
- package/dist/src/commands/furnace/override.js +43 -34
- package/dist/src/commands/furnace/preview.js +17 -17
- package/dist/src/commands/furnace/refresh.js +15 -7
- package/dist/src/commands/furnace/remove-mutations.d.ts +9 -10
- package/dist/src/commands/furnace/remove-mutations.js +19 -19
- package/dist/src/commands/furnace/remove-state.d.ts +1 -1
- package/dist/src/commands/furnace/remove-state.js +1 -1
- package/dist/src/commands/furnace/remove.js +4 -8
- package/dist/src/commands/furnace/rename-browser-test.js +10 -15
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +2 -2
- package/dist/src/commands/furnace/rename-xpcshell.js +3 -3
- package/dist/src/commands/furnace/rename.js +36 -36
- package/dist/src/commands/furnace/scan.js +3 -3
- package/dist/src/commands/furnace/status.js +19 -16
- package/dist/src/commands/furnace/sync.js +6 -6
- package/dist/src/commands/furnace/test-file-name.d.ts +28 -0
- package/dist/src/commands/furnace/test-file-name.js +39 -0
- package/dist/src/commands/furnace/validate.js +11 -12
- package/dist/src/commands/furnace/validation-output.d.ts +21 -9
- package/dist/src/commands/furnace/validation-output.js +3 -8
- package/dist/src/commands/import.js +22 -29
- package/dist/src/commands/lint-per-patch.d.ts +2 -2
- package/dist/src/commands/lint-per-patch.js +27 -12
- package/dist/src/commands/lint-per-run-checkjs.d.ts +14 -15
- package/dist/src/commands/lint-per-run-checkjs.js +14 -15
- package/dist/src/commands/lint-report.d.ts +3 -3
- package/dist/src/commands/lint-report.js +4 -4
- package/dist/src/commands/lint.d.ts +5 -4
- package/dist/src/commands/lint.js +36 -36
- package/dist/src/commands/manifest.d.ts +4 -4
- package/dist/src/commands/manifest.js +1 -1
- package/dist/src/commands/package.js +4 -6
- package/dist/src/commands/patch/compact.d.ts +2 -2
- package/dist/src/commands/patch/compact.js +19 -20
- package/dist/src/commands/patch/delete.d.ts +1 -1
- package/dist/src/commands/patch/delete.js +23 -33
- package/dist/src/commands/patch/entry-projection.d.ts +13 -0
- package/dist/src/commands/patch/entry-projection.js +24 -0
- package/dist/src/commands/patch/lint-ignore.d.ts +3 -12
- package/dist/src/commands/patch/lint-ignore.js +33 -44
- package/dist/src/commands/patch/move-files-create.d.ts +2 -2
- package/dist/src/commands/patch/move-files-create.js +29 -15
- package/dist/src/commands/patch/move-files-into.d.ts +2 -2
- package/dist/src/commands/patch/move-files-into.js +41 -37
- package/dist/src/commands/patch/move-files.js +5 -14
- package/dist/src/commands/patch/patch-context.d.ts +1 -1
- package/dist/src/commands/patch/rename.d.ts +4 -4
- package/dist/src/commands/patch/rename.js +35 -49
- package/dist/src/commands/patch/reorder.js +35 -48
- package/dist/src/commands/patch/split-plan.d.ts +7 -8
- package/dist/src/commands/patch/split-plan.js +10 -13
- package/dist/src/commands/patch/split.d.ts +2 -2
- package/dist/src/commands/patch/split.js +50 -48
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +1 -1
- package/dist/src/commands/patch/staged-dependency-validate.js +3 -3
- package/dist/src/commands/patch/staged-dependency.d.ts +1 -1
- package/dist/src/commands/patch/staged-dependency.js +22 -28
- package/dist/src/commands/patch/tier.d.ts +2 -2
- package/dist/src/commands/patch/tier.js +20 -30
- package/dist/src/commands/patch-rename-map.d.ts +19 -0
- package/dist/src/commands/patch-rename-map.js +36 -0
- package/dist/src/commands/pending-resolution.d.ts +15 -0
- package/dist/src/commands/pending-resolution.js +25 -0
- package/dist/src/commands/re-export-adjacent.d.ts +25 -3
- package/dist/src/commands/re-export-adjacent.js +40 -24
- package/dist/src/commands/re-export-bulk-scan.d.ts +3 -3
- package/dist/src/commands/re-export-bulk-scan.js +23 -27
- package/dist/src/commands/re-export-drift.d.ts +10 -10
- package/dist/src/commands/re-export-drift.js +33 -33
- package/dist/src/commands/re-export-files.d.ts +2 -3
- package/dist/src/commands/re-export-files.js +52 -44
- package/dist/src/commands/re-export-lint.d.ts +29 -30
- package/dist/src/commands/re-export-lint.js +36 -29
- package/dist/src/commands/re-export-options.d.ts +1 -1
- package/dist/src/commands/re-export-options.js +1 -1
- package/dist/src/commands/re-export-register.d.ts +1 -1
- package/dist/src/commands/re-export-register.js +1 -1
- package/dist/src/commands/re-export-scan.d.ts +1 -1
- package/dist/src/commands/re-export-scan.js +12 -9
- package/dist/src/commands/re-export-single.d.ts +23 -4
- package/dist/src/commands/re-export-single.js +39 -31
- package/dist/src/commands/re-export.js +35 -17
- package/dist/src/commands/rebase/abort.js +9 -14
- package/dist/src/commands/rebase/continue.js +20 -19
- package/dist/src/commands/rebase/index.d.ts +1 -1
- package/dist/src/commands/rebase/index.js +5 -5
- package/dist/src/commands/rebase/patch-loop.d.ts +2 -2
- package/dist/src/commands/rebase/patch-loop.js +20 -24
- package/dist/src/commands/register.js +5 -5
- package/dist/src/commands/reset.js +1 -1
- package/dist/src/commands/resolve.d.ts +2 -2
- package/dist/src/commands/resolve.js +21 -13
- package/dist/src/commands/run.d.ts +0 -13
- package/dist/src/commands/run.js +38 -51
- package/dist/src/commands/setup-support.d.ts +16 -4
- package/dist/src/commands/setup-support.js +20 -20
- package/dist/src/commands/setup.js +4 -10
- package/dist/src/commands/source.js +9 -2
- package/dist/src/commands/status-check.d.ts +3 -3
- package/dist/src/commands/status-check.js +6 -6
- package/dist/src/commands/status-json.d.ts +14 -13
- package/dist/src/commands/status-json.js +9 -8
- package/dist/src/commands/status-output.d.ts +3 -3
- package/dist/src/commands/status-output.js +5 -5
- package/dist/src/commands/status-ownership.d.ts +3 -3
- package/dist/src/commands/status-ownership.js +3 -3
- package/dist/src/commands/status.js +25 -26
- package/dist/src/commands/test-build-phase.d.ts +3 -3
- package/dist/src/commands/test-build-phase.js +48 -24
- package/dist/src/commands/test-diagnose.d.ts +1 -1
- package/dist/src/commands/test-diagnose.js +20 -20
- package/dist/src/commands/test-modes.d.ts +4 -4
- package/dist/src/commands/test-modes.js +4 -5
- package/dist/src/commands/test-register.js +5 -3
- package/dist/src/commands/test-run.d.ts +11 -11
- package/dist/src/commands/test-run.js +40 -33
- package/dist/src/commands/test-stale-gate.d.ts +12 -12
- package/dist/src/commands/test-stale-gate.js +17 -17
- package/dist/src/commands/test-verdict.d.ts +19 -5
- package/dist/src/commands/test-verdict.js +26 -11
- package/dist/src/commands/test.d.ts +3 -3
- package/dist/src/commands/test.js +73 -36
- package/dist/src/commands/token-coverage.js +3 -3
- package/dist/src/commands/token-list.d.ts +26 -0
- package/dist/src/commands/token-list.js +153 -0
- package/dist/src/commands/token.js +26 -10
- package/dist/src/commands/tree.js +26 -21
- package/dist/src/commands/typecheck.d.ts +6 -6
- package/dist/src/commands/typecheck.js +16 -16
- package/dist/src/commands/verify.d.ts +3 -3
- package/dist/src/commands/verify.js +10 -10
- package/dist/src/commands/watch.js +11 -11
- package/dist/src/commands/wire.js +17 -16
- package/dist/src/core/ast-utils.d.ts +7 -7
- package/dist/src/core/ast-utils.js +8 -8
- package/dist/src/core/branding.d.ts +5 -12
- package/dist/src/core/branding.js +6 -5
- package/dist/src/core/browser-wire.d.ts +1 -1
- package/dist/src/core/browser-wire.js +10 -7
- package/dist/src/core/build-audit-platform.d.ts +32 -3
- package/dist/src/core/build-audit-platform.js +153 -13
- package/dist/src/core/build-audit-registration.d.ts +5 -5
- package/dist/src/core/build-audit-registration.js +10 -9
- package/dist/src/core/build-audit-resolve.d.ts +5 -5
- package/dist/src/core/build-audit-resolve.js +6 -6
- package/dist/src/core/build-audit-skip.d.ts +57 -0
- package/dist/src/core/build-audit-skip.js +112 -0
- package/dist/src/core/build-audit-transforms.d.ts +2 -2
- package/dist/src/core/build-audit-transforms.js +3 -3
- package/dist/src/core/build-audit.d.ts +21 -8
- package/dist/src/core/build-audit.js +142 -40
- package/dist/src/core/build-baseline-types.d.ts +19 -18
- package/dist/src/core/build-baseline-types.js +1 -1
- package/dist/src/core/build-baseline.d.ts +48 -31
- package/dist/src/core/build-baseline.js +20 -43
- package/dist/src/core/build-jar-escalation.d.ts +8 -8
- package/dist/src/core/build-jar-escalation.js +18 -17
- package/dist/src/core/build-overwrite-guard.d.ts +4 -4
- package/dist/src/core/build-overwrite-guard.js +14 -14
- package/dist/src/core/build-prepare.d.ts +4 -12
- package/dist/src/core/build-prepare.js +22 -26
- package/dist/src/core/config-mutate.js +4 -4
- package/dist/src/core/config-paths.d.ts +2 -6
- package/dist/src/core/config-paths.js +4 -2
- package/dist/src/core/config-state.d.ts +0 -6
- package/dist/src/core/config-state.js +3 -21
- package/dist/src/core/config-validate-build-audit.d.ts +8 -0
- package/dist/src/core/config-validate-build-audit.js +80 -0
- package/dist/src/core/config-validate-file-size.d.ts +1 -1
- package/dist/src/core/config-validate-file-size.js +3 -3
- package/dist/src/core/config-validate-patch-policy.d.ts +2 -2
- package/dist/src/core/config-validate-patch-policy.js +3 -3
- package/dist/src/core/config-validate-test-toolchains.d.ts +2 -2
- package/dist/src/core/config-validate-test-toolchains.js +4 -5
- package/dist/src/core/config-validate.js +22 -12
- package/dist/src/core/config.d.ts +12 -12
- package/dist/src/core/config.js +21 -25
- package/dist/src/core/coverage-extend.d.ts +16 -16
- package/dist/src/core/coverage-extend.js +20 -20
- package/dist/src/core/destructive.d.ts +14 -14
- package/dist/src/core/destructive.js +9 -9
- package/dist/src/core/diff-hunks.d.ts +2 -2
- package/dist/src/core/diff-hunks.js +7 -7
- package/dist/src/core/discard-baseline.d.ts +10 -10
- package/dist/src/core/discard-baseline.js +22 -23
- package/dist/src/core/display-state.d.ts +11 -11
- package/dist/src/core/display-state.js +12 -12
- package/dist/src/core/engine-changes.d.ts +2 -2
- package/dist/src/core/engine-changes.js +2 -2
- package/dist/src/core/engine-precondition.d.ts +5 -13
- package/dist/src/core/engine-precondition.js +5 -10
- package/dist/src/core/engine-session-lock.d.ts +18 -18
- package/dist/src/core/engine-session-lock.js +50 -54
- package/dist/src/core/export-moved-code-shape.d.ts +7 -7
- package/dist/src/core/export-moved-code-shape.js +10 -10
- package/dist/src/core/file-lock-owner.d.ts +103 -0
- package/dist/src/core/file-lock-owner.js +259 -0
- package/dist/src/core/file-lock.d.ts +14 -19
- package/dist/src/core/file-lock.js +90 -128
- package/dist/src/core/firefox-cache.d.ts +13 -1
- package/dist/src/core/firefox-cache.js +61 -36
- package/dist/src/core/firefox-download.d.ts +15 -0
- package/dist/src/core/firefox-download.js +38 -22
- package/dist/src/core/firefox-extract.d.ts +8 -7
- package/dist/src/core/firefox-extract.js +45 -27
- package/dist/src/core/firefox.d.ts +34 -36
- package/dist/src/core/firefox.js +13 -44
- package/dist/src/core/furnace-apply-dry-run.d.ts +1 -6
- package/dist/src/core/furnace-apply-dry-run.js +2 -8
- package/dist/src/core/furnace-apply-ftl.d.ts +5 -5
- package/dist/src/core/furnace-apply-ftl.js +8 -8
- package/dist/src/core/furnace-apply-helpers.d.ts +9 -20
- package/dist/src/core/furnace-apply-helpers.js +28 -39
- package/dist/src/core/furnace-apply-output.js +1 -1
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +9 -9
- package/dist/src/core/furnace-apply-overwrite-warn.js +13 -11
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +1 -1
- package/dist/src/core/furnace-apply-undeploy-actions.js +1 -1
- package/dist/src/core/furnace-apply.d.ts +4 -4
- package/dist/src/core/furnace-apply.js +50 -29
- package/dist/src/core/furnace-checksum-utils.d.ts +5 -5
- package/dist/src/core/furnace-checksum-utils.js +5 -5
- package/dist/src/core/furnace-config-custom.d.ts +1 -1
- package/dist/src/core/furnace-config-custom.js +2 -2
- package/dist/src/core/furnace-config-order.js +1 -1
- package/dist/src/core/furnace-config-tokens.d.ts +3 -3
- package/dist/src/core/furnace-config-tokens.js +3 -3
- package/dist/src/core/furnace-config-validate.js +2 -2
- package/dist/src/core/furnace-config.d.ts +5 -5
- package/dist/src/core/furnace-config.js +40 -53
- package/dist/src/core/furnace-constants.d.ts +6 -6
- package/dist/src/core/furnace-constants.js +9 -8
- package/dist/src/core/furnace-css-fragments.d.ts +6 -6
- package/dist/src/core/furnace-css-fragments.js +11 -11
- package/dist/src/core/furnace-dir-entry.d.ts +20 -0
- package/dist/src/core/furnace-dir-entry.js +21 -0
- package/dist/src/core/furnace-jsconfig.d.ts +7 -7
- package/dist/src/core/furnace-jsconfig.js +22 -20
- package/dist/src/core/furnace-operation.d.ts +22 -19
- package/dist/src/core/furnace-operation.js +38 -34
- package/dist/src/core/furnace-precondition.d.ts +10 -10
- package/dist/src/core/furnace-precondition.js +8 -8
- package/dist/src/core/furnace-refresh.d.ts +18 -6
- package/dist/src/core/furnace-refresh.js +5 -8
- package/dist/src/core/furnace-registration-ast.d.ts +2 -3
- package/dist/src/core/furnace-registration-ast.js +9 -12
- package/dist/src/core/furnace-registration-remove.d.ts +4 -4
- package/dist/src/core/furnace-registration-remove.js +6 -6
- package/dist/src/core/furnace-registration-validate.d.ts +2 -2
- package/dist/src/core/furnace-registration-validate.js +2 -2
- package/dist/src/core/furnace-registration.d.ts +7 -6
- package/dist/src/core/furnace-registration.js +29 -36
- package/dist/src/core/furnace-rollback.d.ts +1 -1
- package/dist/src/core/furnace-rollback.js +5 -5
- package/dist/src/core/furnace-scanner.js +3 -6
- package/dist/src/core/furnace-stale-export.d.ts +17 -16
- package/dist/src/core/furnace-stale-export.js +16 -15
- package/dist/src/core/furnace-staleness.d.ts +2 -2
- package/dist/src/core/furnace-staleness.js +2 -2
- package/dist/src/core/furnace-state-persist.d.ts +12 -12
- package/dist/src/core/furnace-state-persist.js +10 -10
- package/dist/src/core/furnace-step-errors.d.ts +6 -6
- package/dist/src/core/furnace-step-errors.js +6 -6
- package/dist/src/core/furnace-validate-accessibility.js +14 -14
- package/dist/src/core/furnace-validate-compatibility.js +9 -9
- package/dist/src/core/furnace-validate-registration.d.ts +2 -2
- package/dist/src/core/furnace-validate-registration.js +18 -20
- package/dist/src/core/furnace-validate-structure.d.ts +1 -1
- package/dist/src/core/furnace-validate-structure.js +4 -4
- package/dist/src/core/furnace-validate.js +9 -9
- package/dist/src/core/furnace-version-drift.d.ts +5 -5
- package/dist/src/core/furnace-version-drift.js +5 -5
- package/dist/src/core/git-base.d.ts +6 -4
- package/dist/src/core/git-base.js +29 -7
- package/dist/src/core/git-diff-new-file.d.ts +40 -0
- package/dist/src/core/git-diff-new-file.js +119 -0
- package/dist/src/core/git-diff.d.ts +13 -13
- package/dist/src/core/git-diff.js +121 -189
- package/dist/src/core/git-file-ops.d.ts +6 -13
- package/dist/src/core/git-file-ops.js +11 -35
- package/dist/src/core/git-readonly-index.d.ts +12 -14
- package/dist/src/core/git-readonly-index.js +12 -16
- package/dist/src/core/git-status.d.ts +9 -2
- package/dist/src/core/git-status.js +23 -11
- package/dist/src/core/git.d.ts +3 -9
- package/dist/src/core/git.js +28 -57
- package/dist/src/core/harness-orphans.d.ts +17 -17
- package/dist/src/core/harness-orphans.js +28 -27
- package/dist/src/core/history-log.d.ts +19 -0
- package/dist/src/core/history-log.js +29 -0
- package/dist/src/core/license-headers.d.ts +19 -18
- package/dist/src/core/license-headers.js +29 -28
- package/dist/src/core/mach-build-artifacts.d.ts +21 -21
- package/dist/src/core/mach-build-artifacts.js +23 -23
- package/dist/src/core/mach-error-hints.d.ts +5 -10
- package/dist/src/core/mach-error-hints.js +14 -14
- package/dist/src/core/mach-known-noise-filter.d.ts +42 -38
- package/dist/src/core/mach-known-noise-filter.js +57 -56
- package/dist/src/core/mach-mozconfig.d.ts +6 -6
- package/dist/src/core/mach-mozconfig.js +17 -16
- package/dist/src/core/mach-python.d.ts +3 -0
- package/dist/src/core/mach-python.js +13 -7
- package/dist/src/core/mach-resource-shim.d.ts +24 -12
- package/dist/src/core/mach-resource-shim.js +124 -21
- package/dist/src/core/mach.d.ts +59 -73
- package/dist/src/core/mach.js +47 -115
- package/dist/src/core/marionette-port.d.ts +15 -30
- package/dist/src/core/marionette-port.js +46 -89
- package/dist/src/core/marionette-preflight.d.ts +6 -6
- package/dist/src/core/marionette-preflight.js +32 -50
- package/dist/src/core/markdown-table.d.ts +9 -9
- package/dist/src/core/markdown-table.js +14 -14
- package/dist/src/core/mochitest-server-port.d.ts +8 -8
- package/dist/src/core/mochitest-server-port.js +17 -17
- package/dist/src/core/module-resolution-preflight.d.ts +8 -8
- package/dist/src/core/module-resolution-preflight.js +11 -11
- package/dist/src/core/moz-manifest-helpers.d.ts +7 -7
- package/dist/src/core/moz-manifest-helpers.js +7 -7
- package/dist/src/core/moz-manifest-register.d.ts +1 -1
- package/dist/src/core/moz-manifest-register.js +2 -2
- package/dist/src/core/moz-manifest-rules.js +46 -42
- package/dist/src/core/moz-manifest-tokenizers.js +1 -1
- package/dist/src/core/ownership-table.d.ts +5 -5
- package/dist/src/core/ownership-table.js +7 -7
- package/dist/src/core/parser-fallback.d.ts +3 -3
- package/dist/src/core/parser-fallback.js +3 -3
- package/dist/src/core/patch-apply-fuzz.d.ts +5 -5
- package/dist/src/core/patch-apply-fuzz.js +13 -13
- package/dist/src/core/patch-apply.d.ts +13 -14
- package/dist/src/core/patch-apply.js +36 -42
- package/dist/src/core/patch-export-coverage.d.ts +0 -9
- package/dist/src/core/patch-export-coverage.js +1 -30
- package/dist/src/core/patch-export-update.d.ts +21 -4
- package/dist/src/core/patch-export-update.js +7 -6
- package/dist/src/core/patch-export.d.ts +20 -30
- package/dist/src/core/patch-export.js +55 -77
- package/dist/src/core/patch-files.d.ts +0 -4
- package/dist/src/core/patch-files.js +0 -11
- package/dist/src/core/patch-identifier-suggest.d.ts +1 -1
- package/dist/src/core/patch-identifier-suggest.js +4 -4
- package/dist/src/core/patch-lint-binary.d.ts +12 -18
- package/dist/src/core/patch-lint-cache.d.ts +18 -2
- package/dist/src/core/patch-lint-cache.js +16 -19
- package/dist/src/core/patch-lint-checkjs.d.ts +55 -38
- package/dist/src/core/patch-lint-checkjs.js +78 -64
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +8 -9
- package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -11
- package/dist/src/core/patch-lint-creators.d.ts +5 -9
- package/dist/src/core/patch-lint-creators.js +3 -3
- package/dist/src/core/patch-lint-cross.d.ts +27 -19
- package/dist/src/core/patch-lint-cross.js +67 -110
- package/dist/src/core/patch-lint-css.d.ts +1 -1
- package/dist/src/core/patch-lint-css.js +15 -11
- package/dist/src/core/patch-lint-diff-tag.d.ts +5 -5
- package/dist/src/core/patch-lint-diff-tag.js +5 -5
- package/dist/src/core/patch-lint-diff.d.ts +4 -4
- package/dist/src/core/patch-lint-diff.js +4 -4
- package/dist/src/core/patch-lint-file-size.d.ts +3 -3
- package/dist/src/core/patch-lint-file-size.js +6 -6
- package/dist/src/core/patch-lint-forward-registration.d.ts +58 -0
- package/dist/src/core/patch-lint-forward-registration.js +210 -0
- package/dist/src/core/patch-lint-jsdoc.d.ts +2 -2
- package/dist/src/core/patch-lint-jsdoc.js +46 -46
- package/dist/src/core/patch-lint-module-registration.d.ts +3 -9
- package/dist/src/core/patch-lint-module-registration.js +1 -1
- package/dist/src/core/patch-lint-mozbuild.d.ts +1 -1
- package/dist/src/core/patch-lint-mozbuild.js +10 -10
- package/dist/src/core/patch-lint-observer.d.ts +3 -3
- package/dist/src/core/patch-lint-observer.js +7 -7
- package/dist/src/core/patch-lint-ownership.d.ts +6 -6
- package/dist/src/core/patch-lint-ownership.js +6 -6
- package/dist/src/core/patch-lint-prettier.d.ts +6 -6
- package/dist/src/core/patch-lint-prettier.js +7 -7
- package/dist/src/core/patch-lint-queue-types.d.ts +60 -0
- package/dist/src/core/patch-lint-queue-types.js +12 -0
- package/dist/src/core/patch-lint-staged-registration.d.ts +61 -0
- package/dist/src/core/patch-lint-staged-registration.js +90 -0
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +23 -23
- package/dist/src/core/patch-lint-unmanaged-companion.js +26 -26
- package/dist/src/core/patch-lint.d.ts +41 -35
- package/dist/src/core/patch-lint.js +52 -49
- package/dist/src/core/patch-lock.d.ts +1 -1
- package/dist/src/core/patch-lock.js +11 -11
- package/dist/src/core/patch-manifest-consistency.d.ts +7 -7
- package/dist/src/core/patch-manifest-consistency.js +16 -17
- package/dist/src/core/patch-manifest-files-affected.d.ts +1 -1
- package/dist/src/core/patch-manifest-files-affected.js +3 -3
- package/dist/src/core/patch-manifest-io.d.ts +14 -14
- package/dist/src/core/patch-manifest-io.js +35 -34
- package/dist/src/core/patch-manifest-query.d.ts +1 -1
- package/dist/src/core/patch-manifest-query.js +4 -4
- package/dist/src/core/patch-manifest-resolve.d.ts +5 -5
- package/dist/src/core/patch-manifest-resolve.js +7 -7
- package/dist/src/core/patch-manifest-validate.js +3 -3
- package/dist/src/core/patch-manifest.d.ts +2 -2
- package/dist/src/core/patch-manifest.js +2 -2
- package/dist/src/core/patch-parse.d.ts +32 -21
- package/dist/src/core/patch-parse.js +40 -15
- package/dist/src/core/patch-policy.js +15 -27
- package/dist/src/core/patch-registration-refs.d.ts +4 -4
- package/dist/src/core/patch-registration-refs.js +7 -7
- package/dist/src/core/patch-source-metadata.d.ts +1 -3
- package/dist/src/core/patch-source-metadata.js +0 -4
- package/dist/src/core/patch-transform.d.ts +8 -16
- package/dist/src/core/patch-transform.js +13 -23
- package/dist/src/core/process-cpu-time.d.ts +1 -1
- package/dist/src/core/process-cpu-time.js +6 -6
- package/dist/src/core/rebase-session.d.ts +9 -15
- package/dist/src/core/rebase-session.js +13 -25
- package/dist/src/core/register-browser-content.js +3 -2
- package/dist/src/core/register-browser-test.js +2 -1
- package/dist/src/core/register-module.js +2 -1
- package/dist/src/core/register-result.d.ts +1 -1
- package/dist/src/core/register-result.js +1 -1
- package/dist/src/core/register-scaffold.d.ts +2 -2
- package/dist/src/core/register-scaffold.js +8 -7
- package/dist/src/core/register-shared-css.d.ts +3 -3
- package/dist/src/core/register-shared-css.js +6 -5
- package/dist/src/core/register-xpcshell-test.d.ts +2 -2
- package/dist/src/core/register-xpcshell-test.js +2 -2
- package/dist/src/core/run-log-redact.d.ts +38 -0
- package/dist/src/core/run-log-redact.js +69 -0
- package/dist/src/core/run-log.d.ts +21 -10
- package/dist/src/core/run-log.js +76 -27
- package/dist/src/core/shared-ftl.d.ts +2 -2
- package/dist/src/core/shared-ftl.js +6 -6
- package/dist/src/core/signal-critical.d.ts +2 -2
- package/dist/src/core/signal-critical.js +4 -6
- package/dist/src/core/smoke-patterns.d.ts +5 -6
- package/dist/src/core/smoke-patterns.js +15 -20
- package/dist/src/core/state-file.d.ts +15 -4
- package/dist/src/core/state-file.js +14 -1
- package/dist/src/core/status-binary.d.ts +8 -8
- package/dist/src/core/status-binary.js +12 -12
- package/dist/src/core/status-classify.d.ts +17 -17
- package/dist/src/core/status-classify.js +13 -12
- package/dist/src/core/test-changed-prefs.d.ts +12 -12
- package/dist/src/core/test-changed-prefs.js +40 -25
- package/dist/src/core/test-harness-crash.d.ts +39 -39
- package/dist/src/core/test-harness-crash.js +69 -69
- package/dist/src/core/test-harness-output.d.ts +7 -7
- package/dist/src/core/test-harness-output.js +7 -7
- package/dist/src/core/test-harness-verdict-notes.d.ts +13 -14
- package/dist/src/core/test-harness-verdict-notes.js +4 -4
- package/dist/src/core/test-path-scope.d.ts +8 -8
- package/dist/src/core/test-path-scope.js +11 -11
- package/dist/src/core/test-stale-check.d.ts +22 -23
- package/dist/src/core/test-stale-check.js +31 -30
- package/dist/src/core/test-stale-symlink.d.ts +1 -1
- package/dist/src/core/test-stale-symlink.js +1 -1
- package/dist/src/core/test-stall-triage.d.ts +9 -9
- package/dist/src/core/test-stall-triage.js +22 -22
- package/dist/src/core/test-xpcshell-retry.d.ts +26 -7
- package/dist/src/core/test-xpcshell-retry.js +14 -11
- package/dist/src/core/token-category.d.ts +35 -2
- package/dist/src/core/token-category.js +67 -58
- package/dist/src/core/token-coverage.js +4 -5
- package/dist/src/core/token-dark-mode.d.ts +9 -9
- package/dist/src/core/token-dark-mode.js +13 -25
- package/dist/src/core/token-docs.d.ts +1 -1
- package/dist/src/core/token-inventory.d.ts +56 -0
- package/dist/src/core/token-inventory.js +109 -0
- package/dist/src/core/token-manager.d.ts +4 -4
- package/dist/src/core/token-manager.js +22 -22
- package/dist/src/core/token-scaffold.d.ts +4 -4
- package/dist/src/core/token-scaffold.js +4 -4
- package/dist/src/core/token-variant.d.ts +14 -14
- package/dist/src/core/token-variant.js +52 -53
- package/dist/src/core/toolchain-preflight.d.ts +15 -15
- package/dist/src/core/toolchain-preflight.js +23 -23
- package/dist/src/core/tree-cow.d.ts +3 -5
- package/dist/src/core/tree-cow.js +8 -8
- package/dist/src/core/tree-guard.d.ts +3 -3
- package/dist/src/core/tree-guard.js +23 -23
- package/dist/src/core/tree-store.d.ts +15 -15
- package/dist/src/core/tree-store.js +39 -38
- package/dist/src/core/typecheck-shim.d.ts +16 -15
- package/dist/src/core/typecheck-shim.js +26 -25
- package/dist/src/core/typecheck.d.ts +12 -12
- package/dist/src/core/typecheck.js +33 -33
- package/dist/src/core/wire-destroy.d.ts +2 -2
- package/dist/src/core/wire-destroy.js +5 -5
- package/dist/src/core/wire-dom-fragment.d.ts +3 -3
- package/dist/src/core/wire-dom-fragment.js +12 -23
- package/dist/src/core/wire-init.d.ts +2 -2
- package/dist/src/core/wire-init.js +7 -7
- package/dist/src/core/wire-subscript.d.ts +1 -1
- package/dist/src/core/wire-subscript.js +3 -3
- package/dist/src/core/wire-utils.d.ts +9 -9
- package/dist/src/core/wire-utils.js +16 -28
- package/dist/src/core/xpcshell-appdir.d.ts +20 -20
- package/dist/src/core/xpcshell-appdir.js +28 -30
- package/dist/src/core/xpcshell-profile-dir.d.ts +3 -3
- package/dist/src/core/xpcshell-profile-dir.js +7 -7
- package/dist/src/errors/base.d.ts +69 -16
- package/dist/src/errors/base.js +95 -26
- package/dist/src/errors/build.d.ts +6 -6
- package/dist/src/errors/build.js +26 -34
- package/dist/src/errors/codes.d.ts +10 -10
- package/dist/src/errors/codes.js +10 -10
- package/dist/src/errors/config.d.ts +0 -14
- package/dist/src/errors/config.js +13 -34
- package/dist/src/errors/download.d.ts +13 -0
- package/dist/src/errors/download.js +53 -24
- package/dist/src/errors/furnace.d.ts +2 -2
- package/dist/src/errors/furnace.js +8 -9
- package/dist/src/errors/git.d.ts +9 -9
- package/dist/src/errors/git.js +21 -31
- package/dist/src/errors/patch.d.ts +3 -3
- package/dist/src/errors/patch.js +11 -13
- package/dist/src/errors/rebase.d.ts +1 -1
- package/dist/src/errors/rebase.js +8 -8
- package/dist/src/errors/run.d.ts +1 -1
- package/dist/src/errors/run.js +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.js +4 -4
- package/dist/src/types/commands/options.d.ts +155 -200
- package/dist/src/types/commands/patches.d.ts +19 -19
- package/dist/src/types/commands/project.d.ts +3 -3
- package/dist/src/types/config.d.ts +52 -19
- package/dist/src/types/furnace.d.ts +17 -17
- package/dist/src/types/index.d.ts +0 -1
- package/dist/src/types/json.d.ts +3 -3
- package/dist/src/types/json.js +2 -2
- package/dist/src/types/typecheck.d.ts +3 -3
- package/dist/src/utils/assert.d.ts +4 -16
- package/dist/src/utils/assert.js +7 -24
- package/dist/src/utils/build-info.d.ts +6 -6
- package/dist/src/utils/build-info.js +6 -6
- package/dist/src/utils/child-env.d.ts +7 -6
- package/dist/src/utils/child-env.js +5 -5
- package/dist/src/utils/concurrency.d.ts +2 -2
- package/dist/src/utils/concurrency.js +2 -2
- package/dist/src/utils/elapsed.js +10 -1
- package/dist/src/utils/errors.d.ts +8 -8
- package/dist/src/utils/errors.js +8 -8
- package/dist/src/utils/fs.d.ts +1 -1
- package/dist/src/utils/fs.js +15 -20
- package/dist/src/utils/hash.d.ts +12 -0
- package/dist/src/utils/hash.js +16 -0
- package/dist/src/utils/line-dispatch.d.ts +15 -0
- package/dist/src/utils/line-dispatch.js +48 -0
- package/dist/src/utils/logger.d.ts +4 -4
- package/dist/src/utils/logger.js +11 -11
- package/dist/src/utils/machine-output.js +2 -2
- package/dist/src/utils/options.d.ts +14 -20
- package/dist/src/utils/options.js +26 -27
- package/dist/src/utils/package-root.js +5 -14
- package/dist/src/utils/paths.d.ts +4 -4
- package/dist/src/utils/paths.js +4 -4
- package/dist/src/utils/platform.d.ts +0 -4
- package/dist/src/utils/process-group.d.ts +10 -9
- package/dist/src/utils/process-group.js +37 -36
- package/dist/src/utils/process.d.ts +70 -55
- package/dist/src/utils/process.js +129 -179
- package/dist/src/utils/ps-duration.d.ts +4 -4
- package/dist/src/utils/ps-duration.js +9 -9
- package/dist/src/utils/regex.d.ts +4 -4
- package/dist/src/utils/regex.js +7 -7
- package/dist/src/utils/sleep.d.ts +26 -0
- package/dist/src/utils/sleep.js +31 -0
- package/dist/src/utils/stdio-drain.d.ts +7 -7
- package/dist/src/utils/stdio-drain.js +8 -8
- package/dist/src/utils/validation.d.ts +12 -49
- package/dist/src/utils/validation.js +26 -36
- package/docs/README.md +2 -2
- package/docs/configuration.md +163 -69
- package/docs/exit-codes.md +66 -49
- package/docs/furnace.md +20 -19
- package/docs/lifecycle-invariants.md +414 -247
- package/docs/machine-output.md +58 -34
- package/docs/patch-workflow.md +48 -44
- package/docs/run-logs.md +72 -28
- package/docs/testing.md +105 -98
- package/docs/verification-trees.md +23 -22
- package/package.json +7 -6
- package/dist/src/commands/rebase.d.ts +0 -4
- package/dist/src/commands/rebase.js +0 -5
- package/dist/src/core/patch-artifact-normalize.d.ts +0 -21
- package/dist/src/core/patch-artifact-normalize.js +0 -24
- package/dist/src/core/patch-lint-reexports.d.ts +0 -7
- package/dist/src/core/patch-lint-reexports.js +0 -8
- package/dist/src/core/wire-targets.d.ts +0 -7
- package/dist/src/core/wire-targets.js +0 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { FireForgeError } from './base.js';
|
|
2
|
+
import { FireForgeError, remedies } from './base.js';
|
|
3
3
|
import { ExitCode } from './codes.js';
|
|
4
4
|
/**
|
|
5
5
|
* Error thrown when configuration is missing or invalid.
|
|
@@ -12,15 +12,13 @@ export class ConfigError extends FireForgeError {
|
|
|
12
12
|
this.field = field;
|
|
13
13
|
}
|
|
14
14
|
get userMessage() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
msg += ' 3. See the documentation for the expected format';
|
|
23
|
-
return msg;
|
|
15
|
+
return (`Configuration Error: ${this.message}` +
|
|
16
|
+
(this.field ? `\n\nField: ${this.field}` : '') +
|
|
17
|
+
remedies([
|
|
18
|
+
'Check your fireforge.json file for errors',
|
|
19
|
+
'Run "fireforge setup" to create a new configuration',
|
|
20
|
+
'See the documentation for the expected format',
|
|
21
|
+
]));
|
|
24
22
|
}
|
|
25
23
|
}
|
|
26
24
|
/**
|
|
@@ -32,29 +30,10 @@ export class ConfigNotFoundError extends ConfigError {
|
|
|
32
30
|
}
|
|
33
31
|
get userMessage() {
|
|
34
32
|
return (`Configuration Error: ${this.message}\n\n` +
|
|
35
|
-
'This directory does not appear to be a FireForge project
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Error thrown when a required field is missing from config.
|
|
43
|
-
*/
|
|
44
|
-
export class MissingFieldError extends ConfigError {
|
|
45
|
-
constructor(field) {
|
|
46
|
-
super(`Required field "${field}" is missing from fireforge.json`, field);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Error thrown when a field has an invalid value.
|
|
51
|
-
*/
|
|
52
|
-
export class InvalidFieldError extends ConfigError {
|
|
53
|
-
expectedType;
|
|
54
|
-
actualValue;
|
|
55
|
-
constructor(field, expectedType, actualValue) {
|
|
56
|
-
super(`Field "${field}" has invalid value. Expected ${expectedType}, got ${typeof actualValue}`, field);
|
|
57
|
-
this.expectedType = expectedType;
|
|
58
|
-
this.actualValue = actualValue;
|
|
33
|
+
'This directory does not appear to be a FireForge project.' +
|
|
34
|
+
remedies([
|
|
35
|
+
'Navigate to your project root directory',
|
|
36
|
+
'Run "fireforge setup" to initialize a new project',
|
|
37
|
+
]));
|
|
59
38
|
}
|
|
60
39
|
}
|
|
@@ -19,6 +19,19 @@ export declare class ChecksumMismatchError extends DownloadError {
|
|
|
19
19
|
constructor(product: FirefoxProduct, expectedSha256: string, actualSha256: string, url: string);
|
|
20
20
|
get userMessage(): string;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Error thrown when the default integrity check cannot obtain Mozilla's
|
|
24
|
+
* published SHA-256 for a freshly downloaded archive (checksum file
|
|
25
|
+
* unreachable, malformed, or not listing the archive) and no operator pin
|
|
26
|
+
* or explicit opt-out allows the download to be trusted on TLS alone.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ChecksumUnavailableError extends DownloadError {
|
|
29
|
+
readonly product: FirefoxProduct;
|
|
30
|
+
readonly checksumsUrl: string;
|
|
31
|
+
readonly reason: string;
|
|
32
|
+
constructor(product: FirefoxProduct, checksumsUrl: string, reason: string, url: string);
|
|
33
|
+
get userMessage(): string;
|
|
34
|
+
}
|
|
22
35
|
/**
|
|
23
36
|
* Error thrown when extraction of the downloaded archive fails.
|
|
24
37
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FireForgeError } from './base.js';
|
|
1
|
+
import { FireForgeError, remedies } from './base.js';
|
|
2
2
|
import { ExitCode } from './codes.js';
|
|
3
3
|
/**
|
|
4
4
|
* Error thrown when Firefox source download fails.
|
|
@@ -11,15 +11,13 @@ export class DownloadError extends FireForgeError {
|
|
|
11
11
|
this.url = url;
|
|
12
12
|
}
|
|
13
13
|
get userMessage() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
msg += ' 3. Try again with "fireforge download --force"';
|
|
22
|
-
return msg;
|
|
14
|
+
return (`Download Error: ${this.message}` +
|
|
15
|
+
(this.url ? `\n\nURL: ${this.url}` : '') +
|
|
16
|
+
remedies([
|
|
17
|
+
'Check your internet connection',
|
|
18
|
+
'Verify the Firefox version in fireforge.json is valid',
|
|
19
|
+
'Try again with "fireforge download --force"',
|
|
20
|
+
]));
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
/**
|
|
@@ -36,23 +34,54 @@ export class ChecksumMismatchError extends DownloadError {
|
|
|
36
34
|
this.actualSha256 = actualSha256;
|
|
37
35
|
}
|
|
38
36
|
get userMessage() {
|
|
39
|
-
|
|
37
|
+
return (`Download Error: Firefox source archive checksum mismatch.\n\n` +
|
|
40
38
|
`Product: ${this.product}\n` +
|
|
41
39
|
`URL: ${this.url}\n` +
|
|
42
40
|
`Expected SHA-256: ${this.expectedSha256}\n` +
|
|
43
|
-
`Actual SHA-256: ${this.actualSha256}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
`Actual SHA-256: ${this.actualSha256}` +
|
|
42
|
+
remedies([
|
|
43
|
+
'Verify firefox.product, firefox.version, and firefox.sha256 in fireforge.json',
|
|
44
|
+
'Compare the pinned hash with Mozilla SHA256SUMMARY for the resolved archive',
|
|
45
|
+
...(this.product === 'firefox-devedition'
|
|
46
|
+
? [
|
|
47
|
+
'Developer Edition archives should resolve under https://archive.mozilla.org/pub/devedition/releases/',
|
|
48
|
+
]
|
|
49
|
+
: []),
|
|
50
|
+
'Re-run "fireforge download --force" after correcting the source settings',
|
|
51
|
+
]));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Error thrown when the default integrity check cannot obtain Mozilla's
|
|
56
|
+
* published SHA-256 for a freshly downloaded archive (checksum file
|
|
57
|
+
* unreachable, malformed, or not listing the archive) and no operator pin
|
|
58
|
+
* or explicit opt-out allows the download to be trusted on TLS alone.
|
|
59
|
+
*/
|
|
60
|
+
export class ChecksumUnavailableError extends DownloadError {
|
|
61
|
+
product;
|
|
62
|
+
checksumsUrl;
|
|
63
|
+
reason;
|
|
64
|
+
constructor(product, checksumsUrl, reason, url) {
|
|
65
|
+
super(`Could not verify archive against published SHA256SUMS: ${reason}`, url);
|
|
66
|
+
this.product = product;
|
|
67
|
+
this.checksumsUrl = checksumsUrl;
|
|
68
|
+
this.reason = reason;
|
|
69
|
+
}
|
|
70
|
+
get userMessage() {
|
|
71
|
+
return (`Download Error: Firefox source archive integrity could not be verified.\n\n` +
|
|
72
|
+
`Product: ${this.product}\n` +
|
|
73
|
+
`Archive: ${this.url ?? ''}\n` +
|
|
74
|
+
`Checksums: ${this.checksumsUrl}\n` +
|
|
75
|
+
`Reason: ${this.reason}\n\n` +
|
|
76
|
+
'The archive was downloaded but discarded: without the published digest it would be ' +
|
|
77
|
+
'trusted on TLS alone, and it becomes the git baseline every patch is built on.\n\n' +
|
|
78
|
+
'To fix this:\n' +
|
|
79
|
+
' 1. Check connectivity to archive.mozilla.org (a captive portal or proxy may be ' +
|
|
80
|
+
'answering the SHA256SUMS request) and retry\n' +
|
|
81
|
+
' 2. Or pin the archive digest: set firefox.sha256 in fireforge.json ' +
|
|
82
|
+
'(from the release SHA256SUMS, obtained out of band)\n' +
|
|
83
|
+
' 3. Or, for an offline mirror you trust, set firefox.allowUnverifiedDownload: true ' +
|
|
84
|
+
'in fireforge.json to accept the download with a warning');
|
|
56
85
|
}
|
|
57
86
|
}
|
|
58
87
|
/**
|
|
@@ -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, or that
|
|
11
|
+
* whose message already tells the user to run validate, or that are
|
|
12
12
|
* the validate command. An explicit flag rather than sniffing the
|
|
13
13
|
* message for `furnace validate`, which drops the advice from any
|
|
14
|
-
* error that merely
|
|
14
|
+
* error that merely mentions the command.
|
|
15
15
|
*/
|
|
16
16
|
omitValidateAdvice?: boolean;
|
|
17
17
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { FireForgeError } from './base.js';
|
|
2
|
+
import { FireForgeError, remedies } from './base.js';
|
|
3
3
|
import { ExitCode } from './codes.js';
|
|
4
4
|
/**
|
|
5
5
|
* Error thrown when a furnace component operation fails.
|
|
@@ -15,15 +15,14 @@ export class FurnaceError extends FireForgeError {
|
|
|
15
15
|
}
|
|
16
16
|
omitValidateAdvice;
|
|
17
17
|
get userMessage() {
|
|
18
|
-
|
|
18
|
+
const head = this.component
|
|
19
19
|
? `Furnace Error (${this.component}): ${this.message}`
|
|
20
20
|
: `Furnace Error: ${this.message}`;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return msg;
|
|
21
|
+
return (head +
|
|
22
|
+
remedies([
|
|
23
|
+
'Check the error message above for specifics',
|
|
24
|
+
...(this.omitValidateAdvice ? [] : ['Run "fireforge furnace validate" to diagnose issues']),
|
|
25
|
+
'Use "fireforge doctor --repair-furnace" if state is inconsistent',
|
|
26
|
+
]));
|
|
28
27
|
}
|
|
29
28
|
}
|
package/dist/src/errors/git.d.ts
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import { FireForgeError } from './base.js';
|
|
2
|
+
import { ExitCode } from './codes.js';
|
|
2
3
|
/**
|
|
3
4
|
* Error thrown when a git operation fails.
|
|
4
5
|
*/
|
|
5
6
|
export declare class GitError extends FireForgeError {
|
|
6
7
|
readonly command?: string | undefined;
|
|
7
|
-
readonly code:
|
|
8
|
+
readonly code: ExitCode;
|
|
8
9
|
constructor(message: string, command?: string | undefined, cause?: Error);
|
|
9
10
|
get userMessage(): string;
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* Error thrown when git is not installed.
|
|
14
|
+
*
|
|
15
|
+
* MISSING_DEPENDENCY, not GIT_ERROR: the fact is "a required tool is
|
|
16
|
+
* absent", the same fact `PythonNotFoundError` and `MachNotFoundError`
|
|
17
|
+
* report, and a consumer should install something rather than inspect a
|
|
18
|
+
* repository.
|
|
13
19
|
*/
|
|
14
20
|
export declare class GitNotFoundError extends GitError {
|
|
21
|
+
readonly code: 7;
|
|
15
22
|
constructor();
|
|
16
23
|
get userMessage(): string;
|
|
17
24
|
}
|
|
@@ -23,13 +30,6 @@ export declare class PatchApplyError extends GitError {
|
|
|
23
30
|
constructor(patchPath: string, cause?: Error);
|
|
24
31
|
get userMessage(): string;
|
|
25
32
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Error thrown when the repository is in a dirty state.
|
|
28
|
-
*/
|
|
29
|
-
export declare class DirtyRepositoryError extends GitError {
|
|
30
|
-
constructor();
|
|
31
|
-
get userMessage(): string;
|
|
32
|
-
}
|
|
33
33
|
/**
|
|
34
34
|
* Error thrown when a stale git index lock blocks repository initialization.
|
|
35
35
|
*/
|
|
@@ -40,7 +40,7 @@ export declare class GitIndexLockError extends GitError {
|
|
|
40
40
|
get userMessage(): string;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
* Detects transient git `index.lock` contention
|
|
43
|
+
* Detects transient git `index.lock` contention: an external git process
|
|
44
44
|
* holding `.git/index.lock` while we stage or diff. Mirrors the message
|
|
45
45
|
* heuristics `core/git.ts` uses when wrapping stale-lock failures during
|
|
46
46
|
* download, but lives here so command modules can consult it without
|
package/dist/src/errors/git.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { FireForgeError } from './base.js';
|
|
2
|
+
import { FireForgeError, remedies } from './base.js';
|
|
3
3
|
import { ExitCode } from './codes.js';
|
|
4
4
|
/**
|
|
5
5
|
* Error thrown when a git operation fails.
|
|
@@ -12,21 +12,25 @@ export class GitError extends FireForgeError {
|
|
|
12
12
|
this.command = command;
|
|
13
13
|
}
|
|
14
14
|
get userMessage() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
msg += ' 3. Try running "fireforge reset" to start fresh';
|
|
23
|
-
return msg;
|
|
15
|
+
return (`Git Error: ${this.message}` +
|
|
16
|
+
(this.command ? `\n\nCommand: git ${this.command}` : '') +
|
|
17
|
+
remedies([
|
|
18
|
+
'Ensure git is installed and in your PATH',
|
|
19
|
+
'Check if the repository is in a valid state',
|
|
20
|
+
'Try running "fireforge reset" to start fresh',
|
|
21
|
+
]));
|
|
24
22
|
}
|
|
25
23
|
}
|
|
26
24
|
/**
|
|
27
25
|
* Error thrown when git is not installed.
|
|
26
|
+
*
|
|
27
|
+
* MISSING_DEPENDENCY, not GIT_ERROR: the fact is "a required tool is
|
|
28
|
+
* absent", the same fact `PythonNotFoundError` and `MachNotFoundError`
|
|
29
|
+
* report, and a consumer should install something rather than inspect a
|
|
30
|
+
* repository.
|
|
28
31
|
*/
|
|
29
32
|
export class GitNotFoundError extends GitError {
|
|
33
|
+
code = ExitCode.MISSING_DEPENDENCY;
|
|
30
34
|
constructor() {
|
|
31
35
|
super('Git is not installed or not found in PATH');
|
|
32
36
|
}
|
|
@@ -50,26 +54,12 @@ export class PatchApplyError extends GitError {
|
|
|
50
54
|
get userMessage() {
|
|
51
55
|
return (`Git Error: Failed to apply patch.\n\n` +
|
|
52
56
|
`Patch: ${this.patchPath}\n\n` +
|
|
53
|
-
'This usually means the patch conflicts with existing changes
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Error thrown when the repository is in a dirty state.
|
|
62
|
-
*/
|
|
63
|
-
export class DirtyRepositoryError extends GitError {
|
|
64
|
-
constructor() {
|
|
65
|
-
super('Repository has uncommitted changes');
|
|
66
|
-
}
|
|
67
|
-
get userMessage() {
|
|
68
|
-
return ('Git Error: The Firefox source has uncommitted changes.\n\n' +
|
|
69
|
-
'To fix this:\n' +
|
|
70
|
-
' 1. Export your changes with "fireforge export"\n' +
|
|
71
|
-
' 2. Use "fireforge reset" to restore clean state\n' +
|
|
72
|
-
' 3. Then run "fireforge import" to reapply patches');
|
|
57
|
+
'This usually means the patch conflicts with existing changes.' +
|
|
58
|
+
remedies([
|
|
59
|
+
'Check if the Firefox version matches the patch',
|
|
60
|
+
'Use "fireforge reset" to start with clean source',
|
|
61
|
+
'Update the patch to match the current Firefox version',
|
|
62
|
+
]));
|
|
73
63
|
}
|
|
74
64
|
}
|
|
75
65
|
/**
|
|
@@ -97,7 +87,7 @@ export class GitIndexLockError extends GitError {
|
|
|
97
87
|
}
|
|
98
88
|
}
|
|
99
89
|
/**
|
|
100
|
-
* Detects transient git `index.lock` contention
|
|
90
|
+
* Detects transient git `index.lock` contention: an external git process
|
|
101
91
|
* holding `.git/index.lock` while we stage or diff. Mirrors the message
|
|
102
92
|
* heuristics `core/git.ts` uses when wrapping stale-lock failures during
|
|
103
93
|
* download, but lives here so command modules can consult it without
|
|
@@ -2,11 +2,11 @@ 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
|
|
6
|
-
* into "absent"
|
|
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
7
|
* the next `fireforge export` rebuild the manifest containing only the new
|
|
8
8
|
* patch, silently destroying every other patch's metadata (tiers,
|
|
9
|
-
* descriptions, lintIgnore, staged dependencies)
|
|
9
|
+
* descriptions, lintIgnore, staged dependencies). A failed export's rollback
|
|
10
10
|
* then deletes `patches.json` outright, because the "before" state looked
|
|
11
11
|
* absent.
|
|
12
12
|
*/
|
package/dist/src/errors/patch.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { FireForgeError } from './base.js';
|
|
2
|
+
import { FireForgeError, remedies } from './base.js';
|
|
3
3
|
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
|
|
8
|
-
* into "absent"
|
|
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
9
|
* the next `fireforge export` rebuild the manifest containing only the new
|
|
10
10
|
* patch, silently destroying every other patch's metadata (tiers,
|
|
11
|
-
* descriptions, lintIgnore, staged dependencies)
|
|
11
|
+
* descriptions, lintIgnore, staged dependencies). A failed export's rollback
|
|
12
12
|
* then deletes `patches.json` outright, because the "before" state looked
|
|
13
13
|
* absent.
|
|
14
14
|
*/
|
|
@@ -41,14 +41,12 @@ export class PatchError extends FireForgeError {
|
|
|
41
41
|
this.patchName = patchName;
|
|
42
42
|
}
|
|
43
43
|
get userMessage() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
msg += ' 3. Update the patch for the current Firefox version';
|
|
52
|
-
return msg;
|
|
44
|
+
return (`Patch Error: ${this.message}` +
|
|
45
|
+
(this.patchName ? `\n\nPatch: ${this.patchName}` : '') +
|
|
46
|
+
remedies([
|
|
47
|
+
'Check if the patch is compatible with the Firefox version',
|
|
48
|
+
'Use "fireforge reset" to start with clean source',
|
|
49
|
+
'Update the patch for the current Firefox version',
|
|
50
|
+
]));
|
|
53
51
|
}
|
|
54
52
|
}
|
|
@@ -23,7 +23,7 @@ export declare class NoRebaseSessionError extends RebaseError {
|
|
|
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
|
-
* reports {@link RebaseSessionExistsError}
|
|
26
|
+
* reports {@link RebaseSessionExistsError}, a closed cycle in which each
|
|
27
27
|
* command points at the other two. The message names the file so an operator
|
|
28
28
|
* always has a way out, and `--abort` clears a corrupt session rather than
|
|
29
29
|
* refusing to run against one.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
-
import { FireForgeError } from './base.js';
|
|
2
|
+
import { FireForgeError, remedies } from './base.js';
|
|
3
3
|
import { ExitCode } from './codes.js';
|
|
4
4
|
/**
|
|
5
5
|
* Base error for rebase operations.
|
|
@@ -7,12 +7,12 @@ import { ExitCode } from './codes.js';
|
|
|
7
7
|
export class RebaseError extends FireForgeError {
|
|
8
8
|
code = ExitCode.PATCH_ERROR;
|
|
9
9
|
get userMessage() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
return (`Rebase Error: ${this.message}` +
|
|
11
|
+
remedies([
|
|
12
|
+
'Check the error message above for specifics',
|
|
13
|
+
'Use "fireforge rebase --continue" to resume an interrupted rebase',
|
|
14
|
+
'Use "fireforge rebase --abort" to cancel and restore engine state',
|
|
15
|
+
]));
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
@@ -37,7 +37,7 @@ export class NoRebaseSessionError extends RebaseError {
|
|
|
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
|
-
* reports {@link RebaseSessionExistsError}
|
|
40
|
+
* reports {@link RebaseSessionExistsError}, a closed cycle in which each
|
|
41
41
|
* command points at the other two. The message names the file so an operator
|
|
42
42
|
* always has a way out, and `--abort` clears a corrupt session rather than
|
|
43
43
|
* refusing to run against one.
|
package/dist/src/errors/run.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { FireForgeError } from './base.js';
|
|
|
2
2
|
import { ExitCode } from './codes.js';
|
|
3
3
|
/**
|
|
4
4
|
* Error raised by `fireforge run --smoke-exit` when the captured console
|
|
5
|
-
* stream produced one or more error lines that did
|
|
5
|
+
* stream produced one or more error lines that did not match the
|
|
6
6
|
* configured allowlist.
|
|
7
7
|
*
|
|
8
8
|
* Distinct from `BuildError` so CI pipelines can route smoke failures
|
package/dist/src/errors/run.js
CHANGED
|
@@ -3,7 +3,7 @@ import { FireForgeError } from './base.js';
|
|
|
3
3
|
import { ExitCode } from './codes.js';
|
|
4
4
|
/**
|
|
5
5
|
* Error raised by `fireforge run --smoke-exit` when the captured console
|
|
6
|
-
* stream produced one or more error lines that did
|
|
6
|
+
* stream produced one or more error lines that did not match the
|
|
7
7
|
* configured allowlist.
|
|
8
8
|
*
|
|
9
9
|
* Distinct from `BuildError` so CI pipelines can route smoke failures
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* FireForge
|
|
2
|
+
* FireForge: a toolkit for building and maintaining Firefox-based browsers.
|
|
3
3
|
*
|
|
4
4
|
* This module re-exports the public API surface used by downstream consumers.
|
|
5
5
|
* For CLI usage, see `bin/fireforge.ts`.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Stability: pre-1.0. The exports listed here are functional and tested,
|
|
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
|
-
*
|
|
12
|
-
* reachable from the signature of an exported
|
|
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
13
|
* it to name an argument or a return. Everything else stays internal to
|
|
14
14
|
* `src/types/`.
|
|
15
15
|
*
|
package/dist/src/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// SPDX-License-Identifier: EUPL-1.2
|
|
2
2
|
/**
|
|
3
|
-
* FireForge
|
|
3
|
+
* FireForge: a toolkit for building and maintaining Firefox-based browsers.
|
|
4
4
|
*
|
|
5
5
|
* This module re-exports the public API surface used by downstream consumers.
|
|
6
6
|
* For CLI usage, see `bin/fireforge.ts`.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Stability: pre-1.0. The exports listed here are functional and tested,
|
|
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
|
-
*
|
|
13
|
-
* reachable from the signature of an exported
|
|
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
14
|
* it to name an argument or a return. Everything else stays internal to
|
|
15
15
|
* `src/types/`.
|
|
16
16
|
*
|