@feiyoug/skill-lab 0.0.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/README.md +73 -0
  2. package/esm/analyzer/astgrep/client.d.ts +20 -8
  3. package/esm/analyzer/astgrep/client.d.ts.map +1 -1
  4. package/esm/analyzer/astgrep/client.js +58 -31
  5. package/esm/analyzer/config/default.d.ts +8 -0
  6. package/esm/analyzer/config/default.d.ts.map +1 -0
  7. package/esm/analyzer/config/default.js +91 -0
  8. package/esm/analyzer/config/helpers.d.ts +8 -0
  9. package/esm/analyzer/config/helpers.d.ts.map +1 -0
  10. package/esm/analyzer/config/helpers.js +72 -0
  11. package/esm/analyzer/config/mod.d.ts +4 -0
  12. package/esm/analyzer/config/mod.d.ts.map +1 -0
  13. package/esm/analyzer/config/mod.js +3 -0
  14. package/esm/analyzer/config/types.d.ts +58 -0
  15. package/esm/analyzer/config/types.d.ts.map +1 -0
  16. package/esm/analyzer/{config.js → config/types.js} +0 -28
  17. package/esm/analyzer/logging.d.ts +3 -0
  18. package/esm/analyzer/logging.d.ts.map +1 -0
  19. package/esm/analyzer/logging.js +6 -0
  20. package/esm/analyzer/mod.d.ts +12 -5
  21. package/esm/analyzer/mod.d.ts.map +1 -1
  22. package/esm/analyzer/mod.js +25 -12
  23. package/esm/analyzer/result.d.ts +35 -0
  24. package/esm/analyzer/result.d.ts.map +1 -0
  25. package/esm/analyzer/result.js +311 -0
  26. package/esm/analyzer/rules/bash/commands/mod.d.ts +1 -0
  27. package/esm/analyzer/rules/bash/commands/mod.d.ts.map +1 -1
  28. package/esm/analyzer/rules/bash/commands/mod.js +3 -0
  29. package/esm/analyzer/rules/bash/commands/pip.d.ts +3 -0
  30. package/esm/analyzer/rules/bash/commands/pip.d.ts.map +1 -0
  31. package/esm/analyzer/rules/bash/commands/pip.js +14 -0
  32. package/esm/analyzer/rules/bash/extractFileRefs.d.ts +1 -1
  33. package/esm/analyzer/rules/bash/extractFileRefs.d.ts.map +1 -1
  34. package/esm/analyzer/rules/bash/extractFileRefs.js +2 -2
  35. package/esm/analyzer/rules/bash/inline-command-classifier.d.ts +1 -1
  36. package/esm/analyzer/rules/bash/inline-command-classifier.d.ts.map +1 -1
  37. package/esm/analyzer/rules/bash/inline-command-classifier.js +4 -4
  38. package/esm/analyzer/rules/javascript/extractFileRefs.d.ts +3 -4
  39. package/esm/analyzer/rules/javascript/extractFileRefs.d.ts.map +1 -1
  40. package/esm/analyzer/rules/javascript/extractFileRefs.js +3 -4
  41. package/esm/analyzer/rules/markdown/extractCodeBlocks.d.ts.map +1 -1
  42. package/esm/analyzer/rules/markdown/extractCodeBlocks.js +6 -3
  43. package/esm/analyzer/rules/markdown/extractFileRefs.d.ts.map +1 -1
  44. package/esm/analyzer/rules/markdown/extractFileRefs.js +2 -0
  45. package/esm/analyzer/rules/python/extractFileRefs.d.ts +1 -1
  46. package/esm/analyzer/rules/python/extractFileRefs.d.ts.map +1 -1
  47. package/esm/analyzer/rules/python/extractFileRefs.js +2 -2
  48. package/esm/analyzer/steps/001-discovery/discover-files.d.ts +4 -0
  49. package/esm/analyzer/steps/001-discovery/discover-files.d.ts.map +1 -1
  50. package/esm/analyzer/steps/001-discovery/discover-files.js +18 -2
  51. package/esm/analyzer/steps/001-discovery/mod.d.ts.map +1 -1
  52. package/esm/analyzer/steps/001-discovery/mod.js +39 -9
  53. package/esm/analyzer/steps/002-permissions/mod.d.ts.map +1 -1
  54. package/esm/analyzer/steps/002-permissions/mod.js +156 -73
  55. package/esm/analyzer/steps/002-permissions/scan-file.d.ts +1 -1
  56. package/esm/analyzer/steps/002-permissions/scan-file.d.ts.map +1 -1
  57. package/esm/analyzer/steps/002-permissions/scan-file.js +40 -5
  58. package/esm/analyzer/steps/002-permissions/seed-frontmatter.js +2 -2
  59. package/esm/analyzer/steps/003-risks/dep-risks.d.ts +3 -0
  60. package/esm/analyzer/steps/003-risks/dep-risks.d.ts.map +1 -0
  61. package/esm/analyzer/steps/003-risks/dep-risks.js +74 -0
  62. package/esm/analyzer/steps/003-risks/helpers.d.ts +1 -0
  63. package/esm/analyzer/steps/003-risks/helpers.d.ts.map +1 -1
  64. package/esm/analyzer/steps/003-risks/helpers.js +1 -0
  65. package/esm/analyzer/steps/003-risks/mod.d.ts +3 -2
  66. package/esm/analyzer/steps/003-risks/mod.d.ts.map +1 -1
  67. package/esm/analyzer/steps/003-risks/mod.js +41 -4
  68. package/esm/analyzer/steps/003-risks/policy.d.ts +7 -0
  69. package/esm/analyzer/steps/003-risks/policy.d.ts.map +1 -0
  70. package/esm/analyzer/steps/003-risks/policy.js +23 -0
  71. package/esm/analyzer/steps/003-risks/rule-mapped.d.ts +2 -2
  72. package/esm/analyzer/steps/003-risks/rule-mapped.d.ts.map +1 -1
  73. package/esm/analyzer/steps/003-risks/rule-mapped.js +83 -2
  74. package/esm/analyzer/steps/003-risks/scoring.d.ts +9 -1
  75. package/esm/analyzer/steps/003-risks/scoring.d.ts.map +1 -1
  76. package/esm/analyzer/steps/003-risks/scoring.js +55 -42
  77. package/esm/analyzer/treesitter/client.d.ts +31 -0
  78. package/esm/analyzer/treesitter/client.d.ts.map +1 -0
  79. package/esm/analyzer/{treesiter → treesitter}/client.js +43 -39
  80. package/esm/analyzer/treesitter/registry.d.ts +73 -0
  81. package/esm/analyzer/treesitter/registry.d.ts.map +1 -0
  82. package/esm/analyzer/treesitter/registry.js +165 -0
  83. package/esm/analyzer/types.d.ts +14 -28
  84. package/esm/analyzer/types.d.ts.map +1 -1
  85. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts +3 -0
  86. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts.map +1 -0
  87. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/deps.js +3 -0
  88. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts +93 -0
  89. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts.map +1 -0
  90. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/mod.js +297 -0
  91. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts +84 -0
  92. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts.map +1 -0
  93. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/multi.js +268 -0
  94. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts +18 -0
  95. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts.map +1 -0
  96. package/esm/deps/jsr.io/@deno-library/progress/1.5.1/time.js +45 -0
  97. package/esm/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts +700 -0
  98. package/esm/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts.map +1 -0
  99. package/esm/deps/jsr.io/@std/fmt/1.0.3/colors.js +903 -0
  100. package/esm/deps/jsr.io/@std/io/0.225.0/types.d.ts +146 -0
  101. package/esm/deps/jsr.io/@std/io/0.225.0/types.d.ts.map +1 -0
  102. package/esm/deps/jsr.io/@std/io/0.225.0/types.js +15 -0
  103. package/esm/deps/jsr.io/@std/io/0.225.0/write_all.d.ts +51 -0
  104. package/esm/deps/jsr.io/@std/io/0.225.0/write_all.d.ts.map +1 -0
  105. package/esm/deps/jsr.io/@std/io/0.225.0/write_all.js +61 -0
  106. package/esm/shared/deep_merge.d.ts +12 -0
  107. package/esm/shared/deep_merge.d.ts.map +1 -0
  108. package/esm/shared/deep_merge.js +49 -0
  109. package/esm/shared/mod.d.ts +1 -0
  110. package/esm/shared/mod.d.ts.map +1 -1
  111. package/esm/shared/mod.js +1 -0
  112. package/esm/shared/types/filetypes.d.ts +2 -2
  113. package/esm/shared/types/filetypes.d.ts.map +1 -1
  114. package/esm/shared/types/permissions.d.ts +1 -1
  115. package/esm/shared/types/permissions.d.ts.map +1 -1
  116. package/esm/shared/types/risks.d.ts +4 -1
  117. package/esm/shared/types/risks.d.ts.map +1 -1
  118. package/esm/skillreader/types.d.ts +2 -2
  119. package/esm/skillreader/types.d.ts.map +1 -1
  120. package/esm/skillreader/types.js +2 -2
  121. package/package.json +1 -1
  122. package/script/analyzer/astgrep/client.d.ts +20 -8
  123. package/script/analyzer/astgrep/client.d.ts.map +1 -1
  124. package/script/analyzer/astgrep/client.js +58 -64
  125. package/script/analyzer/config/default.d.ts +8 -0
  126. package/script/analyzer/config/default.d.ts.map +1 -0
  127. package/script/analyzer/config/default.js +94 -0
  128. package/script/analyzer/config/helpers.d.ts +8 -0
  129. package/script/analyzer/config/helpers.d.ts.map +1 -0
  130. package/script/analyzer/config/helpers.js +76 -0
  131. package/script/analyzer/config/mod.d.ts +4 -0
  132. package/script/analyzer/config/mod.d.ts.map +1 -0
  133. package/script/analyzer/config/mod.js +21 -0
  134. package/script/analyzer/config/types.d.ts +58 -0
  135. package/script/analyzer/config/types.d.ts.map +1 -0
  136. package/script/analyzer/{config.js → config/types.js} +1 -29
  137. package/script/analyzer/logging.d.ts +3 -0
  138. package/script/analyzer/logging.d.ts.map +1 -0
  139. package/script/analyzer/logging.js +9 -0
  140. package/script/analyzer/mod.d.ts +12 -5
  141. package/script/analyzer/mod.d.ts.map +1 -1
  142. package/script/analyzer/mod.js +35 -20
  143. package/script/analyzer/result.d.ts +35 -0
  144. package/script/analyzer/result.d.ts.map +1 -0
  145. package/script/analyzer/result.js +315 -0
  146. package/script/analyzer/rules/bash/commands/mod.d.ts +1 -0
  147. package/script/analyzer/rules/bash/commands/mod.d.ts.map +1 -1
  148. package/script/analyzer/rules/bash/commands/mod.js +3 -0
  149. package/script/analyzer/rules/bash/commands/pip.d.ts +3 -0
  150. package/script/analyzer/rules/bash/commands/pip.d.ts.map +1 -0
  151. package/script/analyzer/rules/bash/commands/pip.js +17 -0
  152. package/script/analyzer/rules/bash/extractFileRefs.d.ts +1 -1
  153. package/script/analyzer/rules/bash/extractFileRefs.d.ts.map +1 -1
  154. package/script/analyzer/rules/bash/extractFileRefs.js +2 -2
  155. package/script/analyzer/rules/bash/inline-command-classifier.d.ts +1 -1
  156. package/script/analyzer/rules/bash/inline-command-classifier.d.ts.map +1 -1
  157. package/script/analyzer/rules/bash/inline-command-classifier.js +4 -4
  158. package/script/analyzer/rules/javascript/extractFileRefs.d.ts +3 -4
  159. package/script/analyzer/rules/javascript/extractFileRefs.d.ts.map +1 -1
  160. package/script/analyzer/rules/javascript/extractFileRefs.js +3 -4
  161. package/script/analyzer/rules/markdown/extractCodeBlocks.d.ts.map +1 -1
  162. package/script/analyzer/rules/markdown/extractCodeBlocks.js +6 -3
  163. package/script/analyzer/rules/markdown/extractFileRefs.d.ts.map +1 -1
  164. package/script/analyzer/rules/markdown/extractFileRefs.js +2 -0
  165. package/script/analyzer/rules/python/extractFileRefs.d.ts +1 -1
  166. package/script/analyzer/rules/python/extractFileRefs.d.ts.map +1 -1
  167. package/script/analyzer/rules/python/extractFileRefs.js +2 -2
  168. package/script/analyzer/steps/001-discovery/discover-files.d.ts +4 -0
  169. package/script/analyzer/steps/001-discovery/discover-files.d.ts.map +1 -1
  170. package/script/analyzer/steps/001-discovery/discover-files.js +18 -2
  171. package/script/analyzer/steps/001-discovery/mod.d.ts.map +1 -1
  172. package/script/analyzer/steps/001-discovery/mod.js +77 -11
  173. package/script/analyzer/steps/002-permissions/mod.d.ts.map +1 -1
  174. package/script/analyzer/steps/002-permissions/mod.js +194 -75
  175. package/script/analyzer/steps/002-permissions/scan-file.d.ts +1 -1
  176. package/script/analyzer/steps/002-permissions/scan-file.d.ts.map +1 -1
  177. package/script/analyzer/steps/002-permissions/scan-file.js +40 -5
  178. package/script/analyzer/steps/002-permissions/seed-frontmatter.js +3 -3
  179. package/script/analyzer/steps/003-risks/dep-risks.d.ts +3 -0
  180. package/script/analyzer/steps/003-risks/dep-risks.d.ts.map +1 -0
  181. package/script/analyzer/steps/003-risks/dep-risks.js +77 -0
  182. package/script/analyzer/steps/003-risks/helpers.d.ts +1 -0
  183. package/script/analyzer/steps/003-risks/helpers.d.ts.map +1 -1
  184. package/script/analyzer/steps/003-risks/helpers.js +1 -0
  185. package/script/analyzer/steps/003-risks/mod.d.ts +3 -2
  186. package/script/analyzer/steps/003-risks/mod.d.ts.map +1 -1
  187. package/script/analyzer/steps/003-risks/mod.js +77 -4
  188. package/script/analyzer/steps/003-risks/policy.d.ts +7 -0
  189. package/script/analyzer/steps/003-risks/policy.d.ts.map +1 -0
  190. package/script/analyzer/steps/003-risks/policy.js +29 -0
  191. package/script/analyzer/steps/003-risks/rule-mapped.d.ts +2 -2
  192. package/script/analyzer/steps/003-risks/rule-mapped.d.ts.map +1 -1
  193. package/script/analyzer/steps/003-risks/rule-mapped.js +83 -2
  194. package/script/analyzer/steps/003-risks/scoring.d.ts +9 -1
  195. package/script/analyzer/steps/003-risks/scoring.d.ts.map +1 -1
  196. package/script/analyzer/steps/003-risks/scoring.js +55 -42
  197. package/script/analyzer/treesitter/client.d.ts +31 -0
  198. package/script/analyzer/treesitter/client.d.ts.map +1 -0
  199. package/script/analyzer/treesitter/client.js +136 -0
  200. package/script/analyzer/treesitter/registry.d.ts +73 -0
  201. package/script/analyzer/treesitter/registry.d.ts.map +1 -0
  202. package/script/analyzer/treesitter/registry.js +206 -0
  203. package/script/analyzer/types.d.ts +14 -28
  204. package/script/analyzer/types.d.ts.map +1 -1
  205. package/script/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts +3 -0
  206. package/script/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts.map +1 -0
  207. package/script/deps/jsr.io/@deno-library/progress/1.5.1/deps.js +10 -0
  208. package/script/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts +93 -0
  209. package/script/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts.map +1 -0
  210. package/script/deps/jsr.io/@deno-library/progress/1.5.1/mod.js +334 -0
  211. package/script/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts +84 -0
  212. package/script/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts.map +1 -0
  213. package/script/deps/jsr.io/@deno-library/progress/1.5.1/multi.js +305 -0
  214. package/script/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts +18 -0
  215. package/script/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts.map +1 -0
  216. package/script/deps/jsr.io/@deno-library/progress/1.5.1/time.js +48 -0
  217. package/script/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts +700 -0
  218. package/script/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts.map +1 -0
  219. package/script/deps/jsr.io/@std/fmt/1.0.3/colors.js +986 -0
  220. package/script/deps/jsr.io/@std/io/0.225.0/types.d.ts +146 -0
  221. package/script/deps/jsr.io/@std/io/0.225.0/types.d.ts.map +1 -0
  222. package/script/deps/jsr.io/@std/io/0.225.0/types.js +18 -0
  223. package/script/deps/jsr.io/@std/io/0.225.0/write_all.d.ts +51 -0
  224. package/script/deps/jsr.io/@std/io/0.225.0/write_all.d.ts.map +1 -0
  225. package/script/deps/jsr.io/@std/io/0.225.0/write_all.js +65 -0
  226. package/script/shared/deep_merge.d.ts +12 -0
  227. package/script/shared/deep_merge.d.ts.map +1 -0
  228. package/script/shared/deep_merge.js +53 -0
  229. package/script/shared/mod.d.ts +1 -0
  230. package/script/shared/mod.d.ts.map +1 -1
  231. package/script/shared/mod.js +1 -0
  232. package/script/shared/types/filetypes.d.ts +2 -2
  233. package/script/shared/types/filetypes.d.ts.map +1 -1
  234. package/script/shared/types/permissions.d.ts +1 -1
  235. package/script/shared/types/permissions.d.ts.map +1 -1
  236. package/script/shared/types/risks.d.ts +4 -1
  237. package/script/shared/types/risks.d.ts.map +1 -1
  238. package/script/skillreader/types.d.ts +2 -2
  239. package/script/skillreader/types.d.ts.map +1 -1
  240. package/script/skillreader/types.js +2 -2
  241. package/src/_dnt.polyfills.ts +27 -0
  242. package/src/_dnt.shims.ts +64 -0
  243. package/src/analyzer/astgrep/client.ts +184 -0
  244. package/src/analyzer/astgrep/mod.ts +2 -0
  245. package/src/analyzer/config/default.ts +98 -0
  246. package/src/analyzer/config/helpers.ts +107 -0
  247. package/src/analyzer/config/mod.ts +3 -0
  248. package/src/analyzer/config/types.ts +103 -0
  249. package/src/analyzer/logging.ts +8 -0
  250. package/src/analyzer/mod.ts +118 -0
  251. package/src/analyzer/result.ts +393 -0
  252. package/src/analyzer/rules/bash/astTypes.ts +5 -0
  253. package/src/analyzer/rules/bash/commands/bd.ts +23 -0
  254. package/src/analyzer/rules/bash/commands/cron.ts +21 -0
  255. package/src/analyzer/rules/bash/commands/docker.ts +37 -0
  256. package/src/analyzer/rules/bash/commands/eval.ts +52 -0
  257. package/src/analyzer/rules/bash/commands/generic.ts +16 -0
  258. package/src/analyzer/rules/bash/commands/gh.ts +21 -0
  259. package/src/analyzer/rules/bash/commands/git.ts +28 -0
  260. package/src/analyzer/rules/bash/commands/mod.ts +38 -0
  261. package/src/analyzer/rules/bash/commands/node.ts +64 -0
  262. package/src/analyzer/rules/bash/commands/openspec.ts +16 -0
  263. package/src/analyzer/rules/bash/commands/pip.ts +16 -0
  264. package/src/analyzer/rules/bash/commands/sudo.ts +21 -0
  265. package/src/analyzer/rules/bash/destructive.ts +28 -0
  266. package/src/analyzer/rules/bash/extractFileRefs.ts +101 -0
  267. package/src/analyzer/rules/bash/filesystem.ts +50 -0
  268. package/src/analyzer/rules/bash/injection.ts +21 -0
  269. package/src/analyzer/rules/bash/inline-command-classifier.ts +94 -0
  270. package/src/analyzer/rules/bash/mod.ts +23 -0
  271. package/src/analyzer/rules/bash/network.ts +64 -0
  272. package/src/analyzer/rules/bash/secret-detection.ts +43 -0
  273. package/src/analyzer/rules/javascript/astTypes.ts +8 -0
  274. package/src/analyzer/rules/javascript/extractFileRefs.ts +131 -0
  275. package/src/analyzer/rules/javascript/filesystem.ts +28 -0
  276. package/src/analyzer/rules/javascript/injection.ts +21 -0
  277. package/src/analyzer/rules/javascript/mod.ts +26 -0
  278. package/src/analyzer/rules/javascript/network.ts +27 -0
  279. package/src/analyzer/rules/javascript/secret-detection.ts +68 -0
  280. package/src/analyzer/rules/javascript/subprocess.ts +16 -0
  281. package/src/analyzer/rules/markdown/astTypes.ts +35 -0
  282. package/src/analyzer/rules/markdown/extractCodeBlocks.ts +101 -0
  283. package/src/analyzer/rules/markdown/extractFileRefs.ts +179 -0
  284. package/src/analyzer/rules/markdown/mod.ts +12 -0
  285. package/src/analyzer/rules/mod.ts +77 -0
  286. package/src/analyzer/rules/python/astTypes.ts +9 -0
  287. package/src/analyzer/rules/python/extractFileRefs.ts +92 -0
  288. package/src/analyzer/rules/python/mod.ts +15 -0
  289. package/src/analyzer/rules/python/network.ts +26 -0
  290. package/src/analyzer/rules/python/secret-detection.ts +30 -0
  291. package/src/analyzer/rules/shared/file-refs.ts +38 -0
  292. package/src/analyzer/rules/shared/network-evaluators.ts +107 -0
  293. package/src/analyzer/rules/shared/prompt-injection.ts +48 -0
  294. package/src/analyzer/rules/shared/secret-evaluators.ts +13 -0
  295. package/src/analyzer/rules/text/mod.ts +12 -0
  296. package/src/analyzer/rules/typescript/mod.ts +7 -0
  297. package/src/analyzer/steps/001-discovery/discover-files.ts +211 -0
  298. package/src/analyzer/steps/001-discovery/filter-files.ts +72 -0
  299. package/src/analyzer/steps/001-discovery/mod.ts +103 -0
  300. package/src/analyzer/steps/002-permissions/mod.ts +329 -0
  301. package/src/analyzer/steps/002-permissions/scan-file.ts +258 -0
  302. package/src/analyzer/steps/002-permissions/seed-frontmatter.ts +66 -0
  303. package/src/analyzer/steps/002-permissions/synthesize.ts +42 -0
  304. package/src/analyzer/steps/003-risks/dep-risks.ts +89 -0
  305. package/src/analyzer/steps/003-risks/helpers.ts +41 -0
  306. package/src/analyzer/steps/003-risks/mod.ts +86 -0
  307. package/src/analyzer/steps/003-risks/policy.ts +38 -0
  308. package/src/analyzer/steps/003-risks/rule-mapped.ts +206 -0
  309. package/src/analyzer/steps/003-risks/scoring.ts +117 -0
  310. package/src/analyzer/steps/mod.ts +3 -0
  311. package/src/analyzer/treesitter/client.ts +120 -0
  312. package/src/analyzer/treesitter/registry.ts +198 -0
  313. package/src/analyzer/types.ts +78 -0
  314. package/src/analyzer/utils/code-block-path.ts +33 -0
  315. package/src/analyzer/utils/id-generator.ts +59 -0
  316. package/src/analyzer/utils/secret-validator.ts +29 -0
  317. package/src/analyzer/utils/url-parser.ts +25 -0
  318. package/src/deps/jsr.io/@deno-library/progress/1.5.1/deps.ts +3 -0
  319. package/src/deps/jsr.io/@deno-library/progress/1.5.1/mod.ts +265 -0
  320. package/src/deps/jsr.io/@deno-library/progress/1.5.1/multi.ts +250 -0
  321. package/src/deps/jsr.io/@deno-library/progress/1.5.1/time.ts +69 -0
  322. package/src/deps/jsr.io/@std/fmt/1.0.3/colors.ts +1004 -0
  323. package/src/deps/jsr.io/@std/internal/1.0.12/_os.ts +15 -0
  324. package/src/deps/jsr.io/@std/internal/1.0.12/os.ts +7 -0
  325. package/src/deps/jsr.io/@std/io/0.225.0/types.ts +157 -0
  326. package/src/deps/jsr.io/@std/io/0.225.0/write_all.ts +65 -0
  327. package/src/deps/jsr.io/@std/path/1.1.4/_common/assert_path.ts +10 -0
  328. package/src/deps/jsr.io/@std/path/1.1.4/_common/basename.ts +53 -0
  329. package/src/deps/jsr.io/@std/path/1.1.4/_common/common.ts +26 -0
  330. package/src/deps/jsr.io/@std/path/1.1.4/_common/constants.ts +49 -0
  331. package/src/deps/jsr.io/@std/path/1.1.4/_common/dirname.ts +9 -0
  332. package/src/deps/jsr.io/@std/path/1.1.4/_common/format.ts +25 -0
  333. package/src/deps/jsr.io/@std/path/1.1.4/_common/from_file_url.ts +12 -0
  334. package/src/deps/jsr.io/@std/path/1.1.4/_common/glob_to_reg_exp.ts +295 -0
  335. package/src/deps/jsr.io/@std/path/1.1.4/_common/normalize.ts +9 -0
  336. package/src/deps/jsr.io/@std/path/1.1.4/_common/normalize_string.ts +74 -0
  337. package/src/deps/jsr.io/@std/path/1.1.4/_common/relative.ts +10 -0
  338. package/src/deps/jsr.io/@std/path/1.1.4/_common/strip_trailing_separators.ts +25 -0
  339. package/src/deps/jsr.io/@std/path/1.1.4/_common/to_file_url.ts +17 -0
  340. package/src/deps/jsr.io/@std/path/1.1.4/basename.ts +37 -0
  341. package/src/deps/jsr.io/@std/path/1.1.4/common.ts +35 -0
  342. package/src/deps/jsr.io/@std/path/1.1.4/constants.ts +18 -0
  343. package/src/deps/jsr.io/@std/path/1.1.4/dirname.ts +30 -0
  344. package/src/deps/jsr.io/@std/path/1.1.4/extname.ts +29 -0
  345. package/src/deps/jsr.io/@std/path/1.1.4/format.ts +30 -0
  346. package/src/deps/jsr.io/@std/path/1.1.4/from_file_url.ts +30 -0
  347. package/src/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.ts +94 -0
  348. package/src/deps/jsr.io/@std/path/1.1.4/is_absolute.ts +30 -0
  349. package/src/deps/jsr.io/@std/path/1.1.4/is_glob.ts +49 -0
  350. package/src/deps/jsr.io/@std/path/1.1.4/join.ts +31 -0
  351. package/src/deps/jsr.io/@std/path/1.1.4/join_globs.ts +42 -0
  352. package/src/deps/jsr.io/@std/path/1.1.4/mod.ts +217 -0
  353. package/src/deps/jsr.io/@std/path/1.1.4/normalize.ts +33 -0
  354. package/src/deps/jsr.io/@std/path/1.1.4/normalize_glob.ts +45 -0
  355. package/src/deps/jsr.io/@std/path/1.1.4/parse.ts +44 -0
  356. package/src/deps/jsr.io/@std/path/1.1.4/posix/_util.ts +10 -0
  357. package/src/deps/jsr.io/@std/path/1.1.4/posix/basename.ts +62 -0
  358. package/src/deps/jsr.io/@std/path/1.1.4/posix/constants.ts +15 -0
  359. package/src/deps/jsr.io/@std/path/1.1.4/posix/dirname.ts +72 -0
  360. package/src/deps/jsr.io/@std/path/1.1.4/posix/extname.ts +96 -0
  361. package/src/deps/jsr.io/@std/path/1.1.4/posix/format.ts +31 -0
  362. package/src/deps/jsr.io/@std/path/1.1.4/posix/from_file_url.ts +25 -0
  363. package/src/deps/jsr.io/@std/path/1.1.4/posix/glob_to_regexp.ts +94 -0
  364. package/src/deps/jsr.io/@std/path/1.1.4/posix/is_absolute.ts +25 -0
  365. package/src/deps/jsr.io/@std/path/1.1.4/posix/join.ts +46 -0
  366. package/src/deps/jsr.io/@std/path/1.1.4/posix/join_globs.ts +45 -0
  367. package/src/deps/jsr.io/@std/path/1.1.4/posix/normalize.ts +63 -0
  368. package/src/deps/jsr.io/@std/path/1.1.4/posix/normalize_glob.ts +43 -0
  369. package/src/deps/jsr.io/@std/path/1.1.4/posix/parse.ts +121 -0
  370. package/src/deps/jsr.io/@std/path/1.1.4/posix/relative.ts +103 -0
  371. package/src/deps/jsr.io/@std/path/1.1.4/posix/resolve.ts +71 -0
  372. package/src/deps/jsr.io/@std/path/1.1.4/posix/to_file_url.ts +32 -0
  373. package/src/deps/jsr.io/@std/path/1.1.4/posix/to_namespaced_path.ts +21 -0
  374. package/src/deps/jsr.io/@std/path/1.1.4/relative.ts +32 -0
  375. package/src/deps/jsr.io/@std/path/1.1.4/resolve.ts +32 -0
  376. package/src/deps/jsr.io/@std/path/1.1.4/to_file_url.ts +30 -0
  377. package/src/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.ts +31 -0
  378. package/src/deps/jsr.io/@std/path/1.1.4/types.ts +40 -0
  379. package/src/deps/jsr.io/@std/path/1.1.4/windows/_util.ts +28 -0
  380. package/src/deps/jsr.io/@std/path/1.1.4/windows/basename.ts +54 -0
  381. package/src/deps/jsr.io/@std/path/1.1.4/windows/constants.ts +15 -0
  382. package/src/deps/jsr.io/@std/path/1.1.4/windows/dirname.ts +118 -0
  383. package/src/deps/jsr.io/@std/path/1.1.4/windows/extname.ts +90 -0
  384. package/src/deps/jsr.io/@std/path/1.1.4/windows/format.ts +31 -0
  385. package/src/deps/jsr.io/@std/path/1.1.4/windows/from_file_url.ts +34 -0
  386. package/src/deps/jsr.io/@std/path/1.1.4/windows/glob_to_regexp.ts +92 -0
  387. package/src/deps/jsr.io/@std/path/1.1.4/windows/is_absolute.ts +40 -0
  388. package/src/deps/jsr.io/@std/path/1.1.4/windows/join.ts +78 -0
  389. package/src/deps/jsr.io/@std/path/1.1.4/windows/join_globs.ts +46 -0
  390. package/src/deps/jsr.io/@std/path/1.1.4/windows/normalize.ts +136 -0
  391. package/src/deps/jsr.io/@std/path/1.1.4/windows/normalize_glob.ts +43 -0
  392. package/src/deps/jsr.io/@std/path/1.1.4/windows/parse.ts +184 -0
  393. package/src/deps/jsr.io/@std/path/1.1.4/windows/relative.ts +128 -0
  394. package/src/deps/jsr.io/@std/path/1.1.4/windows/resolve.ts +178 -0
  395. package/src/deps/jsr.io/@std/path/1.1.4/windows/to_file_url.ts +38 -0
  396. package/src/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.ts +60 -0
  397. package/src/deps/jsr.io/@std/yaml/1.0.11/_chars.ts +55 -0
  398. package/src/deps/jsr.io/@std/yaml/1.0.11/_dumper_state.ts +841 -0
  399. package/src/deps/jsr.io/@std/yaml/1.0.11/_loader_state.ts +1780 -0
  400. package/src/deps/jsr.io/@std/yaml/1.0.11/_schema.ts +183 -0
  401. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/binary.ts +127 -0
  402. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/bool.ts +37 -0
  403. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/float.ts +112 -0
  404. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/int.ts +174 -0
  405. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/map.ts +17 -0
  406. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/merge.ts +13 -0
  407. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/nil.ts +27 -0
  408. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/omap.ts +30 -0
  409. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/pairs.ts +22 -0
  410. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/regexp.ts +33 -0
  411. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/seq.ts +13 -0
  412. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/set.ts +17 -0
  413. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/str.ts +12 -0
  414. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/timestamp.ts +101 -0
  415. package/src/deps/jsr.io/@std/yaml/1.0.11/_type/undefined.ts +23 -0
  416. package/src/deps/jsr.io/@std/yaml/1.0.11/_type.ts +49 -0
  417. package/src/deps/jsr.io/@std/yaml/1.0.11/_utils.ts +16 -0
  418. package/src/deps/jsr.io/@std/yaml/1.0.11/mod.ts +54 -0
  419. package/src/deps/jsr.io/@std/yaml/1.0.11/parse.ts +128 -0
  420. package/src/deps/jsr.io/@std/yaml/1.0.11/stringify.ts +118 -0
  421. package/src/shared/deep_merge.ts +73 -0
  422. package/src/shared/mod.ts +2 -0
  423. package/src/shared/types/filetypes.ts +101 -0
  424. package/src/shared/types/findings.ts +7 -0
  425. package/src/shared/types/mod.ts +6 -0
  426. package/src/shared/types/permissions.ts +17 -0
  427. package/src/shared/types/references.ts +62 -0
  428. package/src/shared/types/risks.ts +72 -0
  429. package/src/shared/types/syntaxNode.ts +7 -0
  430. package/src/skillreader/cloudStorage/mod.ts +170 -0
  431. package/src/skillreader/factory.ts +71 -0
  432. package/src/skillreader/fs/git.ts +153 -0
  433. package/src/skillreader/fs/mod.ts +84 -0
  434. package/src/skillreader/github/base.ts +162 -0
  435. package/src/skillreader/github/githubApi.ts +40 -0
  436. package/src/skillreader/github/githubRaw.ts +24 -0
  437. package/src/skillreader/github/mod.ts +45 -0
  438. package/src/skillreader/github/utils.ts +40 -0
  439. package/src/skillreader/manifest.ts +67 -0
  440. package/src/skillreader/mod.ts +26 -0
  441. package/src/skillreader/types.ts +150 -0
  442. package/src/skillreader/utils/frontmatter-parser.ts +72 -0
  443. package/src/skillreader/utils/http-range.ts +38 -0
  444. package/src/skillreader/utils/mod.ts +12 -0
  445. package/esm/analyzer/astgrep/registry.d.ts +0 -18
  446. package/esm/analyzer/astgrep/registry.d.ts.map +0 -1
  447. package/esm/analyzer/astgrep/registry.js +0 -71
  448. package/esm/analyzer/config.d.ts +0 -27
  449. package/esm/analyzer/config.d.ts.map +0 -1
  450. package/esm/analyzer/steps/003-risks/output.d.ts +0 -3
  451. package/esm/analyzer/steps/003-risks/output.d.ts.map +0 -1
  452. package/esm/analyzer/steps/003-risks/output.js +0 -16
  453. package/esm/analyzer/treesiter/client.d.ts +0 -26
  454. package/esm/analyzer/treesiter/client.d.ts.map +0 -1
  455. package/script/analyzer/astgrep/registry.d.ts +0 -18
  456. package/script/analyzer/astgrep/registry.d.ts.map +0 -1
  457. package/script/analyzer/astgrep/registry.js +0 -109
  458. package/script/analyzer/config.d.ts +0 -27
  459. package/script/analyzer/config.d.ts.map +0 -1
  460. package/script/analyzer/steps/003-risks/output.d.ts +0 -3
  461. package/script/analyzer/steps/003-risks/output.d.ts.map +0 -1
  462. package/script/analyzer/steps/003-risks/output.js +0 -19
  463. package/script/analyzer/treesiter/client.d.ts +0 -26
  464. package/script/analyzer/treesiter/client.d.ts.map +0 -1
  465. package/script/analyzer/treesiter/client.js +0 -165
@@ -0,0 +1,31 @@
1
+ import { Parser, Query, Tree } from "web-tree-sitter";
2
+ import type { TreesitterGrammar } from "./registry.js";
3
+ import type { AnalyzerLogger } from "../types.js";
4
+ export declare class TreesitterClient {
5
+ private readonly logger;
6
+ private readonly showProgressBar;
7
+ private PARSER_BY_GRAMMAR;
8
+ private LANG_BY_GRAMMAR;
9
+ private QUERY_CACHE;
10
+ private ROOT_NODE_CACHE_BY_CONTENT;
11
+ /** Parser.init() is idempotent but we avoid re-calling it. */
12
+ private parserInitialized;
13
+ constructor(logger?: AnalyzerLogger, showProgressBar?: boolean);
14
+ private ensureParserInit;
15
+ getParser(grammar: TreesitterGrammar): Promise<Parser>;
16
+ /**
17
+ * Creates (and caches) a tree-sitter Query for the given grammar and S-expression query string.
18
+ */
19
+ createQuery(grammar: TreesitterGrammar, queryString: string): Promise<Query>;
20
+ /**
21
+ * Parses content into a tree-sitter Tree with memoization.
22
+ *
23
+ * Cache key strategy:
24
+ * - first level: content length
25
+ * - second level: fast non-cryptographic hash of content
26
+ */
27
+ parse(grammar: TreesitterGrammar, content: string): Promise<Tree>;
28
+ private getTreeCache;
29
+ private hashContent;
30
+ }
31
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/analyzer/treesitter/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,qBAAa,gBAAgB;IAYrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZpC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,eAAe,CAAoD;IAC3E,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,0BAA0B,CAG3B;IACP,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAAkB;gBAGtB,MAAM,GAAE,cAA6B,EACrC,eAAe,GAAE,OAAe;YAGvC,gBAAgB;IAOjB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnE;;OAEG;IACU,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAazF;;;;;;OAMG;IACU,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9E,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;CAStB"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TreesitterClient = void 0;
4
+ const web_tree_sitter_1 = require("web-tree-sitter");
5
+ const registry_js_1 = require("./registry.js");
6
+ const logging_js_1 = require("../logging.js");
7
+ class TreesitterClient {
8
+ constructor(logger = logging_js_1.NO_OP_LOGGER, showProgressBar = false) {
9
+ Object.defineProperty(this, "logger", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: logger
14
+ });
15
+ Object.defineProperty(this, "showProgressBar", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: showProgressBar
20
+ });
21
+ Object.defineProperty(this, "PARSER_BY_GRAMMAR", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: {}
26
+ });
27
+ Object.defineProperty(this, "LANG_BY_GRAMMAR", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: {}
32
+ });
33
+ Object.defineProperty(this, "QUERY_CACHE", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: new Map()
38
+ });
39
+ Object.defineProperty(this, "ROOT_NODE_CACHE_BY_CONTENT", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: {}
44
+ });
45
+ /** Parser.init() is idempotent but we avoid re-calling it. */
46
+ Object.defineProperty(this, "parserInitialized", {
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true,
50
+ value: false
51
+ });
52
+ }
53
+ async ensureParserInit() {
54
+ if (this.parserInitialized)
55
+ return;
56
+ await web_tree_sitter_1.Parser.init();
57
+ this.parserInitialized = true;
58
+ }
59
+ async getParser(grammar) {
60
+ if (this.PARSER_BY_GRAMMAR[grammar]) {
61
+ return this.PARSER_BY_GRAMMAR[grammar];
62
+ }
63
+ await this.ensureParserInit();
64
+ let lang = this.LANG_BY_GRAMMAR[grammar];
65
+ if (!lang) {
66
+ const wasmPath = await (0, registry_js_1.ensureGrammar)(grammar, {
67
+ logger: this.logger,
68
+ showProgressBar: this.showProgressBar,
69
+ });
70
+ lang = await web_tree_sitter_1.Language.load(wasmPath);
71
+ this.LANG_BY_GRAMMAR[grammar] = lang;
72
+ }
73
+ const parser = new web_tree_sitter_1.Parser();
74
+ parser.setLanguage(lang);
75
+ this.PARSER_BY_GRAMMAR[grammar] = parser;
76
+ return parser;
77
+ }
78
+ /**
79
+ * Creates (and caches) a tree-sitter Query for the given grammar and S-expression query string.
80
+ */
81
+ async createQuery(grammar, queryString) {
82
+ const cacheKey = `${grammar}:${queryString}`;
83
+ if (this.QUERY_CACHE.has(cacheKey)) {
84
+ return this.QUERY_CACHE.get(cacheKey);
85
+ }
86
+ await this.getParser(grammar); // ensures LANG_BY_GRAMMAR[grammar] is populated
87
+ const lang = this.LANG_BY_GRAMMAR[grammar];
88
+ const query = new web_tree_sitter_1.Query(lang, queryString);
89
+ this.QUERY_CACHE.set(cacheKey, query);
90
+ return query;
91
+ }
92
+ /**
93
+ * Parses content into a tree-sitter Tree with memoization.
94
+ *
95
+ * Cache key strategy:
96
+ * - first level: content length
97
+ * - second level: fast non-cryptographic hash of content
98
+ */
99
+ async parse(grammar, content) {
100
+ const treeCacheByLen = this.getTreeCache(grammar);
101
+ const len = content.length;
102
+ const treeCacheByHash = treeCacheByLen.get(len);
103
+ if (treeCacheByHash) {
104
+ const hash = this.hashContent(content);
105
+ const cached = treeCacheByHash.get(hash);
106
+ if (cached)
107
+ return cached;
108
+ }
109
+ const parser = await this.getParser(grammar);
110
+ const tree = parser.parse(content);
111
+ if (!tree) {
112
+ throw new Error(`Failed to parse ${grammar} content`);
113
+ }
114
+ const hash = this.hashContent(content);
115
+ const bucket = treeCacheByLen.get(len) ?? new Map();
116
+ bucket.set(hash, tree);
117
+ treeCacheByLen.set(len, bucket);
118
+ return tree;
119
+ }
120
+ getTreeCache(grammar) {
121
+ if (!this.ROOT_NODE_CACHE_BY_CONTENT[grammar]) {
122
+ this.ROOT_NODE_CACHE_BY_CONTENT[grammar] = new Map();
123
+ }
124
+ return this.ROOT_NODE_CACHE_BY_CONTENT[grammar];
125
+ }
126
+ hashContent(content) {
127
+ // FNV-1a 32-bit (fast, non-cryptographic)
128
+ let hash = 0x811c9dc5;
129
+ for (let i = 0; i < content.length; i++) {
130
+ hash ^= content.charCodeAt(i);
131
+ hash = Math.imul(hash, 0x01000193);
132
+ }
133
+ return hash >>> 0;
134
+ }
135
+ }
136
+ exports.TreesitterClient = TreesitterClient;
@@ -0,0 +1,73 @@
1
+ import type { AnalyzerLogger } from "../types.js";
2
+ export type GrammarSpec = {
3
+ /** Local filename used in the cache directory. */
4
+ filename: string;
5
+ /** Exact, version-pinned URL to download the grammar .wasm from. */
6
+ url: string;
7
+ };
8
+ /**
9
+ * Grammar specifications. All URLs are exact version-pinned to ensure
10
+ * ABI compatibility with web-tree-sitter@0.25.4.
11
+ *
12
+ * Grammar .wasm files are compiled by the tree-sitter CLI against a specific
13
+ * WASM ABI. Mixing grammar versions with a different web-tree-sitter version
14
+ * causes silent parse failures, so both must be pinned together.
15
+ */
16
+ export declare const GRAMMAR_SPECS: {
17
+ bash: {
18
+ filename: string;
19
+ url: string;
20
+ };
21
+ javascript: {
22
+ filename: string;
23
+ url: string;
24
+ };
25
+ python: {
26
+ filename: string;
27
+ url: string;
28
+ };
29
+ typescript: {
30
+ filename: string;
31
+ url: string;
32
+ };
33
+ tsx: {
34
+ filename: string;
35
+ url: string;
36
+ };
37
+ markdown: {
38
+ filename: string;
39
+ url: string;
40
+ };
41
+ "markdown-inline": {
42
+ filename: string;
43
+ url: string;
44
+ };
45
+ };
46
+ /** Available languages for tree-sitter grammars. */
47
+ export type TreesitterGrammar = keyof typeof GRAMMAR_SPECS;
48
+ /**
49
+ * Returns the skill-lab cache directory, following XDG conventions.
50
+ *
51
+ * Priority:
52
+ * 1. $SKILL_LAB_CACHE_DIR — explicit override
53
+ * 2. $XDG_CACHE_HOME/skill-lab — if XDG_CACHE_HOME is set
54
+ * 3. Platform default:
55
+ * Linux/macOS: ~/.cache/skill-lab
56
+ * Windows: %LOCALAPPDATA%\skill-lab\Cache
57
+ */
58
+ export declare function getCacheDir(): string;
59
+ /**
60
+ * Ensures a grammar .wasm file is present in the local cache.
61
+ *
62
+ * On first call for a given language, downloads the file from the pinned URL
63
+ * in GRAMMAR_SPECS. Subsequent calls return immediately from cache.
64
+ *
65
+ * @param lang - Language key (e.g. "bash", "typescript", "markdown-inline")
66
+ * @param opts.logger - Optional logger for download events
67
+ * @returns Absolute path to the cached .wasm file
68
+ */
69
+ export declare function ensureGrammar(lang: string, opts?: {
70
+ logger?: AnalyzerLogger;
71
+ showProgressBar?: boolean;
72
+ }): Promise<string>;
73
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/analyzer/treesitter/registry.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,MAAM,MAAM,WAAW,GAAG;IACtB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Ba,CAAC;AAExC,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,aAAa,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAgBpC;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,GACF,OAAO,CAAC,MAAM,CAAC,CAgFjB"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GRAMMAR_SPECS = void 0;
40
+ exports.getCacheDir = getCacheDir;
41
+ exports.ensureGrammar = ensureGrammar;
42
+ /**
43
+ * Shared grammar registry for web-tree-sitter WASM grammars.
44
+ *
45
+ * Used by both AstGrepClient and TreesitterClient. Grammar .wasm files are
46
+ * downloaded from GitHub Releases on first use and cached locally following
47
+ * the XDG cache directory convention.
48
+ *
49
+ * Cache location (in priority order):
50
+ * 1. $SKILL_LAB_CACHE_DIR
51
+ * 2. $XDG_CACHE_HOME/skill-lab
52
+ * 3. ~/.cache/skill-lab (Linux/macOS)
53
+ * %LOCALAPPDATA%\skill-lab\Cache (Windows)
54
+ */
55
+ const dntShim = __importStar(require("../../_dnt.shims.js"));
56
+ const mod_js_1 = require("../../deps/jsr.io/@std/path/1.1.4/mod.js");
57
+ const mod_js_2 = __importDefault(require("../../deps/jsr.io/@deno-library/progress/1.5.1/mod.js"));
58
+ const TREESITTER_GRAMMER_SUBDIR = "treesitter/grammars";
59
+ const ANSI_CLEAR_LINE = "\r\x1b[K";
60
+ const ENCODER = new TextEncoder();
61
+ /**
62
+ * Grammar specifications. All URLs are exact version-pinned to ensure
63
+ * ABI compatibility with web-tree-sitter@0.25.4.
64
+ *
65
+ * Grammar .wasm files are compiled by the tree-sitter CLI against a specific
66
+ * WASM ABI. Mixing grammar versions with a different web-tree-sitter version
67
+ * causes silent parse failures, so both must be pinned together.
68
+ */
69
+ exports.GRAMMAR_SPECS = {
70
+ bash: {
71
+ filename: "bash.wasm",
72
+ url: "https://github.com/tree-sitter/tree-sitter-bash/releases/download/v0.25.1/tree-sitter-bash.wasm",
73
+ },
74
+ javascript: {
75
+ filename: "javascript.wasm",
76
+ url: "https://github.com/tree-sitter/tree-sitter-javascript/releases/download/v0.25.0/tree-sitter-javascript.wasm",
77
+ },
78
+ python: {
79
+ filename: "python.wasm",
80
+ url: "https://github.com/tree-sitter/tree-sitter-python/releases/download/v0.25.0/tree-sitter-python.wasm",
81
+ },
82
+ typescript: {
83
+ filename: "typescript.wasm",
84
+ url: "https://github.com/tree-sitter/tree-sitter-typescript/releases/download/v0.23.2/tree-sitter-typescript.wasm",
85
+ },
86
+ tsx: {
87
+ filename: "tsx.wasm",
88
+ url: "https://github.com/tree-sitter/tree-sitter-typescript/releases/download/v0.23.2/tree-sitter-tsx.wasm",
89
+ },
90
+ markdown: {
91
+ filename: "markdown.wasm",
92
+ url: "https://github.com/tree-sitter-grammars/tree-sitter-markdown/releases/download/v0.5.2/tree-sitter-markdown.wasm",
93
+ },
94
+ "markdown-inline": {
95
+ filename: "markdown_inline.wasm",
96
+ url: "https://github.com/tree-sitter-grammars/tree-sitter-markdown/releases/download/v0.5.2/tree-sitter-markdown_inline.wasm",
97
+ },
98
+ };
99
+ /**
100
+ * Returns the skill-lab cache directory, following XDG conventions.
101
+ *
102
+ * Priority:
103
+ * 1. $SKILL_LAB_CACHE_DIR — explicit override
104
+ * 2. $XDG_CACHE_HOME/skill-lab — if XDG_CACHE_HOME is set
105
+ * 3. Platform default:
106
+ * Linux/macOS: ~/.cache/skill-lab
107
+ * Windows: %LOCALAPPDATA%\skill-lab\Cache
108
+ */
109
+ function getCacheDir() {
110
+ const explicit = dntShim.Deno.env.get("SKILL_LAB_CACHE_DIR");
111
+ if (explicit)
112
+ return explicit;
113
+ const xdgCache = dntShim.Deno.env.get("XDG_CACHE_HOME");
114
+ if (xdgCache)
115
+ return (0, mod_js_1.join)(xdgCache, "skill-lab");
116
+ if (dntShim.Deno.build.os === "windows") {
117
+ const localAppData = dntShim.Deno.env.get("LOCALAPPDATA");
118
+ if (localAppData)
119
+ return (0, mod_js_1.join)(localAppData, "skill-lab", "Cache");
120
+ const userProfile = dntShim.Deno.env.get("USERPROFILE") ?? "~";
121
+ return (0, mod_js_1.join)(userProfile, "AppData", "Local", "skill-lab", "Cache");
122
+ }
123
+ const home = dntShim.Deno.env.get("HOME") ?? "~";
124
+ return (0, mod_js_1.join)(home, ".cache", "skill-lab");
125
+ }
126
+ /**
127
+ * Ensures a grammar .wasm file is present in the local cache.
128
+ *
129
+ * On first call for a given language, downloads the file from the pinned URL
130
+ * in GRAMMAR_SPECS. Subsequent calls return immediately from cache.
131
+ *
132
+ * @param lang - Language key (e.g. "bash", "typescript", "markdown-inline")
133
+ * @param opts.logger - Optional logger for download events
134
+ * @returns Absolute path to the cached .wasm file
135
+ */
136
+ async function ensureGrammar(lang, opts) {
137
+ if (!(lang in exports.GRAMMAR_SPECS)) {
138
+ throw new Error(`No grammar spec for language: "${lang}". Available: ${Object.keys(exports.GRAMMAR_SPECS).join(", ")}`);
139
+ }
140
+ const spec = exports.GRAMMAR_SPECS[lang];
141
+ const cacheDir = (0, mod_js_1.join)(getCacheDir(), TREESITTER_GRAMMER_SUBDIR);
142
+ const cachedPath = (0, mod_js_1.join)(cacheDir, spec.filename);
143
+ // Return immediately if already cached
144
+ try {
145
+ const stat = await dntShim.Deno.stat(cachedPath);
146
+ if (stat.isFile)
147
+ return cachedPath;
148
+ }
149
+ catch {
150
+ // Not cached yet — fall through to download
151
+ }
152
+ // Download and write to cache
153
+ await dntShim.Deno.mkdir(cacheDir, { recursive: true });
154
+ if (dntShim.Deno.stderr.isTerminal()) {
155
+ dntShim.Deno.stderr.writeSync(ENCODER.encode(ANSI_CLEAR_LINE));
156
+ }
157
+ const resp = await fetch(spec.url);
158
+ if (!resp.ok) {
159
+ throw new Error(`Failed to download grammar ${spec.filename}: HTTP ${resp.status} from ${spec.url}`);
160
+ }
161
+ const shouldRenderProgress = (opts?.showProgressBar ?? false) && dntShim.Deno.stdout.isTerminal();
162
+ const contentLenHeader = resp.headers.get("content-length");
163
+ const contentLen = parseInt(contentLenHeader);
164
+ const scanBar = shouldRenderProgress
165
+ ? new mod_js_2.default({
166
+ total: contentLen,
167
+ clear: true,
168
+ output: dntShim.Deno.stderr,
169
+ complete: "=",
170
+ incomplete: "-",
171
+ display: `Installing ${lang} grammar [:bar] :percent ETA :eta`,
172
+ })
173
+ : null;
174
+ let bytes;
175
+ try {
176
+ if (!resp.body) {
177
+ bytes = new Uint8Array(await resp.arrayBuffer());
178
+ }
179
+ else {
180
+ const reader = resp.body.getReader();
181
+ const chunks = [];
182
+ let received = 0;
183
+ while (true) {
184
+ const { value, done } = await reader.read();
185
+ if (done)
186
+ break;
187
+ if (!value)
188
+ continue;
189
+ chunks.push(value);
190
+ received += value.byteLength;
191
+ scanBar?.render(received);
192
+ }
193
+ bytes = new Uint8Array(received);
194
+ let offset = 0;
195
+ for (const chunk of chunks) {
196
+ bytes.set(chunk, offset);
197
+ offset += chunk.byteLength;
198
+ }
199
+ }
200
+ }
201
+ finally {
202
+ scanBar?.end();
203
+ }
204
+ await dntShim.Deno.writeFile(cachedPath, bytes);
205
+ return cachedPath;
206
+ }
@@ -1,11 +1,14 @@
1
1
  import type { SkillFile, SkillReader } from "../skillreader/mod.js";
2
2
  import type { FileRefDiscoveryMethod, FileReference, FileType, Finding, Frontmatter, Permission, Reference, ReferenceType, Risk } from "../shared/mod.js";
3
3
  import { AstGrepClient } from "./astgrep/client.js";
4
- import { TreesitterClient } from "./treesiter/client.js";
5
- export type AnalyzerConfig = {
6
- maxFileSize: number;
7
- maxFileCount: number;
8
- maxScanDepth: number;
4
+ import { TreesitterClient } from "./treesitter/client.js";
5
+ import type { AnalyzerConfig, ScanConfig } from "./config/mod.js";
6
+ export type { AnalyzerConfig, ScanConfig };
7
+ export type AnalyzerLogger = {
8
+ debug: (template: string, props?: Record<string, unknown>) => void;
9
+ info: (template: string, props?: Record<string, unknown>) => void;
10
+ warn: (template: string, props?: Record<string, unknown>) => void;
11
+ error: (template: string, props?: Record<string, unknown>) => void;
9
12
  };
10
13
  export type AnalyzerState = {
11
14
  skillId: string;
@@ -18,41 +21,24 @@ export type AnalyzerState = {
18
21
  risks: Risk[];
19
22
  warnings: string[];
20
23
  metadata: {
21
- scannedFiles: string[];
24
+ scannedFiles: Set<string>;
22
25
  skippedFiles: Array<{
23
26
  path: string;
24
27
  reason: string;
25
28
  referenceBy?: Reference;
26
29
  }>;
27
30
  rulesUsed: string[];
28
- config: AnalyzerConfig;
29
- };
30
- };
31
- export type AnalyzerResult = {
32
- analyzedAt: string;
33
- skillId: string;
34
- skillVersionId: string;
35
- permissions: Permission[];
36
- risks: Risk[];
37
- score: number;
38
- riskLevel: "safe" | "caution" | "attention" | "risky" | "avoid";
39
- summary: string;
40
- warnings: string[];
41
- metadata: {
42
- scannedFiles: string[];
43
- skippedFiles: Array<{
44
- path: string;
45
- reason: string;
46
- }>;
47
- rulesUsed: string[];
48
- frontmatterRangeEnd?: number;
49
- config: AnalyzerConfig;
31
+ config: ScanConfig;
50
32
  };
51
33
  };
52
34
  export type AnalyzerContext = {
53
35
  skillReader: SkillReader;
54
36
  treesitterClient: TreesitterClient;
55
37
  astgrepClient: AstGrepClient;
38
+ logger?: AnalyzerLogger;
39
+ showProgressBar?: boolean;
40
+ /** Resolved (defaults-merged) user config. */
41
+ config: AnalyzerConfig;
56
42
  };
57
43
  /** A file path or package reference discovered in source content. */
58
44
  export type FileRefDiscovery = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analyzer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analyzer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EACR,sBAAsB,EACtB,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,SAAS,EACT,aAAa,EACb,IAAI,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QACN,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,SAAS,CAAA;SAAE,CAAC,CAAC;QAC/E,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;KACtB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,iBAAiB,CAAC,EAAE,CAChB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,KACd,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1B,eAAe,CAAC,EAAE,CACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,KACd,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACtD,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC;CACpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { bgGreen, bgWhite, stripAnsiCode } from "../../../@std/fmt/1.0.3/colors.js";
2
+ export { writeAll } from "../../../@std/io/0.225.0/write_all.js";
3
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@deno-library/progress/1.5.1/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeAll = exports.stripAnsiCode = exports.bgWhite = exports.bgGreen = void 0;
4
+ var colors_js_1 = require("../../../@std/fmt/1.0.3/colors.js");
5
+ Object.defineProperty(exports, "bgGreen", { enumerable: true, get: function () { return colors_js_1.bgGreen; } });
6
+ Object.defineProperty(exports, "bgWhite", { enumerable: true, get: function () { return colors_js_1.bgWhite; } });
7
+ Object.defineProperty(exports, "stripAnsiCode", { enumerable: true, get: function () { return colors_js_1.stripAnsiCode; } });
8
+ var write_all_js_1 = require("../../../@std/io/0.225.0/write_all.js");
9
+ Object.defineProperty(exports, "writeAll", { enumerable: true, get: function () { return write_all_js_1.writeAll; } });
10
+ // export type { Writer } from "jsr:@std/io@0.225.0/types";
@@ -0,0 +1,93 @@
1
+ import * as dntShim from "../../../../../_dnt.shims.js";
2
+ import { type prettyTimeOptions } from "./time.js";
3
+ export { MultiProgressBar } from "./multi.js";
4
+ interface constructorOptions {
5
+ title?: string;
6
+ total?: number;
7
+ width?: number;
8
+ complete?: string;
9
+ preciseBar?: string[];
10
+ incomplete?: string;
11
+ clear?: boolean;
12
+ interval?: number;
13
+ display?: string;
14
+ prettyTime?: boolean;
15
+ output?: typeof dntShim.Deno.stdout | typeof dntShim.Deno.stderr;
16
+ }
17
+ interface renderOptions {
18
+ title?: string;
19
+ total?: number;
20
+ text?: string;
21
+ complete?: string;
22
+ preciseBar?: string[];
23
+ incomplete?: string;
24
+ prettyTimeOptions?: prettyTimeOptions;
25
+ }
26
+ /**
27
+ * ProgressBar single progress bar.
28
+ */
29
+ export default class ProgressBar {
30
+ #private;
31
+ title: string;
32
+ total?: number;
33
+ width: number;
34
+ complete: string;
35
+ preciseBar: string[];
36
+ incomplete: string;
37
+ clear: boolean;
38
+ interval: number;
39
+ display: string;
40
+ prettyTime: boolean;
41
+ private lastStr;
42
+ private lastStrLen;
43
+ private start;
44
+ private lastRenderTime;
45
+ private encoder;
46
+ private writer;
47
+ /**
48
+ * Title, total, complete, incomplete, can also be set or changed in the render method
49
+ *
50
+ * - title Progress bar title, default: ''
51
+ * - total total number of ticks to complete,
52
+ * - width the displayed width of the progress, default: 50
53
+ * - complete completion character, default: colors.bgGreen(' '), can use any string
54
+ * - incomplete incomplete character, default: colors.bgWhite(' '), can use any string
55
+ * - clear clear the bar on completion, default: false
56
+ * - interval minimum time between updates in milliseconds, default: 16
57
+ * - display What is displayed and display order, default: ':title :percent :bar :time :completed/:total'
58
+ * - prettyTime Whether to pretty print time and eta
59
+ * - output Output stream, can be Deno.stdout or Deno.stderr, default is Deno.stdout
60
+ */
61
+ constructor({ title, total, width, complete, preciseBar, incomplete, clear, interval, display, prettyTime, output, }?: constructorOptions);
62
+ /**
63
+ * "render" the progress bar
64
+ *
65
+ * - `completed` completed value
66
+ * - `options` optional parameters
67
+ * - `title` progress bar title
68
+ * - `total` total number of ticks to complete
69
+ * - `text` optional, custom text, default: ''
70
+ * - `complete` completion character, If you want to change at a certain moment. For example, it turns red at 20%
71
+ * - `incomplete` incomplete character, If you want to change at a certain moment. For example, it turns red at 20%
72
+ * - `prettyTimeOptions` prettyTime options
73
+ */
74
+ render(completed: number, options?: renderOptions): Promise<void>;
75
+ /**
76
+ * end: end a progress bar.
77
+ * No need to call in most cases, unless you want to end before 100%
78
+ */
79
+ end(): Promise<void>;
80
+ /**
81
+ * interrupt the progress bar and write a message above it
82
+ *
83
+ * @param message The message to write
84
+ */
85
+ console(message: string | number): Promise<void>;
86
+ private write;
87
+ private get ttyColumns();
88
+ private breakLine;
89
+ private stdoutWrite;
90
+ private clearLine;
91
+ private showCursor;
92
+ }
93
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@deno-library/progress/1.5.1/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAIxD,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAU9C,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAClE;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IAGpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,OAAO,CAAqB;IAGpC,OAAO,CAAC,MAAM,CAA0D;IAExE;;;;;;;;;;;;;OAaG;gBACS,EACV,KAAU,EACV,KAAK,EACL,KAAU,EACV,QAAuB,EACvB,UAAe,EACf,UAAyB,EACzB,KAAa,EACb,QAAa,EACb,OAAO,EACP,UAAkB,EAClB,MAA4B,GAC7B,GAAE,kBAAuB;IAgB1B;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqF3E;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1B;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD,OAAO,CAAC,KAAK;IAIb,OAAO,KAAK,UAAU,GAGrB;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;CAGnB"}