@hominis/fireforge 0.55.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.
Files changed (1262) hide show
  1. package/CHANGELOG.md +233 -6
  2. package/README.md +51 -17
  3. package/dist/bin/fireforge.js +34 -129
  4. package/dist/build-info.json +4 -4
  5. package/dist/src/check/check.js +394 -0
  6. package/dist/src/check/gate.js +448 -0
  7. package/dist/src/check/index.js +10 -0
  8. package/dist/src/check/record.js +155 -0
  9. package/dist/src/cli/command.js +286 -0
  10. package/dist/src/cli/output.js +96 -0
  11. package/dist/src/cli/program.js +231 -0
  12. package/dist/src/cli/stdio.js +59 -0
  13. package/dist/src/cli/version.js +99 -0
  14. package/dist/src/commands/bootstrap.js +17 -102
  15. package/dist/src/commands/build.js +34 -456
  16. package/dist/src/commands/check.js +44 -157
  17. package/dist/src/commands/config.js +50 -226
  18. package/dist/src/commands/discard.js +38 -215
  19. package/dist/src/commands/doctor.js +29 -456
  20. package/dist/src/commands/download.js +35 -499
  21. package/dist/src/commands/export.js +42 -431
  22. package/dist/src/commands/furnace.js +220 -0
  23. package/dist/src/commands/gate.js +127 -0
  24. package/dist/src/commands/import.js +44 -445
  25. package/dist/src/commands/index.js +86 -0
  26. package/dist/src/commands/lint.js +44 -546
  27. package/dist/src/commands/merge-driver.js +56 -0
  28. package/dist/src/commands/migrate.js +75 -0
  29. package/dist/src/commands/override.js +43 -0
  30. package/dist/src/commands/package.js +48 -77
  31. package/dist/src/commands/patch.js +221 -0
  32. package/dist/src/commands/re-export.js +55 -359
  33. package/dist/src/commands/rebase.js +69 -0
  34. package/dist/src/commands/register.js +62 -103
  35. package/dist/src/commands/reset.js +28 -91
  36. package/dist/src/commands/resolve.js +20 -167
  37. package/dist/src/commands/restore.js +19 -0
  38. package/dist/src/commands/run.js +60 -382
  39. package/dist/src/commands/setup.js +78 -90
  40. package/dist/src/commands/status.js +44 -413
  41. package/dist/src/commands/test.js +97 -423
  42. package/dist/src/commands/token.js +185 -228
  43. package/dist/src/commands/typecheck.js +59 -241
  44. package/dist/src/commands/verify.js +28 -334
  45. package/dist/src/commands/version.js +14 -0
  46. package/dist/src/commands/watch.js +20 -218
  47. package/dist/src/commands/wire.js +60 -349
  48. package/dist/src/commands/workspace.js +117 -0
  49. package/dist/src/config/edit.js +237 -0
  50. package/dist/src/config/index.js +15 -0
  51. package/dist/src/config/load.js +59 -0
  52. package/dist/src/config/previous.js +404 -0
  53. package/dist/src/config/schema/build.js +63 -0
  54. package/dist/src/config/schema/check.js +113 -0
  55. package/dist/src/config/schema/common.js +71 -0
  56. package/dist/src/config/schema/export-queue.js +36 -0
  57. package/dist/src/config/schema/firefox.js +69 -0
  58. package/dist/src/config/schema/gate.js +199 -0
  59. package/dist/src/config/schema/identity.js +55 -0
  60. package/dist/src/config/schema/index.js +45 -0
  61. package/dist/src/config/schema/lint.js +297 -0
  62. package/dist/src/config/schema/policy.js +111 -0
  63. package/dist/src/config/schema/source.js +90 -0
  64. package/dist/src/config/schema/test.js +17 -0
  65. package/dist/src/config/schema/toolchains.js +17 -0
  66. package/dist/src/config/schema/typecheck.js +29 -0
  67. package/dist/src/config/schema/wire.js +15 -0
  68. package/dist/src/diff/apply.js +129 -0
  69. package/dist/src/diff/index.js +16 -0
  70. package/dist/src/diff/model.js +267 -0
  71. package/dist/src/diff/query.js +65 -0
  72. package/dist/src/doctor/index.js +240 -0
  73. package/dist/src/engine/archive.js +396 -0
  74. package/dist/src/engine/audit.js +66 -0
  75. package/dist/src/engine/build.js +150 -0
  76. package/dist/src/engine/hostLocks.js +66 -0
  77. package/dist/src/engine/index.js +26 -0
  78. package/dist/src/engine/installManifests.js +147 -0
  79. package/dist/src/engine/mach.js +97 -0
  80. package/dist/src/engine/machHints.js +80 -0
  81. package/dist/src/engine/mozconfig.js +110 -0
  82. package/dist/src/engine/objdir.js +124 -0
  83. package/dist/src/engine/package.js +169 -0
  84. package/dist/src/engine/pin.js +12 -0
  85. package/dist/src/engine/pool.js +423 -0
  86. package/dist/src/engine/pristine.js +281 -0
  87. package/dist/src/engine/python.js +68 -0
  88. package/dist/src/engine/resourceGuard.js +582 -0
  89. package/dist/src/engine/run.js +259 -0
  90. package/dist/src/engine/smoke.js +204 -0
  91. package/dist/src/engine/staleness.js +229 -0
  92. package/dist/src/engine/watch.js +82 -0
  93. package/dist/src/engine/workspace.js +85 -0
  94. package/dist/src/furnace/config.js +360 -0
  95. package/dist/src/furnace/deploy.js +414 -0
  96. package/dist/src/furnace/diff.js +59 -0
  97. package/dist/src/furnace/edit.js +64 -0
  98. package/dist/src/furnace/fragments.js +53 -0
  99. package/dist/src/furnace/index.js +19 -0
  100. package/dist/src/furnace/operations.js +283 -0
  101. package/dist/src/furnace/registration.js +220 -0
  102. package/dist/src/furnace/scaffold.js +311 -0
  103. package/dist/src/furnace/typing.js +252 -0
  104. package/dist/src/furnace/validate.js +662 -0
  105. package/dist/src/git/apply.js +129 -0
  106. package/dist/src/git/diff.js +143 -0
  107. package/dist/src/git/index.js +33 -0
  108. package/dist/src/git/objects.js +201 -0
  109. package/dist/src/git/refs.js +85 -0
  110. package/dist/src/git/repo.js +222 -0
  111. package/dist/src/git/run.js +242 -0
  112. package/dist/src/git/status.js +156 -0
  113. package/dist/src/kernel/errors.js +123 -0
  114. package/dist/src/kernel/fs.js +515 -0
  115. package/dist/src/kernel/glob.js +63 -0
  116. package/dist/src/kernel/hash.js +28 -0
  117. package/dist/src/kernel/journal.js +524 -0
  118. package/dist/src/kernel/json-edit.js +198 -0
  119. package/dist/src/kernel/json.js +101 -0
  120. package/dist/src/kernel/lock.js +589 -0
  121. package/dist/src/kernel/log.js +154 -0
  122. package/dist/src/kernel/process/identity.js +313 -0
  123. package/dist/src/kernel/process/index.js +8 -0
  124. package/dist/src/kernel/process/listing.js +128 -0
  125. package/dist/src/kernel/process/spawn.js +430 -0
  126. package/dist/src/kernel/process/tree.js +301 -0
  127. package/dist/src/kernel/schema.js +308 -0
  128. package/dist/src/kernel/signals.js +171 -0
  129. package/dist/src/kernel/text.js +151 -0
  130. package/dist/src/kernel/time.js +83 -0
  131. package/dist/src/kernel/tty.js +84 -0
  132. package/dist/src/lint/cache.js +77 -0
  133. package/dist/src/lint/checkjs.js +400 -0
  134. package/dist/src/lint/index.js +3 -0
  135. package/dist/src/lint/input.js +100 -0
  136. package/dist/src/lint/report.js +107 -0
  137. package/dist/src/lint/rule.js +41 -0
  138. package/dist/src/lint/rules/css.js +308 -0
  139. package/dist/src/lint/rules/javascript.js +299 -0
  140. package/dist/src/lint/rules/jsdoc.js +249 -0
  141. package/dist/src/lint/rules/license.js +93 -0
  142. package/dist/src/lint/rules/policy.js +201 -0
  143. package/dist/src/lint/rules/registration.js +264 -0
  144. package/dist/src/lint/rules/size.js +299 -0
  145. package/dist/src/lint/run.js +126 -0
  146. package/dist/src/lint/shim.js +323 -0
  147. package/dist/src/lint/typescript.js +186 -0
  148. package/dist/src/lint/waivers.js +93 -0
  149. package/dist/src/mode/changes.js +264 -0
  150. package/dist/src/mode/diagnose.js +173 -0
  151. package/dist/src/mode/export.js +147 -0
  152. package/dist/src/mode/index.js +23 -0
  153. package/dist/src/mode/migrate.js +181 -0
  154. package/dist/src/mode/previousWaivers.js +206 -0
  155. package/dist/src/mode/pristine.js +61 -0
  156. package/dist/src/mode/rebase.js +197 -0
  157. package/dist/src/mode/report.js +157 -0
  158. package/dist/src/mode/setup.js +103 -0
  159. package/dist/src/mode/tracked.js +116 -0
  160. package/dist/src/mode/upgrade.js +281 -0
  161. package/dist/src/mode/watch.js +83 -0
  162. package/dist/src/mode/workspace.js +189 -0
  163. package/dist/src/mozbuild/index.js +6 -0
  164. package/dist/src/mozbuild/jar.js +366 -0
  165. package/dist/src/mozbuild/mozbuild.js +321 -0
  166. package/dist/src/mozbuild/paths.js +96 -0
  167. package/dist/src/mozbuild/references.js +39 -0
  168. package/dist/src/mozbuild/testManifest.js +343 -0
  169. package/dist/src/mozbuild/text.js +142 -0
  170. package/dist/src/project/changes.js +145 -0
  171. package/dist/src/project/checkout.js +66 -0
  172. package/dist/src/project/index.js +11 -0
  173. package/dist/src/project/license.js +119 -0
  174. package/dist/src/project/project.js +111 -0
  175. package/dist/src/project/state.js +85 -0
  176. package/dist/src/project/tracked.js +1 -0
  177. package/dist/src/queue/apply.js +270 -0
  178. package/dist/src/queue/attribute.js +159 -0
  179. package/dist/src/queue/baseline.js +409 -0
  180. package/dist/src/queue/capture.js +298 -0
  181. package/dist/src/queue/changes.js +234 -0
  182. package/dist/src/queue/index.js +50 -0
  183. package/dist/src/queue/manifest.js +341 -0
  184. package/dist/src/queue/operations.js +454 -0
  185. package/dist/src/queue/placement.js +220 -0
  186. package/dist/src/queue/queue.js +359 -0
  187. package/dist/src/queue/restore.js +103 -0
  188. package/dist/src/queue/session.js +685 -0
  189. package/dist/src/queue/status.js +137 -0
  190. package/dist/src/register/files.js +39 -0
  191. package/dist/src/register/index.js +8 -0
  192. package/dist/src/register/js.js +217 -0
  193. package/dist/src/register/register.js +359 -0
  194. package/dist/src/register/wire.js +146 -0
  195. package/dist/src/source/adopt.js +99 -0
  196. package/dist/src/source/changes.js +132 -0
  197. package/dist/src/source/edit.js +278 -0
  198. package/dist/src/source/export.js +70 -0
  199. package/dist/src/source/groups.js +131 -0
  200. package/dist/src/source/index.js +20 -0
  201. package/dist/src/source/materialize.js +382 -0
  202. package/dist/src/source/merge.js +255 -0
  203. package/dist/src/source/objects.js +102 -0
  204. package/dist/src/source/previous.js +166 -0
  205. package/dist/src/source/records.js +138 -0
  206. package/dist/src/source/refresh.js +264 -0
  207. package/dist/src/source/tree.js +337 -0
  208. package/dist/src/syntax/css.js +215 -0
  209. package/dist/src/syntax/fragments.js +63 -0
  210. package/dist/src/syntax/index.js +10 -0
  211. package/dist/src/syntax/js.js +270 -0
  212. package/dist/src/test/classify.js +826 -0
  213. package/dist/src/test/control.js +236 -0
  214. package/dist/src/test/host.js +266 -0
  215. package/dist/src/test/index.js +11 -0
  216. package/dist/src/test/plan.js +347 -0
  217. package/dist/src/test/rawLog.js +138 -0
  218. package/dist/src/test/run.js +404 -0
  219. package/dist/src/test/verdict.js +420 -0
  220. package/dist/src/test/xpcshell.js +143 -0
  221. package/dist/src/tokens/add.js +304 -0
  222. package/dist/src/tokens/coverage.js +65 -0
  223. package/dist/src/tokens/css.js +58 -0
  224. package/dist/src/tokens/index.js +12 -0
  225. package/dist/src/tokens/lint.js +96 -0
  226. package/dist/src/tokens/model.js +118 -0
  227. package/dist/src/tokens/settings.js +87 -0
  228. package/dist/src/tokens/siblings.js +104 -0
  229. package/dist/src/typecheck/explain.js +123 -0
  230. package/dist/src/typecheck/index.js +8 -0
  231. package/dist/src/typecheck/typecheck.js +332 -0
  232. package/docs/README.md +23 -28
  233. package/docs/authoring.md +97 -0
  234. package/docs/configuration.md +307 -766
  235. package/docs/exit-codes.md +76 -94
  236. package/docs/furnace.md +111 -221
  237. package/docs/gate.md +205 -0
  238. package/docs/getting-started.md +165 -0
  239. package/docs/machine-output.md +201 -290
  240. package/docs/migrating.md +261 -0
  241. package/docs/patch-workflow.md +159 -723
  242. package/docs/quality.md +220 -0
  243. package/docs/source-workflow.md +228 -0
  244. package/docs/testing.md +101 -719
  245. package/docs/workspaces.md +187 -0
  246. package/package.json +22 -30
  247. package/templates/configs/common.mozconfig +8 -2
  248. package/templates/configs/darwin.mozconfig +6 -7
  249. package/templates/configs/linux.mozconfig +5 -8
  250. package/templates/configs/win32.mozconfig +3 -9
  251. package/dist/bin/fireforge.d.ts +0 -9
  252. package/dist/src/cli-usage-error.d.ts +0 -46
  253. package/dist/src/cli-usage-error.js +0 -81
  254. package/dist/src/cli.d.ts +0 -41
  255. package/dist/src/cli.js +0 -380
  256. package/dist/src/commands/bootstrap-checks.d.ts +0 -16
  257. package/dist/src/commands/bootstrap-checks.js +0 -66
  258. package/dist/src/commands/bootstrap.d.ts +0 -10
  259. package/dist/src/commands/build-prelock.d.ts +0 -20
  260. package/dist/src/commands/build-prelock.js +0 -50
  261. package/dist/src/commands/build.d.ts +0 -13
  262. package/dist/src/commands/check-report.d.ts +0 -41
  263. package/dist/src/commands/check-report.js +0 -98
  264. package/dist/src/commands/check-run.d.ts +0 -44
  265. package/dist/src/commands/check-run.js +0 -125
  266. package/dist/src/commands/check-steps.d.ts +0 -75
  267. package/dist/src/commands/check-steps.js +0 -200
  268. package/dist/src/commands/check.d.ts +0 -32
  269. package/dist/src/commands/config.d.ts +0 -13
  270. package/dist/src/commands/declarations-report.d.ts +0 -49
  271. package/dist/src/commands/declarations-report.js +0 -83
  272. package/dist/src/commands/destructive-decision.d.ts +0 -19
  273. package/dist/src/commands/destructive-decision.js +0 -31
  274. package/dist/src/commands/discard.d.ts +0 -12
  275. package/dist/src/commands/doctor-check-core.d.ts +0 -110
  276. package/dist/src/commands/doctor-check-core.js +0 -24
  277. package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
  278. package/dist/src/commands/doctor-engine-eslint.js +0 -17
  279. package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
  280. package/dist/src/commands/doctor-external-toolchains.js +0 -56
  281. package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
  282. package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
  283. package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
  284. package/dist/src/commands/doctor-furnace-jar.js +0 -44
  285. package/dist/src/commands/doctor-furnace.d.ts +0 -8
  286. package/dist/src/commands/doctor-furnace.js +0 -514
  287. package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
  288. package/dist/src/commands/doctor-macos-sdk.js +0 -158
  289. package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
  290. package/dist/src/commands/doctor-orphaned-harness.js +0 -98
  291. package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
  292. package/dist/src/commands/doctor-patch-manifest.js +0 -156
  293. package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
  294. package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
  295. package/dist/src/commands/doctor-source-pin.d.ts +0 -29
  296. package/dist/src/commands/doctor-source-pin.js +0 -91
  297. package/dist/src/commands/doctor-working-tree.d.ts +0 -27
  298. package/dist/src/commands/doctor-working-tree.js +0 -89
  299. package/dist/src/commands/doctor.d.ts +0 -49
  300. package/dist/src/commands/download.d.ts +0 -11
  301. package/dist/src/commands/export-adopt-check.d.ts +0 -37
  302. package/dist/src/commands/export-adopt-check.js +0 -97
  303. package/dist/src/commands/export-all.d.ts +0 -11
  304. package/dist/src/commands/export-all.js +0 -361
  305. package/dist/src/commands/export-flow.d.ts +0 -124
  306. package/dist/src/commands/export-flow.js +0 -423
  307. package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
  308. package/dist/src/commands/export-placement-conflicts.js +0 -75
  309. package/dist/src/commands/export-placement-gate.d.ts +0 -42
  310. package/dist/src/commands/export-placement-gate.js +0 -107
  311. package/dist/src/commands/export-placement-policy.d.ts +0 -22
  312. package/dist/src/commands/export-placement-policy.js +0 -54
  313. package/dist/src/commands/export-shared.d.ts +0 -152
  314. package/dist/src/commands/export-shared.js +0 -396
  315. package/dist/src/commands/export-staged-registration.d.ts +0 -46
  316. package/dist/src/commands/export-staged-registration.js +0 -91
  317. package/dist/src/commands/export.d.ts +0 -13
  318. package/dist/src/commands/forward-import-remedy.d.ts +0 -31
  319. package/dist/src/commands/forward-import-remedy.js +0 -62
  320. package/dist/src/commands/furnace/apply.d.ts +0 -8
  321. package/dist/src/commands/furnace/apply.js +0 -327
  322. package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
  323. package/dist/src/commands/furnace/authoring-config.js +0 -19
  324. package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
  325. package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
  326. package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
  327. package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
  328. package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
  329. package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
  330. package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
  331. package/dist/src/commands/furnace/chrome-doc.js +0 -365
  332. package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
  333. package/dist/src/commands/furnace/create-browser-test.js +0 -179
  334. package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
  335. package/dist/src/commands/furnace/create-dry-run.js +0 -107
  336. package/dist/src/commands/furnace/create-features.d.ts +0 -24
  337. package/dist/src/commands/furnace/create-features.js +0 -55
  338. package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
  339. package/dist/src/commands/furnace/create-mochikit.js +0 -75
  340. package/dist/src/commands/furnace/create-readback.d.ts +0 -22
  341. package/dist/src/commands/furnace/create-readback.js +0 -32
  342. package/dist/src/commands/furnace/create-templates.d.ts +0 -119
  343. package/dist/src/commands/furnace/create-templates.js +0 -283
  344. package/dist/src/commands/furnace/create-validation.d.ts +0 -6
  345. package/dist/src/commands/furnace/create-validation.js +0 -59
  346. package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
  347. package/dist/src/commands/furnace/create-xpcshell.js +0 -80
  348. package/dist/src/commands/furnace/create.d.ts +0 -24
  349. package/dist/src/commands/furnace/create.js +0 -407
  350. package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
  351. package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
  352. package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
  353. package/dist/src/commands/furnace/deploy-named.js +0 -107
  354. package/dist/src/commands/furnace/deploy.d.ts +0 -9
  355. package/dist/src/commands/furnace/deploy.js +0 -229
  356. package/dist/src/commands/furnace/diff.d.ts +0 -11
  357. package/dist/src/commands/furnace/diff.js +0 -238
  358. package/dist/src/commands/furnace/index.d.ts +0 -4
  359. package/dist/src/commands/furnace/index.js +0 -283
  360. package/dist/src/commands/furnace/init.d.ts +0 -11
  361. package/dist/src/commands/furnace/init.js +0 -287
  362. package/dist/src/commands/furnace/list.d.ts +0 -8
  363. package/dist/src/commands/furnace/list.js +0 -104
  364. package/dist/src/commands/furnace/override.d.ts +0 -16
  365. package/dist/src/commands/furnace/override.js +0 -454
  366. package/dist/src/commands/furnace/preview.d.ts +0 -19
  367. package/dist/src/commands/furnace/preview.js +0 -349
  368. package/dist/src/commands/furnace/refresh.d.ts +0 -10
  369. package/dist/src/commands/furnace/refresh.js +0 -303
  370. package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
  371. package/dist/src/commands/furnace/remove-mutations.js +0 -168
  372. package/dist/src/commands/furnace/remove-state.d.ts +0 -20
  373. package/dist/src/commands/furnace/remove-state.js +0 -60
  374. package/dist/src/commands/furnace/remove.d.ts +0 -8
  375. package/dist/src/commands/furnace/remove.js +0 -415
  376. package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
  377. package/dist/src/commands/furnace/rename-browser-test.js +0 -68
  378. package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
  379. package/dist/src/commands/furnace/rename-dry-run.js +0 -127
  380. package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
  381. package/dist/src/commands/furnace/rename-helpers.js +0 -85
  382. package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
  383. package/dist/src/commands/furnace/rename-registrations.js +0 -98
  384. package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
  385. package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
  386. package/dist/src/commands/furnace/rename.d.ts +0 -6
  387. package/dist/src/commands/furnace/rename.js +0 -400
  388. package/dist/src/commands/furnace/scan.d.ts +0 -14
  389. package/dist/src/commands/furnace/scan.js +0 -192
  390. package/dist/src/commands/furnace/status.d.ts +0 -7
  391. package/dist/src/commands/furnace/status.js +0 -209
  392. package/dist/src/commands/furnace/sync.d.ts +0 -12
  393. package/dist/src/commands/furnace/sync.js +0 -145
  394. package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
  395. package/dist/src/commands/furnace/test-file-name.js +0 -39
  396. package/dist/src/commands/furnace/validate-report.d.ts +0 -45
  397. package/dist/src/commands/furnace/validate-report.js +0 -91
  398. package/dist/src/commands/furnace/validate.d.ts +0 -8
  399. package/dist/src/commands/furnace/validate.js +0 -309
  400. package/dist/src/commands/furnace/validation-output.d.ts +0 -47
  401. package/dist/src/commands/furnace/validation-output.js +0 -161
  402. package/dist/src/commands/import.d.ts +0 -11
  403. package/dist/src/commands/lint-per-patch.d.ts +0 -10
  404. package/dist/src/commands/lint-per-patch.js +0 -428
  405. package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
  406. package/dist/src/commands/lint-per-run-checkjs.js +0 -102
  407. package/dist/src/commands/lint-report.d.ts +0 -25
  408. package/dist/src/commands/lint-report.js +0 -76
  409. package/dist/src/commands/lint.d.ts +0 -47
  410. package/dist/src/commands/manifest.d.ts +0 -38
  411. package/dist/src/commands/manifest.js +0 -68
  412. package/dist/src/commands/package.d.ts +0 -11
  413. package/dist/src/commands/park.d.ts +0 -22
  414. package/dist/src/commands/park.js +0 -232
  415. package/dist/src/commands/patch/body.d.ts +0 -29
  416. package/dist/src/commands/patch/body.js +0 -60
  417. package/dist/src/commands/patch/compact.d.ts +0 -28
  418. package/dist/src/commands/patch/compact.js +0 -208
  419. package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
  420. package/dist/src/commands/patch/delete-gap-notice.js +0 -48
  421. package/dist/src/commands/patch/delete.d.ts +0 -28
  422. package/dist/src/commands/patch/delete.js +0 -131
  423. package/dist/src/commands/patch/entry-projection.d.ts +0 -13
  424. package/dist/src/commands/patch/entry-projection.js +0 -24
  425. package/dist/src/commands/patch/index.d.ts +0 -16
  426. package/dist/src/commands/patch/index.js +0 -54
  427. package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
  428. package/dist/src/commands/patch/lint-ignore-from.js +0 -141
  429. package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
  430. package/dist/src/commands/patch/lint-ignore.js +0 -263
  431. package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
  432. package/dist/src/commands/patch/move-files-adopt.js +0 -65
  433. package/dist/src/commands/patch/move-files-create.d.ts +0 -19
  434. package/dist/src/commands/patch/move-files-create.js +0 -187
  435. package/dist/src/commands/patch/move-files-into.d.ts +0 -65
  436. package/dist/src/commands/patch/move-files-into.js +0 -325
  437. package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
  438. package/dist/src/commands/patch/move-files-retire.js +0 -91
  439. package/dist/src/commands/patch/move-files.d.ts +0 -28
  440. package/dist/src/commands/patch/move-files.js +0 -224
  441. package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
  442. package/dist/src/commands/patch/move-size-tier.js +0 -66
  443. package/dist/src/commands/patch/patch-context.d.ts +0 -40
  444. package/dist/src/commands/patch/patch-context.js +0 -51
  445. package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
  446. package/dist/src/commands/patch/removal-created-files.js +0 -83
  447. package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
  448. package/dist/src/commands/patch/removal-dependents.js +0 -133
  449. package/dist/src/commands/patch/rename.d.ts +0 -35
  450. package/dist/src/commands/patch/rename.js +0 -378
  451. package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
  452. package/dist/src/commands/patch/reorder-projection.js +0 -49
  453. package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
  454. package/dist/src/commands/patch/reorder-shift.js +0 -307
  455. package/dist/src/commands/patch/reorder.d.ts +0 -34
  456. package/dist/src/commands/patch/reorder.js +0 -375
  457. package/dist/src/commands/patch/reserve.d.ts +0 -33
  458. package/dist/src/commands/patch/reserve.js +0 -152
  459. package/dist/src/commands/patch/retire.d.ts +0 -34
  460. package/dist/src/commands/patch/retire.js +0 -133
  461. package/dist/src/commands/patch/split-plan.d.ts +0 -125
  462. package/dist/src/commands/patch/split-plan.js +0 -313
  463. package/dist/src/commands/patch/split-staged.d.ts +0 -108
  464. package/dist/src/commands/patch/split-staged.js +0 -202
  465. package/dist/src/commands/patch/split.d.ts +0 -43
  466. package/dist/src/commands/patch/split.js +0 -367
  467. package/dist/src/commands/patch/stage.d.ts +0 -34
  468. package/dist/src/commands/patch/stage.js +0 -153
  469. package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
  470. package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
  471. package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
  472. package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
  473. package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
  474. package/dist/src/commands/patch/staged-dependency-from.js +0 -114
  475. package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
  476. package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
  477. package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
  478. package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
  479. package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
  480. package/dist/src/commands/patch/staged-dependency.js +0 -251
  481. package/dist/src/commands/patch/tier.d.ts +0 -34
  482. package/dist/src/commands/patch/tier.js +0 -125
  483. package/dist/src/commands/patch-rename-map.d.ts +0 -30
  484. package/dist/src/commands/patch-rename-map.js +0 -54
  485. package/dist/src/commands/pending-resolution.d.ts +0 -15
  486. package/dist/src/commands/pending-resolution.js +0 -25
  487. package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
  488. package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
  489. package/dist/src/commands/re-export-adjacent.d.ts +0 -111
  490. package/dist/src/commands/re-export-adjacent.js +0 -285
  491. package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
  492. package/dist/src/commands/re-export-bulk-scan.js +0 -233
  493. package/dist/src/commands/re-export-drift.d.ts +0 -110
  494. package/dist/src/commands/re-export-drift.js +0 -358
  495. package/dist/src/commands/re-export-each.d.ts +0 -46
  496. package/dist/src/commands/re-export-each.js +0 -110
  497. package/dist/src/commands/re-export-files.d.ts +0 -15
  498. package/dist/src/commands/re-export-files.js +0 -307
  499. package/dist/src/commands/re-export-hunks.d.ts +0 -37
  500. package/dist/src/commands/re-export-hunks.js +0 -264
  501. package/dist/src/commands/re-export-lint.d.ts +0 -137
  502. package/dist/src/commands/re-export-lint.js +0 -303
  503. package/dist/src/commands/re-export-options.d.ts +0 -29
  504. package/dist/src/commands/re-export-options.js +0 -192
  505. package/dist/src/commands/re-export-preflight.d.ts +0 -23
  506. package/dist/src/commands/re-export-preflight.js +0 -159
  507. package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
  508. package/dist/src/commands/re-export-purity-scope.js +0 -137
  509. package/dist/src/commands/re-export-register.d.ts +0 -12
  510. package/dist/src/commands/re-export-register.js +0 -99
  511. package/dist/src/commands/re-export-removed.d.ts +0 -15
  512. package/dist/src/commands/re-export-removed.js +0 -94
  513. package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
  514. package/dist/src/commands/re-export-retired-declarations.js +0 -113
  515. package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
  516. package/dist/src/commands/re-export-scan-owner.js +0 -116
  517. package/dist/src/commands/re-export-scan.d.ts +0 -72
  518. package/dist/src/commands/re-export-scan.js +0 -265
  519. package/dist/src/commands/re-export-single.d.ts +0 -53
  520. package/dist/src/commands/re-export-single.js +0 -426
  521. package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
  522. package/dist/src/commands/re-export-stale-registrations.js +0 -106
  523. package/dist/src/commands/re-export-summary.d.ts +0 -44
  524. package/dist/src/commands/re-export-summary.js +0 -59
  525. package/dist/src/commands/re-export.d.ts +0 -8
  526. package/dist/src/commands/rebase/abort.d.ts +0 -7
  527. package/dist/src/commands/rebase/abort.js +0 -67
  528. package/dist/src/commands/rebase/confirm.d.ts +0 -42
  529. package/dist/src/commands/rebase/confirm.js +0 -36
  530. package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
  531. package/dist/src/commands/rebase/conflict-summary.js +0 -37
  532. package/dist/src/commands/rebase/continue.d.ts +0 -7
  533. package/dist/src/commands/rebase/continue.js +0 -119
  534. package/dist/src/commands/rebase/index.d.ts +0 -22
  535. package/dist/src/commands/rebase/index.js +0 -209
  536. package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
  537. package/dist/src/commands/rebase/patch-loop.js +0 -289
  538. package/dist/src/commands/rebase/summary.d.ts +0 -8
  539. package/dist/src/commands/rebase/summary.js +0 -47
  540. package/dist/src/commands/register.d.ts +0 -13
  541. package/dist/src/commands/reset.d.ts +0 -11
  542. package/dist/src/commands/resolve.d.ts +0 -36
  543. package/dist/src/commands/run.d.ts +0 -10
  544. package/dist/src/commands/setup-support.d.ts +0 -35
  545. package/dist/src/commands/setup-support.js +0 -386
  546. package/dist/src/commands/setup.d.ts +0 -11
  547. package/dist/src/commands/source.d.ts +0 -9
  548. package/dist/src/commands/source.js +0 -120
  549. package/dist/src/commands/status-check.d.ts +0 -87
  550. package/dist/src/commands/status-check.js +0 -161
  551. package/dist/src/commands/status-json.d.ts +0 -45
  552. package/dist/src/commands/status-json.js +0 -97
  553. package/dist/src/commands/status-output.d.ts +0 -23
  554. package/dist/src/commands/status-output.js +0 -231
  555. package/dist/src/commands/status-ownership.d.ts +0 -54
  556. package/dist/src/commands/status-ownership.js +0 -59
  557. package/dist/src/commands/status-scope.d.ts +0 -37
  558. package/dist/src/commands/status-scope.js +0 -54
  559. package/dist/src/commands/status.d.ts +0 -11
  560. package/dist/src/commands/test-appdir.d.ts +0 -6
  561. package/dist/src/commands/test-appdir.js +0 -29
  562. package/dist/src/commands/test-browser-preflight.d.ts +0 -28
  563. package/dist/src/commands/test-browser-preflight.js +0 -197
  564. package/dist/src/commands/test-build-furnace.d.ts +0 -21
  565. package/dist/src/commands/test-build-furnace.js +0 -53
  566. package/dist/src/commands/test-build-phase.d.ts +0 -34
  567. package/dist/src/commands/test-build-phase.js +0 -291
  568. package/dist/src/commands/test-checkjs.d.ts +0 -3
  569. package/dist/src/commands/test-checkjs.js +0 -35
  570. package/dist/src/commands/test-control-restore.d.ts +0 -40
  571. package/dist/src/commands/test-control-restore.js +0 -86
  572. package/dist/src/commands/test-diagnose.d.ts +0 -23
  573. package/dist/src/commands/test-diagnose.js +0 -317
  574. package/dist/src/commands/test-dispatch.d.ts +0 -39
  575. package/dist/src/commands/test-dispatch.js +0 -281
  576. package/dist/src/commands/test-furnace-reach.d.ts +0 -37
  577. package/dist/src/commands/test-furnace-reach.js +0 -132
  578. package/dist/src/commands/test-harness-env.d.ts +0 -23
  579. package/dist/src/commands/test-harness-env.js +0 -81
  580. package/dist/src/commands/test-harness-teardown.d.ts +0 -62
  581. package/dist/src/commands/test-harness-teardown.js +0 -128
  582. package/dist/src/commands/test-modes.d.ts +0 -57
  583. package/dist/src/commands/test-modes.js +0 -158
  584. package/dist/src/commands/test-multi-verdict.d.ts +0 -61
  585. package/dist/src/commands/test-multi-verdict.js +0 -112
  586. package/dist/src/commands/test-orchestrate.d.ts +0 -70
  587. package/dist/src/commands/test-orchestrate.js +0 -277
  588. package/dist/src/commands/test-perf-scope.d.ts +0 -50
  589. package/dist/src/commands/test-perf-scope.js +0 -138
  590. package/dist/src/commands/test-prelock.d.ts +0 -61
  591. package/dist/src/commands/test-prelock.js +0 -301
  592. package/dist/src/commands/test-register.d.ts +0 -4
  593. package/dist/src/commands/test-register.js +0 -181
  594. package/dist/src/commands/test-results.d.ts +0 -71
  595. package/dist/src/commands/test-results.js +0 -79
  596. package/dist/src/commands/test-run.d.ts +0 -89
  597. package/dist/src/commands/test-run.js +0 -251
  598. package/dist/src/commands/test-shards.d.ts +0 -114
  599. package/dist/src/commands/test-shards.js +0 -272
  600. package/dist/src/commands/test-stale-gate.d.ts +0 -56
  601. package/dist/src/commands/test-stale-gate.js +0 -208
  602. package/dist/src/commands/test-verdict.d.ts +0 -102
  603. package/dist/src/commands/test-verdict.js +0 -176
  604. package/dist/src/commands/test.d.ts +0 -22
  605. package/dist/src/commands/token-coverage.d.ts +0 -5
  606. package/dist/src/commands/token-coverage.js +0 -170
  607. package/dist/src/commands/token-lint.d.ts +0 -14
  608. package/dist/src/commands/token-lint.js +0 -151
  609. package/dist/src/commands/token-list.d.ts +0 -26
  610. package/dist/src/commands/token-list.js +0 -153
  611. package/dist/src/commands/token.d.ts +0 -14
  612. package/dist/src/commands/tree.d.ts +0 -19
  613. package/dist/src/commands/tree.js +0 -341
  614. package/dist/src/commands/typecheck-explain.d.ts +0 -13
  615. package/dist/src/commands/typecheck-explain.js +0 -100
  616. package/dist/src/commands/typecheck.d.ts +0 -61
  617. package/dist/src/commands/verify-scope.d.ts +0 -28
  618. package/dist/src/commands/verify-scope.js +0 -67
  619. package/dist/src/commands/verify.d.ts +0 -58
  620. package/dist/src/commands/watch.d.ts +0 -9
  621. package/dist/src/commands/wire.d.ts +0 -13
  622. package/dist/src/core/ast-utils.d.ts +0 -73
  623. package/dist/src/core/ast-utils.js +0 -105
  624. package/dist/src/core/brand-validation.d.ts +0 -7
  625. package/dist/src/core/brand-validation.js +0 -14
  626. package/dist/src/core/branding.d.ts +0 -86
  627. package/dist/src/core/branding.js +0 -371
  628. package/dist/src/core/browser-wire.d.ts +0 -48
  629. package/dist/src/core/browser-wire.js +0 -133
  630. package/dist/src/core/build-audit-platform.d.ts +0 -67
  631. package/dist/src/core/build-audit-platform.js +0 -373
  632. package/dist/src/core/build-audit-registration.d.ts +0 -80
  633. package/dist/src/core/build-audit-registration.js +0 -181
  634. package/dist/src/core/build-audit-resolve.d.ts +0 -78
  635. package/dist/src/core/build-audit-resolve.js +0 -240
  636. package/dist/src/core/build-audit-skip.d.ts +0 -57
  637. package/dist/src/core/build-audit-skip.js +0 -112
  638. package/dist/src/core/build-audit-transforms.d.ts +0 -23
  639. package/dist/src/core/build-audit-transforms.js +0 -92
  640. package/dist/src/core/build-audit.d.ts +0 -93
  641. package/dist/src/core/build-audit.js +0 -633
  642. package/dist/src/core/build-baseline-types.d.ts +0 -225
  643. package/dist/src/core/build-baseline-types.js +0 -10
  644. package/dist/src/core/build-baseline-validate.d.ts +0 -32
  645. package/dist/src/core/build-baseline-validate.js +0 -173
  646. package/dist/src/core/build-baseline.d.ts +0 -103
  647. package/dist/src/core/build-baseline.js +0 -261
  648. package/dist/src/core/build-jar-escalation.d.ts +0 -61
  649. package/dist/src/core/build-jar-escalation.js +0 -125
  650. package/dist/src/core/build-overwrite-guard.d.ts +0 -92
  651. package/dist/src/core/build-overwrite-guard.js +0 -235
  652. package/dist/src/core/build-prepare.d.ts +0 -83
  653. package/dist/src/core/build-prepare.js +0 -414
  654. package/dist/src/core/build-run-record.d.ts +0 -74
  655. package/dist/src/core/build-run-record.js +0 -136
  656. package/dist/src/core/checkjs-support-heads.d.ts +0 -41
  657. package/dist/src/core/checkjs-support-heads.js +0 -104
  658. package/dist/src/core/component-source-guard.d.ts +0 -20
  659. package/dist/src/core/component-source-guard.js +0 -68
  660. package/dist/src/core/config-mutate.d.ts +0 -16
  661. package/dist/src/core/config-mutate.js +0 -76
  662. package/dist/src/core/config-paths.d.ts +0 -16
  663. package/dist/src/core/config-paths.js +0 -106
  664. package/dist/src/core/config-state.d.ts +0 -16
  665. package/dist/src/core/config-state.js +0 -141
  666. package/dist/src/core/config-validate-build-audit.d.ts +0 -8
  667. package/dist/src/core/config-validate-build-audit.js +0 -80
  668. package/dist/src/core/config-validate-check.d.ts +0 -8
  669. package/dist/src/core/config-validate-check.js +0 -219
  670. package/dist/src/core/config-validate-file-size.d.ts +0 -15
  671. package/dist/src/core/config-validate-file-size.js +0 -154
  672. package/dist/src/core/config-validate-history.d.ts +0 -11
  673. package/dist/src/core/config-validate-history.js +0 -38
  674. package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
  675. package/dist/src/core/config-validate-patch-policy.js +0 -284
  676. package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
  677. package/dist/src/core/config-validate-test-toolchains.js +0 -133
  678. package/dist/src/core/config-validate-token-scales.d.ts +0 -9
  679. package/dist/src/core/config-validate-token-scales.js +0 -125
  680. package/dist/src/core/config-validate.d.ts +0 -11
  681. package/dist/src/core/config-validate.js +0 -509
  682. package/dist/src/core/config.d.ts +0 -92
  683. package/dist/src/core/config.js +0 -169
  684. package/dist/src/core/coverage-dispatch.d.ts +0 -24
  685. package/dist/src/core/coverage-dispatch.js +0 -44
  686. package/dist/src/core/coverage-extend.d.ts +0 -89
  687. package/dist/src/core/coverage-extend.js +0 -239
  688. package/dist/src/core/coverage-records.d.ts +0 -107
  689. package/dist/src/core/coverage-records.js +0 -383
  690. package/dist/src/core/destructive.d.ts +0 -144
  691. package/dist/src/core/destructive.js +0 -182
  692. package/dist/src/core/dev-profile.d.ts +0 -28
  693. package/dist/src/core/dev-profile.js +0 -58
  694. package/dist/src/core/diff-hunks.d.ts +0 -73
  695. package/dist/src/core/diff-hunks.js +0 -286
  696. package/dist/src/core/discard-baseline.d.ts +0 -60
  697. package/dist/src/core/discard-baseline.js +0 -247
  698. package/dist/src/core/display-state.d.ts +0 -50
  699. package/dist/src/core/display-state.js +0 -87
  700. package/dist/src/core/engine-changes.d.ts +0 -40
  701. package/dist/src/core/engine-changes.js +0 -95
  702. package/dist/src/core/engine-precondition.d.ts +0 -42
  703. package/dist/src/core/engine-precondition.js +0 -60
  704. package/dist/src/core/engine-session-lock.d.ts +0 -119
  705. package/dist/src/core/engine-session-lock.js +0 -374
  706. package/dist/src/core/engine-write-boundary.d.ts +0 -5
  707. package/dist/src/core/engine-write-boundary.js +0 -41
  708. package/dist/src/core/export-moved-code-shape.d.ts +0 -98
  709. package/dist/src/core/export-moved-code-shape.js +0 -220
  710. package/dist/src/core/file-lock-owner.d.ts +0 -103
  711. package/dist/src/core/file-lock-owner.js +0 -259
  712. package/dist/src/core/file-lock-queue.d.ts +0 -67
  713. package/dist/src/core/file-lock-queue.js +0 -219
  714. package/dist/src/core/file-lock-shared.d.ts +0 -57
  715. package/dist/src/core/file-lock-shared.js +0 -117
  716. package/dist/src/core/file-lock.d.ts +0 -143
  717. package/dist/src/core/file-lock.js +0 -531
  718. package/dist/src/core/firefox-archive.d.ts +0 -45
  719. package/dist/src/core/firefox-archive.js +0 -96
  720. package/dist/src/core/firefox-cache.d.ts +0 -30
  721. package/dist/src/core/firefox-cache.js +0 -248
  722. package/dist/src/core/firefox-download.d.ts +0 -30
  723. package/dist/src/core/firefox-download.js +0 -152
  724. package/dist/src/core/firefox-extract.d.ts +0 -42
  725. package/dist/src/core/firefox-extract.js +0 -248
  726. package/dist/src/core/firefox-ignorefile.d.ts +0 -17
  727. package/dist/src/core/firefox-ignorefile.js +0 -30
  728. package/dist/src/core/firefox.d.ts +0 -66
  729. package/dist/src/core/firefox.js +0 -121
  730. package/dist/src/core/forward-registrations.d.ts +0 -33
  731. package/dist/src/core/forward-registrations.js +0 -16
  732. package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
  733. package/dist/src/core/furnace-apply-dry-run.js +0 -99
  734. package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
  735. package/dist/src/core/furnace-apply-ftl.js +0 -210
  736. package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
  737. package/dist/src/core/furnace-apply-helpers.js +0 -436
  738. package/dist/src/core/furnace-apply-output.d.ts +0 -36
  739. package/dist/src/core/furnace-apply-output.js +0 -111
  740. package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
  741. package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
  742. package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
  743. package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
  744. package/dist/src/core/furnace-apply.d.ts +0 -49
  745. package/dist/src/core/furnace-apply.js +0 -465
  746. package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
  747. package/dist/src/core/furnace-checksum-utils.js +0 -54
  748. package/dist/src/core/furnace-composed-source.d.ts +0 -76
  749. package/dist/src/core/furnace-composed-source.js +0 -167
  750. package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
  751. package/dist/src/core/furnace-config-array-utils.js +0 -26
  752. package/dist/src/core/furnace-config-custom.d.ts +0 -15
  753. package/dist/src/core/furnace-config-custom.js +0 -73
  754. package/dist/src/core/furnace-config-order.d.ts +0 -8
  755. package/dist/src/core/furnace-config-order.js +0 -90
  756. package/dist/src/core/furnace-config-tokens.d.ts +0 -17
  757. package/dist/src/core/furnace-config-tokens.js +0 -42
  758. package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
  759. package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
  760. package/dist/src/core/furnace-config-validate.d.ts +0 -32
  761. package/dist/src/core/furnace-config-validate.js +0 -167
  762. package/dist/src/core/furnace-config.d.ts +0 -139
  763. package/dist/src/core/furnace-config.js +0 -511
  764. package/dist/src/core/furnace-constants.d.ts +0 -81
  765. package/dist/src/core/furnace-constants.js +0 -125
  766. package/dist/src/core/furnace-css-fragments.d.ts +0 -96
  767. package/dist/src/core/furnace-css-fragments.js +0 -279
  768. package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
  769. package/dist/src/core/furnace-deploy-owner.js +0 -116
  770. package/dist/src/core/furnace-dir-entry.d.ts +0 -20
  771. package/dist/src/core/furnace-dir-entry.js +0 -21
  772. package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
  773. package/dist/src/core/furnace-fragment-includers.js +0 -122
  774. package/dist/src/core/furnace-graph-utils.d.ts +0 -11
  775. package/dist/src/core/furnace-graph-utils.js +0 -93
  776. package/dist/src/core/furnace-jsconfig.d.ts +0 -87
  777. package/dist/src/core/furnace-jsconfig.js +0 -248
  778. package/dist/src/core/furnace-marker.d.ts +0 -15
  779. package/dist/src/core/furnace-marker.js +0 -21
  780. package/dist/src/core/furnace-operation.d.ts +0 -195
  781. package/dist/src/core/furnace-operation.js +0 -444
  782. package/dist/src/core/furnace-precondition.d.ts +0 -61
  783. package/dist/src/core/furnace-precondition.js +0 -67
  784. package/dist/src/core/furnace-refresh.d.ts +0 -28
  785. package/dist/src/core/furnace-refresh.js +0 -125
  786. package/dist/src/core/furnace-registration-ast.d.ts +0 -53
  787. package/dist/src/core/furnace-registration-ast.js +0 -402
  788. package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
  789. package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
  790. package/dist/src/core/furnace-registration-remove.d.ts +0 -56
  791. package/dist/src/core/furnace-registration-remove.js +0 -260
  792. package/dist/src/core/furnace-registration-rename.d.ts +0 -26
  793. package/dist/src/core/furnace-registration-rename.js +0 -77
  794. package/dist/src/core/furnace-registration-validate.d.ts +0 -53
  795. package/dist/src/core/furnace-registration-validate.js +0 -110
  796. package/dist/src/core/furnace-registration.d.ts +0 -112
  797. package/dist/src/core/furnace-registration.js +0 -348
  798. package/dist/src/core/furnace-rollback.d.ts +0 -48
  799. package/dist/src/core/furnace-rollback.js +0 -170
  800. package/dist/src/core/furnace-scanner.d.ts +0 -47
  801. package/dist/src/core/furnace-scanner.js +0 -236
  802. package/dist/src/core/furnace-stale-export.d.ts +0 -60
  803. package/dist/src/core/furnace-stale-export.js +0 -125
  804. package/dist/src/core/furnace-staleness.d.ts +0 -24
  805. package/dist/src/core/furnace-staleness.js +0 -67
  806. package/dist/src/core/furnace-state-persist.d.ts +0 -68
  807. package/dist/src/core/furnace-state-persist.js +0 -116
  808. package/dist/src/core/furnace-step-errors.d.ts +0 -23
  809. package/dist/src/core/furnace-step-errors.js +0 -25
  810. package/dist/src/core/furnace-stories.d.ts +0 -37
  811. package/dist/src/core/furnace-stories.js +0 -186
  812. package/dist/src/core/furnace-tag-map.d.ts +0 -47
  813. package/dist/src/core/furnace-tag-map.js +0 -182
  814. package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
  815. package/dist/src/core/furnace-validate-accessibility.js +0 -417
  816. package/dist/src/core/furnace-validate-checks.d.ts +0 -4
  817. package/dist/src/core/furnace-validate-checks.js +0 -6
  818. package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
  819. package/dist/src/core/furnace-validate-compatibility.js +0 -295
  820. package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
  821. package/dist/src/core/furnace-validate-exceptions.js +0 -98
  822. package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
  823. package/dist/src/core/furnace-validate-helpers.js +0 -4
  824. package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
  825. package/dist/src/core/furnace-validate-icon-button.js +0 -78
  826. package/dist/src/core/furnace-validate-registration.d.ts +0 -67
  827. package/dist/src/core/furnace-validate-registration.js +0 -487
  828. package/dist/src/core/furnace-validate-structure.d.ts +0 -22
  829. package/dist/src/core/furnace-validate-structure.js +0 -122
  830. package/dist/src/core/furnace-validate.d.ts +0 -41
  831. package/dist/src/core/furnace-validate.js +0 -331
  832. package/dist/src/core/furnace-version-drift.d.ts +0 -57
  833. package/dist/src/core/furnace-version-drift.js +0 -102
  834. package/dist/src/core/gecko-dom-types.d.ts +0 -2
  835. package/dist/src/core/gecko-dom-types.js +0 -17
  836. package/dist/src/core/git-base.d.ts +0 -101
  837. package/dist/src/core/git-base.js +0 -162
  838. package/dist/src/core/git-diff-new-file.d.ts +0 -40
  839. package/dist/src/core/git-diff-new-file.js +0 -118
  840. package/dist/src/core/git-diff.d.ts +0 -82
  841. package/dist/src/core/git-diff.js +0 -539
  842. package/dist/src/core/git-file-ops.d.ts +0 -108
  843. package/dist/src/core/git-file-ops.js +0 -280
  844. package/dist/src/core/git-readonly-index.d.ts +0 -91
  845. package/dist/src/core/git-readonly-index.js +0 -177
  846. package/dist/src/core/git-status.d.ts +0 -84
  847. package/dist/src/core/git-status.js +0 -208
  848. package/dist/src/core/git.d.ts +0 -114
  849. package/dist/src/core/git.js +0 -540
  850. package/dist/src/core/harness-helper-pids.d.ts +0 -98
  851. package/dist/src/core/harness-helper-pids.js +0 -240
  852. package/dist/src/core/harness-orphans.d.ts +0 -118
  853. package/dist/src/core/harness-orphans.js +0 -268
  854. package/dist/src/core/harness-port-fallback.d.ts +0 -60
  855. package/dist/src/core/harness-port-fallback.js +0 -96
  856. package/dist/src/core/harness-port-reservation.d.ts +0 -60
  857. package/dist/src/core/harness-port-reservation.js +0 -122
  858. package/dist/src/core/history-log-file.d.ts +0 -61
  859. package/dist/src/core/history-log-file.js +0 -164
  860. package/dist/src/core/history-log.d.ts +0 -20
  861. package/dist/src/core/history-log.js +0 -30
  862. package/dist/src/core/json-preserving-edit.d.ts +0 -22
  863. package/dist/src/core/json-preserving-edit.js +0 -199
  864. package/dist/src/core/launchable-build.d.ts +0 -39
  865. package/dist/src/core/launchable-build.js +0 -85
  866. package/dist/src/core/license-headers.d.ts +0 -103
  867. package/dist/src/core/license-headers.js +0 -328
  868. package/dist/src/core/line-prefixer.d.ts +0 -18
  869. package/dist/src/core/line-prefixer.js +0 -34
  870. package/dist/src/core/lit-template-regions.d.ts +0 -4
  871. package/dist/src/core/lit-template-regions.js +0 -50
  872. package/dist/src/core/mach-build-artifacts.d.ts +0 -176
  873. package/dist/src/core/mach-build-artifacts.js +0 -436
  874. package/dist/src/core/mach-error-hints.d.ts +0 -24
  875. package/dist/src/core/mach-error-hints.js +0 -135
  876. package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
  877. package/dist/src/core/mach-known-noise-filter.js +0 -257
  878. package/dist/src/core/mach-mozconfig.d.ts +0 -57
  879. package/dist/src/core/mach-mozconfig.js +0 -166
  880. package/dist/src/core/mach-python.d.ts +0 -19
  881. package/dist/src/core/mach-python.js +0 -131
  882. package/dist/src/core/mach-resource-shim.d.ts +0 -107
  883. package/dist/src/core/mach-resource-shim.js +0 -640
  884. package/dist/src/core/mach.d.ts +0 -284
  885. package/dist/src/core/mach.js +0 -445
  886. package/dist/src/core/marionette-port.d.ts +0 -153
  887. package/dist/src/core/marionette-port.js +0 -474
  888. package/dist/src/core/marionette-preflight.d.ts +0 -58
  889. package/dist/src/core/marionette-preflight.js +0 -332
  890. package/dist/src/core/markdown-table.d.ts +0 -104
  891. package/dist/src/core/markdown-table.js +0 -265
  892. package/dist/src/core/mochitest-server-port.d.ts +0 -81
  893. package/dist/src/core/mochitest-server-port.js +0 -175
  894. package/dist/src/core/module-resolution-preflight.d.ts +0 -65
  895. package/dist/src/core/module-resolution-preflight.js +0 -171
  896. package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
  897. package/dist/src/core/moz-manifest-helpers.js +0 -163
  898. package/dist/src/core/moz-manifest-register.d.ts +0 -19
  899. package/dist/src/core/moz-manifest-register.js +0 -51
  900. package/dist/src/core/moz-manifest-rules.d.ts +0 -58
  901. package/dist/src/core/moz-manifest-rules.js +0 -264
  902. package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
  903. package/dist/src/core/moz-manifest-tokenizers.js +0 -108
  904. package/dist/src/core/negative-control-compiled.d.ts +0 -46
  905. package/dist/src/core/negative-control-compiled.js +0 -109
  906. package/dist/src/core/negative-control-diff.d.ts +0 -51
  907. package/dist/src/core/negative-control-diff.js +0 -167
  908. package/dist/src/core/negative-control.d.ts +0 -150
  909. package/dist/src/core/negative-control.js +0 -399
  910. package/dist/src/core/objdir-install-manifests.d.ts +0 -73
  911. package/dist/src/core/objdir-install-manifests.js +0 -226
  912. package/dist/src/core/objdir-maintenance.d.ts +0 -10
  913. package/dist/src/core/objdir-maintenance.js +0 -167
  914. package/dist/src/core/ownership-table.d.ts +0 -53
  915. package/dist/src/core/ownership-table.js +0 -159
  916. package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
  917. package/dist/src/core/parent-exit-watchdog.js +0 -69
  918. package/dist/src/core/park-store.d.ts +0 -63
  919. package/dist/src/core/park-store.js +0 -216
  920. package/dist/src/core/parser-fallback.d.ts +0 -50
  921. package/dist/src/core/parser-fallback.js +0 -61
  922. package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
  923. package/dist/src/core/patch-apply-fuzz.js +0 -125
  924. package/dist/src/core/patch-apply.d.ts +0 -88
  925. package/dist/src/core/patch-apply.js +0 -435
  926. package/dist/src/core/patch-export-coverage.d.ts +0 -49
  927. package/dist/src/core/patch-export-coverage.js +0 -73
  928. package/dist/src/core/patch-export-metadata.d.ts +0 -46
  929. package/dist/src/core/patch-export-metadata.js +0 -47
  930. package/dist/src/core/patch-export-update.d.ts +0 -55
  931. package/dist/src/core/patch-export-update.js +0 -95
  932. package/dist/src/core/patch-export.d.ts +0 -175
  933. package/dist/src/core/patch-export.js +0 -312
  934. package/dist/src/core/patch-files.d.ts +0 -17
  935. package/dist/src/core/patch-files.js +0 -59
  936. package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
  937. package/dist/src/core/patch-identifier-suggest.js +0 -135
  938. package/dist/src/core/patch-lint-binary.d.ts +0 -45
  939. package/dist/src/core/patch-lint-binary.js +0 -39
  940. package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
  941. package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
  942. package/dist/src/core/patch-lint-cache.d.ts +0 -79
  943. package/dist/src/core/patch-lint-cache.js +0 -247
  944. package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
  945. package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
  946. package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
  947. package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
  948. package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
  949. package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
  950. package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
  951. package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
  952. package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
  953. package/dist/src/core/patch-lint-checkjs.js +0 -563
  954. package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
  955. package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
  956. package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
  957. package/dist/src/core/patch-lint-code-lines.js +0 -105
  958. package/dist/src/core/patch-lint-creators.d.ts +0 -26
  959. package/dist/src/core/patch-lint-creators.js +0 -45
  960. package/dist/src/core/patch-lint-cross.d.ts +0 -232
  961. package/dist/src/core/patch-lint-cross.js +0 -590
  962. package/dist/src/core/patch-lint-css.d.ts +0 -27
  963. package/dist/src/core/patch-lint-css.js +0 -228
  964. package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
  965. package/dist/src/core/patch-lint-diff-tag.js +0 -105
  966. package/dist/src/core/patch-lint-diff.d.ts +0 -42
  967. package/dist/src/core/patch-lint-diff.js +0 -100
  968. package/dist/src/core/patch-lint-file-size.d.ts +0 -57
  969. package/dist/src/core/patch-lint-file-size.js +0 -62
  970. package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
  971. package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
  972. package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
  973. package/dist/src/core/patch-lint-forward-registration.js +0 -266
  974. package/dist/src/core/patch-lint-ignore.d.ts +0 -196
  975. package/dist/src/core/patch-lint-ignore.js +0 -429
  976. package/dist/src/core/patch-lint-imports.d.ts +0 -9
  977. package/dist/src/core/patch-lint-imports.js +0 -90
  978. package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
  979. package/dist/src/core/patch-lint-jsdoc.js +0 -471
  980. package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
  981. package/dist/src/core/patch-lint-module-registration.js +0 -97
  982. package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
  983. package/dist/src/core/patch-lint-mozbuild.js +0 -192
  984. package/dist/src/core/patch-lint-observer.d.ts +0 -37
  985. package/dist/src/core/patch-lint-observer.js +0 -167
  986. package/dist/src/core/patch-lint-ownership.d.ts +0 -74
  987. package/dist/src/core/patch-lint-ownership.js +0 -125
  988. package/dist/src/core/patch-lint-prettier.d.ts +0 -34
  989. package/dist/src/core/patch-lint-prettier.js +0 -124
  990. package/dist/src/core/patch-lint-projection.d.ts +0 -25
  991. package/dist/src/core/patch-lint-projection.js +0 -43
  992. package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
  993. package/dist/src/core/patch-lint-queue-types.js +0 -12
  994. package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
  995. package/dist/src/core/patch-lint-size-thresholds.js +0 -110
  996. package/dist/src/core/patch-lint-size.d.ts +0 -117
  997. package/dist/src/core/patch-lint-size.js +0 -331
  998. package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
  999. package/dist/src/core/patch-lint-staged-registration.js +0 -128
  1000. package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
  1001. package/dist/src/core/patch-lint-token-scale.js +0 -304
  1002. package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
  1003. package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
  1004. package/dist/src/core/patch-lint.d.ts +0 -206
  1005. package/dist/src/core/patch-lint.js +0 -533
  1006. package/dist/src/core/patch-lock.d.ts +0 -40
  1007. package/dist/src/core/patch-lock.js +0 -129
  1008. package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
  1009. package/dist/src/core/patch-manifest-consistency.js +0 -256
  1010. package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
  1011. package/dist/src/core/patch-manifest-files-affected.js +0 -77
  1012. package/dist/src/core/patch-manifest-io.d.ts +0 -199
  1013. package/dist/src/core/patch-manifest-io.js +0 -556
  1014. package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
  1015. package/dist/src/core/patch-manifest-key-order.js +0 -60
  1016. package/dist/src/core/patch-manifest-query.d.ts +0 -55
  1017. package/dist/src/core/patch-manifest-query.js +0 -139
  1018. package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
  1019. package/dist/src/core/patch-manifest-resolve.js +0 -35
  1020. package/dist/src/core/patch-manifest-stage.d.ts +0 -46
  1021. package/dist/src/core/patch-manifest-stage.js +0 -96
  1022. package/dist/src/core/patch-manifest-validate.d.ts +0 -20
  1023. package/dist/src/core/patch-manifest-validate.js +0 -240
  1024. package/dist/src/core/patch-manifest.d.ts +0 -12
  1025. package/dist/src/core/patch-manifest.js +0 -13
  1026. package/dist/src/core/patch-order-legal.d.ts +0 -26
  1027. package/dist/src/core/patch-order-legal.js +0 -88
  1028. package/dist/src/core/patch-parse.d.ts +0 -176
  1029. package/dist/src/core/patch-parse.js +0 -416
  1030. package/dist/src/core/patch-policy-content.d.ts +0 -40
  1031. package/dist/src/core/patch-policy-content.js +0 -219
  1032. package/dist/src/core/patch-policy.d.ts +0 -80
  1033. package/dist/src/core/patch-policy.js +0 -394
  1034. package/dist/src/core/patch-registration-refs.d.ts +0 -41
  1035. package/dist/src/core/patch-registration-refs.js +0 -107
  1036. package/dist/src/core/patch-retired.d.ts +0 -57
  1037. package/dist/src/core/patch-retired.js +0 -92
  1038. package/dist/src/core/patch-source-metadata.d.ts +0 -6
  1039. package/dist/src/core/patch-source-metadata.js +0 -12
  1040. package/dist/src/core/patch-subset.d.ts +0 -18
  1041. package/dist/src/core/patch-subset.js +0 -67
  1042. package/dist/src/core/patch-transform.d.ts +0 -61
  1043. package/dist/src/core/patch-transform.js +0 -198
  1044. package/dist/src/core/preflight-wait.d.ts +0 -22
  1045. package/dist/src/core/preflight-wait.js +0 -62
  1046. package/dist/src/core/process-cpu-time.d.ts +0 -12
  1047. package/dist/src/core/process-cpu-time.js +0 -52
  1048. package/dist/src/core/process-owner.d.ts +0 -9
  1049. package/dist/src/core/process-owner.js +0 -43
  1050. package/dist/src/core/rebase-dry-run.d.ts +0 -48
  1051. package/dist/src/core/rebase-dry-run.js +0 -105
  1052. package/dist/src/core/rebase-from-version.d.ts +0 -46
  1053. package/dist/src/core/rebase-from-version.js +0 -71
  1054. package/dist/src/core/rebase-session.d.ts +0 -100
  1055. package/dist/src/core/rebase-session.js +0 -174
  1056. package/dist/src/core/register-browser-content.d.ts +0 -11
  1057. package/dist/src/core/register-browser-content.js +0 -52
  1058. package/dist/src/core/register-browser-test.d.ts +0 -18
  1059. package/dist/src/core/register-browser-test.js +0 -66
  1060. package/dist/src/core/register-module.d.ts +0 -11
  1061. package/dist/src/core/register-module.js +0 -56
  1062. package/dist/src/core/register-result.d.ts +0 -30
  1063. package/dist/src/core/register-result.js +0 -8
  1064. package/dist/src/core/register-scaffold.d.ts +0 -55
  1065. package/dist/src/core/register-scaffold.js +0 -146
  1066. package/dist/src/core/register-shared-css.d.ts +0 -36
  1067. package/dist/src/core/register-shared-css.js +0 -112
  1068. package/dist/src/core/register-xpcshell-test.d.ts +0 -50
  1069. package/dist/src/core/register-xpcshell-test.js +0 -143
  1070. package/dist/src/core/run-log-redact.d.ts +0 -38
  1071. package/dist/src/core/run-log-redact.js +0 -69
  1072. package/dist/src/core/run-log.d.ts +0 -97
  1073. package/dist/src/core/run-log.js +0 -334
  1074. package/dist/src/core/run-profile.d.ts +0 -57
  1075. package/dist/src/core/run-profile.js +0 -137
  1076. package/dist/src/core/shared-ftl.d.ts +0 -28
  1077. package/dist/src/core/shared-ftl.js +0 -49
  1078. package/dist/src/core/signal-critical.d.ts +0 -38
  1079. package/dist/src/core/signal-critical.js +0 -62
  1080. package/dist/src/core/smoke-patterns.d.ts +0 -81
  1081. package/dist/src/core/smoke-patterns.js +0 -176
  1082. package/dist/src/core/state-file.d.ts +0 -60
  1083. package/dist/src/core/state-file.js +0 -71
  1084. package/dist/src/core/status-binary.d.ts +0 -62
  1085. package/dist/src/core/status-binary.js +0 -133
  1086. package/dist/src/core/status-classify.d.ts +0 -96
  1087. package/dist/src/core/status-classify.js +0 -244
  1088. package/dist/src/core/test-changed-prefs.d.ts +0 -30
  1089. package/dist/src/core/test-changed-prefs.js +0 -93
  1090. package/dist/src/core/test-harness-crash.d.ts +0 -251
  1091. package/dist/src/core/test-harness-crash.js +0 -780
  1092. package/dist/src/core/test-harness-infra.d.ts +0 -32
  1093. package/dist/src/core/test-harness-infra.js +0 -69
  1094. package/dist/src/core/test-harness-output.d.ts +0 -45
  1095. package/dist/src/core/test-harness-output.js +0 -119
  1096. package/dist/src/core/test-harness-signature.d.ts +0 -57
  1097. package/dist/src/core/test-harness-signature.js +0 -35
  1098. package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
  1099. package/dist/src/core/test-harness-verdict-notes.js +0 -48
  1100. package/dist/src/core/test-host-state.d.ts +0 -14
  1101. package/dist/src/core/test-host-state.js +0 -80
  1102. package/dist/src/core/test-path-scope.d.ts +0 -59
  1103. package/dist/src/core/test-path-scope.js +0 -147
  1104. package/dist/src/core/test-profile-files.d.ts +0 -17
  1105. package/dist/src/core/test-profile-files.js +0 -75
  1106. package/dist/src/core/test-raw-log.d.ts +0 -66
  1107. package/dist/src/core/test-raw-log.js +0 -122
  1108. package/dist/src/core/test-run-completeness.d.ts +0 -97
  1109. package/dist/src/core/test-run-completeness.js +0 -191
  1110. package/dist/src/core/test-stale-check.d.ts +0 -213
  1111. package/dist/src/core/test-stale-check.js +0 -396
  1112. package/dist/src/core/test-stale-exempt.d.ts +0 -40
  1113. package/dist/src/core/test-stale-exempt.js +0 -70
  1114. package/dist/src/core/test-stale-symlink.d.ts +0 -12
  1115. package/dist/src/core/test-stale-symlink.js +0 -39
  1116. package/dist/src/core/test-stall-triage.d.ts +0 -51
  1117. package/dist/src/core/test-stall-triage.js +0 -142
  1118. package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
  1119. package/dist/src/core/test-xpcshell-retry.js +0 -31
  1120. package/dist/src/core/token-category.d.ts +0 -54
  1121. package/dist/src/core/token-category.js +0 -299
  1122. package/dist/src/core/token-coverage.d.ts +0 -12
  1123. package/dist/src/core/token-coverage.js +0 -96
  1124. package/dist/src/core/token-dark-mode.d.ts +0 -64
  1125. package/dist/src/core/token-dark-mode.js +0 -186
  1126. package/dist/src/core/token-docs.d.ts +0 -34
  1127. package/dist/src/core/token-docs.js +0 -102
  1128. package/dist/src/core/token-inventory.d.ts +0 -56
  1129. package/dist/src/core/token-inventory.js +0 -114
  1130. package/dist/src/core/token-lint.d.ts +0 -53
  1131. package/dist/src/core/token-lint.js +0 -131
  1132. package/dist/src/core/token-manager.d.ts +0 -87
  1133. package/dist/src/core/token-manager.js +0 -407
  1134. package/dist/src/core/token-scaffold.d.ts +0 -36
  1135. package/dist/src/core/token-scaffold.js +0 -73
  1136. package/dist/src/core/token-sibling-sheets.d.ts +0 -46
  1137. package/dist/src/core/token-sibling-sheets.js +0 -119
  1138. package/dist/src/core/token-variant.d.ts +0 -90
  1139. package/dist/src/core/token-variant.js +0 -327
  1140. package/dist/src/core/toolchain-preflight.d.ts +0 -90
  1141. package/dist/src/core/toolchain-preflight.js +0 -251
  1142. package/dist/src/core/tree-cow.d.ts +0 -16
  1143. package/dist/src/core/tree-cow.js +0 -71
  1144. package/dist/src/core/tree-guard.d.ts +0 -35
  1145. package/dist/src/core/tree-guard.js +0 -194
  1146. package/dist/src/core/tree-store.d.ts +0 -143
  1147. package/dist/src/core/tree-store.js +0 -478
  1148. package/dist/src/core/typecheck-explain.d.ts +0 -93
  1149. package/dist/src/core/typecheck-explain.js +0 -213
  1150. package/dist/src/core/typecheck-shim.d.ts +0 -90
  1151. package/dist/src/core/typecheck-shim.js +0 -508
  1152. package/dist/src/core/typecheck.d.ts +0 -97
  1153. package/dist/src/core/typecheck.js +0 -457
  1154. package/dist/src/core/wire-destroy.d.ts +0 -25
  1155. package/dist/src/core/wire-destroy.js +0 -126
  1156. package/dist/src/core/wire-dom-fragment.d.ts +0 -44
  1157. package/dist/src/core/wire-dom-fragment.js +0 -139
  1158. package/dist/src/core/wire-init.d.ts +0 -28
  1159. package/dist/src/core/wire-init.js +0 -219
  1160. package/dist/src/core/wire-subscript.d.ts +0 -23
  1161. package/dist/src/core/wire-subscript.js +0 -145
  1162. package/dist/src/core/wire-utils.d.ts +0 -149
  1163. package/dist/src/core/wire-utils.js +0 -338
  1164. package/dist/src/core/xpcshell-appdir.d.ts +0 -157
  1165. package/dist/src/core/xpcshell-appdir.js +0 -299
  1166. package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
  1167. package/dist/src/core/xpcshell-profile-dir.js +0 -45
  1168. package/dist/src/errors/base.d.ts +0 -217
  1169. package/dist/src/errors/base.js +0 -279
  1170. package/dist/src/errors/build.d.ts +0 -92
  1171. package/dist/src/errors/build.js +0 -166
  1172. package/dist/src/errors/codes.d.ts +0 -74
  1173. package/dist/src/errors/codes.js +0 -74
  1174. package/dist/src/errors/config.d.ts +0 -17
  1175. package/dist/src/errors/config.js +0 -39
  1176. package/dist/src/errors/download.d.ts +0 -66
  1177. package/dist/src/errors/download.js +0 -160
  1178. package/dist/src/errors/furnace.d.ts +0 -20
  1179. package/dist/src/errors/furnace.js +0 -28
  1180. package/dist/src/errors/git.d.ts +0 -65
  1181. package/dist/src/errors/git.js +0 -140
  1182. package/dist/src/errors/patch.d.ts +0 -27
  1183. package/dist/src/errors/patch.js +0 -52
  1184. package/dist/src/errors/rebase.d.ts +0 -42
  1185. package/dist/src/errors/rebase.js +0 -71
  1186. package/dist/src/errors/run.d.ts +0 -16
  1187. package/dist/src/errors/run.js +0 -22
  1188. package/dist/src/index.d.ts +0 -42
  1189. package/dist/src/index.js +0 -32
  1190. package/dist/src/types/cli.d.ts +0 -14
  1191. package/dist/src/types/commands/index.d.ts +0 -6
  1192. package/dist/src/types/commands/index.js +0 -5
  1193. package/dist/src/types/commands/options.d.ts +0 -1372
  1194. package/dist/src/types/commands/options.js +0 -5
  1195. package/dist/src/types/commands/patches.d.ts +0 -352
  1196. package/dist/src/types/commands/patches.js +0 -5
  1197. package/dist/src/types/commands/project.d.ts +0 -51
  1198. package/dist/src/types/commands/project.js +0 -5
  1199. package/dist/src/types/config.d.ts +0 -732
  1200. package/dist/src/types/config.js +0 -15
  1201. package/dist/src/types/furnace.d.ts +0 -422
  1202. package/dist/src/types/furnace.js +0 -26
  1203. package/dist/src/types/index.d.ts +0 -5
  1204. package/dist/src/types/index.js +0 -5
  1205. package/dist/src/types/json.d.ts +0 -22
  1206. package/dist/src/types/json.js +0 -11
  1207. package/dist/src/types/typecheck.d.ts +0 -51
  1208. package/dist/src/types/typecheck.js +0 -14
  1209. package/dist/src/utils/assert.d.ts +0 -34
  1210. package/dist/src/utils/assert.js +0 -61
  1211. package/dist/src/utils/build-info.d.ts +0 -30
  1212. package/dist/src/utils/build-info.js +0 -99
  1213. package/dist/src/utils/child-env.d.ts +0 -28
  1214. package/dist/src/utils/child-env.js +0 -27
  1215. package/dist/src/utils/concurrency.d.ts +0 -8
  1216. package/dist/src/utils/concurrency.js +0 -32
  1217. package/dist/src/utils/elapsed.d.ts +0 -2
  1218. package/dist/src/utils/elapsed.js +0 -23
  1219. package/dist/src/utils/errors.d.ts +0 -39
  1220. package/dist/src/utils/errors.js +0 -67
  1221. package/dist/src/utils/fs.d.ts +0 -113
  1222. package/dist/src/utils/fs.js +0 -337
  1223. package/dist/src/utils/hash.d.ts +0 -12
  1224. package/dist/src/utils/hash.js +0 -16
  1225. package/dist/src/utils/line-dispatch.d.ts +0 -15
  1226. package/dist/src/utils/line-dispatch.js +0 -48
  1227. package/dist/src/utils/logger.d.ts +0 -109
  1228. package/dist/src/utils/logger.js +0 -270
  1229. package/dist/src/utils/machine-output.d.ts +0 -12
  1230. package/dist/src/utils/machine-output.js +0 -33
  1231. package/dist/src/utils/options.d.ts +0 -155
  1232. package/dist/src/utils/options.js +0 -312
  1233. package/dist/src/utils/package-root.d.ts +0 -21
  1234. package/dist/src/utils/package-root.js +0 -70
  1235. package/dist/src/utils/parse.d.ts +0 -117
  1236. package/dist/src/utils/parse.js +0 -214
  1237. package/dist/src/utils/path-glob.d.ts +0 -15
  1238. package/dist/src/utils/path-glob.js +0 -47
  1239. package/dist/src/utils/paths.d.ts +0 -31
  1240. package/dist/src/utils/paths.js +0 -80
  1241. package/dist/src/utils/platform.d.ts +0 -9
  1242. package/dist/src/utils/platform.js +0 -14
  1243. package/dist/src/utils/process-group.d.ts +0 -42
  1244. package/dist/src/utils/process-group.js +0 -190
  1245. package/dist/src/utils/process-input.d.ts +0 -27
  1246. package/dist/src/utils/process-input.js +0 -46
  1247. package/dist/src/utils/process.d.ts +0 -293
  1248. package/dist/src/utils/process.js +0 -593
  1249. package/dist/src/utils/ps-duration.d.ts +0 -31
  1250. package/dist/src/utils/ps-duration.js +0 -70
  1251. package/dist/src/utils/regex.d.ts +0 -39
  1252. package/dist/src/utils/regex.js +0 -109
  1253. package/dist/src/utils/sleep.d.ts +0 -25
  1254. package/dist/src/utils/sleep.js +0 -30
  1255. package/dist/src/utils/stdio-drain.d.ts +0 -28
  1256. package/dist/src/utils/stdio-drain.js +0 -54
  1257. package/dist/src/utils/validation.d.ts +0 -182
  1258. package/dist/src/utils/validation.js +0 -394
  1259. package/docs/lifecycle-invariants.md +0 -523
  1260. package/docs/run-logs.md +0 -122
  1261. package/docs/verification-trees.md +0 -49
  1262. /package/dist/src/{types/cli.js → cli/context.js} +0 -0
@@ -0,0 +1,157 @@
1
+ import { ExitCode, FireForgeError } from '../kernel/errors.js';
2
+ import { queueStatus, verifyQueue } from '../queue/index.js';
3
+ import { sourceStatus, verifySource } from '../source/index.js';
4
+ import { componentGroups } from './changes.js';
5
+ import { pinnedPristine, requireEngine } from './pristine.js';
6
+ const PENDING = {
7
+ modified: (path) => ({
8
+ code: 'unexported',
9
+ message: 'edited since its patch was written',
10
+ hint: `fireforge re-export, or fireforge discard ${path}`,
11
+ }),
12
+ unmanaged: (path) => ({
13
+ code: 'unmanaged',
14
+ message: 'changed, and no patch holds it',
15
+ hint: `fireforge export ${path}, or fireforge discard ${path}`,
16
+ }),
17
+ unapplied: () => ({
18
+ code: 'unapplied',
19
+ message: 'the queue changes it, and the engine holds the upstream state',
20
+ hint: 'fireforge import',
21
+ }),
22
+ outdated: () => ({
23
+ code: 'outdated',
24
+ message: 'the engine still holds what an earlier import wrote, and the queue has moved on',
25
+ hint: 'fireforge import',
26
+ }),
27
+ missing: (path) => ({
28
+ code: 'missing',
29
+ message: 'absent from the engine, where the queue leaves a file',
30
+ hint: `fireforge discard ${path}`,
31
+ }),
32
+ };
33
+ /**
34
+ * The owned changes and anything unaccounted for: in patch mode edits no
35
+ * patch holds and a queue that is not applied; in source mode undeclared
36
+ * upstream edits and stale records.
37
+ *
38
+ * @param project - The project
39
+ */
40
+ export async function status(project) {
41
+ if (project.mode === 'source') {
42
+ const report = await sourceStatus(project, await pinnedPristine(project));
43
+ return {
44
+ mode: 'source',
45
+ owned: report.owned.map((entry) => ({ path: entry.path, group: entry.group })),
46
+ groups: [
47
+ ...report.groups.map((group) => ({ ...group })),
48
+ ...(await componentGroups(project)).map((group) => ({
49
+ id: group.id,
50
+ kind: 'furnace',
51
+ paths: group.paths.length,
52
+ })),
53
+ ],
54
+ pending: report.problems.map((problem) => ({
55
+ code: problem.kind,
56
+ subject: problem.path,
57
+ message: problem.message,
58
+ hint: problem.hint,
59
+ })),
60
+ };
61
+ }
62
+ await requireEngine(project);
63
+ const report = await queueStatus(project);
64
+ const pending = [];
65
+ if (report.session !== undefined) {
66
+ const { kind, done, total, current } = report.session;
67
+ pending.push({
68
+ code: 'session-paused',
69
+ ...(current === undefined ? {} : { subject: current.patch }),
70
+ message: `the ${kind} is unfinished at patch ${done} of ${total}`,
71
+ hint: `fireforge ${kind} --continue`,
72
+ });
73
+ }
74
+ if (report.failure !== undefined) {
75
+ pending.push({
76
+ code: 'does-not-apply',
77
+ subject: report.failure.patch,
78
+ message: report.failure.message,
79
+ hint: 'fireforge import',
80
+ });
81
+ }
82
+ for (const entry of report.paths) {
83
+ const describe = PENDING[entry.state];
84
+ if (describe !== undefined)
85
+ pending.push({ subject: entry.path, ...describe(entry.path) });
86
+ }
87
+ const owned = report.paths.flatMap((entry) => entry.owners[0] === undefined ? [] : [{ path: entry.path, group: entry.owners[0] }]);
88
+ const sizes = new Map();
89
+ for (const entry of owned)
90
+ sizes.set(entry.group, (sizes.get(entry.group) ?? 0) + 1);
91
+ return {
92
+ mode: 'patches',
93
+ owned,
94
+ groups: [...sizes]
95
+ .sort(([a], [b]) => (a < b ? -1 : 1))
96
+ .map(([id, paths]) => ({ id, kind: 'patch', paths })),
97
+ pending,
98
+ };
99
+ }
100
+ /**
101
+ * The integrity of the storage: the manifest and queue in patch mode, the
102
+ * override records and owned files against the pristine repository in
103
+ * source mode.
104
+ *
105
+ * @param project - The project
106
+ */
107
+ export async function verify(project) {
108
+ if (project.mode === 'source') {
109
+ const problems = await verifySource(project, await pinnedPristine(project));
110
+ return {
111
+ mode: 'source',
112
+ problems: problems.map((problem) => ({
113
+ code: problem.kind,
114
+ subject: problem.path,
115
+ message: problem.message,
116
+ hint: problem.hint,
117
+ })),
118
+ };
119
+ }
120
+ const { problems } = await verifyQueue(project);
121
+ return {
122
+ mode: 'patches',
123
+ problems: problems.map((problem) => ({
124
+ code: problem.code,
125
+ ...(problem.patch === undefined ? {} : { subject: problem.patch }),
126
+ message: problem.message,
127
+ })),
128
+ };
129
+ }
130
+ const STORAGE = {
131
+ patches: {
132
+ sound: 'The patch queue is sound.',
133
+ name: 'patch queue',
134
+ exitCode: ExitCode.PATCH_ERROR,
135
+ },
136
+ source: {
137
+ sound: 'The owned files and records are sound.',
138
+ name: 'owned files and records',
139
+ exitCode: ExitCode.CONFIG_ERROR,
140
+ },
141
+ };
142
+ /**
143
+ * How a verify report ends: the line for a sound storage, or the failure.
144
+ *
145
+ * @param report - From {@link verify}
146
+ */
147
+ export function verifyOutcome(report) {
148
+ const storage = STORAGE[report.mode];
149
+ if (report.problems.length === 0)
150
+ return { sound: storage.sound };
151
+ return {
152
+ failure: new FireForgeError('verify-failed', `${report.problems.length} problem(s) in the ${storage.name}.`, {
153
+ exitCode: storage.exitCode,
154
+ hint: 'Fix each problem listed above, then run "fireforge verify" again.',
155
+ }),
156
+ };
157
+ }
@@ -0,0 +1,103 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * Creating a project: `fireforge.json`, the mozconfig templates, the
4
+ * license text and the ignore rules, in either mode. A source-mode project
5
+ * pins the pristine commit of its Firefox, so creating one downloads and
6
+ * imports that Firefox when the host does not have it yet.
7
+ */
8
+ import { join } from 'node:path';
9
+ import { packageRoot } from '../cli/version.js';
10
+ import { CONFIG_FILE, configSchema, } from '../config/index.js';
11
+ import { ensurePristine } from '../engine/index.js';
12
+ import { ExitCode, FireForgeError } from '../kernel/errors.js';
13
+ import { exists, listDir, readText, readTextIfExists, writeFile } from '../kernel/fs.js';
14
+ import { stringifyJson } from '../kernel/json.js';
15
+ import { hostPaths } from '../project/index.js';
16
+ import { completedAttributes } from '../source/index.js';
17
+ const SOURCE_ROOT = 'src';
18
+ const METADATA_ROOT = '.fireforge-sources';
19
+ /** Adds the lines an ignore file lacks, keeping what it has. */
20
+ async function ignore(root, entries) {
21
+ const path = join(root, '.gitignore');
22
+ const current = (await readTextIfExists(path)) ?? '';
23
+ const present = new Set(current.split('\n').map((line) => line.trim().replace(/\/$/, '')));
24
+ const missing = entries.filter((entry) => !present.has(entry.replace(/\/$/, '')));
25
+ if (missing.length === 0)
26
+ return;
27
+ const separator = current === '' || current.endsWith('\n') ? '' : '\n';
28
+ await writeFile(path, `${current}${separator}${missing.join('\n')}\n`);
29
+ }
30
+ /**
31
+ * Refuses a directory that already holds a project: setup only ever creates one.
32
+ *
33
+ * @param root - The directory
34
+ * @throws `project-exists` (exit code 2)
35
+ */
36
+ export async function refuseExistingProject(root) {
37
+ const configPath = join(root, CONFIG_FILE);
38
+ if (!(await exists(configPath)))
39
+ return;
40
+ throw new FireForgeError('project-exists', `${configPath} already exists.`, {
41
+ exitCode: ExitCode.CONFIG_ERROR,
42
+ hint: 'Change its settings with "fireforge config set", or run setup in a new directory.',
43
+ });
44
+ }
45
+ /**
46
+ * Writes a new project into a directory. Files that exist are kept; a
47
+ * directory that already holds a project is refused.
48
+ *
49
+ * @param root - The project directory
50
+ * @param spec - See {@link ProjectSpec}
51
+ * @param options - `env` locates the host state; `onProgress` receives download progress
52
+ * @returns The project-relative files written
53
+ * @throws `project-exists` (exit code 2), `config-invalid` naming the value
54
+ * at fault, and in source mode the download errors
55
+ */
56
+ export async function createProject(root, spec, options = {}) {
57
+ await refuseExistingProject(root);
58
+ const firefox = { version: spec.firefoxVersion, product: spec.product };
59
+ const identity = {
60
+ name: spec.name,
61
+ vendor: spec.vendor,
62
+ appId: spec.appId,
63
+ binaryName: spec.binaryName,
64
+ license: spec.license,
65
+ };
66
+ const pin = configSchema.parse({ ...identity, firefox }, { source: 'the new project', code: 'config-invalid', exitCode: ExitCode.INVALID_ARGUMENT }).firefox;
67
+ const source = spec.mode === 'source'
68
+ ? {
69
+ mode: 'source',
70
+ source: {
71
+ root: SOURCE_ROOT,
72
+ metadataRoot: METADATA_ROOT,
73
+ pristineCommit: (await ensurePristine(hostPaths(options.env), pin, options.onProgress === undefined ? {} : { onProgress: options.onProgress })).commit,
74
+ },
75
+ }
76
+ : {};
77
+ const written = [];
78
+ const write = async (file, content) => {
79
+ if (await exists(join(root, file)))
80
+ return;
81
+ await writeFile(join(root, file), content);
82
+ written.push(file);
83
+ };
84
+ await write(CONFIG_FILE, stringifyJson({ ...identity, ...source, firefox }));
85
+ const templates = join(await packageRoot(), 'templates');
86
+ for (const entry of await listDir(join(templates, 'configs'))) {
87
+ await write(`configs/${entry.name}`, await readText(join(templates, 'configs', entry.name)));
88
+ }
89
+ const license = await readTextIfExists(join(templates, 'licenses', `${spec.license}.md`));
90
+ if (license !== undefined) {
91
+ // Only the 0BSD text names its holder.
92
+ await write('LICENSE', spec.license === '0BSD'
93
+ ? license
94
+ .replaceAll('[year]', String(new Date().getFullYear()))
95
+ .replaceAll('[fullname]', spec.vendor)
96
+ : license);
97
+ }
98
+ if (spec.mode === 'source') {
99
+ await write(`${SOURCE_ROOT}/.gitattributes`, completedAttributes(undefined) ?? '');
100
+ }
101
+ await ignore(root, spec.mode === 'source' ? ['.fireforge/'] : ['engine/', '.fireforge/']);
102
+ return written;
103
+ }
@@ -0,0 +1,116 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * The engine files a project tracks, for the commands that edit them
4
+ * (`register`, `wire`, `token`, `furnace`). Patch mode edits `engine/`
5
+ * itself. Source mode edits the owned copy under the source root, read over
6
+ * the pristine bytes.
7
+ *
8
+ * An upstream file is owned only behind an override record. The helpers
9
+ * whose edits are registrations by definition (build manifests, wiring,
10
+ * component registration) pass `declare`, and their first touch of an
11
+ * upstream file writes the record as `fireforge override <path>` would,
12
+ * classified `registration`. Without `declare` such a write is refused
13
+ * with that command as the hint.
14
+ */
15
+ import { isAbsolute, join, posix, relative } from 'node:path';
16
+ import { listPristineTree, withEngineLock } from '../engine/index.js';
17
+ import { ExitCode, FireForgeError } from '../kernel/errors.js';
18
+ import { exists, isInside, readTextIfExists, resolveContained, toPosixPath } from '../kernel/fs.js';
19
+ import { transaction } from '../kernel/journal.js';
20
+ import { override, readSourceFile, writeSourceFile } from '../source/index.js';
21
+ import { pinnedPristine } from './pristine.js';
22
+ /** The directory holding the project's tracked engine files: `engine/`, or the source root. */
23
+ function trackedDir(project) {
24
+ return project.mode === 'patches' ? project.paths.engine : project.paths.source;
25
+ }
26
+ function sourceFiles(project, pristine, declare) {
27
+ const read = (path) => readSourceFile(project, pristine, path);
28
+ return {
29
+ read: async (path) => (await read(path))?.toString('utf8'),
30
+ exists: async (path) => (await read(path)) !== undefined,
31
+ async write(tx, path, content) {
32
+ const bytes = Buffer.from(content, 'utf8');
33
+ try {
34
+ await writeSourceFile(project, pristine, path, bytes, { tx });
35
+ }
36
+ catch (error) {
37
+ const undeclared = error instanceof FireForgeError && error.code === 'source-override-required';
38
+ if (!undeclared || !declare)
39
+ throw error;
40
+ await override(project, pristine, path, { tx });
41
+ await writeSourceFile(project, pristine, path, bytes, { tx });
42
+ }
43
+ },
44
+ async remove(tx, path) {
45
+ if ((await listPristineTree(pristine, [path])).some((entry) => entry.path === path)) {
46
+ throw new FireForgeError('source-upstream-file', `${path} is an upstream file; removing it is a declared deletion.`, {
47
+ exitCode: ExitCode.INVALID_ARGUMENT,
48
+ hint: `Run "fireforge override --delete ${path}", or "fireforge restore ${path}" to give an override back.`,
49
+ });
50
+ }
51
+ await tx.remove(join(project.paths.source, path));
52
+ },
53
+ locate: (path) => join(project.paths.source, path),
54
+ };
55
+ }
56
+ /**
57
+ * The writer for the engine files the project tracks.
58
+ *
59
+ * @param project - The project
60
+ * @param options - `declare`: in source mode, declare the first touch of an
61
+ * upstream file as a registration instead of refusing it
62
+ * @throws `pristine-missing` in source mode before `download`
63
+ */
64
+ export async function trackedFiles(project, options = {}) {
65
+ if (project.mode === 'source') {
66
+ return sourceFiles(project, await pinnedPristine(project), options.declare === true);
67
+ }
68
+ const engine = project.paths.engine;
69
+ return {
70
+ read: (path) => readTextIfExists(join(engine, path)),
71
+ exists: (path) => exists(join(engine, path)),
72
+ write: async (tx, path, content) => tx.write(await resolveContained(engine, path), content),
73
+ remove: async (tx, path) => tx.remove(await resolveContained(engine, path)),
74
+ locate: (path) => join(engine, path),
75
+ };
76
+ }
77
+ /**
78
+ * The engine-relative POSIX path for a path as the user typed it:
79
+ * engine-relative, prefixed with the tracked directory (`engine/…`,
80
+ * `src/…`), or absolute inside it.
81
+ *
82
+ * @param project - The project
83
+ * @param input - The path as typed
84
+ * @throws `invalid-argument` (exit code 8) for a path outside the engine
85
+ */
86
+ export function enginePathOf(project, input) {
87
+ const dir = trackedDir(project);
88
+ const prefix = `${toPosixPath(relative(project.root, dir))}/`;
89
+ const typed = input.replaceAll('\\', '/').replace(/^\.\//, '');
90
+ const text = isAbsolute(input)
91
+ ? toPosixPath(relative(dir, input))
92
+ : typed.startsWith(prefix)
93
+ ? typed.slice(prefix.length)
94
+ : typed;
95
+ const path = posix.normalize(text);
96
+ if (path === '.' || path === '..' || path.startsWith('../') || !isInside(dir, path)) {
97
+ throw new FireForgeError('invalid-argument', `Path is outside the engine: ${input}`, {
98
+ exitCode: ExitCode.INVALID_ARGUMENT,
99
+ });
100
+ }
101
+ return path;
102
+ }
103
+ /**
104
+ * Runs an edit of tracked files as one transaction: every write lands, or
105
+ * none. Patch mode holds the engine lock exclusively for it.
106
+ *
107
+ * @param project - The project
108
+ * @param options - `label` names the edit in messages; `command` and `waitMs` are for the lock
109
+ * @param body - Makes the edits through the transaction
110
+ */
111
+ export function editTracked(project, options, body) {
112
+ const run = () => transaction(join(project.paths.stateDir, 'tracked-edit.journal'), options.label, body);
113
+ return project.mode === 'patches'
114
+ ? withEngineLock(project, { command: options.command, waitMs: options.waitMs }, run)
115
+ : run();
116
+ }
@@ -0,0 +1,281 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * Bringing a project written by the previous FireForge to the current
4
+ * format, in place. Each owning module knows its own previous format
5
+ * (`config/previous.ts`, `source/previous.ts`); this file decides the order,
6
+ * carries what one conversion tells another, and makes the whole change one
7
+ * journaled transaction on a committed tree, so a failure leaves the project
8
+ * as it was and `git` undoes a success.
9
+ *
10
+ * Nothing is guessed. A key or file that cannot be converted without a
11
+ * decision stops the upgrade before anything is written, named with what to
12
+ * do; everything rewritten or dropped is reported. A project already in the
13
+ * current format is left untouched.
14
+ */
15
+ import { join, relative } from 'node:path';
16
+ import { CONFIG_FILE, readConfigDocument, upgradeConfig, } from '../config/index.js';
17
+ import { withoutObjdir } from '../engine/index.js';
18
+ import { getConfig, status as gitStatus } from '../git/index.js';
19
+ import { ExitCode, FireForgeError } from '../kernel/errors.js';
20
+ import { exists, listDir, readText, readTextIfExists, toPosixPath, walkFiles, } from '../kernel/fs.js';
21
+ import { transaction } from '../kernel/journal.js';
22
+ import { isRecord, omitKeys, stringifyJson, } from '../kernel/json.js';
23
+ import { editJsonText } from '../kernel/json-edit.js';
24
+ import { findProjectRoot, loadProject, projectPaths, readCheckout, } from '../project/index.js';
25
+ import { installMergeDriver, parsePreviousWaivers, parseScopeDecisions, PREVIOUS_MERGE_DRIVER, PREVIOUS_METADATA_FILES, requireSourceMode, sourceStatus, upgradeAttributes, upgradeRecord, } from '../source/index.js';
26
+ import { componentGroups } from './changes.js';
27
+ import { placeWaivers, withWaivers } from './previousWaivers.js';
28
+ import { download } from './pristine.js';
29
+ import { verify } from './report.js';
30
+ function section(document, key) {
31
+ const value = document[key];
32
+ return isRecord(value) ? value : {};
33
+ }
34
+ /** Drops the scope rules a reviewed `policy.json` retired; a retained one needs a person. */
35
+ async function applyScopeDecisions(plan, root, previous) {
36
+ const metadataRoot = section(plan.document, 'source')['metadataRoot'];
37
+ const policy = section(plan.document, 'patchPolicy');
38
+ const rules = section(previous, 'patchPolicy')['scopeRules'];
39
+ if (typeof metadataRoot !== 'string' || !Array.isArray(rules) || rules.length === 0)
40
+ return;
41
+ const file = join(root, metadataRoot, 'policy.json');
42
+ const text = await readTextIfExists(file);
43
+ if (text === undefined || !Array.isArray(policy['scopeRules']))
44
+ return;
45
+ const decisions = parseScopeDecisions(text, file, rules);
46
+ const kept = [];
47
+ for (const [index, rule] of policy['scopeRules'].entries()) {
48
+ const decision = decisions[index];
49
+ const key = `patchPolicy.scopeRules[${index}]`;
50
+ if (decision?.decision === 'retire') {
51
+ plan.removed.push({
52
+ key,
53
+ message: `was retired by ${metadataRoot}/policy.json: ${decision.reason}`,
54
+ });
55
+ }
56
+ else if (decision?.decision === 'retain') {
57
+ plan.blockers.push({
58
+ key,
59
+ message: `was retained by ${metadataRoot}/policy.json as a scope over paths, which a scope over groups cannot express. ` +
60
+ 'Remove the rule, or rewrite it with a "group" expression, then run migrate again',
61
+ });
62
+ kept.push(rule);
63
+ }
64
+ else {
65
+ kept.push(rule);
66
+ }
67
+ }
68
+ plan.document = {
69
+ ...plan.document,
70
+ patchPolicy: kept.length === 0 ? omitKeys(policy, 'scopeRules') : { ...policy, scopeRules: kept },
71
+ };
72
+ }
73
+ /** The file changes a source-mode project's metadata needs. */
74
+ async function planSource(plan, root) {
75
+ const source = section(plan.document, 'source');
76
+ const [sourceRoot, metadataRoot] = [source['root'], source['metadataRoot']];
77
+ if (typeof sourceRoot !== 'string' || typeof metadataRoot !== 'string')
78
+ return;
79
+ const overrides = join(root, metadataRoot, 'overrides');
80
+ let records = 0;
81
+ for (const file of await walkFiles(overrides)) {
82
+ if (!file.endsWith('.json'))
83
+ continue;
84
+ const path = `${metadataRoot}/overrides/${file}`;
85
+ const result = upgradeRecord(await readText(join(overrides, file)), file.slice(0, -'.json'.length));
86
+ if (result.state === 'invalid')
87
+ plan.blockers.push({ key: path, message: result.problem });
88
+ if (result.state === 'converted') {
89
+ plan.files.push({ path, content: result.text });
90
+ records += 1;
91
+ }
92
+ }
93
+ if (records > 0) {
94
+ plan.converted.push({
95
+ key: `${metadataRoot}/overrides`,
96
+ message: `${records} override record(s) rewritten without schemaVersion, path and base.pin`,
97
+ });
98
+ }
99
+ const attributes = `${sourceRoot}/.gitattributes`;
100
+ const text = await readTextIfExists(join(root, attributes));
101
+ const next = text === undefined ? undefined : upgradeAttributes(text);
102
+ if (next !== undefined) {
103
+ plan.files.push({ path: attributes, content: next });
104
+ plan.converted.push({ key: attributes, message: `names the merge driver "fireforge"` });
105
+ }
106
+ const waivers = join(root, metadataRoot, 'waivers.json');
107
+ const waiverText = await readTextIfExists(waivers);
108
+ if (waiverText !== undefined)
109
+ plan.waivers = parsePreviousWaivers(waiverText, waivers);
110
+ for (const name of PREVIOUS_METADATA_FILES) {
111
+ if (!(await exists(join(root, metadataRoot, name))))
112
+ continue;
113
+ plan.files.push({ path: `${metadataRoot}/${name}` });
114
+ plan.removed.push({
115
+ key: `${metadataRoot}/${name}`,
116
+ message: name === 'waivers.json'
117
+ ? 'its waivers are now patchLint.waivers and exportQueue.componentTiers'
118
+ : name === 'policy.json'
119
+ ? 'its scope decisions are applied to patchPolicy.scopeRules; groups of created files are judged file by file, not by size'
120
+ : 'nothing reads it',
121
+ });
122
+ }
123
+ }
124
+ /** Everything the upgrade would change, read without writing. */
125
+ async function planUpgrade(root) {
126
+ const { document: previous } = await readConfigDocument(root);
127
+ const config = upgradeConfig(previous);
128
+ const plan = {
129
+ config,
130
+ document: config.document,
131
+ mode: config.document['mode'] === 'source' ? 'source' : 'patches',
132
+ files: [],
133
+ converted: [...config.converted],
134
+ removed: [...config.removed],
135
+ blockers: [...config.blockers],
136
+ waivers: [],
137
+ };
138
+ if (plan.blockers.length > 0)
139
+ return plan;
140
+ if (plan.mode === 'source') {
141
+ await applyScopeDecisions(plan, root, previous);
142
+ await planSource(plan, root);
143
+ }
144
+ const { configs } = projectPaths(root);
145
+ for (const entry of await listDir(configs)) {
146
+ if (entry.kind !== 'file' || !entry.name.endsWith('.mozconfig'))
147
+ continue;
148
+ const next = withoutObjdir(await readText(join(configs, entry.name)));
149
+ if (next === undefined)
150
+ continue;
151
+ plan.files.push({ path: `configs/${entry.name}`, content: next });
152
+ plan.removed.push({
153
+ key: `configs/${entry.name}`,
154
+ message: 'its MOZ_OBJDIR declaration: FireForge places the object directory itself',
155
+ });
156
+ }
157
+ const fragment = 'fireforge.fragment.json';
158
+ if (await exists(join(root, fragment))) {
159
+ plan.files.push({ path: fragment });
160
+ plan.removed.push({ key: fragment, message: 'nothing reads it' });
161
+ }
162
+ return plan;
163
+ }
164
+ function blocked(blockers) {
165
+ const lines = blockers.map((note) => ` ${note.key}: ${note.message}`);
166
+ return new FireForgeError('migrate-blocked', `${blockers.length} thing(s) cannot be converted without a decision:\n${lines.join('\n')}`, {
167
+ exitCode: ExitCode.CONFIG_ERROR,
168
+ hint: 'Nothing was written. Change each one as its line says, commit, and run "fireforge migrate" again.',
169
+ });
170
+ }
171
+ async function assertCommitted(root) {
172
+ const { worktree } = await readCheckout(root);
173
+ const refuse = (message) => new FireForgeError('migrate-needs-clean-tree', message, {
174
+ exitCode: ExitCode.GIT_ERROR,
175
+ hint: 'Commit the project first: git is the undo of a migration.',
176
+ });
177
+ if (worktree === undefined)
178
+ throw refuse('The project is not in a git repository.');
179
+ const inside = toPosixPath(relative(worktree, root));
180
+ const dirty = await gitStatus(worktree, inside === '' ? {} : { paths: [inside] });
181
+ if (dirty.length > 0) {
182
+ throw refuse(`The project has ${dirty.length} uncommitted change(s), such as ${dirty[0]?.path ?? ''}.`);
183
+ }
184
+ }
185
+ /**
186
+ * Upgrades the project at or above `cwd` from the previous format, in
187
+ * place, and checks the result with `verify`.
188
+ *
189
+ * @param cwd - Where the command was run
190
+ * @param env - The environment of the invocation
191
+ * @param options - See {@link UpgradeOptions}
192
+ * @throws `migrate-blocked` (exit code 2) naming everything that needs a
193
+ * decision, `migrate-needs-clean-tree` (exit code 4), and, for a
194
+ * source-mode project whose pin this host lacks, what `download` throws
195
+ */
196
+ export async function upgrade(cwd, env, options = {}) {
197
+ const root = await findProjectRoot(cwd);
198
+ const plan = await planUpgrade(root);
199
+ if (plan.blockers.length > 0)
200
+ throw blocked(plan.blockers);
201
+ const pending = plan.converted.length + plan.removed.length + plan.files.length > 0;
202
+ if (!pending) {
203
+ const project = await loadProject(root, env);
204
+ return {
205
+ state: 'current',
206
+ mode: project.mode,
207
+ converted: [],
208
+ removed: [],
209
+ rewritten: [],
210
+ deleted: [],
211
+ manual: [],
212
+ followUp: [],
213
+ verify: await verify(project),
214
+ };
215
+ }
216
+ await assertCommitted(root);
217
+ const configPath = join(root, CONFIG_FILE);
218
+ const configText = await readText(configPath);
219
+ const render = (document) => editJsonText(configText, document) ?? stringifyJson(document);
220
+ const { converted, removed } = plan;
221
+ const manual = [...plan.config.manual];
222
+ const project = await transaction(join(projectPaths(root).stateDir, 'migrate.journal'), 'the format upgrade', async (tx) => {
223
+ await tx.write(configPath, render(plan.document));
224
+ for (const file of plan.files) {
225
+ if (file.content === undefined)
226
+ await tx.remove(join(root, file.path));
227
+ else
228
+ await tx.write(join(root, file.path), file.content);
229
+ }
230
+ const loaded = await loadProject(root, env);
231
+ if (loaded.mode !== 'source')
232
+ return loaded;
233
+ // The pin's pristine repository is what the waivers' groups and the closing verify are read against.
234
+ const { pristine } = await download(loaded, options);
235
+ if (plan.waivers.length === 0)
236
+ return loaded;
237
+ const declared = new Set((loaded.config.exportQueue.groups ?? []).map((group) => group.name));
238
+ const waivers = placeWaivers(plan.waivers, await sourceStatus(loaded, pristine), declared, await componentGroups(loaded));
239
+ if (waivers.blockers.length > 0)
240
+ throw blocked(waivers.blockers);
241
+ converted.push(...waivers.converted, {
242
+ key: 'waivers.json',
243
+ message: `${waivers.waivers.length} waiver(s) are now patchLint.waivers`,
244
+ });
245
+ removed.push(...waivers.removed);
246
+ manual.push(...waivers.manual);
247
+ await tx.write(configPath, render(withWaivers(plan.document, waivers)));
248
+ const final = await loadProject(root, env);
249
+ const regrouped = await sourceStatus(requireSourceMode(final), pristine);
250
+ for (const group of waivers.groups) {
251
+ const held = regrouped.owned.filter((entry) => entry.group === group.name);
252
+ if (held.length !== group.paths.length) {
253
+ throw new FireForgeError('migrate-mismatch', `Group "${group.name}" would hold ${held.length} file(s), not the ${group.paths.length} its waiver covered.`, { exitCode: ExitCode.CONFIG_ERROR, hint: 'Nothing was kept. Report this.' });
254
+ }
255
+ }
256
+ return final;
257
+ });
258
+ const followUp = [];
259
+ if (project.mode === 'source') {
260
+ await installMergeDriver(project);
261
+ const worktree = project.checkout.worktree ?? root;
262
+ if ((await getConfig(worktree, `merge.${PREVIOUS_MERGE_DRIVER}.driver`)) !== undefined) {
263
+ followUp.push(`The repository's git configuration still declares the merge driver "${PREVIOUS_MERGE_DRIVER}", which checkouts ` +
264
+ `not yet upgraded use. Once none is left: git config --remove-section merge.${PREVIOUS_MERGE_DRIVER}`);
265
+ }
266
+ }
267
+ return {
268
+ state: 'upgraded',
269
+ mode: project.mode,
270
+ converted,
271
+ removed,
272
+ manual,
273
+ rewritten: [
274
+ CONFIG_FILE,
275
+ ...plan.files.flatMap((file) => (file.content === undefined ? [] : [file.path])),
276
+ ],
277
+ deleted: plan.files.flatMap((file) => (file.content === undefined ? [file.path] : [])),
278
+ followUp,
279
+ verify: await verify(project),
280
+ };
281
+ }