@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,414 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Deploying components into an engine.
|
|
4
|
+
*
|
|
5
|
+
* Deployment is a comparison of two states: what the project's components
|
|
6
|
+
* want the engine to hold (each component file at its engine path, CSS
|
|
7
|
+
* fragments inlined; the jar.mn lines; the customElements.js entries) and
|
|
8
|
+
* what the engine holds. Whatever differs is written, in one transaction
|
|
9
|
+
* together with the deployment record, so an error, a signal or a crash
|
|
10
|
+
* leaves the engine and its record as they were, and the next run undoes an
|
|
11
|
+
* interrupted one before planning.
|
|
12
|
+
*
|
|
13
|
+
* The record (`furnace-deployment.json` in the workspace's state directory)
|
|
14
|
+
* says what each component deployed. It describes the engine, not the
|
|
15
|
+
* project, and serves one purpose the comparison cannot: knowing what to
|
|
16
|
+
* take away. A file a component no longer has, or every file of a component
|
|
17
|
+
* no longer configured, is removed; an override's file is put back to the
|
|
18
|
+
* upstream bytes at the engine's `HEAD`. Everything else is decided from the
|
|
19
|
+
* bytes on disk, so a reset engine, a hand edit or a lost record is repaired
|
|
20
|
+
* by the next run, and an unchanged component costs a read and a hash.
|
|
21
|
+
*/
|
|
22
|
+
import { join, posix } from 'node:path';
|
|
23
|
+
import { markerComment } from '../config/index.js';
|
|
24
|
+
import { listTree, readBlobs } from '../git/index.js';
|
|
25
|
+
import { ExitCode } from '../kernel/errors.js';
|
|
26
|
+
import { listDir, pathInfo, readBytes, readBytesIfExists, readTextIfExists, resolveContained, } from '../kernel/fs.js';
|
|
27
|
+
import { hash } from '../kernel/hash.js';
|
|
28
|
+
import { recoverJournal, transaction } from '../kernel/journal.js';
|
|
29
|
+
import { readJsonIfExists, stringifyJson } from '../kernel/json.js';
|
|
30
|
+
import { withLock } from '../kernel/lock.js';
|
|
31
|
+
import { s } from '../kernel/schema.js';
|
|
32
|
+
import { elementJarEntry } from '../register/index.js';
|
|
33
|
+
import { componentDir, CUSTOM_ELEMENTS_JS, fragmentsDir, ftlDir, furnaceError, jarSourceDir, loadFurnaceConfig, WIDGETS_JAR, } from './config.js';
|
|
34
|
+
import { expandFragments } from './fragments.js';
|
|
35
|
+
import { elementEntries, missingJarFiles, planJar, registerElement, unregisterElement, } from './registration.js';
|
|
36
|
+
const DeployedComponent = s.object({
|
|
37
|
+
kind: s.enum(['custom', 'override']),
|
|
38
|
+
/** Engine path to the SHA-256 of the bytes deployed there. */
|
|
39
|
+
files: s.record(s.string()),
|
|
40
|
+
/** Listed in customElements.js. */
|
|
41
|
+
registered: s.boolean(),
|
|
42
|
+
/** The jar.mn source directory the component's lines point into. */
|
|
43
|
+
jarDir: s.string().optional(),
|
|
44
|
+
});
|
|
45
|
+
const DeploymentRecord = s.object({
|
|
46
|
+
version: s.literal(1),
|
|
47
|
+
components: s.record(DeployedComponent),
|
|
48
|
+
});
|
|
49
|
+
const RECORD_FILE = 'furnace-deployment.json';
|
|
50
|
+
const JOURNAL_FILE = 'furnace-deployment.journal';
|
|
51
|
+
const LOCK_DIR = 'furnace.lock';
|
|
52
|
+
function missingComponent(kind, name) {
|
|
53
|
+
return furnaceError('furnace-component-missing', `furnace.json lists ${kind} component "${name}", but components/${kind === 'custom' ? 'custom' : 'overrides'}/${name}/ does not exist.`, {
|
|
54
|
+
hint: `Restore the directory, or remove the component with "fireforge furnace remove ${name}".`,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/** The regular files of a component directory, by name. */
|
|
58
|
+
async function sourceFiles(dir) {
|
|
59
|
+
if ((await pathInfo(dir))?.kind !== 'directory')
|
|
60
|
+
return undefined;
|
|
61
|
+
return (await listDir(dir)).filter((entry) => entry.kind === 'file').map((entry) => entry.name);
|
|
62
|
+
}
|
|
63
|
+
/** Whether an override of this type deploys the file. */
|
|
64
|
+
export function overrideDeploys(type, file) {
|
|
65
|
+
if (file === 'override.json')
|
|
66
|
+
return false;
|
|
67
|
+
return type === 'css-only' ? file.endsWith('.css') : /\.(?:mjs|css|ftl)$/.test(file);
|
|
68
|
+
}
|
|
69
|
+
async function wantedOverride(project, config, name, entry) {
|
|
70
|
+
const dir = componentDir(project, 'override', name);
|
|
71
|
+
const names = await sourceFiles(dir);
|
|
72
|
+
if (names === undefined)
|
|
73
|
+
throw missingComponent('override', name);
|
|
74
|
+
const files = new Map();
|
|
75
|
+
for (const file of names.filter((candidate) => overrideDeploys(entry.type, candidate))) {
|
|
76
|
+
const target = file.endsWith('.ftl') ? ftlDir(config) : entry.basePath;
|
|
77
|
+
files.set(`${target}/${file}`, await readBytes(join(dir, file)));
|
|
78
|
+
}
|
|
79
|
+
if (files.size === 0) {
|
|
80
|
+
throw furnaceError('furnace-component-empty', `Override "${name}" has no file to deploy (${entry.type === 'css-only' ? '.css' : '.mjs, .css or .ftl'}).`);
|
|
81
|
+
}
|
|
82
|
+
return { name, kind: 'override', files, registered: false, jar: [] };
|
|
83
|
+
}
|
|
84
|
+
async function wantedCustom(project, config, name, entry) {
|
|
85
|
+
const dir = componentDir(project, 'custom', name);
|
|
86
|
+
const names = await sourceFiles(dir);
|
|
87
|
+
if (names === undefined)
|
|
88
|
+
throw missingComponent('custom', name);
|
|
89
|
+
const jarDir = jarSourceDir(entry.targetPath);
|
|
90
|
+
const files = new Map();
|
|
91
|
+
const jar = [];
|
|
92
|
+
for (const file of names.filter((candidate) => /\.(?:mjs|css)$/.test(candidate))) {
|
|
93
|
+
let content = await readBytes(join(dir, file));
|
|
94
|
+
if (file.endsWith('.css')) {
|
|
95
|
+
content = Buffer.from(await expandFragments(content.toString('utf8'), fragmentsDir(project)));
|
|
96
|
+
}
|
|
97
|
+
files.set(`${entry.targetPath}/${file}`, content);
|
|
98
|
+
jar.push(elementJarEntry(jarDir, file));
|
|
99
|
+
}
|
|
100
|
+
if (entry.localized && entry.sharedFtl === undefined && names.includes(`${name}.ftl`)) {
|
|
101
|
+
files.set(`${ftlDir(config)}/${name}.ftl`, await readBytes(join(dir, `${name}.ftl`)));
|
|
102
|
+
}
|
|
103
|
+
// Without its module the entry would name a script that does not exist.
|
|
104
|
+
const registered = entry.register && names.includes(`${name}.mjs`);
|
|
105
|
+
return { name, kind: 'custom', files, registered, jarDir, jar };
|
|
106
|
+
}
|
|
107
|
+
async function wantedComponents(project, config) {
|
|
108
|
+
const wanted = [];
|
|
109
|
+
for (const [name, entry] of Object.entries(config.overrides)) {
|
|
110
|
+
wanted.push(await wantedOverride(project, config, name, entry));
|
|
111
|
+
}
|
|
112
|
+
for (const [name, entry] of Object.entries(config.custom)) {
|
|
113
|
+
wanted.push(await wantedCustom(project, config, name, entry));
|
|
114
|
+
}
|
|
115
|
+
return wanted;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The engine files every configured component deploys, read from the
|
|
119
|
+
* project's component sources without an engine.
|
|
120
|
+
*
|
|
121
|
+
* @param project - The project
|
|
122
|
+
* @param config - Its component configuration
|
|
123
|
+
* @returns Per component, the content by engine path
|
|
124
|
+
* @throws `furnace-component-missing` or `furnace-component-empty` (exit code 9)
|
|
125
|
+
*/
|
|
126
|
+
export async function componentFiles(project, config) {
|
|
127
|
+
return (await wantedComponents(project, config)).map(({ name, files }) => ({ name, files }));
|
|
128
|
+
}
|
|
129
|
+
async function readRecord(workspace) {
|
|
130
|
+
const path = join(workspace.stateDir, RECORD_FILE);
|
|
131
|
+
const record = await readJsonIfExists(path, DeploymentRecord, {
|
|
132
|
+
code: 'furnace-deployment-invalid',
|
|
133
|
+
exitCode: ExitCode.CONFIG_ERROR,
|
|
134
|
+
hint: `Delete ${path} and run "fireforge furnace apply"; files of components removed since the last deployment then stay in the engine.`,
|
|
135
|
+
});
|
|
136
|
+
return record ?? { version: 1, components: {} };
|
|
137
|
+
}
|
|
138
|
+
/** Compares one component's files with the engine, filling the plan. */
|
|
139
|
+
async function planFiles(workspace, wanted, previous, plan) {
|
|
140
|
+
const reasons = [];
|
|
141
|
+
const hashes = {};
|
|
142
|
+
for (const [path, content] of wanted.files) {
|
|
143
|
+
const digest = hash(content);
|
|
144
|
+
hashes[path] = digest;
|
|
145
|
+
const engine = await readBytesIfExists(await resolveContained(workspace.engineDir, path));
|
|
146
|
+
if (engine !== undefined && hash(engine) === digest)
|
|
147
|
+
continue;
|
|
148
|
+
plan.writes.set(path, content);
|
|
149
|
+
const recorded = previous?.kind === wanted.kind ? previous.files[path] : undefined;
|
|
150
|
+
reasons.push(recorded === undefined
|
|
151
|
+
? `${path} is not deployed`
|
|
152
|
+
: recorded !== digest
|
|
153
|
+
? `${path} changed in the project`
|
|
154
|
+
: `${path} ${engine === undefined ? 'is missing from' : 'was changed in'} the engine`);
|
|
155
|
+
}
|
|
156
|
+
return { reasons, hashes };
|
|
157
|
+
}
|
|
158
|
+
/** Records the engine paths of a deployed component that are no longer wanted, with their owner's kind. */
|
|
159
|
+
function planRemovals(previous, keep, gone) {
|
|
160
|
+
const paths = Object.keys(previous.files).filter((path) => keep?.has(path) !== true);
|
|
161
|
+
for (const path of paths)
|
|
162
|
+
gone.set(path, previous.kind);
|
|
163
|
+
return paths;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* What to do with each path taken away: a custom component's file is
|
|
167
|
+
* deleted, an override's is put back to upstream (deleted where upstream
|
|
168
|
+
* has none). A path another component now writes is left to that write.
|
|
169
|
+
*/
|
|
170
|
+
async function resolveRemovals(workspace, gone, writes) {
|
|
171
|
+
const paths = [...gone.keys()].filter((path) => !writes.has(path));
|
|
172
|
+
const restore = paths.filter((path) => gone.get(path) === 'override');
|
|
173
|
+
const upstream = restore.length === 0 ? new Map() : await upstreamFiles(workspace, restore);
|
|
174
|
+
return new Map(paths.map((path) => [path, upstream.get(path) ?? null]));
|
|
175
|
+
}
|
|
176
|
+
async function assertOverrideTargets(workspace, config) {
|
|
177
|
+
for (const [name, entry] of Object.entries(config.overrides)) {
|
|
178
|
+
const target = await resolveContained(workspace.engineDir, entry.basePath);
|
|
179
|
+
if ((await pathInfo(target))?.kind !== 'directory') {
|
|
180
|
+
throw furnaceError('furnace-override-target-missing', `Override "${name}" replaces files in ${entry.basePath}, which the engine does not have.`, { hint: 'Correct its basePath in furnace.json, or remove the override.' });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async function readEngineFile(workspace, path) {
|
|
185
|
+
const text = await readTextIfExists(join(workspace.engineDir, path));
|
|
186
|
+
if (text !== undefined)
|
|
187
|
+
return text;
|
|
188
|
+
throw furnaceError('furnace-engine-incomplete', `The engine has no ${path}.`, {
|
|
189
|
+
hint: 'Components register in it; restore the engine from upstream.',
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/** Plans the jar.mn lines, attributing missing ones to their components. */
|
|
193
|
+
async function planJarFile(workspace, wanted, ownedDirs, reasons) {
|
|
194
|
+
const lines = wanted.flatMap((component) => component.jar);
|
|
195
|
+
if (lines.length === 0 && ownedDirs.length === 0)
|
|
196
|
+
return undefined;
|
|
197
|
+
const text = await readEngineFile(workspace, WIDGETS_JAR);
|
|
198
|
+
const next = planJar(text, lines, ownedDirs);
|
|
199
|
+
if (next === text)
|
|
200
|
+
return undefined;
|
|
201
|
+
for (const component of wanted) {
|
|
202
|
+
const missing = missingJarFiles(text, component.jar);
|
|
203
|
+
if (missing.length > 0) {
|
|
204
|
+
reasons
|
|
205
|
+
.get(component.name)
|
|
206
|
+
?.push(`${WIDGETS_JAR} lacks ${missing.map((file) => file.target).join(', ')}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return next;
|
|
210
|
+
}
|
|
211
|
+
/** Plans the customElements.js entries: owned tags no longer wanted go, wanted tags are listed. */
|
|
212
|
+
async function planElements(workspace, marker, wantedTags, ownedTags, reasons) {
|
|
213
|
+
if (wantedTags.length === 0 && ownedTags.length === 0)
|
|
214
|
+
return undefined;
|
|
215
|
+
const text = await readEngineFile(workspace, CUSTOM_ELEMENTS_JS);
|
|
216
|
+
let next = text;
|
|
217
|
+
for (const tag of ownedTags.filter((owned) => !wantedTags.includes(owned))) {
|
|
218
|
+
next = unregisterElement(next, tag);
|
|
219
|
+
}
|
|
220
|
+
const listed = new Set(elementEntries(text)
|
|
221
|
+
.filter((entry) => entry.module)
|
|
222
|
+
.map((entry) => entry.tag));
|
|
223
|
+
for (const tag of wantedTags) {
|
|
224
|
+
const before = next;
|
|
225
|
+
next = registerElement(next, tag, marker);
|
|
226
|
+
if (!listed.has(tag) && next !== before) {
|
|
227
|
+
reasons.get(tag)?.push(`${CUSTOM_ELEMENTS_JS} does not list it as a module element`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return next === text ? undefined : next;
|
|
231
|
+
}
|
|
232
|
+
async function makePlan(project, workspace, config) {
|
|
233
|
+
const previous = await readRecord(workspace);
|
|
234
|
+
const wanted = await wantedComponents(project, config);
|
|
235
|
+
await assertOverrideTargets(workspace, config);
|
|
236
|
+
const plan = {
|
|
237
|
+
writes: new Map(),
|
|
238
|
+
removals: new Map(),
|
|
239
|
+
jar: undefined,
|
|
240
|
+
elements: undefined,
|
|
241
|
+
record: { version: 1, components: {} },
|
|
242
|
+
recordChanged: false,
|
|
243
|
+
components: [],
|
|
244
|
+
};
|
|
245
|
+
const reasons = new Map();
|
|
246
|
+
const gone = new Map();
|
|
247
|
+
for (const component of wanted) {
|
|
248
|
+
const before = previous.components[component.name];
|
|
249
|
+
const files = await planFiles(workspace, component, before, plan);
|
|
250
|
+
if (before !== undefined) {
|
|
251
|
+
const keep = before.kind === component.kind ? component.files : undefined;
|
|
252
|
+
const dropped = planRemovals(before, keep, gone);
|
|
253
|
+
files.reasons.push(...dropped.map((path) => `${path} is no longer part of it`));
|
|
254
|
+
}
|
|
255
|
+
reasons.set(component.name, files.reasons);
|
|
256
|
+
plan.record.components[component.name] = {
|
|
257
|
+
kind: component.kind,
|
|
258
|
+
files: files.hashes,
|
|
259
|
+
registered: component.registered,
|
|
260
|
+
...(component.jarDir === undefined ? {} : { jarDir: component.jarDir }),
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
const configured = new Set(wanted.map((component) => component.name));
|
|
264
|
+
const removed = Object.entries(previous.components).filter(([name]) => !configured.has(name));
|
|
265
|
+
for (const [, before] of removed)
|
|
266
|
+
planRemovals(before, undefined, gone);
|
|
267
|
+
plan.removals = await resolveRemovals(workspace, gone, plan.writes);
|
|
268
|
+
const ownedDirs = [
|
|
269
|
+
...new Set([
|
|
270
|
+
...wanted.map((component) => component.jarDir),
|
|
271
|
+
...Object.values(previous.components).map((c) => c.jarDir),
|
|
272
|
+
].filter((dir) => dir !== undefined)),
|
|
273
|
+
];
|
|
274
|
+
plan.jar = await planJarFile(workspace, wanted, ownedDirs, reasons);
|
|
275
|
+
const wantedTags = wanted
|
|
276
|
+
.filter((component) => component.registered)
|
|
277
|
+
.map((component) => component.name);
|
|
278
|
+
const ownedTags = Object.entries(previous.components)
|
|
279
|
+
.filter(([, before]) => before.registered)
|
|
280
|
+
.map(([name]) => name);
|
|
281
|
+
plan.elements = await planElements(workspace, markerComment(project.config), wantedTags, ownedTags, reasons);
|
|
282
|
+
plan.components = [
|
|
283
|
+
...wanted.map((component) => {
|
|
284
|
+
const why = reasons.get(component.name) ?? [];
|
|
285
|
+
return {
|
|
286
|
+
name: component.name,
|
|
287
|
+
kind: component.kind,
|
|
288
|
+
status: why.length === 0 ? 'current' : 'outdated',
|
|
289
|
+
reasons: why,
|
|
290
|
+
};
|
|
291
|
+
}),
|
|
292
|
+
...removed.map(([name, before]) => ({
|
|
293
|
+
name,
|
|
294
|
+
kind: before.kind,
|
|
295
|
+
status: 'removed',
|
|
296
|
+
reasons: ['it is no longer in furnace.json'],
|
|
297
|
+
})),
|
|
298
|
+
];
|
|
299
|
+
plan.recordChanged = JSON.stringify(plan.record) !== JSON.stringify(previous);
|
|
300
|
+
return plan;
|
|
301
|
+
}
|
|
302
|
+
function engineChanges(plan) {
|
|
303
|
+
return (plan.writes.size > 0 ||
|
|
304
|
+
plan.removals.size > 0 ||
|
|
305
|
+
plan.jar !== undefined ||
|
|
306
|
+
plan.elements !== undefined);
|
|
307
|
+
}
|
|
308
|
+
function summarize(plan) {
|
|
309
|
+
return {
|
|
310
|
+
changed: engineChanges(plan),
|
|
311
|
+
components: plan.components,
|
|
312
|
+
written: [
|
|
313
|
+
...plan.writes.keys(),
|
|
314
|
+
...[...plan.removals].filter(([, bytes]) => bytes !== null).map(([path]) => path),
|
|
315
|
+
...(plan.jar === undefined ? [] : [WIDGETS_JAR]),
|
|
316
|
+
...(plan.elements === undefined ? [] : [CUSTOM_ELEMENTS_JS]),
|
|
317
|
+
].sort(),
|
|
318
|
+
removed: [...plan.removals.keys()].sort(),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Deploys the project's components into a workspace's engine: writes every
|
|
323
|
+
* component file whose engine copy differs, removes what components no
|
|
324
|
+
* longer have, and brings jar.mn and customElements.js in line, all in one
|
|
325
|
+
* transaction with the deployment record. Unchanged components cost a read
|
|
326
|
+
* and a hash; with nothing to change nothing is written.
|
|
327
|
+
*
|
|
328
|
+
* @param project - The project whose `furnace.json` and `components/` are deployed
|
|
329
|
+
* @param workspace - The engine to deploy into
|
|
330
|
+
* @param options - See {@link ApplyOptions}
|
|
331
|
+
* @throws `furnace-component-missing`, `furnace-override-target-missing`,
|
|
332
|
+
* `furnace-fragment-missing`, `furnace-engine-incomplete`, `manifest-invalid`
|
|
333
|
+
* (a jar.mn conflict) or `furnace-custom-elements-unreadable`; the engine is then unchanged
|
|
334
|
+
*/
|
|
335
|
+
export async function applyComponents(project, workspace, options = {}) {
|
|
336
|
+
const journal = join(workspace.stateDir, JOURNAL_FILE);
|
|
337
|
+
const lockOptions = {
|
|
338
|
+
label: 'furnace deployment',
|
|
339
|
+
...(options.waitMs === undefined ? {} : { waitMs: options.waitMs }),
|
|
340
|
+
};
|
|
341
|
+
return withLock(join(workspace.stateDir, LOCK_DIR), lockOptions, async () => {
|
|
342
|
+
if (options.dryRun !== true)
|
|
343
|
+
await recoverJournal(journal);
|
|
344
|
+
const plan = await makePlan(project, workspace, await loadFurnaceConfig(project));
|
|
345
|
+
const result = summarize(plan);
|
|
346
|
+
if (options.dryRun === true || (!result.changed && !plan.recordChanged))
|
|
347
|
+
return result;
|
|
348
|
+
await transaction(journal, 'the component deployment', async (tx) => {
|
|
349
|
+
const at = (path) => resolveContained(workspace.engineDir, path);
|
|
350
|
+
for (const [path, content] of plan.writes)
|
|
351
|
+
await tx.write(await at(path), content);
|
|
352
|
+
for (const [path, upstream] of plan.removals) {
|
|
353
|
+
if (upstream === null)
|
|
354
|
+
await tx.remove(await at(path));
|
|
355
|
+
else
|
|
356
|
+
await tx.write(await at(path), upstream);
|
|
357
|
+
}
|
|
358
|
+
if (plan.jar !== undefined)
|
|
359
|
+
await tx.write(join(workspace.engineDir, WIDGETS_JAR), plan.jar);
|
|
360
|
+
if (plan.elements !== undefined) {
|
|
361
|
+
await tx.write(join(workspace.engineDir, CUSTOM_ELEMENTS_JS), plan.elements);
|
|
362
|
+
}
|
|
363
|
+
await tx.write(join(workspace.stateDir, RECORD_FILE), stringifyJson(plan.record));
|
|
364
|
+
});
|
|
365
|
+
return result;
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Compares the deployed components with the project without changing
|
|
370
|
+
* anything: the question a build asks before deciding to apply first.
|
|
371
|
+
*
|
|
372
|
+
* @param project - The project
|
|
373
|
+
* @param workspace - The engine to compare
|
|
374
|
+
*/
|
|
375
|
+
export async function deploymentStatus(project, workspace) {
|
|
376
|
+
const plan = await makePlan(project, workspace, await loadFurnaceConfig(project));
|
|
377
|
+
return { current: !engineChanges(plan), components: plan.components };
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* The upstream bytes of engine paths at the engine's `HEAD`.
|
|
381
|
+
*
|
|
382
|
+
* @param workspace - The engine
|
|
383
|
+
* @param paths - Engine paths
|
|
384
|
+
* @returns Content by path; a path upstream does not have is absent
|
|
385
|
+
*/
|
|
386
|
+
export async function upstreamFiles(workspace, paths) {
|
|
387
|
+
const blobs = await readBlobs(workspace.engineDir, paths.map((path) => `HEAD:${path}`));
|
|
388
|
+
return new Map(paths.flatMap((path) => {
|
|
389
|
+
const blob = blobs.get(`HEAD:${path}`);
|
|
390
|
+
return blob === undefined ? [] : [[path, blob]];
|
|
391
|
+
}));
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* The upstream files of an engine directory at `HEAD`, by name (one level).
|
|
395
|
+
*
|
|
396
|
+
* @param workspace - The engine
|
|
397
|
+
* @param dir - Engine directory
|
|
398
|
+
*/
|
|
399
|
+
export async function upstreamDirectory(workspace, dir) {
|
|
400
|
+
const entries = await listTree(workspace.engineDir, 'HEAD', { paths: [dir] });
|
|
401
|
+
return entries
|
|
402
|
+
.filter((entry) => entry.type === 'blob' && posix.dirname(entry.path) === dir)
|
|
403
|
+
.map((entry) => posix.basename(entry.path));
|
|
404
|
+
}
|
|
405
|
+
/** The deployed content each component file wants, for comparing with the engine. */
|
|
406
|
+
export async function deployedContent(project, config, name) {
|
|
407
|
+
const entry = config.custom[name];
|
|
408
|
+
if (entry !== undefined)
|
|
409
|
+
return (await wantedCustom(project, config, name, entry)).files;
|
|
410
|
+
const override = config.overrides[name];
|
|
411
|
+
return override === undefined
|
|
412
|
+
? new Map()
|
|
413
|
+
: (await wantedOverride(project, config, name, override)).files;
|
|
414
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* `furnace diff`: how the project's components differ from what they are
|
|
4
|
+
* compared with. A custom component is compared with its deployed copy in
|
|
5
|
+
* the engine, an override with the stock files at the engine's `HEAD`.
|
|
6
|
+
*/
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { gitResult } from '../git/index.js';
|
|
9
|
+
import { ensureDir, makeTempDir, readBytesIfExists, remove, writeFile } from '../kernel/fs.js';
|
|
10
|
+
import { components, findComponent, furnaceError, loadFurnaceConfig, } from './config.js';
|
|
11
|
+
import { deployedContent, upstreamFiles } from './deploy.js';
|
|
12
|
+
/**
|
|
13
|
+
* A unified diff of one component, or of every component: `engine/<path>`
|
|
14
|
+
* (custom) or `upstream/<path>` (override) against `project/<path>`, by
|
|
15
|
+
* engine path.
|
|
16
|
+
*
|
|
17
|
+
* @param project - The project
|
|
18
|
+
* @param workspace - The engine
|
|
19
|
+
* @param name - One component; all when omitted
|
|
20
|
+
* @returns The diff text; empty when nothing differs
|
|
21
|
+
*/
|
|
22
|
+
export async function componentDiff(project, workspace, name) {
|
|
23
|
+
const config = await loadFurnaceConfig(project);
|
|
24
|
+
const selected = name === undefined ? components(config) : [findComponent(config, name)];
|
|
25
|
+
const scratch = await makeTempDir('fireforge-furnace-diff-');
|
|
26
|
+
try {
|
|
27
|
+
let text = '';
|
|
28
|
+
for (const [kind, side] of [
|
|
29
|
+
['custom', 'engine'],
|
|
30
|
+
['override', 'upstream'],
|
|
31
|
+
]) {
|
|
32
|
+
const dir = join(scratch, kind);
|
|
33
|
+
await ensureDir(join(dir, side));
|
|
34
|
+
await ensureDir(join(dir, 'project'));
|
|
35
|
+
for (const component of selected.filter((candidate) => candidate.kind === kind)) {
|
|
36
|
+
const wanted = await deployedContent(project, config, component.name);
|
|
37
|
+
const before = kind === 'override' ? await upstreamFiles(workspace, [...wanted.keys()]) : undefined;
|
|
38
|
+
for (const [path, content] of wanted) {
|
|
39
|
+
await writeFile(join(dir, 'project', path), content, { durable: false });
|
|
40
|
+
const old = before === undefined
|
|
41
|
+
? await readBytesIfExists(join(workspace.engineDir, path))
|
|
42
|
+
: before.get(path);
|
|
43
|
+
if (old !== undefined)
|
|
44
|
+
await writeFile(join(dir, side, path), old, { durable: false });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const args = ['diff', '--no-index', '--no-color', '--no-prefix', '--', side, 'project'];
|
|
48
|
+
const result = await gitResult(args, { cwd: dir });
|
|
49
|
+
if (result.exitCode > 1) {
|
|
50
|
+
throw furnaceError('furnace-diff-failed', `git diff failed: ${result.stderr.trim()}`);
|
|
51
|
+
}
|
|
52
|
+
text += result.stdout.toString('utf8');
|
|
53
|
+
}
|
|
54
|
+
return text;
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
await remove(scratch);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Edits of the files a project tracks: `components/`, `furnace.json`, the
|
|
4
|
+
* typing files, and the engine files a component brings along (its tests
|
|
5
|
+
* and their manifests). Each command's edits run as one transaction under
|
|
6
|
+
* the project's Furnace edit lock, so a failure or a signal leaves every
|
|
7
|
+
* file as it was. A dry run runs the same edits against a transaction that
|
|
8
|
+
* only records what it is asked to change.
|
|
9
|
+
*
|
|
10
|
+
* An engine file the project tracks is stored differently per mode: in
|
|
11
|
+
* patch mode it is `engine/<path>` itself, in source mode `src/<path>`
|
|
12
|
+
* behind an override record. Furnace never asks which; the caller hands it
|
|
13
|
+
* a {@link TrackedFiles} that knows.
|
|
14
|
+
*/
|
|
15
|
+
import { join, relative } from 'node:path';
|
|
16
|
+
import { toPosixPath } from '../kernel/fs.js';
|
|
17
|
+
import { transaction } from '../kernel/journal.js';
|
|
18
|
+
import { withLock } from '../kernel/lock.js';
|
|
19
|
+
/** A transaction that passes every change on to `inner` (or, without one, drops it) and records the paths. */
|
|
20
|
+
function recording(inner, paths) {
|
|
21
|
+
const note = (path) => {
|
|
22
|
+
if (!paths.includes(path))
|
|
23
|
+
paths.push(path);
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
async write(path, content, options) {
|
|
27
|
+
note(path);
|
|
28
|
+
await inner?.write(path, content, options);
|
|
29
|
+
},
|
|
30
|
+
async remove(path) {
|
|
31
|
+
note(path);
|
|
32
|
+
await inner?.remove(path);
|
|
33
|
+
},
|
|
34
|
+
async change(changed, mutate) {
|
|
35
|
+
changed.forEach(note);
|
|
36
|
+
await inner?.change(changed, mutate);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Runs `body` as one transaction under the project's Furnace edit lock and
|
|
42
|
+
* reports the paths it changed.
|
|
43
|
+
*
|
|
44
|
+
* @param project - The project
|
|
45
|
+
* @param label - What is being done, for messages
|
|
46
|
+
* @param options - See {@link EditOptions}
|
|
47
|
+
* @param body - Makes the edits through the transaction and returns notes for the operator
|
|
48
|
+
*/
|
|
49
|
+
export async function editProject(project, label, options, body) {
|
|
50
|
+
const { root, stateDir } = project.paths;
|
|
51
|
+
const paths = [];
|
|
52
|
+
const report = (notes) => ({
|
|
53
|
+
paths: paths.map((path) => toPosixPath(relative(root, path))),
|
|
54
|
+
notes,
|
|
55
|
+
});
|
|
56
|
+
if (options.dryRun === true)
|
|
57
|
+
return report(await body(recording(undefined, paths)));
|
|
58
|
+
const lock = {
|
|
59
|
+
label: 'furnace edit',
|
|
60
|
+
...(options.waitMs === undefined ? {} : { waitMs: options.waitMs }),
|
|
61
|
+
};
|
|
62
|
+
const notes = await withLock(join(stateDir, 'furnace-edit.lock'), lock, () => transaction(join(stateDir, 'furnace-edit.journal'), label, (tx) => body(recording(tx, paths))));
|
|
63
|
+
return report(notes);
|
|
64
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Shared CSS fragments. Shadow DOM makes every widget stylesheet carry its
|
|
4
|
+
* own copy of genuinely shared rules, so a component stylesheet names a
|
|
5
|
+
* fragment of `components/shared/` with an include directive on its own
|
|
6
|
+
* line (`src/syntax` reads the markers). The deployed copy has the fragment
|
|
7
|
+
* inlined after the directive and fenced by its end marker; the project's
|
|
8
|
+
* source keeps only the directive. Editing a fragment therefore changes the
|
|
9
|
+
* deployed content of every includer, which is what makes them stale.
|
|
10
|
+
*/
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { readTextIfExists } from '../kernel/fs.js';
|
|
13
|
+
import { fragmentEnd, fragmentExpansions, fragmentInclude, fragmentIncludes, } from '../syntax/index.js';
|
|
14
|
+
import { furnaceError } from './config.js';
|
|
15
|
+
/** Drops fenced expansions, leaving the bare directives, so expansion is idempotent. */
|
|
16
|
+
function stripExpansions(css) {
|
|
17
|
+
const lines = css.split('\n');
|
|
18
|
+
const dropped = new Set();
|
|
19
|
+
for (const [start, end] of fragmentExpansions(lines)) {
|
|
20
|
+
for (let at = start + 1; at <= end; at++)
|
|
21
|
+
dropped.add(at);
|
|
22
|
+
}
|
|
23
|
+
return lines.filter((_, at) => !dropped.has(at));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The deployed form of a stylesheet: every directive followed by the
|
|
27
|
+
* fragment's current text and its end marker.
|
|
28
|
+
*
|
|
29
|
+
* @param css - Stylesheet text (a source, or an earlier expansion)
|
|
30
|
+
* @param sharedDir - The fragments directory
|
|
31
|
+
* @throws `furnace-fragment-missing` for a fragment that does not exist, or one that includes another
|
|
32
|
+
*/
|
|
33
|
+
export async function expandFragments(css, sharedDir) {
|
|
34
|
+
const lines = stripExpansions(css);
|
|
35
|
+
if (!lines.some((line) => fragmentInclude(line) !== undefined))
|
|
36
|
+
return css;
|
|
37
|
+
const out = [];
|
|
38
|
+
for (const line of lines) {
|
|
39
|
+
out.push(line);
|
|
40
|
+
const name = fragmentInclude(line);
|
|
41
|
+
if (name === undefined)
|
|
42
|
+
continue;
|
|
43
|
+
const text = await readTextIfExists(join(sharedDir, name));
|
|
44
|
+
if (text === undefined) {
|
|
45
|
+
throw furnaceError('furnace-fragment-missing', `CSS fragment "${name}" does not exist in components/shared/.`, { hint: 'Create the fragment or remove the @fireforge-include directive.' });
|
|
46
|
+
}
|
|
47
|
+
if (fragmentIncludes(text).length > 0) {
|
|
48
|
+
throw furnaceError('furnace-fragment-missing', `CSS fragment "${name}" includes another fragment; fragments do not nest.`);
|
|
49
|
+
}
|
|
50
|
+
out.push(text.replace(/\n$/, ''), fragmentEnd(name));
|
|
51
|
+
}
|
|
52
|
+
return out.join('\n');
|
|
53
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: EUPL-1.2
|
|
2
|
+
/**
|
|
3
|
+
* Furnace: the fork's UI components. Their sources live in the project
|
|
4
|
+
* (`components/`, described by `furnace.json`); Furnace deploys them into an
|
|
5
|
+
* engine it is given, validates them, scaffolds and renames them, and
|
|
6
|
+
* generates the typing files that make them typed for their users.
|
|
7
|
+
*
|
|
8
|
+
* Furnace never asks which mode a project is in. Deployment takes the
|
|
9
|
+
* engine to deploy into ({@link FurnaceWorkspace}); edits of engine files
|
|
10
|
+
* the project tracks go through the caller's `TrackedFiles`.
|
|
11
|
+
*/
|
|
12
|
+
export { componentHostFiles, loadFurnaceConfig } from './config.js';
|
|
13
|
+
export { applyComponents, componentFiles, deploymentStatus, } from './deploy.js';
|
|
14
|
+
export { componentDiff } from './diff.js';
|
|
15
|
+
export {} from './edit.js';
|
|
16
|
+
export { createComponent, overrideComponent, removeComponent, renameComponent, updateTypingFiles, } from './operations.js';
|
|
17
|
+
export { TEST_STYLES } from './scaffold.js';
|
|
18
|
+
export { typingDrift } from './typing.js';
|
|
19
|
+
export { validateComponents, validationPasses } from './validate.js';
|