@hominis/fireforge 0.54.0 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1244) hide show
  1. package/CHANGELOG.md +287 -6
  2. package/README.md +51 -17
  3. package/dist/bin/fireforge.js +34 -129
  4. package/dist/build-info.json +4 -4
  5. package/dist/src/check/check.js +394 -0
  6. package/dist/src/check/gate.js +448 -0
  7. package/dist/src/check/index.js +10 -0
  8. package/dist/src/check/record.js +155 -0
  9. package/dist/src/cli/command.js +286 -0
  10. package/dist/src/cli/output.js +96 -0
  11. package/dist/src/cli/program.js +231 -0
  12. package/dist/src/cli/stdio.js +59 -0
  13. package/dist/src/cli/version.js +99 -0
  14. package/dist/src/commands/bootstrap.js +17 -102
  15. package/dist/src/commands/build.js +34 -438
  16. package/dist/src/commands/check.js +44 -157
  17. package/dist/src/commands/config.js +50 -226
  18. package/dist/src/commands/discard.js +38 -215
  19. package/dist/src/commands/doctor.js +29 -456
  20. package/dist/src/commands/download.js +35 -499
  21. package/dist/src/commands/export.js +42 -431
  22. package/dist/src/commands/furnace.js +220 -0
  23. package/dist/src/commands/gate.js +127 -0
  24. package/dist/src/commands/import.js +44 -445
  25. package/dist/src/commands/index.js +86 -0
  26. package/dist/src/commands/lint.js +44 -546
  27. package/dist/src/commands/merge-driver.js +56 -0
  28. package/dist/src/commands/migrate.js +75 -0
  29. package/dist/src/commands/override.js +43 -0
  30. package/dist/src/commands/package.js +48 -77
  31. package/dist/src/commands/patch.js +221 -0
  32. package/dist/src/commands/re-export.js +55 -332
  33. package/dist/src/commands/rebase.js +69 -0
  34. package/dist/src/commands/register.js +62 -103
  35. package/dist/src/commands/reset.js +28 -91
  36. package/dist/src/commands/resolve.js +20 -167
  37. package/dist/src/commands/restore.js +19 -0
  38. package/dist/src/commands/run.js +60 -420
  39. package/dist/src/commands/setup.js +78 -90
  40. package/dist/src/commands/status.js +44 -413
  41. package/dist/src/commands/test.js +97 -422
  42. package/dist/src/commands/token.js +185 -228
  43. package/dist/src/commands/typecheck.js +59 -208
  44. package/dist/src/commands/verify.js +28 -334
  45. package/dist/src/commands/version.js +14 -0
  46. package/dist/src/commands/watch.js +20 -218
  47. package/dist/src/commands/wire.js +60 -349
  48. package/dist/src/commands/workspace.js +117 -0
  49. package/dist/src/config/edit.js +237 -0
  50. package/dist/src/config/index.js +15 -0
  51. package/dist/src/config/load.js +59 -0
  52. package/dist/src/config/previous.js +404 -0
  53. package/dist/src/config/schema/build.js +63 -0
  54. package/dist/src/config/schema/check.js +113 -0
  55. package/dist/src/config/schema/common.js +71 -0
  56. package/dist/src/config/schema/export-queue.js +36 -0
  57. package/dist/src/config/schema/firefox.js +69 -0
  58. package/dist/src/config/schema/gate.js +199 -0
  59. package/dist/src/config/schema/identity.js +55 -0
  60. package/dist/src/config/schema/index.js +45 -0
  61. package/dist/src/config/schema/lint.js +297 -0
  62. package/dist/src/config/schema/policy.js +111 -0
  63. package/dist/src/config/schema/source.js +90 -0
  64. package/dist/src/config/schema/test.js +17 -0
  65. package/dist/src/config/schema/toolchains.js +17 -0
  66. package/dist/src/config/schema/typecheck.js +29 -0
  67. package/dist/src/config/schema/wire.js +15 -0
  68. package/dist/src/diff/apply.js +129 -0
  69. package/dist/src/diff/index.js +16 -0
  70. package/dist/src/diff/model.js +267 -0
  71. package/dist/src/diff/query.js +65 -0
  72. package/dist/src/doctor/index.js +240 -0
  73. package/dist/src/engine/archive.js +396 -0
  74. package/dist/src/engine/audit.js +66 -0
  75. package/dist/src/engine/build.js +150 -0
  76. package/dist/src/engine/hostLocks.js +66 -0
  77. package/dist/src/engine/index.js +26 -0
  78. package/dist/src/engine/installManifests.js +147 -0
  79. package/dist/src/engine/mach.js +97 -0
  80. package/dist/src/engine/machHints.js +80 -0
  81. package/dist/src/engine/mozconfig.js +110 -0
  82. package/dist/src/engine/objdir.js +124 -0
  83. package/dist/src/engine/package.js +169 -0
  84. package/dist/src/engine/pin.js +12 -0
  85. package/dist/src/engine/pool.js +423 -0
  86. package/dist/src/engine/pristine.js +281 -0
  87. package/dist/src/engine/python.js +68 -0
  88. package/dist/src/engine/resourceGuard.js +582 -0
  89. package/dist/src/engine/run.js +259 -0
  90. package/dist/src/engine/smoke.js +204 -0
  91. package/dist/src/engine/staleness.js +229 -0
  92. package/dist/src/engine/watch.js +82 -0
  93. package/dist/src/engine/workspace.js +85 -0
  94. package/dist/src/furnace/config.js +360 -0
  95. package/dist/src/furnace/deploy.js +414 -0
  96. package/dist/src/furnace/diff.js +59 -0
  97. package/dist/src/furnace/edit.js +64 -0
  98. package/dist/src/furnace/fragments.js +53 -0
  99. package/dist/src/furnace/index.js +19 -0
  100. package/dist/src/furnace/operations.js +283 -0
  101. package/dist/src/furnace/registration.js +220 -0
  102. package/dist/src/furnace/scaffold.js +311 -0
  103. package/dist/src/furnace/typing.js +252 -0
  104. package/dist/src/furnace/validate.js +662 -0
  105. package/dist/src/git/apply.js +129 -0
  106. package/dist/src/git/diff.js +143 -0
  107. package/dist/src/git/index.js +33 -0
  108. package/dist/src/git/objects.js +201 -0
  109. package/dist/src/git/refs.js +85 -0
  110. package/dist/src/git/repo.js +222 -0
  111. package/dist/src/git/run.js +242 -0
  112. package/dist/src/git/status.js +156 -0
  113. package/dist/src/kernel/errors.js +123 -0
  114. package/dist/src/kernel/fs.js +515 -0
  115. package/dist/src/kernel/glob.js +63 -0
  116. package/dist/src/kernel/hash.js +28 -0
  117. package/dist/src/kernel/journal.js +524 -0
  118. package/dist/src/kernel/json-edit.js +198 -0
  119. package/dist/src/kernel/json.js +101 -0
  120. package/dist/src/kernel/lock.js +589 -0
  121. package/dist/src/kernel/log.js +154 -0
  122. package/dist/src/kernel/process/identity.js +313 -0
  123. package/dist/src/kernel/process/index.js +8 -0
  124. package/dist/src/kernel/process/listing.js +128 -0
  125. package/dist/src/kernel/process/spawn.js +430 -0
  126. package/dist/src/kernel/process/tree.js +301 -0
  127. package/dist/src/kernel/schema.js +308 -0
  128. package/dist/src/kernel/signals.js +171 -0
  129. package/dist/src/kernel/text.js +151 -0
  130. package/dist/src/kernel/time.js +83 -0
  131. package/dist/src/kernel/tty.js +84 -0
  132. package/dist/src/lint/cache.js +77 -0
  133. package/dist/src/lint/checkjs.js +400 -0
  134. package/dist/src/lint/index.js +3 -0
  135. package/dist/src/lint/input.js +100 -0
  136. package/dist/src/lint/report.js +107 -0
  137. package/dist/src/lint/rule.js +41 -0
  138. package/dist/src/lint/rules/css.js +308 -0
  139. package/dist/src/lint/rules/javascript.js +299 -0
  140. package/dist/src/lint/rules/jsdoc.js +249 -0
  141. package/dist/src/lint/rules/license.js +93 -0
  142. package/dist/src/lint/rules/policy.js +201 -0
  143. package/dist/src/lint/rules/registration.js +264 -0
  144. package/dist/src/lint/rules/size.js +299 -0
  145. package/dist/src/lint/run.js +126 -0
  146. package/dist/src/lint/shim.js +323 -0
  147. package/dist/src/lint/typescript.js +186 -0
  148. package/dist/src/lint/waivers.js +93 -0
  149. package/dist/src/mode/changes.js +264 -0
  150. package/dist/src/mode/diagnose.js +173 -0
  151. package/dist/src/mode/export.js +147 -0
  152. package/dist/src/mode/index.js +23 -0
  153. package/dist/src/mode/migrate.js +181 -0
  154. package/dist/src/mode/previousWaivers.js +206 -0
  155. package/dist/src/mode/pristine.js +61 -0
  156. package/dist/src/mode/rebase.js +197 -0
  157. package/dist/src/mode/report.js +157 -0
  158. package/dist/src/mode/setup.js +103 -0
  159. package/dist/src/mode/tracked.js +116 -0
  160. package/dist/src/mode/upgrade.js +281 -0
  161. package/dist/src/mode/watch.js +83 -0
  162. package/dist/src/mode/workspace.js +189 -0
  163. package/dist/src/mozbuild/index.js +6 -0
  164. package/dist/src/mozbuild/jar.js +366 -0
  165. package/dist/src/mozbuild/mozbuild.js +321 -0
  166. package/dist/src/mozbuild/paths.js +96 -0
  167. package/dist/src/mozbuild/references.js +39 -0
  168. package/dist/src/mozbuild/testManifest.js +343 -0
  169. package/dist/src/mozbuild/text.js +142 -0
  170. package/dist/src/project/changes.js +145 -0
  171. package/dist/src/project/checkout.js +66 -0
  172. package/dist/src/project/index.js +11 -0
  173. package/dist/src/project/license.js +119 -0
  174. package/dist/src/project/project.js +111 -0
  175. package/dist/src/project/state.js +85 -0
  176. package/dist/src/project/tracked.js +1 -0
  177. package/dist/src/queue/apply.js +270 -0
  178. package/dist/src/queue/attribute.js +159 -0
  179. package/dist/src/queue/baseline.js +409 -0
  180. package/dist/src/queue/capture.js +298 -0
  181. package/dist/src/queue/changes.js +234 -0
  182. package/dist/src/queue/index.js +50 -0
  183. package/dist/src/queue/manifest.js +341 -0
  184. package/dist/src/queue/operations.js +454 -0
  185. package/dist/src/queue/placement.js +220 -0
  186. package/dist/src/queue/queue.js +359 -0
  187. package/dist/src/queue/restore.js +103 -0
  188. package/dist/src/queue/session.js +685 -0
  189. package/dist/src/queue/status.js +137 -0
  190. package/dist/src/register/files.js +39 -0
  191. package/dist/src/register/index.js +8 -0
  192. package/dist/src/register/js.js +217 -0
  193. package/dist/src/register/register.js +359 -0
  194. package/dist/src/register/wire.js +146 -0
  195. package/dist/src/source/adopt.js +99 -0
  196. package/dist/src/source/changes.js +132 -0
  197. package/dist/src/source/edit.js +278 -0
  198. package/dist/src/source/export.js +70 -0
  199. package/dist/src/source/groups.js +131 -0
  200. package/dist/src/source/index.js +20 -0
  201. package/dist/src/source/materialize.js +382 -0
  202. package/dist/src/source/merge.js +255 -0
  203. package/dist/src/source/objects.js +102 -0
  204. package/dist/src/source/previous.js +166 -0
  205. package/dist/src/source/records.js +138 -0
  206. package/dist/src/source/refresh.js +264 -0
  207. package/dist/src/source/tree.js +337 -0
  208. package/dist/src/syntax/css.js +215 -0
  209. package/dist/src/syntax/fragments.js +63 -0
  210. package/dist/src/syntax/index.js +10 -0
  211. package/dist/src/syntax/js.js +270 -0
  212. package/dist/src/test/classify.js +826 -0
  213. package/dist/src/test/control.js +236 -0
  214. package/dist/src/test/host.js +266 -0
  215. package/dist/src/test/index.js +11 -0
  216. package/dist/src/test/plan.js +347 -0
  217. package/dist/src/test/rawLog.js +138 -0
  218. package/dist/src/test/run.js +404 -0
  219. package/dist/src/test/verdict.js +420 -0
  220. package/dist/src/test/xpcshell.js +143 -0
  221. package/dist/src/tokens/add.js +304 -0
  222. package/dist/src/tokens/coverage.js +65 -0
  223. package/dist/src/tokens/css.js +58 -0
  224. package/dist/src/tokens/index.js +12 -0
  225. package/dist/src/tokens/lint.js +96 -0
  226. package/dist/src/tokens/model.js +118 -0
  227. package/dist/src/tokens/settings.js +87 -0
  228. package/dist/src/tokens/siblings.js +104 -0
  229. package/dist/src/typecheck/explain.js +123 -0
  230. package/dist/src/typecheck/index.js +8 -0
  231. package/dist/src/typecheck/typecheck.js +332 -0
  232. package/docs/README.md +23 -28
  233. package/docs/authoring.md +97 -0
  234. package/docs/configuration.md +307 -692
  235. package/docs/exit-codes.md +76 -94
  236. package/docs/furnace.md +113 -181
  237. package/docs/gate.md +205 -0
  238. package/docs/getting-started.md +165 -0
  239. package/docs/machine-output.md +201 -277
  240. package/docs/migrating.md +261 -0
  241. package/docs/patch-workflow.md +163 -653
  242. package/docs/quality.md +220 -0
  243. package/docs/source-workflow.md +228 -0
  244. package/docs/testing.md +101 -712
  245. package/docs/workspaces.md +187 -0
  246. package/package.json +22 -30
  247. package/templates/configs/common.mozconfig +8 -2
  248. package/templates/configs/darwin.mozconfig +6 -7
  249. package/templates/configs/linux.mozconfig +5 -8
  250. package/templates/configs/win32.mozconfig +3 -9
  251. package/dist/bin/fireforge.d.ts +0 -9
  252. package/dist/src/cli-usage-error.d.ts +0 -46
  253. package/dist/src/cli-usage-error.js +0 -81
  254. package/dist/src/cli.d.ts +0 -41
  255. package/dist/src/cli.js +0 -380
  256. package/dist/src/commands/bootstrap-checks.d.ts +0 -16
  257. package/dist/src/commands/bootstrap-checks.js +0 -66
  258. package/dist/src/commands/bootstrap.d.ts +0 -10
  259. package/dist/src/commands/build-prelock.d.ts +0 -20
  260. package/dist/src/commands/build-prelock.js +0 -50
  261. package/dist/src/commands/build.d.ts +0 -13
  262. package/dist/src/commands/check-report.d.ts +0 -41
  263. package/dist/src/commands/check-report.js +0 -91
  264. package/dist/src/commands/check-run.d.ts +0 -33
  265. package/dist/src/commands/check-run.js +0 -112
  266. package/dist/src/commands/check-steps.d.ts +0 -75
  267. package/dist/src/commands/check-steps.js +0 -200
  268. package/dist/src/commands/check.d.ts +0 -32
  269. package/dist/src/commands/config.d.ts +0 -13
  270. package/dist/src/commands/declarations-report.d.ts +0 -49
  271. package/dist/src/commands/declarations-report.js +0 -83
  272. package/dist/src/commands/destructive-decision.d.ts +0 -19
  273. package/dist/src/commands/destructive-decision.js +0 -31
  274. package/dist/src/commands/discard.d.ts +0 -12
  275. package/dist/src/commands/doctor-check-core.d.ts +0 -110
  276. package/dist/src/commands/doctor-check-core.js +0 -24
  277. package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
  278. package/dist/src/commands/doctor-engine-eslint.js +0 -17
  279. package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
  280. package/dist/src/commands/doctor-external-toolchains.js +0 -56
  281. package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
  282. package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
  283. package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
  284. package/dist/src/commands/doctor-furnace-jar.js +0 -44
  285. package/dist/src/commands/doctor-furnace.d.ts +0 -8
  286. package/dist/src/commands/doctor-furnace.js +0 -514
  287. package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
  288. package/dist/src/commands/doctor-macos-sdk.js +0 -158
  289. package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
  290. package/dist/src/commands/doctor-orphaned-harness.js +0 -98
  291. package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
  292. package/dist/src/commands/doctor-patch-manifest.js +0 -156
  293. package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
  294. package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
  295. package/dist/src/commands/doctor-source-pin.d.ts +0 -29
  296. package/dist/src/commands/doctor-source-pin.js +0 -91
  297. package/dist/src/commands/doctor-working-tree.d.ts +0 -27
  298. package/dist/src/commands/doctor-working-tree.js +0 -89
  299. package/dist/src/commands/doctor.d.ts +0 -49
  300. package/dist/src/commands/download.d.ts +0 -11
  301. package/dist/src/commands/export-adopt-check.d.ts +0 -37
  302. package/dist/src/commands/export-adopt-check.js +0 -97
  303. package/dist/src/commands/export-all.d.ts +0 -11
  304. package/dist/src/commands/export-all.js +0 -361
  305. package/dist/src/commands/export-flow.d.ts +0 -124
  306. package/dist/src/commands/export-flow.js +0 -423
  307. package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
  308. package/dist/src/commands/export-placement-conflicts.js +0 -75
  309. package/dist/src/commands/export-placement-gate.d.ts +0 -42
  310. package/dist/src/commands/export-placement-gate.js +0 -107
  311. package/dist/src/commands/export-placement-policy.d.ts +0 -22
  312. package/dist/src/commands/export-placement-policy.js +0 -54
  313. package/dist/src/commands/export-shared.d.ts +0 -152
  314. package/dist/src/commands/export-shared.js +0 -396
  315. package/dist/src/commands/export-staged-registration.d.ts +0 -46
  316. package/dist/src/commands/export-staged-registration.js +0 -91
  317. package/dist/src/commands/export.d.ts +0 -13
  318. package/dist/src/commands/forward-import-remedy.d.ts +0 -31
  319. package/dist/src/commands/forward-import-remedy.js +0 -62
  320. package/dist/src/commands/furnace/apply.d.ts +0 -8
  321. package/dist/src/commands/furnace/apply.js +0 -327
  322. package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
  323. package/dist/src/commands/furnace/authoring-config.js +0 -19
  324. package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
  325. package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
  326. package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
  327. package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
  328. package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
  329. package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
  330. package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
  331. package/dist/src/commands/furnace/chrome-doc.js +0 -365
  332. package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
  333. package/dist/src/commands/furnace/create-browser-test.js +0 -179
  334. package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
  335. package/dist/src/commands/furnace/create-dry-run.js +0 -107
  336. package/dist/src/commands/furnace/create-features.d.ts +0 -24
  337. package/dist/src/commands/furnace/create-features.js +0 -55
  338. package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
  339. package/dist/src/commands/furnace/create-mochikit.js +0 -75
  340. package/dist/src/commands/furnace/create-readback.d.ts +0 -22
  341. package/dist/src/commands/furnace/create-readback.js +0 -32
  342. package/dist/src/commands/furnace/create-templates.d.ts +0 -119
  343. package/dist/src/commands/furnace/create-templates.js +0 -283
  344. package/dist/src/commands/furnace/create-validation.d.ts +0 -6
  345. package/dist/src/commands/furnace/create-validation.js +0 -59
  346. package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
  347. package/dist/src/commands/furnace/create-xpcshell.js +0 -80
  348. package/dist/src/commands/furnace/create.d.ts +0 -24
  349. package/dist/src/commands/furnace/create.js +0 -407
  350. package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
  351. package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
  352. package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
  353. package/dist/src/commands/furnace/deploy-named.js +0 -107
  354. package/dist/src/commands/furnace/deploy.d.ts +0 -9
  355. package/dist/src/commands/furnace/deploy.js +0 -218
  356. package/dist/src/commands/furnace/diff.d.ts +0 -11
  357. package/dist/src/commands/furnace/diff.js +0 -238
  358. package/dist/src/commands/furnace/index.d.ts +0 -4
  359. package/dist/src/commands/furnace/index.js +0 -282
  360. package/dist/src/commands/furnace/init.d.ts +0 -11
  361. package/dist/src/commands/furnace/init.js +0 -287
  362. package/dist/src/commands/furnace/list.d.ts +0 -8
  363. package/dist/src/commands/furnace/list.js +0 -104
  364. package/dist/src/commands/furnace/override.d.ts +0 -16
  365. package/dist/src/commands/furnace/override.js +0 -454
  366. package/dist/src/commands/furnace/preview.d.ts +0 -19
  367. package/dist/src/commands/furnace/preview.js +0 -349
  368. package/dist/src/commands/furnace/refresh.d.ts +0 -10
  369. package/dist/src/commands/furnace/refresh.js +0 -303
  370. package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
  371. package/dist/src/commands/furnace/remove-mutations.js +0 -168
  372. package/dist/src/commands/furnace/remove-state.d.ts +0 -20
  373. package/dist/src/commands/furnace/remove-state.js +0 -60
  374. package/dist/src/commands/furnace/remove.d.ts +0 -8
  375. package/dist/src/commands/furnace/remove.js +0 -415
  376. package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
  377. package/dist/src/commands/furnace/rename-browser-test.js +0 -68
  378. package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
  379. package/dist/src/commands/furnace/rename-dry-run.js +0 -127
  380. package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
  381. package/dist/src/commands/furnace/rename-helpers.js +0 -85
  382. package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
  383. package/dist/src/commands/furnace/rename-registrations.js +0 -98
  384. package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
  385. package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
  386. package/dist/src/commands/furnace/rename.d.ts +0 -6
  387. package/dist/src/commands/furnace/rename.js +0 -400
  388. package/dist/src/commands/furnace/scan.d.ts +0 -14
  389. package/dist/src/commands/furnace/scan.js +0 -192
  390. package/dist/src/commands/furnace/status.d.ts +0 -7
  391. package/dist/src/commands/furnace/status.js +0 -209
  392. package/dist/src/commands/furnace/sync.d.ts +0 -12
  393. package/dist/src/commands/furnace/sync.js +0 -145
  394. package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
  395. package/dist/src/commands/furnace/test-file-name.js +0 -39
  396. package/dist/src/commands/furnace/validate-report.d.ts +0 -45
  397. package/dist/src/commands/furnace/validate-report.js +0 -91
  398. package/dist/src/commands/furnace/validate.d.ts +0 -8
  399. package/dist/src/commands/furnace/validate.js +0 -309
  400. package/dist/src/commands/furnace/validation-output.d.ts +0 -47
  401. package/dist/src/commands/furnace/validation-output.js +0 -161
  402. package/dist/src/commands/import.d.ts +0 -11
  403. package/dist/src/commands/lint-per-patch.d.ts +0 -10
  404. package/dist/src/commands/lint-per-patch.js +0 -428
  405. package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
  406. package/dist/src/commands/lint-per-run-checkjs.js +0 -102
  407. package/dist/src/commands/lint-report.d.ts +0 -25
  408. package/dist/src/commands/lint-report.js +0 -76
  409. package/dist/src/commands/lint.d.ts +0 -47
  410. package/dist/src/commands/manifest.d.ts +0 -38
  411. package/dist/src/commands/manifest.js +0 -68
  412. package/dist/src/commands/package.d.ts +0 -11
  413. package/dist/src/commands/park.d.ts +0 -22
  414. package/dist/src/commands/park.js +0 -232
  415. package/dist/src/commands/patch/compact.d.ts +0 -28
  416. package/dist/src/commands/patch/compact.js +0 -208
  417. package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
  418. package/dist/src/commands/patch/delete-gap-notice.js +0 -48
  419. package/dist/src/commands/patch/delete.d.ts +0 -28
  420. package/dist/src/commands/patch/delete.js +0 -131
  421. package/dist/src/commands/patch/entry-projection.d.ts +0 -13
  422. package/dist/src/commands/patch/entry-projection.js +0 -24
  423. package/dist/src/commands/patch/index.d.ts +0 -16
  424. package/dist/src/commands/patch/index.js +0 -52
  425. package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
  426. package/dist/src/commands/patch/lint-ignore-from.js +0 -141
  427. package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
  428. package/dist/src/commands/patch/lint-ignore.js +0 -261
  429. package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
  430. package/dist/src/commands/patch/move-files-adopt.js +0 -65
  431. package/dist/src/commands/patch/move-files-create.d.ts +0 -19
  432. package/dist/src/commands/patch/move-files-create.js +0 -187
  433. package/dist/src/commands/patch/move-files-into.d.ts +0 -65
  434. package/dist/src/commands/patch/move-files-into.js +0 -325
  435. package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
  436. package/dist/src/commands/patch/move-files-retire.js +0 -91
  437. package/dist/src/commands/patch/move-files.d.ts +0 -28
  438. package/dist/src/commands/patch/move-files.js +0 -224
  439. package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
  440. package/dist/src/commands/patch/move-size-tier.js +0 -66
  441. package/dist/src/commands/patch/patch-context.d.ts +0 -40
  442. package/dist/src/commands/patch/patch-context.js +0 -51
  443. package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
  444. package/dist/src/commands/patch/removal-created-files.js +0 -83
  445. package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
  446. package/dist/src/commands/patch/removal-dependents.js +0 -133
  447. package/dist/src/commands/patch/rename.d.ts +0 -35
  448. package/dist/src/commands/patch/rename.js +0 -378
  449. package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
  450. package/dist/src/commands/patch/reorder-projection.js +0 -49
  451. package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
  452. package/dist/src/commands/patch/reorder-shift.js +0 -307
  453. package/dist/src/commands/patch/reorder.d.ts +0 -34
  454. package/dist/src/commands/patch/reorder.js +0 -375
  455. package/dist/src/commands/patch/reserve.d.ts +0 -33
  456. package/dist/src/commands/patch/reserve.js +0 -152
  457. package/dist/src/commands/patch/retire.d.ts +0 -34
  458. package/dist/src/commands/patch/retire.js +0 -133
  459. package/dist/src/commands/patch/split-plan.d.ts +0 -125
  460. package/dist/src/commands/patch/split-plan.js +0 -313
  461. package/dist/src/commands/patch/split-staged.d.ts +0 -108
  462. package/dist/src/commands/patch/split-staged.js +0 -202
  463. package/dist/src/commands/patch/split.d.ts +0 -43
  464. package/dist/src/commands/patch/split.js +0 -367
  465. package/dist/src/commands/patch/stage.d.ts +0 -34
  466. package/dist/src/commands/patch/stage.js +0 -153
  467. package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
  468. package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
  469. package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
  470. package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
  471. package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
  472. package/dist/src/commands/patch/staged-dependency-from.js +0 -114
  473. package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
  474. package/dist/src/commands/patch/staged-dependency-remove.js +0 -117
  475. package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -15
  476. package/dist/src/commands/patch/staged-dependency-validate.js +0 -49
  477. package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
  478. package/dist/src/commands/patch/staged-dependency.js +0 -248
  479. package/dist/src/commands/patch/tier.d.ts +0 -34
  480. package/dist/src/commands/patch/tier.js +0 -125
  481. package/dist/src/commands/patch-rename-map.d.ts +0 -30
  482. package/dist/src/commands/patch-rename-map.js +0 -54
  483. package/dist/src/commands/pending-resolution.d.ts +0 -15
  484. package/dist/src/commands/pending-resolution.js +0 -25
  485. package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
  486. package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
  487. package/dist/src/commands/re-export-adjacent.d.ts +0 -111
  488. package/dist/src/commands/re-export-adjacent.js +0 -267
  489. package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
  490. package/dist/src/commands/re-export-bulk-scan.js +0 -233
  491. package/dist/src/commands/re-export-drift.d.ts +0 -110
  492. package/dist/src/commands/re-export-drift.js +0 -358
  493. package/dist/src/commands/re-export-files.d.ts +0 -15
  494. package/dist/src/commands/re-export-files.js +0 -307
  495. package/dist/src/commands/re-export-hunks.d.ts +0 -35
  496. package/dist/src/commands/re-export-hunks.js +0 -220
  497. package/dist/src/commands/re-export-lint.d.ts +0 -137
  498. package/dist/src/commands/re-export-lint.js +0 -303
  499. package/dist/src/commands/re-export-options.d.ts +0 -29
  500. package/dist/src/commands/re-export-options.js +0 -191
  501. package/dist/src/commands/re-export-preflight.d.ts +0 -23
  502. package/dist/src/commands/re-export-preflight.js +0 -159
  503. package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
  504. package/dist/src/commands/re-export-purity-scope.js +0 -137
  505. package/dist/src/commands/re-export-register.d.ts +0 -12
  506. package/dist/src/commands/re-export-register.js +0 -99
  507. package/dist/src/commands/re-export-removed.d.ts +0 -15
  508. package/dist/src/commands/re-export-removed.js +0 -94
  509. package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
  510. package/dist/src/commands/re-export-retired-declarations.js +0 -113
  511. package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
  512. package/dist/src/commands/re-export-scan-owner.js +0 -116
  513. package/dist/src/commands/re-export-scan.d.ts +0 -72
  514. package/dist/src/commands/re-export-scan.js +0 -265
  515. package/dist/src/commands/re-export-single.d.ts +0 -39
  516. package/dist/src/commands/re-export-single.js +0 -388
  517. package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
  518. package/dist/src/commands/re-export-stale-registrations.js +0 -106
  519. package/dist/src/commands/re-export-summary.d.ts +0 -28
  520. package/dist/src/commands/re-export-summary.js +0 -36
  521. package/dist/src/commands/re-export.d.ts +0 -8
  522. package/dist/src/commands/rebase/abort.d.ts +0 -7
  523. package/dist/src/commands/rebase/abort.js +0 -67
  524. package/dist/src/commands/rebase/confirm.d.ts +0 -42
  525. package/dist/src/commands/rebase/confirm.js +0 -36
  526. package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
  527. package/dist/src/commands/rebase/conflict-summary.js +0 -37
  528. package/dist/src/commands/rebase/continue.d.ts +0 -7
  529. package/dist/src/commands/rebase/continue.js +0 -119
  530. package/dist/src/commands/rebase/index.d.ts +0 -22
  531. package/dist/src/commands/rebase/index.js +0 -209
  532. package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
  533. package/dist/src/commands/rebase/patch-loop.js +0 -289
  534. package/dist/src/commands/rebase/summary.d.ts +0 -8
  535. package/dist/src/commands/rebase/summary.js +0 -47
  536. package/dist/src/commands/register.d.ts +0 -13
  537. package/dist/src/commands/reset.d.ts +0 -11
  538. package/dist/src/commands/resolve.d.ts +0 -36
  539. package/dist/src/commands/run.d.ts +0 -10
  540. package/dist/src/commands/setup-support.d.ts +0 -35
  541. package/dist/src/commands/setup-support.js +0 -386
  542. package/dist/src/commands/setup.d.ts +0 -11
  543. package/dist/src/commands/source.d.ts +0 -9
  544. package/dist/src/commands/source.js +0 -120
  545. package/dist/src/commands/status-check.d.ts +0 -87
  546. package/dist/src/commands/status-check.js +0 -161
  547. package/dist/src/commands/status-json.d.ts +0 -45
  548. package/dist/src/commands/status-json.js +0 -97
  549. package/dist/src/commands/status-output.d.ts +0 -23
  550. package/dist/src/commands/status-output.js +0 -231
  551. package/dist/src/commands/status-ownership.d.ts +0 -54
  552. package/dist/src/commands/status-ownership.js +0 -59
  553. package/dist/src/commands/status-scope.d.ts +0 -37
  554. package/dist/src/commands/status-scope.js +0 -54
  555. package/dist/src/commands/status.d.ts +0 -11
  556. package/dist/src/commands/test-appdir.d.ts +0 -6
  557. package/dist/src/commands/test-appdir.js +0 -29
  558. package/dist/src/commands/test-browser-preflight.d.ts +0 -28
  559. package/dist/src/commands/test-browser-preflight.js +0 -197
  560. package/dist/src/commands/test-build-furnace.d.ts +0 -21
  561. package/dist/src/commands/test-build-furnace.js +0 -53
  562. package/dist/src/commands/test-build-phase.d.ts +0 -29
  563. package/dist/src/commands/test-build-phase.js +0 -290
  564. package/dist/src/commands/test-checkjs.d.ts +0 -3
  565. package/dist/src/commands/test-checkjs.js +0 -35
  566. package/dist/src/commands/test-control-restore.d.ts +0 -40
  567. package/dist/src/commands/test-control-restore.js +0 -86
  568. package/dist/src/commands/test-diagnose.d.ts +0 -23
  569. package/dist/src/commands/test-diagnose.js +0 -317
  570. package/dist/src/commands/test-dispatch.d.ts +0 -39
  571. package/dist/src/commands/test-dispatch.js +0 -281
  572. package/dist/src/commands/test-furnace-reach.d.ts +0 -37
  573. package/dist/src/commands/test-furnace-reach.js +0 -132
  574. package/dist/src/commands/test-harness-env.d.ts +0 -23
  575. package/dist/src/commands/test-harness-env.js +0 -81
  576. package/dist/src/commands/test-harness-teardown.d.ts +0 -62
  577. package/dist/src/commands/test-harness-teardown.js +0 -128
  578. package/dist/src/commands/test-modes.d.ts +0 -57
  579. package/dist/src/commands/test-modes.js +0 -158
  580. package/dist/src/commands/test-multi-verdict.d.ts +0 -61
  581. package/dist/src/commands/test-multi-verdict.js +0 -112
  582. package/dist/src/commands/test-orchestrate.d.ts +0 -63
  583. package/dist/src/commands/test-orchestrate.js +0 -274
  584. package/dist/src/commands/test-perf-scope.d.ts +0 -50
  585. package/dist/src/commands/test-perf-scope.js +0 -138
  586. package/dist/src/commands/test-prelock.d.ts +0 -61
  587. package/dist/src/commands/test-prelock.js +0 -301
  588. package/dist/src/commands/test-register.d.ts +0 -4
  589. package/dist/src/commands/test-register.js +0 -181
  590. package/dist/src/commands/test-results.d.ts +0 -71
  591. package/dist/src/commands/test-results.js +0 -79
  592. package/dist/src/commands/test-run.d.ts +0 -89
  593. package/dist/src/commands/test-run.js +0 -251
  594. package/dist/src/commands/test-shards.d.ts +0 -114
  595. package/dist/src/commands/test-shards.js +0 -272
  596. package/dist/src/commands/test-stale-gate.d.ts +0 -52
  597. package/dist/src/commands/test-stale-gate.js +0 -165
  598. package/dist/src/commands/test-verdict.d.ts +0 -92
  599. package/dist/src/commands/test-verdict.js +0 -162
  600. package/dist/src/commands/test.d.ts +0 -22
  601. package/dist/src/commands/token-coverage.d.ts +0 -5
  602. package/dist/src/commands/token-coverage.js +0 -170
  603. package/dist/src/commands/token-lint.d.ts +0 -14
  604. package/dist/src/commands/token-lint.js +0 -151
  605. package/dist/src/commands/token-list.d.ts +0 -26
  606. package/dist/src/commands/token-list.js +0 -153
  607. package/dist/src/commands/token.d.ts +0 -14
  608. package/dist/src/commands/tree.d.ts +0 -19
  609. package/dist/src/commands/tree.js +0 -341
  610. package/dist/src/commands/typecheck.d.ts +0 -56
  611. package/dist/src/commands/verify-scope.d.ts +0 -28
  612. package/dist/src/commands/verify-scope.js +0 -67
  613. package/dist/src/commands/verify.d.ts +0 -58
  614. package/dist/src/commands/watch.d.ts +0 -9
  615. package/dist/src/commands/wire.d.ts +0 -13
  616. package/dist/src/core/ast-utils.d.ts +0 -73
  617. package/dist/src/core/ast-utils.js +0 -105
  618. package/dist/src/core/brand-validation.d.ts +0 -7
  619. package/dist/src/core/brand-validation.js +0 -14
  620. package/dist/src/core/branding.d.ts +0 -86
  621. package/dist/src/core/branding.js +0 -371
  622. package/dist/src/core/browser-wire.d.ts +0 -48
  623. package/dist/src/core/browser-wire.js +0 -133
  624. package/dist/src/core/build-audit-platform.d.ts +0 -67
  625. package/dist/src/core/build-audit-platform.js +0 -373
  626. package/dist/src/core/build-audit-registration.d.ts +0 -80
  627. package/dist/src/core/build-audit-registration.js +0 -181
  628. package/dist/src/core/build-audit-resolve.d.ts +0 -78
  629. package/dist/src/core/build-audit-resolve.js +0 -240
  630. package/dist/src/core/build-audit-skip.d.ts +0 -57
  631. package/dist/src/core/build-audit-skip.js +0 -112
  632. package/dist/src/core/build-audit-transforms.d.ts +0 -23
  633. package/dist/src/core/build-audit-transforms.js +0 -92
  634. package/dist/src/core/build-audit.d.ts +0 -93
  635. package/dist/src/core/build-audit.js +0 -633
  636. package/dist/src/core/build-baseline-types.d.ts +0 -225
  637. package/dist/src/core/build-baseline-types.js +0 -10
  638. package/dist/src/core/build-baseline-validate.d.ts +0 -32
  639. package/dist/src/core/build-baseline-validate.js +0 -173
  640. package/dist/src/core/build-baseline.d.ts +0 -103
  641. package/dist/src/core/build-baseline.js +0 -261
  642. package/dist/src/core/build-jar-escalation.d.ts +0 -61
  643. package/dist/src/core/build-jar-escalation.js +0 -125
  644. package/dist/src/core/build-overwrite-guard.d.ts +0 -92
  645. package/dist/src/core/build-overwrite-guard.js +0 -235
  646. package/dist/src/core/build-prepare.d.ts +0 -83
  647. package/dist/src/core/build-prepare.js +0 -414
  648. package/dist/src/core/build-run-record.d.ts +0 -74
  649. package/dist/src/core/build-run-record.js +0 -136
  650. package/dist/src/core/checkjs-support-heads.d.ts +0 -41
  651. package/dist/src/core/checkjs-support-heads.js +0 -104
  652. package/dist/src/core/component-source-guard.d.ts +0 -20
  653. package/dist/src/core/component-source-guard.js +0 -68
  654. package/dist/src/core/config-mutate.d.ts +0 -16
  655. package/dist/src/core/config-mutate.js +0 -76
  656. package/dist/src/core/config-paths.d.ts +0 -16
  657. package/dist/src/core/config-paths.js +0 -106
  658. package/dist/src/core/config-state.d.ts +0 -16
  659. package/dist/src/core/config-state.js +0 -141
  660. package/dist/src/core/config-validate-build-audit.d.ts +0 -8
  661. package/dist/src/core/config-validate-build-audit.js +0 -80
  662. package/dist/src/core/config-validate-check.d.ts +0 -8
  663. package/dist/src/core/config-validate-check.js +0 -219
  664. package/dist/src/core/config-validate-file-size.d.ts +0 -15
  665. package/dist/src/core/config-validate-file-size.js +0 -154
  666. package/dist/src/core/config-validate-history.d.ts +0 -11
  667. package/dist/src/core/config-validate-history.js +0 -38
  668. package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
  669. package/dist/src/core/config-validate-patch-policy.js +0 -274
  670. package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
  671. package/dist/src/core/config-validate-test-toolchains.js +0 -133
  672. package/dist/src/core/config-validate-token-scales.d.ts +0 -9
  673. package/dist/src/core/config-validate-token-scales.js +0 -92
  674. package/dist/src/core/config-validate.d.ts +0 -11
  675. package/dist/src/core/config-validate.js +0 -503
  676. package/dist/src/core/config.d.ts +0 -92
  677. package/dist/src/core/config.js +0 -169
  678. package/dist/src/core/coverage-dispatch.d.ts +0 -24
  679. package/dist/src/core/coverage-dispatch.js +0 -44
  680. package/dist/src/core/coverage-extend.d.ts +0 -89
  681. package/dist/src/core/coverage-extend.js +0 -239
  682. package/dist/src/core/coverage-records.d.ts +0 -107
  683. package/dist/src/core/coverage-records.js +0 -383
  684. package/dist/src/core/destructive.d.ts +0 -144
  685. package/dist/src/core/destructive.js +0 -182
  686. package/dist/src/core/diff-hunks.d.ts +0 -73
  687. package/dist/src/core/diff-hunks.js +0 -286
  688. package/dist/src/core/discard-baseline.d.ts +0 -60
  689. package/dist/src/core/discard-baseline.js +0 -247
  690. package/dist/src/core/display-state.d.ts +0 -50
  691. package/dist/src/core/display-state.js +0 -87
  692. package/dist/src/core/engine-changes.d.ts +0 -40
  693. package/dist/src/core/engine-changes.js +0 -95
  694. package/dist/src/core/engine-precondition.d.ts +0 -42
  695. package/dist/src/core/engine-precondition.js +0 -60
  696. package/dist/src/core/engine-session-lock.d.ts +0 -119
  697. package/dist/src/core/engine-session-lock.js +0 -374
  698. package/dist/src/core/engine-write-boundary.d.ts +0 -5
  699. package/dist/src/core/engine-write-boundary.js +0 -41
  700. package/dist/src/core/export-moved-code-shape.d.ts +0 -98
  701. package/dist/src/core/export-moved-code-shape.js +0 -220
  702. package/dist/src/core/file-lock-owner.d.ts +0 -103
  703. package/dist/src/core/file-lock-owner.js +0 -259
  704. package/dist/src/core/file-lock-queue.d.ts +0 -67
  705. package/dist/src/core/file-lock-queue.js +0 -219
  706. package/dist/src/core/file-lock-shared.d.ts +0 -57
  707. package/dist/src/core/file-lock-shared.js +0 -117
  708. package/dist/src/core/file-lock.d.ts +0 -143
  709. package/dist/src/core/file-lock.js +0 -531
  710. package/dist/src/core/firefox-archive.d.ts +0 -45
  711. package/dist/src/core/firefox-archive.js +0 -96
  712. package/dist/src/core/firefox-cache.d.ts +0 -30
  713. package/dist/src/core/firefox-cache.js +0 -248
  714. package/dist/src/core/firefox-download.d.ts +0 -30
  715. package/dist/src/core/firefox-download.js +0 -152
  716. package/dist/src/core/firefox-extract.d.ts +0 -42
  717. package/dist/src/core/firefox-extract.js +0 -248
  718. package/dist/src/core/firefox-ignorefile.d.ts +0 -17
  719. package/dist/src/core/firefox-ignorefile.js +0 -30
  720. package/dist/src/core/firefox.d.ts +0 -66
  721. package/dist/src/core/firefox.js +0 -121
  722. package/dist/src/core/forward-registrations.d.ts +0 -33
  723. package/dist/src/core/forward-registrations.js +0 -16
  724. package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
  725. package/dist/src/core/furnace-apply-dry-run.js +0 -99
  726. package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
  727. package/dist/src/core/furnace-apply-ftl.js +0 -210
  728. package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
  729. package/dist/src/core/furnace-apply-helpers.js +0 -436
  730. package/dist/src/core/furnace-apply-output.d.ts +0 -36
  731. package/dist/src/core/furnace-apply-output.js +0 -111
  732. package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -62
  733. package/dist/src/core/furnace-apply-overwrite-warn.js +0 -124
  734. package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
  735. package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
  736. package/dist/src/core/furnace-apply.d.ts +0 -49
  737. package/dist/src/core/furnace-apply.js +0 -465
  738. package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
  739. package/dist/src/core/furnace-checksum-utils.js +0 -54
  740. package/dist/src/core/furnace-composed-source.d.ts +0 -76
  741. package/dist/src/core/furnace-composed-source.js +0 -167
  742. package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
  743. package/dist/src/core/furnace-config-array-utils.js +0 -26
  744. package/dist/src/core/furnace-config-custom.d.ts +0 -15
  745. package/dist/src/core/furnace-config-custom.js +0 -73
  746. package/dist/src/core/furnace-config-order.d.ts +0 -8
  747. package/dist/src/core/furnace-config-order.js +0 -90
  748. package/dist/src/core/furnace-config-tokens.d.ts +0 -17
  749. package/dist/src/core/furnace-config-tokens.js +0 -42
  750. package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
  751. package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
  752. package/dist/src/core/furnace-config-validate.d.ts +0 -32
  753. package/dist/src/core/furnace-config-validate.js +0 -146
  754. package/dist/src/core/furnace-config.d.ts +0 -139
  755. package/dist/src/core/furnace-config.js +0 -511
  756. package/dist/src/core/furnace-constants.d.ts +0 -79
  757. package/dist/src/core/furnace-constants.js +0 -123
  758. package/dist/src/core/furnace-css-fragments.d.ts +0 -96
  759. package/dist/src/core/furnace-css-fragments.js +0 -279
  760. package/dist/src/core/furnace-dir-entry.d.ts +0 -20
  761. package/dist/src/core/furnace-dir-entry.js +0 -21
  762. package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
  763. package/dist/src/core/furnace-fragment-includers.js +0 -122
  764. package/dist/src/core/furnace-graph-utils.d.ts +0 -11
  765. package/dist/src/core/furnace-graph-utils.js +0 -93
  766. package/dist/src/core/furnace-jsconfig.d.ts +0 -61
  767. package/dist/src/core/furnace-jsconfig.js +0 -208
  768. package/dist/src/core/furnace-marker.d.ts +0 -15
  769. package/dist/src/core/furnace-marker.js +0 -21
  770. package/dist/src/core/furnace-operation.d.ts +0 -195
  771. package/dist/src/core/furnace-operation.js +0 -444
  772. package/dist/src/core/furnace-precondition.d.ts +0 -61
  773. package/dist/src/core/furnace-precondition.js +0 -67
  774. package/dist/src/core/furnace-refresh.d.ts +0 -28
  775. package/dist/src/core/furnace-refresh.js +0 -125
  776. package/dist/src/core/furnace-registration-ast.d.ts +0 -53
  777. package/dist/src/core/furnace-registration-ast.js +0 -402
  778. package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
  779. package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
  780. package/dist/src/core/furnace-registration-remove.d.ts +0 -56
  781. package/dist/src/core/furnace-registration-remove.js +0 -260
  782. package/dist/src/core/furnace-registration-rename.d.ts +0 -26
  783. package/dist/src/core/furnace-registration-rename.js +0 -77
  784. package/dist/src/core/furnace-registration-validate.d.ts +0 -53
  785. package/dist/src/core/furnace-registration-validate.js +0 -110
  786. package/dist/src/core/furnace-registration.d.ts +0 -112
  787. package/dist/src/core/furnace-registration.js +0 -348
  788. package/dist/src/core/furnace-rollback.d.ts +0 -48
  789. package/dist/src/core/furnace-rollback.js +0 -170
  790. package/dist/src/core/furnace-scanner.d.ts +0 -47
  791. package/dist/src/core/furnace-scanner.js +0 -236
  792. package/dist/src/core/furnace-stale-export.d.ts +0 -60
  793. package/dist/src/core/furnace-stale-export.js +0 -125
  794. package/dist/src/core/furnace-staleness.d.ts +0 -24
  795. package/dist/src/core/furnace-staleness.js +0 -67
  796. package/dist/src/core/furnace-state-persist.d.ts +0 -68
  797. package/dist/src/core/furnace-state-persist.js +0 -116
  798. package/dist/src/core/furnace-step-errors.d.ts +0 -23
  799. package/dist/src/core/furnace-step-errors.js +0 -25
  800. package/dist/src/core/furnace-stories.d.ts +0 -37
  801. package/dist/src/core/furnace-stories.js +0 -186
  802. package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
  803. package/dist/src/core/furnace-validate-accessibility.js +0 -417
  804. package/dist/src/core/furnace-validate-checks.d.ts +0 -4
  805. package/dist/src/core/furnace-validate-checks.js +0 -6
  806. package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
  807. package/dist/src/core/furnace-validate-compatibility.js +0 -295
  808. package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
  809. package/dist/src/core/furnace-validate-exceptions.js +0 -98
  810. package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
  811. package/dist/src/core/furnace-validate-helpers.js +0 -4
  812. package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
  813. package/dist/src/core/furnace-validate-icon-button.js +0 -78
  814. package/dist/src/core/furnace-validate-registration.d.ts +0 -67
  815. package/dist/src/core/furnace-validate-registration.js +0 -487
  816. package/dist/src/core/furnace-validate-structure.d.ts +0 -22
  817. package/dist/src/core/furnace-validate-structure.js +0 -122
  818. package/dist/src/core/furnace-validate.d.ts +0 -41
  819. package/dist/src/core/furnace-validate.js +0 -302
  820. package/dist/src/core/furnace-version-drift.d.ts +0 -57
  821. package/dist/src/core/furnace-version-drift.js +0 -102
  822. package/dist/src/core/gecko-dom-types.d.ts +0 -2
  823. package/dist/src/core/gecko-dom-types.js +0 -17
  824. package/dist/src/core/git-base.d.ts +0 -101
  825. package/dist/src/core/git-base.js +0 -162
  826. package/dist/src/core/git-diff-new-file.d.ts +0 -40
  827. package/dist/src/core/git-diff-new-file.js +0 -118
  828. package/dist/src/core/git-diff.d.ts +0 -82
  829. package/dist/src/core/git-diff.js +0 -539
  830. package/dist/src/core/git-file-ops.d.ts +0 -108
  831. package/dist/src/core/git-file-ops.js +0 -280
  832. package/dist/src/core/git-readonly-index.d.ts +0 -91
  833. package/dist/src/core/git-readonly-index.js +0 -177
  834. package/dist/src/core/git-status.d.ts +0 -84
  835. package/dist/src/core/git-status.js +0 -208
  836. package/dist/src/core/git.d.ts +0 -114
  837. package/dist/src/core/git.js +0 -540
  838. package/dist/src/core/harness-helper-pids.d.ts +0 -98
  839. package/dist/src/core/harness-helper-pids.js +0 -240
  840. package/dist/src/core/harness-orphans.d.ts +0 -118
  841. package/dist/src/core/harness-orphans.js +0 -268
  842. package/dist/src/core/harness-port-fallback.d.ts +0 -60
  843. package/dist/src/core/harness-port-fallback.js +0 -96
  844. package/dist/src/core/harness-port-reservation.d.ts +0 -60
  845. package/dist/src/core/harness-port-reservation.js +0 -122
  846. package/dist/src/core/history-log-file.d.ts +0 -61
  847. package/dist/src/core/history-log-file.js +0 -164
  848. package/dist/src/core/history-log.d.ts +0 -20
  849. package/dist/src/core/history-log.js +0 -30
  850. package/dist/src/core/json-preserving-edit.d.ts +0 -22
  851. package/dist/src/core/json-preserving-edit.js +0 -199
  852. package/dist/src/core/launchable-build.d.ts +0 -39
  853. package/dist/src/core/launchable-build.js +0 -85
  854. package/dist/src/core/license-headers.d.ts +0 -103
  855. package/dist/src/core/license-headers.js +0 -318
  856. package/dist/src/core/line-prefixer.d.ts +0 -18
  857. package/dist/src/core/line-prefixer.js +0 -34
  858. package/dist/src/core/lit-template-regions.d.ts +0 -4
  859. package/dist/src/core/lit-template-regions.js +0 -50
  860. package/dist/src/core/mach-build-artifacts.d.ts +0 -176
  861. package/dist/src/core/mach-build-artifacts.js +0 -436
  862. package/dist/src/core/mach-error-hints.d.ts +0 -24
  863. package/dist/src/core/mach-error-hints.js +0 -135
  864. package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
  865. package/dist/src/core/mach-known-noise-filter.js +0 -257
  866. package/dist/src/core/mach-mozconfig.d.ts +0 -57
  867. package/dist/src/core/mach-mozconfig.js +0 -166
  868. package/dist/src/core/mach-python.d.ts +0 -19
  869. package/dist/src/core/mach-python.js +0 -131
  870. package/dist/src/core/mach-resource-shim.d.ts +0 -107
  871. package/dist/src/core/mach-resource-shim.js +0 -640
  872. package/dist/src/core/mach.d.ts +0 -284
  873. package/dist/src/core/mach.js +0 -445
  874. package/dist/src/core/marionette-port.d.ts +0 -153
  875. package/dist/src/core/marionette-port.js +0 -474
  876. package/dist/src/core/marionette-preflight.d.ts +0 -58
  877. package/dist/src/core/marionette-preflight.js +0 -332
  878. package/dist/src/core/markdown-table.d.ts +0 -104
  879. package/dist/src/core/markdown-table.js +0 -265
  880. package/dist/src/core/mochitest-server-port.d.ts +0 -81
  881. package/dist/src/core/mochitest-server-port.js +0 -175
  882. package/dist/src/core/module-resolution-preflight.d.ts +0 -65
  883. package/dist/src/core/module-resolution-preflight.js +0 -171
  884. package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
  885. package/dist/src/core/moz-manifest-helpers.js +0 -163
  886. package/dist/src/core/moz-manifest-register.d.ts +0 -19
  887. package/dist/src/core/moz-manifest-register.js +0 -51
  888. package/dist/src/core/moz-manifest-rules.d.ts +0 -58
  889. package/dist/src/core/moz-manifest-rules.js +0 -264
  890. package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
  891. package/dist/src/core/moz-manifest-tokenizers.js +0 -108
  892. package/dist/src/core/negative-control-compiled.d.ts +0 -46
  893. package/dist/src/core/negative-control-compiled.js +0 -109
  894. package/dist/src/core/negative-control-diff.d.ts +0 -51
  895. package/dist/src/core/negative-control-diff.js +0 -204
  896. package/dist/src/core/negative-control.d.ts +0 -150
  897. package/dist/src/core/negative-control.js +0 -399
  898. package/dist/src/core/objdir-install-manifests.d.ts +0 -73
  899. package/dist/src/core/objdir-install-manifests.js +0 -226
  900. package/dist/src/core/objdir-maintenance.d.ts +0 -10
  901. package/dist/src/core/objdir-maintenance.js +0 -167
  902. package/dist/src/core/ownership-table.d.ts +0 -53
  903. package/dist/src/core/ownership-table.js +0 -159
  904. package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
  905. package/dist/src/core/parent-exit-watchdog.js +0 -69
  906. package/dist/src/core/park-store.d.ts +0 -63
  907. package/dist/src/core/park-store.js +0 -216
  908. package/dist/src/core/parser-fallback.d.ts +0 -50
  909. package/dist/src/core/parser-fallback.js +0 -61
  910. package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
  911. package/dist/src/core/patch-apply-fuzz.js +0 -125
  912. package/dist/src/core/patch-apply.d.ts +0 -88
  913. package/dist/src/core/patch-apply.js +0 -435
  914. package/dist/src/core/patch-export-coverage.d.ts +0 -49
  915. package/dist/src/core/patch-export-coverage.js +0 -73
  916. package/dist/src/core/patch-export-metadata.d.ts +0 -46
  917. package/dist/src/core/patch-export-metadata.js +0 -47
  918. package/dist/src/core/patch-export-update.d.ts +0 -55
  919. package/dist/src/core/patch-export-update.js +0 -95
  920. package/dist/src/core/patch-export.d.ts +0 -175
  921. package/dist/src/core/patch-export.js +0 -312
  922. package/dist/src/core/patch-files.d.ts +0 -17
  923. package/dist/src/core/patch-files.js +0 -59
  924. package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
  925. package/dist/src/core/patch-identifier-suggest.js +0 -135
  926. package/dist/src/core/patch-lint-binary.d.ts +0 -45
  927. package/dist/src/core/patch-lint-binary.js +0 -39
  928. package/dist/src/core/patch-lint-cache.d.ts +0 -78
  929. package/dist/src/core/patch-lint-cache.js +0 -233
  930. package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -39
  931. package/dist/src/core/patch-lint-checkjs-any-import.js +0 -63
  932. package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
  933. package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
  934. package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
  935. package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
  936. package/dist/src/core/patch-lint-checkjs.d.ts +0 -180
  937. package/dist/src/core/patch-lint-checkjs.js +0 -611
  938. package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
  939. package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
  940. package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
  941. package/dist/src/core/patch-lint-code-lines.js +0 -105
  942. package/dist/src/core/patch-lint-creators.d.ts +0 -26
  943. package/dist/src/core/patch-lint-creators.js +0 -45
  944. package/dist/src/core/patch-lint-cross.d.ts +0 -232
  945. package/dist/src/core/patch-lint-cross.js +0 -590
  946. package/dist/src/core/patch-lint-css.d.ts +0 -27
  947. package/dist/src/core/patch-lint-css.js +0 -228
  948. package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
  949. package/dist/src/core/patch-lint-diff-tag.js +0 -105
  950. package/dist/src/core/patch-lint-diff.d.ts +0 -42
  951. package/dist/src/core/patch-lint-diff.js +0 -100
  952. package/dist/src/core/patch-lint-file-size.d.ts +0 -57
  953. package/dist/src/core/patch-lint-file-size.js +0 -62
  954. package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
  955. package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
  956. package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
  957. package/dist/src/core/patch-lint-forward-registration.js +0 -266
  958. package/dist/src/core/patch-lint-ignore.d.ts +0 -196
  959. package/dist/src/core/patch-lint-ignore.js +0 -429
  960. package/dist/src/core/patch-lint-imports.d.ts +0 -5
  961. package/dist/src/core/patch-lint-imports.js +0 -67
  962. package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
  963. package/dist/src/core/patch-lint-jsdoc.js +0 -471
  964. package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
  965. package/dist/src/core/patch-lint-module-registration.js +0 -97
  966. package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
  967. package/dist/src/core/patch-lint-mozbuild.js +0 -192
  968. package/dist/src/core/patch-lint-observer.d.ts +0 -37
  969. package/dist/src/core/patch-lint-observer.js +0 -167
  970. package/dist/src/core/patch-lint-ownership.d.ts +0 -74
  971. package/dist/src/core/patch-lint-ownership.js +0 -125
  972. package/dist/src/core/patch-lint-prettier.d.ts +0 -34
  973. package/dist/src/core/patch-lint-prettier.js +0 -124
  974. package/dist/src/core/patch-lint-projection.d.ts +0 -25
  975. package/dist/src/core/patch-lint-projection.js +0 -43
  976. package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
  977. package/dist/src/core/patch-lint-queue-types.js +0 -12
  978. package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
  979. package/dist/src/core/patch-lint-size-thresholds.js +0 -110
  980. package/dist/src/core/patch-lint-size.d.ts +0 -117
  981. package/dist/src/core/patch-lint-size.js +0 -331
  982. package/dist/src/core/patch-lint-staged-registration.d.ts +0 -78
  983. package/dist/src/core/patch-lint-staged-registration.js +0 -110
  984. package/dist/src/core/patch-lint-token-scale.d.ts +0 -57
  985. package/dist/src/core/patch-lint-token-scale.js +0 -286
  986. package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
  987. package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
  988. package/dist/src/core/patch-lint.d.ts +0 -191
  989. package/dist/src/core/patch-lint.js +0 -529
  990. package/dist/src/core/patch-lock.d.ts +0 -40
  991. package/dist/src/core/patch-lock.js +0 -129
  992. package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
  993. package/dist/src/core/patch-manifest-consistency.js +0 -256
  994. package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
  995. package/dist/src/core/patch-manifest-files-affected.js +0 -77
  996. package/dist/src/core/patch-manifest-io.d.ts +0 -199
  997. package/dist/src/core/patch-manifest-io.js +0 -556
  998. package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
  999. package/dist/src/core/patch-manifest-key-order.js +0 -60
  1000. package/dist/src/core/patch-manifest-query.d.ts +0 -55
  1001. package/dist/src/core/patch-manifest-query.js +0 -139
  1002. package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
  1003. package/dist/src/core/patch-manifest-resolve.js +0 -35
  1004. package/dist/src/core/patch-manifest-stage.d.ts +0 -46
  1005. package/dist/src/core/patch-manifest-stage.js +0 -96
  1006. package/dist/src/core/patch-manifest-validate.d.ts +0 -20
  1007. package/dist/src/core/patch-manifest-validate.js +0 -240
  1008. package/dist/src/core/patch-manifest.d.ts +0 -12
  1009. package/dist/src/core/patch-manifest.js +0 -13
  1010. package/dist/src/core/patch-order-legal.d.ts +0 -26
  1011. package/dist/src/core/patch-order-legal.js +0 -88
  1012. package/dist/src/core/patch-parse.d.ts +0 -161
  1013. package/dist/src/core/patch-parse.js +0 -347
  1014. package/dist/src/core/patch-policy-content.d.ts +0 -40
  1015. package/dist/src/core/patch-policy-content.js +0 -216
  1016. package/dist/src/core/patch-policy.d.ts +0 -80
  1017. package/dist/src/core/patch-policy.js +0 -394
  1018. package/dist/src/core/patch-registration-refs.d.ts +0 -41
  1019. package/dist/src/core/patch-registration-refs.js +0 -107
  1020. package/dist/src/core/patch-retired.d.ts +0 -57
  1021. package/dist/src/core/patch-retired.js +0 -92
  1022. package/dist/src/core/patch-source-metadata.d.ts +0 -6
  1023. package/dist/src/core/patch-source-metadata.js +0 -12
  1024. package/dist/src/core/patch-subset.d.ts +0 -18
  1025. package/dist/src/core/patch-subset.js +0 -67
  1026. package/dist/src/core/patch-transform.d.ts +0 -61
  1027. package/dist/src/core/patch-transform.js +0 -198
  1028. package/dist/src/core/preflight-wait.d.ts +0 -22
  1029. package/dist/src/core/preflight-wait.js +0 -62
  1030. package/dist/src/core/process-cpu-time.d.ts +0 -12
  1031. package/dist/src/core/process-cpu-time.js +0 -52
  1032. package/dist/src/core/process-owner.d.ts +0 -9
  1033. package/dist/src/core/process-owner.js +0 -43
  1034. package/dist/src/core/rebase-dry-run.d.ts +0 -48
  1035. package/dist/src/core/rebase-dry-run.js +0 -105
  1036. package/dist/src/core/rebase-from-version.d.ts +0 -46
  1037. package/dist/src/core/rebase-from-version.js +0 -71
  1038. package/dist/src/core/rebase-session.d.ts +0 -100
  1039. package/dist/src/core/rebase-session.js +0 -174
  1040. package/dist/src/core/register-browser-content.d.ts +0 -11
  1041. package/dist/src/core/register-browser-content.js +0 -52
  1042. package/dist/src/core/register-browser-test.d.ts +0 -18
  1043. package/dist/src/core/register-browser-test.js +0 -66
  1044. package/dist/src/core/register-module.d.ts +0 -11
  1045. package/dist/src/core/register-module.js +0 -56
  1046. package/dist/src/core/register-result.d.ts +0 -30
  1047. package/dist/src/core/register-result.js +0 -8
  1048. package/dist/src/core/register-scaffold.d.ts +0 -55
  1049. package/dist/src/core/register-scaffold.js +0 -146
  1050. package/dist/src/core/register-shared-css.d.ts +0 -36
  1051. package/dist/src/core/register-shared-css.js +0 -112
  1052. package/dist/src/core/register-xpcshell-test.d.ts +0 -50
  1053. package/dist/src/core/register-xpcshell-test.js +0 -143
  1054. package/dist/src/core/run-log-redact.d.ts +0 -38
  1055. package/dist/src/core/run-log-redact.js +0 -69
  1056. package/dist/src/core/run-log.d.ts +0 -97
  1057. package/dist/src/core/run-log.js +0 -334
  1058. package/dist/src/core/run-profile.d.ts +0 -57
  1059. package/dist/src/core/run-profile.js +0 -137
  1060. package/dist/src/core/shared-ftl.d.ts +0 -28
  1061. package/dist/src/core/shared-ftl.js +0 -49
  1062. package/dist/src/core/signal-critical.d.ts +0 -38
  1063. package/dist/src/core/signal-critical.js +0 -62
  1064. package/dist/src/core/smoke-patterns.d.ts +0 -81
  1065. package/dist/src/core/smoke-patterns.js +0 -176
  1066. package/dist/src/core/state-file.d.ts +0 -60
  1067. package/dist/src/core/state-file.js +0 -71
  1068. package/dist/src/core/status-binary.d.ts +0 -62
  1069. package/dist/src/core/status-binary.js +0 -133
  1070. package/dist/src/core/status-classify.d.ts +0 -96
  1071. package/dist/src/core/status-classify.js +0 -244
  1072. package/dist/src/core/test-changed-prefs.d.ts +0 -30
  1073. package/dist/src/core/test-changed-prefs.js +0 -93
  1074. package/dist/src/core/test-harness-crash.d.ts +0 -251
  1075. package/dist/src/core/test-harness-crash.js +0 -780
  1076. package/dist/src/core/test-harness-infra.d.ts +0 -32
  1077. package/dist/src/core/test-harness-infra.js +0 -69
  1078. package/dist/src/core/test-harness-output.d.ts +0 -45
  1079. package/dist/src/core/test-harness-output.js +0 -119
  1080. package/dist/src/core/test-harness-signature.d.ts +0 -57
  1081. package/dist/src/core/test-harness-signature.js +0 -35
  1082. package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
  1083. package/dist/src/core/test-harness-verdict-notes.js +0 -48
  1084. package/dist/src/core/test-host-state.d.ts +0 -14
  1085. package/dist/src/core/test-host-state.js +0 -80
  1086. package/dist/src/core/test-path-scope.d.ts +0 -59
  1087. package/dist/src/core/test-path-scope.js +0 -147
  1088. package/dist/src/core/test-profile-files.d.ts +0 -17
  1089. package/dist/src/core/test-profile-files.js +0 -75
  1090. package/dist/src/core/test-raw-log.d.ts +0 -66
  1091. package/dist/src/core/test-raw-log.js +0 -122
  1092. package/dist/src/core/test-run-completeness.d.ts +0 -97
  1093. package/dist/src/core/test-run-completeness.js +0 -191
  1094. package/dist/src/core/test-stale-check.d.ts +0 -213
  1095. package/dist/src/core/test-stale-check.js +0 -396
  1096. package/dist/src/core/test-stale-exempt.d.ts +0 -40
  1097. package/dist/src/core/test-stale-exempt.js +0 -70
  1098. package/dist/src/core/test-stale-symlink.d.ts +0 -12
  1099. package/dist/src/core/test-stale-symlink.js +0 -39
  1100. package/dist/src/core/test-stall-triage.d.ts +0 -51
  1101. package/dist/src/core/test-stall-triage.js +0 -142
  1102. package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
  1103. package/dist/src/core/test-xpcshell-retry.js +0 -31
  1104. package/dist/src/core/token-category.d.ts +0 -54
  1105. package/dist/src/core/token-category.js +0 -299
  1106. package/dist/src/core/token-coverage.d.ts +0 -12
  1107. package/dist/src/core/token-coverage.js +0 -96
  1108. package/dist/src/core/token-dark-mode.d.ts +0 -64
  1109. package/dist/src/core/token-dark-mode.js +0 -186
  1110. package/dist/src/core/token-docs.d.ts +0 -34
  1111. package/dist/src/core/token-docs.js +0 -102
  1112. package/dist/src/core/token-inventory.d.ts +0 -56
  1113. package/dist/src/core/token-inventory.js +0 -114
  1114. package/dist/src/core/token-lint.d.ts +0 -53
  1115. package/dist/src/core/token-lint.js +0 -131
  1116. package/dist/src/core/token-manager.d.ts +0 -87
  1117. package/dist/src/core/token-manager.js +0 -407
  1118. package/dist/src/core/token-scaffold.d.ts +0 -36
  1119. package/dist/src/core/token-scaffold.js +0 -73
  1120. package/dist/src/core/token-sibling-sheets.d.ts +0 -46
  1121. package/dist/src/core/token-sibling-sheets.js +0 -119
  1122. package/dist/src/core/token-variant.d.ts +0 -90
  1123. package/dist/src/core/token-variant.js +0 -327
  1124. package/dist/src/core/toolchain-preflight.d.ts +0 -90
  1125. package/dist/src/core/toolchain-preflight.js +0 -251
  1126. package/dist/src/core/tree-cow.d.ts +0 -16
  1127. package/dist/src/core/tree-cow.js +0 -71
  1128. package/dist/src/core/tree-guard.d.ts +0 -35
  1129. package/dist/src/core/tree-guard.js +0 -194
  1130. package/dist/src/core/tree-store.d.ts +0 -143
  1131. package/dist/src/core/tree-store.js +0 -478
  1132. package/dist/src/core/typecheck-shim.d.ts +0 -90
  1133. package/dist/src/core/typecheck-shim.js +0 -507
  1134. package/dist/src/core/typecheck.d.ts +0 -75
  1135. package/dist/src/core/typecheck.js +0 -433
  1136. package/dist/src/core/wire-destroy.d.ts +0 -25
  1137. package/dist/src/core/wire-destroy.js +0 -126
  1138. package/dist/src/core/wire-dom-fragment.d.ts +0 -44
  1139. package/dist/src/core/wire-dom-fragment.js +0 -139
  1140. package/dist/src/core/wire-init.d.ts +0 -28
  1141. package/dist/src/core/wire-init.js +0 -219
  1142. package/dist/src/core/wire-subscript.d.ts +0 -23
  1143. package/dist/src/core/wire-subscript.js +0 -145
  1144. package/dist/src/core/wire-utils.d.ts +0 -149
  1145. package/dist/src/core/wire-utils.js +0 -338
  1146. package/dist/src/core/xpcshell-appdir.d.ts +0 -157
  1147. package/dist/src/core/xpcshell-appdir.js +0 -299
  1148. package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
  1149. package/dist/src/core/xpcshell-profile-dir.js +0 -45
  1150. package/dist/src/errors/base.d.ts +0 -217
  1151. package/dist/src/errors/base.js +0 -279
  1152. package/dist/src/errors/build.d.ts +0 -92
  1153. package/dist/src/errors/build.js +0 -166
  1154. package/dist/src/errors/codes.d.ts +0 -74
  1155. package/dist/src/errors/codes.js +0 -74
  1156. package/dist/src/errors/config.d.ts +0 -17
  1157. package/dist/src/errors/config.js +0 -39
  1158. package/dist/src/errors/download.d.ts +0 -66
  1159. package/dist/src/errors/download.js +0 -160
  1160. package/dist/src/errors/furnace.d.ts +0 -20
  1161. package/dist/src/errors/furnace.js +0 -28
  1162. package/dist/src/errors/git.d.ts +0 -65
  1163. package/dist/src/errors/git.js +0 -140
  1164. package/dist/src/errors/patch.d.ts +0 -27
  1165. package/dist/src/errors/patch.js +0 -52
  1166. package/dist/src/errors/rebase.d.ts +0 -42
  1167. package/dist/src/errors/rebase.js +0 -71
  1168. package/dist/src/errors/run.d.ts +0 -16
  1169. package/dist/src/errors/run.js +0 -22
  1170. package/dist/src/index.d.ts +0 -42
  1171. package/dist/src/index.js +0 -32
  1172. package/dist/src/types/cli.d.ts +0 -14
  1173. package/dist/src/types/commands/index.d.ts +0 -6
  1174. package/dist/src/types/commands/index.js +0 -5
  1175. package/dist/src/types/commands/options.d.ts +0 -1367
  1176. package/dist/src/types/commands/options.js +0 -5
  1177. package/dist/src/types/commands/patches.d.ts +0 -352
  1178. package/dist/src/types/commands/patches.js +0 -5
  1179. package/dist/src/types/commands/project.d.ts +0 -51
  1180. package/dist/src/types/commands/project.js +0 -5
  1181. package/dist/src/types/config.d.ts +0 -703
  1182. package/dist/src/types/config.js +0 -15
  1183. package/dist/src/types/furnace.d.ts +0 -415
  1184. package/dist/src/types/furnace.js +0 -26
  1185. package/dist/src/types/index.d.ts +0 -5
  1186. package/dist/src/types/index.js +0 -5
  1187. package/dist/src/types/json.d.ts +0 -22
  1188. package/dist/src/types/json.js +0 -11
  1189. package/dist/src/types/typecheck.d.ts +0 -51
  1190. package/dist/src/types/typecheck.js +0 -14
  1191. package/dist/src/utils/assert.d.ts +0 -34
  1192. package/dist/src/utils/assert.js +0 -61
  1193. package/dist/src/utils/build-info.d.ts +0 -30
  1194. package/dist/src/utils/build-info.js +0 -99
  1195. package/dist/src/utils/child-env.d.ts +0 -28
  1196. package/dist/src/utils/child-env.js +0 -27
  1197. package/dist/src/utils/concurrency.d.ts +0 -8
  1198. package/dist/src/utils/concurrency.js +0 -32
  1199. package/dist/src/utils/elapsed.d.ts +0 -2
  1200. package/dist/src/utils/elapsed.js +0 -23
  1201. package/dist/src/utils/errors.d.ts +0 -39
  1202. package/dist/src/utils/errors.js +0 -67
  1203. package/dist/src/utils/fs.d.ts +0 -113
  1204. package/dist/src/utils/fs.js +0 -337
  1205. package/dist/src/utils/hash.d.ts +0 -12
  1206. package/dist/src/utils/hash.js +0 -16
  1207. package/dist/src/utils/line-dispatch.d.ts +0 -15
  1208. package/dist/src/utils/line-dispatch.js +0 -48
  1209. package/dist/src/utils/logger.d.ts +0 -109
  1210. package/dist/src/utils/logger.js +0 -270
  1211. package/dist/src/utils/machine-output.d.ts +0 -12
  1212. package/dist/src/utils/machine-output.js +0 -33
  1213. package/dist/src/utils/options.d.ts +0 -155
  1214. package/dist/src/utils/options.js +0 -312
  1215. package/dist/src/utils/package-root.d.ts +0 -21
  1216. package/dist/src/utils/package-root.js +0 -70
  1217. package/dist/src/utils/parse.d.ts +0 -117
  1218. package/dist/src/utils/parse.js +0 -214
  1219. package/dist/src/utils/path-glob.d.ts +0 -15
  1220. package/dist/src/utils/path-glob.js +0 -47
  1221. package/dist/src/utils/paths.d.ts +0 -31
  1222. package/dist/src/utils/paths.js +0 -80
  1223. package/dist/src/utils/platform.d.ts +0 -9
  1224. package/dist/src/utils/platform.js +0 -14
  1225. package/dist/src/utils/process-group.d.ts +0 -42
  1226. package/dist/src/utils/process-group.js +0 -190
  1227. package/dist/src/utils/process-input.d.ts +0 -27
  1228. package/dist/src/utils/process-input.js +0 -46
  1229. package/dist/src/utils/process.d.ts +0 -293
  1230. package/dist/src/utils/process.js +0 -593
  1231. package/dist/src/utils/ps-duration.d.ts +0 -31
  1232. package/dist/src/utils/ps-duration.js +0 -70
  1233. package/dist/src/utils/regex.d.ts +0 -39
  1234. package/dist/src/utils/regex.js +0 -109
  1235. package/dist/src/utils/sleep.d.ts +0 -25
  1236. package/dist/src/utils/sleep.js +0 -30
  1237. package/dist/src/utils/stdio-drain.d.ts +0 -28
  1238. package/dist/src/utils/stdio-drain.js +0 -54
  1239. package/dist/src/utils/validation.d.ts +0 -182
  1240. package/dist/src/utils/validation.js +0 -394
  1241. package/docs/lifecycle-invariants.md +0 -523
  1242. package/docs/run-logs.md +0 -122
  1243. package/docs/verification-trees.md +0 -49
  1244. /package/dist/src/{types/cli.js → cli/context.js} +0 -0
@@ -1,780 +0,0 @@
1
- // SPDX-License-Identifier: EUPL-1.2
2
- /**
3
- * Harness-crash classification for `fireforge test`.
4
- *
5
- * The wrapped mach harness exhibits flaky non-test failures that an exit
6
- * code (or a "did it print a summary" grep) cannot distinguish from real
7
- * test results:
8
- *
9
- * - startup crashes from the mozlog resource monitor on macOS
10
- * (`AttributeError: 'SystemResourceMonitor' object has no attribute
11
- * 'poll_interval'`, `host_statistics64(HOST_VM_INFO64) syscall failed`,
12
- * `(ipc/mig) array not large enough`, a psutil/macOS mismatch) which
13
- * abort the run before any test executes.
14
- * - hangs after browser startup that die at the no-output timeout yet still
15
- * emit a `Passed: 0` summary.
16
- * - post-green shutdown re-entry, where a fully green run stalls on "must
17
- * wait for focus" and records "Application shut down (without crashing)
18
- * in the middle of a test!" as the only unexpected failure.
19
- *
20
- * Classification therefore keys on `TEST-START` presence, so summary lines
21
- * never count as proof that tests ran, and recognizes the crash shapes
22
- * above so the command layer can retry them with a bounded budget instead of
23
- * reporting phantom test failures (or phantom passes).
24
- */
25
- import { hasKnownTeardownNoise } from './mach-known-noise-filter.js';
26
- import { detectServerStartupFailure } from './test-harness-infra.js';
27
- import { truncateEvidence, unmarkedFailureEvidenceNote, } from './test-harness-verdict-notes.js';
28
- import { classifyProfileArgumentFailure } from './test-profile-files.js';
29
- import { formatIncompleteSuffix, formatShardsSuffix, } from './test-harness-signature.js';
30
- // The operator message after exhausted retries lives beside the
31
- // server-startup shape in `test-harness-infra.ts`.
32
- export { buildHarnessCrashMessage } from './test-harness-infra.js';
33
- // The no-output-stall triage text lives in `test-stall-triage.ts` (it is
34
- // operator advice, not classification) and is re-exported here so the
35
- // command layer keeps importing its harness diagnostics from one module.
36
- export { headedDisplayAsleepVerdictNote, headedNoOutputTimeoutHint } from './test-stall-triage.js';
37
- const TEST_START_PATTERN = /\bTEST-START\b/;
38
- /**
39
- * Structured-log execution marker (`mach xpcshell-test` mozlog output uses
40
- * `TEST_START`/`SUITE_END` with underscores, not the hyphenated
41
- * `TEST-START` the browser-chrome dispatch prints).
42
- */
43
- const STRUCTURED_TEST_START_PATTERN = /\bTEST_START\b/;
44
- const SUITE_END_PATTERN = /\bSUITE_END\b/;
45
- const GREEN_UNEXPECTED_SUMMARY_PATTERN = /\bUnexpected results:\s*0\b/;
46
- const NONZERO_UNEXPECTED_SUMMARY_PATTERN = /\bUnexpected results:\s*[1-9]/;
47
- /**
48
- * Execution signals emitted by the suite-specific xpcshell dispatch
49
- * (`mach xpcshell-test`), which does not print `TEST-START` lines the way
50
- * the generic `mach test` / browser-chrome dispatch does. A passing
51
- * single-file xpcshell run prints a result-summary block instead
52
- * (`TEST_END: Test PASS`, `Ran 16 checks`, `Unexpected results: 0`), so
53
- * keying execution purely on `TEST-START` mis-reads a green xpcshell run as
54
- * "no tests started".
55
- *
56
- * These markers are xpcshell-specific on purpose: the bare `Passed: 0` /
57
- * `Failed: 0` summary that the no-output hang shape prints is deliberately
58
- * not matched here, because that case must still read as `no-tests`.
59
- */
60
- const XPCSHELL_RESULT_SUMMARY_PATTERN = /\bTEST_END\b|\bRan \d+ checks?\b|\bResult summary:/i;
61
- const UNEXPECTED_LINE_PATTERN = /^.*\bTEST-UNEXPECTED-[A-Z-]+\b.*$/gm;
62
- /**
63
- * A `FAIL` token that is harness-shaped. Not a bare `\bFAIL\b`
64
- * word match: that matched any output line containing the ordinary English
65
- * word, so a test's own passing diagnostic could manufacture a red run (see
66
- * {@link realUnexpectedFailureLines}). It also matched `TEST-KNOWN-FAIL`,
67
- * an expected failure, and counted it as a real one.
68
- *
69
- * The `TEST-` prefix is what makes the token the harness's rather than
70
- * prose, and the negative lookahead is what keeps a known-fail annotation
71
- * out of the evidence set.
72
- */
73
- const FAIL_LINE_PATTERN = /^.*\bTEST-(?!KNOWN-FAIL\b)[A-Z-]*FAIL\b.*$/gm;
74
- /**
75
- * The three concrete shapes Gecko prints for a real assertion failure.
76
- * Case-sensitive and punctuation-anchored on purpose: the previous
77
- * `/\b(?:Assertion failure|MOZ_ASSERT|ASSERTION)\b/gim` was
78
- * case-insensitive, so the ordinary English word "assertion" in a passing
79
- * diagnostic ("If an assertion below times out, this is why") was read as
80
- * a failure, and the verdict then named that diagnostic as the first real
81
- * test failure, pointing the reader at the wrong line.
82
- */
83
- const ASSERTION_LINE_PATTERN = /^.*(?:Assertion failure:|MOZ_ASSERT\(|###!!! ASSERTION).*$/gm;
84
- export const SHUTDOWN_REENTRY_PATTERN = /Application shut down \(without crashing\) in the middle of a test/i;
85
- const FOCUS_STALL_PATTERN = /must wait for focus/i;
86
- const TRACEBACK_PATTERN = /Traceback \(most recent call last\)/;
87
- const NO_OUTPUT_TIMEOUT_PATTERN = /timed out after \d+ seconds with no output/i;
88
- /**
89
- * Crash-marker lines mozcrash / the mochitest harness print when the browser
90
- * process itself died. Matched against the raw output (never noise-stripped):
91
- * any of these proves the run was truncated by a crash, so an embedded green
92
- * summary is under-reporting, not a result. `Main app process: killed by
93
- * SIGSEGV` at the second of eight files with a `Passed: 2 / Failed: 0`
94
- * summary is the shape this exists to catch.
95
- */
96
- const CRASH_MARKER_PATTERNS = [
97
- /Main app process: killed by SIG\w+/,
98
- /\bPROCESS-CRASH\b/,
99
- // The minidump-processing header shapes mozcrash emits when it walks a
100
- // crash dump after the run.
101
- /mozcrash.*minidump/i,
102
- /Crash dump filename/i,
103
- /Thread \d+ \(crashed\)/,
104
- ];
105
- /**
106
- * Startup-traceback fingerprints from the mozlog resource monitor / psutil
107
- * on macOS. Each is matched per-line so the evidence line in the report is
108
- * the concrete failure, not the whole traceback.
109
- */
110
- // A `_DegradedReading` fallback that is not a real namedtuple duck type
111
- // crashes mozsystemmonitor on the fallback itself (`_build_meta` subscripts
112
- // the reading, `_collect` unpacks it). A startup abort with zero TEST-START
113
- // lines from this family is a crash, not a test failure. The `_collect
114
- // failed` variant is caught-and-logged, so it carries no Traceback header.
115
- // It gets its own zero-TEST-START check in `detectHarnessCrashSignature`
116
- // besides joining the traceback cluster.
117
- const DEGRADED_READING_CRASH_SIGNALS = [
118
- /'_DegradedReading' object is not subscriptable/,
119
- /'_DegradedReading' object is not iterable/,
120
- ];
121
- const STARTUP_TRACEBACK_SIGNALS = [
122
- /AttributeError:.*SystemResourceMonitor/,
123
- /'SystemResourceMonitor' object has no attribute/,
124
- /poll_interval/,
125
- /host_statistics64/,
126
- /HOST_VM_INFO64/,
127
- /\(ipc\/mig\) array not large enough/,
128
- /psutil\.[A-Za-z]*Error/,
129
- // On a degraded host every collector sample is rejected, aggregation has
130
- // nothing, and mozbuild's log_resource_usage dies on
131
- // usage["io"].read_bytes AFTER a fully successful compile ("Error running
132
- // mach" with complete artifacts). Environmental, not a build regression:
133
- // the protected build retries it, since an incremental retry is cheap and
134
- // the guard keeps the retry green.
135
- /AttributeError: 'NoneType' object has no attribute 'read_bytes'/,
136
- ...DEGRADED_READING_CRASH_SIGNALS,
137
- ];
138
- function findLine(output, patterns) {
139
- for (const line of output.split(/\r?\n/)) {
140
- if (patterns.some((p) => p.test(line)))
141
- return line.trim();
142
- }
143
- return undefined;
144
- }
145
- /**
146
- * Non-signal noise lines: the resource-monitor degrade path (FireForge's own
147
- * guard plus mozlog's `_collect failed`) prints warnings on runs that then
148
- * complete green. Without excluding them, every multi-file suite reports
149
- * CRASH because these lines match the startup-traceback signals even though
150
- * the embedded summary is fully green.
151
- */
152
- const NOISE_LINE_PATTERNS = [
153
- /\bUserWarning\b/,
154
- /psutil failed to run/i,
155
- // `_collect failed` chatter is noise on green runs, EXCEPT the
156
- // `_DegradedReading` variant: that is the crash evidence for the
157
- // "object is not iterable" startup-abort signature above and must
158
- // survive stripNonSignalNoise.
159
- /_collect failed(?!.*_DegradedReading)/i,
160
- /FireForge: host resource monitor degraded/i,
161
- /warnings\.warn\(/,
162
- // mozsystemmonitor's parent-side drain loop rejecting a malformed sample.
163
- // mach sometimes reprints the warning text without the `UserWarning:`
164
- // token, and a run that completes despite the stream must never classify
165
- // as crash on it.
166
- /failed to read the received data/i,
167
- ];
168
- /** Matches the caught/telemetry context that marks a traceback as benign. */
169
- const BENIGN_TRACEBACK_CONTEXT = /telemetry|glean/i;
170
- /**
171
- * Strips non-signal noise from captured output before crash-signature
172
- * matching: resource-monitor degradation warnings, and traceback blocks
173
- * that mach caught itself (telemetry submission tracebacks are printed but
174
- * never abort the run). The stripped text is used only as crash evidence.
175
- * Classification of test results still reads the full output.
176
- */
177
- export function stripNonSignalNoise(output) {
178
- const lines = output.split(/\r?\n/);
179
- const kept = [];
180
- for (let i = 0; i < lines.length; i += 1) {
181
- const line = lines[i] ?? '';
182
- if (NOISE_LINE_PATTERNS.some((p) => p.test(line)))
183
- continue;
184
- if (TRACEBACK_PATTERN.test(line)) {
185
- // Collect the whole traceback block: the header, indented frame/code
186
- // lines, and the trailing unindented exception line.
187
- const block = [line];
188
- let j = i + 1;
189
- for (; j < lines.length; j += 1) {
190
- const blockLine = lines[j] ?? '';
191
- block.push(blockLine);
192
- const isIndented = /^\s/.test(blockLine) || blockLine.trim().length === 0;
193
- if (!isIndented)
194
- break; // unindented exception line terminates the block
195
- }
196
- if (BENIGN_TRACEBACK_CONTEXT.test(block.join('\n'))) {
197
- i = j; // drop the whole caught-telemetry traceback block
198
- continue;
199
- }
200
- // A real traceback stays in evidence line-by-line (minus noise lines
201
- // already filtered above).
202
- }
203
- kept.push(line);
204
- }
205
- return kept.join('\n');
206
- }
207
- /**
208
- * True when the output carries any execution signal: the browser-chrome
209
- * `TEST-START` marker, the structured-log `TEST_START` marker, or the
210
- * suite-specific xpcshell result-summary block.
211
- */
212
- function hasExecutionSignal(output) {
213
- return (TEST_START_PATTERN.test(output) ||
214
- STRUCTURED_TEST_START_PATTERN.test(output) ||
215
- hasXpcshellResultSummary(output));
216
- }
217
- /**
218
- * Finds the first crash-marker line in the RAW output (see
219
- * {@link CRASH_MARKER_PATTERNS}), or undefined when the run shows no
220
- * crash evidence. Exported for direct unit testing.
221
- */
222
- export function findCrashMarkerLine(output) {
223
- return findLine(output, CRASH_MARKER_PATTERNS);
224
- }
225
- /**
226
- * True when the summary lines LOOK green: execution signal, `Unexpected
227
- * results: 0` with no non-zero count, `SUITE_END`, no real
228
- * `TEST-UNEXPECTED-*` lines. Blind to crash/truncation
229
- * evidence: {@link hasCompletedGreenSummary} layers that on top, and
230
- * {@link classifyHarnessRun} needs the distinction to report why a
231
- * green-shaped summary was rejected.
232
- */
233
- function hasGreenShapedSummary(output) {
234
- return (hasExecutionSignal(output) &&
235
- SUITE_END_PATTERN.test(output) &&
236
- GREEN_UNEXPECTED_SUMMARY_PATTERN.test(output) &&
237
- !NONZERO_UNEXPECTED_SUMMARY_PATTERN.test(output) &&
238
- realUnexpectedFailureLines(output).length === 0);
239
- }
240
- /**
241
- * True when the output embeds a completed, green suite summary: an execution
242
- * signal, `Unexpected results: 0` (and no non-zero unexpected count), a
243
- * `SUITE_END` marker, no real `TEST-UNEXPECTED-*` lines, and no crash
244
- * marker. Such a run finished its suite, so any startup-traceback-shaped
245
- * noise in the same output is non-fatal and this vetoes
246
- * signature-based crash classification. Without the veto, fully green
247
- * sharded runs report `CRASH (N attempts)` because degradation warnings
248
- * match the psutil signals. A summary printed after a crash marker is not
249
- * "completed": it only covers the files that ran before the crash.
250
- * Exported for direct unit testing.
251
- */
252
- export function hasCompletedGreenSummary(output) {
253
- return hasGreenShapedSummary(output) && findCrashMarkerLine(output) === undefined;
254
- }
255
- /** Basename shape of a mozbuild-manifest test implementation file. */
256
- export const TEST_FILE_BASENAME_PATTERN = /^(?:browser|test)_.*\.m?js$/;
257
- /**
258
- * Start/end execution markers, both log dialects: the structured mozlog
259
- * `TEST_START`/`TEST_END` pair and the human browser-chrome
260
- * `TEST-START`/`TEST-OK` pair. `TEST-UNEXPECTED-*` end shapes are
261
- * irrelevant here, since any such line already fails the green-summary check
262
- * before completeness is consulted.
263
- */
264
- export const START_MARKER_PATTERN = /\bTEST[-_]START\b[:| ]*\s*(\S+)?/;
265
- const END_MARKER_PATTERN = /\bTEST[-_]END\b|\bTEST-OK\b/;
266
- /**
267
- * Cross-checks run completeness against the requested test files: every
268
- * requested file must produce a start marker, and every started test must
269
- * produce an end marker (the harness emits both even for failing files).
270
- *
271
- * Ends are paired with starts positionally (last open start is closed by
272
- * the next end), not by filename: the xpcshell dialect's `TEST_END: Test
273
- * PASS` lines do not name the file. Requested paths that are not
274
- * test-file-shaped (directories, manifests) are skipped for the
275
- * never-started check. The start/end pairing scan covers them regardless.
276
- * Exported for direct unit testing.
277
- */
278
- export function analyzeTestCompleteness(output, requestedPaths) {
279
- const startedNames = [];
280
- const openTests = [];
281
- for (const line of output.split(/\r?\n/)) {
282
- const startMatch = START_MARKER_PATTERN.exec(line);
283
- if (startMatch) {
284
- const name = startMatch[1] ?? '(unnamed test)';
285
- startedNames.push(name);
286
- openTests.push(name);
287
- continue;
288
- }
289
- if (END_MARKER_PATTERN.test(line)) {
290
- openTests.pop();
291
- }
292
- }
293
- const neverStarted = requestedPaths.filter((path) => {
294
- const base = path.slice(path.lastIndexOf('/') + 1);
295
- if (!TEST_FILE_BASENAME_PATTERN.test(base))
296
- return false;
297
- return !startedNames.some((name) => name.includes(base));
298
- });
299
- return { neverStarted, neverEnded: openTests };
300
- }
301
- /**
302
- * True when the captured output carries the suite-specific xpcshell
303
- * result-summary block, which proves tests executed even though the
304
- * xpcshell dispatch emits no `TEST-START` line. Used alongside
305
- * `TEST_START_PATTERN` so a green single-file xpcshell run is not
306
- * mis-classified as `no-tests`. Exported for direct unit testing.
307
- */
308
- function hasXpcshellResultSummary(output) {
309
- return XPCSHELL_RESULT_SUMMARY_PATTERN.test(output);
310
- }
311
- /** Unexpected-failure lines that are not the shutdown re-entry artifact. */
312
- function realUnexpectedFailureLines(output) {
313
- const matches = [
314
- ...(output.match(UNEXPECTED_LINE_PATTERN) ?? []),
315
- ...(output.match(FAIL_LINE_PATTERN) ?? []),
316
- ...(output.match(ASSERTION_LINE_PATTERN) ?? []),
317
- ];
318
- if (NONZERO_UNEXPECTED_SUMMARY_PATTERN.test(output)) {
319
- const summary = output
320
- .split(/\r?\n/)
321
- .find((line) => NONZERO_UNEXPECTED_SUMMARY_PATTERN.test(line));
322
- if (summary)
323
- matches.push(summary);
324
- }
325
- return [...new Set(matches.map((line) => line.trim()))].filter((line) => !SHUTDOWN_REENTRY_PATTERN.test(line));
326
- }
327
- /**
328
- * Non-global copies of the unexpected/assertion patterns for per-line use.
329
- * The `g`-flagged module patterns carry `lastIndex` state across `.test()`
330
- * calls and must never be reused line-by-line.
331
- */
332
- const UNEXPECTED_LINE_SINGLE = /\bTEST-UNEXPECTED-[A-Z-]+\b/;
333
- /**
334
- * Context lines the chrome/xpcshell harnesses print directly under a
335
- * TEST-UNEXPECTED line: `Got …` / `Expected …` / `Actual …`, Assert
336
- * messages, diff markers, stack-trace heads, and indented continuation
337
- * lines.
338
- */
339
- const FAILURE_CONTEXT_LINE_PATTERN = /^(?:\s*(?:Got\b|Expected\b|Actual\b|Assert\w*\b|Stack trace:|[-+]\s)|\s{2,}\S)/;
340
- /** Cap on context lines echoed under a single TEST-UNEXPECTED line. */
341
- const FAILURE_BLOCK_CONTEXT_LIMIT = 6;
342
- /**
343
- * Collects the first `limit` TEST-UNEXPECTED-* lines with their trailing
344
- * assertion/diff context, one string per block. The shutdown-reentry
345
- * artifact is excluded (it is harness noise, not a test result). When more
346
- * than `limit` blocks exist, a final `…(+N more …)` note is appended so the
347
- * operator knows the echo was truncated. Pure. Exported for unit tests.
348
- */
349
- export function collectUnexpectedFailureBlocks(output, limit = 5) {
350
- const lines = output.split(/\r?\n/);
351
- const blocks = [];
352
- let skipped = 0;
353
- for (let i = 0; i < lines.length; i++) {
354
- const line = lines[i] ?? '';
355
- if (!UNEXPECTED_LINE_SINGLE.test(line) || SHUTDOWN_REENTRY_PATTERN.test(line))
356
- continue;
357
- if (blocks.length >= limit) {
358
- skipped++;
359
- continue;
360
- }
361
- const block = [line.trim()];
362
- let contextCount = 0;
363
- for (let j = i + 1; j < lines.length && contextCount < FAILURE_BLOCK_CONTEXT_LIMIT; j++) {
364
- const next = lines[j] ?? '';
365
- if (UNEXPECTED_LINE_SINGLE.test(next))
366
- break;
367
- if (!FAILURE_CONTEXT_LINE_PATTERN.test(next))
368
- break;
369
- block.push(next.trimEnd());
370
- contextCount++;
371
- }
372
- blocks.push(block.join('\n'));
373
- }
374
- if (skipped > 0) {
375
- blocks.push(`…(+${skipped} more TEST-UNEXPECTED line${skipped === 1 ? '' : 's'} not shown)`);
376
- }
377
- return blocks;
378
- }
379
- function detectSecondaryHarnessNoise(output) {
380
- const evidence = stripNonSignalNoise(output);
381
- if (TRACEBACK_PATTERN.test(evidence)) {
382
- const signalLine = findLine(evidence, STARTUP_TRACEBACK_SIGNALS);
383
- if (signalLine) {
384
- return {
385
- reason: 'harness traceback also present (resource monitor/psutil)',
386
- line: signalLine,
387
- };
388
- }
389
- }
390
- const timeoutLine = findLine(evidence, [NO_OUTPUT_TIMEOUT_PATTERN]);
391
- if (timeoutLine) {
392
- return { reason: 'harness no-output timeout also present', line: timeoutLine };
393
- }
394
- return undefined;
395
- }
396
- /**
397
- * Detects the known harness-crash shapes in captured mach output.
398
- * Returns undefined for anything that looks like a genuine test result.
399
- */
400
- export function detectHarnessCrashSignature(output) {
401
- // Browser/app process crashes are deterministic crash evidence, not
402
- // retriable environmental harness noise. Leave them to
403
- // `classifyHarnessRun` so it can reject green-looking truncated summaries
404
- // with the crash line plus never-started/never-ended file evidence.
405
- if (findCrashMarkerLine(output) !== undefined) {
406
- return undefined;
407
- }
408
- const hasTestStart = hasExecutionSignal(output);
409
- const realFailures = realUnexpectedFailureLines(output);
410
- // A completed green embedded summary vetoes signature-based crash
411
- // classification outright: the suite finished, so any startup-shaped
412
- // noise in the same output was non-fatal. (The post-green shutdown
413
- // re-entry shape below is exempt: it is a crash verdict on
414
- // an otherwise-green log, keyed on its own explicit markers.)
415
- const greenSummaryVeto = hasCompletedGreenSummary(output);
416
- // Startup traceback cluster (resource monitor / psutil), scanned over
417
- // noise-stripped evidence so degradation warnings and caught telemetry
418
- // tracebacks never count. Real test failures take precedence: a
419
- // traceback printed during teardown of a genuinely failing run must not
420
- // get the whole run retried.
421
- const evidence = stripNonSignalNoise(output);
422
- if (!greenSummaryVeto && TRACEBACK_PATTERN.test(evidence) && realFailures.length === 0) {
423
- const signalLine = findLine(evidence, STARTUP_TRACEBACK_SIGNALS);
424
- if (signalLine) {
425
- return { reason: 'harness startup traceback (resource monitor/psutil)', line: signalLine };
426
- }
427
- }
428
- // Post-browser-startup hang: no test ever started, the harness died at
429
- // the no-output timeout. A trailing "Passed: 0" summary is part of this
430
- // shape and must not be read as a result.
431
- if (!hasTestStart) {
432
- // Startup abort on the degraded-reading fallback family: the `_collect
433
- // failed: '_DegradedReading' ...` variant is caught-and-logged (no
434
- // Traceback header), so the traceback cluster above never sees it.
435
- if (realFailures.length === 0) {
436
- const degradedLine = findLine(evidence, DEGRADED_READING_CRASH_SIGNALS);
437
- if (degradedLine) {
438
- return {
439
- reason: 'degraded resource reading crashed the harness fallback (_DegradedReading)',
440
- line: degradedLine,
441
- };
442
- }
443
- }
444
- const timeoutLine = findLine(evidence, [NO_OUTPUT_TIMEOUT_PATTERN]);
445
- if (timeoutLine) {
446
- return { reason: 'no-output timeout before any test started', line: timeoutLine };
447
- }
448
- return undefined;
449
- }
450
- // Post-green shutdown re-entry: every unexpected line is the
451
- // shutdown-mid-test artifact, the run stalled on focus, and at least one
452
- // such artifact exists, on an otherwise green log.
453
- const shutdownLine = findLine(output, [SHUTDOWN_REENTRY_PATTERN]);
454
- if (shutdownLine && realFailures.length === 0 && FOCUS_STALL_PATTERN.test(output)) {
455
- return { reason: 'post-green shutdown re-entry during harness teardown', line: shutdownLine };
456
- }
457
- return undefined;
458
- }
459
- /**
460
- * Classifies a completed harness run. The decision tree, in order:
461
- *
462
- * 1. A recognized crash signature wins regardless of exit code (the
463
- * shutdown re-entry shape exits non-zero on an otherwise green run,
464
- * and the hang shape can even exit zero with a `Passed: 0` summary).
465
- * 2. No execution signal with explicit paths requested means no test ran.
466
- * A mochitest server that failed to start explains that, and is a
467
- * retriable infrastructure failure (`harness-crash` with
468
- * `reason=server-startup` on the verdict line). Otherwise it is
469
- * `no-tests`, even when the exit code is zero. The execution signal is
470
- * a `TEST-START` line (generic `mach test` / browser-chrome dispatch)
471
- * or the suite-specific xpcshell result-summary block (the xpcshell
472
- * dispatch prints no `TEST-START`). Bare `Passed:`/`Failed:` summary
473
- * lines are still not trusted as evidence of execution.
474
- * 3. Exit code zero with tests started is a pass. Anything else is a
475
- * test failure for the regular diagnosis chain, except a non-zero
476
- * exit whose embedded summary completed green and shows no crash
477
- * marker and no truncated/never-started requested file, which is a
478
- * pass with a `greenSummaryOverride` note (harness noise owns the
479
- * exit code). A green-shaped summary with such evidence is rejected
480
- * (`greenSummaryRejected`) and fails.
481
- */
482
- export function classifyHarnessRun(exitCode, output, requestedPaths) {
483
- const counts = extractSummaryCounts(output);
484
- const profileFailure = classifyProfileArgumentFailure(output);
485
- if (profileFailure)
486
- return { ...profileFailure, ...counts };
487
- const realFailures = realUnexpectedFailureLines(output);
488
- const firstRealFailure = realFailures[0];
489
- const failureBlocks = collectUnexpectedFailureBlocks(output);
490
- const secondaryHarnessSignature = firstRealFailure !== undefined ? detectSecondaryHarnessNoise(output) : undefined;
491
- // Checked before signature detection: a suite that ran clean and then died
492
- // in known upstream teardown noise is a pass, not a crash. The teardown
493
- // traceback matches the startup-traceback cluster, and the green-summary
494
- // veto over that cluster requires a `SUITE_END` marker, which this very
495
- // traceback is what prevents from printing. Without this check a
496
- // substantively green suite (`Ran N checks` / `Unexpected results: 0`, no
497
- // unexpected lines) reports CRASH, indistinguishable at the summary level
498
- // from a red run. Every hard-evidence veto still applies: a crash marker,
499
- // a non-zero unexpected count, any real TEST-UNEXPECTED line, the
500
- // shutdown-re-entry shape, or a requested file that never started keeps
501
- // the run failing. Only the missing shutdown marker is forgiven, and only
502
- // when the recognized teardown traceback explains it.
503
- const teardownOverride = evaluateGreenTeardownOverride(output, counts, realFailures, requestedPaths);
504
- if (teardownOverride.accepted) {
505
- return { kind: 'tests-ran-ok', note: 'harness teardown noise ignored', ...counts };
506
- }
507
- // A run that carried the recognized teardown noise and still failed says
508
- // WHICH condition rejected the override, on the one greppable line.
509
- const teardownNote = teardownOverride.rejectedBy !== undefined
510
- ? `green-teardown override rejected: ${teardownOverride.rejectedBy}`
511
- : undefined;
512
- const withNotes = (verdict, extra) => {
513
- const notes = [teardownNote, extra].filter((n) => n !== undefined);
514
- return notes.length > 0 ? { ...verdict, note: notes.join('; ') } : verdict;
515
- };
516
- const signature = detectHarnessCrashSignature(output);
517
- if (signature) {
518
- return withNotes({ kind: 'harness-crash', signature, ...counts });
519
- }
520
- const ranTests = hasExecutionSignal(output);
521
- if (!ranTests && requestedPaths.length > 0) {
522
- const serverStartup = detectServerStartupFailure(output);
523
- return serverStartup === undefined
524
- ? { kind: 'no-tests', ...counts }
525
- : { kind: 'harness-crash', signature: serverStartup, ...counts };
526
- }
527
- if (exitCode === 0) {
528
- return { kind: 'tests-ran-ok', ...counts };
529
- }
530
- // Exit codes follow the corrected verdict: a run whose embedded summary
531
- // completed green is a pass even when the wrapper exit code went non-zero
532
- // on harness noise. Real failures always carry a non-zero unexpected count
533
- // or TEST-UNEXPECTED lines, both of which fail the green-summary check.
534
- //
535
- // The override must never win over crash or truncation evidence: a SIGSEGV
536
- // at the second of eight files produces a "green" `Passed: 2 / Failed: 0`
537
- // summary and mach exit 1, green only because the crash prevented the
538
- // other six files from producing any results. A crash marker or an
539
- // unpaired/never-started requested file rejects the override with the
540
- // evidence attached, so the caller can say why.
541
- if (hasGreenShapedSummary(output)) {
542
- const crashLine = findCrashMarkerLine(output);
543
- const completeness = analyzeTestCompleteness(output, requestedPaths);
544
- if (crashLine !== undefined ||
545
- completeness.neverStarted.length > 0 ||
546
- completeness.neverEnded.length > 0) {
547
- return withNotes({
548
- kind: 'test-failures',
549
- ...counts,
550
- ...(firstRealFailure !== undefined ? { realFailureLine: firstRealFailure } : {}),
551
- ...(failureBlocks.length > 0 ? { realFailureBlocks: failureBlocks } : {}),
552
- ...(secondaryHarnessSignature !== undefined ? { secondaryHarnessSignature } : {}),
553
- greenSummaryRejected: {
554
- ...(crashLine !== undefined ? { crashLine } : {}),
555
- neverStarted: completeness.neverStarted,
556
- neverEnded: completeness.neverEnded,
557
- },
558
- });
559
- }
560
- return { kind: 'tests-ran-ok', greenSummaryOverride: true, ...counts };
561
- }
562
- const wordMatchNote = unmarkedFailureEvidenceNote(counts, realFailures);
563
- return withNotes({
564
- kind: 'test-failures',
565
- ...counts,
566
- ...(firstRealFailure !== undefined ? { realFailureLine: firstRealFailure } : {}),
567
- ...(failureBlocks.length > 0 ? { realFailureBlocks: failureBlocks } : {}),
568
- ...(secondaryHarnessSignature !== undefined ? { secondaryHarnessSignature } : {}),
569
- }, wordMatchNote);
570
- }
571
- /**
572
- * True when the capture shows a substantively GREEN suite whose only
573
- * unexplained residue is the recognized mozsystemmonitor teardown
574
- * traceback.
575
- *
576
- * Requires, all of them: tests actually executed, the summary printed
577
- * `Ran N checks` with an explicit `Unexpected results: 0`, no non-zero
578
- * unexpected count anywhere, no real `TEST-UNEXPECTED-*`/assertion line,
579
- * no crash marker, every requested test file both started and ended, and
580
- * the recognized teardown traceback is present. Anything short of that
581
- * falls through to the normal (failing) chain, with the failing condition
582
- * named, so the next occurrence is a filed bug rather than another
583
- * undiagnosable re-run.
584
- *
585
- * The conditions are evaluated in a fixed order and the first failing one
586
- * is reported. A run can violate several, and reporting one deterministic
587
- * condition beats an unordered list of everything that happened to be true.
588
- */
589
- function evaluateGreenTeardownOverride(output, counts, realFailures, requestedPaths) {
590
- if (!hasKnownTeardownNoise(output))
591
- return { accepted: false };
592
- const reject = (rejectedBy) => ({ accepted: false, rejectedBy });
593
- if (!hasExecutionSignal(output))
594
- return reject('no execution signal (no TEST-START/TEST_START)');
595
- if (counts.checks === undefined)
596
- return reject('summary printed no "Ran N checks" line');
597
- // `counts.unexpected === 0` IS the explicit-`Unexpected results: 0` test
598
- // the previous revision spelled a second time with
599
- // GREEN_UNEXPECTED_SUMMARY_PATTERN: the count is parsed from the same
600
- // line and an absent line leaves it undefined. The two are kept apart in
601
- // the message because "printed no such line" and "printed a non-zero one"
602
- // are different findings for the reader.
603
- if (counts.unexpected === undefined) {
604
- return reject('summary printed no "Unexpected results:" line');
605
- }
606
- if (counts.unexpected !== 0) {
607
- return reject(`summary reported unexpected=${counts.unexpected}`);
608
- }
609
- if (NONZERO_UNEXPECTED_SUMMARY_PATTERN.test(output)) {
610
- return reject('a non-zero "Unexpected results:" line is present somewhere in the output');
611
- }
612
- if (realFailures.length > 0) {
613
- return reject(`${realFailures.length} matched failure line(s), first: ${truncateEvidence(realFailures[0] ?? '')}`);
614
- }
615
- const crashLine = findCrashMarkerLine(output);
616
- if (crashLine !== undefined)
617
- return reject(`crash marker present: ${truncateEvidence(crashLine)}`);
618
- // The post-green shutdown re-entry shape is deliberately a crash verdict
619
- // on an otherwise-green log. It must not be swept up here.
620
- if (SHUTDOWN_REENTRY_PATTERN.test(output)) {
621
- return reject('post-green shutdown re-entry shape present');
622
- }
623
- const completeness = analyzeTestCompleteness(output, requestedPaths);
624
- if (completeness.neverStarted.length > 0) {
625
- return reject(`requested file(s) never started: ${completeness.neverStarted.join(', ')}`);
626
- }
627
- if (completeness.neverEnded.length > 0) {
628
- return reject(`requested file(s) never ended: ${completeness.neverEnded.join(', ')}`);
629
- }
630
- return { accepted: true };
631
- }
632
- /**
633
- * Parses the numeric counts from the harness's embedded result summary
634
- * (`Ran N checks` / `Unexpected results: N`). The last occurrence of each
635
- * wins: a multi-suite run prints one summary per suite and the final one
636
- * covers the aggregate the operator sees. Absent counts are omitted (the
637
- * `FIREFORGE-VERDICT:` contract: an absent key means "summary did not
638
- * print it", never zero).
639
- */
640
- export function extractSummaryCounts(output) {
641
- const checks = lastCapturedCount(output, /\bRan (\d+) checks?\b/g);
642
- const unexpected = lastCapturedCount(output, /\bUnexpected results:\s*(\d+)\b/g);
643
- return {
644
- ...(checks !== undefined ? { checks } : {}),
645
- ...(unexpected !== undefined ? { unexpected } : {}),
646
- };
647
- }
648
- /** Last captured integer for `pattern` in `output`, if any occurrence matches. */
649
- function lastCapturedCount(output, pattern) {
650
- let last;
651
- for (const match of output.matchAll(pattern)) {
652
- const captured = match[1];
653
- if (captured !== undefined) {
654
- last = Number.parseInt(captured, 10);
655
- }
656
- }
657
- return last;
658
- }
659
- /**
660
- * Formats the machine-readable `FIREFORGE-VERDICT:` line: the stable,
661
- * greppable last line every `fireforge test` run prints so harness-verdict
662
- * consumers stop regexing mach internals. The status follows this
663
- * classifier, never the raw exit code: a crash-classified run says
664
- * `FAIL reason=crash` even at exit 0, and a green-summary-override pass
665
- * says `PASS` despite a non-zero mach exit. Count keys are omitted when
666
- * the embedded summary did not print them. Sharded aggregate lines carry
667
- * a trailing `shards=<passed>/<total>` instead of counts (counts belong
668
- * to a single embedded suite summary).
669
- */
670
- export function formatFireforgeVerdictLine(verdict, shards) {
671
- const counts = (verdict.checks !== undefined ? ` checks=${verdict.checks}` : '') +
672
- (verdict.unexpected !== undefined ? ` unexpected=${verdict.unexpected}` : '');
673
- const tail = `${formatShardsSuffix(shards)}${verdict.note !== undefined ? ` (${verdict.note})` : ''}`;
674
- if (verdict.kind === 'tests-ran-ok')
675
- return `FIREFORGE-VERDICT: PASS${counts}${tail}`;
676
- const reason = verdict.kind === 'harness-crash' ? (verdict.signature?.verdictReason ?? 'crash') : verdict.kind;
677
- return `FIREFORGE-VERDICT: FAIL reason=${reason}${counts}${formatIncompleteSuffix(verdict.incomplete)}${tail}`;
678
- }
679
- /**
680
- * Builds the operator-facing failure message for a green-looking summary
681
- * that was rejected on crash or truncation evidence (never trusted as a
682
- * pass, regardless of how green the embedded counts look).
683
- */
684
- export function buildGreenSummaryRejectedMessage(rejection, exitCode) {
685
- const evidence = [];
686
- if (rejection.crashLine !== undefined) {
687
- evidence.push(` - crash evidence: ${rejection.crashLine}`);
688
- }
689
- if (rejection.neverStarted.length > 0) {
690
- evidence.push(` - requested test file(s) that never started: ${rejection.neverStarted.join(', ')}`);
691
- }
692
- if (rejection.neverEnded.length > 0) {
693
- evidence.push(` - test file(s) that started but never finished: ${rejection.neverEnded.join(', ')}`);
694
- }
695
- return (`mach exited ${exitCode} and the embedded suite summary looks green, but FireForge did NOT ` +
696
- 'treat the run as passed:\n\n' +
697
- `${evidence.join('\n')}\n\n` +
698
- 'A crash- or truncation-shortened run under-reports: the "green" counts only cover the ' +
699
- 'files that ran before the run died, so the summary is not a suite result. Treat this as a ' +
700
- 'FAILED run — check the crash/truncation point in the output above, then re-run the ' +
701
- 'remaining files.');
702
- }
703
- /**
704
- * Exit codes that mean "the child died on SIGSEGV": Node reports a
705
- * signal-killed child as the negated signal number, while a shell layer
706
- * in between reports `128 + signal`. Both shapes reach FireForge
707
- * depending on how mach wrapped the harness.
708
- */
709
- const SIGSEGV_EXIT_CODES = new Set([-11, 139]);
710
- /**
711
- * True when a harness run died on SIGSEGV having produced no test evidence
712
- * whatsoever.
713
- *
714
- * `xpcshell return code: -11` with zero output is the signature of an
715
- * `.sys.mjs` that a packaged module imports but whose `EXTRA_JS_MODULES`
716
- * registration never landed: the module loader faults before any logging
717
- * exists, so there is no import error, no stack, no test output, just a
718
- * dead process. It is indistinguishable from a genuine product crash
719
- * unless someone names the cause.
720
- *
721
- * "Produced no evidence" is semantic rather than a byte
722
- * budget: no execution signal, no real failure line, and no mozcrash
723
- * marker. A run that got far enough to start a test, report a failure, or
724
- * leave a crash dump has evidence of its own, and the regular diagnosis
725
- * chain reads it. This branch is only for the case where there is
726
- * nothing else to say.
727
- *
728
- * Pure. Exported for direct unit testing.
729
- *
730
- * @param exitCode - The harness process exit code
731
- * @param output - Combined stdout/stderr from the run
732
- */
733
- export function isSilentSegfault(exitCode, output) {
734
- if (!SIGSEGV_EXIT_CODES.has(exitCode))
735
- return false;
736
- if (hasExecutionSignal(output))
737
- return false;
738
- if (realUnexpectedFailureLines(output).length > 0)
739
- return false;
740
- return findCrashMarkerLine(output) === undefined;
741
- }
742
- /**
743
- * Names the known cause of a silent SIGSEGV so the operator checks
744
- * moz.build registration FIRST instead of paying a full rebuild cycle to
745
- * rediscover it.
746
- *
747
- * @param exitCode - The harness process exit code
748
- * @param requestedPaths - Test paths the run requested
749
- */
750
- export function buildSilentSegfaultMessage(exitCode, requestedPaths) {
751
- return (`The test harness died on SIGSEGV (exit ${exitCode}) having printed NO output at all.\n\n` +
752
- 'Known cause, check this FIRST: a `.sys.mjs` imported from a packaged module whose ' +
753
- '`EXTRA_JS_MODULES` (or namespaced module list) registration is missing from moz.build. ' +
754
- 'The module loader faults before any logging exists, so an unregistered module produces ' +
755
- 'exactly this shape — a dead process with no import error and no stack.\n\n' +
756
- 'What to do, in order:\n' +
757
- ' 1. Run `fireforge lint --per-patch`: the unregistered-system-module check names a new ' +
758
- 'module imported as a resource URL with no moz.build line.\n' +
759
- ' 2. Run `fireforge verify`: its module-resolution preflight resolves every ' +
760
- '`resource:///modules/…` specifier the queue-owned modules import, including imports ' +
761
- 'added to an EXISTING module — the shape the new-file lint cannot see, and the one that ' +
762
- 'recurs.\n' +
763
- ' 3. Only then look for a product crash: a real one prints a crash dump or a stack.\n\n' +
764
- `Requested paths: ${requestedPaths.join(', ')}`);
765
- }
766
- /**
767
- * Builds the message for a run that produced no `TEST-START` despite
768
- * requesting paths, including exit-code-zero runs whose `Passed: 0`
769
- * summary would otherwise read as a silent false green.
770
- */
771
- export function buildNoTestsRanMessage(exitCode, requestedPaths) {
772
- const exitNote = exitCode === 0
773
- ? 'The harness exited 0 and may have printed a summary line, but a summary without a single TEST-START is not a test result.'
774
- : `The harness exited ${exitCode} before any TEST-START line.`;
775
- return ('mach test finished without starting any of the requested tests.\n\n' +
776
- `${exitNote}\n\n` +
777
- `Requested paths: ${requestedPaths.join(', ')}\n\n` +
778
- 'Check that the paths are registered in their test manifest (browser.toml / xpcshell.toml) ' +
779
- 'and that the manifest is reachable from moz.build, then retry.');
780
- }