@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
@@ -7,8 +7,8 @@
7
7
  *
8
8
  * Memoised per context object: ownership resolution and cache-key
9
9
  * fingerprints call this 2-3× per linted patch, and each call otherwise
10
- * re-runs `detectNewFilesInDiff` over EVERY queue entry's diff. Keyed weakly
11
- * so a discarded context frees its map; a caller that mutates a context
10
+ * re-runs `detectNewFilesInDiff` over every queue entry's diff. Keyed weakly
11
+ * so a discarded context frees its map. A caller that mutates a context
12
12
  * entry in place must call {@link invalidateNewFileCreatorsCache}.
13
13
  */
14
14
  import { detectNewFilesInDiff } from './patch-lint-diff.js';
@@ -22,7 +22,7 @@ export function invalidateNewFileCreatorsCache(ctx) {
22
22
  * mode` by at least one patch in the queue. Paths created by only one
23
23
  * patch are also included so callers can distinguish "no creator" from
24
24
  * "exactly one creator" without re-scanning the diffs. The returned map
25
- * is memoised and shared — treat it as read-only.
25
+ * is memoised and shared, so treat it as read-only.
26
26
  */
27
27
  export function collectNewFileCreatorsByPath(ctx) {
28
28
  const memoised = newFileCreatorsMemo.get(ctx);
@@ -35,13 +35,13 @@ export interface PatchQueueEntry {
35
35
  */
36
36
  newFiles: Map<string, string>;
37
37
  /**
38
- * Every path this patch CREATES, whatever the body kind — text, a
38
+ * Every path this patch creates, whatever the body kind: text, a
39
39
  * reconstructable `GIT binary patch`, or a payload-less
40
40
  * `Binary files … differ` stub. `newFiles` is text-only by design (a
41
41
  * binary authors no imports, so the import rules gain nothing from it and
42
42
  * `extractNewFileContent` correctly refuses to decode one), but "does a
43
43
  * later patch create this path" is a question about existence after apply,
44
- * not about content — and answering it from `newFiles` made every binary
44
+ * not about content, and answering it from `newFiles` made every binary
45
45
  * creation invisible to the staged-registration rules.
46
46
  */
47
47
  createdFiles: Set<string>;
@@ -51,7 +51,7 @@ export interface PatchQueueEntry {
51
51
  * patch *modifies* (i.e. paths that show up in the diff without a
52
52
  * `new file mode` marker). The forward-import rule and `patch delete`
53
53
  * dependency scan use this to detect imports added into pre-existing
54
- * files — a failure mode the newFiles map cannot represent because it
54
+ * files, a failure mode the newFiles map cannot represent because it
55
55
  * only tracks creations.
56
56
  */
57
57
  modifiedFileAdditions: Map<string, string>;
@@ -60,7 +60,7 @@ export interface PatchQueueEntry {
60
60
  * Queue-wide context passed to cross-patch lint rules.
61
61
  *
62
62
  * "Projected" means rules receive a potentially hypothetical view of the
63
- * queue — the caller may have already applied a planned delete, reorder, or
63
+ * queue: the caller may have already applied a planned delete, reorder, or
64
64
  * re-export to the entries before calling the rule. This lets
65
65
  * `patch reorder`, `patch delete`, `export --order`, and `re-export --files`
66
66
  * run the same cross-patch checks they would hit on a real run, without
@@ -84,7 +84,7 @@ export interface PatchQueueContext {
84
84
  * Reads manifest metadata best-effort: if the manifest is missing or a patch
85
85
  * file has no metadata entry, the context still populates the entry from the
86
86
  * filename prefix so cross-patch rules can operate on a drift state. (A
87
- * separate consistency check — see `patches verify` — is responsible for
87
+ * separate consistency check, see `patches verify`, is responsible for
88
88
  * reporting the drift as its own error.)
89
89
  *
90
90
  * @param patchesDir - Path to the patches directory
@@ -111,13 +111,13 @@ export declare function isForwardImportableFile(path: string): boolean;
111
111
  *
112
112
  * Intentionally conservative. Catches:
113
113
  * - `import ... from "specifier"` (ES module static imports)
114
- * - `import "specifier"` (side-effect imports — the `from`
114
+ * - `import "specifier"` (side-effect imports, where the `from`
115
115
  * clause is optional in the regex)
116
116
  * - `import("specifier")` (dynamic imports)
117
117
  * - ChromeUtils.importESModule("specifier")
118
118
  * - ChromeUtils.defineESModuleGetters(obj, { Name: "specifier", ... })
119
119
  *
120
- * Returns the raw specifier strings — callers should take the leaf basename
120
+ * Returns the raw specifier strings. Callers should take the leaf basename
121
121
  * to match against the newFileIndex, because we do not resolve `resource://`
122
122
  * URLs to engine file paths.
123
123
  *
@@ -162,19 +162,19 @@ export declare function findForwardImportIgnoreLines(source: string): Set<number
162
162
  * Cross-patch lint rule: a patch imports a module that a later patch is
163
163
  * responsible for creating.
164
164
  *
165
- * Deliberately conservative — `resource://` URLs are not resolved to engine
165
+ * Conservative by design: `resource://` URLs are not resolved to engine
166
166
  * file paths. Instead a cross-queue index of newly-created files is built,
167
167
  * keyed by basename, and imports whose leaf matches an entry owned by a
168
168
  * later-ordered patch are flagged. False positives from unrelated basename
169
- * collisions (two directories both creating `Helper.sys.mjs`) are possible;
170
- * the README documents the limitation and the inline ignore marker above is
169
+ * collisions (two directories both creating `Helper.sys.mjs`) are possible.
170
+ * The README documents the limitation and the inline ignore marker above is
171
171
  * the escape hatch.
172
172
  *
173
173
  * Rules out:
174
174
  * - Imports whose leaf matches a newly-created file in the *same* or an
175
175
  * *earlier* patch (legitimate use).
176
176
  * - Imports whose leaf is not in the new-file index at all (pre-existing
177
- * engine file — not our concern).
177
+ * engine file, not our concern).
178
178
  * - Imports on a line suppressed by the ignore marker.
179
179
  */
180
180
  /** One discovered forward-import edge: a site importing a later-created file. */
@@ -204,8 +204,8 @@ export declare function collectForwardImportEdges(ctx: PatchQueueContext): Forwa
204
204
  * Cross-patch lint rule: flag imports of a module a later-ordered patch is
205
205
  * responsible for creating, unless the patch declares an exact staged
206
206
  * forward-import for it. Also warns on staged-dependency declarations that
207
- * never matched (stale). Matching is conservative — by basename, not by
208
- * resolving `resource://`/`chrome://` URLs — with an inline ignore marker as
207
+ * never matched (stale). Matching is conservative: by basename, not by
208
+ * resolving `resource://`/`chrome://` URLs, with an inline ignore marker as
209
209
  * an escape hatch for unrelated basename collisions.
210
210
  */
211
211
  export declare function lintPatchQueueForwardImports(ctx: PatchQueueContext): PatchLintIssue[];
@@ -32,7 +32,7 @@ import { extractNewFileContent } from './patch-transform.js';
32
32
  * Reads manifest metadata best-effort: if the manifest is missing or a patch
33
33
  * file has no metadata entry, the context still populates the entry from the
34
34
  * filename prefix so cross-patch rules can operate on a drift state. (A
35
- * separate consistency check — see `patches verify` — is responsible for
35
+ * separate consistency check, see `patches verify`, is responsible for
36
36
  * reporting the drift as its own error.)
37
37
  *
38
38
  * @param patchesDir - Path to the patches directory
@@ -63,7 +63,7 @@ export async function buildPatchQueueContext(patchesDir, config) {
63
63
  // Added-line content for every file the patch modifies but does not
64
64
  // create. Fed to the forward-import rule so imports introduced into
65
65
  // pre-existing files are checked too, not only imports in brand-new
66
- // files. We deliberately skip paths in newFilePaths — those are
66
+ // files. Paths in newFilePaths are skipped on purpose: they are
67
67
  // already covered by the newFiles map, which carries full content
68
68
  // rather than only the added lines.
69
69
  const addedLinesByFile = extractAddedLinesPerFile(diff);
@@ -91,7 +91,7 @@ export async function buildPatchQueueContext(patchesDir, config) {
91
91
  }
92
92
  // The creators map (split out of `lintPatchQueueDuplicateCreations` so
93
93
  // `status --ownership` can consume the structured data) lives in
94
- // `patch-lint-creators.ts` with its per-context memoisation;
94
+ // `patch-lint-creators.ts` with its per-context memoisation. It is
95
95
  // re-exported here so callers keep importing from `patch-lint.ts`.
96
96
  export { collectNewFileCreatorsByPath, invalidateNewFileCreatorsCache, } from './patch-lint-creators.js';
97
97
  /**
@@ -168,7 +168,7 @@ function collectGetterSpecifiers(stripped, results, offsetToLine) {
168
168
  const openParen = stripped.indexOf('(', match.index);
169
169
  if (openParen === -1)
170
170
  continue;
171
- // Walk to the first top-level `{` inside the call — the start of
171
+ // Walk to the first top-level `{` inside the call, the start of
172
172
  // the getter-map object literal. Bail if we reach the closing `)`
173
173
  // first (no object literal argument given).
174
174
  let depthParen = 1;
@@ -230,7 +230,7 @@ export function extractImportSpecifiersWithLines(source) {
230
230
  // length, preserving character offsets. That lets us match against
231
231
  // the stripped source (so we do not match `import` tokens inside
232
232
  // block comments or string literals) while still reporting line
233
- // numbers based on the ORIGINAL source, which is what the
233
+ // numbers based on the original source, which is what the
234
234
  // ignore-marker scan walks.
235
235
  const stripped = stripJsComments(source);
236
236
  const results = [];
@@ -247,7 +247,7 @@ export function extractImportSpecifiersWithLines(source) {
247
247
  if (match[1])
248
248
  results.push({ specifier: match[1], line: offsetToLine(match.index) });
249
249
  }
250
- // ChromeUtils.importESModule("resource://...") — Firefox single-module import
250
+ // ChromeUtils.importESModule("resource://...") is a Firefox single-module import
251
251
  const chromeUtilsPattern = /ChromeUtils\.importESModule\s*\(\s*["']([^"']+)["']/g;
252
252
  while ((match = chromeUtilsPattern.exec(stripped)) !== null) {
253
253
  if (match[1])
@@ -257,14 +257,14 @@ export function extractImportSpecifiersWithLines(source) {
257
257
  return results;
258
258
  }
259
259
  /**
260
- * Bare `Name: "url"` property lines added inside a PRE-EXISTING
261
- * `defineESModuleGetters` (or `XPCOMUtils` lazy-getter) map. Applied ONLY to
260
+ * Bare `Name: "url"` property lines added inside a pre-existing
261
+ * `defineESModuleGetters` (or `XPCOMUtils` lazy-getter) map. Applied only to
262
262
  * `modifiedFileAdditions`: a patch that inserts one property into an
263
263
  * existing getter object never carries the `defineESModuleGetters(` opener
264
264
  * in its added lines, so the balanced-brace walk in
265
265
  * {@link extractImportSpecifiersWithLines} cannot see it. The
266
266
  * URL-scheme restriction keeps ordinary object literals
267
- * (`label: "Foo.sys.mjs"`) out; the leaf-extension filter downstream does
267
+ * (`label: "Foo.sys.mjs"`) out. The leaf-extension filter downstream does
268
268
  * the rest.
269
269
  */
270
270
  const BARE_GETTER_PROPERTY_LINE = /^\s*(?:["'])?[A-Za-z_$][\w$]*(?:["'])?\s*:\s*["']((?:resource|chrome|moz-src):\/\/[^"']+)["']\s*,?\s*$/;
@@ -353,7 +353,7 @@ function buildCreatorIndex(ctx, pathsOf) {
353
353
  /**
354
354
  * Basename → later-creators index for the forward-IMPORT scan.
355
355
  *
356
- * Keyed on `newFiles` deliberately: this index answers "which patch creates
356
+ * Keyed on `newFiles`: this index answers "which patch creates
357
357
  * the module this specifier resolves to", and a binary is not a module.
358
358
  */
359
359
  function buildNewFileIndex(ctx) {
@@ -364,11 +364,11 @@ function buildNewFileIndex(ctx) {
364
364
  *
365
365
  * Keyed on `createdFiles`, which includes binary creations. A registration
366
366
  * (`support-files`, a jar.mn line, an actor entry) points at a file that
367
- * must EXIST after apply; whether its body was text or a `GIT binary patch`
367
+ * must exist after apply. Whether its body was text or a `GIT binary patch`
368
368
  * has nothing to do with it. Resolving this from `newFiles` made a declared
369
369
  * dependency on a binary fixture report `creates-unresolved`, so the
370
370
  * declaration read as stale on every lint run and removing it changed
371
- * nothing either — the failure was symmetric and therefore invisible.
371
+ * nothing either. The failure was symmetric and therefore invisible.
372
372
  */
373
373
  function buildCreatedFileIndex(ctx) {
374
374
  return buildCreatorIndex(ctx, (entry) => entry.createdFiles);
@@ -378,7 +378,7 @@ function buildCreatedFileIndex(ctx) {
378
378
  * later-ordered patch). Shared by {@link lintPatchQueueForwardImports} (which
379
379
  * resolves/reports each) and {@link collectForwardImportEdges} (which returns
380
380
  * them structurally). We scan a created file's full body and a modified
381
- * file's added lines only — flagging imports *this patch introduces*, not
381
+ * file's added lines only, so it flags imports *this patch introduces*, not
382
382
  * pre-existing HEAD imports that happen to collide with a later-created file.
383
383
  */
384
384
  function eachForwardImportSite(ctx, newFileIndex, visit) {
@@ -389,7 +389,7 @@ function eachForwardImportSite(ctx, newFileIndex, visit) {
389
389
  if (includeBareGetterLines) {
390
390
  // Dedupe by (specifier, line): a patch that adds the whole getter
391
391
  // call carries both the opener (found by the balanced walk) and the
392
- // property line (found here) — report each site once.
392
+ // property line (found here), so report each site once.
393
393
  const seen = new Set(sites.map((site) => `${site.specifier}|${site.line}`));
394
394
  for (const extra of extractBareGetterSpecifiers(content)) {
395
395
  if (!seen.has(`${extra.specifier}|${extra.line}`))
@@ -448,8 +448,8 @@ export function collectForwardImportEdges(ctx) {
448
448
  * Cross-patch lint rule: flag imports of a module a later-ordered patch is
449
449
  * responsible for creating, unless the patch declares an exact staged
450
450
  * forward-import for it. Also warns on staged-dependency declarations that
451
- * never matched (stale). Matching is conservative — by basename, not by
452
- * resolving `resource://`/`chrome://` URLs — with an inline ignore marker as
451
+ * never matched (stale). Matching is conservative: by basename, not by
452
+ * resolving `resource://`/`chrome://` URLs, with an inline ignore marker as
453
453
  * an escape hatch for unrelated basename collisions.
454
454
  */
455
455
  export function lintPatchQueueForwardImports(ctx) {
@@ -470,11 +470,11 @@ export function lintPatchQueueForwardImports(ctx) {
470
470
  .map((o) => `${o.filename}:${o.fullPath}`)
471
471
  .sort((a, b) => a.localeCompare(b))
472
472
  .join(',');
473
- // Lowest ordinal that lands AFTER every later-ordered creator —
473
+ // Lowest ordinal that lands after every later-ordered creator. It
474
474
  // turns the operator's "guess and re-run" loop into a single shot
475
475
  // when the only fix is reordering. When patchPolicy is available and
476
476
  // that ordinal falls outside the importing patch's category range,
477
- // `patch reorder` would refuse it — suppress the hint and point at
477
+ // `patch reorder` would refuse it, so suppress the hint and point at
478
478
  // the staged-dependency remedy instead.
479
479
  const suggestedOrder = Math.max(...laterOwners.map((o) => o.order)) + 1;
480
480
  const category = entry.metadata?.category ?? /^\d+-([a-z]+)-/.exec(entry.filename)?.[1];
@@ -526,11 +526,11 @@ export function lintPatchQueueForwardImports(ctx) {
526
526
  }
527
527
  // Registration-kind declarations: a jar.mn packaging line,
528
528
  // customElements registration, or actor registration referencing a
529
- // later-created file. There is no import specifier to match — the
529
+ // later-created file. There is no import specifier to match. The
530
530
  // declaration is "used" when the declared line (whitespace-trimmed)
531
- // appears among the lines this patch adds to the declaring file AND its
531
+ // appears among the lines this patch adds to the declaring file and its
532
532
  // `creates` resolves to a file a later-ordered patch actually creates
533
- // (with `owner`, when set, naming that patch) — mirroring
533
+ // (with `owner`, when set, naming that patch), mirroring
534
534
  // findMatchingStagedDependency for the import kind.
535
535
  for (const registration of entry.metadata?.stagedDependencies?.registrations ?? []) {
536
536
  const failure = findStagedRegistrationFailure(entry, registration, createdFileIndex);
@@ -3,7 +3,7 @@
3
3
  * custom-property references.
4
4
  *
5
5
  * Split out of `patch-lint.ts` so each rule family stays within the
6
- * per-file line budget; `patch-lint.ts` re-exports `lintPatchedCss` so
6
+ * per-file line budget. `patch-lint.ts` re-exports `lintPatchedCss` so
7
7
  * existing callers keep importing from the single module.
8
8
  */
9
9
  import type { PatchLintIssue } from '../types/commands/index.js';
@@ -4,7 +4,7 @@
4
4
  * custom-property references.
5
5
  *
6
6
  * Split out of `patch-lint.ts` so each rule family stays within the
7
- * per-file line budget; `patch-lint.ts` re-exports `lintPatchedCss` so
7
+ * per-file line budget. `patch-lint.ts` re-exports `lintPatchedCss` so
8
8
  * existing callers keep importing from the single module.
9
9
  */
10
10
  import { join } from 'node:path';
@@ -15,7 +15,7 @@ import { hasRawCssColors } from '../utils/regex.js';
15
15
  import { loadFurnaceConfig } from './furnace-config.js';
16
16
  import { extractAddedLineNumbersPerFile, extractAddedLinesPerFile } from './patch-lint-diff.js';
17
17
  /**
18
- * Loads the furnace token-prefix lint inputs gracefully — returns
18
+ * Loads the furnace token-prefix lint inputs gracefully. Returns
19
19
  * undefined (skipping the token-prefix check) when furnace.json cannot
20
20
  * be loaded or no tokenPrefix is configured.
21
21
  */
@@ -38,7 +38,7 @@ async function loadCssTokenContext(repoDir) {
38
38
  }
39
39
  /**
40
40
  * Masks CSS block comments with spaces, preserving newlines so line
41
- * numbers stay stable. An unclosed trailing `/*` is masked to EOF —
41
+ * numbers stay stable. An unclosed trailing `/*` is masked to EOF,
42
42
  * matching how a CSS parser treats it.
43
43
  */
44
44
  function maskCssComments(source) {
@@ -60,7 +60,7 @@ const RAW_COLOR_IGNORE_MARKER = 'fireforge-ignore: raw-color-value';
60
60
  * comment spanning the context/added boundary suppresses its hex, then
61
61
  * only the patch's added line numbers are scanned. Returns undefined
62
62
  * when any added line number falls outside the on-disk file (patch not
63
- * applied / drifted) — the caller then falls back to the legacy
63
+ * applied / drifted). The caller then falls back to the legacy
64
64
  * joined-added-lines scan rather than misattributing lines.
65
65
  */
66
66
  function buildAddedLinesScanSource(rawCss, addedNumbers) {
@@ -77,7 +77,7 @@ function checkRawColorValues(input) {
77
77
  const { file, rawCss, addedLinesByFile, addedLineNumbersByFile, config, issues } = input;
78
78
  // Check only introduced raw color values when diff context is available.
79
79
  // Skip files on the raw-color allowlist (exact path or basename match) and
80
- // auto-exempt files under `browser/branding/` — those are the fork's
80
+ // auto-exempt files under `browser/branding/`: those are the fork's
81
81
  // visual identity assets (app-about dialogs, installer pages, branded CSS
82
82
  // copied from Firefox's `unofficial` template) and belong to the
83
83
  // design-decision layer the design-token system does not govern. Without
@@ -12,7 +12,7 @@ import type { PatchLintIssue } from '../types/commands/index.js';
12
12
  /**
13
13
  * Collects engine-relative paths that changed between `rev` and `HEAD`,
14
14
  * plus any workdir modifications and untracked files. An empty set means
15
- * "no diff we can prove" — downstream treats every issue as `cumulative`
15
+ * "no diff we can prove". Downstream treats every issue as `cumulative`
16
16
  * in that case (operator ran `lint --since HEAD` with no pending work).
17
17
  * @param engineDir Path to the engine git repository.
18
18
  * @param rev Git revision to diff against (e.g. `HEAD`, a branch, a SHA).
@@ -28,10 +28,10 @@ export declare const AGGREGATE_PATCH_FILE = "(patch)";
28
28
  /**
29
29
  * Annotates a list of lint issues with `introduced` / `cumulative` tags
30
30
  * based on whether the issue's file is part of the supplied diff set.
31
- * Mutates each issue in place AND returns the list for chaining.
31
+ * Mutates each issue in place and returns the list for chaining.
32
32
  *
33
- * Issues with no file (`issue.file === ''`) — e.g. cross-patch rules that
34
- * describe queue-wide state — are always `cumulative` under `--since`
33
+ * Issues with no file (`issue.file === ''`), for example cross-patch rules
34
+ * that describe queue-wide state, are always `cumulative` under `--since`
35
35
  * because they describe drift accumulated across many commits, not a single
36
36
  * current-task edit.
37
37
  *
@@ -39,7 +39,7 @@ export declare const AGGREGATE_PATCH_FILE = "(patch)";
39
39
  * synthetic placeholder that can never appear in a real `diffFiles` set.
40
40
  * Without special-casing, `large-patch-files` / `large-patch-lines` are
41
41
  * always tagged `[cumulative]` under `--only-introduced` even when the diff
42
- * IS the aggregate the rules measured, which reads as "this pre-existed" to
42
+ * is the aggregate the rules measured, which reads as "this pre-existed" to
43
43
  * an operator asking "what did this diff introduce?". The aggregate tag is
44
44
  * therefore promoted to `introduced` whenever the diff set has any content:
45
45
  * a non-empty `diffFiles` means the operator asked about a specific diff
@@ -17,7 +17,7 @@ import { getUntrackedFiles } from './git-status.js';
17
17
  /**
18
18
  * Collects engine-relative paths that changed between `rev` and `HEAD`,
19
19
  * plus any workdir modifications and untracked files. An empty set means
20
- * "no diff we can prove" — downstream treats every issue as `cumulative`
20
+ * "no diff we can prove". Downstream treats every issue as `cumulative`
21
21
  * in that case (operator ran `lint --since HEAD` with no pending work).
22
22
  * @param engineDir Path to the engine git repository.
23
23
  * @param rev Git revision to diff against (e.g. `HEAD`, a branch, a SHA).
@@ -68,10 +68,10 @@ export const AGGREGATE_PATCH_FILE = '(patch)';
68
68
  /**
69
69
  * Annotates a list of lint issues with `introduced` / `cumulative` tags
70
70
  * based on whether the issue's file is part of the supplied diff set.
71
- * Mutates each issue in place AND returns the list for chaining.
71
+ * Mutates each issue in place and returns the list for chaining.
72
72
  *
73
- * Issues with no file (`issue.file === ''`) — e.g. cross-patch rules that
74
- * describe queue-wide state — are always `cumulative` under `--since`
73
+ * Issues with no file (`issue.file === ''`), for example cross-patch rules
74
+ * that describe queue-wide state, are always `cumulative` under `--since`
75
75
  * because they describe drift accumulated across many commits, not a single
76
76
  * current-task edit.
77
77
  *
@@ -79,7 +79,7 @@ export const AGGREGATE_PATCH_FILE = '(patch)';
79
79
  * synthetic placeholder that can never appear in a real `diffFiles` set.
80
80
  * Without special-casing, `large-patch-files` / `large-patch-lines` are
81
81
  * always tagged `[cumulative]` under `--only-introduced` even when the diff
82
- * IS the aggregate the rules measured, which reads as "this pre-existed" to
82
+ * is the aggregate the rules measured, which reads as "this pre-existed" to
83
83
  * an operator asking "what did this diff introduce?". The aggregate tag is
84
84
  * therefore promoted to `introduced` whenever the diff set has any content:
85
85
  * a non-empty `diffFiles` means the operator asked about a specific diff
@@ -5,7 +5,7 @@
5
5
  * Factored out of `patch-lint.ts` so the per-patch lint body and
6
6
  * cross-patch lint body (in `patch-lint-cross.ts`) can both depend on
7
7
  * the same diff walkers without inducing a circular import. Callers
8
- * should keep importing these through `patch-lint.ts` — this file is
8
+ * should keep importing these through `patch-lint.ts`. This file is
9
9
  * an implementation detail. The actual line-walking lives in
10
10
  * `parseDiffSections` (patch-parse.ts), the codebase's single diff walker.
11
11
  */
@@ -22,8 +22,8 @@ export declare function extractAddedLinesPerFile(diffContent: string): Map<strin
22
22
  * Extracts 1-based post-patch line numbers of added lines per file from a
23
23
  * unified diff. Walking each hunk with a new-file line counter (`+` and
24
24
  * context lines advance it, `-` lines do not) lets rules that need
25
- * full-file context — e.g. comment masking across the context/added
26
- * boundary — map the patch's additions onto the applied file.
25
+ * full-file context (e.g. comment masking across the context/added
26
+ * boundary) map the patch's additions onto the applied file.
27
27
  */
28
28
  export declare function extractAddedLineNumbersPerFile(diffContent: string): Map<string, number[]>;
29
29
  /**
@@ -34,7 +34,7 @@ export declare function extractAddedLineNumbersPerFile(diffContent: string): Map
34
34
  * `buildPatchQueueContext`.
35
35
  *
36
36
  * Matches buildPatchQueueContext's algorithm exactly: skip paths that are
37
- * created by the diff — those are already covered by the `newFiles` map,
37
+ * created by the diff, since those are already covered by the `newFiles` map,
38
38
  * which carries full content rather than only the added lines.
39
39
  *
40
40
  * @param diff - Unified diff content
@@ -6,7 +6,7 @@
6
6
  * Factored out of `patch-lint.ts` so the per-patch lint body and
7
7
  * cross-patch lint body (in `patch-lint-cross.ts`) can both depend on
8
8
  * the same diff walkers without inducing a circular import. Callers
9
- * should keep importing these through `patch-lint.ts` — this file is
9
+ * should keep importing these through `patch-lint.ts`. This file is
10
10
  * an implementation detail. The actual line-walking lives in
11
11
  * `parseDiffSections` (patch-parse.ts), the codebase's single diff walker.
12
12
  */
@@ -49,8 +49,8 @@ export function extractAddedLinesPerFile(diffContent) {
49
49
  * Extracts 1-based post-patch line numbers of added lines per file from a
50
50
  * unified diff. Walking each hunk with a new-file line counter (`+` and
51
51
  * context lines advance it, `-` lines do not) lets rules that need
52
- * full-file context — e.g. comment masking across the context/added
53
- * boundary — map the patch's additions onto the applied file.
52
+ * full-file context (e.g. comment masking across the context/added
53
+ * boundary) map the patch's additions onto the applied file.
54
54
  */
55
55
  export function extractAddedLineNumbersPerFile(diffContent) {
56
56
  const result = new Map();
@@ -84,7 +84,7 @@ export function extractAddedLineNumbersPerFile(diffContent) {
84
84
  * `buildPatchQueueContext`.
85
85
  *
86
86
  * Matches buildPatchQueueContext's algorithm exactly: skip paths that are
87
- * created by the diff — those are already covered by the `newFiles` map,
87
+ * created by the diff, since those are already covered by the `newFiles` map,
88
88
  * which carries full content rather than only the added lines.
89
89
  *
90
90
  * @param diff - Unified diff content
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The `file-too-large` thresholds and their rendered message.
3
3
  *
4
- * Its own module for two reasons: the config validator needs the DEFAULTS
4
+ * Its own module for two reasons: the config validator needs the defaults
5
5
  * to validate an override triple against the merged result, and importing
6
6
  * `patch-lint.ts` from `config-validate.ts` for a constant would draw an
7
7
  * import edge (and a cycle) between the rule bodies and config parsing.
@@ -9,9 +9,9 @@
9
9
  * On the vocabulary: the bands were `notice` / `warning` / `error` with the
10
10
  * middle one described as a "soft limit". That description is false under
11
11
  * the posture FireForge itself recommends for a release gate,
12
- * `--max-warnings 0`, where a warning is a hard failure — so a file at 751
12
+ * `--max-warnings 0`, where a warning is a hard failure, so a file at 751
13
13
  * lines failed a gate with a message calling 750 soft. The message below
14
- * says what the band IS (a warning) and what a zero-warning gate does with
14
+ * says what the band is (a warning) and what a zero-warning gate does with
15
15
  * it, and the thresholds are now tunable, so a project whose file-size
16
16
  * policy differs has a dial instead of an argument.
17
17
  */
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * The `file-too-large` thresholds and their rendered message.
4
4
  *
5
- * Its own module for two reasons: the config validator needs the DEFAULTS
5
+ * Its own module for two reasons: the config validator needs the defaults
6
6
  * to validate an override triple against the merged result, and importing
7
7
  * `patch-lint.ts` from `config-validate.ts` for a constant would draw an
8
8
  * import edge (and a cycle) between the rule bodies and config parsing.
@@ -10,9 +10,9 @@
10
10
  * On the vocabulary: the bands were `notice` / `warning` / `error` with the
11
11
  * middle one described as a "soft limit". That description is false under
12
12
  * the posture FireForge itself recommends for a release gate,
13
- * `--max-warnings 0`, where a warning is a hard failure — so a file at 751
13
+ * `--max-warnings 0`, where a warning is a hard failure, so a file at 751
14
14
  * lines failed a gate with a message calling 750 soft. The message below
15
- * says what the band IS (a warning) and what a zero-warning gate does with
15
+ * says what the band is (a warning) and what a zero-warning gate does with
16
16
  * it, and the thresholds are now tunable, so a project whose file-size
17
17
  * policy differs has a dial instead of an argument.
18
18
  */
@@ -5,7 +5,7 @@ import type { PatchQueueForwardRegistrationEntry, PatchQueueView } from './patch
5
5
  *
6
6
  * The entry alone is not enough for the discharge command the rule prints:
7
7
  * `--line` is compared, whitespace-trimmed, against the lines the patch
8
- * ADDS, and a synthesised `support-files = ["<entry>"]` only ever matches a
8
+ * adds, and a synthesised `support-files = ["<entry>"]` only ever matches a
9
9
  * manifest whose array is single-line and single-entry. Carrying the source
10
10
  * line keeps the remedy and the validation talking about the same text.
11
11
  */
@@ -26,8 +26,8 @@ export interface SupportFileEntry {
26
26
  * with the manifest line it is written on.
27
27
  *
28
28
  * Handles the TOML array on one line and spread over several, and the
29
- * whitespace-separated `.ini` spelling. Anything else — a computed value, a
30
- * shape this does not recognise — yields nothing, because a rule that
29
+ * whitespace-separated `.ini` spelling. Anything else (a computed value, a
30
+ * shape this does not recognise) yields nothing, because a rule that
31
31
  * guesses at a manifest it cannot parse refuses correct queues.
32
32
  *
33
33
  * Quoted tokens are matched per physical line rather than over the whole
@@ -40,7 +40,7 @@ export declare function extractSupportFileEntries(content: string): SupportFileE
40
40
  * Resolves one `support-files` entry, relative to its manifest's directory,
41
41
  * into a matcher over engine-relative paths.
42
42
  *
43
- * Only a `*` inside a single path segment is expanded — the shape the
43
+ * Only a `*` inside a single path segment is expanded, the shape the
44
44
  * downstream report uses (`fixtures/*.sqlite`). `**`, `!` exclusions and
45
45
  * absolute `/`-rooted entries return undefined: they either cross directory
46
46
  * boundaries or subtract, and a matcher that guessed at them would attribute
@@ -1,17 +1,17 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
3
  * Cross-patch lint rule: a test manifest that registers a file a
4
- * LATER-ordered patch creates, without declaring the staged dependency.
4
+ * later-ordered patch creates, without declaring the staged dependency.
5
5
  *
6
- * The import kind has had this arm since forward-import shipped; the
6
+ * The import kind has had this arm since forward-import shipped. The
7
7
  * registration kind never did. `--kind registration` metadata was only ever
8
- * checked for STALENESS once declared, so a patch whose `xpcshell.toml`
8
+ * checked for staleness once declared, so a patch whose `xpcshell.toml`
9
9
  * carried `support-files = ["fixtures/*.sqlite"]` for a fixture the next
10
- * patch creates passed lint in both arms — declaring the dependency and
11
- * removing the declaration produced identical silence, which is what made
12
- * the gap invisible rather than merely absent.
10
+ * patch creates passed lint in both arms. Declaring the dependency and
11
+ * removing the declaration produced identical silence, so the gap was
12
+ * invisible rather than merely absent.
13
13
  *
14
- * Scope is deliberately narrow: test-manifest `support-files` only. A
14
+ * Scope is narrow on purpose: test-manifest `support-files` only. A
15
15
  * jar.mn packaging line or an actor/customElements registration names its
16
16
  * target through indirection the linter cannot resolve without the build
17
17
  * system, and a rule that guesses there would refuse correct queues on a
@@ -24,7 +24,7 @@ import { escapeRegex } from '../utils/regex.js';
24
24
  import { isLaterOwner, quoteRegistrationLine } from './patch-lint-staged-registration.js';
25
25
  /**
26
26
  * Manifest basenames whose `support-files` key registers auxiliary files
27
- * for a test suite. Closed and documented on purpose — a pattern like
27
+ * for a test suite. Closed and documented on purpose: a pattern like
28
28
  * "anything .toml" would sweep in Cargo and taskcluster manifests, whose
29
29
  * `support-files`-shaped keys mean something else entirely.
30
30
  */
@@ -51,8 +51,8 @@ const SUPPORT_FILES_PATTERN = /^\s*support-files\s*=\s*(.*)$/;
51
51
  * with the manifest line it is written on.
52
52
  *
53
53
  * Handles the TOML array on one line and spread over several, and the
54
- * whitespace-separated `.ini` spelling. Anything else — a computed value, a
55
- * shape this does not recognise — yields nothing, because a rule that
54
+ * whitespace-separated `.ini` spelling. Anything else (a computed value, a
55
+ * shape this does not recognise) yields nothing, because a rule that
56
56
  * guesses at a manifest it cannot parse refuses correct queues.
57
57
  *
58
58
  * Quoted tokens are matched per physical line rather than over the whole
@@ -115,7 +115,7 @@ export function extractSupportFileEntries(content) {
115
115
  * Resolves one `support-files` entry, relative to its manifest's directory,
116
116
  * into a matcher over engine-relative paths.
117
117
  *
118
- * Only a `*` inside a single path segment is expanded — the shape the
118
+ * Only a `*` inside a single path segment is expanded, the shape the
119
119
  * downstream report uses (`fixtures/*.sqlite`). `**`, `!` exclusions and
120
120
  * absolute `/`-rooted entries return undefined: they either cross directory
121
121
  * boundaries or subtract, and a matcher that guessed at them would attribute
@@ -152,7 +152,7 @@ function isDeclared(entry, manifestPath, createdPath) {
152
152
  export function lintPatchQueueForwardRegistrations(ctx) {
153
153
  const issues = [];
154
154
  for (const entry of ctx.entries) {
155
- // Both arms: a manifest this patch CREATES and one it MODIFIES can each
155
+ // Both arms: a manifest this patch creates and one it modifies can each
156
156
  // introduce a registration line.
157
157
  const manifests = [
158
158
  ...entry.newFiles,
@@ -28,7 +28,7 @@ export interface ValidateExportJsDocOptions {
28
28
  * Validates a top-level function declaration: requires an attached JSDoc
29
29
  * comment, then checks @param name matching and @returns presence. Exported
30
30
  * so the chrome-subscript validator (`patch-lint-chrome-jsdoc.ts`) can reuse
31
- * it on `parseScript`-produced declarations — the rule shape is identical
31
+ * it on `parseScript`-produced declarations. The rule shape is identical
32
32
  * between ES-module exports and chrome-subscript top-level declarations.
33
33
  *
34
34
  * @param fn - FunctionDeclaration AST node
@@ -54,7 +54,7 @@ export declare function validateClassDecl(cls: AcornESTreeNode<ClassDeclaration>
54
54
  * 3. methods whose JSDoc carries `@private` or `@internal`
55
55
  *
56
56
  * A pure-override skip (`super.method(...args)`-only bodies bypassing the
57
- * return-tag check) is deliberately not implemented; the rule stays simple.
57
+ * return-tag check) is deliberately not implemented. The rule stays simple.
58
58
  */
59
59
  export declare function validateClassMethods(cls: AcornESTreeNode<ClassDeclaration>, comments: acorn.Comment[], source: string, severity: 'warning' | 'error'): JsDocIssue[];
60
60
  /**