@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
@@ -0,0 +1,87 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /** What the token commands know about the project's token system, and the files they read. */
3
+ import { FireForgeError } from '../kernel/errors.js';
4
+ import { s } from '../kernel/schema.js';
5
+ /**
6
+ * The engine path of the project's token file: `tokenFile` of the component
7
+ * configuration, else `browser/themes/shared/<binaryName>-tokens.css`.
8
+ *
9
+ * @param binaryName - The project's binary name
10
+ * @param keys - The component configuration, when the project has one
11
+ */
12
+ export function tokenFilePath(binaryName, keys) {
13
+ return keys?.tokenFile ?? `browser/themes/shared/${binaryName}-tokens.css`;
14
+ }
15
+ /**
16
+ * The token file's text.
17
+ *
18
+ * @param files - Where the file lives
19
+ * @param path - Engine path of the token file
20
+ * @throws `token-file-missing`
21
+ */
22
+ export async function readTokenFile(files, path) {
23
+ const text = await files.read(path);
24
+ if (text === undefined) {
25
+ throw new FireForgeError('token-file-missing', `Token file not found: ${path}`, {
26
+ hint: 'Create it with a :root block, or set tokenFile in furnace.json to the file the project uses.',
27
+ });
28
+ }
29
+ return text;
30
+ }
31
+ const cssVariable = s.string({
32
+ pattern: /^--[\w-]+$/,
33
+ format: 'a custom property such as --x',
34
+ });
35
+ const relativePath = s.string({
36
+ pattern: /^(?!\/)(?![A-Za-z]:)(?!.*\.\.)[^\0\\]+$/,
37
+ format: 'a relative path without ".." or backslashes',
38
+ });
39
+ /**
40
+ * The token keys of the component configuration (`furnace.json`), for its
41
+ * schema to spread in: this is their one declaration.
42
+ */
43
+ export const tokenSettingsKeys = {
44
+ tokenFile: relativePath
45
+ .describe('Engine path of the token file (default browser/themes/shared/<binaryName>-tokens.css)')
46
+ .optional(),
47
+ tokenPrefix: s
48
+ .string({ min: 1 })
49
+ .describe('Custom-property prefix of the project tokens, such as --brand-')
50
+ .optional(),
51
+ tokenAllowlist: s
52
+ .array(cssVariable)
53
+ .describe('Custom properties from elsewhere that stylesheets may reference')
54
+ .optional(),
55
+ platformPrefixes: s
56
+ .array(s.string({ min: 1 }))
57
+ .describe('Prefixes of platform-owned custom properties')
58
+ .optional(),
59
+ runtimeVariables: s
60
+ .array(cssVariable)
61
+ .describe('Runtime state channels set from script')
62
+ .optional(),
63
+ tokenHostDocuments: s
64
+ .array(relativePath)
65
+ .describe('Documents that load the token file')
66
+ .optional(),
67
+ tokenSiblingSheets: s
68
+ .record(s.array(relativePath, { min: 1 }))
69
+ .describe('Sheet glob to the sheets that load beside it')
70
+ .optional(),
71
+ };
72
+ /**
73
+ * The project's token conventions, from the token keys of its component
74
+ * configuration, falling back to the prefix `--<binaryName>-`.
75
+ *
76
+ * @param keys - The component configuration, or undefined when the project has none
77
+ * @param binaryName - The project's binary name
78
+ */
79
+ export function tokenSettings(keys, binaryName) {
80
+ return {
81
+ file: tokenFilePath(binaryName, keys),
82
+ prefix: keys?.tokenPrefix ?? `--${binaryName}-`,
83
+ exempt: new Set([...(keys?.tokenAllowlist ?? []), ...(keys?.runtimeVariables ?? [])]),
84
+ platformPrefixes: keys?.platformPrefixes ?? ['--moz-'],
85
+ siblingSheets: keys?.tokenSiblingSheets ?? {},
86
+ };
87
+ }
@@ -0,0 +1,104 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * Which stylesheets load together, so that a token one sheet references can
4
+ * be looked up in the sheets beside it. Sheets linked from one document are
5
+ * siblings of each other, as are a sheet and what it `@import`s. Links are
6
+ * read from `<link rel="stylesheet">`, `<?xml-stylesheet?>` and `@import`;
7
+ * `chrome://` URLs resolve through jar.mn, relative URLs beside the document.
8
+ * Settings add pairings no link shows.
9
+ */
10
+ import { posix } from 'node:path';
11
+ import { matchesAnyGlob } from '../kernel/glob.js';
12
+ import { manifestKind, parseJar, resolveManifestPath } from '../mozbuild/index.js';
13
+ const LINK_TAG = /<(?:html:)?link\b[^>]*>/gi;
14
+ const STYLESHEET_PI = /<\?xml-stylesheet\b[^?]*?href\s*=\s*["']([^"']+)["']/gi;
15
+ const CSS_IMPORT = /@import\s+(?:url\(\s*)?["']([^"']+)["']/gi;
16
+ /** The stylesheet URLs a document or sheet loads. */
17
+ function stylesheetUrls(file, content) {
18
+ if (file.endsWith('.css'))
19
+ return [...content.matchAll(CSS_IMPORT)].map((m) => m[1] ?? '');
20
+ const urls = [];
21
+ for (const [tag] of content.matchAll(LINK_TAG)) {
22
+ if (!/\brel\s*=\s*["']stylesheet["']/i.test(tag))
23
+ continue;
24
+ const href = /\bhref\s*=\s*["']([^"'$]+)["']/i.exec(tag)?.[1];
25
+ if (href !== undefined)
26
+ urls.push(href);
27
+ }
28
+ for (const match of content.matchAll(STYLESHEET_PI))
29
+ urls.push(match[1] ?? '');
30
+ return urls.filter((url) => url.endsWith('.css'));
31
+ }
32
+ /** jar target (`content/<package>/<path>`) to the engine path it packages, over the owned jar manifests. */
33
+ async function jarTargets(owned) {
34
+ const targets = new Map();
35
+ for (const manifest of owned.paths.filter((path) => manifestKind(path) === 'jar')) {
36
+ for (const entry of parseJar((await owned.read(manifest)) ?? '').entries) {
37
+ if (entry.source === undefined || entry.localized)
38
+ continue;
39
+ const exact = resolveManifestPath(manifest, entry.source)?.exact;
40
+ if (exact !== undefined)
41
+ targets.set(entry.target, exact);
42
+ }
43
+ }
44
+ return targets;
45
+ }
46
+ function resolveUrl(url, from, targets, sheets) {
47
+ const chrome = /^chrome:\/\/([\w.-]+)\/(content|skin|locale)\/(.+)$/.exec(url);
48
+ if (chrome !== null) {
49
+ const [, pkg = '', kind = '', path = ''] = chrome;
50
+ const candidates = kind === 'skin'
51
+ ? [`skin/classic/${pkg}/${path}`, `skin/${pkg}/${path}`]
52
+ : [`${kind}/${pkg}/${path}`];
53
+ return candidates.map((target) => targets.get(target)).find((source) => source !== undefined);
54
+ }
55
+ if (/^[a-z][\w+.-]*:/i.test(url))
56
+ return undefined;
57
+ const resolved = posix.normalize(posix.join(posix.dirname(from), url));
58
+ return sheets.has(resolved) ? resolved : undefined;
59
+ }
60
+ /**
61
+ * Maps each sheet to the sheets that load beside it. A sheet with no
62
+ * siblings is absent.
63
+ *
64
+ * @param owned - The project's files: the documents to read links from, and jar manifests
65
+ * @param sheets - The sheets being judged
66
+ * @param settings - `siblingSheets` pairings
67
+ */
68
+ export async function siblingSheets(owned, sheets, settings) {
69
+ const known = new Set(sheets);
70
+ const targets = await jarTargets(owned);
71
+ const siblings = new Map();
72
+ const link = (group) => {
73
+ for (const sheet of group) {
74
+ const set = siblings.get(sheet) ?? new Set();
75
+ for (const other of group)
76
+ if (other !== sheet)
77
+ set.add(other);
78
+ if (set.size > 0)
79
+ siblings.set(sheet, set);
80
+ }
81
+ };
82
+ for (const file of owned.paths.filter((path) => /\.(?:css|xhtml|html|xml|mjs|js)$/.test(path))) {
83
+ const linked = stylesheetUrls(file, (await owned.read(file)) ?? '')
84
+ .map((url) => resolveUrl(url, file, targets, known))
85
+ .filter((sheet) => sheet !== undefined);
86
+ link(file.endsWith('.css') ? [file, ...linked] : linked);
87
+ }
88
+ for (const [pattern, partners] of Object.entries(settings.siblingSheets)) {
89
+ for (const owner of sheets.filter((sheet) => matchesAnyGlob(sheet, [pattern]))) {
90
+ const set = siblings.get(owner) ?? new Set();
91
+ for (const partner of partners) {
92
+ for (const sheet of /[*?]/.test(partner)
93
+ ? sheets.filter((s) => matchesAnyGlob(s, [partner]))
94
+ : [partner]) {
95
+ if (sheet !== owner)
96
+ set.add(sheet);
97
+ }
98
+ }
99
+ if (set.size > 0)
100
+ siblings.set(owner, set);
101
+ }
102
+ }
103
+ return siblings;
104
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * `typecheck --explain <file>`: which programs see one file, and how,
4
+ * without checking anything. Assembled from the functions the programs are
5
+ * built with, so it cannot drift from them.
6
+ */
7
+ import { isAbsolute, join, relative } from 'node:path';
8
+ import { exists, isInside, toPosixPath } from '../kernel/fs.js';
9
+ import { explainOwnedTypes, loadTypeScript } from '../lint/index.js';
10
+ import { displayPath, optsOut, parseProject, projectLayout, projectShim, projectsOf, resolveProjectPath, } from './typecheck.js';
11
+ /** A file a user names (absolute, `engine/…`, or project-relative) as the layout names it. */
12
+ function fileInLayout(request, layout, file) {
13
+ if (!isAbsolute(file))
14
+ return resolveProjectPath(layout, file);
15
+ if (isInside(request.engineDir, file)) {
16
+ return join(layout, 'engine', relative(request.engineDir, file));
17
+ }
18
+ return isInside(request.projectRoot, file)
19
+ ? join(layout, relative(request.projectRoot, file))
20
+ : file;
21
+ }
22
+ /**
23
+ * Explains how both passes see a file.
24
+ *
25
+ * @param request - The run, as `runTypecheck` would get it
26
+ * @param file - Absolute, `engine/…`, or project-relative
27
+ */
28
+ export async function explainTypecheck(request, file) {
29
+ const layout = await projectLayout(request);
30
+ const absolute = fileInLayout(request, layout, file);
31
+ const { projects, settings } = projectsOf(request);
32
+ const views = [];
33
+ const ts = projects.length > 0 ? await loadTypeScript() : undefined;
34
+ for (const project of projects) {
35
+ const shim = projectShim(settings, project);
36
+ const base = {
37
+ project,
38
+ litTypes: settings?.litTypes ?? false,
39
+ undefinedIdentifiers: settings?.undefinedIdentifiers ?? 'warning',
40
+ ...(shim === undefined ? {} : { shim }),
41
+ };
42
+ const configFile = resolveProjectPath(layout, project);
43
+ if (ts === undefined || !(await exists(configFile))) {
44
+ views.push({ ...base, membership: 'unreadable', detail: 'the project file does not exist' });
45
+ continue;
46
+ }
47
+ const read = parseProject(ts, configFile);
48
+ if ('problem' in read) {
49
+ const detail = ts.flattenDiagnosticMessageText(read.problem.messageText, '\n');
50
+ views.push({ ...base, membership: 'unreadable', detail });
51
+ continue;
52
+ }
53
+ const roots = new Set(read.parsed.fileNames.map((name) => join(name)));
54
+ const membership = optsOut(read.raw)
55
+ ? 'skipped'
56
+ : roots.has(join(absolute))
57
+ ? 'root'
58
+ : 'not-root';
59
+ views.push({ ...base, membership });
60
+ }
61
+ const engineInLayout = join(layout, 'engine');
62
+ const enginePath = isInside(engineInLayout, absolute)
63
+ ? toPosixPath(relative(engineInLayout, absolute))
64
+ : undefined;
65
+ const owned = enginePath === undefined
66
+ ? { program: 'none', reason: 'the file is not in the engine', heads: [], imports: [] }
67
+ : await explainOwnedTypes(request.changes, request.engine, request.config, { projectRoot: request.projectRoot }, enginePath);
68
+ return {
69
+ file: displayPath(request, layout, absolute),
70
+ exists: await exists(absolute),
71
+ projects: views,
72
+ owned,
73
+ };
74
+ }
75
+ /**
76
+ * The `--json` document of an explanation.
77
+ *
78
+ * @param explanation - The explanation
79
+ */
80
+ export function explanationJson(explanation) {
81
+ const { owned } = explanation;
82
+ return {
83
+ file: explanation.file,
84
+ exists: explanation.exists,
85
+ projects: explanation.projects.map((view) => ({ ...view })),
86
+ owned: {
87
+ program: owned.program,
88
+ reason: owned.reason ?? null,
89
+ heads: [...owned.heads],
90
+ imports: owned.imports.map((entry) => ({ ...entry })),
91
+ shim: owned.shim ?? null,
92
+ },
93
+ };
94
+ }
95
+ /**
96
+ * Human lines for an explanation.
97
+ *
98
+ * @param explanation - The explanation
99
+ */
100
+ export function renderExplanation(explanation) {
101
+ const lines = [
102
+ `${explanation.file}${explanation.exists ? '' : ' (does not exist)'}`,
103
+ '',
104
+ 'Projects:',
105
+ ];
106
+ if (explanation.projects.length === 0)
107
+ lines.push(' none configured');
108
+ for (const view of explanation.projects) {
109
+ const detail = view.detail === undefined ? '' : ` (${view.detail})`;
110
+ lines.push(` ${view.project}: ${view.membership}${detail}; shim ${view.shim ?? 'built-in only'}, ` +
111
+ `litTypes ${String(view.litTypes)}, undefinedIdentifiers ${view.undefinedIdentifiers}`);
112
+ }
113
+ const owned = explanation.owned;
114
+ lines.push('', `Owned files: ${owned.program === 'none' ? `not checked (${owned.reason ?? ''})` : `${owned.program} program`}`);
115
+ if (owned.shim !== undefined)
116
+ lines.push(` shim ${owned.shim}`);
117
+ for (const head of owned.heads)
118
+ lines.push(` head ${head}`);
119
+ for (const entry of owned.imports) {
120
+ lines.push(` import ${entry.specifier}: ${entry.resolution}${entry.target === undefined ? '' : ` ${entry.target}`}`);
121
+ }
122
+ return lines;
123
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * Whole-project type checking: the configured jsconfig projects in the
4
+ * workspace's engine, plus the strict typing of the owned files that `lint`
5
+ * runs, as one result.
6
+ */
7
+ export { explainTypecheck, explanationJson, renderExplanation } from './explain.js';
8
+ export { renderTypecheckReport, runTypecheck, typecheckReportJson, typecheckVerdict, } from './typecheck.js';
@@ -0,0 +1,332 @@
1
+ // SPDX-License-Identifier: EUPL-1.2
2
+ /**
3
+ * `fireforge typecheck`: the configured jsconfig projects, each checked
4
+ * whole with its own compiler options and the Firefox-globals shim, plus
5
+ * the strict typing of the owned files that `lint` runs. One command, one
6
+ * result: a run is green only when both are.
7
+ *
8
+ * A project path is project-relative; one under `engine/` names the file in
9
+ * the workspace's engine, so the same configuration serves a project whose
10
+ * engine is its own `engine/` and one whose engine is a leased workspace.
11
+ */
12
+ import { dirname, isAbsolute, join, relative } from 'node:path';
13
+ import { ExitCode, FireForgeError, toError } from '../kernel/errors.js';
14
+ import { ensureDir, exists, isInside, listDir, readLink, remove, toPosixPath, writeLink, } from '../kernel/fs.js';
15
+ import { hash } from '../kernel/hash.js';
16
+ import { checkOwnedTypes, composeShim, judgeDiagnostic, loadTypeScript, withGeckoDomTypes, } from '../lint/index.js';
17
+ import { configuredPath, projectPaths } from '../project/index.js';
18
+ /** The projects of a run and the settings they share. */
19
+ export function projectsOf(request) {
20
+ const configured = request.config.typecheck;
21
+ return { projects: request.projects ?? configured?.projects ?? [], settings: configured };
22
+ }
23
+ /**
24
+ * The directory a run's projects are read in: the project's files with the
25
+ * engine at `engine/`. Project files name engine files, and engine files
26
+ * name project files, by relative paths that assume this layout (the paths
27
+ * Furnace writes into a jsconfig among them).
28
+ *
29
+ * A patch-mode project is that layout. For a workspace elsewhere, it is a
30
+ * directory of links under the project's state directory: `engine` to the
31
+ * workspace's engine, and one link per entry of the project directory.
32
+ *
33
+ * @param request - The project directory and the engine
34
+ */
35
+ export async function projectLayout(request) {
36
+ const { projectRoot, engineDir } = request;
37
+ if (join(projectRoot, 'engine') === join(engineDir))
38
+ return projectRoot;
39
+ const { stateDir } = projectPaths(projectRoot);
40
+ const view = join(stateDir, 'view', hash(engineDir).slice(0, 16));
41
+ const wanted = new Map([['engine', engineDir]]);
42
+ for (const entry of await listDir(projectRoot)) {
43
+ if (entry.name === 'engine' || join(projectRoot, entry.name) === stateDir)
44
+ continue;
45
+ wanted.set(entry.name, join(projectRoot, entry.name));
46
+ }
47
+ await ensureDir(view);
48
+ for (const entry of await listDir(view)) {
49
+ if (!wanted.has(entry.name))
50
+ await remove(join(view, entry.name));
51
+ }
52
+ for (const [name, target] of wanted) {
53
+ const link = join(view, name);
54
+ const current = await readLink(link).catch(() => undefined);
55
+ if (current !== target)
56
+ await writeLink(link, target);
57
+ }
58
+ return view;
59
+ }
60
+ /**
61
+ * The absolute path of a configured project path inside a layout:
62
+ * `engine/…` names the engine, anything else a project file.
63
+ *
64
+ * @param layout - From {@link projectLayout}
65
+ * @param path - A path as configured or typed
66
+ */
67
+ export function resolveProjectPath(layout, path) {
68
+ if (isAbsolute(path))
69
+ return path;
70
+ const named = configuredPath(path);
71
+ return named.tree === 'engine' ? join(layout, 'engine', named.path) : join(layout, named.path);
72
+ }
73
+ /**
74
+ * A file as reports name it: project-relative, `engine/…` for a file in
75
+ * the engine, or absolute outside both.
76
+ *
77
+ * @param request - The project directory and the engine
78
+ * @param layout - From {@link projectLayout}
79
+ * @param file - An absolute path
80
+ */
81
+ export function displayPath(request, layout, file) {
82
+ if (isInside(layout, file))
83
+ return toPosixPath(relative(layout, file));
84
+ if (isInside(request.engineDir, file)) {
85
+ return `engine/${toPosixPath(relative(request.engineDir, file))}`;
86
+ }
87
+ if (isInside(request.projectRoot, file))
88
+ return toPosixPath(relative(request.projectRoot, file));
89
+ return file;
90
+ }
91
+ /**
92
+ * The project shim a project uses: its `projectOverrides` entry (a path, or
93
+ * null for none) when it has one, else `extraShim`.
94
+ *
95
+ * @param settings - The `typecheck` block
96
+ * @param project - The project as configured or given
97
+ */
98
+ export function projectShim(settings, project) {
99
+ const overrides = settings?.projectOverrides ?? {};
100
+ const key = Object.keys(overrides).find((candidate) => candidate.replace(/^\.\//, '') === project.replace(/^\.\//, ''));
101
+ if (key !== undefined)
102
+ return overrides[key] ?? undefined;
103
+ return settings?.extraShim;
104
+ }
105
+ function fileIssue(path, message, severity = 'error') {
106
+ return { path, line: 1, column: 1, code: 0, severity, message };
107
+ }
108
+ function diagnosticIssue(run, diagnostic, judged, configFile) {
109
+ const file = diagnostic.file;
110
+ const position = file === undefined || diagnostic.start === undefined
111
+ ? { line: 0, character: 0 }
112
+ : file.getLineAndCharacterOfPosition(diagnostic.start);
113
+ return {
114
+ path: displayPath(run.request, run.layout, file?.fileName ?? configFile),
115
+ line: position.line + 1,
116
+ column: position.character + 1,
117
+ code: diagnostic.code,
118
+ severity: judged.severity,
119
+ message: judged.message,
120
+ };
121
+ }
122
+ /** Reads and parses a project's jsconfig, or explains why it cannot be. */
123
+ export function parseProject(ts, configFile) {
124
+ const read = ts.readConfigFile(configFile, (path) => ts.sys.readFile(path));
125
+ if (read.error !== undefined)
126
+ return { problem: read.error };
127
+ const parsed = ts.parseJsonConfigFileContent(read.config, ts.sys, dirname(configFile), undefined, configFile);
128
+ return { parsed, raw: read.config };
129
+ }
130
+ /** Whether a jsconfig turns checkJs off explicitly, which skips the project. */
131
+ export function optsOut(raw) {
132
+ if (typeof raw !== 'object' || raw === null || !('compilerOptions' in raw))
133
+ return false;
134
+ const options = raw.compilerOptions;
135
+ return (typeof options === 'object' &&
136
+ options !== null &&
137
+ 'checkJs' in options &&
138
+ options.checkJs === false);
139
+ }
140
+ function checkProject(run, configFile) {
141
+ const { ts, project } = run;
142
+ const read = parseProject(ts, configFile);
143
+ if ('problem' in read) {
144
+ const judged = {
145
+ severity: 'error',
146
+ message: ts.flattenDiagnosticMessageText(read.problem.messageText, '\n'),
147
+ };
148
+ return {
149
+ project,
150
+ filesChecked: 0,
151
+ issues: [diagnosticIssue(run, read.problem, judged, configFile)],
152
+ };
153
+ }
154
+ const { parsed, raw } = read;
155
+ const issues = [];
156
+ const shimPath = join(dirname(configFile), `.fireforge-${run.shim.fileName}`).replaceAll('\\', '/');
157
+ const keep = (diagnostic, isResolved) => {
158
+ if (diagnostic.file?.fileName === shimPath)
159
+ return;
160
+ const judged = judgeDiagnostic(ts, diagnostic, {
161
+ undefinedIdentifiers: run.undefinedIdentifiers,
162
+ isResolved,
163
+ });
164
+ if (judged !== undefined)
165
+ issues.push(diagnosticIssue(run, diagnostic, judged, configFile));
166
+ };
167
+ for (const diagnostic of parsed.errors)
168
+ keep(diagnostic, () => false);
169
+ if (optsOut(raw)) {
170
+ issues.push(fileIssue(project, 'The project sets "checkJs": false, so it was skipped.', 'warning'));
171
+ return { project, filesChecked: parsed.fileNames.length, issues };
172
+ }
173
+ const options = {
174
+ ...parsed.options,
175
+ noEmit: true,
176
+ allowJs: parsed.options.allowJs ?? true,
177
+ checkJs: parsed.options.checkJs ?? true,
178
+ incremental: false,
179
+ };
180
+ delete options.tsBuildInfoFile;
181
+ const base = withGeckoDomTypes(ts, ts.createCompilerHost(options));
182
+ const host = {
183
+ ...base,
184
+ getSourceFile: (fileName, languageVersion, onError, shouldCreate) => fileName === shimPath
185
+ ? ts.createSourceFile(fileName, run.shim.source, languageVersion, true)
186
+ : base.getSourceFile(fileName, languageVersion, onError, shouldCreate),
187
+ fileExists: (fileName) => fileName === shimPath || base.fileExists(fileName),
188
+ readFile: (fileName) => (fileName === shimPath ? run.shim.source : base.readFile(fileName)),
189
+ // Files keep the names the layout gives them, links included.
190
+ realpath: (fileName) => fileName,
191
+ };
192
+ const program = ts.createProgram([...parsed.fileNames, shimPath], options, host);
193
+ const resolved = new Map();
194
+ const isResolved = (file, specifier) => {
195
+ const key = `${file}\0${specifier}`;
196
+ let hit = resolved.get(key);
197
+ if (hit === undefined) {
198
+ hit = ts.resolveModuleName(specifier, file, options, host).resolvedModule !== undefined;
199
+ resolved.set(key, hit);
200
+ }
201
+ return hit;
202
+ };
203
+ for (const diagnostic of [
204
+ ...program.getOptionsDiagnostics(),
205
+ ...program.getGlobalDiagnostics(),
206
+ ...program.getSyntacticDiagnostics(),
207
+ ...program.getSemanticDiagnostics(),
208
+ ]) {
209
+ keep(diagnostic, isResolved);
210
+ }
211
+ return { project, filesChecked: parsed.fileNames.length, issues };
212
+ }
213
+ /**
214
+ * Runs the configured projects and the strict pass over the owned files.
215
+ *
216
+ * @param request - See {@link TypecheckRequest}
217
+ * @throws FireForgeError `typecheck-unconfigured` when there is nothing to
218
+ * check, `typescript-missing` when the compiler API is not installed
219
+ */
220
+ export async function runTypecheck(request) {
221
+ const { projects, settings } = projectsOf(request);
222
+ if (projects.length === 0 && !request.config.patchLint.checkJs) {
223
+ throw new FireForgeError('typecheck-unconfigured', 'There is nothing to type-check.', {
224
+ exitCode: ExitCode.CONFIG_ERROR,
225
+ hint: 'Configure "typecheck.projects" or "patchLint.checkJs" in fireforge.json, or pass --project.',
226
+ });
227
+ }
228
+ const results = [];
229
+ if (projects.length > 0) {
230
+ const ts = await loadTypeScript();
231
+ const layout = await projectLayout(request);
232
+ for (const project of projects) {
233
+ const configFile = resolveProjectPath(layout, project);
234
+ if (!(await exists(configFile))) {
235
+ results.push({
236
+ project,
237
+ filesChecked: 0,
238
+ issues: [fileIssue(project, `The project file ${project} does not exist.`)],
239
+ });
240
+ continue;
241
+ }
242
+ let shim;
243
+ try {
244
+ shim = await composeShim(request.projectRoot, projectShim(settings, project), {
245
+ litTypes: settings?.litTypes ?? false,
246
+ });
247
+ }
248
+ catch (error) {
249
+ results.push({
250
+ project,
251
+ filesChecked: 0,
252
+ issues: [fileIssue(project, toError(error).message)],
253
+ });
254
+ continue;
255
+ }
256
+ results.push(checkProject({
257
+ ts,
258
+ request,
259
+ layout,
260
+ project,
261
+ shim,
262
+ undefinedIdentifiers: settings?.undefinedIdentifiers ?? 'warning',
263
+ }, configFile));
264
+ }
265
+ }
266
+ const owned = await checkOwnedTypes(request.changes, request.engine, request.config, {
267
+ projectRoot: request.projectRoot,
268
+ ...(request.cacheDir === undefined ? {} : { cacheDir: request.cacheDir }),
269
+ });
270
+ return { projects: results, owned };
271
+ }
272
+ /** Counts and the judgement of a report: any error fails, warnings do not. */
273
+ export function typecheckVerdict(report) {
274
+ const severities = [
275
+ ...report.projects.flatMap((result) => result.issues.map((issue) => issue.severity)),
276
+ ...report.owned.map((finding) => finding.severity),
277
+ ];
278
+ const errors = severities.filter((severity) => severity === 'error').length;
279
+ return {
280
+ pass: errors === 0,
281
+ errors,
282
+ warnings: severities.filter((severity) => severity === 'warning').length,
283
+ };
284
+ }
285
+ /**
286
+ * Human lines: `[<project>] <path>:<line>:<column> TS<code> <message>`, as
287
+ * `tsc --pretty false` writes them, then the strict pass, then a summary.
288
+ *
289
+ * @param report - The report
290
+ */
291
+ export function renderTypecheckReport(report) {
292
+ const lines = [];
293
+ for (const result of report.projects) {
294
+ for (const issue of result.issues) {
295
+ const code = issue.code > 0 ? ` TS${issue.code}` : '';
296
+ lines.push(`[${result.project}] ${issue.path}:${issue.line}:${issue.column}${code} ${issue.severity} ${issue.message}`);
297
+ }
298
+ }
299
+ for (const finding of report.owned) {
300
+ lines.push(`[owned files] engine/${finding.path ?? ''}:${finding.line ?? 1} ${finding.severity} ${finding.message}`);
301
+ }
302
+ const verdict = typecheckVerdict(report);
303
+ if (lines.length > 0)
304
+ lines.push('');
305
+ lines.push(`Typecheck: ${verdict.errors} error(s), ${verdict.warnings} warning(s) across ${report.projects.length} project(s) and the owned files`);
306
+ return lines;
307
+ }
308
+ /**
309
+ * The `--json` document of a run.
310
+ *
311
+ * @param report - The report
312
+ */
313
+ export function typecheckReportJson(report) {
314
+ const verdict = typecheckVerdict(report);
315
+ return {
316
+ pass: verdict.pass,
317
+ errors: verdict.errors,
318
+ warnings: verdict.warnings,
319
+ projects: report.projects.map((result) => ({
320
+ project: result.project,
321
+ filesChecked: result.filesChecked,
322
+ issues: result.issues.map((issue) => ({ ...issue })),
323
+ })),
324
+ owned: report.owned.map((finding) => ({
325
+ path: finding.path ?? null,
326
+ line: finding.line ?? null,
327
+ severity: finding.severity,
328
+ message: finding.message,
329
+ group: finding.group ?? null,
330
+ })),
331
+ };
332
+ }