@hominis/fireforge 0.46.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 (606) hide show
  1. package/CHANGELOG.md +381 -498
  2. package/dist/bin/fireforge.d.ts +1 -1
  3. package/dist/bin/fireforge.js +17 -17
  4. package/dist/build-info.json +4 -4
  5. package/dist/src/cli-usage-error.d.ts +9 -9
  6. package/dist/src/cli-usage-error.js +12 -12
  7. package/dist/src/cli.d.ts +3 -2
  8. package/dist/src/cli.js +29 -28
  9. package/dist/src/commands/bootstrap-checks.js +2 -1
  10. package/dist/src/commands/bootstrap.js +2 -2
  11. package/dist/src/commands/build.js +12 -11
  12. package/dist/src/commands/config.js +9 -9
  13. package/dist/src/commands/destructive-decision.d.ts +4 -4
  14. package/dist/src/commands/destructive-decision.js +4 -4
  15. package/dist/src/commands/discard.js +5 -5
  16. package/dist/src/commands/doctor-check-core.d.ts +4 -4
  17. package/dist/src/commands/doctor-external-toolchains.js +2 -2
  18. package/dist/src/commands/doctor-furnace-config-sync.d.ts +2 -2
  19. package/dist/src/commands/doctor-furnace-config-sync.js +20 -20
  20. package/dist/src/commands/doctor-furnace-jar.d.ts +1 -1
  21. package/dist/src/commands/doctor-furnace-jar.js +1 -1
  22. package/dist/src/commands/doctor-furnace.js +22 -22
  23. package/dist/src/commands/doctor-orphaned-harness.d.ts +10 -11
  24. package/dist/src/commands/doctor-orphaned-harness.js +10 -11
  25. package/dist/src/commands/doctor-patch-manifest.d.ts +2 -1
  26. package/dist/src/commands/doctor-patch-manifest.js +7 -6
  27. package/dist/src/commands/doctor-post-rebase-audit.js +2 -2
  28. package/dist/src/commands/doctor-source-pin.d.ts +12 -12
  29. package/dist/src/commands/doctor-source-pin.js +14 -14
  30. package/dist/src/commands/doctor-working-tree.d.ts +3 -3
  31. package/dist/src/commands/doctor-working-tree.js +3 -3
  32. package/dist/src/commands/doctor.d.ts +2 -2
  33. package/dist/src/commands/doctor.js +9 -9
  34. package/dist/src/commands/download.js +15 -13
  35. package/dist/src/commands/export-all.js +8 -8
  36. package/dist/src/commands/export-flow.d.ts +5 -5
  37. package/dist/src/commands/export-flow.js +14 -14
  38. package/dist/src/commands/export-placement-conflicts.d.ts +3 -3
  39. package/dist/src/commands/export-placement-conflicts.js +9 -9
  40. package/dist/src/commands/export-placement-gate.d.ts +2 -2
  41. package/dist/src/commands/export-placement-gate.js +5 -5
  42. package/dist/src/commands/export-placement-policy.d.ts +1 -1
  43. package/dist/src/commands/export-placement-policy.js +1 -1
  44. package/dist/src/commands/export-shared.d.ts +10 -10
  45. package/dist/src/commands/export-shared.js +13 -13
  46. package/dist/src/commands/export.js +4 -4
  47. package/dist/src/commands/furnace/apply.js +16 -16
  48. package/dist/src/commands/furnace/chrome-doc-remove.d.ts +1 -1
  49. package/dist/src/commands/furnace/chrome-doc-remove.js +1 -1
  50. package/dist/src/commands/furnace/chrome-doc-templates.d.ts +14 -14
  51. package/dist/src/commands/furnace/chrome-doc-templates.js +17 -17
  52. package/dist/src/commands/furnace/chrome-doc-tests.d.ts +2 -2
  53. package/dist/src/commands/furnace/chrome-doc-tests.js +4 -4
  54. package/dist/src/commands/furnace/chrome-doc.d.ts +8 -8
  55. package/dist/src/commands/furnace/chrome-doc.js +18 -18
  56. package/dist/src/commands/furnace/create-browser-test.d.ts +1 -1
  57. package/dist/src/commands/furnace/create-browser-test.js +4 -4
  58. package/dist/src/commands/furnace/create-dry-run.d.ts +4 -4
  59. package/dist/src/commands/furnace/create-dry-run.js +4 -4
  60. package/dist/src/commands/furnace/create-features.d.ts +2 -2
  61. package/dist/src/commands/furnace/create-features.js +2 -2
  62. package/dist/src/commands/furnace/create-mochikit.d.ts +4 -4
  63. package/dist/src/commands/furnace/create-mochikit.js +7 -7
  64. package/dist/src/commands/furnace/create-templates.d.ts +14 -14
  65. package/dist/src/commands/furnace/create-templates.js +18 -18
  66. package/dist/src/commands/furnace/create-xpcshell.d.ts +5 -5
  67. package/dist/src/commands/furnace/create-xpcshell.js +8 -8
  68. package/dist/src/commands/furnace/create.d.ts +1 -1
  69. package/dist/src/commands/furnace/create.js +10 -10
  70. package/dist/src/commands/furnace/deploy.js +4 -4
  71. package/dist/src/commands/furnace/diff.js +7 -7
  72. package/dist/src/commands/furnace/index.js +1 -1
  73. package/dist/src/commands/furnace/init.js +15 -15
  74. package/dist/src/commands/furnace/list.js +2 -2
  75. package/dist/src/commands/furnace/override.d.ts +1 -1
  76. package/dist/src/commands/furnace/override.js +15 -15
  77. package/dist/src/commands/furnace/preview.js +17 -17
  78. package/dist/src/commands/furnace/refresh.js +6 -6
  79. package/dist/src/commands/furnace/remove-mutations.d.ts +3 -3
  80. package/dist/src/commands/furnace/remove-mutations.js +19 -18
  81. package/dist/src/commands/furnace/remove-state.d.ts +1 -1
  82. package/dist/src/commands/furnace/remove-state.js +1 -1
  83. package/dist/src/commands/furnace/remove.js +2 -2
  84. package/dist/src/commands/furnace/rename-browser-test.js +9 -8
  85. package/dist/src/commands/furnace/rename-xpcshell.d.ts +2 -2
  86. package/dist/src/commands/furnace/rename-xpcshell.js +3 -3
  87. package/dist/src/commands/furnace/rename.js +9 -9
  88. package/dist/src/commands/furnace/scan.js +3 -3
  89. package/dist/src/commands/furnace/status.js +7 -7
  90. package/dist/src/commands/furnace/sync.js +6 -6
  91. package/dist/src/commands/furnace/test-file-name.d.ts +2 -2
  92. package/dist/src/commands/furnace/test-file-name.js +2 -2
  93. package/dist/src/commands/furnace/validate.js +11 -12
  94. package/dist/src/commands/import.js +20 -20
  95. package/dist/src/commands/lint-per-patch.js +8 -8
  96. package/dist/src/commands/lint-per-run-checkjs.d.ts +12 -13
  97. package/dist/src/commands/lint-per-run-checkjs.js +14 -15
  98. package/dist/src/commands/lint-report.d.ts +3 -3
  99. package/dist/src/commands/lint-report.js +4 -4
  100. package/dist/src/commands/lint.d.ts +3 -3
  101. package/dist/src/commands/lint.js +35 -35
  102. package/dist/src/commands/manifest.d.ts +4 -4
  103. package/dist/src/commands/package.js +2 -2
  104. package/dist/src/commands/patch/compact.d.ts +2 -2
  105. package/dist/src/commands/patch/compact.js +8 -8
  106. package/dist/src/commands/patch/delete.d.ts +1 -1
  107. package/dist/src/commands/patch/delete.js +8 -8
  108. package/dist/src/commands/patch/lint-ignore.d.ts +3 -4
  109. package/dist/src/commands/patch/lint-ignore.js +14 -15
  110. package/dist/src/commands/patch/move-files-create.d.ts +2 -2
  111. package/dist/src/commands/patch/move-files-create.js +5 -5
  112. package/dist/src/commands/patch/move-files-into.d.ts +2 -2
  113. package/dist/src/commands/patch/move-files-into.js +3 -3
  114. package/dist/src/commands/patch/move-files.js +1 -1
  115. package/dist/src/commands/patch/patch-context.d.ts +1 -1
  116. package/dist/src/commands/patch/rename.d.ts +4 -4
  117. package/dist/src/commands/patch/rename.js +8 -8
  118. package/dist/src/commands/patch/reorder.js +10 -10
  119. package/dist/src/commands/patch/split-plan.d.ts +3 -3
  120. package/dist/src/commands/patch/split-plan.js +6 -5
  121. package/dist/src/commands/patch/split.d.ts +2 -2
  122. package/dist/src/commands/patch/split.js +5 -5
  123. package/dist/src/commands/patch/staged-dependency-validate.d.ts +1 -1
  124. package/dist/src/commands/patch/staged-dependency-validate.js +3 -3
  125. package/dist/src/commands/patch/staged-dependency.d.ts +1 -1
  126. package/dist/src/commands/patch/staged-dependency.js +6 -6
  127. package/dist/src/commands/patch/tier.d.ts +2 -2
  128. package/dist/src/commands/patch/tier.js +5 -5
  129. package/dist/src/commands/patch-rename-map.d.ts +1 -1
  130. package/dist/src/commands/patch-rename-map.js +1 -1
  131. package/dist/src/commands/pending-resolution.d.ts +5 -5
  132. package/dist/src/commands/pending-resolution.js +5 -5
  133. package/dist/src/commands/re-export-adjacent.d.ts +3 -3
  134. package/dist/src/commands/re-export-adjacent.js +8 -8
  135. package/dist/src/commands/re-export-bulk-scan.d.ts +3 -3
  136. package/dist/src/commands/re-export-bulk-scan.js +17 -17
  137. package/dist/src/commands/re-export-drift.d.ts +10 -10
  138. package/dist/src/commands/re-export-drift.js +29 -29
  139. package/dist/src/commands/re-export-files.js +14 -15
  140. package/dist/src/commands/re-export-lint.d.ts +26 -26
  141. package/dist/src/commands/re-export-lint.js +27 -27
  142. package/dist/src/commands/re-export-options.d.ts +1 -1
  143. package/dist/src/commands/re-export-options.js +1 -1
  144. package/dist/src/commands/re-export-register.d.ts +1 -1
  145. package/dist/src/commands/re-export-register.js +1 -1
  146. package/dist/src/commands/re-export-scan.d.ts +1 -1
  147. package/dist/src/commands/re-export-scan.js +7 -7
  148. package/dist/src/commands/re-export-single.d.ts +1 -1
  149. package/dist/src/commands/re-export-single.js +20 -20
  150. package/dist/src/commands/re-export.js +7 -6
  151. package/dist/src/commands/rebase/abort.js +6 -6
  152. package/dist/src/commands/rebase/continue.js +8 -7
  153. package/dist/src/commands/rebase/index.d.ts +1 -1
  154. package/dist/src/commands/rebase/index.js +3 -3
  155. package/dist/src/commands/rebase/patch-loop.js +18 -17
  156. package/dist/src/commands/register.js +5 -5
  157. package/dist/src/commands/reset.js +1 -1
  158. package/dist/src/commands/resolve.d.ts +2 -2
  159. package/dist/src/commands/resolve.js +3 -3
  160. package/dist/src/commands/run.js +26 -26
  161. package/dist/src/commands/setup-support.js +4 -4
  162. package/dist/src/commands/setup.js +1 -1
  163. package/dist/src/commands/source.js +1 -1
  164. package/dist/src/commands/status-check.d.ts +3 -3
  165. package/dist/src/commands/status-check.js +4 -4
  166. package/dist/src/commands/status-json.d.ts +14 -13
  167. package/dist/src/commands/status-json.js +9 -8
  168. package/dist/src/commands/status-output.d.ts +3 -3
  169. package/dist/src/commands/status-output.js +3 -3
  170. package/dist/src/commands/status-ownership.d.ts +3 -3
  171. package/dist/src/commands/status-ownership.js +3 -3
  172. package/dist/src/commands/status.js +22 -22
  173. package/dist/src/commands/test-build-phase.d.ts +1 -1
  174. package/dist/src/commands/test-build-phase.js +17 -17
  175. package/dist/src/commands/test-diagnose.d.ts +1 -1
  176. package/dist/src/commands/test-diagnose.js +20 -20
  177. package/dist/src/commands/test-modes.d.ts +2 -2
  178. package/dist/src/commands/test-modes.js +4 -4
  179. package/dist/src/commands/test-run.d.ts +11 -11
  180. package/dist/src/commands/test-run.js +15 -15
  181. package/dist/src/commands/test-stale-gate.d.ts +12 -12
  182. package/dist/src/commands/test-stale-gate.js +13 -13
  183. package/dist/src/commands/test-verdict.d.ts +6 -6
  184. package/dist/src/commands/test-verdict.js +11 -11
  185. package/dist/src/commands/test.d.ts +3 -3
  186. package/dist/src/commands/test.js +36 -36
  187. package/dist/src/commands/token-coverage.js +3 -3
  188. package/dist/src/commands/token-list.js +5 -5
  189. package/dist/src/commands/token.js +9 -9
  190. package/dist/src/commands/tree.js +19 -19
  191. package/dist/src/commands/typecheck.d.ts +6 -6
  192. package/dist/src/commands/typecheck.js +7 -7
  193. package/dist/src/commands/verify.d.ts +3 -3
  194. package/dist/src/commands/verify.js +10 -10
  195. package/dist/src/commands/watch.js +11 -11
  196. package/dist/src/commands/wire.js +13 -13
  197. package/dist/src/core/ast-utils.d.ts +7 -7
  198. package/dist/src/core/ast-utils.js +8 -8
  199. package/dist/src/core/branding.d.ts +5 -5
  200. package/dist/src/core/branding.js +3 -3
  201. package/dist/src/core/browser-wire.d.ts +1 -1
  202. package/dist/src/core/browser-wire.js +4 -4
  203. package/dist/src/core/build-audit-platform.d.ts +6 -6
  204. package/dist/src/core/build-audit-platform.js +26 -26
  205. package/dist/src/core/build-audit-registration.d.ts +5 -5
  206. package/dist/src/core/build-audit-registration.js +7 -7
  207. package/dist/src/core/build-audit-resolve.d.ts +5 -5
  208. package/dist/src/core/build-audit-resolve.js +6 -6
  209. package/dist/src/core/build-audit-skip.d.ts +8 -8
  210. package/dist/src/core/build-audit-skip.js +12 -12
  211. package/dist/src/core/build-audit-transforms.d.ts +2 -2
  212. package/dist/src/core/build-audit-transforms.js +3 -3
  213. package/dist/src/core/build-audit.d.ts +8 -8
  214. package/dist/src/core/build-audit.js +39 -37
  215. package/dist/src/core/build-baseline-types.d.ts +19 -18
  216. package/dist/src/core/build-baseline-types.js +1 -1
  217. package/dist/src/core/build-baseline.d.ts +8 -8
  218. package/dist/src/core/build-baseline.js +14 -14
  219. package/dist/src/core/build-jar-escalation.d.ts +8 -8
  220. package/dist/src/core/build-jar-escalation.js +15 -15
  221. package/dist/src/core/build-overwrite-guard.d.ts +4 -4
  222. package/dist/src/core/build-overwrite-guard.js +13 -13
  223. package/dist/src/core/build-prepare.d.ts +4 -4
  224. package/dist/src/core/build-prepare.js +16 -15
  225. package/dist/src/core/config-mutate.js +4 -4
  226. package/dist/src/core/config-state.js +2 -2
  227. package/dist/src/core/config-validate-build-audit.js +3 -3
  228. package/dist/src/core/config-validate-file-size.d.ts +1 -1
  229. package/dist/src/core/config-validate-file-size.js +2 -2
  230. package/dist/src/core/config-validate.js +8 -9
  231. package/dist/src/core/config.d.ts +10 -10
  232. package/dist/src/core/config.js +10 -10
  233. package/dist/src/core/coverage-extend.d.ts +16 -16
  234. package/dist/src/core/coverage-extend.js +16 -16
  235. package/dist/src/core/destructive.d.ts +14 -14
  236. package/dist/src/core/destructive.js +9 -9
  237. package/dist/src/core/diff-hunks.d.ts +2 -2
  238. package/dist/src/core/diff-hunks.js +7 -7
  239. package/dist/src/core/discard-baseline.d.ts +10 -10
  240. package/dist/src/core/discard-baseline.js +15 -16
  241. package/dist/src/core/display-state.d.ts +11 -11
  242. package/dist/src/core/display-state.js +12 -12
  243. package/dist/src/core/engine-changes.d.ts +2 -2
  244. package/dist/src/core/engine-changes.js +2 -2
  245. package/dist/src/core/engine-precondition.d.ts +4 -4
  246. package/dist/src/core/engine-precondition.js +2 -2
  247. package/dist/src/core/engine-session-lock.d.ts +18 -18
  248. package/dist/src/core/engine-session-lock.js +37 -37
  249. package/dist/src/core/export-moved-code-shape.d.ts +7 -7
  250. package/dist/src/core/export-moved-code-shape.js +8 -8
  251. package/dist/src/core/file-lock-owner.d.ts +11 -11
  252. package/dist/src/core/file-lock-owner.js +18 -18
  253. package/dist/src/core/file-lock.d.ts +12 -12
  254. package/dist/src/core/file-lock.js +52 -39
  255. package/dist/src/core/firefox-cache.d.ts +1 -1
  256. package/dist/src/core/firefox-cache.js +10 -10
  257. package/dist/src/core/firefox-download.d.ts +3 -3
  258. package/dist/src/core/firefox-download.js +6 -6
  259. package/dist/src/core/firefox-extract.d.ts +2 -2
  260. package/dist/src/core/firefox-extract.js +13 -13
  261. package/dist/src/core/firefox.d.ts +5 -5
  262. package/dist/src/core/firefox.js +8 -8
  263. package/dist/src/core/furnace-apply-dry-run.js +1 -1
  264. package/dist/src/core/furnace-apply-ftl.d.ts +5 -5
  265. package/dist/src/core/furnace-apply-ftl.js +8 -8
  266. package/dist/src/core/furnace-apply-helpers.d.ts +9 -9
  267. package/dist/src/core/furnace-apply-helpers.js +21 -21
  268. package/dist/src/core/furnace-apply-output.js +1 -1
  269. package/dist/src/core/furnace-apply-overwrite-warn.d.ts +9 -9
  270. package/dist/src/core/furnace-apply-overwrite-warn.js +9 -9
  271. package/dist/src/core/furnace-apply-undeploy-actions.d.ts +1 -1
  272. package/dist/src/core/furnace-apply-undeploy-actions.js +1 -1
  273. package/dist/src/core/furnace-apply.d.ts +3 -3
  274. package/dist/src/core/furnace-apply.js +22 -21
  275. package/dist/src/core/furnace-checksum-utils.d.ts +5 -5
  276. package/dist/src/core/furnace-checksum-utils.js +5 -5
  277. package/dist/src/core/furnace-config-custom.d.ts +1 -1
  278. package/dist/src/core/furnace-config-custom.js +2 -2
  279. package/dist/src/core/furnace-config-order.js +1 -1
  280. package/dist/src/core/furnace-config-tokens.d.ts +3 -3
  281. package/dist/src/core/furnace-config-tokens.js +3 -3
  282. package/dist/src/core/furnace-config-validate.js +2 -2
  283. package/dist/src/core/furnace-config.d.ts +4 -4
  284. package/dist/src/core/furnace-config.js +18 -18
  285. package/dist/src/core/furnace-constants.d.ts +6 -6
  286. package/dist/src/core/furnace-constants.js +6 -6
  287. package/dist/src/core/furnace-css-fragments.d.ts +6 -6
  288. package/dist/src/core/furnace-css-fragments.js +11 -11
  289. package/dist/src/core/furnace-dir-entry.d.ts +1 -1
  290. package/dist/src/core/furnace-dir-entry.js +1 -1
  291. package/dist/src/core/furnace-jsconfig.d.ts +7 -7
  292. package/dist/src/core/furnace-jsconfig.js +22 -20
  293. package/dist/src/core/furnace-operation.d.ts +21 -20
  294. package/dist/src/core/furnace-operation.js +36 -34
  295. package/dist/src/core/furnace-precondition.d.ts +10 -10
  296. package/dist/src/core/furnace-precondition.js +8 -8
  297. package/dist/src/core/furnace-refresh.js +2 -2
  298. package/dist/src/core/furnace-registration-ast.d.ts +2 -2
  299. package/dist/src/core/furnace-registration-ast.js +9 -9
  300. package/dist/src/core/furnace-registration-remove.d.ts +4 -4
  301. package/dist/src/core/furnace-registration-remove.js +6 -6
  302. package/dist/src/core/furnace-registration-validate.d.ts +2 -2
  303. package/dist/src/core/furnace-registration-validate.js +2 -2
  304. package/dist/src/core/furnace-registration.d.ts +5 -5
  305. package/dist/src/core/furnace-registration.js +7 -7
  306. package/dist/src/core/furnace-rollback.d.ts +1 -1
  307. package/dist/src/core/furnace-rollback.js +5 -5
  308. package/dist/src/core/furnace-stale-export.d.ts +17 -16
  309. package/dist/src/core/furnace-stale-export.js +16 -15
  310. package/dist/src/core/furnace-staleness.d.ts +2 -2
  311. package/dist/src/core/furnace-staleness.js +2 -2
  312. package/dist/src/core/furnace-state-persist.d.ts +10 -10
  313. package/dist/src/core/furnace-state-persist.js +10 -10
  314. package/dist/src/core/furnace-step-errors.d.ts +6 -6
  315. package/dist/src/core/furnace-step-errors.js +6 -6
  316. package/dist/src/core/furnace-validate-accessibility.js +14 -14
  317. package/dist/src/core/furnace-validate-compatibility.js +9 -9
  318. package/dist/src/core/furnace-validate-registration.d.ts +2 -2
  319. package/dist/src/core/furnace-validate-registration.js +13 -13
  320. package/dist/src/core/furnace-validate-structure.d.ts +1 -1
  321. package/dist/src/core/furnace-validate-structure.js +4 -4
  322. package/dist/src/core/furnace-validate.js +9 -9
  323. package/dist/src/core/furnace-version-drift.d.ts +5 -5
  324. package/dist/src/core/furnace-version-drift.js +5 -5
  325. package/dist/src/core/git-base.d.ts +4 -4
  326. package/dist/src/core/git-base.js +9 -9
  327. package/dist/src/core/git-diff-new-file.d.ts +4 -4
  328. package/dist/src/core/git-diff-new-file.js +8 -8
  329. package/dist/src/core/git-diff.d.ts +4 -4
  330. package/dist/src/core/git-diff.js +35 -34
  331. package/dist/src/core/git-file-ops.d.ts +6 -6
  332. package/dist/src/core/git-file-ops.js +7 -7
  333. package/dist/src/core/git-readonly-index.d.ts +12 -12
  334. package/dist/src/core/git-readonly-index.js +12 -12
  335. package/dist/src/core/git-status.d.ts +4 -4
  336. package/dist/src/core/git-status.js +4 -4
  337. package/dist/src/core/git.d.ts +3 -3
  338. package/dist/src/core/git.js +14 -14
  339. package/dist/src/core/harness-orphans.d.ts +17 -17
  340. package/dist/src/core/harness-orphans.js +20 -20
  341. package/dist/src/core/history-log.d.ts +3 -3
  342. package/dist/src/core/history-log.js +3 -3
  343. package/dist/src/core/license-headers.d.ts +19 -18
  344. package/dist/src/core/license-headers.js +29 -28
  345. package/dist/src/core/mach-build-artifacts.d.ts +21 -21
  346. package/dist/src/core/mach-build-artifacts.js +23 -23
  347. package/dist/src/core/mach-error-hints.d.ts +5 -5
  348. package/dist/src/core/mach-error-hints.js +13 -13
  349. package/dist/src/core/mach-known-noise-filter.d.ts +41 -38
  350. package/dist/src/core/mach-known-noise-filter.js +53 -50
  351. package/dist/src/core/mach-mozconfig.d.ts +6 -6
  352. package/dist/src/core/mach-mozconfig.js +15 -15
  353. package/dist/src/core/mach-python.d.ts +2 -1
  354. package/dist/src/core/mach-python.js +4 -3
  355. package/dist/src/core/mach-resource-shim.d.ts +12 -12
  356. package/dist/src/core/mach-resource-shim.js +20 -20
  357. package/dist/src/core/mach.d.ts +23 -23
  358. package/dist/src/core/mach.js +36 -36
  359. package/dist/src/core/marionette-port.d.ts +15 -13
  360. package/dist/src/core/marionette-port.js +34 -31
  361. package/dist/src/core/marionette-preflight.d.ts +6 -6
  362. package/dist/src/core/marionette-preflight.js +23 -23
  363. package/dist/src/core/markdown-table.d.ts +9 -9
  364. package/dist/src/core/markdown-table.js +14 -14
  365. package/dist/src/core/mochitest-server-port.d.ts +8 -8
  366. package/dist/src/core/mochitest-server-port.js +14 -14
  367. package/dist/src/core/module-resolution-preflight.d.ts +8 -8
  368. package/dist/src/core/module-resolution-preflight.js +11 -11
  369. package/dist/src/core/moz-manifest-helpers.d.ts +7 -7
  370. package/dist/src/core/moz-manifest-helpers.js +7 -7
  371. package/dist/src/core/moz-manifest-register.d.ts +1 -1
  372. package/dist/src/core/moz-manifest-register.js +2 -2
  373. package/dist/src/core/moz-manifest-rules.js +11 -11
  374. package/dist/src/core/moz-manifest-tokenizers.js +1 -1
  375. package/dist/src/core/ownership-table.d.ts +5 -5
  376. package/dist/src/core/ownership-table.js +7 -7
  377. package/dist/src/core/parser-fallback.d.ts +3 -3
  378. package/dist/src/core/parser-fallback.js +3 -3
  379. package/dist/src/core/patch-apply-fuzz.d.ts +5 -5
  380. package/dist/src/core/patch-apply-fuzz.js +9 -9
  381. package/dist/src/core/patch-apply.d.ts +9 -9
  382. package/dist/src/core/patch-apply.js +30 -30
  383. package/dist/src/core/patch-export-update.d.ts +4 -4
  384. package/dist/src/core/patch-export-update.js +3 -3
  385. package/dist/src/core/patch-export.d.ts +10 -10
  386. package/dist/src/core/patch-export.js +13 -13
  387. package/dist/src/core/patch-identifier-suggest.d.ts +1 -1
  388. package/dist/src/core/patch-identifier-suggest.js +4 -4
  389. package/dist/src/core/patch-lint-binary.d.ts +7 -7
  390. package/dist/src/core/patch-lint-cache.d.ts +2 -2
  391. package/dist/src/core/patch-lint-cache.js +13 -13
  392. package/dist/src/core/patch-lint-checkjs.d.ts +26 -26
  393. package/dist/src/core/patch-lint-checkjs.js +42 -41
  394. package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +8 -9
  395. package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -11
  396. package/dist/src/core/patch-lint-creators.d.ts +3 -3
  397. package/dist/src/core/patch-lint-creators.js +3 -3
  398. package/dist/src/core/patch-lint-cross.d.ts +13 -13
  399. package/dist/src/core/patch-lint-cross.js +21 -21
  400. package/dist/src/core/patch-lint-css.d.ts +1 -1
  401. package/dist/src/core/patch-lint-css.js +5 -5
  402. package/dist/src/core/patch-lint-diff-tag.d.ts +5 -5
  403. package/dist/src/core/patch-lint-diff-tag.js +5 -5
  404. package/dist/src/core/patch-lint-diff.d.ts +4 -4
  405. package/dist/src/core/patch-lint-diff.js +4 -4
  406. package/dist/src/core/patch-lint-file-size.d.ts +3 -3
  407. package/dist/src/core/patch-lint-file-size.js +3 -3
  408. package/dist/src/core/patch-lint-forward-registration.d.ts +4 -4
  409. package/dist/src/core/patch-lint-forward-registration.js +12 -12
  410. package/dist/src/core/patch-lint-jsdoc.d.ts +2 -2
  411. package/dist/src/core/patch-lint-jsdoc.js +11 -11
  412. package/dist/src/core/patch-lint-module-registration.d.ts +1 -1
  413. package/dist/src/core/patch-lint-module-registration.js +1 -1
  414. package/dist/src/core/patch-lint-mozbuild.d.ts +1 -1
  415. package/dist/src/core/patch-lint-mozbuild.js +10 -10
  416. package/dist/src/core/patch-lint-observer.d.ts +3 -3
  417. package/dist/src/core/patch-lint-observer.js +7 -7
  418. package/dist/src/core/patch-lint-ownership.d.ts +6 -6
  419. package/dist/src/core/patch-lint-ownership.js +6 -6
  420. package/dist/src/core/patch-lint-prettier.d.ts +6 -6
  421. package/dist/src/core/patch-lint-prettier.js +6 -6
  422. package/dist/src/core/patch-lint-queue-types.d.ts +1 -1
  423. package/dist/src/core/patch-lint-queue-types.js +1 -1
  424. package/dist/src/core/patch-lint-staged-registration.d.ts +2 -2
  425. package/dist/src/core/patch-lint-staged-registration.js +6 -6
  426. package/dist/src/core/patch-lint-unmanaged-companion.d.ts +23 -23
  427. package/dist/src/core/patch-lint-unmanaged-companion.js +26 -26
  428. package/dist/src/core/patch-lint.d.ts +27 -26
  429. package/dist/src/core/patch-lint.js +48 -46
  430. package/dist/src/core/patch-lock.d.ts +1 -1
  431. package/dist/src/core/patch-lock.js +8 -8
  432. package/dist/src/core/patch-manifest-consistency.d.ts +7 -7
  433. package/dist/src/core/patch-manifest-consistency.js +16 -17
  434. package/dist/src/core/patch-manifest-files-affected.d.ts +1 -1
  435. package/dist/src/core/patch-manifest-files-affected.js +3 -3
  436. package/dist/src/core/patch-manifest-io.d.ts +14 -14
  437. package/dist/src/core/patch-manifest-io.js +27 -27
  438. package/dist/src/core/patch-manifest-query.d.ts +1 -1
  439. package/dist/src/core/patch-manifest-query.js +4 -4
  440. package/dist/src/core/patch-manifest-resolve.d.ts +5 -5
  441. package/dist/src/core/patch-manifest-resolve.js +7 -7
  442. package/dist/src/core/patch-manifest-validate.js +3 -3
  443. package/dist/src/core/patch-manifest.d.ts +2 -2
  444. package/dist/src/core/patch-manifest.js +2 -2
  445. package/dist/src/core/patch-parse.d.ts +14 -14
  446. package/dist/src/core/patch-parse.js +16 -16
  447. package/dist/src/core/patch-registration-refs.d.ts +4 -4
  448. package/dist/src/core/patch-registration-refs.js +7 -7
  449. package/dist/src/core/patch-transform.d.ts +8 -8
  450. package/dist/src/core/patch-transform.js +13 -13
  451. package/dist/src/core/process-cpu-time.d.ts +1 -1
  452. package/dist/src/core/process-cpu-time.js +5 -5
  453. package/dist/src/core/rebase-session.d.ts +7 -7
  454. package/dist/src/core/rebase-session.js +8 -8
  455. package/dist/src/core/register-result.d.ts +1 -1
  456. package/dist/src/core/register-result.js +1 -1
  457. package/dist/src/core/register-scaffold.d.ts +2 -2
  458. package/dist/src/core/register-scaffold.js +3 -3
  459. package/dist/src/core/register-shared-css.d.ts +3 -3
  460. package/dist/src/core/register-shared-css.js +4 -4
  461. package/dist/src/core/register-xpcshell-test.d.ts +2 -2
  462. package/dist/src/core/register-xpcshell-test.js +2 -2
  463. package/dist/src/core/run-log-redact.d.ts +12 -12
  464. package/dist/src/core/run-log-redact.js +16 -16
  465. package/dist/src/core/run-log.d.ts +9 -9
  466. package/dist/src/core/run-log.js +14 -14
  467. package/dist/src/core/shared-ftl.d.ts +2 -2
  468. package/dist/src/core/shared-ftl.js +6 -6
  469. package/dist/src/core/signal-critical.d.ts +2 -2
  470. package/dist/src/core/signal-critical.js +2 -2
  471. package/dist/src/core/smoke-patterns.d.ts +5 -5
  472. package/dist/src/core/smoke-patterns.js +9 -9
  473. package/dist/src/core/state-file.d.ts +3 -3
  474. package/dist/src/core/status-binary.d.ts +8 -8
  475. package/dist/src/core/status-binary.js +12 -12
  476. package/dist/src/core/status-classify.d.ts +17 -17
  477. package/dist/src/core/status-classify.js +11 -11
  478. package/dist/src/core/test-changed-prefs.d.ts +12 -12
  479. package/dist/src/core/test-changed-prefs.js +15 -15
  480. package/dist/src/core/test-harness-crash.d.ts +39 -39
  481. package/dist/src/core/test-harness-crash.js +67 -67
  482. package/dist/src/core/test-harness-output.d.ts +7 -7
  483. package/dist/src/core/test-harness-output.js +7 -7
  484. package/dist/src/core/test-harness-verdict-notes.d.ts +13 -14
  485. package/dist/src/core/test-harness-verdict-notes.js +4 -4
  486. package/dist/src/core/test-path-scope.d.ts +8 -8
  487. package/dist/src/core/test-path-scope.js +11 -11
  488. package/dist/src/core/test-stale-check.d.ts +22 -21
  489. package/dist/src/core/test-stale-check.js +29 -28
  490. package/dist/src/core/test-stale-symlink.d.ts +1 -1
  491. package/dist/src/core/test-stale-symlink.js +1 -1
  492. package/dist/src/core/test-stall-triage.d.ts +9 -9
  493. package/dist/src/core/test-stall-triage.js +22 -22
  494. package/dist/src/core/token-category.d.ts +4 -4
  495. package/dist/src/core/token-category.js +13 -12
  496. package/dist/src/core/token-coverage.js +4 -5
  497. package/dist/src/core/token-dark-mode.d.ts +9 -9
  498. package/dist/src/core/token-dark-mode.js +11 -11
  499. package/dist/src/core/token-docs.d.ts +1 -1
  500. package/dist/src/core/token-inventory.d.ts +6 -6
  501. package/dist/src/core/token-inventory.js +7 -7
  502. package/dist/src/core/token-manager.d.ts +3 -3
  503. package/dist/src/core/token-manager.js +21 -21
  504. package/dist/src/core/token-scaffold.d.ts +4 -4
  505. package/dist/src/core/token-scaffold.js +4 -4
  506. package/dist/src/core/token-variant.d.ts +14 -14
  507. package/dist/src/core/token-variant.js +32 -32
  508. package/dist/src/core/toolchain-preflight.d.ts +15 -15
  509. package/dist/src/core/toolchain-preflight.js +22 -22
  510. package/dist/src/core/tree-cow.d.ts +3 -3
  511. package/dist/src/core/tree-cow.js +6 -6
  512. package/dist/src/core/tree-guard.d.ts +3 -3
  513. package/dist/src/core/tree-guard.js +23 -23
  514. package/dist/src/core/tree-store.d.ts +15 -15
  515. package/dist/src/core/tree-store.js +35 -33
  516. package/dist/src/core/typecheck-shim.d.ts +16 -15
  517. package/dist/src/core/typecheck-shim.js +26 -25
  518. package/dist/src/core/typecheck.d.ts +12 -12
  519. package/dist/src/core/typecheck.js +31 -31
  520. package/dist/src/core/wire-destroy.d.ts +2 -2
  521. package/dist/src/core/wire-destroy.js +5 -5
  522. package/dist/src/core/wire-dom-fragment.d.ts +3 -3
  523. package/dist/src/core/wire-dom-fragment.js +6 -6
  524. package/dist/src/core/wire-init.d.ts +2 -2
  525. package/dist/src/core/wire-init.js +7 -7
  526. package/dist/src/core/wire-subscript.d.ts +1 -1
  527. package/dist/src/core/wire-subscript.js +3 -3
  528. package/dist/src/core/wire-utils.d.ts +9 -9
  529. package/dist/src/core/wire-utils.js +11 -11
  530. package/dist/src/core/xpcshell-appdir.d.ts +20 -20
  531. package/dist/src/core/xpcshell-appdir.js +26 -26
  532. package/dist/src/core/xpcshell-profile-dir.d.ts +3 -3
  533. package/dist/src/core/xpcshell-profile-dir.js +7 -7
  534. package/dist/src/errors/base.d.ts +22 -21
  535. package/dist/src/errors/base.js +22 -21
  536. package/dist/src/errors/build.d.ts +6 -6
  537. package/dist/src/errors/build.js +6 -6
  538. package/dist/src/errors/codes.d.ts +10 -10
  539. package/dist/src/errors/codes.js +10 -10
  540. package/dist/src/errors/furnace.d.ts +2 -2
  541. package/dist/src/errors/git.d.ts +1 -1
  542. package/dist/src/errors/git.js +1 -1
  543. package/dist/src/errors/patch.d.ts +3 -3
  544. package/dist/src/errors/patch.js +3 -3
  545. package/dist/src/errors/rebase.d.ts +1 -1
  546. package/dist/src/errors/rebase.js +1 -1
  547. package/dist/src/errors/run.d.ts +1 -1
  548. package/dist/src/errors/run.js +1 -1
  549. package/dist/src/index.d.ts +4 -4
  550. package/dist/src/index.js +4 -4
  551. package/dist/src/types/commands/options.d.ts +86 -85
  552. package/dist/src/types/commands/patches.d.ts +19 -19
  553. package/dist/src/types/commands/project.d.ts +3 -3
  554. package/dist/src/types/config.d.ts +24 -23
  555. package/dist/src/types/furnace.d.ts +17 -17
  556. package/dist/src/types/json.d.ts +3 -3
  557. package/dist/src/types/json.js +2 -2
  558. package/dist/src/types/typecheck.d.ts +3 -3
  559. package/dist/src/utils/assert.d.ts +1 -1
  560. package/dist/src/utils/assert.js +6 -6
  561. package/dist/src/utils/build-info.d.ts +5 -5
  562. package/dist/src/utils/build-info.js +6 -6
  563. package/dist/src/utils/child-env.d.ts +5 -5
  564. package/dist/src/utils/child-env.js +5 -5
  565. package/dist/src/utils/concurrency.d.ts +2 -2
  566. package/dist/src/utils/concurrency.js +2 -2
  567. package/dist/src/utils/elapsed.js +1 -1
  568. package/dist/src/utils/errors.d.ts +8 -8
  569. package/dist/src/utils/errors.js +8 -8
  570. package/dist/src/utils/fs.d.ts +1 -1
  571. package/dist/src/utils/fs.js +8 -8
  572. package/dist/src/utils/line-dispatch.d.ts +3 -3
  573. package/dist/src/utils/line-dispatch.js +5 -5
  574. package/dist/src/utils/logger.d.ts +4 -4
  575. package/dist/src/utils/logger.js +11 -11
  576. package/dist/src/utils/machine-output.js +2 -2
  577. package/dist/src/utils/options.d.ts +13 -13
  578. package/dist/src/utils/options.js +20 -20
  579. package/dist/src/utils/package-root.js +2 -2
  580. package/dist/src/utils/paths.d.ts +4 -4
  581. package/dist/src/utils/paths.js +4 -4
  582. package/dist/src/utils/process-group.d.ts +8 -8
  583. package/dist/src/utils/process-group.js +19 -19
  584. package/dist/src/utils/process.d.ts +34 -33
  585. package/dist/src/utils/process.js +20 -19
  586. package/dist/src/utils/ps-duration.d.ts +4 -4
  587. package/dist/src/utils/ps-duration.js +6 -6
  588. package/dist/src/utils/regex.d.ts +4 -4
  589. package/dist/src/utils/regex.js +7 -7
  590. package/dist/src/utils/sleep.d.ts +7 -7
  591. package/dist/src/utils/sleep.js +7 -7
  592. package/dist/src/utils/stdio-drain.d.ts +7 -7
  593. package/dist/src/utils/stdio-drain.js +8 -8
  594. package/dist/src/utils/validation.d.ts +11 -12
  595. package/dist/src/utils/validation.js +20 -21
  596. package/docs/README.md +2 -2
  597. package/docs/configuration.md +120 -114
  598. package/docs/exit-codes.md +63 -58
  599. package/docs/furnace.md +20 -19
  600. package/docs/lifecycle-invariants.md +412 -251
  601. package/docs/machine-output.md +33 -32
  602. package/docs/patch-workflow.md +48 -45
  603. package/docs/run-logs.md +62 -58
  604. package/docs/testing.md +101 -101
  605. package/docs/verification-trees.md +23 -22
  606. package/package.json +2 -2
@@ -6,15 +6,15 @@ import { walk } from 'estree-walker';
6
6
  * `acorn.parse` produces nodes that carry both the ESTree shape and
7
7
  * `start`/`end` offsets at runtime, but its static `acorn.Program` type is
8
8
  * nominally distinct from `estree.Program`, so the compiler cannot verify
9
- * the conversion structurally — hence the double assertion. This helper is
10
- * the single sanctioned crossing point between the two type worlds.
9
+ * the conversion structurally, hence the double assertion. This helper is the
10
+ * only sanctioned crossing point between the two types.
11
11
  */
12
12
  function toPositionedProgram(program) {
13
13
  // eslint-disable-next-line no-restricted-syntax -- the sanctioned acorn→estree bridge this rule's message points at
14
14
  return program;
15
15
  }
16
16
  /**
17
- * Parse JavaScript source as a **script** (not an ES module).
17
+ * Parse JavaScript source as a script, not an ES module.
18
18
  * All Mozilla chrome JS files (`browser-main.js`, `browser-init.js`,
19
19
  * `customElements.js`, etc.) are scripts that run in a privileged scope.
20
20
  *
@@ -32,7 +32,7 @@ export function parseScript(content, onComment) {
32
32
  return toPositionedProgram(acorn.parse(content, opts));
33
33
  }
34
34
  /**
35
- * Parse JavaScript source as an **ES module**.
35
+ * Parse JavaScript source as an ES module.
36
36
  * Used for `.sys.mjs` files which use static import/export syntax.
37
37
  *
38
38
  * @param content - Source text to parse
@@ -53,12 +53,12 @@ export function parseModule(content, onComment) {
53
53
  * Convenience cast from `acorn.Node` (or the generic ESTree union returned
54
54
  * by estree-walker callbacks) to a positioned, narrowly-typed node.
55
55
  *
56
- * **Caller obligation: you must already have discriminated on `node.type`.**
57
- * This performs no runtime check — it exists to attach acorn's `start`/`end`
58
- * offsets to a node the caller has *already* narrowed, typically inside an
56
+ * Caller obligation: you must already have discriminated on `node.type`.
57
+ * This performs no runtime check. It exists to attach acorn's `start`/`end`
58
+ * offsets to a node the caller has already narrowed, typically inside an
59
59
  * `if (node.type === 'CallExpression')` branch or an equivalent walker
60
60
  * guard. Calling it on an undiscriminated node produces a value whose type
61
- * is a lie.
61
+ * is wrong.
62
62
  *
63
63
  * No runtime `type` assertion: every call site sits in the hot loop of a lint
64
64
  * or registration walker and is already post-narrowing, so the check would
@@ -3,12 +3,12 @@ import type { ProjectLicense } from '../types/config.js';
3
3
  /**
4
4
  * Error thrown when the generated `mozconfig` references a `--with-branding`
5
5
  * directory that does not match the branding tree FireForge set up. The
6
- * mismatch is a silent-corruption hazard — `mach configure` picks the value
6
+ * mismatch is a silent-corruption hazard: `mach configure` picks the value
7
7
  * from mozconfig but the scaffolded branding lives elsewhere, so the build
8
8
  * fails deep inside moz.build resolution with a confusing "path does not
9
9
  * exist" message. Surface it as an actionable preflight instead.
10
10
  *
11
- * Setup renders templates under `configs/` with `${binaryName}` baked in; a
11
+ * Setup renders templates under `configs/` with `${binaryName}` baked in. A
12
12
  * later edit to `fireforge.json`'s `binaryName` (or a re-setup without
13
13
  * re-templating) leaves those names stale while `setupBranding` keeps using
14
14
  * the current value. Both directions produce the same class of build break.
@@ -37,8 +37,8 @@ export interface BrandingConfig {
37
37
  * Project license (from fireforge.json). Used to stamp the generated
38
38
  * `configure.sh`, `brand.properties`, and `brand.ftl` files with the
39
39
  * matching header so `patch-lint` does not flag them for
40
- * `missing-license-header` when the project is not MPL-2.0. Optional;
41
- * falls back to {@link DEFAULT_LICENSE}.
40
+ * `missing-license-header` when the project is not MPL-2.0. Optional.
41
+ * Falls back to {@link DEFAULT_LICENSE}.
42
42
  */
43
43
  license?: ProjectLicense;
44
44
  }
@@ -47,7 +47,7 @@ export interface BrandingConfig {
47
47
  * `toolkit/moz.configure` composes `CFBundleIdentifier` as
48
48
  * `<--with-distribution-id>.<MOZ_MACBUNDLE_ID>` (the distribution id
49
49
  * defaults to `org.mozilla`), so branding `configure.sh` must carry only the
50
- * LEAF segment while the generated mozconfig carries the remainder as
50
+ * leaf segment while the generated mozconfig carries the remainder as
51
51
  * `--with-distribution-id`. Writing the full appId into `MOZ_MACBUNDLE_ID`
52
52
  * double-prefixes the shipped bundle id. Config validation guarantees a
53
53
  * reverse-domain id, so the split always has both halves.
@@ -18,12 +18,12 @@ class BrandingError extends FireForgeError {
18
18
  /**
19
19
  * Error thrown when the generated `mozconfig` references a `--with-branding`
20
20
  * directory that does not match the branding tree FireForge set up. The
21
- * mismatch is a silent-corruption hazard — `mach configure` picks the value
21
+ * mismatch is a silent-corruption hazard: `mach configure` picks the value
22
22
  * from mozconfig but the scaffolded branding lives elsewhere, so the build
23
23
  * fails deep inside moz.build resolution with a confusing "path does not
24
24
  * exist" message. Surface it as an actionable preflight instead.
25
25
  *
26
- * Setup renders templates under `configs/` with `${binaryName}` baked in; a
26
+ * Setup renders templates under `configs/` with `${binaryName}` baked in. A
27
27
  * later edit to `fireforge.json`'s `binaryName` (or a re-setup without
28
28
  * re-templating) leaves those names stale while `setupBranding` keeps using
29
29
  * the current value. Both directions produce the same class of build break.
@@ -57,7 +57,7 @@ export class BrandingMozconfigMismatchError extends FireForgeError {
57
57
  * `toolkit/moz.configure` composes `CFBundleIdentifier` as
58
58
  * `<--with-distribution-id>.<MOZ_MACBUNDLE_ID>` (the distribution id
59
59
  * defaults to `org.mozilla`), so branding `configure.sh` must carry only the
60
- * LEAF segment while the generated mozconfig carries the remainder as
60
+ * leaf segment while the generated mozconfig carries the remainder as
61
61
  * `--with-distribution-id`. Writing the full appId into `MOZ_MACBUNDLE_ID`
62
62
  * double-prefixes the shipped bundle id. Config validation guarantees a
63
63
  * reverse-domain id, so the split always has both halves.
@@ -30,7 +30,7 @@ export interface WireOptions {
30
30
  * replacement path here.
31
31
  */
32
32
  domTargetPath?: string | undefined;
33
- /** Dry run — don't write any files */
33
+ /** Dry run: don't write any files */
34
34
  dryRun?: boolean | undefined;
35
35
  /** Insert init block after the block containing this name */
36
36
  after?: string | undefined;
@@ -86,9 +86,9 @@ export async function wireSubscript(root, name, options = {}) {
86
86
  let initAdded = false;
87
87
  if (options.init) {
88
88
  // The snapshot above is taken when init or destroy is `!== undefined`
89
- // while these writes fire on truthiness — close, but two separate
90
- // conditions over the same file, which is exactly the pairing that
91
- // drifts when a third writer is added later.
89
+ // while these writes fire on truthiness. Close, but two separate
90
+ // conditions over the same file, and that kind of pairing drifts when
91
+ // a third writer is added later.
92
92
  assertSnapshotted(journal, join(engineDir, 'browser/base/content/browser-init.js'), 'browser wire init');
93
93
  initAdded = await addInitToBrowserInit(engineDir, options.init, options.after, marker);
94
94
  }
@@ -119,7 +119,7 @@ export async function wireSubscript(root, name, options = {}) {
119
119
  // original wire failure and the rollback failure so the operator knows
120
120
  // the engine may be in a partially-wired state that needs manual
121
121
  // attention. The original error's message is preserved so the user sees
122
- // *why* the wire failed (e.g. "Could not find insertion point in chrome
122
+ // why the wire failed (e.g. "Could not find insertion point in chrome
123
123
  // document") alongside any rollback diagnosis.
124
124
  const originalMessage = toError(error).message;
125
125
  try {
@@ -25,10 +25,10 @@ export declare function findEnclosingGate(content: string, basename: string): st
25
25
  /**
26
26
  * Determines whether the given source file is gated off on the current
27
27
  * host by an enclosing `if CONFIG[...]:` block in its owning moz.build,
28
- * OR by a path-convention rule for installer-tree subdirectories that
28
+ * or by a path-convention rule for installer-tree subdirectories that
29
29
  * are packaged via Makefile.in recipes the audit does not parse.
30
- * Returns `gatedOff: false` and no expression when no gate is found —
31
- * the file is not platform-restricted, so the caller should audit it
30
+ * Returns `gatedOff: false` and no expression when no gate is found. The
31
+ * file is not platform-restricted, so the caller should audit it
32
32
  * normally.
33
33
  *
34
34
  * @param engineDir Absolute path to the engine root
@@ -48,8 +48,8 @@ export interface AncestorDirsGateResult {
48
48
  gateFile?: string;
49
49
  }
50
50
  /**
51
- * Determines whether the source file's DIRECTORY is excluded from this
52
- * build by a gate in an ANCESTOR `moz.build`.
51
+ * Determines whether the source file's directory is excluded from this
52
+ * build by a gate in an ancestor `moz.build`.
53
53
  *
54
54
  * `detectPlatformGate` reads only the file's own nearest `moz.build`, which
55
55
  * misses the common Firefox shape where the whole subtree is reached
@@ -57,7 +57,7 @@ export interface AncestorDirsGateResult {
57
57
  * `toolkit/mozapps/defaultagent/moz.build` says "Windows only", yet none of
58
58
  * it is built on macOS.
59
59
  *
60
- * Errs toward NOT skipping, like the rest of this module: an unreadable or
60
+ * Errs toward not skipping, like the rest of this module: an unreadable or
61
61
  * oversized ancestor, or a directory no `DIRS` entry names, yields
62
62
  * `gatedOff: false`.
63
63
  *
@@ -6,27 +6,27 @@
6
6
  * `if CONFIG["MAKENSISU"]:` (Windows-only stubinstaller) or
7
7
  * `if CONFIG["OS_TARGET"] == "Darwin":` (macOS-only artwork). On a host that
8
8
  * does not match the gate, the wrapped files are never processed by the
9
- * build, so they cannot appear under `dist/` — without this detection the
9
+ * build, so they cannot appear under `dist/`. Without this detection the
10
10
  * audit warns about every gated file on every off-platform build.
11
11
  *
12
12
  * Two gate sources are consulted, in order:
13
13
  * 1. Python-style `if CONFIG[...]:` blocks in the owning `moz.build`.
14
- * 2. Path-convention gates — certain directory fragments are packaged by
14
+ * 2. Path-convention gates: certain directory fragments are packaged by
15
15
  * platform-specific Makefile.in / NSIS recipes that FireForge does not
16
16
  * parse, so a file under `browser/installer/windows/` or any
17
17
  * `/stubinstaller/` subtree is Windows-only regardless of what its
18
18
  * nearest moz.build says.
19
19
  *
20
- * The detection is intentionally lightweight: walk up from the source file
20
+ * The detection is lightweight: walk up from the source file
21
21
  * to the closest `moz.build`, scan it for the source basename inside an
22
22
  * `if CONFIG[...]:` block, and check whether the gate matches the host. The
23
23
  * path-convention pass runs only when no moz.build gate is found, so an
24
24
  * explicit gate always wins.
25
25
  *
26
- * Best-effort by design. False negatives (missing a gate and warning anyway)
27
- * are tolerable — the audit is warn-only. False positives (skipping a file
28
- * that should ship on this host) are not, so it errs toward NOT skipping
29
- * when uncertain.
26
+ * Best-effort. False negatives (missing a gate and warning anyway) are
27
+ * tolerable because the audit is warn-only. False positives (skipping a file
28
+ * that should ship on this host) are not tolerable, so it errs toward not
29
+ * skipping when uncertain.
30
30
  */
31
31
  import { stat } from 'node:fs/promises';
32
32
  import { dirname, join } from 'node:path';
@@ -35,7 +35,7 @@ import { getPlatform } from '../utils/platform.js';
35
35
  import { escapeRegex } from '../utils/regex.js';
36
36
  /**
37
37
  * Tokens that uniquely identify a Windows-only `if CONFIG[...]:` block.
38
- * `MAKENSISU` is the Windows stubinstaller compiler; `OS_TARGET ==
38
+ * `MAKENSISU` is the Windows stubinstaller compiler. `OS_TARGET ==
39
39
  * "WINNT"` and `MOZ_WIDGET_TOOLKIT == "windows"` are the conventional
40
40
  * platform discriminators.
41
41
  */
@@ -53,7 +53,7 @@ function isGateOffHost(expression, host) {
53
53
  const matchesDarwin = DARWIN_ONLY_GATE_TOKENS.some((t) => expression.includes(t));
54
54
  const matchesLinux = LINUX_ONLY_GATE_TOKENS.some((t) => expression.includes(t));
55
55
  // Negation gates (`!= "WINNT"`, `not CONFIG["MAKENSISU"]`) flip the
56
- // semantics. Keep this conservative — if we cannot confidently parse
56
+ // semantics. Keep this conservative: if we cannot confidently parse
57
57
  // a negation, return false so we don't wrongly suppress a warning.
58
58
  const negated = /\bnot\b|!=/.test(expression);
59
59
  if (negated)
@@ -69,7 +69,7 @@ function isGateOffHost(expression, host) {
69
69
  /**
70
70
  * Walks from a starting directory up to (but not above) the engine root,
71
71
  * yielding the first `moz.build` encountered. Returns undefined when no
72
- * ancestor has one — typically only for files that live above any
72
+ * ancestor has one, typically only for files that live above any
73
73
  * moz.build entry point, which would not be packageable anyway.
74
74
  */
75
75
  async function findOwningMozBuild(engineDir, sourceDir) {
@@ -185,10 +185,10 @@ function findPathConventionGate(sourcePath) {
185
185
  /**
186
186
  * Determines whether the given source file is gated off on the current
187
187
  * host by an enclosing `if CONFIG[...]:` block in its owning moz.build,
188
- * OR by a path-convention rule for installer-tree subdirectories that
188
+ * or by a path-convention rule for installer-tree subdirectories that
189
189
  * are packaged via Makefile.in recipes the audit does not parse.
190
- * Returns `gatedOff: false` and no expression when no gate is found —
191
- * the file is not platform-restricted, so the caller should audit it
190
+ * Returns `gatedOff: false` and no expression when no gate is found. The
191
+ * file is not platform-restricted, so the caller should audit it
192
192
  * normally.
193
193
  *
194
194
  * @param engineDir Absolute path to the engine root
@@ -235,7 +235,7 @@ export async function detectPlatformGate(engineDir, sourcePath) {
235
235
  /**
236
236
  * Maximum ancestor levels walked looking for a gating `DIRS` entry, and the
237
237
  * largest `moz.build` read while doing it. The audit runs on every build, so
238
- * a pathological tree must not be able to make it slow; beyond these bounds
238
+ * a pathological tree must not be able to make it slow. Beyond these bounds
239
239
  * the walk gives up and the caller keeps today's behaviour (warn).
240
240
  */
241
241
  const MAX_ANCESTOR_DEPTH = 12;
@@ -243,21 +243,21 @@ const MAX_MOZ_BUILD_BYTES = 256 * 1024;
243
243
  /** Matches a line that begins a `DIRS` assignment. */
244
244
  const DIRS_ASSIGNMENT_PATTERN = /^\s*DIRS\s*\+?=/;
245
245
  /**
246
- * Collects the FULL stack of `if CONFIG[…]:` expressions enclosing the
246
+ * Collects the full stack of `if CONFIG[…]:` expressions enclosing the
247
247
  * `DIRS` entry whose value equals `relDir`.
248
248
  *
249
249
  * Two differences from {@link findEnclosingGate}, both load-bearing here:
250
250
  * only quoted values inside a `DIRS` assignment are considered (an
251
251
  * unrelated string literal elsewhere in the file must not gate a
252
- * directory), and EVERY enclosing expression is returned rather than the
253
- * innermost. Firefox nests these — `toolkit/moz.build` reaches
252
+ * directory), and every enclosing expression is returned rather than the
253
+ * innermost. Firefox nests these: `toolkit/moz.build` reaches
254
254
  * `mozapps/defaultagent` inside `OS_ARCH == "WINNT"`, then a `CC_TYPE`
255
- * test, then `MOZ_DEFAULT_BROWSER_AGENT` — and it is the OUTERMOST one that
255
+ * test, then `MOZ_DEFAULT_BROWSER_AGENT`, and it is the outermost one that
256
256
  * excludes the directory on a macOS host.
257
257
  *
258
258
  * @param content - `moz.build` file content
259
259
  * @param relDir - Directory path relative to the `moz.build`, POSIX-separated
260
- * @returns Enclosing gate expressions, outermost first; empty when ungated
260
+ * @returns Enclosing gate expressions, outermost first. Empty when ungated
261
261
  * or when no `DIRS` entry reaches `relDir`
262
262
  */
263
263
  function findDirsEntryGates(content, relDir) {
@@ -283,7 +283,7 @@ function findDirsEntryGates(content, relDir) {
283
283
  continue;
284
284
  }
285
285
  if (DIRS_ASSIGNMENT_PATTERN.test(line)) {
286
- // A `DIRS += [` list body continues on later lines; a single-line
286
+ // A `DIRS += [` list body continues on later lines. A single-line
287
287
  // `DIRS += ["x"]` is fully handled by the match below.
288
288
  inDirs = !line.includes(']');
289
289
  if (dirsLineNames(line, relDir))
@@ -305,8 +305,8 @@ function dirsLineNames(line, relDir) {
305
305
  return new RegExp(`["']${escaped}\\/?["']`).test(line);
306
306
  }
307
307
  /**
308
- * Determines whether the source file's DIRECTORY is excluded from this
309
- * build by a gate in an ANCESTOR `moz.build`.
308
+ * Determines whether the source file's directory is excluded from this
309
+ * build by a gate in an ancestor `moz.build`.
310
310
  *
311
311
  * `detectPlatformGate` reads only the file's own nearest `moz.build`, which
312
312
  * misses the common Firefox shape where the whole subtree is reached
@@ -314,7 +314,7 @@ function dirsLineNames(line, relDir) {
314
314
  * `toolkit/mozapps/defaultagent/moz.build` says "Windows only", yet none of
315
315
  * it is built on macOS.
316
316
  *
317
- * Errs toward NOT skipping, like the rest of this module: an unreadable or
317
+ * Errs toward not skipping, like the rest of this module: an unreadable or
318
318
  * oversized ancestor, or a directory no `DIRS` entry names, yields
319
319
  * `gatedOff: false`.
320
320
  *
@@ -330,7 +330,7 @@ export async function detectAncestorDirsGate(engineDir, sourcePath) {
330
330
  return { gatedOff: false };
331
331
  }
332
332
  const segments = sourcePath.split('/').filter(Boolean);
333
- // Drop the basename: the walk is over DIRECTORIES.
333
+ // Drop the basename: the walk is over directories.
334
334
  segments.pop();
335
335
  const root = engineDir.replace(/[/\\]+$/, '');
336
336
  const depth = Math.min(segments.length, MAX_ANCESTOR_DEPTH);
@@ -365,8 +365,8 @@ export async function detectAncestorDirsGate(engineDir, sourcePath) {
365
365
  gateFile: [...ancestorSegments, 'moz.build'].join('/'),
366
366
  };
367
367
  }
368
- // The directory IS reached from here and this host passes every gate;
369
- // a further ancestor cannot un-reach it.
368
+ // The directory is reached from here and this host passes every gate.
369
+ // A further ancestor cannot un-reach it.
370
370
  return { gatedOff: false };
371
371
  }
372
372
  return { gatedOff: false };
@@ -32,7 +32,7 @@ export declare function parseJarMnEntry(line: string): {
32
32
  /**
33
33
  * Scans a jar.mn file's contents for an entry whose source reference
34
34
  * matches `relativeSource` (POSIX, relative to the jar.mn directory).
35
- * Returns the first match; jar.mn enforces uniqueness of `(source)` in
35
+ * Returns the first match. jar.mn enforces uniqueness of `(source)` in
36
36
  * practice, so a first-match wins behaviour is adequate.
37
37
  */
38
38
  export declare function findJarMnEntryForSource(content: string, relativeSource: string): {
@@ -44,14 +44,14 @@ export declare function findJarMnEntryForSource(content: string, relativeSource:
44
44
  * the first jar.mn entry that registers the given source. Returns undefined
45
45
  * when no ancestor jar.mn claims the source.
46
46
  *
47
- * @param engineDir Absolute engine root; walk halts here.
47
+ * @param engineDir Absolute engine root. The walk halts here.
48
48
  * @param source Engine-relative POSIX source path.
49
49
  */
50
50
  export declare function findRegisteredTarget(engineDir: string, source: string): Promise<RegistrationHit | undefined>;
51
51
  /**
52
52
  * Probes the dist tree for the artifact registered against the given
53
53
  * source. Returns the matched candidate and the registration hit that
54
- * anchored it; undefined when the source has no owning jar.mn or when
54
+ * anchored it. Undefined when the source has no owning jar.mn or when
55
55
  * no same-basename candidate under the search roots ends with the
56
56
  * registered target path.
57
57
  *
@@ -69,8 +69,8 @@ export declare function findRegisteredTarget(engineDir: string, source: string):
69
69
  export declare function resolveArtifactByRegistration(engineDir: string, source: string, searchRoots: readonly string[]): Promise<RegistrationProbeResult | undefined>;
70
70
  /**
71
71
  * Returns the absolute paths of every same-basename candidate under the
72
- * given search roots. Used by the audit to enumerate ALL false-match
73
- * candidates when the heuristic fallback downgrades to "missing" — the
72
+ * given search roots. Used by the audit to enumerate all false-match
73
+ * candidates when the heuristic fallback downgrades to "missing". The
74
74
  * operator needs to see the full set, not just the scorer's pick, to
75
75
  * distinguish a registration bug from a genuine packaging drop.
76
76
  *
@@ -18,7 +18,7 @@
18
18
  * report an unambiguous "registered but not packaged" miss when none exists.
19
19
  *
20
20
  * When no jar.mn registration is found, the caller falls back to the
21
- * similarity heuristic — which covers sources registered through moz.build
21
+ * similarity heuristic, which covers sources registered through moz.build
22
22
  * (`FINAL_TARGET_FILES`, `JS_PREFERENCE_FILES`) or `package-manifest.in`.
23
23
  * Parsing every Firefox registration surface would bloat the audit, and the
24
24
  * heuristic's weak case is surfaced to the operator in the warning copy.
@@ -62,7 +62,7 @@ export function parseJarMnEntry(line) {
62
62
  /**
63
63
  * Scans a jar.mn file's contents for an entry whose source reference
64
64
  * matches `relativeSource` (POSIX, relative to the jar.mn directory).
65
- * Returns the first match; jar.mn enforces uniqueness of `(source)` in
65
+ * Returns the first match. jar.mn enforces uniqueness of `(source)` in
66
66
  * practice, so a first-match wins behaviour is adequate.
67
67
  */
68
68
  export function findJarMnEntryForSource(content, relativeSource) {
@@ -81,7 +81,7 @@ export function findJarMnEntryForSource(content, relativeSource) {
81
81
  * the first jar.mn entry that registers the given source. Returns undefined
82
82
  * when no ancestor jar.mn claims the source.
83
83
  *
84
- * @param engineDir Absolute engine root; walk halts here.
84
+ * @param engineDir Absolute engine root. The walk halts here.
85
85
  * @param source Engine-relative POSIX source path.
86
86
  */
87
87
  export async function findRegisteredTarget(engineDir, source) {
@@ -98,7 +98,7 @@ export async function findRegisteredTarget(engineDir, source) {
98
98
  content = await readText(jarMn);
99
99
  }
100
100
  catch {
101
- // An unreadable jar.mn contributes no registration hints; the resolver falls
101
+ // An unreadable jar.mn contributes no registration hints. The resolver falls
102
102
  // through to its other strategies.
103
103
  content = '';
104
104
  }
@@ -127,7 +127,7 @@ function toPosix(path) {
127
127
  /**
128
128
  * Probes the dist tree for the artifact registered against the given
129
129
  * source. Returns the matched candidate and the registration hit that
130
- * anchored it; undefined when the source has no owning jar.mn or when
130
+ * anchored it. Undefined when the source has no owning jar.mn or when
131
131
  * no same-basename candidate under the search roots ends with the
132
132
  * registered target path.
133
133
  *
@@ -162,8 +162,8 @@ export async function resolveArtifactByRegistration(engineDir, source, searchRoo
162
162
  }
163
163
  /**
164
164
  * Returns the absolute paths of every same-basename candidate under the
165
- * given search roots. Used by the audit to enumerate ALL false-match
166
- * candidates when the heuristic fallback downgrades to "missing" — the
165
+ * given search roots. Used by the audit to enumerate all false-match
166
+ * candidates when the heuristic fallback downgrades to "missing". The
167
167
  * operator needs to see the full set, not just the scorer's pick, to
168
168
  * distinguish a registration bug from a genuine packaging drop.
169
169
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Heuristic test for "this looks like a packaged-test source file" — the
2
+ * Heuristic test for "this looks like a packaged-test source file". The
3
3
  * audit routes such paths to `_tests/` instead of `dist/`. Matches
4
4
  * mochitest / xpcshell / browser-chrome conventions: any source under a
5
5
  * `/test/` or `/tests/` directory, anywhere under a `testing/` subtree
@@ -27,7 +27,7 @@ export declare function countTrailingSegmentMatches(a: string, b: string): numbe
27
27
  /**
28
28
  * Path segments too common to identify an artifact on their own.
29
29
  *
30
- * Shared deliberately: this set governs two halves of ONE decision —
30
+ * Shared on purpose: this set governs two halves of one decision,
31
31
  * `scoreCandidate` (selection) and `isConfidentMatch` (confirmation, in
32
32
  * `build-audit.ts`). When the halves kept separate copies they disagreed,
33
33
  * so a source path could earn a selection bonus for a segment that
@@ -44,14 +44,14 @@ export declare const GENERIC_PATH_SEGMENTS: ReadonlySet<string>;
44
44
  *
45
45
  * The bonus exists because Firefox packaging often re-roots files: a source
46
46
  * `branding/<name>/content/aboutDialog.css` lands at
47
- * `chrome/browser/content/branding/aboutDialog.css` — only the basename
47
+ * `chrome/browser/content/branding/aboutDialog.css`. Only the basename
48
48
  * trails-match, but the `branding` segment moved into the middle of the
49
49
  * candidate path. Without the bonus that candidate ties with the unrelated
50
50
  * `chrome/browser/content/browser/aboutDialog.css`.
51
51
  *
52
52
  * @param sourcePath Engine-relative POSIX path
53
53
  * @param candidatePath Absolute path under the dist tree
54
- * @returns Numeric score; higher means better match
54
+ * @returns Numeric score, where higher means better match
55
55
  */
56
56
  export declare function scoreCandidate(sourcePath: string, candidatePath: string): number;
57
57
  /**
@@ -69,7 +69,7 @@ export declare function findAllByBasename(root: string, name: string, maxDepth?:
69
69
  /**
70
70
  * Resolves the best-matching artifact for a source path under one or
71
71
  * more search roots. Returns the highest-scoring candidate by trailing
72
- * segment overlap; ties go to the first-found path (deterministic via
72
+ * segment overlap. Ties go to the first-found path (deterministic via
73
73
  * the directory-walk order). Returns undefined when no candidate exists.
74
74
  *
75
75
  * @param sourcePath Engine-relative POSIX source path
@@ -24,7 +24,7 @@ import { normalizePathSlashes } from '../utils/paths.js';
24
24
  /** Maximum directory depth to traverse when scanning a tree root. */
25
25
  const MAX_SCAN_DEPTH = 12;
26
26
  /**
27
- * Heuristic test for "this looks like a packaged-test source file" — the
27
+ * Heuristic test for "this looks like a packaged-test source file". The
28
28
  * audit routes such paths to `_tests/` instead of `dist/`. Matches
29
29
  * mochitest / xpcshell / browser-chrome conventions: any source under a
30
30
  * `/test/` or `/tests/` directory, anywhere under a `testing/` subtree
@@ -59,7 +59,7 @@ export function isTestPath(sourcePath) {
59
59
  *
60
60
  * Separators are normalized first because the candidates come from `join()`
61
61
  * over a `readdir` walk of the dist tree: on Windows those carry backslashes,
62
- * which a `/`-only split collapses into a SINGLE segment. Every candidate then
62
+ * which a `/`-only split collapses into a single segment. Every candidate then
63
63
  * scores the same, so the trailing-overlap heuristic that disambiguates
64
64
  * same-basename artifacts (`branding/…/aboutDialog.css` versus
65
65
  * `browser/…/aboutDialog.css`) silently picks an arbitrary one.
@@ -94,7 +94,7 @@ export function countTrailingSegmentMatches(a, b) {
94
94
  /**
95
95
  * Path segments too common to identify an artifact on their own.
96
96
  *
97
- * Shared deliberately: this set governs two halves of ONE decision —
97
+ * Shared on purpose: this set governs two halves of one decision,
98
98
  * `scoreCandidate` (selection) and `isConfidentMatch` (confirmation, in
99
99
  * `build-audit.ts`). When the halves kept separate copies they disagreed,
100
100
  * so a source path could earn a selection bonus for a segment that
@@ -129,14 +129,14 @@ export const GENERIC_PATH_SEGMENTS = new Set([
129
129
  *
130
130
  * The bonus exists because Firefox packaging often re-roots files: a source
131
131
  * `branding/<name>/content/aboutDialog.css` lands at
132
- * `chrome/browser/content/branding/aboutDialog.css` — only the basename
132
+ * `chrome/browser/content/branding/aboutDialog.css`. Only the basename
133
133
  * trails-match, but the `branding` segment moved into the middle of the
134
134
  * candidate path. Without the bonus that candidate ties with the unrelated
135
135
  * `chrome/browser/content/browser/aboutDialog.css`.
136
136
  *
137
137
  * @param sourcePath Engine-relative POSIX path
138
138
  * @param candidatePath Absolute path under the dist tree
139
- * @returns Numeric score; higher means better match
139
+ * @returns Numeric score, where higher means better match
140
140
  */
141
141
  export function scoreCandidate(sourcePath, candidatePath) {
142
142
  const trailing = countTrailingSegmentMatches(sourcePath, candidatePath);
@@ -210,7 +210,7 @@ export async function findAllByBasename(root, name, maxDepth = MAX_SCAN_DEPTH) {
210
210
  /**
211
211
  * Resolves the best-matching artifact for a source path under one or
212
212
  * more search roots. Returns the highest-scoring candidate by trailing
213
- * segment overlap; ties go to the first-found path (deterministic via
213
+ * segment overlap. Ties go to the first-found path (deterministic via
214
214
  * the directory-walk order). Returns undefined when no candidate exists.
215
215
  *
216
216
  * @param sourcePath Engine-relative POSIX source path
@@ -2,7 +2,7 @@
2
2
  * Why a changed engine path was not audited.
3
3
  *
4
4
  * The first four name skips that already existed as unstructured
5
- * `verbose()` strings; the last four are the 0.46.0 classifiers.
5
+ * `verbose()` strings. The last four are the 0.46.0 classifiers.
6
6
  */
7
7
  export type AuditSkipReason = 'not-packageable' | 'platform-gated' | 'platform-gated-ancestor' | 'tests-not-packaged' | 'source-unreadable' | 'branding-not-selected' | 'storybook-story' | 'declared-unpackaged';
8
8
  /** Render order for the `Packaged:` summary's per-class breakdown. */
@@ -15,7 +15,7 @@ export declare function isStorybookStoryPath(sourcePath: string): boolean;
15
15
  * FireForge generates `engine/mozconfig` and writes the
16
16
  * `ac_add_options --with-branding=…` line into it, so the selected branding
17
17
  * is knowable from the tree. Returns undefined when the mozconfig cannot be
18
- * read or carries no directive — the caller must then keep warning, because
18
+ * read or carries no directive. The caller must then keep warning, because
19
19
  * a skip that cannot name its evidence is a masked warning.
20
20
  *
21
21
  * @param engineDir - Absolute path to the engine root
@@ -23,13 +23,13 @@ export declare function isStorybookStoryPath(sourcePath: string): boolean;
23
23
  */
24
24
  export declare function resolveSelectedBranding(engineDir: string): Promise<string | undefined>;
25
25
  /**
26
- * True when `sourcePath` lives under a branding tree that is NOT the one
26
+ * True when `sourcePath` lives under a branding tree that is not the one
27
27
  * this objdir was configured with.
28
28
  *
29
29
  * An unselected branding directory is not an input to this build at all, so
30
30
  * its files can never appear in `dist/`. Worse, the basename walker matched
31
- * them against the SELECTED branding's same-named artifact and reported the
32
- * unselected file as "newer than its packaged artifact" — a stale warning
31
+ * them against the selected branding's same-named artifact and reported the
32
+ * unselected file as "newer than its packaged artifact", a stale warning
33
33
  * about a comparison that has no meaning.
34
34
  *
35
35
  * @param sourcePath - Engine-relative POSIX path
@@ -47,9 +47,9 @@ export interface UnpackagedDeclaration {
47
47
  * Finds the declaration admitting `sourcePath`, if any.
48
48
  *
49
49
  * Exact match or a `*`-within-one-segment glob, matching the
50
- * `support-files` matcher's deliberate narrowness: `**` and other
51
- * cross-directory shapes are not accepted, because a carve-out that
52
- * silently widens is exactly the failure this feature is warned against.
50
+ * `support-files` matcher's narrowness: `**` and other cross-directory
51
+ * shapes are not accepted, because a carve-out that silently widens is the
52
+ * failure this feature is warned against.
53
53
  *
54
54
  * @param sourcePath - Engine-relative POSIX path
55
55
  * @param declarations - The project's `buildAudit.unpackaged` entries
@@ -7,8 +7,8 @@
7
7
  * usually wrong stops reading the one that is right. Every classifier here
8
8
  * exists to remove a warning whose "missing packaged artifact" claim is
9
9
  * structurally impossible, and each carries its own reason so the
10
- * `Packaged:` summary can say what it skipped and why — a run reporting
11
- * `4 missing` with zero real misses is what this replaces.
10
+ * `Packaged:` summary can say what it skipped and why. This replaces a run
11
+ * reporting `4 missing` with zero real misses.
12
12
  */
13
13
  import { readText } from '../utils/fs.js';
14
14
  import { normalizePathSlashes } from '../utils/paths.js';
@@ -28,10 +28,10 @@ export const AUDIT_SKIP_REASONS = [
28
28
  /**
29
29
  * Suffixes of Storybook story modules.
30
30
  *
31
- * Firefox's in-tree Storybook renders these through its own Vite config;
32
- * no `jar.mn` or `moz.build` entry packages one, so "no packaged artifact"
31
+ * Firefox's in-tree Storybook renders these through its own Vite config.
32
+ * No `jar.mn` or `moz.build` entry packages one, so "no packaged artifact"
33
33
  * is the expected state rather than a missing registration. Kept as a
34
- * CLOSED list on purpose: generalising to "anything with a dotted infix"
34
+ * closed list on purpose: generalising to "anything with a dotted infix"
35
35
  * would swallow `*.worker.js` and `*.sys.mjs`, which are packaged.
36
36
  */
37
37
  const STORYBOOK_SUFFIXES = ['.stories.mjs', '.stories.js'];
@@ -48,7 +48,7 @@ const BRANDING_ROOT = 'browser/branding/';
48
48
  * FireForge generates `engine/mozconfig` and writes the
49
49
  * `ac_add_options --with-branding=…` line into it, so the selected branding
50
50
  * is knowable from the tree. Returns undefined when the mozconfig cannot be
51
- * read or carries no directive — the caller must then keep warning, because
51
+ * read or carries no directive. The caller must then keep warning, because
52
52
  * a skip that cannot name its evidence is a masked warning.
53
53
  *
54
54
  * @param engineDir - Absolute path to the engine root
@@ -65,13 +65,13 @@ export async function resolveSelectedBranding(engineDir) {
65
65
  }
66
66
  }
67
67
  /**
68
- * True when `sourcePath` lives under a branding tree that is NOT the one
68
+ * True when `sourcePath` lives under a branding tree that is not the one
69
69
  * this objdir was configured with.
70
70
  *
71
71
  * An unselected branding directory is not an input to this build at all, so
72
72
  * its files can never appear in `dist/`. Worse, the basename walker matched
73
- * them against the SELECTED branding's same-named artifact and reported the
74
- * unselected file as "newer than its packaged artifact" — a stale warning
73
+ * them against the selected branding's same-named artifact and reported the
74
+ * unselected file as "newer than its packaged artifact", a stale warning
75
75
  * about a comparison that has no meaning.
76
76
  *
77
77
  * @param sourcePath - Engine-relative POSIX path
@@ -90,9 +90,9 @@ export function isUnselectedBrandingPath(sourcePath, selectedBranding) {
90
90
  * Finds the declaration admitting `sourcePath`, if any.
91
91
  *
92
92
  * Exact match or a `*`-within-one-segment glob, matching the
93
- * `support-files` matcher's deliberate narrowness: `**` and other
94
- * cross-directory shapes are not accepted, because a carve-out that
95
- * silently widens is exactly the failure this feature is warned against.
93
+ * `support-files` matcher's narrowness: `**` and other cross-directory
94
+ * shapes are not accepted, because a carve-out that silently widens is the
95
+ * failure this feature is warned against.
96
96
  *
97
97
  * @param sourcePath - Engine-relative POSIX path
98
98
  * @param declarations - The project's `buildAudit.unpackaged` entries
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Returns the expected chrome-tree suffix for an engine-relative POSIX
3
- * source path when the path falls under a known transform prefix;
4
- * undefined otherwise.
3
+ * source path when the path falls under a known transform prefix.
4
+ * Returns undefined otherwise.
5
5
  *
6
6
  * @param source Engine-relative POSIX source path.
7
7
  */