@hominis/fireforge 0.45.0 → 0.46.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (662) hide show
  1. package/CHANGELOG.md +409 -446
  2. package/dist/bin/fireforge.d.ts +1 -1
  3. package/dist/bin/fireforge.js +21 -15
  4. package/dist/build-info.json +4 -4
  5. package/dist/src/cli-usage-error.d.ts +46 -0
  6. package/dist/src/cli-usage-error.js +81 -0
  7. package/dist/src/cli.d.ts +7 -2
  8. package/dist/src/cli.js +47 -47
  9. package/dist/src/commands/bootstrap-checks.js +2 -1
  10. package/dist/src/commands/bootstrap.js +3 -4
  11. package/dist/src/commands/build.js +27 -17
  12. package/dist/src/commands/config.js +9 -9
  13. package/dist/src/commands/destructive-decision.d.ts +19 -0
  14. package/dist/src/commands/destructive-decision.js +31 -0
  15. package/dist/src/commands/discard.js +5 -5
  16. package/dist/src/commands/doctor-check-core.d.ts +4 -10
  17. package/dist/src/commands/doctor-check-core.js +0 -8
  18. package/dist/src/commands/doctor-external-toolchains.js +2 -2
  19. package/dist/src/commands/doctor-furnace-config-sync.d.ts +2 -2
  20. package/dist/src/commands/doctor-furnace-config-sync.js +20 -20
  21. package/dist/src/commands/doctor-furnace-jar.d.ts +1 -1
  22. package/dist/src/commands/doctor-furnace-jar.js +1 -1
  23. package/dist/src/commands/doctor-furnace.js +22 -22
  24. package/dist/src/commands/doctor-orphaned-harness.d.ts +10 -17
  25. package/dist/src/commands/doctor-orphaned-harness.js +14 -23
  26. package/dist/src/commands/doctor-patch-manifest.d.ts +2 -1
  27. package/dist/src/commands/doctor-patch-manifest.js +7 -6
  28. package/dist/src/commands/doctor-post-rebase-audit.js +3 -3
  29. package/dist/src/commands/doctor-source-pin.d.ts +12 -12
  30. package/dist/src/commands/doctor-source-pin.js +14 -14
  31. package/dist/src/commands/doctor-working-tree.d.ts +3 -3
  32. package/dist/src/commands/doctor-working-tree.js +3 -3
  33. package/dist/src/commands/doctor.d.ts +3 -1
  34. package/dist/src/commands/doctor.js +15 -16
  35. package/dist/src/commands/download.js +50 -37
  36. package/dist/src/commands/export-all.js +29 -12
  37. package/dist/src/commands/export-flow.d.ts +5 -5
  38. package/dist/src/commands/export-flow.js +29 -59
  39. package/dist/src/commands/export-placement-conflicts.d.ts +3 -3
  40. package/dist/src/commands/export-placement-conflicts.js +12 -12
  41. package/dist/src/commands/export-placement-gate.d.ts +2 -2
  42. package/dist/src/commands/export-placement-gate.js +7 -13
  43. package/dist/src/commands/export-placement-policy.d.ts +1 -1
  44. package/dist/src/commands/export-placement-policy.js +4 -6
  45. package/dist/src/commands/export-shared.d.ts +51 -32
  46. package/dist/src/commands/export-shared.js +17 -32
  47. package/dist/src/commands/export.js +14 -5
  48. package/dist/src/commands/furnace/apply.js +16 -16
  49. package/dist/src/commands/furnace/authoring-config.d.ts +13 -0
  50. package/dist/src/commands/furnace/authoring-config.js +19 -0
  51. package/dist/src/commands/furnace/chrome-doc-remove.d.ts +1 -1
  52. package/dist/src/commands/furnace/chrome-doc-remove.js +2 -2
  53. package/dist/src/commands/furnace/chrome-doc-templates.d.ts +14 -14
  54. package/dist/src/commands/furnace/chrome-doc-templates.js +17 -17
  55. package/dist/src/commands/furnace/chrome-doc-tests.d.ts +2 -2
  56. package/dist/src/commands/furnace/chrome-doc-tests.js +4 -4
  57. package/dist/src/commands/furnace/chrome-doc.d.ts +8 -8
  58. package/dist/src/commands/furnace/chrome-doc.js +18 -18
  59. package/dist/src/commands/furnace/create-browser-test.d.ts +1 -1
  60. package/dist/src/commands/furnace/create-browser-test.js +7 -12
  61. package/dist/src/commands/furnace/create-dry-run.d.ts +4 -4
  62. package/dist/src/commands/furnace/create-dry-run.js +6 -9
  63. package/dist/src/commands/furnace/create-features.d.ts +2 -2
  64. package/dist/src/commands/furnace/create-features.js +2 -2
  65. package/dist/src/commands/furnace/create-mochikit.d.ts +4 -4
  66. package/dist/src/commands/furnace/create-mochikit.js +7 -7
  67. package/dist/src/commands/furnace/create-templates.d.ts +31 -15
  68. package/dist/src/commands/furnace/create-templates.js +20 -19
  69. package/dist/src/commands/furnace/create-xpcshell.d.ts +5 -5
  70. package/dist/src/commands/furnace/create-xpcshell.js +8 -8
  71. package/dist/src/commands/furnace/create.d.ts +1 -1
  72. package/dist/src/commands/furnace/create.js +35 -29
  73. package/dist/src/commands/furnace/deploy.js +15 -6
  74. package/dist/src/commands/furnace/diff.js +7 -7
  75. package/dist/src/commands/furnace/index.js +1 -1
  76. package/dist/src/commands/furnace/init.js +17 -16
  77. package/dist/src/commands/furnace/list.js +2 -2
  78. package/dist/src/commands/furnace/override.d.ts +1 -1
  79. package/dist/src/commands/furnace/override.js +43 -34
  80. package/dist/src/commands/furnace/preview.js +17 -17
  81. package/dist/src/commands/furnace/refresh.js +15 -7
  82. package/dist/src/commands/furnace/remove-mutations.d.ts +9 -10
  83. package/dist/src/commands/furnace/remove-mutations.js +19 -19
  84. package/dist/src/commands/furnace/remove-state.d.ts +1 -1
  85. package/dist/src/commands/furnace/remove-state.js +1 -1
  86. package/dist/src/commands/furnace/remove.js +4 -8
  87. package/dist/src/commands/furnace/rename-browser-test.js +10 -15
  88. package/dist/src/commands/furnace/rename-xpcshell.d.ts +2 -2
  89. package/dist/src/commands/furnace/rename-xpcshell.js +3 -3
  90. package/dist/src/commands/furnace/rename.js +36 -36
  91. package/dist/src/commands/furnace/scan.js +3 -3
  92. package/dist/src/commands/furnace/status.js +19 -16
  93. package/dist/src/commands/furnace/sync.js +6 -6
  94. package/dist/src/commands/furnace/test-file-name.d.ts +28 -0
  95. package/dist/src/commands/furnace/test-file-name.js +39 -0
  96. package/dist/src/commands/furnace/validate.js +11 -12
  97. package/dist/src/commands/furnace/validation-output.d.ts +21 -9
  98. package/dist/src/commands/furnace/validation-output.js +3 -8
  99. package/dist/src/commands/import.js +22 -29
  100. package/dist/src/commands/lint-per-patch.d.ts +2 -2
  101. package/dist/src/commands/lint-per-patch.js +27 -12
  102. package/dist/src/commands/lint-per-run-checkjs.d.ts +14 -15
  103. package/dist/src/commands/lint-per-run-checkjs.js +14 -15
  104. package/dist/src/commands/lint-report.d.ts +3 -3
  105. package/dist/src/commands/lint-report.js +4 -4
  106. package/dist/src/commands/lint.d.ts +5 -4
  107. package/dist/src/commands/lint.js +36 -36
  108. package/dist/src/commands/manifest.d.ts +4 -4
  109. package/dist/src/commands/manifest.js +1 -1
  110. package/dist/src/commands/package.js +4 -6
  111. package/dist/src/commands/patch/compact.d.ts +2 -2
  112. package/dist/src/commands/patch/compact.js +19 -20
  113. package/dist/src/commands/patch/delete.d.ts +1 -1
  114. package/dist/src/commands/patch/delete.js +23 -33
  115. package/dist/src/commands/patch/entry-projection.d.ts +13 -0
  116. package/dist/src/commands/patch/entry-projection.js +24 -0
  117. package/dist/src/commands/patch/lint-ignore.d.ts +3 -12
  118. package/dist/src/commands/patch/lint-ignore.js +33 -44
  119. package/dist/src/commands/patch/move-files-create.d.ts +2 -2
  120. package/dist/src/commands/patch/move-files-create.js +29 -15
  121. package/dist/src/commands/patch/move-files-into.d.ts +2 -2
  122. package/dist/src/commands/patch/move-files-into.js +41 -37
  123. package/dist/src/commands/patch/move-files.js +5 -14
  124. package/dist/src/commands/patch/patch-context.d.ts +1 -1
  125. package/dist/src/commands/patch/rename.d.ts +4 -4
  126. package/dist/src/commands/patch/rename.js +35 -49
  127. package/dist/src/commands/patch/reorder.js +35 -48
  128. package/dist/src/commands/patch/split-plan.d.ts +7 -8
  129. package/dist/src/commands/patch/split-plan.js +10 -13
  130. package/dist/src/commands/patch/split.d.ts +2 -2
  131. package/dist/src/commands/patch/split.js +50 -48
  132. package/dist/src/commands/patch/staged-dependency-validate.d.ts +1 -1
  133. package/dist/src/commands/patch/staged-dependency-validate.js +3 -3
  134. package/dist/src/commands/patch/staged-dependency.d.ts +1 -1
  135. package/dist/src/commands/patch/staged-dependency.js +22 -28
  136. package/dist/src/commands/patch/tier.d.ts +2 -2
  137. package/dist/src/commands/patch/tier.js +20 -30
  138. package/dist/src/commands/patch-rename-map.d.ts +19 -0
  139. package/dist/src/commands/patch-rename-map.js +36 -0
  140. package/dist/src/commands/pending-resolution.d.ts +15 -0
  141. package/dist/src/commands/pending-resolution.js +25 -0
  142. package/dist/src/commands/re-export-adjacent.d.ts +25 -3
  143. package/dist/src/commands/re-export-adjacent.js +40 -24
  144. package/dist/src/commands/re-export-bulk-scan.d.ts +3 -3
  145. package/dist/src/commands/re-export-bulk-scan.js +23 -27
  146. package/dist/src/commands/re-export-drift.d.ts +10 -10
  147. package/dist/src/commands/re-export-drift.js +33 -33
  148. package/dist/src/commands/re-export-files.d.ts +2 -3
  149. package/dist/src/commands/re-export-files.js +52 -44
  150. package/dist/src/commands/re-export-lint.d.ts +29 -30
  151. package/dist/src/commands/re-export-lint.js +36 -29
  152. package/dist/src/commands/re-export-options.d.ts +1 -1
  153. package/dist/src/commands/re-export-options.js +1 -1
  154. package/dist/src/commands/re-export-register.d.ts +1 -1
  155. package/dist/src/commands/re-export-register.js +1 -1
  156. package/dist/src/commands/re-export-scan.d.ts +1 -1
  157. package/dist/src/commands/re-export-scan.js +12 -9
  158. package/dist/src/commands/re-export-single.d.ts +23 -4
  159. package/dist/src/commands/re-export-single.js +39 -31
  160. package/dist/src/commands/re-export.js +35 -17
  161. package/dist/src/commands/rebase/abort.js +9 -14
  162. package/dist/src/commands/rebase/continue.js +20 -19
  163. package/dist/src/commands/rebase/index.d.ts +1 -1
  164. package/dist/src/commands/rebase/index.js +5 -5
  165. package/dist/src/commands/rebase/patch-loop.d.ts +2 -2
  166. package/dist/src/commands/rebase/patch-loop.js +20 -24
  167. package/dist/src/commands/register.js +5 -5
  168. package/dist/src/commands/reset.js +1 -1
  169. package/dist/src/commands/resolve.d.ts +2 -2
  170. package/dist/src/commands/resolve.js +21 -13
  171. package/dist/src/commands/run.d.ts +0 -13
  172. package/dist/src/commands/run.js +38 -51
  173. package/dist/src/commands/setup-support.d.ts +16 -4
  174. package/dist/src/commands/setup-support.js +20 -20
  175. package/dist/src/commands/setup.js +4 -10
  176. package/dist/src/commands/source.js +9 -2
  177. package/dist/src/commands/status-check.d.ts +3 -3
  178. package/dist/src/commands/status-check.js +6 -6
  179. package/dist/src/commands/status-json.d.ts +14 -13
  180. package/dist/src/commands/status-json.js +9 -8
  181. package/dist/src/commands/status-output.d.ts +3 -3
  182. package/dist/src/commands/status-output.js +5 -5
  183. package/dist/src/commands/status-ownership.d.ts +3 -3
  184. package/dist/src/commands/status-ownership.js +3 -3
  185. package/dist/src/commands/status.js +25 -26
  186. package/dist/src/commands/test-build-phase.d.ts +3 -3
  187. package/dist/src/commands/test-build-phase.js +48 -24
  188. package/dist/src/commands/test-diagnose.d.ts +1 -1
  189. package/dist/src/commands/test-diagnose.js +20 -20
  190. package/dist/src/commands/test-modes.d.ts +4 -4
  191. package/dist/src/commands/test-modes.js +4 -5
  192. package/dist/src/commands/test-register.js +5 -3
  193. package/dist/src/commands/test-run.d.ts +11 -11
  194. package/dist/src/commands/test-run.js +40 -33
  195. package/dist/src/commands/test-stale-gate.d.ts +12 -12
  196. package/dist/src/commands/test-stale-gate.js +17 -17
  197. package/dist/src/commands/test-verdict.d.ts +19 -5
  198. package/dist/src/commands/test-verdict.js +26 -11
  199. package/dist/src/commands/test.d.ts +3 -3
  200. package/dist/src/commands/test.js +73 -36
  201. package/dist/src/commands/token-coverage.js +3 -3
  202. package/dist/src/commands/token-list.d.ts +26 -0
  203. package/dist/src/commands/token-list.js +153 -0
  204. package/dist/src/commands/token.js +26 -10
  205. package/dist/src/commands/tree.js +26 -21
  206. package/dist/src/commands/typecheck.d.ts +6 -6
  207. package/dist/src/commands/typecheck.js +16 -16
  208. package/dist/src/commands/verify.d.ts +3 -3
  209. package/dist/src/commands/verify.js +10 -10
  210. package/dist/src/commands/watch.js +11 -11
  211. package/dist/src/commands/wire.js +17 -16
  212. package/dist/src/core/ast-utils.d.ts +7 -7
  213. package/dist/src/core/ast-utils.js +8 -8
  214. package/dist/src/core/branding.d.ts +5 -12
  215. package/dist/src/core/branding.js +6 -5
  216. package/dist/src/core/browser-wire.d.ts +1 -1
  217. package/dist/src/core/browser-wire.js +10 -7
  218. package/dist/src/core/build-audit-platform.d.ts +32 -3
  219. package/dist/src/core/build-audit-platform.js +153 -13
  220. package/dist/src/core/build-audit-registration.d.ts +5 -5
  221. package/dist/src/core/build-audit-registration.js +10 -9
  222. package/dist/src/core/build-audit-resolve.d.ts +5 -5
  223. package/dist/src/core/build-audit-resolve.js +6 -6
  224. package/dist/src/core/build-audit-skip.d.ts +57 -0
  225. package/dist/src/core/build-audit-skip.js +112 -0
  226. package/dist/src/core/build-audit-transforms.d.ts +2 -2
  227. package/dist/src/core/build-audit-transforms.js +3 -3
  228. package/dist/src/core/build-audit.d.ts +21 -8
  229. package/dist/src/core/build-audit.js +142 -40
  230. package/dist/src/core/build-baseline-types.d.ts +19 -18
  231. package/dist/src/core/build-baseline-types.js +1 -1
  232. package/dist/src/core/build-baseline.d.ts +48 -31
  233. package/dist/src/core/build-baseline.js +20 -43
  234. package/dist/src/core/build-jar-escalation.d.ts +8 -8
  235. package/dist/src/core/build-jar-escalation.js +18 -17
  236. package/dist/src/core/build-overwrite-guard.d.ts +4 -4
  237. package/dist/src/core/build-overwrite-guard.js +14 -14
  238. package/dist/src/core/build-prepare.d.ts +4 -12
  239. package/dist/src/core/build-prepare.js +22 -26
  240. package/dist/src/core/config-mutate.js +4 -4
  241. package/dist/src/core/config-paths.d.ts +2 -6
  242. package/dist/src/core/config-paths.js +4 -2
  243. package/dist/src/core/config-state.d.ts +0 -6
  244. package/dist/src/core/config-state.js +3 -21
  245. package/dist/src/core/config-validate-build-audit.d.ts +8 -0
  246. package/dist/src/core/config-validate-build-audit.js +80 -0
  247. package/dist/src/core/config-validate-file-size.d.ts +1 -1
  248. package/dist/src/core/config-validate-file-size.js +3 -3
  249. package/dist/src/core/config-validate-patch-policy.d.ts +2 -2
  250. package/dist/src/core/config-validate-patch-policy.js +3 -3
  251. package/dist/src/core/config-validate-test-toolchains.d.ts +2 -2
  252. package/dist/src/core/config-validate-test-toolchains.js +4 -5
  253. package/dist/src/core/config-validate.js +22 -12
  254. package/dist/src/core/config.d.ts +12 -12
  255. package/dist/src/core/config.js +21 -25
  256. package/dist/src/core/coverage-extend.d.ts +16 -16
  257. package/dist/src/core/coverage-extend.js +20 -20
  258. package/dist/src/core/destructive.d.ts +14 -14
  259. package/dist/src/core/destructive.js +9 -9
  260. package/dist/src/core/diff-hunks.d.ts +2 -2
  261. package/dist/src/core/diff-hunks.js +7 -7
  262. package/dist/src/core/discard-baseline.d.ts +10 -10
  263. package/dist/src/core/discard-baseline.js +22 -23
  264. package/dist/src/core/display-state.d.ts +11 -11
  265. package/dist/src/core/display-state.js +12 -12
  266. package/dist/src/core/engine-changes.d.ts +2 -2
  267. package/dist/src/core/engine-changes.js +2 -2
  268. package/dist/src/core/engine-precondition.d.ts +5 -13
  269. package/dist/src/core/engine-precondition.js +5 -10
  270. package/dist/src/core/engine-session-lock.d.ts +18 -18
  271. package/dist/src/core/engine-session-lock.js +50 -54
  272. package/dist/src/core/export-moved-code-shape.d.ts +7 -7
  273. package/dist/src/core/export-moved-code-shape.js +10 -10
  274. package/dist/src/core/file-lock-owner.d.ts +103 -0
  275. package/dist/src/core/file-lock-owner.js +259 -0
  276. package/dist/src/core/file-lock.d.ts +14 -19
  277. package/dist/src/core/file-lock.js +90 -128
  278. package/dist/src/core/firefox-cache.d.ts +13 -1
  279. package/dist/src/core/firefox-cache.js +61 -36
  280. package/dist/src/core/firefox-download.d.ts +15 -0
  281. package/dist/src/core/firefox-download.js +38 -22
  282. package/dist/src/core/firefox-extract.d.ts +8 -7
  283. package/dist/src/core/firefox-extract.js +45 -27
  284. package/dist/src/core/firefox.d.ts +34 -36
  285. package/dist/src/core/firefox.js +13 -44
  286. package/dist/src/core/furnace-apply-dry-run.d.ts +1 -6
  287. package/dist/src/core/furnace-apply-dry-run.js +2 -8
  288. package/dist/src/core/furnace-apply-ftl.d.ts +5 -5
  289. package/dist/src/core/furnace-apply-ftl.js +8 -8
  290. package/dist/src/core/furnace-apply-helpers.d.ts +9 -20
  291. package/dist/src/core/furnace-apply-helpers.js +28 -39
  292. package/dist/src/core/furnace-apply-output.js +1 -1
  293. package/dist/src/core/furnace-apply-overwrite-warn.d.ts +9 -9
  294. package/dist/src/core/furnace-apply-overwrite-warn.js +13 -11
  295. package/dist/src/core/furnace-apply-undeploy-actions.d.ts +1 -1
  296. package/dist/src/core/furnace-apply-undeploy-actions.js +1 -1
  297. package/dist/src/core/furnace-apply.d.ts +4 -4
  298. package/dist/src/core/furnace-apply.js +50 -29
  299. package/dist/src/core/furnace-checksum-utils.d.ts +5 -5
  300. package/dist/src/core/furnace-checksum-utils.js +5 -5
  301. package/dist/src/core/furnace-config-custom.d.ts +1 -1
  302. package/dist/src/core/furnace-config-custom.js +2 -2
  303. package/dist/src/core/furnace-config-order.js +1 -1
  304. package/dist/src/core/furnace-config-tokens.d.ts +3 -3
  305. package/dist/src/core/furnace-config-tokens.js +3 -3
  306. package/dist/src/core/furnace-config-validate.js +2 -2
  307. package/dist/src/core/furnace-config.d.ts +5 -5
  308. package/dist/src/core/furnace-config.js +40 -53
  309. package/dist/src/core/furnace-constants.d.ts +6 -6
  310. package/dist/src/core/furnace-constants.js +9 -8
  311. package/dist/src/core/furnace-css-fragments.d.ts +6 -6
  312. package/dist/src/core/furnace-css-fragments.js +11 -11
  313. package/dist/src/core/furnace-dir-entry.d.ts +20 -0
  314. package/dist/src/core/furnace-dir-entry.js +21 -0
  315. package/dist/src/core/furnace-jsconfig.d.ts +7 -7
  316. package/dist/src/core/furnace-jsconfig.js +22 -20
  317. package/dist/src/core/furnace-operation.d.ts +22 -19
  318. package/dist/src/core/furnace-operation.js +38 -34
  319. package/dist/src/core/furnace-precondition.d.ts +10 -10
  320. package/dist/src/core/furnace-precondition.js +8 -8
  321. package/dist/src/core/furnace-refresh.d.ts +18 -6
  322. package/dist/src/core/furnace-refresh.js +5 -8
  323. package/dist/src/core/furnace-registration-ast.d.ts +2 -3
  324. package/dist/src/core/furnace-registration-ast.js +9 -12
  325. package/dist/src/core/furnace-registration-remove.d.ts +4 -4
  326. package/dist/src/core/furnace-registration-remove.js +6 -6
  327. package/dist/src/core/furnace-registration-validate.d.ts +2 -2
  328. package/dist/src/core/furnace-registration-validate.js +2 -2
  329. package/dist/src/core/furnace-registration.d.ts +7 -6
  330. package/dist/src/core/furnace-registration.js +29 -36
  331. package/dist/src/core/furnace-rollback.d.ts +1 -1
  332. package/dist/src/core/furnace-rollback.js +5 -5
  333. package/dist/src/core/furnace-scanner.js +3 -6
  334. package/dist/src/core/furnace-stale-export.d.ts +17 -16
  335. package/dist/src/core/furnace-stale-export.js +16 -15
  336. package/dist/src/core/furnace-staleness.d.ts +2 -2
  337. package/dist/src/core/furnace-staleness.js +2 -2
  338. package/dist/src/core/furnace-state-persist.d.ts +12 -12
  339. package/dist/src/core/furnace-state-persist.js +10 -10
  340. package/dist/src/core/furnace-step-errors.d.ts +6 -6
  341. package/dist/src/core/furnace-step-errors.js +6 -6
  342. package/dist/src/core/furnace-validate-accessibility.js +14 -14
  343. package/dist/src/core/furnace-validate-compatibility.js +9 -9
  344. package/dist/src/core/furnace-validate-registration.d.ts +2 -2
  345. package/dist/src/core/furnace-validate-registration.js +18 -20
  346. package/dist/src/core/furnace-validate-structure.d.ts +1 -1
  347. package/dist/src/core/furnace-validate-structure.js +4 -4
  348. package/dist/src/core/furnace-validate.js +9 -9
  349. package/dist/src/core/furnace-version-drift.d.ts +5 -5
  350. package/dist/src/core/furnace-version-drift.js +5 -5
  351. package/dist/src/core/git-base.d.ts +6 -4
  352. package/dist/src/core/git-base.js +29 -7
  353. package/dist/src/core/git-diff-new-file.d.ts +40 -0
  354. package/dist/src/core/git-diff-new-file.js +119 -0
  355. package/dist/src/core/git-diff.d.ts +13 -13
  356. package/dist/src/core/git-diff.js +121 -189
  357. package/dist/src/core/git-file-ops.d.ts +6 -13
  358. package/dist/src/core/git-file-ops.js +11 -35
  359. package/dist/src/core/git-readonly-index.d.ts +12 -14
  360. package/dist/src/core/git-readonly-index.js +12 -16
  361. package/dist/src/core/git-status.d.ts +9 -2
  362. package/dist/src/core/git-status.js +23 -11
  363. package/dist/src/core/git.d.ts +3 -9
  364. package/dist/src/core/git.js +28 -57
  365. package/dist/src/core/harness-orphans.d.ts +17 -17
  366. package/dist/src/core/harness-orphans.js +28 -27
  367. package/dist/src/core/history-log.d.ts +19 -0
  368. package/dist/src/core/history-log.js +29 -0
  369. package/dist/src/core/license-headers.d.ts +19 -18
  370. package/dist/src/core/license-headers.js +29 -28
  371. package/dist/src/core/mach-build-artifacts.d.ts +21 -21
  372. package/dist/src/core/mach-build-artifacts.js +23 -23
  373. package/dist/src/core/mach-error-hints.d.ts +5 -10
  374. package/dist/src/core/mach-error-hints.js +14 -14
  375. package/dist/src/core/mach-known-noise-filter.d.ts +42 -38
  376. package/dist/src/core/mach-known-noise-filter.js +57 -56
  377. package/dist/src/core/mach-mozconfig.d.ts +6 -6
  378. package/dist/src/core/mach-mozconfig.js +17 -16
  379. package/dist/src/core/mach-python.d.ts +3 -0
  380. package/dist/src/core/mach-python.js +13 -7
  381. package/dist/src/core/mach-resource-shim.d.ts +24 -12
  382. package/dist/src/core/mach-resource-shim.js +124 -21
  383. package/dist/src/core/mach.d.ts +59 -73
  384. package/dist/src/core/mach.js +47 -115
  385. package/dist/src/core/marionette-port.d.ts +15 -30
  386. package/dist/src/core/marionette-port.js +46 -89
  387. package/dist/src/core/marionette-preflight.d.ts +6 -6
  388. package/dist/src/core/marionette-preflight.js +32 -50
  389. package/dist/src/core/markdown-table.d.ts +9 -9
  390. package/dist/src/core/markdown-table.js +14 -14
  391. package/dist/src/core/mochitest-server-port.d.ts +8 -8
  392. package/dist/src/core/mochitest-server-port.js +17 -17
  393. package/dist/src/core/module-resolution-preflight.d.ts +8 -8
  394. package/dist/src/core/module-resolution-preflight.js +11 -11
  395. package/dist/src/core/moz-manifest-helpers.d.ts +7 -7
  396. package/dist/src/core/moz-manifest-helpers.js +7 -7
  397. package/dist/src/core/moz-manifest-register.d.ts +1 -1
  398. package/dist/src/core/moz-manifest-register.js +2 -2
  399. package/dist/src/core/moz-manifest-rules.js +46 -42
  400. package/dist/src/core/moz-manifest-tokenizers.js +1 -1
  401. package/dist/src/core/ownership-table.d.ts +5 -5
  402. package/dist/src/core/ownership-table.js +7 -7
  403. package/dist/src/core/parser-fallback.d.ts +3 -3
  404. package/dist/src/core/parser-fallback.js +3 -3
  405. package/dist/src/core/patch-apply-fuzz.d.ts +5 -5
  406. package/dist/src/core/patch-apply-fuzz.js +13 -13
  407. package/dist/src/core/patch-apply.d.ts +13 -14
  408. package/dist/src/core/patch-apply.js +36 -42
  409. package/dist/src/core/patch-export-coverage.d.ts +0 -9
  410. package/dist/src/core/patch-export-coverage.js +1 -30
  411. package/dist/src/core/patch-export-update.d.ts +21 -4
  412. package/dist/src/core/patch-export-update.js +7 -6
  413. package/dist/src/core/patch-export.d.ts +20 -30
  414. package/dist/src/core/patch-export.js +55 -77
  415. package/dist/src/core/patch-files.d.ts +0 -4
  416. package/dist/src/core/patch-files.js +0 -11
  417. package/dist/src/core/patch-identifier-suggest.d.ts +1 -1
  418. package/dist/src/core/patch-identifier-suggest.js +4 -4
  419. package/dist/src/core/patch-lint-binary.d.ts +12 -18
  420. package/dist/src/core/patch-lint-cache.d.ts +18 -2
  421. package/dist/src/core/patch-lint-cache.js +16 -19
  422. package/dist/src/core/patch-lint-checkjs.d.ts +55 -38
  423. package/dist/src/core/patch-lint-checkjs.js +78 -64
  424. package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +8 -9
  425. package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -11
  426. package/dist/src/core/patch-lint-creators.d.ts +5 -9
  427. package/dist/src/core/patch-lint-creators.js +3 -3
  428. package/dist/src/core/patch-lint-cross.d.ts +27 -19
  429. package/dist/src/core/patch-lint-cross.js +67 -110
  430. package/dist/src/core/patch-lint-css.d.ts +1 -1
  431. package/dist/src/core/patch-lint-css.js +15 -11
  432. package/dist/src/core/patch-lint-diff-tag.d.ts +5 -5
  433. package/dist/src/core/patch-lint-diff-tag.js +5 -5
  434. package/dist/src/core/patch-lint-diff.d.ts +4 -4
  435. package/dist/src/core/patch-lint-diff.js +4 -4
  436. package/dist/src/core/patch-lint-file-size.d.ts +3 -3
  437. package/dist/src/core/patch-lint-file-size.js +6 -6
  438. package/dist/src/core/patch-lint-forward-registration.d.ts +58 -0
  439. package/dist/src/core/patch-lint-forward-registration.js +210 -0
  440. package/dist/src/core/patch-lint-jsdoc.d.ts +2 -2
  441. package/dist/src/core/patch-lint-jsdoc.js +46 -46
  442. package/dist/src/core/patch-lint-module-registration.d.ts +3 -9
  443. package/dist/src/core/patch-lint-module-registration.js +1 -1
  444. package/dist/src/core/patch-lint-mozbuild.d.ts +1 -1
  445. package/dist/src/core/patch-lint-mozbuild.js +10 -10
  446. package/dist/src/core/patch-lint-observer.d.ts +3 -3
  447. package/dist/src/core/patch-lint-observer.js +7 -7
  448. package/dist/src/core/patch-lint-ownership.d.ts +6 -6
  449. package/dist/src/core/patch-lint-ownership.js +6 -6
  450. package/dist/src/core/patch-lint-prettier.d.ts +6 -6
  451. package/dist/src/core/patch-lint-prettier.js +7 -7
  452. package/dist/src/core/patch-lint-queue-types.d.ts +60 -0
  453. package/dist/src/core/patch-lint-queue-types.js +12 -0
  454. package/dist/src/core/patch-lint-staged-registration.d.ts +61 -0
  455. package/dist/src/core/patch-lint-staged-registration.js +90 -0
  456. package/dist/src/core/patch-lint-unmanaged-companion.d.ts +23 -23
  457. package/dist/src/core/patch-lint-unmanaged-companion.js +26 -26
  458. package/dist/src/core/patch-lint.d.ts +41 -35
  459. package/dist/src/core/patch-lint.js +52 -49
  460. package/dist/src/core/patch-lock.d.ts +1 -1
  461. package/dist/src/core/patch-lock.js +11 -11
  462. package/dist/src/core/patch-manifest-consistency.d.ts +7 -7
  463. package/dist/src/core/patch-manifest-consistency.js +16 -17
  464. package/dist/src/core/patch-manifest-files-affected.d.ts +1 -1
  465. package/dist/src/core/patch-manifest-files-affected.js +3 -3
  466. package/dist/src/core/patch-manifest-io.d.ts +14 -14
  467. package/dist/src/core/patch-manifest-io.js +35 -34
  468. package/dist/src/core/patch-manifest-query.d.ts +1 -1
  469. package/dist/src/core/patch-manifest-query.js +4 -4
  470. package/dist/src/core/patch-manifest-resolve.d.ts +5 -5
  471. package/dist/src/core/patch-manifest-resolve.js +7 -7
  472. package/dist/src/core/patch-manifest-validate.js +3 -3
  473. package/dist/src/core/patch-manifest.d.ts +2 -2
  474. package/dist/src/core/patch-manifest.js +2 -2
  475. package/dist/src/core/patch-parse.d.ts +32 -21
  476. package/dist/src/core/patch-parse.js +40 -15
  477. package/dist/src/core/patch-policy.js +15 -27
  478. package/dist/src/core/patch-registration-refs.d.ts +4 -4
  479. package/dist/src/core/patch-registration-refs.js +7 -7
  480. package/dist/src/core/patch-source-metadata.d.ts +1 -3
  481. package/dist/src/core/patch-source-metadata.js +0 -4
  482. package/dist/src/core/patch-transform.d.ts +8 -16
  483. package/dist/src/core/patch-transform.js +13 -23
  484. package/dist/src/core/process-cpu-time.d.ts +1 -1
  485. package/dist/src/core/process-cpu-time.js +6 -6
  486. package/dist/src/core/rebase-session.d.ts +9 -15
  487. package/dist/src/core/rebase-session.js +13 -25
  488. package/dist/src/core/register-browser-content.js +3 -2
  489. package/dist/src/core/register-browser-test.js +2 -1
  490. package/dist/src/core/register-module.js +2 -1
  491. package/dist/src/core/register-result.d.ts +1 -1
  492. package/dist/src/core/register-result.js +1 -1
  493. package/dist/src/core/register-scaffold.d.ts +2 -2
  494. package/dist/src/core/register-scaffold.js +8 -7
  495. package/dist/src/core/register-shared-css.d.ts +3 -3
  496. package/dist/src/core/register-shared-css.js +6 -5
  497. package/dist/src/core/register-xpcshell-test.d.ts +2 -2
  498. package/dist/src/core/register-xpcshell-test.js +2 -2
  499. package/dist/src/core/run-log-redact.d.ts +38 -0
  500. package/dist/src/core/run-log-redact.js +69 -0
  501. package/dist/src/core/run-log.d.ts +21 -10
  502. package/dist/src/core/run-log.js +76 -27
  503. package/dist/src/core/shared-ftl.d.ts +2 -2
  504. package/dist/src/core/shared-ftl.js +6 -6
  505. package/dist/src/core/signal-critical.d.ts +2 -2
  506. package/dist/src/core/signal-critical.js +4 -6
  507. package/dist/src/core/smoke-patterns.d.ts +5 -6
  508. package/dist/src/core/smoke-patterns.js +15 -20
  509. package/dist/src/core/state-file.d.ts +15 -4
  510. package/dist/src/core/state-file.js +14 -1
  511. package/dist/src/core/status-binary.d.ts +8 -8
  512. package/dist/src/core/status-binary.js +12 -12
  513. package/dist/src/core/status-classify.d.ts +17 -17
  514. package/dist/src/core/status-classify.js +13 -12
  515. package/dist/src/core/test-changed-prefs.d.ts +12 -12
  516. package/dist/src/core/test-changed-prefs.js +40 -25
  517. package/dist/src/core/test-harness-crash.d.ts +39 -39
  518. package/dist/src/core/test-harness-crash.js +69 -69
  519. package/dist/src/core/test-harness-output.d.ts +7 -7
  520. package/dist/src/core/test-harness-output.js +7 -7
  521. package/dist/src/core/test-harness-verdict-notes.d.ts +13 -14
  522. package/dist/src/core/test-harness-verdict-notes.js +4 -4
  523. package/dist/src/core/test-path-scope.d.ts +8 -8
  524. package/dist/src/core/test-path-scope.js +11 -11
  525. package/dist/src/core/test-stale-check.d.ts +22 -23
  526. package/dist/src/core/test-stale-check.js +31 -30
  527. package/dist/src/core/test-stale-symlink.d.ts +1 -1
  528. package/dist/src/core/test-stale-symlink.js +1 -1
  529. package/dist/src/core/test-stall-triage.d.ts +9 -9
  530. package/dist/src/core/test-stall-triage.js +22 -22
  531. package/dist/src/core/test-xpcshell-retry.d.ts +26 -7
  532. package/dist/src/core/test-xpcshell-retry.js +14 -11
  533. package/dist/src/core/token-category.d.ts +35 -2
  534. package/dist/src/core/token-category.js +67 -58
  535. package/dist/src/core/token-coverage.js +4 -5
  536. package/dist/src/core/token-dark-mode.d.ts +9 -9
  537. package/dist/src/core/token-dark-mode.js +13 -25
  538. package/dist/src/core/token-docs.d.ts +1 -1
  539. package/dist/src/core/token-inventory.d.ts +56 -0
  540. package/dist/src/core/token-inventory.js +109 -0
  541. package/dist/src/core/token-manager.d.ts +4 -4
  542. package/dist/src/core/token-manager.js +22 -22
  543. package/dist/src/core/token-scaffold.d.ts +4 -4
  544. package/dist/src/core/token-scaffold.js +4 -4
  545. package/dist/src/core/token-variant.d.ts +14 -14
  546. package/dist/src/core/token-variant.js +52 -53
  547. package/dist/src/core/toolchain-preflight.d.ts +15 -15
  548. package/dist/src/core/toolchain-preflight.js +23 -23
  549. package/dist/src/core/tree-cow.d.ts +3 -5
  550. package/dist/src/core/tree-cow.js +8 -8
  551. package/dist/src/core/tree-guard.d.ts +3 -3
  552. package/dist/src/core/tree-guard.js +23 -23
  553. package/dist/src/core/tree-store.d.ts +15 -15
  554. package/dist/src/core/tree-store.js +39 -38
  555. package/dist/src/core/typecheck-shim.d.ts +16 -15
  556. package/dist/src/core/typecheck-shim.js +26 -25
  557. package/dist/src/core/typecheck.d.ts +12 -12
  558. package/dist/src/core/typecheck.js +33 -33
  559. package/dist/src/core/wire-destroy.d.ts +2 -2
  560. package/dist/src/core/wire-destroy.js +5 -5
  561. package/dist/src/core/wire-dom-fragment.d.ts +3 -3
  562. package/dist/src/core/wire-dom-fragment.js +12 -23
  563. package/dist/src/core/wire-init.d.ts +2 -2
  564. package/dist/src/core/wire-init.js +7 -7
  565. package/dist/src/core/wire-subscript.d.ts +1 -1
  566. package/dist/src/core/wire-subscript.js +3 -3
  567. package/dist/src/core/wire-utils.d.ts +9 -9
  568. package/dist/src/core/wire-utils.js +16 -28
  569. package/dist/src/core/xpcshell-appdir.d.ts +20 -20
  570. package/dist/src/core/xpcshell-appdir.js +28 -30
  571. package/dist/src/core/xpcshell-profile-dir.d.ts +3 -3
  572. package/dist/src/core/xpcshell-profile-dir.js +7 -7
  573. package/dist/src/errors/base.d.ts +69 -16
  574. package/dist/src/errors/base.js +95 -26
  575. package/dist/src/errors/build.d.ts +6 -6
  576. package/dist/src/errors/build.js +26 -34
  577. package/dist/src/errors/codes.d.ts +10 -10
  578. package/dist/src/errors/codes.js +10 -10
  579. package/dist/src/errors/config.d.ts +0 -14
  580. package/dist/src/errors/config.js +13 -34
  581. package/dist/src/errors/download.d.ts +13 -0
  582. package/dist/src/errors/download.js +53 -24
  583. package/dist/src/errors/furnace.d.ts +2 -2
  584. package/dist/src/errors/furnace.js +8 -9
  585. package/dist/src/errors/git.d.ts +9 -9
  586. package/dist/src/errors/git.js +21 -31
  587. package/dist/src/errors/patch.d.ts +3 -3
  588. package/dist/src/errors/patch.js +11 -13
  589. package/dist/src/errors/rebase.d.ts +1 -1
  590. package/dist/src/errors/rebase.js +8 -8
  591. package/dist/src/errors/run.d.ts +1 -1
  592. package/dist/src/errors/run.js +1 -1
  593. package/dist/src/index.d.ts +4 -4
  594. package/dist/src/index.js +4 -4
  595. package/dist/src/types/commands/options.d.ts +155 -200
  596. package/dist/src/types/commands/patches.d.ts +19 -19
  597. package/dist/src/types/commands/project.d.ts +3 -3
  598. package/dist/src/types/config.d.ts +52 -19
  599. package/dist/src/types/furnace.d.ts +17 -17
  600. package/dist/src/types/index.d.ts +0 -1
  601. package/dist/src/types/json.d.ts +3 -3
  602. package/dist/src/types/json.js +2 -2
  603. package/dist/src/types/typecheck.d.ts +3 -3
  604. package/dist/src/utils/assert.d.ts +4 -16
  605. package/dist/src/utils/assert.js +7 -24
  606. package/dist/src/utils/build-info.d.ts +6 -6
  607. package/dist/src/utils/build-info.js +6 -6
  608. package/dist/src/utils/child-env.d.ts +7 -6
  609. package/dist/src/utils/child-env.js +5 -5
  610. package/dist/src/utils/concurrency.d.ts +2 -2
  611. package/dist/src/utils/concurrency.js +2 -2
  612. package/dist/src/utils/elapsed.js +10 -1
  613. package/dist/src/utils/errors.d.ts +8 -8
  614. package/dist/src/utils/errors.js +8 -8
  615. package/dist/src/utils/fs.d.ts +1 -1
  616. package/dist/src/utils/fs.js +15 -20
  617. package/dist/src/utils/hash.d.ts +12 -0
  618. package/dist/src/utils/hash.js +16 -0
  619. package/dist/src/utils/line-dispatch.d.ts +15 -0
  620. package/dist/src/utils/line-dispatch.js +48 -0
  621. package/dist/src/utils/logger.d.ts +4 -4
  622. package/dist/src/utils/logger.js +11 -11
  623. package/dist/src/utils/machine-output.js +2 -2
  624. package/dist/src/utils/options.d.ts +14 -20
  625. package/dist/src/utils/options.js +26 -27
  626. package/dist/src/utils/package-root.js +5 -14
  627. package/dist/src/utils/paths.d.ts +4 -4
  628. package/dist/src/utils/paths.js +4 -4
  629. package/dist/src/utils/platform.d.ts +0 -4
  630. package/dist/src/utils/process-group.d.ts +10 -9
  631. package/dist/src/utils/process-group.js +37 -36
  632. package/dist/src/utils/process.d.ts +70 -55
  633. package/dist/src/utils/process.js +129 -179
  634. package/dist/src/utils/ps-duration.d.ts +4 -4
  635. package/dist/src/utils/ps-duration.js +9 -9
  636. package/dist/src/utils/regex.d.ts +4 -4
  637. package/dist/src/utils/regex.js +7 -7
  638. package/dist/src/utils/sleep.d.ts +26 -0
  639. package/dist/src/utils/sleep.js +31 -0
  640. package/dist/src/utils/stdio-drain.d.ts +7 -7
  641. package/dist/src/utils/stdio-drain.js +8 -8
  642. package/dist/src/utils/validation.d.ts +12 -49
  643. package/dist/src/utils/validation.js +26 -36
  644. package/docs/README.md +2 -2
  645. package/docs/configuration.md +163 -69
  646. package/docs/exit-codes.md +66 -49
  647. package/docs/furnace.md +20 -19
  648. package/docs/lifecycle-invariants.md +414 -247
  649. package/docs/machine-output.md +58 -34
  650. package/docs/patch-workflow.md +48 -44
  651. package/docs/run-logs.md +72 -28
  652. package/docs/testing.md +105 -98
  653. package/docs/verification-trees.md +23 -22
  654. package/package.json +7 -6
  655. package/dist/src/commands/rebase.d.ts +0 -4
  656. package/dist/src/commands/rebase.js +0 -5
  657. package/dist/src/core/patch-artifact-normalize.d.ts +0 -21
  658. package/dist/src/core/patch-artifact-normalize.js +0 -24
  659. package/dist/src/core/patch-lint-reexports.d.ts +0 -7
  660. package/dist/src/core/patch-lint-reexports.js +0 -8
  661. package/dist/src/core/wire-targets.d.ts +0 -7
  662. package/dist/src/core/wire-targets.js +0 -8
package/docs/testing.md CHANGED
@@ -3,28 +3,29 @@
3
3
  # Running tests
4
4
 
5
5
  `fireforge test` wraps `mach test`. Most of what follows exists because
6
- mach's own defaults are wrong for a fork that must know exactly what ran.
6
+ mach's own defaults are wrong for a fork that has to know exactly what ran.
7
7
 
8
8
  ## Scope is exact
9
9
 
10
- `fireforge test <directory>` runs exactly that directory: FireForge enumerates
11
- the directory's test files and passes the explicit file list to mach in one
12
- invocation, so mach's prefix-based path matching cannot silently sweep in
13
- sibling directories sharing the name prefix. Excluded siblings are echoed with
14
- their test-file counts.
10
+ `fireforge test <directory>` runs exactly that directory. FireForge
11
+ enumerates the directory's test files and passes the explicit file list to
12
+ mach in one invocation, so mach's prefix-based path matching cannot quietly
13
+ sweep in sibling directories that share the name prefix. Excluded siblings
14
+ are echoed with their test-file counts.
15
15
 
16
- Multiple path arguments run as **sequential shards** by default — one browser
17
- instance per argument, with a directory argument keeping its files together —
18
- announced with a notice, since isolated instances do not exercise
19
- cross-argument state. `--no-shard` restores one combined invocation.
16
+ Multiple path arguments run as sequential shards by default: one browser
17
+ instance per argument, with a directory argument keeping its files together.
18
+ FireForge announces this with a notice, since isolated instances do not
19
+ exercise cross-argument state. `--no-shard` restores one combined
20
+ invocation.
20
21
 
21
22
  ## Pathless runs must choose a mode
22
23
 
23
24
  - `--auto` forwards mach's own auto-selection.
24
25
  - `--doctor` runs the Marionette preflight only.
25
26
  - `--canary [path]` runs one short browser-chrome canary
26
- (`test.canaryPath` / `test.canaryTimeoutSeconds` in `fireforge.json`
27
- provide defaults).
27
+ (`test.canaryPath` and `test.canaryTimeoutSeconds` in `fireforge.json`
28
+ provide the defaults).
28
29
 
29
30
  ## Build freshness
30
31
 
@@ -32,68 +33,66 @@ When packageable engine files changed since the last successful FireForge
32
33
  build, `test` fails before launching stale artifacts. Use `--build` to
33
34
  refresh, or `--allow-stale-build` only for intentional out-of-band rebuilds.
34
35
 
35
- `--build-only` packages mixed-harness paths once, then each harness half can
36
- run without `--build`. `--extend-coverage` safely retains prior scoped
37
- coverage instead of replacing it; it is refused when the build anchor moved
38
- (engine HEAD, `engine/mozconfig`, or a previously fingerprinted packageable
39
- file).
36
+ `--build-only` packages mixed-harness paths once, and then each harness half
37
+ can run without `--build`. `--extend-coverage` retains prior scoped coverage
38
+ instead of replacing it. It is refused when the build anchor moved (engine
39
+ HEAD, `engine/mozconfig`, or a previously fingerprinted packageable file).
40
40
 
41
41
  ### What a pre-test build costs
42
42
 
43
- `test --build` runs `mach build faster`, with two escalations decided by
44
- comparing build inputs against the **last successful build** recorded in
45
- `.fireforge/last-build.json` — not against engine HEAD, since a fork's
46
- worktree is permanently dirty (imported patches, Furnace-applied
47
- components):
48
-
49
- - a changed `moz.build` / `moz.configure` / `Makefile.in` runs
50
- `mach configure` first;
51
- - a changed `jar.mn` escalates the whole build to a full `mach build`
52
- (minutes rather than seconds) **only** when it is a NEW manifest
53
- (untracked in the engine repo, so no install manifest exists for it yet)
43
+ `test --build` runs `mach build faster`. Two escalations are possible, and
44
+ both are decided by comparing build inputs against the last successful build
45
+ recorded in `.fireforge/last-build.json`, not against engine HEAD, since a
46
+ fork's worktree is permanently dirty from imported patches and
47
+ Furnace-applied components:
48
+
49
+ - A changed `moz.build`, `moz.configure` or `Makefile.in` runs
50
+ `mach configure` first.
51
+ - A changed `jar.mn` escalates the whole build to a full `mach build`
52
+ (minutes rather than seconds), but only when it is a new manifest
53
+ (untracked in the engine repo, so no install manifest exists for it yet),
54
54
  or when its jar declaration carries a bracketed base-directory prefix,
55
- which redirects the install destination away from the default chrome
56
- root. An entry added to an existing `dist/bin` manifest no longer
57
- escalates. Any probe failure (unreadable manifest, no git) escalates, and
58
- the notice names the manifest and the reason.
55
+ which redirects the install destination away from the default chrome root.
56
+ An entry added to an existing `dist/bin` manifest no longer escalates. Any
57
+ probe failure (an unreadable manifest, no git) escalates, and the notice
58
+ names the manifest and the reason.
59
59
 
60
- Each escalation is paid once per actual content change: a `jar.mn` that is
60
+ Each escalation is paid once per actual content change. A `jar.mn` that is
61
61
  dirty against HEAD but byte-identical to what the last full build consumed
62
62
  does not escalate again. `fireforge build --ui` is itself a
63
- `mach build faster` and never escalates; the `jar.mn` record it writes is
64
- carried forward from the previous full build, so a registration made
65
- between a `build --ui` and the next `test --build` still triggers the full
66
- build once.
67
-
68
- The open question the 0.44.0 changelog recorded here — whether a full build
69
- is really required for an entry added to an existing `dist/bin` `jar.mn` —
70
- was settled downstream by exactly the experiment that entry asked for: two
71
- clean runs where a jar-only registration of a new content file was
72
- installed by a plain `fireforge build --ui`
73
- (`faster/install_dist_bin_browser` named the destination, the file reached
74
- `dist/bin` and the `.app` bundle) and fetched over `chrome://` by a plain
75
- `fireforge test`. That case no longer escalates. The two halves the
76
- experiment did NOT exercise — a new `jar.mn` file, and a non-default
77
- install destination — still do, for the reason the original entry gives:
78
- relaxing a stale-artifact guard without evidence trades a slow build for a
79
- silently wrong test.
63
+ `mach build faster` and never escalates. The `jar.mn` record it writes is
64
+ carried forward from the previous full build, so a registration made between
65
+ a `build --ui` and the next `test --build` still triggers the full build
66
+ once.
67
+
68
+ The 0.44.0 changelog left an open question here: whether a full build is
69
+ really required for an entry added to an existing `dist/bin` `jar.mn`. It was
70
+ settled downstream by exactly the experiment that entry asked for. In two
71
+ clean runs, a jar-only registration of a new content file was installed by a
72
+ plain `fireforge build --ui` (`faster/install_dist_bin_browser` named the
73
+ destination, and the file reached `dist/bin` and the `.app` bundle) and then
74
+ fetched over `chrome://` by a plain `fireforge test`. That case no longer
75
+ escalates. The two halves the experiment did not cover, a new `jar.mn` file
76
+ and a non-default install destination, still escalate, for the reason the
77
+ original entry gives: relaxing a stale-artifact guard without evidence trades
78
+ a slow build for a silently wrong test.
80
79
 
81
80
  ## Resilience
82
81
 
83
82
  - Recognized harness crashes retry up to `--harness-retries <n>` times
84
83
  (default 2).
85
84
  - `--kill-stale-marionette` terminates recognized stale browsers.
86
- - Every dispatch runs a **census of orphaned harness helpers** — `xpcshell`
87
- (the harness httpd), `pywebsocket`, `ssltunnel`, `moz-http2` — that
88
- survived an earlier run in this project's objdir. It runs at preflight,
89
- before this run spawns anything, so every hit is a survivor by
90
- construction; a match must be objdir-anchored, since `xpcshell` and
91
- `server.js` are far too generic to report on their own. Survivors slow
92
- every later run without appearing in its output (a three-second suite
93
- taking minutes of wall clock is the usual symptom). Report-only by
94
- default; `--reap-orphans` terminates them. It never refuses a run.
95
- A different shape — reparented Python `multiprocessing` workers — is
96
- covered by the `Orphaned harness workers` doctor check.
85
+ - Every dispatch runs a census of orphaned harness helpers (`xpcshell`, the
86
+ harness httpd, `pywebsocket`, `ssltunnel`, `moz-http2`) that survived an
87
+ earlier run in this project's objdir. It runs at preflight, before this run
88
+ spawns anything, so every hit is necessarily a survivor. A match has to be
89
+ objdir-anchored, since `xpcshell` and `server.js` are far too generic to
90
+ report on their own. Survivors slow every later run without appearing in
91
+ its output. The usual symptom is a three-second suite taking minutes of
92
+ wall clock. The census is report-only by default, and `--reap-orphans`
93
+ terminates what it finds. It never refuses a run. A different shape,
94
+ reparented Python `multiprocessing` workers, is covered by the
95
+ `Orphaned harness workers` doctor check.
97
96
  - `--perf-samples <path>` publishes a perf-sample artifact path to the
98
97
  harness (exported as `<BINARYNAME>_PERF_SAMPLE_JSON`).
99
98
 
@@ -102,30 +101,38 @@ silently wrong test.
102
101
  Every test run ends with one machine-readable line:
103
102
 
104
103
  ```
105
- FIREFORGE-VERDICT: PASS|FAIL reason=… [log=<path>]
104
+ FIREFORGE-VERDICT: PASS|FAIL reason=… [note=<class>] [log=<path>]
106
105
  ```
107
106
 
108
- Automation should branch on it rather than on the raw process code, and must
109
- treat a **missing** verdict as failure. The closed set of `reason=` values and
110
- the stdout rules around the line are in
111
- [`machine-output.md`](machine-output.md); `log=` names the run's own complete
107
+ Automation should branch on this line rather than on the raw process code,
108
+ and has to treat a missing verdict as a failure. The closed set of `reason=`
109
+ values and the stdout rules around the line are in
110
+ [`machine-output.md`](machine-output.md). `log=` names the run's own complete
112
111
  output, specified in [`run-logs.md`](run-logs.md).
113
112
 
113
+ `reason=preflight` covers every gate before the harness, so a refusal that
114
+ can classify itself adds an additive `note=<class>` (`stale-browser`,
115
+ `coverage-replaced`, and so on) naming which gate fired. The refusal's full
116
+ text is written to stdout before the verdict line and into the run log, so a
117
+ redirected run keeps the reason as well as the verdict. See
118
+ [`run-logs.md`](run-logs.md).
119
+
114
120
  Exit code 14 (`INCONCLUSIVE`) is not red: it means `engine/` moved while the
115
- harness ran and the result was thrown away. Exit 15 (`LOCK_TIMEOUT`) means the
116
- run never started. See [`exit-codes.md`](exit-codes.md).
121
+ harness ran and the result was thrown away. Exit 15 (`LOCK_TIMEOUT`) means
122
+ the run never started. See [`exit-codes.md`](exit-codes.md).
117
123
 
118
124
  ## Output verbosity
119
125
 
120
126
  mozbuild quiets terminal output to warnings and errors when it detects a
121
127
  coding agent (`is_running_under_coding_agent()` keys on `CLAUDECODE`). The
122
- build half of that quieting is useful; the test half removes `TEST_START` and
123
- console INFO — the lines a hang or stall diagnosis needs, and the ones
124
- FireForge's own classifier reads (`Ran N checks`, `Unexpected results:`,
125
- `TEST-UNEXPECTED-*`), so suppression pushes a run toward `reason=no-tests`.
126
-
127
- `fireforge test --full-output` unsets the marker for **test dispatches only**;
128
- the build path stays quiet. It is opt-in rather than automatic because it
128
+ build half of that quieting is useful. The test half removes `TEST_START` and
129
+ console INFO, which are the lines a hang or stall diagnosis needs, and also
130
+ the ones FireForge's own classifier reads (`Ran N checks`,
131
+ `Unexpected results:`, `TEST-UNEXPECTED-*`), so suppression pushes a run
132
+ toward `reason=no-tests`.
133
+
134
+ `fireforge test --full-output` unsets the marker for test dispatches only,
135
+ and the build path stays quiet. It is opt-in rather than automatic because it
129
136
  changes how much a third party prints, and an operator who wants the quieting
130
137
  should keep it.
131
138
 
@@ -137,39 +144,39 @@ Recent engines can end a run with a Python traceback at harness teardown:
137
144
  AttributeError: 'SystemResourceMonitor' object has no attribute 'stop_time'
138
145
  ```
139
146
 
140
- (or `poll_interval`), raised from `mozsystemmonitor/resourcemonitor.py`. It is
141
- an upstream defect in the resource monitor's own shutdown, it is cosmetic, and
142
- it does not affect any verdict. It matters only because it lands exactly where
143
- a reader looks for the failure summary.
147
+ (or `poll_interval`), raised from `mozsystemmonitor/resourcemonitor.py`. It
148
+ is an upstream defect in the resource monitor's own shutdown, it is cosmetic,
149
+ and it does not affect any verdict. It matters only because it lands exactly
150
+ where a reader looks for the failure summary.
144
151
 
145
- FireForge recognizes this one signature — and only this one. Recognition
146
- requires **all** of: an `AttributeError` on `SystemResourceMonitor` naming one
147
- of those two attributes, a `resourcemonitor.py` stack frame, and (in a test
148
- run) a preceding `SUITE_END`. A novel attribute, a different exception, or the
149
- same traceback before shutdown is treated as a real failure and printed
150
- verbatim, always.
152
+ FireForge recognizes this one signature and no others. Recognition requires
153
+ all of: an `AttributeError` on `SystemResourceMonitor` naming one of those
154
+ two attributes, a `resourcemonitor.py` stack frame, and, in a test run, a
155
+ preceding `SUITE_END`. A novel attribute, a different exception, or the same
156
+ traceback before shutdown is treated as a real failure and always printed
157
+ verbatim.
151
158
 
152
- The two phases handle it differently, deliberately:
159
+ The two phases handle it differently, on purpose:
153
160
 
154
- - **Tests** collapse the traceback in the terminal echo to one labeled
155
- `[FireForge]` line. Captures and the run log keep the **raw** traceback, and
156
- the classifier reads the raw form — a real failure always outranks this
161
+ - **Tests** collapse the traceback in the terminal echo to one line labeled
162
+ `[FireForge]`. Captures and the run log keep the raw traceback, and the
163
+ classifier reads the raw form, so a real failure always outranks this
157
164
  signature in diagnosis.
158
165
  - **Builds** print it verbatim and add a note naming it. A build has no
159
- `SUITE_END` — no boundary separating teardown from work still in progress —
160
- so FireForge cannot distinguish cosmetic teardown noise from a real
161
- build-time traceback there, and withholding the block would be the wrong
162
- risk to take.
166
+ `SUITE_END`, so there is no boundary separating teardown from work still in
167
+ progress, and FireForge cannot tell cosmetic teardown noise from a real
168
+ build-time traceback there. Withholding the block would be the wrong risk
169
+ to take.
163
170
 
164
171
  ## Concurrency
165
172
 
166
173
  A test run holds the engine-session lock and snapshots the engine git
167
- generation before and after the harness run, failing the verdict as invalid if
168
- the tree changed mid-run. To verify beside a busy primary checkout instead,
169
- use a [verification tree](verification-trees.md).
174
+ generation before and after the harness run, failing the verdict as invalid
175
+ if the tree changed mid-run. To verify beside a busy primary checkout
176
+ instead, use a [verification tree](verification-trees.md).
170
177
 
171
178
  ## Dev-build gotcha
172
179
 
173
180
  In dev builds, files under `obj-*/dist/bin` may be symlinks back into the
174
- source tree (notably prefs), so edit source prefs directly and keep a backup
175
- before bisection experiments.
181
+ source tree (prefs especially), so edit source prefs directly and keep a
182
+ backup before bisection experiments.
@@ -2,11 +2,11 @@
2
2
 
3
3
  # Verification trees
4
4
 
5
- For concurrent read-mostly verification beside a busy primary checkout,
6
- `fireforge tree create <name>` snapshots the project — applied engine tree
7
- included, `obj-*` excluded — into `.fireforge/trees/<name>` using filesystem
8
- copy-on-write (APFS `clonefile`, btrfs/XFS reflink). Roughly 3 s for a 156 MB
9
- applied browser tree.
5
+ To run read-mostly verification beside a busy primary checkout,
6
+ `fireforge tree create <name>` snapshots the project into
7
+ `.fireforge/trees/<name>` using filesystem copy-on-write (APFS `clonefile`,
8
+ btrfs/XFS reflink). The applied engine tree is included and `obj-*` is
9
+ excluded. A 156 MB applied browser tree takes roughly 3 seconds.
10
10
 
11
11
  ```bash
12
12
  npx fireforge tree create verify
@@ -17,32 +17,33 @@ npx fireforge tree remove verify
17
17
 
18
18
  ## What works inside a tree
19
19
 
20
- Read-only commands and `export`/`re-export` dry runs. **Mutations are
21
- refused** — a default-deny verdict table, not a blocklist, so a newly added
22
- mutating command is refused until it is classified. That is invariant 7 in
20
+ Read-only commands, plus `export` and `re-export` dry runs. Mutations are
21
+ refused. The refusal comes from a default-deny verdict table rather than a
22
+ blocklist, so a newly added mutating command is refused until someone
23
+ classifies it. That is invariant 7 in
23
24
  [`lifecycle-invariants.md`](lifecycle-invariants.md).
24
25
 
25
- `--with-objdir` adds a safely relocated build, which makes build-less `test`
26
- possible inside the tree.
26
+ `--with-objdir` adds a safely relocated build, which makes a build-less
27
+ `test` possible inside the tree.
27
28
 
28
29
  ## Lifecycle
29
30
 
30
- - `tree list` reports staleness (`--json`; see
31
+ - `tree list` reports staleness (`--json`, see
31
32
  [`machine-output.md`](machine-output.md)).
32
- - `tree remove` deletes, refusing an active lock and a lock of unknown
33
- ownership.
34
- - `tree exec <name> -- <cmd>` runs a command inside a tree, sealing its stdout
35
- so exactly one verdict line survives, last.
33
+ - `tree remove` deletes a tree, and refuses when a lock is active or its
34
+ ownership is unknown.
35
+ - `tree exec <name> -- <cmd>` runs a command inside a tree and seals its
36
+ stdout, so exactly one verdict line survives, last.
36
37
 
37
38
  ## Filesystems without CoW
38
39
 
39
- Refused unless `--force-copy` explicitly accepts a full physical copy. The
40
- refusal is the point: a silent full copy of an applied browser tree is not
41
- the operation anyone asked for.
40
+ These are refused unless `--force-copy` explicitly accepts a full physical
41
+ copy. The refusal is there on purpose: a silent full copy of an applied
42
+ browser tree is not the operation anyone asked for.
42
43
 
43
44
  ## The tree marker
44
45
 
45
- `.fireforge/tree.json` is tri-state: absent (primary), valid (snapshot), or
46
- **corrupt**. A corrupt marker refuses every command, because an unreadable
47
- marker leaves it unknown whether this is a snapshot or the primary tree.
48
- `--ignore-corrupt-tree-marker` overrides that deliberately.
46
+ `.fireforge/tree.json` has three states: absent (this is the primary), valid
47
+ (this is a snapshot), or corrupt. A corrupt marker refuses every command,
48
+ because an unreadable marker leaves it unknown whether this is a snapshot or
49
+ the primary tree. `--ignore-corrupt-tree-marker` overrides that.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hominis/fireforge",
3
- "version": "0.45.0",
3
+ "version": "0.46.1",
4
4
  "description": "FireForge — a build tool for customizing Firefox",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -25,6 +25,7 @@
25
25
  "lint:fix": "eslint src/ bin/ scripts/ eslint-rules/ eslint.config.js vitest.config.ts vitest.pack.config.ts --fix",
26
26
  "typecheck": "tsc --noEmit -p tsconfig.json",
27
27
  "deadcode:check": "knip",
28
+ "deadcode:check:production": "knip --production --config knip.production.json",
28
29
  "cycles:check": "dpdm --no-output --no-tree --no-warning --exit-code circular:1 src/index.ts bin/fireforge.ts",
29
30
  "test": "vitest run",
30
31
  "test:package": "npm run pack:verify",
@@ -34,11 +35,11 @@
34
35
  "whitespace:check": "node ./scripts/check-worktree-whitespace.mjs",
35
36
  "pack:verify": "vitest run --config vitest.pack.config.ts",
36
37
  "pack:dry-run": "npm pack --dry-run --json --silent",
37
- "format": "prettier --write --ignore-unknown \"src/**/*.ts\" \"bin/**/*.ts\" \"scripts/**/*.mjs\" \"eslint-rules/**/*.js\" \"package.json\" \"eslint.config.js\" \"vitest.config.ts\" \"vitest.pack.config.ts\" \"tsconfig.json\" \"tsconfig.build.json\" \".lintstagedrc.json\" \".prettierignore\" \".prettierrc\" \".gitignore\" \"README.md\" \"CHANGELOG.md\" \"docs/**/*.md\" \"knip.json\"",
38
- "format:check": "prettier --check --ignore-unknown \"src/**/*.ts\" \"bin/**/*.ts\" \"scripts/**/*.mjs\" \"eslint-rules/**/*.js\" \"package.json\" \"eslint.config.js\" \"vitest.config.ts\" \"vitest.pack.config.ts\" \"tsconfig.json\" \"tsconfig.build.json\" \".lintstagedrc.json\" \".prettierignore\" \".prettierrc\" \".gitignore\" \"README.md\" \"CHANGELOG.md\" \"docs/**/*.md\" \"knip.json\"",
38
+ "format": "prettier --write --ignore-unknown \"src/**/*.ts\" \"bin/**/*.ts\" \"scripts/**/*.mjs\" \"eslint-rules/**/*.js\" \"package.json\" \"eslint.config.js\" \"vitest.config.ts\" \"vitest.pack.config.ts\" \"tsconfig.json\" \"tsconfig.build.json\" \".lintstagedrc.json\" \".prettierignore\" \".prettierrc\" \".gitignore\" \"README.md\" \"CHANGELOG.md\" \"docs/**/*.md\" \"knip.json\" \"knip.production.json\"",
39
+ "format:check": "prettier --check --ignore-unknown \"src/**/*.ts\" \"bin/**/*.ts\" \"scripts/**/*.mjs\" \"eslint-rules/**/*.js\" \"package.json\" \"eslint.config.js\" \"vitest.config.ts\" \"vitest.pack.config.ts\" \"tsconfig.json\" \"tsconfig.build.json\" \".lintstagedrc.json\" \".prettierignore\" \".prettierrc\" \".gitignore\" \"README.md\" \"CHANGELOG.md\" \"docs/**/*.md\" \"knip.json\" \"knip.production.json\"",
39
40
  "prepare": "node -e \"import('./scripts/prepare.mjs').catch((error) => { if (error && typeof error === 'object' && 'code' in error && error.code === 'ERR_MODULE_NOT_FOUND') process.exit(0); throw error; })\"",
40
41
  "prepack": "npm run build && node ./scripts/generate-build-info.mjs --loud",
41
- "release:check": "npm run format:check && npm run whitespace:check && npm run lint:ci && npm run typecheck && npm run deadcode:check && npm run cycles:check && npm run test:coverage && npm run pack:verify",
42
+ "release:check": "npm run format:check && npm run whitespace:check && npm run lint:ci && npm run typecheck && npm run deadcode:check && npm run deadcode:check:production && npm run cycles:check && npm run test:coverage && npm run pack:verify",
42
43
  "prepublishOnly": "npm run release:check"
43
44
  },
44
45
  "files": [
@@ -65,7 +66,7 @@
65
66
  "devDependencies": {
66
67
  "@eslint/js": "^10.0.0",
67
68
  "@types/estree": "^1.0.8",
68
- "@types/node": "^26.0.0",
69
+ "@types/node": "^22.0.0",
69
70
  "@vitest/coverage-v8": "^4.1.2",
70
71
  "dpdm": "4.3.0",
71
72
  "eslint": "^10.0.0",
@@ -74,7 +75,7 @@
74
75
  "eslint-plugin-simple-import-sort": "^14.0.0",
75
76
  "fast-check": "^4.6.0",
76
77
  "husky": "^9.1.7",
77
- "knip": "6.32.2",
78
+ "knip": "6.32.3",
78
79
  "lint-staged": "^17.0.4",
79
80
  "prettier": "3.9.6",
80
81
  "tsx": "^4.7.0",
@@ -1,4 +0,0 @@
1
- /**
2
- * `fireforge rebase` — re-exports from `./rebase/` sub-modules.
3
- */
4
- export { rebaseCommand, registerRebase } from './rebase/index.js';
@@ -1,5 +0,0 @@
1
- // SPDX-License-Identifier: EUPL-1.2
2
- /**
3
- * `fireforge rebase` — re-exports from `./rebase/` sub-modules.
4
- */
5
- export { rebaseCommand, registerRebase } from './rebase/index.js';
@@ -1,21 +0,0 @@
1
- /**
2
- * Normalizes generated patch files before they are written to disk.
3
- *
4
- * Currently the identity function, kept as a narrow chokepoint for future
5
- * artifact-level fixes so every export path (`commitExportedPatch`,
6
- * `commitPlacementExport`, `updatePatch`, `patch split`) funnels through one
7
- * place.
8
- *
9
- * **Do not reintroduce whitespace trimming here.** Stripping marker lines
10
- * whose payload is pure whitespace (`/^[ +-]\s+$/` → bare marker) corrupts
11
- * real content: Firefox sources contain whitespace-only lines, so a ` `/`-`
12
- * line whose payload was e.g. two spaces no longer matches the pristine tree
13
- * (the freshly exported patch fails `git apply --check`), and a `+` line
14
- * silently changes what the patch produces, making re-import diverge from
15
- * the engine state it was exported from. The repository whitespace check
16
- * already excludes `patches/*.patch`
17
- * (scripts/check-worktree-whitespace.mjs). Patch bodies are written
18
- * byte-for-byte as git produced them, including the single-space rendering
19
- * of blank context lines, which `re-export.integration.test.ts` pins.
20
- */
21
- export declare function normalizePatchArtifact(content: string): string;
@@ -1,24 +0,0 @@
1
- // SPDX-License-Identifier: EUPL-1.2
2
- /**
3
- * Normalizes generated patch files before they are written to disk.
4
- *
5
- * Currently the identity function, kept as a narrow chokepoint for future
6
- * artifact-level fixes so every export path (`commitExportedPatch`,
7
- * `commitPlacementExport`, `updatePatch`, `patch split`) funnels through one
8
- * place.
9
- *
10
- * **Do not reintroduce whitespace trimming here.** Stripping marker lines
11
- * whose payload is pure whitespace (`/^[ +-]\s+$/` → bare marker) corrupts
12
- * real content: Firefox sources contain whitespace-only lines, so a ` `/`-`
13
- * line whose payload was e.g. two spaces no longer matches the pristine tree
14
- * (the freshly exported patch fails `git apply --check`), and a `+` line
15
- * silently changes what the patch produces, making re-import diverge from
16
- * the engine state it was exported from. The repository whitespace check
17
- * already excludes `patches/*.patch`
18
- * (scripts/check-worktree-whitespace.mjs). Patch bodies are written
19
- * byte-for-byte as git produced them, including the single-space rendering
20
- * of blank context lines, which `re-export.integration.test.ts` pins.
21
- */
22
- export function normalizePatchArtifact(content) {
23
- return content;
24
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Public re-exports for {@link ./patch-lint.ts}. Split out so the
3
- * orchestrator stays within the ESLint `max-lines` budget.
4
- */
5
- export { buildPatchQueueContext, collectForwardImportEdges, collectNewFileCreatorsByPath, extractImportSpecifiers, extractImportSpecifiersWithLines, findForwardImportIgnoreLines, FORWARD_IMPORT_IGNORE_MARKER, isForwardImportableFile, lintPatchQueue, lintPatchQueueDuplicateCreations, lintPatchQueueForwardImports, type PatchQueueContext, type PatchQueueEntry, } from './patch-lint-cross.js';
6
- export { buildModifiedFileAdditionsFromDiff, detectNewFilesInDiff } from './patch-lint-diff.js';
7
- export { lintPatchQueueModuleRegistrations } from './patch-lint-module-registration.js';
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: EUPL-1.2
2
- /**
3
- * Public re-exports for {@link ./patch-lint.ts}. Split out so the
4
- * orchestrator stays within the ESLint `max-lines` budget.
5
- */
6
- export { buildPatchQueueContext, collectForwardImportEdges, collectNewFileCreatorsByPath, extractImportSpecifiers, extractImportSpecifiersWithLines, findForwardImportIgnoreLines, FORWARD_IMPORT_IGNORE_MARKER, isForwardImportableFile, lintPatchQueue, lintPatchQueueDuplicateCreations, lintPatchQueueForwardImports, } from './patch-lint-cross.js';
7
- export { buildModifiedFileAdditionsFromDiff, detectNewFilesInDiff } from './patch-lint-diff.js';
8
- export { lintPatchQueueModuleRegistrations } from './patch-lint-module-registration.js';
@@ -1,7 +0,0 @@
1
- /**
2
- * Wire targets barrel — re-exports all wiring target modules.
3
- */
4
- export { addDestroyToBrowserInit } from './wire-destroy.js';
5
- export { addDomFragment } from './wire-dom-fragment.js';
6
- export { addInitToBrowserInit } from './wire-init.js';
7
- export { addSubscriptToBrowserMain } from './wire-subscript.js';
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: EUPL-1.2
2
- /**
3
- * Wire targets barrel — re-exports all wiring target modules.
4
- */
5
- export { addDestroyToBrowserInit } from './wire-destroy.js';
6
- export { addDomFragment } from './wire-dom-fragment.js';
7
- export { addInitToBrowserInit } from './wire-init.js';
8
- export { addSubscriptToBrowserMain } from './wire-subscript.js';