@hominis/fireforge 0.46.0 → 0.46.2

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 +17 -9
  498. package/dist/src/core/token-dark-mode.js +41 -28
  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
@@ -34,11 +34,11 @@ export async function tokenCoverageCommand(projectRoot) {
34
34
  .map((f) => f.file);
35
35
  // Also scan CSS files deployed by Furnace custom components. Deployed
36
36
  // files can be committed (and therefore absent from `git status`) while
37
- // still being the primary surface where token adoption matters; looking
37
+ // still being the primary surface where token adoption matters. Looking
38
38
  // only at modified files silently undercounts projects where Furnace
39
39
  // writes many component-CSS files into the engine.
40
40
  const furnaceCssFiles = await collectFurnaceCustomCssFiles(projectRoot, paths.engine, tokensCssPath);
41
- // De-dupe so a file that is both a custom deploy target AND modified is
41
+ // De-dupe so a file that is both a custom deploy target and modified is
42
42
  // scanned exactly once.
43
43
  const cssFiles = [...new Set([...statusCssFiles, ...furnaceCssFiles])];
44
44
  const tokenSourceFiles = [...new Set(statusTokenCssFiles)];
@@ -129,7 +129,7 @@ async function validateTokenSourceFiles(engineDir, tokenSourceFiles, tokenPrefix
129
129
  /**
130
130
  * Returns engine-relative `.css` paths deployed by every Furnace custom
131
131
  * component registered in `furnace.json`. Only files that actually exist
132
- * on disk are included — a component whose deploy target is missing (e.g.
132
+ * on disk are included. A component whose deploy target is missing (e.g.
133
133
  * `furnace apply` has not run yet) is skipped silently so a fresh
134
134
  * `furnace init` followed immediately by `token coverage` does not error.
135
135
  *
@@ -1,13 +1,13 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * `token list` and `token show` — the read half of design-token management.
3
+ * `token list` and `token show`: the read half of design-token management.
4
4
  *
5
5
  * `token add` requires `--category` and refuses an unknown one, but nothing
6
6
  * reported the categories a project has, so naming one meant hand-parsing a
7
7
  * neighbouring `= Category =` banner out of the tokens CSS. Both commands
8
8
  * read through `token-inventory.ts`, which is built on the same banner and
9
- * `:root`-bounds primitives `token add` and `token coverage` use — a second
10
- * tokens-CSS parser would let the report and the writer disagree about
9
+ * `:root`-bounds primitives `token add` and `token coverage` use, because
10
+ * a second tokens-CSS parser would let the report and the writer disagree about
11
11
  * which section a token lives in.
12
12
  *
13
13
  * Helper module: no registrar, called from `token.ts`.
@@ -38,7 +38,7 @@ function filterByCategory(groups, category, tokensCssPath) {
38
38
  if (matched.length > 0)
39
39
  return matched;
40
40
  // Same "name the alternatives" contract `token add` gives for an unknown
41
- // category — a filter that silently prints nothing reads as "this
41
+ // category: a filter that silently prints nothing reads as "this
42
42
  // category is empty", which is a different fact.
43
43
  const available = groups
44
44
  .map((group) => group.category)
@@ -57,7 +57,7 @@ function filterByCategory(groups, category, tokensCssPath) {
57
57
  */
58
58
  export async function tokenListCommand(projectRoot, options = {}) {
59
59
  if (options.json === true) {
60
- // stdout belongs exclusively to the payload from here on; a later
60
+ // stdout belongs exclusively to the payload from here on. A later
61
61
  // diagnostic (including withErrorHandling's) routes to stderr.
62
62
  setMachineOutputMode(true);
63
63
  try {
@@ -21,7 +21,7 @@ async function normalizeTokenNameForProject(projectRoot, rawTokenName) {
21
21
  const strippedPrefix = furnaceConfig.tokenPrefix.replace(/^--/, '').replace(/-$/, '');
22
22
  const strippedName = rawTokenName.replace(/^--/, '');
23
23
  // A bare name that already starts with the configured prefix text is
24
- // treated as fully qualified — blindly prepending would silently
24
+ // treated as fully qualified. Blindly prepending would silently
25
25
  // produce a double-prefixed token (e.g. "--hominis-hominis-shadow-low").
26
26
  if (strippedName === strippedPrefix || strippedName.startsWith(`${strippedPrefix}-`)) {
27
27
  info(`Token name "${rawTokenName}" already starts with the configured prefix ` +
@@ -37,12 +37,12 @@ async function normalizeTokenNameForProject(projectRoot, rawTokenName) {
37
37
  return normalizeTokenName(rawTokenName);
38
38
  }
39
39
  /**
40
- * Reports a no-op add, naming WHERE the existing declaration lives.
40
+ * Reports a no-op add, naming where the existing declaration lives.
41
41
  *
42
- * A variant skip has no category to name — the declaration lives in a
43
- * `:root<selector>` block — so the location reads as that block. The
42
+ * A variant skip has no category to name, because the declaration lives in
43
+ * a `:root<selector>` block, so the location reads as that block. The
44
44
  * variant path used to report no location at all, so a re-run meant to
45
- * CHANGE a value exited 0 having silently changed nothing.
45
+ * change a value exited 0 having silently changed nothing.
46
46
  *
47
47
  * @param tokenName - Full token name including prefix
48
48
  * @param result - Result carrying the skip location, when known
@@ -69,8 +69,8 @@ export async function tokenAddCommand(projectRoot, tokenName, value, options) {
69
69
  intro('Token Add');
70
70
  // A fresh project without furnace.json otherwise fails deep inside the
71
71
  // token-manager's `assertTokenCategoryExists` with "Token CSS file not
72
- // found: browser/themes/shared/<binary>-tokens.css" — technically correct,
73
- // but the operator's actual next step is to initialize Furnace, which
72
+ // found: browser/themes/shared/<binary>-tokens.css", which is technically
73
+ // correct, but the operator's actual next step is to initialize Furnace, which
74
74
  // scaffolds the tokens CSS file. Catching the uninitialized case here
75
75
  // gives the right guidance before the generic "file not found" error.
76
76
  if (!(await furnaceConfigExists(projectRoot))) {
@@ -171,9 +171,9 @@ export function registerToken(program, { getProjectRoot, withErrorHandling }) {
171
171
  // Commander's argument parsing.
172
172
  // Description ends with `(required)` because Commander's
173
173
  // `makeOptionMandatory` does not render a required marker in `--help`
174
- // output — only `.requiredOption` does that, and switching to
174
+ // output. Only `.requiredOption` does that, and switching to
175
175
  // `.requiredOption` would lose the `.choices()` enforcement. The
176
- // explicit suffix keeps the runtime validation AND surfaces required
176
+ // explicit suffix keeps the runtime validation and surfaces required
177
177
  // status in help alongside the other options that use `.requiredOption`.
178
178
  new Option('--mode <mode>', 'Dark mode behavior (required)')
179
179
  .choices(['auto', 'static', 'override'])
@@ -1,10 +1,10 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * `fireforge tree` — copy-on-write verification clones.
3
+ * `fireforge tree`: copy-on-write verification clones.
4
4
  *
5
- * Trees enable concurrent READ-MOSTLY verification (lint, typecheck, status,
5
+ * Trees enable concurrent read-mostly verification (lint, typecheck, status,
6
6
  * verify, doctor, export dry-runs) beside a busy primary tree. Exports and
7
- * every other mutation stay strictly serial in the primary — a tree's
7
+ * every other mutation stay strictly serial in the primary, because a tree's
8
8
  * patches/components are snapshots with no merge model, and the tree guard
9
9
  * (cli.ts preAction + core/tree-guard.ts) refuses mutating commands inside a
10
10
  * tree.
@@ -13,8 +13,8 @@
13
13
  * directory, rewrites its mozinfo.json to the tree, and runs `mach configure`
14
14
  * inside the tree so the remaining configure output (config.status,
15
15
  * backend.mk, Makefile, config/autoconf.mk) stops naming the primary. That is
16
- * fail-closed by design — mach objdirs embed absolute source paths, and an
17
- * unrelocated clone would silently operate against the primary — and it is
16
+ * fail-closed by design (mach objdirs embed absolute source paths, and an
17
+ * unrelocated clone would silently operate against the primary), and it is
18
18
  * what admits build-less `fireforge test` inside that tree.
19
19
  */
20
20
  import { spawn } from 'node:child_process';
@@ -61,14 +61,14 @@ async function resolveObjdirForClone(projectRoot) {
61
61
  /**
62
62
  * Runs `mach configure` inside the tree's engine so the configure-generated
63
63
  * root files (config.status, backend.mk, Makefile, config/autoconf.mk) are
64
- * regenerated against the tree's paths — the mozinfo rewrite alone leaves
64
+ * regenerated against the tree's paths. The mozinfo rewrite alone leaves
65
65
  * those naming the primary, and a build-less in-tree `test` must never
66
66
  * consult primary state. Exit code 0 is not trusted on its own: configure
67
67
  * obeys MOZCONFIG / MOZ_OBJDIR, so the postcondition is verified afterwards
68
- * via `findObjdirRelocationViolation` — the intended objdir was configured,
68
+ * via `findObjdirRelocationViolation`: the intended objdir was configured,
69
69
  * its mozinfo points into the tree, and none of those root files still
70
70
  * names the primary engine (nested Makefiles are products of the verified
71
- * config.status; `.deps` build products are out of scope — see the
71
+ * config.status, and `.deps` build products are out of scope, see the
72
72
  * checker's doc). A failure throws before `cloneTree` writes the marker,
73
73
  * so the tree is removed and `clonedObjdir` is never recorded (fail-closed).
74
74
  */
@@ -102,7 +102,7 @@ export async function treeCreateCommand(projectRoot, name, options = {}) {
102
102
  intro('FireForge Tree Create');
103
103
  assertValidTreeName(name);
104
104
  // A marker we cannot parse still means "something claims this is a tree", so
105
- // it must block nesting too — otherwise a corrupt marker is a licence to
105
+ // it must block nesting too. Otherwise a corrupt marker is a licence to
106
106
  // clone a snapshot into itself.
107
107
  const markerState = await readTreeMarker(projectRoot);
108
108
  if (markerState.kind !== 'absent') {
@@ -128,15 +128,15 @@ export async function treeCreateCommand(projectRoot, name, options = {}) {
128
128
  warn('No copy-on-write support detected — performing a full physical copy (--force-copy).');
129
129
  }
130
130
  // Courtesy fast-fail: refuse obvious no-build cases before waiting on
131
- // locks. The result is DISCARDED — a build can still start before the
131
+ // locks. The result is discarded: a build can still start before the
132
132
  // locks below are held, so only the re-resolution under the build lock
133
133
  // is authoritative for what actually gets cloned.
134
134
  if (options.withObjdir === true) {
135
135
  await resolveObjdirForClone(projectRoot);
136
136
  }
137
- // Snapshot under the PRIMARY engine-session lock so a mid-mutation
138
- // state (half-applied export, furnace deploy) is never captured; an
139
- // objdir snapshot additionally holds the primary BUILD lock, under
137
+ // Snapshot under the primary engine-session lock so a mid-mutation
138
+ // state (half-applied export, furnace deploy) is never captured. An
139
+ // objdir snapshot additionally holds the primary build lock, under
140
140
  // which the objdir is re-validated immediately before cloning so a
141
141
  // concurrent `fireforge build` can neither tear the obj-* mid-write
142
142
  // nor swap it after preflight. A failed clone (including the
@@ -183,8 +183,8 @@ export async function treeCreateCommand(projectRoot, name, options = {}) {
183
183
  export async function treeListCommand(projectRoot, options = {}) {
184
184
  if (options.json === true) {
185
185
  // stdout belongs exclusively to the JSON payload: engage machine mode so
186
- // any diagnostic — including a listTrees failure rendered later by
187
- // withErrorHandling, which also resets the mode — routes to stderr.
186
+ // any diagnostic, including a listTrees failure rendered later by
187
+ // withErrorHandling (which also resets the mode), routes to stderr.
188
188
  setMachineOutputMode(true);
189
189
  try {
190
190
  const trees = await listTrees(projectRoot);
@@ -280,13 +280,13 @@ async function treeExecCommand(projectRoot, name, args) {
280
280
  resolvePromise(code ?? 1);
281
281
  });
282
282
  }).finally(() => {
283
- // With `stdio: 'inherit'` the child owned stdout — including any
284
- // FIREFORGE-VERDICT line it emitted as its LAST stdout write. From here
283
+ // With `stdio: 'inherit'` the child owned stdout, including any
284
+ // FIREFORGE-VERDICT line it emitted as its last stdout write. From here
285
285
  // on the parent must not write stdout again, or its own refusal text
286
- // (the GeneralError below, rendered by withErrorHandling) prints AFTER
286
+ // (the GeneralError below, rendered by withErrorHandling) prints after
287
287
  // the child's verdict and breaks the "verdict is the run's last stdout
288
288
  // line" contract at the tree-exec boundary. Sealing routes the parent's
289
- // remaining output to stderr; withErrorHandling's finally clears it.
289
+ // remaining output to stderr. withErrorHandling's finally clears it.
290
290
  setStdoutSealed(true);
291
291
  });
292
292
  if (exitCode !== 0) {
@@ -1,10 +1,10 @@
1
1
  /**
2
- * `fireforge typecheck` — whole-project TypeScript type checking driven by
2
+ * `fireforge typecheck`: whole-project TypeScript type checking driven by
3
3
  * user-supplied jsconfig.json paths.
4
4
  *
5
5
  * Distinct from `patchLint.checkJs`: that pass is patch-hygiene (scoped to
6
- * patch-owned `.sys.mjs`, run automatically by `fireforge lint`); this
7
- * command is CI-grade — it runs whole projects with the user's own compiler
6
+ * patch-owned `.sys.mjs`, run automatically by `fireforge lint`). This
7
+ * command is CI-grade: it runs whole projects with the user's own compiler
8
8
  * options. The two share their Firefox-globals shim and the same
9
9
  * suppressed-diagnostic set so a file that lints clean cannot fail typecheck
10
10
  * for a reason the operator could not have inferred from the docs.
@@ -21,15 +21,15 @@ import type { TypecheckProjectResult } from '../types/typecheck.js';
21
21
  export interface TypecheckCommandOptions {
22
22
  /**
23
23
  * Override `typecheck.projects` with a single jsconfig.json path
24
- * for one-off verification. Replaces (does not augment) the config
25
- * — useful to re-run a single project after fixing one of its
24
+ * for one-off verification. Replaces (does not augment) the config,
25
+ * which is useful to re-run a single project after fixing one of its
26
26
  * issues without waiting for the full set.
27
27
  */
28
28
  project?: string;
29
29
  }
30
30
  /**
31
31
  * Resolves the project list to type-check. `--project` wins over
32
- * config; if neither is set, throws a clear error pointing at both
32
+ * config. If neither is set, throws a clear error pointing at both
33
33
  * paths to a fix (add the config field or pass --project).
34
34
  */
35
35
  export declare function resolveTypecheckProjects(configTypecheck: TypecheckConfig | undefined, override: string | undefined): TypecheckConfig;
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * `fireforge typecheck` — whole-project TypeScript type checking driven by
3
+ * `fireforge typecheck`: whole-project TypeScript type checking driven by
4
4
  * user-supplied jsconfig.json paths.
5
5
  *
6
6
  * Distinct from `patchLint.checkJs`: that pass is patch-hygiene (scoped to
7
- * patch-owned `.sys.mjs`, run automatically by `fireforge lint`); this
8
- * command is CI-grade — it runs whole projects with the user's own compiler
7
+ * patch-owned `.sys.mjs`, run automatically by `fireforge lint`). This
8
+ * command is CI-grade: it runs whole projects with the user's own compiler
9
9
  * options. The two share their Firefox-globals shim and the same
10
10
  * suppressed-diagnostic set so a file that lints clean cannot fail typecheck
11
11
  * for a reason the operator could not have inferred from the docs.
@@ -26,7 +26,7 @@ import { info, intro, outro, success, warn } from '../utils/logger.js';
26
26
  import { buildPerRunCheckJs } from './lint-per-run-checkjs.js';
27
27
  /**
28
28
  * Resolves the project list to type-check. `--project` wins over
29
- * config; if neither is set, throws a clear error pointing at both
29
+ * config. If neither is set, throws a clear error pointing at both
30
30
  * paths to a fix (add the config field or pass --project).
31
31
  */
32
32
  export function resolveTypecheckProjects(configTypecheck, override) {
@@ -75,7 +75,7 @@ export async function typecheckCommand(projectRoot, options) {
75
75
  }
76
76
  async function runTypecheckCommandBody(projectRoot, options) {
77
77
  // Validate project is initialised. `loadConfig` throws on missing
78
- // fireforge.json — withErrorHandling at the CLI layer renders the
78
+ // fireforge.json, and withErrorHandling at the CLI layer renders the
79
79
  // resulting `ConfigNotFoundError` cleanly, so we don't need to
80
80
  // re-wrap.
81
81
  getProjectPaths(projectRoot);
@@ -101,8 +101,8 @@ async function runTypecheckCommandBody(projectRoot, options) {
101
101
  reportResults(projectRoot, results, patchIssues);
102
102
  }
103
103
  /**
104
- * Runs the per-patch-lint checkJs pass — the same program `export` and
105
- * `lint --per-patch` use — and returns its findings.
104
+ * Runs the per-patch-lint checkJs pass (the same program `export` and
105
+ * `lint --per-patch` use) and returns its findings.
106
106
  *
107
107
  * Returns an empty list when `patchLint.checkJs` is off or the project has
108
108
  * no patch queue: there is no second authority to reconcile then.
@@ -1,10 +1,10 @@
1
1
  /**
2
- * `fireforge verify` — read-only fsck for the patch queue.
2
+ * `fireforge verify`: read-only fsck for the patch queue.
3
3
  *
4
4
  * Combines the manifest consistency check (orphan files, missing entries,
5
5
  * files-affected mismatch, duplicate entries) with the cross-patch lint
6
6
  * rules (duplicate /dev/null creation, forward imports). Does not run
7
- * `planExport` per patch — that is intentionally out of scope because it
7
+ * `planExport` per patch. That is out of scope because it
8
8
  * would couple verify to engine state and make the command too slow to be
9
9
  * useful as a pre-flight gate. Engine-level patch application issues are
10
10
  * still covered by the existing `fireforge doctor` and `fireforge import`
@@ -35,7 +35,7 @@ export interface PatchQueueHealth {
35
35
  export declare function collectPatchQueueHealth(projectRoot: string): Promise<PatchQueueHealth>;
36
36
  /**
37
37
  * Runs the `verify` command: manifest consistency + cross-patch lint.
38
- * Read-only; exits non-zero on any error-severity finding.
38
+ * Read-only. Exits non-zero on any error-severity finding.
39
39
  *
40
40
  * @param projectRoot - Project root directory
41
41
  */
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * `fireforge verify` — read-only fsck for the patch queue.
3
+ * `fireforge verify`: read-only fsck for the patch queue.
4
4
  *
5
5
  * Combines the manifest consistency check (orphan files, missing entries,
6
6
  * files-affected mismatch, duplicate entries) with the cross-patch lint
7
7
  * rules (duplicate /dev/null creation, forward imports). Does not run
8
- * `planExport` per patch — that is intentionally out of scope because it
8
+ * `planExport` per patch. That is out of scope because it
9
9
  * would couple verify to engine state and make the command too slow to be
10
10
  * useful as a pre-flight gate. Engine-level patch application issues are
11
11
  * still covered by the existing `fireforge doctor` and `fireforge import`
@@ -34,16 +34,16 @@ import { info, intro, outro, success, warn } from '../utils/logger.js';
34
34
  /**
35
35
  * Walks each patch body in the manifest, extracts the set of
36
36
  * component-shaped registration references it adds (widget paths
37
- * implied by jar.mn + customElements.js; FTL paths implied by locale
37
+ * implied by jar.mn + customElements.js, and FTL paths implied by locale
38
38
  * jar.mn), and confirms every reference is either created by some
39
- * patch in the queue OR present as a tracked file in engine/. Any
40
- * unreachable reference is a dangling-registration error — the patch
39
+ * patch in the queue or present as a tracked file in engine/. Any
40
+ * unreachable reference is a dangling-registration error: the patch
41
41
  * registers a file that nothing in the world supplies, which fails at
42
42
  * install time.
43
43
  */
44
44
  async function detectDanglingRegistrations(patchesDir, engineDir, patches) {
45
45
  // Aggregate the set of all paths any patch in the queue is responsible for
46
- // (per `filesAffected`). Individual patch bodies are deliberately NOT
46
+ // (per `filesAffected`). Individual patch bodies are deliberately not
47
47
  // parsed for new-file creations here: `filesAffected` is already the
48
48
  // contract manifest callers rely on, and
49
49
  // `validatePatchesManifestConsistency` has already ensured the two are in
@@ -65,7 +65,7 @@ async function detectDanglingRegistrations(patchesDir, engineDir, patches) {
65
65
  }
66
66
  catch {
67
67
  // Bad file read is surfaced by the manifest consistency check
68
- // already — skipping here avoids double-reporting the same issue.
68
+ // already. Skipping here avoids double-reporting the same issue.
69
69
  continue;
70
70
  }
71
71
  const refs = collectPatchRegistrationReferences(body);
@@ -77,7 +77,7 @@ async function detectDanglingRegistrations(patchesDir, engineDir, patches) {
77
77
  // Engine existence check: if the target file is already present in
78
78
  // engine/ (upstream Firefox ships it, or a separate baseline branch
79
79
  // has it), the registration is not dangling. "Is this tracked by git"
80
- // cannot be probed without a git round-trip; existence on disk is a
80
+ // cannot be probed without a git round-trip. Existence on disk is a
81
81
  // close-enough proxy for verify's read-only context.
82
82
  if (await pathExists(join(engineDir, ref.targetPath)))
83
83
  continue;
@@ -170,7 +170,7 @@ export async function collectPatchQueueHealth(projectRoot) {
170
170
  }
171
171
  // Engine-aware module-resolution preflight. The queue-level
172
172
  // `unregistered-system-module` rule only sees modules a patch NEWLY
173
- // CREATES; this asks the same question of the engine, so an import ADDED
173
+ // CREATES. This asks the same question of the engine, so an import ADDED
174
174
  // to an existing module is named as text instead of surfacing later as a
175
175
  // bare `xpcshell return code: -11` with zero output.
176
176
  if (await pathExists(paths.engine)) {
@@ -253,7 +253,7 @@ export async function collectPatchQueueHealth(projectRoot) {
253
253
  }
254
254
  /**
255
255
  * Runs the `verify` command: manifest consistency + cross-patch lint.
256
- * Read-only; exits non-zero on any error-severity finding.
256
+ * Read-only. Exits non-zero on any error-severity finding.
257
257
  *
258
258
  * @param projectRoot - Project root directory
259
259
  */
@@ -17,7 +17,7 @@ const WATCHMAN_PROBE_TIMEOUT_MS = 5000;
17
17
  * in PATH but cannot respond (corrupt install, server crashed mid-session,
18
18
  * permission denied on the state directory) would otherwise surface as a
19
19
  * confusing mid-watch failure. Returns the trimmed version string when
20
- * the probe succeeds; throws a {@link GeneralError} with actionable
20
+ * the probe succeeds. Throws a {@link GeneralError} with actionable
21
21
  * remediation when it does not.
22
22
  */
23
23
  async function probeWatchman() {
@@ -64,7 +64,7 @@ function hasWatchPermissionFailure(output) {
64
64
  *
65
65
  * @param exitCode - Exit code returned by `mach watch`
66
66
  * @param watchmanPath - Optional absolute path to the resolved watchman
67
- * binary; surfaced in the guidance so the operator can see whether
67
+ * binary, surfaced in the guidance so the operator can see whether
68
68
  * FireForge actually found one.
69
69
  * @returns User-facing failure guidance
70
70
  */
@@ -106,10 +106,10 @@ export async function watchCommand(projectRoot) {
106
106
  // Check if engine exists
107
107
  await assertEngineExists(paths.engine);
108
108
  // Resolve the watchman binary to an absolute path up-front so we can (a)
109
- // refuse fast when it is missing AND (b) prepend its directory to the mach
109
+ // refuse fast when it is missing and (b) prepend its directory to the mach
110
110
  // subprocess PATH. On macOS, `which watchman` from an interactive shell
111
111
  // returns `/opt/homebrew/bin/watchman`, but the Node subprocess PATH
112
- // frequently omits `/opt/homebrew/bin` — so the shell probe passes and
112
+ // frequently omits `/opt/homebrew/bin`, so the shell probe passes and
113
113
  // mach's `watch-project` call then times out on its own failed PATH
114
114
  // lookup. Threading the directory through the subprocess env fixes it.
115
115
  const watchmanPath = await findExecutable('watchman');
@@ -117,7 +117,7 @@ export async function watchCommand(projectRoot) {
117
117
  throw new GeneralError('Watch mode requires watchman to be installed and available in PATH.\n\n' +
118
118
  'Install watchman first, then rerun "fireforge watch".');
119
119
  }
120
- // Verify watchman actually responds — a binary that is in PATH but
120
+ // Verify watchman actually responds: a binary that is in PATH but
121
121
  // unable to respond (broken install, crashed server, bad state dir
122
122
  // permissions) would otherwise surface as a confusing mid-build failure
123
123
  // instead of an actionable preflight error.
@@ -125,7 +125,7 @@ export async function watchCommand(projectRoot) {
125
125
  // Check for build artifacts before starting watch
126
126
  // The mismatch rung rejects copied or relocated obj-* dirs whose mozinfo
127
127
  // metadata (topsrcdir, topobjdir, mozconfig) still points at a different
128
- // source tree; mach watch against stale metadata produces confusing errors.
128
+ // source tree. mach watch against stale metadata produces confusing errors.
129
129
  const buildCheck = await hasBuildArtifacts(paths.engine);
130
130
  assertBuildArtifacts(paths.engine, buildCheck, {
131
131
  label: 'Watch mode',
@@ -136,7 +136,7 @@ export async function watchCommand(projectRoot) {
136
136
  // Report bundle state alongside the "Using build artifacts..." banner
137
137
  // so an operator watching a mid-build tree can see why `fireforge run`
138
138
  // would refuse right now while watch is still going. Watch remains
139
- // permissive (it exists to drive rebuilds) — this is informational.
139
+ // permissive (it exists to drive rebuilds), so this is informational.
140
140
  // The `hasBuildArtifacts` check already passed at this point, so
141
141
  // `objDir` is always defined.
142
142
  const bundleCheck = buildCheck.objDir
@@ -148,7 +148,7 @@ export async function watchCommand(projectRoot) {
148
148
  info(`Using build artifacts from ${buildCheck.objDir}/${bundleSuffix}`);
149
149
  // Advisory: warn when Furnace components have drifted since the last
150
150
  // apply so the user doesn't launch watch-mode builds with stale
151
- // components baked in. Mirrors the check in `fireforge run` — without
151
+ // components baked in. Mirrors the check in `fireforge run`: without
152
152
  // it, users editing a component then running `watch` would see their
153
153
  // change never surface in the rebuilt browser.
154
154
  await warnIfFurnaceStale(projectRoot);
@@ -173,7 +173,7 @@ export async function watchCommand(projectRoot) {
173
173
  const watchmanDir = dirname(watchmanPath);
174
174
  const existingPath = process.env['PATH'] ?? '';
175
175
  const pathSegments = existingPath.split(delimiter).filter((segment) => segment.length > 0);
176
- // Both arms filter identically; the cast this replaced laundered
176
+ // Both arms filter identically. The cast this replaced laundered
177
177
  // `string | undefined` on one arm while the other built the annotated shape
178
178
  // honestly.
179
179
  const baseEnv = {};
@@ -197,8 +197,8 @@ export async function watchCommand(projectRoot) {
197
197
  }
198
198
  // On Ctrl+C the bin signal handler now waits for the mach child to shut
199
199
  // down (waitForActiveChildShutdown) before exiting, so this continuation
200
- // can run and whitelist the SIGINT exit code — though the bin may still
201
- // win the race and terminate first; both outcomes are acceptable.
200
+ // can run and whitelist the SIGINT exit code, though the bin may still
201
+ // win the race and terminate first. Both outcomes are acceptable.
202
202
  if (result.exitCode !== 0 && result.exitCode !== 130) {
203
203
  const combinedOutput = `${result.stdout}\n${result.stderr}`;
204
204
  if (hasConfigureTimeWatchmanFailure(combinedOutput)) {
@@ -20,8 +20,8 @@ function printWireDryRun(engineDir, name, subscriptDir, domFilePath, domTargetPa
20
20
  info(` source: ${subscriptDir}/${name}.js`);
21
21
  info(` browser-main.js: loadSubScript("chrome://browser/content/${name}.js")`);
22
22
  if (options.init) {
23
- // Show the coerced form so the preview matches the emitted block —
24
- // echoing the raw input ("X.init") does not reflect that the real run
23
+ // Show the coerced form so the preview matches the emitted block.
24
+ // Echoing the raw input ("X.init") does not reflect that the real run
25
25
  // writes `X.init();` to browser-init.js.
26
26
  info(` browser-init.js: ${coerceToCall(options.init)}`);
27
27
  }
@@ -42,11 +42,11 @@ function printWireDryRun(engineDir, name, subscriptDir, domFilePath, domTargetPa
42
42
  * Preference order:
43
43
  * 1. `--target <path>` CLI flag (explicit caller intent)
44
44
  * 2. First entry of `furnace.json.tokenHostDocuments` (fork-configured
45
- * chrome doc list; already consumed by the missing-token-link
45
+ * chrome doc list, already consumed by the missing-token-link
46
46
  * validator and the doctor check)
47
47
  * 3. `browser/base/content/browser.xhtml` (upstream default)
48
48
  *
49
- * Step 2 is silent — a missing / invalid furnace.json falls through to the
49
+ * Step 2 is silent: a missing or invalid furnace.json falls through to the
50
50
  * upstream default rather than surfacing a warning, because forks that don't
51
51
  * use furnace shouldn't have to configure anything.
52
52
  */
@@ -63,7 +63,7 @@ async function resolveDomTargetPath(projectRoot, explicit) {
63
63
  }
64
64
  }
65
65
  catch {
66
- // Fall through to default — a broken furnace.json should not block
66
+ // Fall through to the default. A broken furnace.json should not block
67
67
  // the wire command. The doctor surfaces that issue separately.
68
68
  }
69
69
  }
@@ -85,7 +85,7 @@ function validateWireName(name) {
85
85
  }
86
86
  }
87
87
  /**
88
- * Asserts that the resolved chrome document both exists on disk AND exposes
88
+ * Asserts that the resolved chrome document both exists on disk and exposes
89
89
  * an insertion anchor (`#include browser-sets.inc` or `<html:body>`) that
90
90
  * `addDomFragment` can splice into. Fires in dry-run and real-run mode
91
91
  * alike, so the preview and execution agree on whether the target is
@@ -146,7 +146,7 @@ async function ensureSubscriptSourceExists(projectRoot, subscriptDir, name, dryR
146
146
  /**
147
147
  * Validates the `--dom` fragment argument and computes its engine-root-
148
148
  * relative path. Accepts absolute, repo-root-relative (`engine/...`), and
149
- * engine-relative inputs; rejects missing files and paths escaping
149
+ * engine-relative inputs. Rejects missing files and paths escaping
150
150
  * engine/. Returns undefined when `--dom` was not supplied.
151
151
  */
152
152
  async function resolveDomFragmentPath(projectRoot, dom) {
@@ -278,10 +278,10 @@ export async function wireCommand(projectRoot, name, options = {}) {
278
278
  // --after and have it forwarded unchanged to the lookup layer.
279
279
  validateWireName(options.after);
280
280
  }
281
- // Validate init/destroy expressions BEFORE the dry-run/real fork so both
281
+ // Validate init/destroy expressions before the dry-run/real fork so both
282
282
  // paths enforce the same contract. Validating only inside
283
- // `addInitToBrowserInit`/`addDestroyToBrowserInit` — the real-execution
284
- // path — lets `--dry-run --init 'void 0'` succeed and render a plausible
283
+ // `addInitToBrowserInit`/`addDestroyToBrowserInit` (the real-execution
284
+ // path) lets `--dry-run --init 'void 0'` succeed and render a plausible
285
285
  // preview even though the real run rejects the same arguments.
286
286
  if (options.init !== undefined) {
287
287
  validateWireExpression(options.init, 'init expression');
@@ -293,8 +293,8 @@ export async function wireCommand(projectRoot, name, options = {}) {
293
293
  const subscriptDir = await resolveWireSubscriptDir(projectRoot, options);
294
294
  const domFilePath = await resolveDomFragmentPath(projectRoot, options.dom);
295
295
  // Resolve the chrome document the `#include` directive will land in. Only
296
- // consulted when `--dom` is supplied — resolved here anyway so the dry-run
297
- // plan can print the target accurately.
296
+ // consulted when `--dom` is supplied, but resolved here anyway so the
297
+ // dry-run plan can print the target accurately.
298
298
  //
299
299
  // `stripEnginePrefix` is applied so
300
300
  // `--target engine/browser/base/browser.xhtml` and
@@ -317,7 +317,7 @@ export async function wireCommand(projectRoot, name, options = {}) {
317
317
  // setup scripts rely on.
318
318
  //
319
319
  // The check stays advisory rather than fatal in dry-run because
320
- // "wire first, create file after" is a legitimate use of preview — but a
320
+ // "wire first, create file after" is a legitimate use of preview. But a
321
321
  // dry-run over a typo would otherwise produce a plausible plan and the
322
322
  // real command then refuse with `Subscript file not found`. The info line
323
323
  // surfaces the mismatch in preview mode.
@@ -4,7 +4,7 @@ import { walk } from 'estree-walker';
4
4
  /**
5
5
  * An ESTree node augmented with acorn's character-offset positions.
6
6
  * At runtime `acorn.parse` produces objects that carry both the ESTree
7
- * shape *and* `start`/`end` indices, but the type system doesn't know that.
7
+ * shape and `start`/`end` indices, but the type system doesn't know that.
8
8
  * This intersection type bridges the gap so we can safely use both APIs.
9
9
  */
10
10
  export type AcornESTreeNode<T extends estree.Node = estree.Node> = T & {
@@ -12,7 +12,7 @@ export type AcornESTreeNode<T extends estree.Node = estree.Node> = T & {
12
12
  end: number;
13
13
  };
14
14
  /**
15
- * Parse JavaScript source as a **script** (not an ES module).
15
+ * Parse JavaScript source as a script, not an ES module.
16
16
  * All Mozilla chrome JS files (`browser-main.js`, `browser-init.js`,
17
17
  * `customElements.js`, etc.) are scripts that run in a privileged scope.
18
18
  *
@@ -22,7 +22,7 @@ export type AcornESTreeNode<T extends estree.Node = estree.Node> = T & {
22
22
  */
23
23
  export declare function parseScript(content: string, onComment?: acorn.Comment[]): AcornESTreeNode<estree.Program>;
24
24
  /**
25
- * Parse JavaScript source as an **ES module**.
25
+ * Parse JavaScript source as an ES module.
26
26
  * Used for `.sys.mjs` files which use static import/export syntax.
27
27
  *
28
28
  * @param content - Source text to parse
@@ -34,12 +34,12 @@ export declare function parseModule(content: string, onComment?: acorn.Comment[]
34
34
  * Convenience cast from `acorn.Node` (or the generic ESTree union returned
35
35
  * by estree-walker callbacks) to a positioned, narrowly-typed node.
36
36
  *
37
- * **Caller obligation: you must already have discriminated on `node.type`.**
38
- * This performs no runtime check — it exists to attach acorn's `start`/`end`
39
- * offsets to a node the caller has *already* narrowed, typically inside an
37
+ * Caller obligation: you must already have discriminated on `node.type`.
38
+ * This performs no runtime check. It exists to attach acorn's `start`/`end`
39
+ * offsets to a node the caller has already narrowed, typically inside an
40
40
  * `if (node.type === 'CallExpression')` branch or an equivalent walker
41
41
  * guard. Calling it on an undiscriminated node produces a value whose type
42
- * is a lie.
42
+ * is wrong.
43
43
  *
44
44
  * No runtime `type` assertion: every call site sits in the hot loop of a lint
45
45
  * or registration walker and is already post-narrowing, so the check would