@svp-labs/talos 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (876) hide show
  1. package/ENGINEERING.md +408 -0
  2. package/README.md +49 -0
  3. package/assets/claude/kit-block.md +58 -0
  4. package/assets/codeowners +2 -0
  5. package/assets/dependabot/update.yml +7 -0
  6. package/assets/hooks/pre-push +76 -0
  7. package/assets/issue-forms/bug.yml +44 -0
  8. package/assets/issue-forms/chore.yml +32 -0
  9. package/assets/issue-forms/config.yml +2 -0
  10. package/assets/issue-forms/dead-code.yml +32 -0
  11. package/assets/issue-forms/debt.yml +32 -0
  12. package/assets/issue-forms/epic.yml +34 -0
  13. package/assets/issue-forms/feature.yml +40 -0
  14. package/assets/issue-forms/refactor.yml +32 -0
  15. package/assets/issue-forms/spike.yml +32 -0
  16. package/assets/labels.yml +101 -0
  17. package/assets/patches/@stryker-mutator__vitest-runner@10.0.0.patch +14 -0
  18. package/assets/prompts/review.md +66 -0
  19. package/assets/pull_request_template.md +14 -0
  20. package/assets/rulesets/channel.json +28 -0
  21. package/assets/rulesets/channels-branch.json +8 -0
  22. package/assets/rulesets/merge-queue.json +34 -0
  23. package/assets/rulesets/owner-review.json +21 -0
  24. package/assets/rulesets/release-tags.json +8 -0
  25. package/assets/rulesets/self-test.json +21 -0
  26. package/assets/workflows/talos.yml +423 -0
  27. package/bootstrap/find-pin.sh +76 -0
  28. package/bootstrap/launch.ts +347 -0
  29. package/bootstrap/php.sh +55 -0
  30. package/dist/adopt/assets.js +40 -0
  31. package/dist/adopt/assets.js.map +1 -0
  32. package/dist/adopt/config.js +68 -0
  33. package/dist/adopt/config.js.map +1 -0
  34. package/dist/adopt/dependabot.js +176 -0
  35. package/dist/adopt/dependabot.js.map +1 -0
  36. package/dist/adopt/detect.js +148 -0
  37. package/dist/adopt/detect.js.map +1 -0
  38. package/dist/adopt/dev-deps.js +179 -0
  39. package/dist/adopt/dev-deps.js.map +1 -0
  40. package/dist/adopt/draft.js +43 -0
  41. package/dist/adopt/draft.js.map +1 -0
  42. package/dist/adopt/hooks.js +101 -0
  43. package/dist/adopt/hooks.js.map +1 -0
  44. package/dist/adopt/json-text.js +45 -0
  45. package/dist/adopt/json-text.js.map +1 -0
  46. package/dist/adopt/kit.js +68 -0
  47. package/dist/adopt/kit.js.map +1 -0
  48. package/dist/adopt/languages.js +127 -0
  49. package/dist/adopt/languages.js.map +1 -0
  50. package/dist/adopt/local.js +100 -0
  51. package/dist/adopt/local.js.map +1 -0
  52. package/dist/adopt/php.js +67 -0
  53. package/dist/adopt/php.js.map +1 -0
  54. package/dist/adopt/plan.js +114 -0
  55. package/dist/adopt/plan.js.map +1 -0
  56. package/dist/adopt/python.js +200 -0
  57. package/dist/adopt/python.js.map +1 -0
  58. package/dist/adopt/remote.js +110 -0
  59. package/dist/adopt/remote.js.map +1 -0
  60. package/dist/adopt/rust.js +250 -0
  61. package/dist/adopt/rust.js.map +1 -0
  62. package/dist/adopt/scaffold.js +76 -0
  63. package/dist/adopt/scaffold.js.map +1 -0
  64. package/dist/adopt/security.js +153 -0
  65. package/dist/adopt/security.js.map +1 -0
  66. package/dist/adopt/supply.js +153 -0
  67. package/dist/adopt/supply.js.map +1 -0
  68. package/dist/adopt/talos-yml.js +95 -0
  69. package/dist/adopt/talos-yml.js.map +1 -0
  70. package/dist/adopt/texts.js +121 -0
  71. package/dist/adopt/texts.js.map +1 -0
  72. package/dist/adopt/toml-text.js +180 -0
  73. package/dist/adopt/toml-text.js.map +1 -0
  74. package/dist/adopt/tool-pins.js +133 -0
  75. package/dist/adopt/tool-pins.js.map +1 -0
  76. package/dist/adopt/tsconfig.js +80 -0
  77. package/dist/adopt/tsconfig.js.map +1 -0
  78. package/dist/bin/talos.js +7 -0
  79. package/dist/bin/talos.js.map +1 -0
  80. package/dist/central/channels-file.js +82 -0
  81. package/dist/central/channels-file.js.map +1 -0
  82. package/dist/central/channels-job.js +112 -0
  83. package/dist/central/channels-job.js.map +1 -0
  84. package/dist/central/channels.js +204 -0
  85. package/dist/central/channels.js.map +1 -0
  86. package/dist/central/drift-job.js +132 -0
  87. package/dist/central/drift-job.js.map +1 -0
  88. package/dist/central/drift.js +195 -0
  89. package/dist/central/drift.js.map +1 -0
  90. package/dist/central/gate-runs.js +48 -0
  91. package/dist/central/gate-runs.js.map +1 -0
  92. package/dist/central/org-rulesets.js +129 -0
  93. package/dist/central/org-rulesets.js.map +1 -0
  94. package/dist/central/pick.js +67 -0
  95. package/dist/central/pick.js.map +1 -0
  96. package/dist/central/privacy.js +158 -0
  97. package/dist/central/privacy.js.map +1 -0
  98. package/dist/central/releases.js +130 -0
  99. package/dist/central/releases.js.map +1 -0
  100. package/dist/central/repos.js +36 -0
  101. package/dist/central/repos.js.map +1 -0
  102. package/dist/central/runtime-port.js +49 -0
  103. package/dist/central/runtime-port.js.map +1 -0
  104. package/dist/central/sweep-job.js +62 -0
  105. package/dist/central/sweep-job.js.map +1 -0
  106. package/dist/central/sweep.js +182 -0
  107. package/dist/central/sweep.js.map +1 -0
  108. package/dist/checks/common/code-files.js +59 -0
  109. package/dist/checks/common/code-files.js.map +1 -0
  110. package/dist/checks/common/custom.js +123 -0
  111. package/dist/checks/common/custom.js.map +1 -0
  112. package/dist/checks/common/duplication.js +96 -0
  113. package/dist/checks/common/duplication.js.map +1 -0
  114. package/dist/checks/common/index.js +14 -0
  115. package/dist/checks/common/index.js.map +1 -0
  116. package/dist/checks/common/jscpd-config.js +50 -0
  117. package/dist/checks/common/jscpd-config.js.map +1 -0
  118. package/dist/checks/common/jscpd-report.js +62 -0
  119. package/dist/checks/common/jscpd-report.js.map +1 -0
  120. package/dist/checks/common/suppression-rules.js +271 -0
  121. package/dist/checks/common/suppression-rules.js.map +1 -0
  122. package/dist/checks/common/suppression-scan.js +103 -0
  123. package/dist/checks/common/suppression-scan.js.map +1 -0
  124. package/dist/checks/common/suppressions.js +26 -0
  125. package/dist/checks/common/suppressions.js.map +1 -0
  126. package/dist/checks/common/texts.js +34 -0
  127. package/dist/checks/common/texts.js.map +1 -0
  128. package/dist/checks/docs/claude-md.js +71 -0
  129. package/dist/checks/docs/claude-md.js.map +1 -0
  130. package/dist/checks/docs/comments.js +31 -0
  131. package/dist/checks/docs/comments.js.map +1 -0
  132. package/dist/checks/docs/cspell.js +138 -0
  133. package/dist/checks/docs/cspell.js.map +1 -0
  134. package/dist/checks/docs/decisions.js +30 -0
  135. package/dist/checks/docs/decisions.js.map +1 -0
  136. package/dist/checks/docs/files.js +64 -0
  137. package/dist/checks/docs/files.js.map +1 -0
  138. package/dist/checks/docs/glossary.js +99 -0
  139. package/dist/checks/docs/glossary.js.map +1 -0
  140. package/dist/checks/docs/index.js +25 -0
  141. package/dist/checks/docs/index.js.map +1 -0
  142. package/dist/checks/docs/markdown.js +39 -0
  143. package/dist/checks/docs/markdown.js.map +1 -0
  144. package/dist/checks/docs/markdownlint.js +86 -0
  145. package/dist/checks/docs/markdownlint.js.map +1 -0
  146. package/dist/checks/docs/references.js +82 -0
  147. package/dist/checks/docs/references.js.map +1 -0
  148. package/dist/checks/docs/spelling.js +83 -0
  149. package/dist/checks/docs/spelling.js.map +1 -0
  150. package/dist/checks/infra/actionlint.js +95 -0
  151. package/dist/checks/infra/actionlint.js.map +1 -0
  152. package/dist/checks/infra/configs.js +52 -0
  153. package/dist/checks/infra/configs.js.map +1 -0
  154. package/dist/checks/infra/dockerfile.js +69 -0
  155. package/dist/checks/infra/dockerfile.js.map +1 -0
  156. package/dist/checks/infra/files.js +123 -0
  157. package/dist/checks/infra/files.js.map +1 -0
  158. package/dist/checks/infra/index.js +59 -0
  159. package/dist/checks/infra/index.js.map +1 -0
  160. package/dist/checks/infra/powershell.js +128 -0
  161. package/dist/checks/infra/powershell.js.map +1 -0
  162. package/dist/checks/infra/report.js +46 -0
  163. package/dist/checks/infra/report.js.map +1 -0
  164. package/dist/checks/infra/shell.js +64 -0
  165. package/dist/checks/infra/shell.js.map +1 -0
  166. package/dist/checks/infra/zizmor.js +93 -0
  167. package/dist/checks/infra/zizmor.js.map +1 -0
  168. package/dist/checks/process/commits.js +74 -0
  169. package/dist/checks/process/commits.js.map +1 -0
  170. package/dist/checks/runtime/assess.js +140 -0
  171. package/dist/checks/runtime/assess.js.map +1 -0
  172. package/dist/checks/runtime/check.js +67 -0
  173. package/dist/checks/runtime/check.js.map +1 -0
  174. package/dist/checks/runtime/declaration.js +33 -0
  175. package/dist/checks/runtime/declaration.js.map +1 -0
  176. package/dist/checks/runtime/declarations.js +38 -0
  177. package/dist/checks/runtime/declarations.js.map +1 -0
  178. package/dist/checks/runtime/dockerfile.js +228 -0
  179. package/dist/checks/runtime/dockerfile.js.map +1 -0
  180. package/dist/checks/runtime/feeds.js +120 -0
  181. package/dist/checks/runtime/feeds.js.map +1 -0
  182. package/dist/checks/runtime/fetchers.js +72 -0
  183. package/dist/checks/runtime/fetchers.js.map +1 -0
  184. package/dist/checks/runtime/index.js +7 -0
  185. package/dist/checks/runtime/index.js.map +1 -0
  186. package/dist/checks/runtime/runtimes.js +30 -0
  187. package/dist/checks/runtime/runtimes.js.map +1 -0
  188. package/dist/checks/runtime/tools-lock.js +40 -0
  189. package/dist/checks/runtime/tools-lock.js.map +1 -0
  190. package/dist/checks/runtime/version-files.js +95 -0
  191. package/dist/checks/runtime/version-files.js.map +1 -0
  192. package/dist/checks/runtime/versions.js +51 -0
  193. package/dist/checks/runtime/versions.js.map +1 -0
  194. package/dist/checks/security/dependencies.js +70 -0
  195. package/dist/checks/security/dependencies.js.map +1 -0
  196. package/dist/checks/security/gitleaks-config.js +114 -0
  197. package/dist/checks/security/gitleaks-config.js.map +1 -0
  198. package/dist/checks/security/gitleaks.js +93 -0
  199. package/dist/checks/security/gitleaks.js.map +1 -0
  200. package/dist/checks/security/index.js +12 -0
  201. package/dist/checks/security/index.js.map +1 -0
  202. package/dist/checks/security/licences.js +50 -0
  203. package/dist/checks/security/licences.js.map +1 -0
  204. package/dist/checks/security/osv-config.js +56 -0
  205. package/dist/checks/security/osv-config.js.map +1 -0
  206. package/dist/checks/security/osv.js +146 -0
  207. package/dist/checks/security/osv.js.map +1 -0
  208. package/dist/checks/security/secrets.js +35 -0
  209. package/dist/checks/security/secrets.js.map +1 -0
  210. package/dist/checks/security/semgrep.js +184 -0
  211. package/dist/checks/security/semgrep.js.map +1 -0
  212. package/dist/checks/security/strength.js +80 -0
  213. package/dist/checks/security/strength.js.map +1 -0
  214. package/dist/checks/supply/advisories.js +66 -0
  215. package/dist/checks/supply/advisories.js.map +1 -0
  216. package/dist/checks/supply/base.js +37 -0
  217. package/dist/checks/supply/base.js.map +1 -0
  218. package/dist/checks/supply/dates.js +26 -0
  219. package/dist/checks/supply/dates.js.map +1 -0
  220. package/dist/checks/supply/dependabot.js +87 -0
  221. package/dist/checks/supply/dependabot.js.map +1 -0
  222. package/dist/checks/supply/deps.js +8 -0
  223. package/dist/checks/supply/deps.js.map +1 -0
  224. package/dist/checks/supply/exotic.js +36 -0
  225. package/dist/checks/supply/exotic.js.map +1 -0
  226. package/dist/checks/supply/expired.js +72 -0
  227. package/dist/checks/supply/expired.js.map +1 -0
  228. package/dist/checks/supply/fetcher.js +52 -0
  229. package/dist/checks/supply/fetcher.js.map +1 -0
  230. package/dist/checks/supply/index.js +21 -0
  231. package/dist/checks/supply/index.js.map +1 -0
  232. package/dist/checks/supply/judged.js +55 -0
  233. package/dist/checks/supply/judged.js.map +1 -0
  234. package/dist/checks/supply/lockfiles/cargo.js +34 -0
  235. package/dist/checks/supply/lockfiles/cargo.js.map +1 -0
  236. package/dist/checks/supply/lockfiles/composer.js +41 -0
  237. package/dist/checks/supply/lockfiles/composer.js.map +1 -0
  238. package/dist/checks/supply/lockfiles/index.js +51 -0
  239. package/dist/checks/supply/lockfiles/index.js.map +1 -0
  240. package/dist/checks/supply/lockfiles/locked.js +69 -0
  241. package/dist/checks/supply/lockfiles/locked.js.map +1 -0
  242. package/dist/checks/supply/lockfiles/npm.js +68 -0
  243. package/dist/checks/supply/lockfiles/npm.js.map +1 -0
  244. package/dist/checks/supply/lockfiles/pnpm.js +47 -0
  245. package/dist/checks/supply/lockfiles/pnpm.js.map +1 -0
  246. package/dist/checks/supply/lockfiles/python.js +77 -0
  247. package/dist/checks/supply/lockfiles/python.js.map +1 -0
  248. package/dist/checks/supply/lockfiles/yarn.js +77 -0
  249. package/dist/checks/supply/lockfiles/yarn.js.map +1 -0
  250. package/dist/checks/supply/pnpm-settings.js +95 -0
  251. package/dist/checks/supply/pnpm-settings.js.map +1 -0
  252. package/dist/checks/supply/provenance.js +82 -0
  253. package/dist/checks/supply/provenance.js.map +1 -0
  254. package/dist/checks/supply/registries.js +109 -0
  255. package/dist/checks/supply/registries.js.map +1 -0
  256. package/dist/checks/supply/release-age.js +63 -0
  257. package/dist/checks/supply/release-age.js.map +1 -0
  258. package/dist/checks/supply/settings.js +129 -0
  259. package/dist/checks/supply/settings.js.map +1 -0
  260. package/dist/cli/adopt.js +269 -0
  261. package/dist/cli/adopt.js.map +1 -0
  262. package/dist/cli/central.js +201 -0
  263. package/dist/cli/central.js.map +1 -0
  264. package/dist/cli/check.js +121 -0
  265. package/dist/cli/check.js.map +1 -0
  266. package/dist/cli/configs.js +65 -0
  267. package/dist/cli/configs.js.map +1 -0
  268. package/dist/cli/debt.js +75 -0
  269. package/dist/cli/debt.js.map +1 -0
  270. package/dist/cli/doctor.js +38 -0
  271. package/dist/cli/doctor.js.map +1 -0
  272. package/dist/cli/findings.js +32 -0
  273. package/dist/cli/findings.js.map +1 -0
  274. package/dist/cli/govern.js +98 -0
  275. package/dist/cli/govern.js.map +1 -0
  276. package/dist/cli/io.js +29 -0
  277. package/dist/cli/io.js.map +1 -0
  278. package/dist/cli/job.js +173 -0
  279. package/dist/cli/job.js.map +1 -0
  280. package/dist/cli/main.js +109 -0
  281. package/dist/cli/main.js.map +1 -0
  282. package/dist/cli/new.js +73 -0
  283. package/dist/cli/new.js.map +1 -0
  284. package/dist/cli/org.js +88 -0
  285. package/dist/cli/org.js.map +1 -0
  286. package/dist/cli/plan.js +49 -0
  287. package/dist/cli/plan.js.map +1 -0
  288. package/dist/cli/run.js +78 -0
  289. package/dist/cli/run.js.map +1 -0
  290. package/dist/cli/self-test.js +127 -0
  291. package/dist/cli/self-test.js.map +1 -0
  292. package/dist/cli/shrinkwrap.js +20 -0
  293. package/dist/cli/shrinkwrap.js.map +1 -0
  294. package/dist/cli/status.js +39 -0
  295. package/dist/cli/status.js.map +1 -0
  296. package/dist/cli/ticket.js +180 -0
  297. package/dist/cli/ticket.js.map +1 -0
  298. package/dist/cli/verdict.js +57 -0
  299. package/dist/cli/verdict.js.map +1 -0
  300. package/dist/cli/version.js +29 -0
  301. package/dist/cli/version.js.map +1 -0
  302. package/dist/cli/why.js +96 -0
  303. package/dist/cli/why.js.map +1 -0
  304. package/dist/config/load.js +41 -0
  305. package/dist/config/load.js.map +1 -0
  306. package/dist/config/schema.js +75 -0
  307. package/dist/config/schema.js.map +1 -0
  308. package/dist/configs/drift.js +112 -0
  309. package/dist/configs/drift.js.map +1 -0
  310. package/dist/configs/files.js +35 -0
  311. package/dist/configs/files.js.map +1 -0
  312. package/dist/configs/header.js +31 -0
  313. package/dist/configs/header.js.map +1 -0
  314. package/dist/configs/index.js +8 -0
  315. package/dist/configs/index.js.map +1 -0
  316. package/dist/configs/json.js +26 -0
  317. package/dist/configs/json.js.map +1 -0
  318. package/dist/configs/packs.js +30 -0
  319. package/dist/configs/packs.js.map +1 -0
  320. package/dist/core/check.js +9 -0
  321. package/dist/core/check.js.map +1 -0
  322. package/dist/core/compare.js +46 -0
  323. package/dist/core/compare.js.map +1 -0
  324. package/dist/core/component.js +57 -0
  325. package/dist/core/component.js.map +1 -0
  326. package/dist/core/finding.js +2 -0
  327. package/dist/core/finding.js.map +1 -0
  328. package/dist/core/fingerprint.js +29 -0
  329. package/dist/core/fingerprint.js.map +1 -0
  330. package/dist/core/literal.js +85 -0
  331. package/dist/core/literal.js.map +1 -0
  332. package/dist/core/log.js +20 -0
  333. package/dist/core/log.js.map +1 -0
  334. package/dist/core/pack.js +2 -0
  335. package/dist/core/pack.js.map +1 -0
  336. package/dist/core/pool.js +16 -0
  337. package/dist/core/pool.js.map +1 -0
  338. package/dist/core/registry.js +28 -0
  339. package/dist/core/registry.js.map +1 -0
  340. package/dist/core/result.js +45 -0
  341. package/dist/core/result.js.map +1 -0
  342. package/dist/core/xml.js +63 -0
  343. package/dist/core/xml.js.map +1 -0
  344. package/dist/docs/claude.js +79 -0
  345. package/dist/docs/claude.js.map +1 -0
  346. package/dist/docs/comments/c-family.js +180 -0
  347. package/dist/docs/comments/c-family.js.map +1 -0
  348. package/dist/docs/comments/index.js +41 -0
  349. package/dist/docs/comments/index.js.map +1 -0
  350. package/dist/docs/comments/rules.js +174 -0
  351. package/dist/docs/comments/rules.js.map +1 -0
  352. package/dist/docs/comments/scan.js +138 -0
  353. package/dist/docs/comments/scan.js.map +1 -0
  354. package/dist/docs/comments/script.js +135 -0
  355. package/dist/docs/comments/script.js.map +1 -0
  356. package/dist/docs/decisions.js +168 -0
  357. package/dist/docs/decisions.js.map +1 -0
  358. package/dist/docs/glossary.js +81 -0
  359. package/dist/docs/glossary.js.map +1 -0
  360. package/dist/docs/links.js +119 -0
  361. package/dist/docs/links.js.map +1 -0
  362. package/dist/docs/markdown.js +176 -0
  363. package/dist/docs/markdown.js.map +1 -0
  364. package/dist/engine/gate.js +144 -0
  365. package/dist/engine/gate.js.map +1 -0
  366. package/dist/engine/local.js +90 -0
  367. package/dist/engine/local.js.map +1 -0
  368. package/dist/engine/plan.js +165 -0
  369. package/dist/engine/plan.js.map +1 -0
  370. package/dist/engine/prepare.js +140 -0
  371. package/dist/engine/prepare.js.map +1 -0
  372. package/dist/engine/report.js +71 -0
  373. package/dist/engine/report.js.map +1 -0
  374. package/dist/engine/run.js +142 -0
  375. package/dist/engine/run.js.map +1 -0
  376. package/dist/engine/session.js +10 -0
  377. package/dist/engine/session.js.map +1 -0
  378. package/dist/engine/verdict-caps.js +30 -0
  379. package/dist/engine/verdict-caps.js.map +1 -0
  380. package/dist/engine/verdict.js +49 -0
  381. package/dist/engine/verdict.js.map +1 -0
  382. package/dist/exec/exec.js +136 -0
  383. package/dist/exec/exec.js.map +1 -0
  384. package/dist/github/actions.js +62 -0
  385. package/dist/github/actions.js.map +1 -0
  386. package/dist/github/api.js +138 -0
  387. package/dist/github/api.js.map +1 -0
  388. package/dist/github/artifacts.js +203 -0
  389. package/dist/github/artifacts.js.map +1 -0
  390. package/dist/github/checks.js +86 -0
  391. package/dist/github/checks.js.map +1 -0
  392. package/dist/github/contents.js +38 -0
  393. package/dist/github/contents.js.map +1 -0
  394. package/dist/github/gate-runs.js +59 -0
  395. package/dist/github/gate-runs.js.map +1 -0
  396. package/dist/github/identities.js +29 -0
  397. package/dist/github/identities.js.map +1 -0
  398. package/dist/github/org-variables.js +41 -0
  399. package/dist/github/org-variables.js.map +1 -0
  400. package/dist/github/pulls.js +32 -0
  401. package/dist/github/pulls.js.map +1 -0
  402. package/dist/github/remote.js +26 -0
  403. package/dist/github/remote.js.map +1 -0
  404. package/dist/github/repos.js +64 -0
  405. package/dist/github/repos.js.map +1 -0
  406. package/dist/github/rulesets.js +44 -0
  407. package/dist/github/rulesets.js.map +1 -0
  408. package/dist/govern/commit.js +31 -0
  409. package/dist/govern/commit.js.map +1 -0
  410. package/dist/govern/compare.js +52 -0
  411. package/dist/govern/compare.js.map +1 -0
  412. package/dist/govern/create.js +97 -0
  413. package/dist/govern/create.js.map +1 -0
  414. package/dist/govern/govern.js +77 -0
  415. package/dist/govern/govern.js.map +1 -0
  416. package/dist/govern/installations.js +64 -0
  417. package/dist/govern/installations.js.map +1 -0
  418. package/dist/govern/org.js +170 -0
  419. package/dist/govern/org.js.map +1 -0
  420. package/dist/govern/output.js +32 -0
  421. package/dist/govern/output.js.map +1 -0
  422. package/dist/govern/plan.js +166 -0
  423. package/dist/govern/plan.js.map +1 -0
  424. package/dist/govern/rulesets-api.js +39 -0
  425. package/dist/govern/rulesets-api.js.map +1 -0
  426. package/dist/govern/state.js +108 -0
  427. package/dist/govern/state.js.map +1 -0
  428. package/dist/govern/steps.js +143 -0
  429. package/dist/govern/steps.js.map +1 -0
  430. package/dist/govern/templates.js +140 -0
  431. package/dist/govern/templates.js.map +1 -0
  432. package/dist/jobs/act.js +60 -0
  433. package/dist/jobs/act.js.map +1 -0
  434. package/dist/jobs/analyze.js +68 -0
  435. package/dist/jobs/analyze.js.map +1 -0
  436. package/dist/jobs/artifacts.js +35 -0
  437. package/dist/jobs/artifacts.js.map +1 -0
  438. package/dist/jobs/context.js +2 -0
  439. package/dist/jobs/context.js.map +1 -0
  440. package/dist/jobs/debt-issues.js +129 -0
  441. package/dist/jobs/debt-issues.js.map +1 -0
  442. package/dist/jobs/debt-report.js +125 -0
  443. package/dist/jobs/debt-report.js.map +1 -0
  444. package/dist/jobs/dispatch.js +103 -0
  445. package/dist/jobs/dispatch.js.map +1 -0
  446. package/dist/jobs/flaky.js +151 -0
  447. package/dist/jobs/flaky.js.map +1 -0
  448. package/dist/jobs/label-sync.js +67 -0
  449. package/dist/jobs/label-sync.js.map +1 -0
  450. package/dist/jobs/payloads.js +62 -0
  451. package/dist/jobs/payloads.js.map +1 -0
  452. package/dist/jobs/readiness-job.js +91 -0
  453. package/dist/jobs/readiness-job.js.map +1 -0
  454. package/dist/jobs/readiness.js +154 -0
  455. package/dist/jobs/readiness.js.map +1 -0
  456. package/dist/jobs/schedule.js +19 -0
  457. package/dist/jobs/schedule.js.map +1 -0
  458. package/dist/jobs/sync-chore.js +77 -0
  459. package/dist/jobs/sync-chore.js.map +1 -0
  460. package/dist/jobs/talos-issues.js +79 -0
  461. package/dist/jobs/talos-issues.js.map +1 -0
  462. package/dist/langs/lua/busted.js +124 -0
  463. package/dist/langs/lua/busted.js.map +1 -0
  464. package/dist/langs/lua/configs.js +173 -0
  465. package/dist/langs/lua/configs.js.map +1 -0
  466. package/dist/langs/lua/deadcode.js +11 -0
  467. package/dist/langs/lua/deadcode.js.map +1 -0
  468. package/dist/langs/lua/devtools.js +64 -0
  469. package/dist/langs/lua/devtools.js.map +1 -0
  470. package/dist/langs/lua/format.js +41 -0
  471. package/dist/langs/lua/format.js.map +1 -0
  472. package/dist/langs/lua/index.js +86 -0
  473. package/dist/langs/lua/index.js.map +1 -0
  474. package/dist/langs/lua/install.js +80 -0
  475. package/dist/langs/lua/install.js.map +1 -0
  476. package/dist/langs/lua/lint.js +46 -0
  477. package/dist/langs/lua/lint.js.map +1 -0
  478. package/dist/langs/lua/luacheck-config.js +151 -0
  479. package/dist/langs/lua/luacheck-config.js.map +1 -0
  480. package/dist/langs/lua/luacheck.js +102 -0
  481. package/dist/langs/lua/luacheck.js.map +1 -0
  482. package/dist/langs/lua/luals.js +66 -0
  483. package/dist/langs/lua/luals.js.map +1 -0
  484. package/dist/langs/lua/paths.js +94 -0
  485. package/dist/langs/lua/paths.js.map +1 -0
  486. package/dist/langs/lua/run.js +63 -0
  487. package/dist/langs/lua/run.js.map +1 -0
  488. package/dist/langs/lua/scripts/json.js +39 -0
  489. package/dist/langs/lua/scripts/json.js.map +1 -0
  490. package/dist/langs/lua/scripts/lcov.js +77 -0
  491. package/dist/langs/lua/scripts/lcov.js.map +1 -0
  492. package/dist/langs/lua/scripts/luacheck.js +97 -0
  493. package/dist/langs/lua/scripts/luacheck.js.map +1 -0
  494. package/dist/langs/lua/scripts/shape.js +197 -0
  495. package/dist/langs/lua/scripts/shape.js.map +1 -0
  496. package/dist/langs/lua/shape.js +142 -0
  497. package/dist/langs/lua/shape.js.map +1 -0
  498. package/dist/langs/lua/strength.js +38 -0
  499. package/dist/langs/lua/strength.js.map +1 -0
  500. package/dist/langs/lua/stylua.js +43 -0
  501. package/dist/langs/lua/stylua.js.map +1 -0
  502. package/dist/langs/lua/toolchain.js +49 -0
  503. package/dist/langs/lua/toolchain.js.map +1 -0
  504. package/dist/langs/lua/types.js +41 -0
  505. package/dist/langs/lua/types.js.map +1 -0
  506. package/dist/langs/php/analysis.js +22 -0
  507. package/dist/langs/php/analysis.js.map +1 -0
  508. package/dist/langs/php/composer.js +88 -0
  509. package/dist/langs/php/composer.js.map +1 -0
  510. package/dist/langs/php/configs.js +54 -0
  511. package/dist/langs/php/configs.js.map +1 -0
  512. package/dist/langs/php/deptrac-config.js +118 -0
  513. package/dist/langs/php/deptrac-config.js.map +1 -0
  514. package/dist/langs/php/deptrac.js +117 -0
  515. package/dist/langs/php/deptrac.js.map +1 -0
  516. package/dist/langs/php/format.js +94 -0
  517. package/dist/langs/php/format.js.map +1 -0
  518. package/dist/langs/php/index.js +81 -0
  519. package/dist/langs/php/index.js.map +1 -0
  520. package/dist/langs/php/infection.js +151 -0
  521. package/dist/langs/php/infection.js.map +1 -0
  522. package/dist/langs/php/install.js +52 -0
  523. package/dist/langs/php/install.js.map +1 -0
  524. package/dist/langs/php/neon.js +41 -0
  525. package/dist/langs/php/neon.js.map +1 -0
  526. package/dist/langs/php/paths.js +78 -0
  527. package/dist/langs/php/paths.js.map +1 -0
  528. package/dist/langs/php/pest.js +91 -0
  529. package/dist/langs/php/pest.js.map +1 -0
  530. package/dist/langs/php/phpmd-config.js +58 -0
  531. package/dist/langs/php/phpmd-config.js.map +1 -0
  532. package/dist/langs/php/phpmd.js +80 -0
  533. package/dist/langs/php/phpmd.js.map +1 -0
  534. package/dist/langs/php/phpstan-config.js +100 -0
  535. package/dist/langs/php/phpstan-config.js.map +1 -0
  536. package/dist/langs/php/phpstan.js +128 -0
  537. package/dist/langs/php/phpstan.js.map +1 -0
  538. package/dist/langs/php/pint-config.js +22 -0
  539. package/dist/langs/php/pint-config.js.map +1 -0
  540. package/dist/langs/php/run.js +88 -0
  541. package/dist/langs/php/run.js.map +1 -0
  542. package/dist/langs/php/runtime.js +60 -0
  543. package/dist/langs/php/runtime.js.map +1 -0
  544. package/dist/langs/php/scope.js +50 -0
  545. package/dist/langs/php/scope.js.map +1 -0
  546. package/dist/langs/php/shape.js +212 -0
  547. package/dist/langs/php/shape.js.map +1 -0
  548. package/dist/langs/php/strength-rules.js +114 -0
  549. package/dist/langs/php/strength-rules.js.map +1 -0
  550. package/dist/langs/php/strength.js +98 -0
  551. package/dist/langs/php/strength.js.map +1 -0
  552. package/dist/langs/php/toolchain.js +73 -0
  553. package/dist/langs/php/toolchain.js.map +1 -0
  554. package/dist/langs/php/typecov.js +84 -0
  555. package/dist/langs/php/typecov.js.map +1 -0
  556. package/dist/langs/py/arch.js +97 -0
  557. package/dist/langs/py/arch.js.map +1 -0
  558. package/dist/langs/py/complexipy.js +42 -0
  559. package/dist/langs/py/complexipy.js.map +1 -0
  560. package/dist/langs/py/configs.js +144 -0
  561. package/dist/langs/py/configs.js.map +1 -0
  562. package/dist/langs/py/deadcode.js +77 -0
  563. package/dist/langs/py/deadcode.js.map +1 -0
  564. package/dist/langs/py/environment.js +35 -0
  565. package/dist/langs/py/environment.js.map +1 -0
  566. package/dist/langs/py/format.js +32 -0
  567. package/dist/langs/py/format.js.map +1 -0
  568. package/dist/langs/py/importlinter.js +147 -0
  569. package/dist/langs/py/importlinter.js.map +1 -0
  570. package/dist/langs/py/index.js +73 -0
  571. package/dist/langs/py/index.js.map +1 -0
  572. package/dist/langs/py/install.js +49 -0
  573. package/dist/langs/py/install.js.map +1 -0
  574. package/dist/langs/py/lint.js +98 -0
  575. package/dist/langs/py/lint.js.map +1 -0
  576. package/dist/langs/py/lock.js +66 -0
  577. package/dist/langs/py/lock.js.map +1 -0
  578. package/dist/langs/py/mutation.js +164 -0
  579. package/dist/langs/py/mutation.js.map +1 -0
  580. package/dist/langs/py/mutmut-report.js +81 -0
  581. package/dist/langs/py/mutmut-report.js.map +1 -0
  582. package/dist/langs/py/mutmut-settings.js +168 -0
  583. package/dist/langs/py/mutmut-settings.js.map +1 -0
  584. package/dist/langs/py/paths.js +57 -0
  585. package/dist/langs/py/paths.js.map +1 -0
  586. package/dist/langs/py/pyright-config.js +123 -0
  587. package/dist/langs/py/pyright-config.js.map +1 -0
  588. package/dist/langs/py/pytest.js +96 -0
  589. package/dist/langs/py/pytest.js.map +1 -0
  590. package/dist/langs/py/ruff-settings.js +166 -0
  591. package/dist/langs/py/ruff-settings.js.map +1 -0
  592. package/dist/langs/py/ruff.js +44 -0
  593. package/dist/langs/py/ruff.js.map +1 -0
  594. package/dist/langs/py/run.js +44 -0
  595. package/dist/langs/py/run.js.map +1 -0
  596. package/dist/langs/py/sizes.js +65 -0
  597. package/dist/langs/py/sizes.js.map +1 -0
  598. package/dist/langs/py/spans.js +76 -0
  599. package/dist/langs/py/spans.js.map +1 -0
  600. package/dist/langs/py/strength.js +101 -0
  601. package/dist/langs/py/strength.js.map +1 -0
  602. package/dist/langs/py/toolchain.js +34 -0
  603. package/dist/langs/py/toolchain.js.map +1 -0
  604. package/dist/langs/py/types.js +66 -0
  605. package/dist/langs/py/types.js.map +1 -0
  606. package/dist/langs/rust/cargo-config.js +91 -0
  607. package/dist/langs/rust/cargo-config.js.map +1 -0
  608. package/dist/langs/rust/cargo-test.js +50 -0
  609. package/dist/langs/rust/cargo-test.js.map +1 -0
  610. package/dist/langs/rust/compile.js +99 -0
  611. package/dist/langs/rust/compile.js.map +1 -0
  612. package/dist/langs/rust/configs.js +60 -0
  613. package/dist/langs/rust/configs.js.map +1 -0
  614. package/dist/langs/rust/deadcode.js +47 -0
  615. package/dist/langs/rust/deadcode.js.map +1 -0
  616. package/dist/langs/rust/diagnostics.js +103 -0
  617. package/dist/langs/rust/diagnostics.js.map +1 -0
  618. package/dist/langs/rust/doctests.js +49 -0
  619. package/dist/langs/rust/doctests.js.map +1 -0
  620. package/dist/langs/rust/format.js +97 -0
  621. package/dist/langs/rust/format.js.map +1 -0
  622. package/dist/langs/rust/index.js +49 -0
  623. package/dist/langs/rust/index.js.map +1 -0
  624. package/dist/langs/rust/install.js +56 -0
  625. package/dist/langs/rust/install.js.map +1 -0
  626. package/dist/langs/rust/junit.js +49 -0
  627. package/dist/langs/rust/junit.js.map +1 -0
  628. package/dist/langs/rust/lcov.js +53 -0
  629. package/dist/langs/rust/lcov.js.map +1 -0
  630. package/dist/langs/rust/lint.js +47 -0
  631. package/dist/langs/rust/lint.js.map +1 -0
  632. package/dist/langs/rust/lints.js +61 -0
  633. package/dist/langs/rust/lints.js.map +1 -0
  634. package/dist/langs/rust/machete.js +53 -0
  635. package/dist/langs/rust/machete.js.map +1 -0
  636. package/dist/langs/rust/metadata.js +78 -0
  637. package/dist/langs/rust/metadata.js.map +1 -0
  638. package/dist/langs/rust/mutants.js +73 -0
  639. package/dist/langs/rust/mutants.js.map +1 -0
  640. package/dist/langs/rust/nextest.js +164 -0
  641. package/dist/langs/rust/nextest.js.map +1 -0
  642. package/dist/langs/rust/paths.js +60 -0
  643. package/dist/langs/rust/paths.js.map +1 -0
  644. package/dist/langs/rust/run.js +37 -0
  645. package/dist/langs/rust/run.js.map +1 -0
  646. package/dist/langs/rust/scan.js +173 -0
  647. package/dist/langs/rust/scan.js.map +1 -0
  648. package/dist/langs/rust/shapes.js +80 -0
  649. package/dist/langs/rust/shapes.js.map +1 -0
  650. package/dist/langs/rust/strength-rules.js +109 -0
  651. package/dist/langs/rust/strength-rules.js.map +1 -0
  652. package/dist/langs/rust/strength.js +114 -0
  653. package/dist/langs/rust/strength.js.map +1 -0
  654. package/dist/langs/rust/structure.js +222 -0
  655. package/dist/langs/rust/structure.js.map +1 -0
  656. package/dist/langs/rust/testfiles.js +62 -0
  657. package/dist/langs/rust/testfiles.js.map +1 -0
  658. package/dist/langs/rust/toolchain.js +91 -0
  659. package/dist/langs/rust/toolchain.js.map +1 -0
  660. package/dist/langs/rust/types.js +9 -0
  661. package/dist/langs/rust/types.js.map +1 -0
  662. package/dist/langs/ts/checks/arch.js +129 -0
  663. package/dist/langs/ts/checks/arch.js.map +1 -0
  664. package/dist/langs/ts/checks/deadcode.js +125 -0
  665. package/dist/langs/ts/checks/deadcode.js.map +1 -0
  666. package/dist/langs/ts/checks/e2e.js +174 -0
  667. package/dist/langs/ts/checks/e2e.js.map +1 -0
  668. package/dist/langs/ts/checks/format.js +107 -0
  669. package/dist/langs/ts/checks/format.js.map +1 -0
  670. package/dist/langs/ts/checks/javascript.js +30 -0
  671. package/dist/langs/ts/checks/javascript.js.map +1 -0
  672. package/dist/langs/ts/checks/lint.js +133 -0
  673. package/dist/langs/ts/checks/lint.js.map +1 -0
  674. package/dist/langs/ts/checks/size.js +79 -0
  675. package/dist/langs/ts/checks/size.js.map +1 -0
  676. package/dist/langs/ts/checks/strength.js +168 -0
  677. package/dist/langs/ts/checks/strength.js.map +1 -0
  678. package/dist/langs/ts/checks/toolchain.js +54 -0
  679. package/dist/langs/ts/checks/toolchain.js.map +1 -0
  680. package/dist/langs/ts/checks/typecov.js +121 -0
  681. package/dist/langs/ts/checks/typecov.js.map +1 -0
  682. package/dist/langs/ts/checks/types.js +71 -0
  683. package/dist/langs/ts/checks/types.js.map +1 -0
  684. package/dist/langs/ts/compare.js +110 -0
  685. package/dist/langs/ts/compare.js.map +1 -0
  686. package/dist/langs/ts/configs/depcruise.js +97 -0
  687. package/dist/langs/ts/configs/depcruise.js.map +1 -0
  688. package/dist/langs/ts/configs/eslint.js +209 -0
  689. package/dist/langs/ts/configs/eslint.js.map +1 -0
  690. package/dist/langs/ts/configs/index.js +59 -0
  691. package/dist/langs/ts/configs/index.js.map +1 -0
  692. package/dist/langs/ts/configs/knip.js +43 -0
  693. package/dist/langs/ts/configs/knip.js.map +1 -0
  694. package/dist/langs/ts/configs/prettier.js +37 -0
  695. package/dist/langs/ts/configs/prettier.js.map +1 -0
  696. package/dist/langs/ts/configs/shared.js +19 -0
  697. package/dist/langs/ts/configs/shared.js.map +1 -0
  698. package/dist/langs/ts/configs/stryker.js +117 -0
  699. package/dist/langs/ts/configs/stryker.js.map +1 -0
  700. package/dist/langs/ts/configs/tsconfig.js +64 -0
  701. package/dist/langs/ts/configs/tsconfig.js.map +1 -0
  702. package/dist/langs/ts/configs/vitest.js +62 -0
  703. package/dist/langs/ts/configs/vitest.js.map +1 -0
  704. package/dist/langs/ts/devtools.js +29 -0
  705. package/dist/langs/ts/devtools.js.map +1 -0
  706. package/dist/langs/ts/files.js +73 -0
  707. package/dist/langs/ts/files.js.map +1 -0
  708. package/dist/langs/ts/generated.js +29 -0
  709. package/dist/langs/ts/generated.js.map +1 -0
  710. package/dist/langs/ts/index.js +45 -0
  711. package/dist/langs/ts/index.js.map +1 -0
  712. package/dist/langs/ts/install.js +48 -0
  713. package/dist/langs/ts/install.js.map +1 -0
  714. package/dist/langs/ts/node.js +139 -0
  715. package/dist/langs/ts/node.js.map +1 -0
  716. package/dist/langs/ts/runners/stryker.js +56 -0
  717. package/dist/langs/ts/runners/stryker.js.map +1 -0
  718. package/dist/langs/ts/runners/vitest.js +79 -0
  719. package/dist/langs/ts/runners/vitest.js.map +1 -0
  720. package/dist/langs/ts/shadows.js +90 -0
  721. package/dist/langs/ts/shadows.js.map +1 -0
  722. package/dist/langs/ts/spans.js +57 -0
  723. package/dist/langs/ts/spans.js.map +1 -0
  724. package/dist/quality/coverage.js +162 -0
  725. package/dist/quality/coverage.js.map +1 -0
  726. package/dist/quality/index.js +4 -0
  727. package/dist/quality/index.js.map +1 -0
  728. package/dist/quality/junit.js +166 -0
  729. package/dist/quality/junit.js.map +1 -0
  730. package/dist/quality/lines.js +58 -0
  731. package/dist/quality/lines.js.map +1 -0
  732. package/dist/quality/luacov.js +345 -0
  733. package/dist/quality/luacov.js.map +1 -0
  734. package/dist/quality/mutants.js +202 -0
  735. package/dist/quality/mutants.js.map +1 -0
  736. package/dist/quality/mutation.js +121 -0
  737. package/dist/quality/mutation.js.map +1 -0
  738. package/dist/quality/paths.js +36 -0
  739. package/dist/quality/paths.js.map +1 -0
  740. package/dist/quality/protocol.js +2 -0
  741. package/dist/quality/protocol.js.map +1 -0
  742. package/dist/quality/reports.js +79 -0
  743. package/dist/quality/reports.js.map +1 -0
  744. package/dist/quality/suite.js +64 -0
  745. package/dist/quality/suite.js.map +1 -0
  746. package/dist/quality/tests.js +63 -0
  747. package/dist/quality/tests.js.map +1 -0
  748. package/dist/quality/text.js +32 -0
  749. package/dist/quality/text.js.map +1 -0
  750. package/dist/quality/typecov.js +16 -0
  751. package/dist/quality/typecov.js.map +1 -0
  752. package/dist/quality/verdicts.js +96 -0
  753. package/dist/quality/verdicts.js.map +1 -0
  754. package/dist/quality/xml.js +42 -0
  755. package/dist/quality/xml.js.map +1 -0
  756. package/dist/repo/changes.js +108 -0
  757. package/dist/repo/changes.js.map +1 -0
  758. package/dist/repo/facts.js +38 -0
  759. package/dist/repo/facts.js.map +1 -0
  760. package/dist/repo/git.js +79 -0
  761. package/dist/repo/git.js.map +1 -0
  762. package/dist/repo/talos-dir.js +36 -0
  763. package/dist/repo/talos-dir.js.map +1 -0
  764. package/dist/review/approval.js +73 -0
  765. package/dist/review/approval.js.map +1 -0
  766. package/dist/review/assemble.js +80 -0
  767. package/dist/review/assemble.js.map +1 -0
  768. package/dist/review/codeowners.js +28 -0
  769. package/dist/review/codeowners.js.map +1 -0
  770. package/dist/review/conditions.js +114 -0
  771. package/dist/review/conditions.js.map +1 -0
  772. package/dist/review/github.js +206 -0
  773. package/dist/review/github.js.map +1 -0
  774. package/dist/review/guard.js +119 -0
  775. package/dist/review/guard.js.map +1 -0
  776. package/dist/review/header.js +61 -0
  777. package/dist/review/header.js.map +1 -0
  778. package/dist/review/integrity.js +148 -0
  779. package/dist/review/integrity.js.map +1 -0
  780. package/dist/review/job.js +213 -0
  781. package/dist/review/job.js.map +1 -0
  782. package/dist/review/model.js +178 -0
  783. package/dist/review/model.js.map +1 -0
  784. package/dist/review/prompt.js +125 -0
  785. package/dist/review/prompt.js.map +1 -0
  786. package/dist/review/report.js +73 -0
  787. package/dist/review/report.js.map +1 -0
  788. package/dist/review/reviewer.js +205 -0
  789. package/dist/review/reviewer.js.map +1 -0
  790. package/dist/review/rules.js +54 -0
  791. package/dist/review/rules.js.map +1 -0
  792. package/dist/review/scope.js +39 -0
  793. package/dist/review/scope.js.map +1 -0
  794. package/dist/review/testfiles.js +53 -0
  795. package/dist/review/testfiles.js.map +1 -0
  796. package/dist/review/types.js +6 -0
  797. package/dist/review/types.js.map +1 -0
  798. package/dist/sarif/sarif.js +63 -0
  799. package/dist/sarif/sarif.js.map +1 -0
  800. package/dist/status/build.js +154 -0
  801. package/dist/status/build.js.map +1 -0
  802. package/dist/status/collect.js +132 -0
  803. package/dist/status/collect.js.map +1 -0
  804. package/dist/status/doctor.js +191 -0
  805. package/dist/status/doctor.js.map +1 -0
  806. package/dist/status/findings.js +161 -0
  807. package/dist/status/findings.js.map +1 -0
  808. package/dist/status/history.js +113 -0
  809. package/dist/status/history.js.map +1 -0
  810. package/dist/status/markers.js +65 -0
  811. package/dist/status/markers.js.map +1 -0
  812. package/dist/status/query.js +148 -0
  813. package/dist/status/query.js.map +1 -0
  814. package/dist/status/resolve.js +92 -0
  815. package/dist/status/resolve.js.map +1 -0
  816. package/dist/status/schema.js +110 -0
  817. package/dist/status/schema.js.map +1 -0
  818. package/dist/status/text.js +57 -0
  819. package/dist/status/text.js.map +1 -0
  820. package/dist/ticket/claim.js +147 -0
  821. package/dist/ticket/claim.js.map +1 -0
  822. package/dist/ticket/github.js +94 -0
  823. package/dist/ticket/github.js.map +1 -0
  824. package/dist/ticket/labels.js +64 -0
  825. package/dist/ticket/labels.js.map +1 -0
  826. package/dist/ticket/payload.js +37 -0
  827. package/dist/ticket/payload.js.map +1 -0
  828. package/dist/ticket/queue.js +51 -0
  829. package/dist/ticket/queue.js.map +1 -0
  830. package/dist/ticket/schemas.js +106 -0
  831. package/dist/ticket/schemas.js.map +1 -0
  832. package/dist/ticket/sections.js +66 -0
  833. package/dist/ticket/sections.js.map +1 -0
  834. package/dist/ticket/stale.js +108 -0
  835. package/dist/ticket/stale.js.map +1 -0
  836. package/dist/ticket/status.js +96 -0
  837. package/dist/ticket/status.js.map +1 -0
  838. package/dist/ticket/trust.js +29 -0
  839. package/dist/ticket/trust.js.map +1 -0
  840. package/dist/tools/fetch.js +117 -0
  841. package/dist/tools/fetch.js.map +1 -0
  842. package/dist/tools/lock.js +100 -0
  843. package/dist/tools/lock.js.map +1 -0
  844. package/dist/tools/lockfile.js +81 -0
  845. package/dist/tools/lockfile.js.map +1 -0
  846. package/dist/tools/pypi.js +44 -0
  847. package/dist/tools/pypi.js.map +1 -0
  848. package/dist/tools/store.js +62 -0
  849. package/dist/tools/store.js.map +1 -0
  850. package/dist/tools/tools.js +2 -0
  851. package/dist/tools/tools.js.map +1 -0
  852. package/dist/version/cache.js +18 -0
  853. package/dist/version/cache.js.map +1 -0
  854. package/dist/version/enforced.js +54 -0
  855. package/dist/version/enforced.js.map +1 -0
  856. package/dist/version/errors.js +8 -0
  857. package/dist/version/errors.js.map +1 -0
  858. package/dist/version/install.js +149 -0
  859. package/dist/version/install.js.map +1 -0
  860. package/dist/version/launch.js +104 -0
  861. package/dist/version/launch.js.map +1 -0
  862. package/dist/version/pin.js +121 -0
  863. package/dist/version/pin.js.map +1 -0
  864. package/dist/version/provenance.js +118 -0
  865. package/dist/version/provenance.js.map +1 -0
  866. package/dist/version/release.js +44 -0
  867. package/dist/version/release.js.map +1 -0
  868. package/dist/version/self.js +55 -0
  869. package/dist/version/self.js.map +1 -0
  870. package/dist/version/shrinkwrap.js +207 -0
  871. package/dist/version/shrinkwrap.js.map +1 -0
  872. package/npm-shrinkwrap.json +2140 -0
  873. package/package.json +81 -8
  874. package/tools/semgrep.in +1 -0
  875. package/tools/semgrep.txt +1150 -0
  876. package/tools.lock +429 -0
@@ -0,0 +1,94 @@
1
+ import { access } from 'node:fs/promises';
2
+ import { isAbsolute, join, posix, relative } from 'node:path';
3
+ import { EngineError } from '../../core/check.js';
4
+ import { underRoot } from '../../repo/facts.js';
5
+ /** The tree `install()` builds in the component's root: Lua, LuaRocks and the rocks. */
6
+ export const TREE = '.lua';
7
+ /** The project's own luacheck settings, which the generated `.luacheckrc` loads. */
8
+ export const LUACHECK_PROJECT = 'luacheck_project.lua';
9
+ /** The component a component check runs for; the engine always sets it. */
10
+ export function component(ctx) {
11
+ if (ctx.component !== undefined)
12
+ return ctx.component;
13
+ throw new EngineError('a lua check ran without a component');
14
+ }
15
+ /** The component's directory, absolute. */
16
+ export function componentDir(place) {
17
+ return join(place.root, place.component.root);
18
+ }
19
+ /** A path without the slashes it ends with. */
20
+ export function withoutTrailingSlashes(path) {
21
+ let end = path.length;
22
+ while (end > 0 && path[end - 1] === '/')
23
+ end -= 1;
24
+ return path.slice(0, end);
25
+ }
26
+ /** A repository-relative path made relative to the component's root, or undefined outside it. */
27
+ export function inComponent(root, path) {
28
+ const inside = posix.relative(posix.normalize(root), posix.normalize(path));
29
+ return inside === '' || inside === '..' || inside.startsWith('../') ? undefined : inside;
30
+ }
31
+ /** A component-relative path made repository-relative. */
32
+ export function inRepo(root, path) {
33
+ return posix.join(root, path);
34
+ }
35
+ /** A path a tool printed (absolute, or relative to the component) made repository-relative. */
36
+ export function fromTool(place, file) {
37
+ const path = isAbsolute(file) ? relative(place.root, file) : inRepo(place.component.root, file);
38
+ return posix.normalize(path.replaceAll('\\', '/'));
39
+ }
40
+ /** The component's tracked Lua sources, relative to its root, the installed tree left out. */
41
+ export function luaFiles(ctx) {
42
+ const root = component(ctx).root;
43
+ return underRoot(ctx.facts.matching('**/*.lua'), root)
44
+ .map((file) => inComponent(root, file))
45
+ .filter((file) => file !== undefined && !file.startsWith(`${TREE}/`));
46
+ }
47
+ /** Test code as busted lays it out: `*_spec.lua` files and anything under a spec or test dir. */
48
+ export function isTestPath(path) {
49
+ return path.endsWith('_spec.lua') || /(?:^|\/)(?:spec|tests?)\//.test(path);
50
+ }
51
+ /** The files busted runs: every `*_spec.lua`. */
52
+ export function specFiles(files) {
53
+ return files.filter((file) => file.endsWith('_spec.lua'));
54
+ }
55
+ /** Code the coverage measures: everything but tests and the project's luacheck settings. */
56
+ export function sourceFiles(files) {
57
+ return files.filter((file) => !isTestPath(file) && file !== LUACHECK_PROJECT);
58
+ }
59
+ export async function fileExists(path) {
60
+ return access(path).then(() => true, () => false);
61
+ }
62
+ /** The installed tree's directory, absolute. */
63
+ export function treeDir(place) {
64
+ return join(componentDir(place), TREE);
65
+ }
66
+ /**
67
+ * A program in the tree's `bin`: the Lua interpreter is an executable everywhere; LuaRocks and
68
+ * the rocks' commands are shell scripts, which are `.bat` files on Windows.
69
+ */
70
+ export function treeProgram(place, name) {
71
+ const bin = join(treeDir(place), 'bin');
72
+ if (place.os !== 'windows')
73
+ return join(bin, name);
74
+ return join(bin, name === 'lua' ? 'lua.exe' : `${name}.bat`);
75
+ }
76
+ /** A program the tree must have, or an engine error naming what is missing. */
77
+ export async function installedProgram(place, name) {
78
+ const path = treeProgram(place, name);
79
+ if (await fileExists(path))
80
+ return path;
81
+ throw new EngineError(`${name} is not installed in ${inRepo(place.component.root, TREE)}: install() did not run`);
82
+ }
83
+ /**
84
+ * The environment for Talos's own Lua scripts: modules from the tree only, so nothing in the
85
+ * component's directory can stand in for luacheck or luacov, and no startup code from the
86
+ * environment. Lua 5.4 reads the `_5_4` names before the plain ones.
87
+ */
88
+ export function scriptEnv(place) {
89
+ const tree = treeDir(place).replaceAll('\\', '/');
90
+ const lua = [`${tree}/share/lua/5.4/?.lua`, `${tree}/share/lua/5.4/?/init.lua`].join(';');
91
+ const native = `${tree}/lib/lua/5.4/?.${place.os === 'windows' ? 'dll' : 'so'}`;
92
+ return { LUA_PATH_5_4: lua, LUA_CPATH_5_4: native, LUA_INIT_5_4: '', LUA_INIT: '' };
93
+ }
94
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/langs/lua/paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { writeFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { component, componentDir, installedProgram, scriptEnv } from './paths.js';
4
+ import { EngineError } from '../../core/check.js';
5
+ export const bind = (ctx) => ({ ...ctx, component: component(ctx) });
6
+ /**
7
+ * Runs a program from the component's tree (`lua`, `luarocks`, or a rock's command), in the
8
+ * component's directory unless told otherwise.
9
+ */
10
+ export async function runTree(ctx, name, args, options = {}) {
11
+ return ctx.exec(await installedProgram(ctx, name), args, { cwd: componentDir(ctx), ...options });
12
+ }
13
+ /** An engine error for a program that failed, ending with the last of what it printed. */
14
+ export function failed(what, result) {
15
+ const printed = result.stderr.trim() === '' ? result.stdout : result.stderr;
16
+ const last = printed.trim().split('\n').slice(-15).join('\n');
17
+ return new EngineError(`${what} exited ${result.code}:\n${last}`);
18
+ }
19
+ /**
20
+ * Runs one of Talos's Lua scripts with the tree's interpreter, in the component's directory,
21
+ * with modules from the tree only. Returns its standard output; any failure is an engine error.
22
+ */
23
+ export async function runScript(ctx, script, args) {
24
+ const path = join(ctx.scratch, script.name);
25
+ await writeFile(path, script.source);
26
+ const result = await runTree(ctx, 'lua', [path, ...args], { env: scriptEnv(ctx) });
27
+ if (result.code !== 0)
28
+ throw failed(`lua ${script.name}`, result);
29
+ return result.stdout;
30
+ }
31
+ /** Text a tool printed as JSON. */
32
+ export function parseJson(text, what) {
33
+ try {
34
+ const value = JSON.parse(text);
35
+ return value;
36
+ }
37
+ catch {
38
+ throw new EngineError(`${what} printed no readable JSON: ${text.trim().slice(0, 200)}`);
39
+ }
40
+ }
41
+ /**
42
+ * Splits arguments into runs that each stay under `limit` characters, since Windows starts the
43
+ * rocks' `.bat` commands through cmd.exe, whose command line holds 8191 characters; each
44
+ * argument costs its length, its two quotes and a space there.
45
+ */
46
+ export function chunks(items, limit = 6000) {
47
+ const out = [];
48
+ let current = [];
49
+ let length = 0;
50
+ for (const item of items) {
51
+ if (current.length > 0 && length + item.length + 3 > limit) {
52
+ out.push(current);
53
+ current = [];
54
+ length = 0;
55
+ }
56
+ current.push(item);
57
+ length += item.length + 3;
58
+ }
59
+ if (current.length > 0)
60
+ out.push(current);
61
+ return out;
62
+ }
63
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/langs/lua/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * A JSON encoder for Talos's Lua scripts, which run with nothing but the component's tree. A
3
+ * table with a first element, or no elements, is an array; any other table is an object.
4
+ */
5
+ export const LUA_JSON = String.raw `local ESCAPES = { ['"'] = '\\"', ["\\"] = "\\\\", ["\n"] = "\\n", ["\r"] = "\\r", ["\t"] = "\\t" }
6
+
7
+ local function quote(text)
8
+ local escaped = text:gsub('[%c"\\]', function(c)
9
+ return ESCAPES[c] or ("\\u%04x"):format(c:byte())
10
+ end)
11
+ return '"' .. escaped .. '"'
12
+ end
13
+
14
+ local function encode(value)
15
+ local kind = type(value)
16
+ if kind == "string" then
17
+ return quote(value)
18
+ elseif kind ~= "table" then
19
+ return tostring(value)
20
+ end
21
+ local parts = {}
22
+ if value[1] ~= nil or next(value) == nil then
23
+ for _, item in ipairs(value) do
24
+ parts[#parts + 1] = encode(item)
25
+ end
26
+ return "[" .. table.concat(parts, ",") .. "]"
27
+ end
28
+ local keys = {}
29
+ for key in pairs(value) do
30
+ keys[#keys + 1] = key
31
+ end
32
+ table.sort(keys)
33
+ for _, key in ipairs(keys) do
34
+ parts[#parts + 1] = quote(key) .. ":" .. encode(value[key])
35
+ end
36
+ return "{" .. table.concat(parts, ",") .. "}"
37
+ end
38
+ `;
39
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../src/langs/lua/scripts/json.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjC,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Writes LCOV for the listed sources from a luacov stats file, using luacov's own view of which
3
+ * lines can run (with cluacov, from the compiled code). A source no test loaded is reported with
4
+ * every line it can run missed. Stats name files as Lua loaded them (`./src/x.lua`,
5
+ * `src\x.lua`), so names are normalised to the list's form: relative, forward slashes.
6
+ * Arguments: the stats file, the output file, the file listing the sources, one per line.
7
+ */
8
+ const BODY = String.raw `local reporter = require("luacov.reporter")
9
+ local stats = require("luacov.stats")
10
+
11
+ local stats_path, out_path, list_path = arg[1], arg[2], arg[3]
12
+
13
+ local function normalize(name)
14
+ name = name:gsub("\\", "/")
15
+ while name:sub(1, 2) == "./" do
16
+ name = name:sub(3)
17
+ end
18
+ return name
19
+ end
20
+
21
+ local data = {}
22
+ for name, hits in pairs(stats.load(stats_path) or {}) do
23
+ local key = normalize(name)
24
+ local known = data[key]
25
+ if known then
26
+ for line, count in pairs(hits) do
27
+ if type(line) == "number" then
28
+ known[line] = (known[line] or 0) + count
29
+ end
30
+ end
31
+ else
32
+ data[key] = hits
33
+ end
34
+ end
35
+
36
+ local files = {}
37
+ for line in io.lines(list_path) do
38
+ if line ~= "" then
39
+ files[#files + 1] = line
40
+ data[line] = data[line] or { max = 0, max_hits = 0 }
41
+ end
42
+ end
43
+
44
+ local Lcov = setmetatable({}, reporter.ReporterBase)
45
+ Lcov.__index = Lcov
46
+
47
+ function Lcov:on_new_file(filename)
48
+ self:write("SF:", filename, "\n")
49
+ end
50
+
51
+ function Lcov:on_file_error(filename, kind, message)
52
+ io.stderr:write(("could not %s %s: %s\n"):format(kind, filename, message))
53
+ os.exit(2)
54
+ end
55
+
56
+ function Lcov:on_mis_line(_, lineno)
57
+ self:write("DA:", lineno, ",0\n")
58
+ end
59
+
60
+ function Lcov:on_hit_line(_, lineno, _, hits)
61
+ self:write("DA:", lineno, ",", hits, "\n")
62
+ end
63
+
64
+ function Lcov:on_end_file()
65
+ self:write("end_of_record\n")
66
+ end
67
+
68
+ local out = assert(io.open(out_path, "w"))
69
+ local report = setmetatable({ _out = out, _cfg = {}, _data = data, _files = files, _mhit = 0 }, Lcov)
70
+ report:run()
71
+ report:close()
72
+ `;
73
+ export const LCOV_SCRIPT = {
74
+ name: 'talos_lcov.lua',
75
+ source: `-- Talos: luacov's statistics as LCOV.\n${BODY}`,
76
+ };
77
+ //# sourceMappingURL=lcov.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lcov.js","sourceRoot":"","sources":["../../../../src/langs/lua/scripts/lcov.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEtB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,2CAA2C,IAAI,EAAE;CAC1D,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { LUA_JSON } from './json.js';
2
+ /** The formatter's module name; luacheck requires it by name, so it must be unusual. */
3
+ export const FORMATTER_MODULE = 'talos_luacheck_json';
4
+ /**
5
+ * A luacheck formatter: every file luacheck checked, with its warnings in luacheck's own words
6
+ * and its fatal error if it had one, as one JSON object. A file luacheck skipped is absent.
7
+ */
8
+ const FORMATTER_BODY = String.raw `local format = require("luacheck.format")
9
+
10
+ return function(report, file_names)
11
+ local files = {}
12
+ for index, file_report in ipairs(report) do
13
+ local events = {}
14
+ for _, event in ipairs(file_report) do
15
+ events[#events + 1] = {
16
+ code = event.code,
17
+ line = event.line,
18
+ column = event.column,
19
+ endColumn = event.end_column or event.column,
20
+ message = format.get_message(event),
21
+ }
22
+ end
23
+ files[#files + 1] = {
24
+ file = file_names[index],
25
+ fatal = file_report.fatal or "",
26
+ error = file_report.msg or "",
27
+ events = events,
28
+ }
29
+ end
30
+ return encode({ files = files })
31
+ end
32
+ `;
33
+ export const LUACHECK_FORMATTER = {
34
+ name: `${FORMATTER_MODULE}.lua`,
35
+ source: `-- Talos: luacheck's report as JSON.\n${LUA_JSON}\n${FORMATTER_BODY}`,
36
+ };
37
+ /**
38
+ * Loads `.luacheckrc` the way luacheck does, from the current directory (so it requires the
39
+ * project's file relative to it), validates it, and prints the options that can weaken a check,
40
+ * at the top level and for each `files` pattern. Values are strings, numbers, booleans or lists
41
+ * of strings; a std given as a table prints as "(table)".
42
+ */
43
+ const CONFIG_BODY = String.raw `local config = require("luacheck.config")
44
+
45
+ local OPTIONS = {
46
+ "std", "compat", "global", "unused", "redefined", "unused_args", "unused_secondaries", "self",
47
+ "allow_defined", "allow_defined_top", "module", "max_line_length", "max_code_line_length",
48
+ "max_string_line_length", "max_comment_line_length", "max_cyclomatic_complexity",
49
+ "ignore", "only", "exclude_files", "include_files",
50
+ }
51
+
52
+ local function value_of(name, value)
53
+ if type(value) ~= "table" then
54
+ return value
55
+ elseif name == "std" then
56
+ return "(table)"
57
+ end
58
+ local items = {}
59
+ for _, item in ipairs(value) do
60
+ items[#items + 1] = tostring(item)
61
+ end
62
+ return items
63
+ end
64
+
65
+ local function pick(options)
66
+ local picked = {}
67
+ for _, name in ipairs(OPTIONS) do
68
+ if options[name] ~= nil then
69
+ picked[#picked + 1] = { name = name, value = value_of(name, options[name]) }
70
+ end
71
+ end
72
+ return picked
73
+ end
74
+
75
+ local conf, err = config.load_config(".luacheckrc", false)
76
+ local stacked
77
+ if conf then
78
+ stacked, err = config.stack_configs({ conf })
79
+ end
80
+ if not stacked then
81
+ io.write(encode({ error = tostring(err) }), "\n")
82
+ return
83
+ end
84
+ local files = {}
85
+ for glob, options in pairs(conf.options.files or {}) do
86
+ if type(glob) == "string" then
87
+ files[#files + 1] = { glob = glob, options = pick(options) }
88
+ end
89
+ end
90
+ table.sort(files, function(a, b) return a.glob < b.glob end)
91
+ io.write(encode({ error = "", top = pick(conf.options), files = files }), "\n")
92
+ `;
93
+ export const LUACHECK_CONFIG_SCRIPT = {
94
+ name: 'talos_luacheck_config.lua',
95
+ source: `-- Talos: the options luacheck loads.\n${LUA_JSON}\n${CONFIG_BODY}`,
96
+ };
97
+ //# sourceMappingURL=luacheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"luacheck.js","sourceRoot":"","sources":["../../../../src/langs/lua/scripts/luacheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwBhC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,GAAG,gBAAgB,MAAM;IAC/B,MAAM,EAAE,yCAAyC,QAAQ,KAAK,cAAc,EAAE;CAC/E,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiD7B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,2BAA2B;IACjC,MAAM,EAAE,0CAA0C,QAAQ,KAAK,WAAW,EAAE;CAC7E,CAAC"}
@@ -0,0 +1,197 @@
1
+ import { LUA_JSON } from './json.js';
2
+ /**
3
+ * Measures every function of the files it is given with luacheck's own parser: its span, its
4
+ * parameters (an implicit `self` and `...` left out), its lines of code, its deepest nesting
5
+ * of control statements, and its cognitive complexity. Each function is measured alone, so a
6
+ * nested function counts toward itself, not the function around it. The main chunk is measured
7
+ * for nesting only, and each file gets its line count and the numbers of its lines of code.
8
+ * Prints one JSON object; a file luacheck can't parse is marked, not measured.
9
+ */
10
+ const BODY = String.raw `local decoder = require("luacheck.decoder")
11
+ local parser = require("luacheck.parser")
12
+
13
+ local CONTROL = { If = true, While = true, Repeat = true, Fornum = true, Forin = true }
14
+ local ASSIGNING = { Set = true, Local = true, Localrec = true }
15
+
16
+ local function line_of(offsets, offset)
17
+ local low, high = 1, #offsets
18
+ while low < high do
19
+ local middle = (low + high + 1) // 2
20
+ if offsets[middle] <= offset then
21
+ low = middle
22
+ else
23
+ high = middle - 1
24
+ end
25
+ end
26
+ return low
27
+ end
28
+
29
+ local function name_of(node)
30
+ if node.tag == "Id" then
31
+ return node[1]
32
+ elseif node.tag == "Index" and node[2].tag == "String" then
33
+ local base = name_of(node[1])
34
+ return base and (base .. "." .. node[2][1])
35
+ end
36
+ end
37
+
38
+ local Walk = {}
39
+ Walk.__index = Walk
40
+
41
+ function Walk:list(nodes, depth)
42
+ for _, node in ipairs(nodes) do
43
+ if type(node) == "table" then
44
+ self:node(node, depth)
45
+ end
46
+ end
47
+ end
48
+
49
+ function Walk:logical(node, depth, outer)
50
+ local operator = node[1]
51
+ if operator ~= "and" and operator ~= "or" then
52
+ self:list({ node[2], node[3] }, depth)
53
+ return
54
+ end
55
+ if operator ~= outer then
56
+ self.cognitive = self.cognitive + 1
57
+ end
58
+ for index = 2, 3 do
59
+ local operand = node[index]
60
+ if operand.tag == "Op" then
61
+ self:logical(operand, depth, operator)
62
+ else
63
+ self:node(operand, depth)
64
+ end
65
+ end
66
+ end
67
+
68
+ function Walk:control(node, depth)
69
+ local nesting = depth + 1
70
+ self.cognitive = self.cognitive + nesting
71
+ if node.tag == "If" then
72
+ self.cognitive = self.cognitive + (#node // 2 - 1) + #node % 2
73
+ end
74
+ if nesting > self.deepest.depth then
75
+ self.deepest = { depth = nesting, line = node.line, endLine = line_of(self.offsets, node.end_offset) }
76
+ end
77
+ for _, child in ipairs(node) do
78
+ if type(child) == "table" then
79
+ if child.tag == nil then
80
+ self:list(child, nesting)
81
+ else
82
+ self:node(child, depth)
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ function Walk:node(node, depth)
89
+ local tag = node.tag
90
+ if tag == "Function" then
91
+ self.queue[#self.queue + 1] = node
92
+ elseif CONTROL[tag] then
93
+ self:control(node, depth)
94
+ elseif tag == "Op" then
95
+ self:logical(node, depth)
96
+ else
97
+ if tag == "Goto" then
98
+ self.cognitive = self.cognitive + 1
99
+ elseif ASSIGNING[tag] then
100
+ for index, value in ipairs(node[2] or {}) do
101
+ if value.tag == "Function" and node[1][index] then
102
+ self.names[value] = name_of(node[1][index])
103
+ end
104
+ end
105
+ end
106
+ self:list(node, depth)
107
+ end
108
+ end
109
+
110
+ local function count_lines(code_lines, first, last)
111
+ local count = 0
112
+ for line = first, last do
113
+ count = count + (code_lines[line] and 1 or 0)
114
+ end
115
+ return count
116
+ end
117
+
118
+ local function line_numbers(code_lines, last)
119
+ local numbers = {}
120
+ for line = 1, last do
121
+ if code_lines[line] then
122
+ numbers[#numbers + 1] = line
123
+ end
124
+ end
125
+ return numbers
126
+ end
127
+
128
+ local function walk(body, file)
129
+ local state = setmetatable({ cognitive = 0, deepest = { depth = 0 }, queue = file.queue,
130
+ names = file.names, offsets = file.offsets }, Walk)
131
+ state:list(body, 0)
132
+ return state
133
+ end
134
+
135
+ local function measure(file, node)
136
+ local state = walk(node[2], file)
137
+ local params = 0
138
+ for _, arg in ipairs(node[1]) do
139
+ params = params + ((arg.tag == "Id" and not arg.implicit) and 1 or 0)
140
+ end
141
+ local last = node.end_range.line
142
+ return {
143
+ name = file.names[node] or "",
144
+ line = node.line,
145
+ endLine = last,
146
+ params = params,
147
+ codeLines = count_lines(file.code_lines, node.line, last),
148
+ cognitive = state.cognitive,
149
+ depth = state.deepest.depth,
150
+ deepLine = state.deepest.line or node.line,
151
+ deepEndLine = state.deepest.endLine or last,
152
+ }
153
+ end
154
+
155
+ local function measure_file(path)
156
+ local handle = io.open(path, "rb")
157
+ if not handle then
158
+ return { file = path, error = "unreadable" }
159
+ end
160
+ local bytes = handle:read("a")
161
+ handle:close()
162
+ local offsets = {}
163
+ local ok, ast, _, code_lines = pcall(parser.parse, decoder.decode(bytes), offsets, {})
164
+ if not ok then
165
+ return { file = path, error = "syntax" }
166
+ end
167
+ local file = { queue = {}, names = {}, offsets = offsets, code_lines = code_lines }
168
+ local main = walk(ast, file)
169
+ local functions = {}
170
+ local index = 1
171
+ while file.queue[index] do
172
+ functions[#functions + 1] = measure(file, file.queue[index])
173
+ index = index + 1
174
+ end
175
+ return {
176
+ file = path,
177
+ error = "",
178
+ lines = #offsets,
179
+ code = line_numbers(code_lines, #offsets),
180
+ depth = main.deepest.depth,
181
+ deepLine = main.deepest.line or 1,
182
+ deepEndLine = main.deepest.endLine or 1,
183
+ functions = functions,
184
+ }
185
+ end
186
+
187
+ local files = {}
188
+ for index = 1, #arg do
189
+ files[#files + 1] = measure_file(arg[index])
190
+ end
191
+ io.write(encode({ files = files }), "\n")
192
+ `;
193
+ export const SHAPE_SCRIPT = {
194
+ name: 'talos_shape.lua',
195
+ source: `-- Talos: measures Lua functions with luacheck's parser.\n${LUA_JSON}\n${BODY}`,
196
+ };
197
+ //# sourceMappingURL=shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../../../src/langs/lua/scripts/shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsLtB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,6DAA6D,QAAQ,KAAK,IAAI,EAAE;CACzF,CAAC"}