@hominis/fireforge 0.54.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -438
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -332
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -420
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -422
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -208
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -692
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +113 -181
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -277
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +163 -653
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -712
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -91
- package/dist/src/commands/check-run.d.ts +0 -33
- package/dist/src/commands/check-run.js +0 -112
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -218
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -282
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -52
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -261
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -117
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -248
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -267
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -35
- package/dist/src/commands/re-export-hunks.js +0 -220
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -191
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -39
- package/dist/src/commands/re-export-single.js +0 -388
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -28
- package/dist/src/commands/re-export-summary.js +0 -36
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -29
- package/dist/src/commands/test-build-phase.js +0 -290
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -63
- package/dist/src/commands/test-orchestrate.js +0 -274
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -52
- package/dist/src/commands/test-stale-gate.js +0 -165
- package/dist/src/commands/test-verdict.d.ts +0 -92
- package/dist/src/commands/test-verdict.js +0 -162
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck.d.ts +0 -56
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -274
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -92
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -503
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -62
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -146
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -79
- package/dist/src/core/furnace-constants.js +0 -123
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -61
- package/dist/src/core/furnace-jsconfig.js +0 -208
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -302
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -318
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -204
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache.d.ts +0 -78
- package/dist/src/core/patch-lint-cache.js +0 -233
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -180
- package/dist/src/core/patch-lint-checkjs.js +0 -611
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -5
- package/dist/src/core/patch-lint-imports.js +0 -67
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -78
- package/dist/src/core/patch-lint-staged-registration.js +0 -110
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
- package/dist/src/core/patch-lint-token-scale.js +0 -286
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -191
- package/dist/src/core/patch-lint.js +0 -529
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -161
- package/dist/src/core/patch-parse.js +0 -347
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -216
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -507
- package/dist/src/core/typecheck.d.ts +0 -75
- package/dist/src/core/typecheck.js +0 -433
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1367
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -703
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -415
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* The source tree as the owned-change model: one step per owned path
|
|
4
|
+
* against its pristine blob, in the groups an export would write. Lint,
|
|
5
|
+
* policy, typecheck scope, `status` and `verify` read this and never learn
|
|
6
|
+
* the storage.
|
|
7
|
+
*/
|
|
8
|
+
import { readBytes } from '../kernel/fs.js';
|
|
9
|
+
import { mapLimit } from '../kernel/time.js';
|
|
10
|
+
import { createChangeSet, textContent, } from '../project/index.js';
|
|
11
|
+
import { planGroups } from './groups.js';
|
|
12
|
+
import { diffSections, readPristineBlobs, writeDeltaTrees } from './objects.js';
|
|
13
|
+
import { readSourceTree } from './tree.js';
|
|
14
|
+
/** Files read at once while classifying content. */
|
|
15
|
+
const READ_CONCURRENCY = 32;
|
|
16
|
+
function isBinary(bytes) {
|
|
17
|
+
return bytes !== undefined && textContent(bytes) === undefined;
|
|
18
|
+
}
|
|
19
|
+
function changeMeta(entry) {
|
|
20
|
+
if (entry.kind === 'create')
|
|
21
|
+
return {};
|
|
22
|
+
return {
|
|
23
|
+
component: entry.component,
|
|
24
|
+
declared: entry.record !== undefined,
|
|
25
|
+
...(entry.record === undefined
|
|
26
|
+
? {}
|
|
27
|
+
: {
|
|
28
|
+
classification: entry.record.classification,
|
|
29
|
+
...(entry.record.adr === undefined ? {} : { adr: entry.record.adr }),
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** The steps of a tree's entries, their binary flag read from both sides once. */
|
|
34
|
+
async function changesOf(tree, groupOf) {
|
|
35
|
+
const upstreamReader = (blob) => async () => (await readPristineBlobs(tree.pristine, [blob])).get(blob) ?? Buffer.alloc(0);
|
|
36
|
+
const upstreamBlobs = tree.entries.flatMap((entry) => entry.upstream === undefined ? [] : [entry.upstream.blob]);
|
|
37
|
+
const upstreamBinary = new Set([...(await readPristineBlobs(tree.pristine, upstreamBlobs))].flatMap(([blob, bytes]) => isBinary(bytes) ? [blob] : []));
|
|
38
|
+
return mapLimit(tree.entries, READ_CONCURRENCY, async (entry) => {
|
|
39
|
+
const owned = entry.file === undefined ? undefined : await readBytes(entry.file.absolute);
|
|
40
|
+
const group = groupOf.get(entry.path);
|
|
41
|
+
const base = {
|
|
42
|
+
path: entry.path,
|
|
43
|
+
binary: isBinary(owned) ||
|
|
44
|
+
(entry.upstream !== undefined && upstreamBinary.has(entry.upstream.blob)),
|
|
45
|
+
meta: changeMeta(entry),
|
|
46
|
+
...(group === undefined ? {} : { group }),
|
|
47
|
+
};
|
|
48
|
+
const after = () => readBytes(entry.file?.absolute ?? '');
|
|
49
|
+
if (entry.upstream === undefined) {
|
|
50
|
+
return { ...base, kind: 'create', after, mode: entry.file?.mode ?? '100644' };
|
|
51
|
+
}
|
|
52
|
+
const before = upstreamReader(entry.upstream.blob);
|
|
53
|
+
if (entry.file === undefined) {
|
|
54
|
+
return { ...base, kind: 'delete', before, previousMode: entry.upstream.mode };
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
...base,
|
|
58
|
+
kind: 'modify',
|
|
59
|
+
before,
|
|
60
|
+
after,
|
|
61
|
+
previousMode: entry.upstream.mode,
|
|
62
|
+
mode: entry.file.mode,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The owned changes of a source-mode checkout: one step per owned path
|
|
68
|
+
* against the pristine blob, in the groups of `groups.ts`: a component of
|
|
69
|
+
* upstream changes, or a group of created files. Paths with a blocking problem are left out; {@link verifySource}
|
|
70
|
+
* reports them. The diff provider produces the bytes an export would write.
|
|
71
|
+
*
|
|
72
|
+
* @param project - A source-mode project
|
|
73
|
+
* @param pristine - The pinned pristine repository
|
|
74
|
+
* @throws `source-group-name-collision` when two groups would share an ID
|
|
75
|
+
*/
|
|
76
|
+
export async function sourceChanges(project, pristine) {
|
|
77
|
+
const tree = await readSourceTree(project, pristine);
|
|
78
|
+
const planned = planGroups(tree.entries, project.config.exportQueue);
|
|
79
|
+
const groupOf = new Map(planned.flatMap((group) => group.paths.map((path) => [path, group.id])));
|
|
80
|
+
const groups = planned.map((group) => ({
|
|
81
|
+
id: group.id,
|
|
82
|
+
// How created files group shapes an export; it says nothing about scope.
|
|
83
|
+
...(group.kind === 'created' ? { sized: false } : {}),
|
|
84
|
+
meta: { kind: group.kind, description: group.description },
|
|
85
|
+
}));
|
|
86
|
+
let sections;
|
|
87
|
+
return createChangeSet({
|
|
88
|
+
groups,
|
|
89
|
+
changes: await changesOf(tree, groupOf),
|
|
90
|
+
diff: async (change) => {
|
|
91
|
+
sections ??= writeDeltaTrees(tree, tree.entries).then(diffSections);
|
|
92
|
+
return (await sections).get(change.path)?.toString('utf8') ?? '';
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The owned paths of a source-mode checkout, their groups, and everything
|
|
98
|
+
* unaccounted for.
|
|
99
|
+
*
|
|
100
|
+
* @param project - A source-mode project
|
|
101
|
+
* @param pristine - The pinned pristine repository
|
|
102
|
+
* @throws `source-group-name-collision` when two groups would share an ID
|
|
103
|
+
*/
|
|
104
|
+
export async function sourceStatus(project, pristine) {
|
|
105
|
+
const tree = await readSourceTree(project, pristine);
|
|
106
|
+
const planned = planGroups(tree.entries, project.config.exportQueue);
|
|
107
|
+
const groupOf = new Map(planned.flatMap((group) => group.paths.map((path) => [path, group.id])));
|
|
108
|
+
return {
|
|
109
|
+
owned: tree.entries.map((entry) => ({
|
|
110
|
+
path: entry.path,
|
|
111
|
+
kind: entry.kind,
|
|
112
|
+
group: groupOf.get(entry.path) ?? entry.component,
|
|
113
|
+
})),
|
|
114
|
+
groups: planned.map((group) => ({
|
|
115
|
+
id: group.id,
|
|
116
|
+
kind: group.kind,
|
|
117
|
+
paths: group.paths.length,
|
|
118
|
+
})),
|
|
119
|
+
problems: tree.problems,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The integrity of a source-mode checkout's storage: every override record
|
|
124
|
+
* against the pristine repository, every owned file's kind, path and
|
|
125
|
+
* attributes. Empty when everything holds.
|
|
126
|
+
*
|
|
127
|
+
* @param project - A source-mode project
|
|
128
|
+
* @param pristine - The pinned pristine repository
|
|
129
|
+
*/
|
|
130
|
+
export async function verifySource(project, pristine) {
|
|
131
|
+
return (await readSourceTree(project, pristine)).problems;
|
|
132
|
+
}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Changing what the checkout owns: declaring the first touch of an upstream
|
|
4
|
+
* file (`override`), giving one back (`restore`), and the one way helpers
|
|
5
|
+
* that edit owned files (registration, wiring, tokens, components) write
|
|
6
|
+
* them. Writers in one checkout take the source lock, so two FireForge
|
|
7
|
+
* commands never interleave a read-check-write of the same file; editors
|
|
8
|
+
* do not take it.
|
|
9
|
+
*/
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { listTree, objectFormat, resolveRevision } from '../git/index.js';
|
|
12
|
+
import { ExitCode, FireForgeError } from '../kernel/errors.js';
|
|
13
|
+
import { pathInfo, readBytesIfExists, readTextIfExists, writeFile } from '../kernel/fs.js';
|
|
14
|
+
import { transaction } from '../kernel/journal.js';
|
|
15
|
+
import { readJsonIfExists } from '../kernel/json.js';
|
|
16
|
+
import { withLock } from '../kernel/lock.js';
|
|
17
|
+
import { attributesFile, completedAttributes, installMergeDriver } from './merge.js';
|
|
18
|
+
import { blobId, readPristineBlobs } from './objects.js';
|
|
19
|
+
import { assertEnginePath, COMPONENT_PATTERN, defaultComponent, encodeRecord, overrideRecordSchema, unownableReason, } from './records.js';
|
|
20
|
+
import { layoutOf, recordFile } from './tree.js';
|
|
21
|
+
/**
|
|
22
|
+
* The project as a source-mode project.
|
|
23
|
+
*
|
|
24
|
+
* @param project - A loaded project
|
|
25
|
+
* @throws `source-mode-required` (exit code 2) for a patch-mode project
|
|
26
|
+
*/
|
|
27
|
+
export function requireSourceMode(project) {
|
|
28
|
+
if (project.mode === 'source')
|
|
29
|
+
return project;
|
|
30
|
+
throw new FireForgeError('source-mode-required', 'This command works on source-mode projects; this project keeps a patch queue.', {
|
|
31
|
+
exitCode: ExitCode.CONFIG_ERROR,
|
|
32
|
+
hint: 'Edit engine/ directly and capture with "fireforge export".',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/** Serialises writers of owned files and records in one checkout. */
|
|
36
|
+
export function withSourceLock(project, body) {
|
|
37
|
+
return withLock(join(project.paths.stateDir, 'source.lock'), { label: 'source' }, body);
|
|
38
|
+
}
|
|
39
|
+
/** The journal of changes to owned files and records in one checkout. */
|
|
40
|
+
export function journalOf(project) {
|
|
41
|
+
return join(project.paths.stateDir, 'source.journal');
|
|
42
|
+
}
|
|
43
|
+
function locate(project, path) {
|
|
44
|
+
assertEnginePath(path);
|
|
45
|
+
const unownable = unownableReason(path);
|
|
46
|
+
if (unownable !== undefined) {
|
|
47
|
+
throw new FireForgeError('source-unownable-path', `${path} ${unownable}.`, {
|
|
48
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
49
|
+
hint: 'Keep that change out of the source root, or make it in a file of the fork itself.',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const layout = layoutOf(project);
|
|
53
|
+
return {
|
|
54
|
+
file: join(project.paths.source, path),
|
|
55
|
+
record: join(layout.worktree, recordFile(layout, path)),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async function readRecordAt(file) {
|
|
59
|
+
return readJsonIfExists(file, overrideRecordSchema, {
|
|
60
|
+
code: 'source-record-invalid',
|
|
61
|
+
exitCode: ExitCode.CONFIG_ERROR,
|
|
62
|
+
hint: 'Correct the record, or remove it with "fireforge restore".',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async function upstreamEntry(pristine, path) {
|
|
66
|
+
const [entry] = await listTree(pristine.repo, pristine.commit, {
|
|
67
|
+
paths: [path],
|
|
68
|
+
recursive: false,
|
|
69
|
+
});
|
|
70
|
+
if (entry === undefined)
|
|
71
|
+
return undefined;
|
|
72
|
+
return entry.type === 'blob' && (entry.mode === '100644' || entry.mode === '100755')
|
|
73
|
+
? { blob: entry.oid, mode: entry.mode }
|
|
74
|
+
: 'other';
|
|
75
|
+
}
|
|
76
|
+
async function checkedOptions(project, path, options) {
|
|
77
|
+
const component = options.component ?? defaultComponent(path);
|
|
78
|
+
if (!COMPONENT_PATTERN.test(component)) {
|
|
79
|
+
throw new FireForgeError('source-invalid-component', `"${component}" is not a component name.`, {
|
|
80
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
81
|
+
hint: 'Name one with --component, using letters, digits, ".", "_" and "-", starting with a letter or digit.',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const classification = options.classification ?? 'registration';
|
|
85
|
+
if (classification === 'exception' && options.adr === undefined) {
|
|
86
|
+
throw new FireForgeError('source-adr-required', 'An exception needs its decision record.', {
|
|
87
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
88
|
+
hint: 'Pass --adr <path> naming the approved decision record.',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (options.adr !== undefined &&
|
|
92
|
+
(await pathInfo(join(project.root, options.adr)))?.kind !== 'file') {
|
|
93
|
+
throw new FireForgeError('source-adr-missing', `The decision record ${options.adr} does not exist.`, {
|
|
94
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
95
|
+
hint: 'Write the record first, or name an existing one with --adr.',
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return { component, classification, ...(options.adr === undefined ? {} : { adr: options.adr }) };
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Declares the first touch of an upstream file: writes its override record
|
|
102
|
+
* and, for an edit, seeds the owned file with the pristine bytes to edit.
|
|
103
|
+
* An existing owned file is refused unless it already holds the pristine
|
|
104
|
+
* bytes, so no edit escapes its record. Also installs the merge driver.
|
|
105
|
+
*
|
|
106
|
+
* @param project - A source-mode project
|
|
107
|
+
* @param pristine - The pinned pristine repository
|
|
108
|
+
* @param path - The engine path
|
|
109
|
+
* @param options - See {@link OverrideOptions}
|
|
110
|
+
* @throws `source-not-upstream`, `source-override-exists`, `source-undeclared-edit`,
|
|
111
|
+
* `source-unownable-path`, `source-invalid-component`, `source-adr-required`,
|
|
112
|
+
* `source-adr-missing`
|
|
113
|
+
*/
|
|
114
|
+
export async function override(project, pristine, path, options = {}) {
|
|
115
|
+
const located = locate(project, path);
|
|
116
|
+
const declared = await checkedOptions(project, path, options);
|
|
117
|
+
const upstream = await upstreamEntry(pristine, path);
|
|
118
|
+
if (upstream === undefined || upstream === 'other') {
|
|
119
|
+
throw new FireForgeError('source-not-upstream', upstream === undefined
|
|
120
|
+
? `${path} is not an upstream file at the pinned commit.`
|
|
121
|
+
: `${path} is not a regular file upstream, so it cannot be overridden.`, {
|
|
122
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
123
|
+
...(upstream === undefined
|
|
124
|
+
? { hint: `To add it, create ${project.config.source.root}/${path} directly.` }
|
|
125
|
+
: {}),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const record = {
|
|
129
|
+
kind: options.delete === true ? 'delete' : 'override',
|
|
130
|
+
base: { commit: pristine.commit, blob: upstream.blob, mode: upstream.mode },
|
|
131
|
+
...declared,
|
|
132
|
+
};
|
|
133
|
+
const [bytes] = (await readPristineBlobs(pristine, [upstream.blob])).values();
|
|
134
|
+
const pristineBytes = bytes ?? Buffer.alloc(0);
|
|
135
|
+
await withSourceLock(project, async () => {
|
|
136
|
+
const existing = await readRecordAt(located.record);
|
|
137
|
+
if (existing !== undefined) {
|
|
138
|
+
if (encodeRecord(existing) === encodeRecord(record))
|
|
139
|
+
return;
|
|
140
|
+
throw new FireForgeError('source-override-exists', `${path} already has an override record.`, {
|
|
141
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
142
|
+
hint: 'Edit the record to change it, or remove it with "fireforge restore" first.',
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
const current = await readBytesIfExists(located.file);
|
|
146
|
+
const untouched = current !== undefined &&
|
|
147
|
+
options.delete !== true &&
|
|
148
|
+
blobId(current, upstream.blob.length === 64 ? 'sha256' : 'sha1') === upstream.blob;
|
|
149
|
+
if (current !== undefined && !untouched) {
|
|
150
|
+
throw new FireForgeError('source-undeclared-edit', `${project.config.source.root}/${path} already exists without an override record.`, {
|
|
151
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
152
|
+
hint: options.delete === true
|
|
153
|
+
? 'Delete the owned file first.'
|
|
154
|
+
: `Move it aside, run "fireforge override ${path}", then reapply the edit.`,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
const attributes = completedAttributes(await readTextIfExists(attributesFile(project)));
|
|
158
|
+
const declare = async (tx) => {
|
|
159
|
+
await tx.write(located.record, encodeRecord(record));
|
|
160
|
+
if (record.kind === 'override' && current === undefined) {
|
|
161
|
+
await tx.write(located.file, pristineBytes, {
|
|
162
|
+
mode: upstream.mode === '100755' ? 0o755 : 0o644,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
if (attributes !== undefined)
|
|
166
|
+
await tx.write(attributesFile(project), attributes);
|
|
167
|
+
};
|
|
168
|
+
if (options.tx !== undefined)
|
|
169
|
+
await declare(options.tx);
|
|
170
|
+
else
|
|
171
|
+
await transaction(journalOf(project), `the override of ${path}`, declare);
|
|
172
|
+
});
|
|
173
|
+
const driver = await installMergeDriver(project);
|
|
174
|
+
return { record, driverInstalled: driver.changed };
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Gives an upstream file back: removes its override record and owned file,
|
|
178
|
+
* so the next materialization restores the upstream bytes. Uncommitted
|
|
179
|
+
* edits of the owned file are refused unless `discard`.
|
|
180
|
+
*
|
|
181
|
+
* @param project - A source-mode project
|
|
182
|
+
* @param path - The engine path
|
|
183
|
+
* @param options - `discard` drops uncommitted edits
|
|
184
|
+
* @throws `source-not-overridden`, `source-uncommitted-edit`
|
|
185
|
+
*/
|
|
186
|
+
export async function restore(project, path, options = {}) {
|
|
187
|
+
const located = locate(project, path);
|
|
188
|
+
const layout = layoutOf(project);
|
|
189
|
+
return withSourceLock(project, async () => {
|
|
190
|
+
const record = await readRecordAt(located.record);
|
|
191
|
+
if (record === undefined) {
|
|
192
|
+
throw new FireForgeError('source-not-overridden', `${path} has no override record.`, {
|
|
193
|
+
exitCode: ExitCode.INVALID_ARGUMENT,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const current = await readBytesIfExists(located.file);
|
|
197
|
+
if (current !== undefined && options.discard !== true) {
|
|
198
|
+
const pristineFormat = record.base.blob.length === 64 ? 'sha256' : 'sha1';
|
|
199
|
+
const committed = await resolveRevision(layout.worktree, `HEAD:${layout.source}/${path}`);
|
|
200
|
+
const expendable = blobId(current, pristineFormat) === record.base.blob ||
|
|
201
|
+
(committed !== undefined &&
|
|
202
|
+
blobId(current, await objectFormat(layout.worktree)) === committed);
|
|
203
|
+
if (!expendable) {
|
|
204
|
+
throw new FireForgeError('source-uncommitted-edit', `${project.config.source.root}/${path} has uncommitted edits a restore would lose.`, { exitCode: ExitCode.INVALID_ARGUMENT, hint: 'Commit them, or pass --discard.' });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
await transaction(journalOf(project), `the restore of ${path}`, async (tx) => {
|
|
208
|
+
await tx.remove(located.file);
|
|
209
|
+
await tx.remove(located.record);
|
|
210
|
+
});
|
|
211
|
+
return { path, wasDeletion: record.kind === 'delete', removedFile: current !== undefined };
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Reads an engine path as the checkout would build it: the owned file, or
|
|
216
|
+
* the pristine bytes when the path is not owned.
|
|
217
|
+
*
|
|
218
|
+
* @param project - A source-mode project
|
|
219
|
+
* @param pristine - The pinned pristine repository
|
|
220
|
+
* @param path - The engine path
|
|
221
|
+
* @returns The bytes, or undefined when the path is absent or deleted by a record
|
|
222
|
+
*/
|
|
223
|
+
export async function readSourceFile(project, pristine, path) {
|
|
224
|
+
const located = locate(project, path);
|
|
225
|
+
const owned = await readBytesIfExists(located.file);
|
|
226
|
+
if (owned !== undefined)
|
|
227
|
+
return owned;
|
|
228
|
+
if ((await readRecordAt(located.record))?.kind === 'delete')
|
|
229
|
+
return undefined;
|
|
230
|
+
const upstream = await upstreamEntry(pristine, path);
|
|
231
|
+
if (upstream === undefined || upstream === 'other')
|
|
232
|
+
return undefined;
|
|
233
|
+
return (await readPristineBlobs(pristine, [upstream.blob])).get(upstream.blob);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Writes an owned file for a helper that edits engine paths. An upstream
|
|
237
|
+
* path must have a current override record first. With `expected`, the
|
|
238
|
+
* write happens only if the file still holds those bytes (null: only if it
|
|
239
|
+
* does not exist), so a helper never overwrites an edit made after it read.
|
|
240
|
+
*
|
|
241
|
+
* @param project - A source-mode project
|
|
242
|
+
* @param pristine - The pinned pristine repository
|
|
243
|
+
* @param path - The engine path
|
|
244
|
+
* @param content - The new bytes
|
|
245
|
+
* @param options - `expected`; `mode` (default: the current mode, else upstream's, else
|
|
246
|
+
* regular); `tx` makes the write part of the caller's transaction
|
|
247
|
+
* @throws `source-override-required`, `source-file-moved`
|
|
248
|
+
*/
|
|
249
|
+
export async function writeSourceFile(project, pristine, path, content, options = {}) {
|
|
250
|
+
const located = locate(project, path);
|
|
251
|
+
const upstream = await upstreamEntry(pristine, path);
|
|
252
|
+
const upstreamMode = upstream === undefined || upstream === 'other' ? undefined : upstream.mode;
|
|
253
|
+
await withSourceLock(project, async () => {
|
|
254
|
+
if (upstream !== undefined) {
|
|
255
|
+
const record = await readRecordAt(located.record);
|
|
256
|
+
const current = upstream !== 'other' &&
|
|
257
|
+
record?.kind === 'override' &&
|
|
258
|
+
record.base.commit === pristine.commit &&
|
|
259
|
+
record.base.blob === upstream.blob;
|
|
260
|
+
if (!current) {
|
|
261
|
+
throw new FireForgeError('source-override-required', `${path} is an upstream file without a current override record.`, { exitCode: ExitCode.GENERAL_ERROR, hint: `Run "fireforge override ${path}" first.` });
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const existing = await readBytesIfExists(located.file);
|
|
265
|
+
const { expected } = options;
|
|
266
|
+
const matches = expected === undefined ||
|
|
267
|
+
(expected === null ? existing === undefined : existing?.equals(expected) === true);
|
|
268
|
+
if (!matches) {
|
|
269
|
+
throw new FireForgeError('source-file-moved', `${project.config.source.root}/${path} changed since it was read.`, { hint: 'Run the command again.' });
|
|
270
|
+
}
|
|
271
|
+
const mode = options.mode ?? (existing === undefined ? (upstreamMode ?? '100644') : undefined);
|
|
272
|
+
const permissions = mode === undefined ? {} : { mode: mode === '100755' ? 0o755 : 0o644 };
|
|
273
|
+
if (options.tx === undefined)
|
|
274
|
+
await writeFile(located.file, content, permissions);
|
|
275
|
+
else
|
|
276
|
+
await options.tx.write(located.file, content, permissions);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* The owned changes as an ordered patch queue, for whatever consumes one: a
|
|
4
|
+
* public export whose CI runs `fireforge import`, or a move back to patch
|
|
5
|
+
* mode. This plans the queue; writing its manifest and proving that it
|
|
6
|
+
* replays belong to the patch queue's own module.
|
|
7
|
+
*
|
|
8
|
+
* Each path is in exactly one patch, so no patch depends on another's
|
|
9
|
+
* context, and the patches are the groups of `groups.ts`, each named after
|
|
10
|
+
* its group's ID. The plan is a
|
|
11
|
+
* function of the owned files and the pin: planning twice gives the same
|
|
12
|
+
* bytes, and an edit to one file changes only that file's patch and the
|
|
13
|
+
* manifest source.
|
|
14
|
+
*/
|
|
15
|
+
import { ExitCode, FireForgeError } from '../kernel/errors.js';
|
|
16
|
+
import { hash } from '../kernel/hash.js';
|
|
17
|
+
import { exportedPatchName, planGroups } from './groups.js';
|
|
18
|
+
import { diffSections, writeDeltaTrees } from './objects.js';
|
|
19
|
+
import { readSourceTree } from './tree.js';
|
|
20
|
+
/**
|
|
21
|
+
* Plans the patch queue the checkout's owned changes export as.
|
|
22
|
+
*
|
|
23
|
+
* @param project - A source-mode project
|
|
24
|
+
* @param pristine - The pinned pristine repository
|
|
25
|
+
* @throws `source-invalid` (exit code 2) while `verify` reports any problem;
|
|
26
|
+
* `source-group-name-collision` when two groups would share an ID or two
|
|
27
|
+
* patches a name, `source-group-unexportable` for an ID no patch can be named after
|
|
28
|
+
*/
|
|
29
|
+
export async function planQueueExport(project, pristine) {
|
|
30
|
+
const tree = await readSourceTree(project, pristine);
|
|
31
|
+
if (tree.problems.length > 0) {
|
|
32
|
+
throw new FireForgeError('source-invalid', `The owned files cannot be exported until these are fixed:\n${tree.problems
|
|
33
|
+
.map((problem) => ` ${problem.path}: ${problem.message}`)
|
|
34
|
+
.join('\n')}`, { exitCode: ExitCode.CONFIG_ERROR, hint: 'Run "fireforge verify" for what to do.' });
|
|
35
|
+
}
|
|
36
|
+
const groups = planGroups(tree.entries, project.config.exportQueue);
|
|
37
|
+
const trees = await writeDeltaTrees(tree, tree.entries);
|
|
38
|
+
const sections = await diffSections(trees);
|
|
39
|
+
const patches = [];
|
|
40
|
+
const named = new Map();
|
|
41
|
+
for (const group of groups) {
|
|
42
|
+
const members = new Set(group.paths);
|
|
43
|
+
const files = [...sections.keys()].filter((path) => members.has(path));
|
|
44
|
+
if (files.length === 0)
|
|
45
|
+
continue;
|
|
46
|
+
const name = exportedPatchName(group.id);
|
|
47
|
+
const other = named.get(name);
|
|
48
|
+
if (other !== undefined) {
|
|
49
|
+
throw new FireForgeError('source-group-name-collision', `Groups "${other}" and "${group.id}" would both export as patch "${name}".`, {
|
|
50
|
+
exitCode: ExitCode.CONFIG_ERROR,
|
|
51
|
+
hint: 'Rename a component in its override records, or an exportQueue group.',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
named.set(name, group.id);
|
|
55
|
+
patches.push({
|
|
56
|
+
group: group.id,
|
|
57
|
+
name,
|
|
58
|
+
description: group.description,
|
|
59
|
+
files,
|
|
60
|
+
body: Buffer.concat(files.map((path) => sections.get(path) ?? Buffer.alloc(0))),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
patches,
|
|
65
|
+
manifestSource: {
|
|
66
|
+
pristineCommit: pristine.commit,
|
|
67
|
+
digest: hash(`${pristine.commit}\n${trees.before}\n${trees.after}\n`),
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { ExitCode, FireForgeError } from '../kernel/errors.js';
|
|
2
|
+
import { matchesAnyGlob } from '../kernel/glob.js';
|
|
3
|
+
import { compareText } from './records.js';
|
|
4
|
+
function slug(value) {
|
|
5
|
+
return value
|
|
6
|
+
.toLowerCase()
|
|
7
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
8
|
+
.replace(/^-+|-+$/g, '');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The name a group's patch takes in an exported queue: the ID in lowercase
|
|
12
|
+
* with every other run of characters as one hyphen. An ID spelled like a
|
|
13
|
+
* patch file (`012-ui-sidebar.patch`) gives that patch's name (`ui-sidebar`).
|
|
14
|
+
*
|
|
15
|
+
* @param id - A group ID
|
|
16
|
+
* @throws `source-group-unexportable` (exit code 2) when what remains does
|
|
17
|
+
* not start with a letter, which a patch name must
|
|
18
|
+
*/
|
|
19
|
+
export function exportedPatchName(id) {
|
|
20
|
+
const name = slug(id.replace(/\.patch$/, '').replace(/^\d+-/, ''));
|
|
21
|
+
if (!/^[a-z]/.test(name)) {
|
|
22
|
+
throw new FireForgeError('source-group-unexportable', `Group "${id}" cannot be exported: a patch name starts with a letter.`, {
|
|
23
|
+
exitCode: ExitCode.CONFIG_ERROR,
|
|
24
|
+
hint: 'Rename the component in its override records, or the exportQueue group.',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return name;
|
|
28
|
+
}
|
|
29
|
+
function append(groups, key, path) {
|
|
30
|
+
const list = groups.get(key);
|
|
31
|
+
if (list === undefined)
|
|
32
|
+
groups.set(key, [path]);
|
|
33
|
+
else
|
|
34
|
+
list.push(path);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Splits created files by directory: the whole subtree when it fits the
|
|
38
|
+
* budget, else the directory's own files plus each subdirectory in turn.
|
|
39
|
+
*/
|
|
40
|
+
function directoryGroups(directory, paths, budget, size, out) {
|
|
41
|
+
if (paths.reduce((total, path) => total + size(path), 0) <= budget) {
|
|
42
|
+
out.set(directory, [...paths]);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const prefix = directory === '' ? '' : `${directory}/`;
|
|
46
|
+
const own = [];
|
|
47
|
+
const children = new Map();
|
|
48
|
+
for (const path of paths) {
|
|
49
|
+
const rest = path.slice(prefix.length);
|
|
50
|
+
const slash = rest.indexOf('/');
|
|
51
|
+
if (slash < 0)
|
|
52
|
+
own.push(path);
|
|
53
|
+
else
|
|
54
|
+
append(children, prefix + rest.slice(0, slash), path);
|
|
55
|
+
}
|
|
56
|
+
if (own.length > 0)
|
|
57
|
+
out.set(directory, own);
|
|
58
|
+
for (const [child, list] of [...children].sort(([a], [b]) => compareText(a, b))) {
|
|
59
|
+
directoryGroups(child, list, budget, size, out);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function createdGroups(entries, settings) {
|
|
63
|
+
const named = new Map();
|
|
64
|
+
const rest = [];
|
|
65
|
+
const sizes = new Map();
|
|
66
|
+
for (const entry of entries) {
|
|
67
|
+
sizes.set(entry.path, entry.file?.size ?? 0);
|
|
68
|
+
const group = settings.groups?.find((candidate) => matchesAnyGlob(entry.path, candidate.paths));
|
|
69
|
+
if (group === undefined)
|
|
70
|
+
rest.push(entry.path);
|
|
71
|
+
else
|
|
72
|
+
append(named, group.name, entry.path);
|
|
73
|
+
}
|
|
74
|
+
const byDirectory = new Map();
|
|
75
|
+
if (rest.length > 0) {
|
|
76
|
+
directoryGroups('', rest, settings.maxGroupBytes, (path) => sizes.get(path) ?? 0, byDirectory);
|
|
77
|
+
}
|
|
78
|
+
return [
|
|
79
|
+
...[...named].map(([name, paths]) => ({
|
|
80
|
+
id: name,
|
|
81
|
+
order: 2,
|
|
82
|
+
kind: 'created',
|
|
83
|
+
description: `Created files of group ${name}`,
|
|
84
|
+
paths,
|
|
85
|
+
})),
|
|
86
|
+
...[...byDirectory].map(([directory, paths]) => ({
|
|
87
|
+
id: `created-${slug(directory) === '' ? 'root' : slug(directory)}`,
|
|
88
|
+
order: 2,
|
|
89
|
+
kind: 'created',
|
|
90
|
+
description: directory === '' ? 'Created files' : `Created files under ${directory}/`,
|
|
91
|
+
paths,
|
|
92
|
+
})),
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Groups owned entries into components and created-file groups.
|
|
97
|
+
*
|
|
98
|
+
* @param entries - The owned entries
|
|
99
|
+
* @param settings - The project's `exportQueue` section
|
|
100
|
+
* @returns The groups in application order
|
|
101
|
+
* @throws `source-group-name-collision` (exit code 2) when two groups would share an ID
|
|
102
|
+
*/
|
|
103
|
+
export function planGroups(entries, settings) {
|
|
104
|
+
const components = new Map();
|
|
105
|
+
for (const entry of entries) {
|
|
106
|
+
if (entry.kind !== 'create')
|
|
107
|
+
append(components, entry.component, entry.path);
|
|
108
|
+
}
|
|
109
|
+
const drafts = [
|
|
110
|
+
...[...components].map(([component, paths]) => ({
|
|
111
|
+
id: component,
|
|
112
|
+
order: 1,
|
|
113
|
+
kind: 'component',
|
|
114
|
+
description: `Upstream changes of component ${component}`,
|
|
115
|
+
paths,
|
|
116
|
+
})),
|
|
117
|
+
...createdGroups(entries.filter((entry) => entry.kind === 'create'), settings),
|
|
118
|
+
];
|
|
119
|
+
const planned = new Map();
|
|
120
|
+
for (const draft of drafts) {
|
|
121
|
+
const other = planned.get(draft.id);
|
|
122
|
+
if (other !== undefined) {
|
|
123
|
+
throw new FireForgeError('source-group-name-collision', `Group "${draft.id}" would hold both "${other.description}" and "${draft.description}".`, {
|
|
124
|
+
exitCode: ExitCode.CONFIG_ERROR,
|
|
125
|
+
hint: 'Give the exportQueue group another name than the component, or rename the component in its override records.',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
planned.set(draft.id, { ...draft, paths: [...draft.paths].sort(compareText) });
|
|
129
|
+
}
|
|
130
|
+
return [...planned.values()].sort((a, b) => a.order - b.order || compareText(a.id, b.id));
|
|
131
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Source mode: the project's owned files are tracked files under the source
|
|
4
|
+
* root (`<source>/<path>` supplies engine file `<path>`), an upstream file
|
|
5
|
+
* is touched only after its override record captures its upstream identity,
|
|
6
|
+
* and the patch queue is generated output.
|
|
7
|
+
*
|
|
8
|
+
* Every function reads the checkout's working files directly (tracked files
|
|
9
|
+
* and untracked files git does not ignore) and judges them against a
|
|
10
|
+
* {@link Pristine} repository it is handed, which it only reads.
|
|
11
|
+
*/
|
|
12
|
+
export { adoptTrees } from './adopt.js';
|
|
13
|
+
export { sourceChanges, sourceStatus, verifySource } from './changes.js';
|
|
14
|
+
export { override, readSourceFile, requireSourceMode, restore, writeSourceFile } from './edit.js';
|
|
15
|
+
export { planQueueExport } from './export.js';
|
|
16
|
+
export { exportedPatchName } from './groups.js';
|
|
17
|
+
export { materialize, recordDeployment } from './materialize.js';
|
|
18
|
+
export { completedAttributes, installMergeDriver, MERGE_DRIVER, mergeDriverCommand, runMergeDriver, } from './merge.js';
|
|
19
|
+
export { parsePreviousWaivers, parseScopeDecisions, PREVIOUS_MERGE_DRIVER, PREVIOUS_METADATA_FILES, upgradeAttributes, upgradeRecord, } from './previous.js';
|
|
20
|
+
export { refreshPin } from './refresh.js';
|