@vltpkg/query 1.0.0-rc.8 → 1.0.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 (463) hide show
  1. package/dist/{esm/attribute.d.ts → attribute.d.ts} +0 -1
  2. package/dist/{esm/attribute.js → attribute.js} +0 -1
  3. package/dist/{esm/combinator.d.ts → combinator.d.ts} +0 -1
  4. package/dist/{esm/combinator.js → combinator.js} +0 -1
  5. package/dist/{esm/id.d.ts → id.d.ts} +0 -1
  6. package/dist/{esm/id.js → id.js} +0 -1
  7. package/dist/{esm/index.d.ts → index.d.ts} +3 -3
  8. package/dist/{esm/index.js → index.js} +14 -8
  9. package/dist/{esm/parser.d.ts → parser.d.ts} +0 -1
  10. package/dist/{esm/parser.js → parser.js} +2 -2
  11. package/dist/{esm/pseudo → pseudo}/abandoned.d.ts +0 -1
  12. package/dist/{esm/pseudo → pseudo}/abandoned.js +0 -1
  13. package/dist/{esm/pseudo → pseudo}/attr.d.ts +0 -1
  14. package/dist/{esm/pseudo → pseudo}/attr.js +0 -1
  15. package/dist/{esm/pseudo → pseudo}/built.d.ts +0 -1
  16. package/dist/{esm/pseudo → pseudo}/built.js +0 -1
  17. package/dist/{esm/pseudo → pseudo}/confused.d.ts +0 -1
  18. package/dist/{esm/pseudo → pseudo}/confused.js +0 -1
  19. package/dist/{esm/pseudo → pseudo}/cve.d.ts +6 -3
  20. package/dist/pseudo/cve.js +61 -0
  21. package/dist/{esm/pseudo → pseudo}/cwe.d.ts +6 -3
  22. package/dist/pseudo/cwe.js +61 -0
  23. package/dist/{esm/pseudo → pseudo}/debug.d.ts +0 -1
  24. package/dist/{esm/pseudo → pseudo}/debug.js +0 -1
  25. package/dist/{esm/pseudo → pseudo}/deprecated.d.ts +0 -1
  26. package/dist/{esm/pseudo → pseudo}/deprecated.js +0 -1
  27. package/dist/{esm/pseudo → pseudo}/dev.d.ts +0 -1
  28. package/dist/{esm/pseudo → pseudo}/dev.js +0 -1
  29. package/dist/pseudo/diff.d.ts +26 -0
  30. package/dist/pseudo/diff.js +75 -0
  31. package/dist/pseudo/dist.d.ts +22 -0
  32. package/dist/pseudo/dist.js +110 -0
  33. package/dist/{esm/pseudo → pseudo}/dynamic.d.ts +0 -1
  34. package/dist/{esm/pseudo → pseudo}/dynamic.js +0 -1
  35. package/dist/{esm/pseudo → pseudo}/empty.d.ts +0 -1
  36. package/dist/{esm/pseudo → pseudo}/empty.js +0 -1
  37. package/dist/{esm/pseudo → pseudo}/entropic.d.ts +0 -1
  38. package/dist/{esm/pseudo → pseudo}/entropic.js +0 -1
  39. package/dist/{esm/pseudo → pseudo}/env.d.ts +0 -1
  40. package/dist/{esm/pseudo → pseudo}/env.js +0 -1
  41. package/dist/{esm/pseudo → pseudo}/eval.d.ts +0 -1
  42. package/dist/{esm/pseudo → pseudo}/eval.js +0 -1
  43. package/dist/{esm/pseudo → pseudo}/fs.d.ts +0 -1
  44. package/dist/{esm/pseudo → pseudo}/fs.js +0 -1
  45. package/dist/{esm/pseudo → pseudo}/helpers.d.ts +0 -1
  46. package/dist/{esm/pseudo → pseudo}/helpers.js +1 -2
  47. package/dist/{esm/pseudo → pseudo}/host.d.ts +0 -1
  48. package/dist/{esm/pseudo → pseudo}/host.js +0 -1
  49. package/dist/pseudo/hostname.d.ts +11 -0
  50. package/dist/pseudo/hostname.js +140 -0
  51. package/dist/{esm/pseudo → pseudo}/license.d.ts +0 -1
  52. package/dist/{esm/pseudo → pseudo}/license.js +0 -1
  53. package/dist/{esm/pseudo → pseudo}/link.d.ts +0 -1
  54. package/dist/{esm/pseudo → pseudo}/link.js +0 -1
  55. package/dist/pseudo/malware.d.ts +10 -0
  56. package/dist/pseudo/malware.js +26 -0
  57. package/dist/{esm/pseudo → pseudo}/minified.d.ts +0 -1
  58. package/dist/{esm/pseudo → pseudo}/minified.js +0 -1
  59. package/dist/{esm/pseudo → pseudo}/missing.d.ts +0 -1
  60. package/dist/{esm/pseudo → pseudo}/missing.js +0 -1
  61. package/dist/{esm/pseudo → pseudo}/native.d.ts +0 -1
  62. package/dist/{esm/pseudo → pseudo}/native.js +0 -1
  63. package/dist/{esm/pseudo → pseudo}/network.d.ts +0 -1
  64. package/dist/{esm/pseudo → pseudo}/network.js +0 -1
  65. package/dist/{esm/pseudo → pseudo}/obfuscated.d.ts +0 -1
  66. package/dist/{esm/pseudo → pseudo}/obfuscated.js +0 -1
  67. package/dist/{esm/pseudo → pseudo}/optional.d.ts +0 -1
  68. package/dist/{esm/pseudo → pseudo}/optional.js +0 -1
  69. package/dist/{esm/pseudo → pseudo}/outdated.d.ts +0 -1
  70. package/dist/{esm/pseudo → pseudo}/outdated.js +0 -1
  71. package/dist/{esm/pseudo → pseudo}/overridden.d.ts +0 -1
  72. package/dist/{esm/pseudo → pseudo}/overridden.js +0 -1
  73. package/dist/{esm/pseudo → pseudo}/path.d.ts +0 -1
  74. package/dist/{esm/pseudo → pseudo}/path.js +1 -4
  75. package/dist/{esm/pseudo → pseudo}/peer.d.ts +0 -1
  76. package/dist/{esm/pseudo → pseudo}/peer.js +0 -1
  77. package/dist/{esm/pseudo → pseudo}/prerelease.d.ts +0 -1
  78. package/dist/{esm/pseudo → pseudo}/prerelease.js +0 -1
  79. package/dist/{esm/pseudo → pseudo}/private.d.ts +0 -1
  80. package/dist/{esm/pseudo → pseudo}/private.js +0 -1
  81. package/dist/{esm/pseudo → pseudo}/prod.d.ts +0 -1
  82. package/dist/{esm/pseudo → pseudo}/prod.js +0 -1
  83. package/dist/{esm/pseudo → pseudo}/published.d.ts +0 -1
  84. package/dist/{esm/pseudo → pseudo}/published.js +0 -1
  85. package/dist/pseudo/registry.d.ts +10 -0
  86. package/dist/pseudo/registry.js +24 -0
  87. package/dist/{esm/pseudo → pseudo}/root.d.ts +0 -1
  88. package/dist/{esm/pseudo → pseudo}/root.js +0 -1
  89. package/dist/{esm/pseudo → pseudo}/scanned.d.ts +0 -1
  90. package/dist/{esm/pseudo → pseudo}/scanned.js +0 -1
  91. package/dist/{esm/pseudo → pseudo}/score.d.ts +0 -1
  92. package/dist/{esm/pseudo → pseudo}/score.js +0 -1
  93. package/dist/{esm/pseudo → pseudo}/scripts.d.ts +0 -1
  94. package/dist/{esm/pseudo → pseudo}/scripts.js +1 -2
  95. package/dist/{esm/pseudo → pseudo}/semver.d.ts +3 -2
  96. package/dist/{esm/pseudo → pseudo}/semver.js +43 -7
  97. package/dist/{esm/pseudo → pseudo}/severity.d.ts +0 -1
  98. package/dist/{esm/pseudo → pseudo}/severity.js +0 -1
  99. package/dist/{esm/pseudo → pseudo}/shell.d.ts +0 -1
  100. package/dist/{esm/pseudo → pseudo}/shell.js +0 -1
  101. package/dist/{esm/pseudo → pseudo}/shrinkwrap.d.ts +0 -1
  102. package/dist/{esm/pseudo → pseudo}/shrinkwrap.js +0 -1
  103. package/dist/{esm/pseudo → pseudo}/spec.d.ts +0 -1
  104. package/dist/{esm/pseudo → pseudo}/spec.js +0 -1
  105. package/dist/{esm/pseudo → pseudo}/squat.d.ts +0 -1
  106. package/dist/{esm/pseudo → pseudo}/squat.js +0 -1
  107. package/dist/{esm/pseudo → pseudo}/suspicious.d.ts +0 -1
  108. package/dist/{esm/pseudo → pseudo}/suspicious.js +0 -1
  109. package/dist/{esm/pseudo → pseudo}/tracker.d.ts +0 -1
  110. package/dist/{esm/pseudo → pseudo}/tracker.js +0 -1
  111. package/dist/{esm/pseudo → pseudo}/trivial.d.ts +0 -1
  112. package/dist/{esm/pseudo → pseudo}/trivial.js +0 -1
  113. package/dist/{esm/pseudo → pseudo}/type.d.ts +0 -1
  114. package/dist/{esm/pseudo → pseudo}/type.js +0 -1
  115. package/dist/{esm/pseudo → pseudo}/undesirable.d.ts +0 -1
  116. package/dist/{esm/pseudo → pseudo}/undesirable.js +0 -1
  117. package/dist/{esm/pseudo → pseudo}/unknown.d.ts +0 -1
  118. package/dist/{esm/pseudo → pseudo}/unknown.js +0 -1
  119. package/dist/{esm/pseudo → pseudo}/unmaintained.d.ts +0 -1
  120. package/dist/{esm/pseudo → pseudo}/unmaintained.js +0 -1
  121. package/dist/{esm/pseudo → pseudo}/unpopular.d.ts +0 -1
  122. package/dist/{esm/pseudo → pseudo}/unpopular.js +0 -1
  123. package/dist/{esm/pseudo → pseudo}/unstable.d.ts +0 -1
  124. package/dist/{esm/pseudo → pseudo}/unstable.js +0 -1
  125. package/dist/pseudo/vuln.d.ts +22 -0
  126. package/dist/pseudo/vuln.js +220 -0
  127. package/dist/{esm/pseudo → pseudo}/workspace.d.ts +0 -1
  128. package/dist/{esm/pseudo → pseudo}/workspace.js +0 -1
  129. package/dist/{esm/pseudo.d.ts → pseudo.d.ts} +0 -1
  130. package/dist/{esm/pseudo.js → pseudo.js} +16 -1
  131. package/dist/{esm/types.d.ts → types.d.ts} +10 -3
  132. package/dist/types.js +1 -0
  133. package/package.json +46 -47
  134. package/skills/dss-query/REFERENCE.md +123 -0
  135. package/skills/dss-query/SKILL.md +190 -0
  136. package/skills/dss-query/evals/README.md +79 -0
  137. package/skills/dss-query/evals/evals.json +89 -0
  138. package/skills/dss-query/evals/grade.mjs +480 -0
  139. package/src/attribute.ts +186 -0
  140. package/src/combinator.ts +132 -0
  141. package/src/id.ts +46 -0
  142. package/src/index.ts +620 -0
  143. package/src/parser.ts +122 -0
  144. package/src/pseudo/abandoned.ts +9 -0
  145. package/src/pseudo/attr.ts +92 -0
  146. package/src/pseudo/built.ts +19 -0
  147. package/src/pseudo/confused.ts +29 -0
  148. package/src/pseudo/cve.ts +93 -0
  149. package/src/pseudo/cwe.ts +97 -0
  150. package/src/pseudo/debug.ts +9 -0
  151. package/src/pseudo/deprecated.ts +9 -0
  152. package/src/pseudo/dev.ts +18 -0
  153. package/src/pseudo/diff.ts +90 -0
  154. package/src/pseudo/dist.ts +144 -0
  155. package/src/pseudo/dynamic.ts +9 -0
  156. package/src/pseudo/empty.ts +15 -0
  157. package/src/pseudo/entropic.ts +9 -0
  158. package/src/pseudo/env.ts +6 -0
  159. package/src/pseudo/eval.ts +9 -0
  160. package/src/pseudo/fs.ts +9 -0
  161. package/src/pseudo/helpers.ts +106 -0
  162. package/src/pseudo/host.ts +111 -0
  163. package/src/pseudo/hostname.ts +156 -0
  164. package/src/pseudo/license.ts +134 -0
  165. package/src/pseudo/link.ts +30 -0
  166. package/src/pseudo/malware.ts +41 -0
  167. package/src/pseudo/minified.ts +9 -0
  168. package/src/pseudo/missing.ts +16 -0
  169. package/src/pseudo/native.ts +9 -0
  170. package/src/pseudo/network.ts +9 -0
  171. package/src/pseudo/obfuscated.ts +9 -0
  172. package/src/pseudo/optional.ts +18 -0
  173. package/src/pseudo/outdated.ts +305 -0
  174. package/src/pseudo/overridden.ts +20 -0
  175. package/src/pseudo/path.ts +146 -0
  176. package/src/pseudo/peer.ts +18 -0
  177. package/src/pseudo/prerelease.ts +47 -0
  178. package/src/pseudo/private.ts +19 -0
  179. package/src/pseudo/prod.ts +18 -0
  180. package/src/pseudo/published.ts +248 -0
  181. package/src/pseudo/registry.ts +29 -0
  182. package/src/pseudo/root.ts +19 -0
  183. package/src/pseudo/scanned.ts +20 -0
  184. package/src/pseudo/score.ts +186 -0
  185. package/src/pseudo/scripts.ts +54 -0
  186. package/src/pseudo/semver.ts +320 -0
  187. package/src/pseudo/severity.ts +231 -0
  188. package/src/pseudo/shell.ts +9 -0
  189. package/src/pseudo/shrinkwrap.ts +9 -0
  190. package/src/pseudo/spec.ts +131 -0
  191. package/src/pseudo/squat.ts +225 -0
  192. package/src/pseudo/suspicious.ts +9 -0
  193. package/src/pseudo/tracker.ts +9 -0
  194. package/src/pseudo/trivial.ts +9 -0
  195. package/src/pseudo/type.ts +26 -0
  196. package/src/pseudo/undesirable.ts +9 -0
  197. package/src/pseudo/unknown.ts +9 -0
  198. package/src/pseudo/unmaintained.ts +9 -0
  199. package/src/pseudo/unpopular.ts +9 -0
  200. package/src/pseudo/unstable.ts +9 -0
  201. package/src/pseudo/vuln.ts +273 -0
  202. package/src/pseudo/workspace.ts +22 -0
  203. package/src/pseudo.ts +413 -0
  204. package/src/types.ts +165 -0
  205. package/tap-snapshots/test/attribute.ts.test.cjs +304 -0
  206. package/tap-snapshots/test/combinator.ts.test.cjs +333 -0
  207. package/tap-snapshots/test/id.ts.test.cjs +118 -0
  208. package/tap-snapshots/test/parser.ts.test.cjs +344 -0
  209. package/tap-snapshots/test/pseudo/abandoned.ts.test.cjs +18 -0
  210. package/tap-snapshots/test/pseudo/attr.ts.test.cjs +161 -0
  211. package/tap-snapshots/test/pseudo/built.ts.test.cjs +70 -0
  212. package/tap-snapshots/test/pseudo/confused.ts.test.cjs +32 -0
  213. package/tap-snapshots/test/pseudo/cve.ts.test.cjs +49 -0
  214. package/tap-snapshots/test/pseudo/cwe.ts.test.cjs +49 -0
  215. package/tap-snapshots/test/pseudo/debug.ts.test.cjs +18 -0
  216. package/tap-snapshots/test/pseudo/deprecated.ts.test.cjs +18 -0
  217. package/tap-snapshots/test/pseudo/dist.ts.test.cjs +30 -0
  218. package/tap-snapshots/test/pseudo/dynamic.ts.test.cjs +18 -0
  219. package/tap-snapshots/test/pseudo/empty.ts.test.cjs +50 -0
  220. package/tap-snapshots/test/pseudo/entropic.ts.test.cjs +18 -0
  221. package/tap-snapshots/test/pseudo/env.ts.test.cjs +18 -0
  222. package/tap-snapshots/test/pseudo/eval.ts.test.cjs +18 -0
  223. package/tap-snapshots/test/pseudo/fs.ts.test.cjs +18 -0
  224. package/tap-snapshots/test/pseudo/helpers.ts.test.cjs +18 -0
  225. package/tap-snapshots/test/pseudo/hostname.ts.test.cjs +148 -0
  226. package/tap-snapshots/test/pseudo/license.ts.test.cjs +41 -0
  227. package/tap-snapshots/test/pseudo/link.ts.test.cjs +36 -0
  228. package/tap-snapshots/test/pseudo/malware.ts.test.cjs +22 -0
  229. package/tap-snapshots/test/pseudo/minified.ts.test.cjs +18 -0
  230. package/tap-snapshots/test/pseudo/missing.ts.test.cjs +30 -0
  231. package/tap-snapshots/test/pseudo/native.ts.test.cjs +18 -0
  232. package/tap-snapshots/test/pseudo/network.ts.test.cjs +18 -0
  233. package/tap-snapshots/test/pseudo/obfuscated.ts.test.cjs +18 -0
  234. package/tap-snapshots/test/pseudo/outdated.ts.test.cjs +130 -0
  235. package/tap-snapshots/test/pseudo/overridden.ts.test.cjs +75 -0
  236. package/tap-snapshots/test/pseudo/prerelease.ts.test.cjs +101 -0
  237. package/tap-snapshots/test/pseudo/private.ts.test.cjs +38 -0
  238. package/tap-snapshots/test/pseudo/published.ts.test.cjs +171 -0
  239. package/tap-snapshots/test/pseudo/registry.ts.test.cjs +68 -0
  240. package/tap-snapshots/test/pseudo/root.ts.test.cjs +24 -0
  241. package/tap-snapshots/test/pseudo/scanned.ts.test.cjs +18 -0
  242. package/tap-snapshots/test/pseudo/score.ts.test.cjs +239 -0
  243. package/tap-snapshots/test/pseudo/scripts.ts.test.cjs +61 -0
  244. package/tap-snapshots/test/pseudo/semver.ts.test.cjs +575 -0
  245. package/tap-snapshots/test/pseudo/severity.ts.test.cjs +95 -0
  246. package/tap-snapshots/test/pseudo/shell.ts.test.cjs +18 -0
  247. package/tap-snapshots/test/pseudo/shrinkwrap.ts.test.cjs +18 -0
  248. package/tap-snapshots/test/pseudo/spec.ts.test.cjs +148 -0
  249. package/tap-snapshots/test/pseudo/squat.ts.test.cjs +129 -0
  250. package/tap-snapshots/test/pseudo/suspicious.ts.test.cjs +18 -0
  251. package/tap-snapshots/test/pseudo/tracker.ts.test.cjs +18 -0
  252. package/tap-snapshots/test/pseudo/trivial.ts.test.cjs +18 -0
  253. package/tap-snapshots/test/pseudo/type.ts.test.cjs +51 -0
  254. package/tap-snapshots/test/pseudo/undesirable.ts.test.cjs +18 -0
  255. package/tap-snapshots/test/pseudo/unknown.ts.test.cjs +18 -0
  256. package/tap-snapshots/test/pseudo/unmaintained.ts.test.cjs +18 -0
  257. package/tap-snapshots/test/pseudo/unpopular.ts.test.cjs +18 -0
  258. package/tap-snapshots/test/pseudo/unstable.ts.test.cjs +18 -0
  259. package/tap-snapshots/test/pseudo/vuln.ts.test.cjs +208 -0
  260. package/tap-snapshots/test/pseudo/vulnerable.ts.test.cjs +20 -0
  261. package/tap-snapshots/test/pseudo/workspace.ts.test.cjs +19 -0
  262. package/tap-snapshots/test/pseudo.ts.test.cjs +1247 -0
  263. package/test/attribute.ts +266 -0
  264. package/test/combinator.ts +168 -0
  265. package/test/fixtures/graph.ts +999 -0
  266. package/test/fixtures/selector.ts +103 -0
  267. package/test/fixtures/types.ts +7 -0
  268. package/test/id.ts +102 -0
  269. package/test/index.ts +1000 -0
  270. package/test/parser.ts +117 -0
  271. package/test/pseudo/abandoned.ts +98 -0
  272. package/test/pseudo/attr.ts +298 -0
  273. package/test/pseudo/built.ts +214 -0
  274. package/test/pseudo/confused.ts +160 -0
  275. package/test/pseudo/cve.ts +249 -0
  276. package/test/pseudo/cwe.ts +255 -0
  277. package/test/pseudo/debug.ts +98 -0
  278. package/test/pseudo/deprecated.ts +98 -0
  279. package/test/pseudo/dev.ts +61 -0
  280. package/test/pseudo/diff.ts +417 -0
  281. package/test/pseudo/dist.ts +215 -0
  282. package/test/pseudo/dynamic.ts +98 -0
  283. package/test/pseudo/empty.ts +108 -0
  284. package/test/pseudo/entropic.ts +101 -0
  285. package/test/pseudo/env.ts +98 -0
  286. package/test/pseudo/eval.ts +98 -0
  287. package/test/pseudo/fs.ts +98 -0
  288. package/test/pseudo/helpers.ts +370 -0
  289. package/test/pseudo/host-context.ts +276 -0
  290. package/test/pseudo/hostname.ts +314 -0
  291. package/test/pseudo/license.ts +265 -0
  292. package/test/pseudo/link.ts +94 -0
  293. package/test/pseudo/malware.ts +184 -0
  294. package/test/pseudo/minified.ts +98 -0
  295. package/test/pseudo/missing.ts +111 -0
  296. package/test/pseudo/native.ts +98 -0
  297. package/test/pseudo/network.ts +98 -0
  298. package/test/pseudo/obfuscated.ts +98 -0
  299. package/test/pseudo/optional.ts +73 -0
  300. package/test/pseudo/outdated.ts +331 -0
  301. package/test/pseudo/overridden.ts +317 -0
  302. package/test/pseudo/path.ts +680 -0
  303. package/test/pseudo/peer.ts +101 -0
  304. package/test/pseudo/prerelease.ts +279 -0
  305. package/test/pseudo/private.ts +108 -0
  306. package/test/pseudo/prod.ts +61 -0
  307. package/test/pseudo/published.ts +557 -0
  308. package/test/pseudo/registry.ts +122 -0
  309. package/test/pseudo/root.ts +66 -0
  310. package/test/pseudo/scanned.ts +78 -0
  311. package/test/pseudo/score.ts +591 -0
  312. package/test/pseudo/scripts.ts +294 -0
  313. package/test/pseudo/semver.ts +822 -0
  314. package/test/pseudo/severity.ts +310 -0
  315. package/test/pseudo/shell.ts +98 -0
  316. package/test/pseudo/shrinkwrap.ts +98 -0
  317. package/test/pseudo/spec.ts +525 -0
  318. package/test/pseudo/squat.ts +565 -0
  319. package/test/pseudo/suspicious.ts +98 -0
  320. package/test/pseudo/tracker.ts +98 -0
  321. package/test/pseudo/trivial.ts +98 -0
  322. package/test/pseudo/type.ts +105 -0
  323. package/test/pseudo/undesirable.ts +98 -0
  324. package/test/pseudo/unknown.ts +98 -0
  325. package/test/pseudo/unmaintained.ts +98 -0
  326. package/test/pseudo/unpopular.ts +98 -0
  327. package/test/pseudo/unstable.ts +98 -0
  328. package/test/pseudo/vuln.ts +625 -0
  329. package/test/pseudo/vulnerable.ts +137 -0
  330. package/test/pseudo/workspace.ts +111 -0
  331. package/test/pseudo.ts +558 -0
  332. package/tsconfig.json +3 -0
  333. package/tsconfig.publish.json +19 -0
  334. package/tsconfig.publish.tsbuildinfo +1 -0
  335. package/typedoc.mjs +2 -0
  336. package/dist/esm/attribute.d.ts.map +0 -1
  337. package/dist/esm/attribute.js.map +0 -1
  338. package/dist/esm/combinator.d.ts.map +0 -1
  339. package/dist/esm/combinator.js.map +0 -1
  340. package/dist/esm/id.d.ts.map +0 -1
  341. package/dist/esm/id.js.map +0 -1
  342. package/dist/esm/index.d.ts.map +0 -1
  343. package/dist/esm/index.js.map +0 -1
  344. package/dist/esm/package.json +0 -3
  345. package/dist/esm/parser.d.ts.map +0 -1
  346. package/dist/esm/parser.js.map +0 -1
  347. package/dist/esm/pseudo/abandoned.d.ts.map +0 -1
  348. package/dist/esm/pseudo/abandoned.js.map +0 -1
  349. package/dist/esm/pseudo/attr.d.ts.map +0 -1
  350. package/dist/esm/pseudo/attr.js.map +0 -1
  351. package/dist/esm/pseudo/built.d.ts.map +0 -1
  352. package/dist/esm/pseudo/built.js.map +0 -1
  353. package/dist/esm/pseudo/confused.d.ts.map +0 -1
  354. package/dist/esm/pseudo/confused.js.map +0 -1
  355. package/dist/esm/pseudo/cve.d.ts.map +0 -1
  356. package/dist/esm/pseudo/cve.js +0 -44
  357. package/dist/esm/pseudo/cve.js.map +0 -1
  358. package/dist/esm/pseudo/cwe.d.ts.map +0 -1
  359. package/dist/esm/pseudo/cwe.js +0 -43
  360. package/dist/esm/pseudo/cwe.js.map +0 -1
  361. package/dist/esm/pseudo/debug.d.ts.map +0 -1
  362. package/dist/esm/pseudo/debug.js.map +0 -1
  363. package/dist/esm/pseudo/deprecated.d.ts.map +0 -1
  364. package/dist/esm/pseudo/deprecated.js.map +0 -1
  365. package/dist/esm/pseudo/dev.d.ts.map +0 -1
  366. package/dist/esm/pseudo/dev.js.map +0 -1
  367. package/dist/esm/pseudo/dynamic.d.ts.map +0 -1
  368. package/dist/esm/pseudo/dynamic.js.map +0 -1
  369. package/dist/esm/pseudo/empty.d.ts.map +0 -1
  370. package/dist/esm/pseudo/empty.js.map +0 -1
  371. package/dist/esm/pseudo/entropic.d.ts.map +0 -1
  372. package/dist/esm/pseudo/entropic.js.map +0 -1
  373. package/dist/esm/pseudo/env.d.ts.map +0 -1
  374. package/dist/esm/pseudo/env.js.map +0 -1
  375. package/dist/esm/pseudo/eval.d.ts.map +0 -1
  376. package/dist/esm/pseudo/eval.js.map +0 -1
  377. package/dist/esm/pseudo/fs.d.ts.map +0 -1
  378. package/dist/esm/pseudo/fs.js.map +0 -1
  379. package/dist/esm/pseudo/helpers.d.ts.map +0 -1
  380. package/dist/esm/pseudo/helpers.js.map +0 -1
  381. package/dist/esm/pseudo/host.d.ts.map +0 -1
  382. package/dist/esm/pseudo/host.js.map +0 -1
  383. package/dist/esm/pseudo/license.d.ts.map +0 -1
  384. package/dist/esm/pseudo/license.js.map +0 -1
  385. package/dist/esm/pseudo/link.d.ts.map +0 -1
  386. package/dist/esm/pseudo/link.js.map +0 -1
  387. package/dist/esm/pseudo/malware.d.ts +0 -24
  388. package/dist/esm/pseudo/malware.d.ts.map +0 -1
  389. package/dist/esm/pseudo/malware.js +0 -187
  390. package/dist/esm/pseudo/malware.js.map +0 -1
  391. package/dist/esm/pseudo/minified.d.ts.map +0 -1
  392. package/dist/esm/pseudo/minified.js.map +0 -1
  393. package/dist/esm/pseudo/missing.d.ts.map +0 -1
  394. package/dist/esm/pseudo/missing.js.map +0 -1
  395. package/dist/esm/pseudo/native.d.ts.map +0 -1
  396. package/dist/esm/pseudo/native.js.map +0 -1
  397. package/dist/esm/pseudo/network.d.ts.map +0 -1
  398. package/dist/esm/pseudo/network.js.map +0 -1
  399. package/dist/esm/pseudo/obfuscated.d.ts.map +0 -1
  400. package/dist/esm/pseudo/obfuscated.js.map +0 -1
  401. package/dist/esm/pseudo/optional.d.ts.map +0 -1
  402. package/dist/esm/pseudo/optional.js.map +0 -1
  403. package/dist/esm/pseudo/outdated.d.ts.map +0 -1
  404. package/dist/esm/pseudo/outdated.js.map +0 -1
  405. package/dist/esm/pseudo/overridden.d.ts.map +0 -1
  406. package/dist/esm/pseudo/overridden.js.map +0 -1
  407. package/dist/esm/pseudo/path.d.ts.map +0 -1
  408. package/dist/esm/pseudo/path.js.map +0 -1
  409. package/dist/esm/pseudo/peer.d.ts.map +0 -1
  410. package/dist/esm/pseudo/peer.js.map +0 -1
  411. package/dist/esm/pseudo/prerelease.d.ts.map +0 -1
  412. package/dist/esm/pseudo/prerelease.js.map +0 -1
  413. package/dist/esm/pseudo/private.d.ts.map +0 -1
  414. package/dist/esm/pseudo/private.js.map +0 -1
  415. package/dist/esm/pseudo/prod.d.ts.map +0 -1
  416. package/dist/esm/pseudo/prod.js.map +0 -1
  417. package/dist/esm/pseudo/published.d.ts.map +0 -1
  418. package/dist/esm/pseudo/published.js.map +0 -1
  419. package/dist/esm/pseudo/root.d.ts.map +0 -1
  420. package/dist/esm/pseudo/root.js.map +0 -1
  421. package/dist/esm/pseudo/scanned.d.ts.map +0 -1
  422. package/dist/esm/pseudo/scanned.js.map +0 -1
  423. package/dist/esm/pseudo/score.d.ts.map +0 -1
  424. package/dist/esm/pseudo/score.js.map +0 -1
  425. package/dist/esm/pseudo/scripts.d.ts.map +0 -1
  426. package/dist/esm/pseudo/scripts.js.map +0 -1
  427. package/dist/esm/pseudo/semver.d.ts.map +0 -1
  428. package/dist/esm/pseudo/semver.js.map +0 -1
  429. package/dist/esm/pseudo/severity.d.ts.map +0 -1
  430. package/dist/esm/pseudo/severity.js.map +0 -1
  431. package/dist/esm/pseudo/shell.d.ts.map +0 -1
  432. package/dist/esm/pseudo/shell.js.map +0 -1
  433. package/dist/esm/pseudo/shrinkwrap.d.ts.map +0 -1
  434. package/dist/esm/pseudo/shrinkwrap.js.map +0 -1
  435. package/dist/esm/pseudo/spec.d.ts.map +0 -1
  436. package/dist/esm/pseudo/spec.js.map +0 -1
  437. package/dist/esm/pseudo/squat.d.ts.map +0 -1
  438. package/dist/esm/pseudo/squat.js.map +0 -1
  439. package/dist/esm/pseudo/suspicious.d.ts.map +0 -1
  440. package/dist/esm/pseudo/suspicious.js.map +0 -1
  441. package/dist/esm/pseudo/tracker.d.ts.map +0 -1
  442. package/dist/esm/pseudo/tracker.js.map +0 -1
  443. package/dist/esm/pseudo/trivial.d.ts.map +0 -1
  444. package/dist/esm/pseudo/trivial.js.map +0 -1
  445. package/dist/esm/pseudo/type.d.ts.map +0 -1
  446. package/dist/esm/pseudo/type.js.map +0 -1
  447. package/dist/esm/pseudo/undesirable.d.ts.map +0 -1
  448. package/dist/esm/pseudo/undesirable.js.map +0 -1
  449. package/dist/esm/pseudo/unknown.d.ts.map +0 -1
  450. package/dist/esm/pseudo/unknown.js.map +0 -1
  451. package/dist/esm/pseudo/unmaintained.d.ts.map +0 -1
  452. package/dist/esm/pseudo/unmaintained.js.map +0 -1
  453. package/dist/esm/pseudo/unpopular.d.ts.map +0 -1
  454. package/dist/esm/pseudo/unpopular.js.map +0 -1
  455. package/dist/esm/pseudo/unstable.d.ts.map +0 -1
  456. package/dist/esm/pseudo/unstable.js.map +0 -1
  457. package/dist/esm/pseudo/workspace.d.ts.map +0 -1
  458. package/dist/esm/pseudo/workspace.js.map +0 -1
  459. package/dist/esm/pseudo.d.ts.map +0 -1
  460. package/dist/esm/pseudo.js.map +0 -1
  461. package/dist/esm/types.d.ts.map +0 -1
  462. package/dist/esm/types.js +0 -2
  463. package/dist/esm/types.js.map +0 -1
package/src/pseudo.ts ADDED
@@ -0,0 +1,413 @@
1
+ import { error } from '@vltpkg/error-cause'
2
+ import { removeDanglingEdges, removeNode } from './pseudo/helpers.ts'
3
+ import {
4
+ asPostcssNodeWithChildren,
5
+ asPseudoNode,
6
+ isSelectorNode,
7
+ } from '@vltpkg/dss-parser'
8
+
9
+ // imported pseudo selectors
10
+ import { abandoned } from './pseudo/abandoned.ts'
11
+ import { attr } from './pseudo/attr.ts'
12
+ import { built } from './pseudo/built.ts'
13
+ import { confused } from './pseudo/confused.ts'
14
+ import { cve } from './pseudo/cve.ts'
15
+ import { cwe } from './pseudo/cwe.ts'
16
+ import { debug } from './pseudo/debug.ts'
17
+ import { deprecated } from './pseudo/deprecated.ts'
18
+ import { dev } from './pseudo/dev.ts'
19
+ import { diff } from './pseudo/diff.ts'
20
+ import { dist } from './pseudo/dist.ts'
21
+ import { dynamic } from './pseudo/dynamic.ts'
22
+ import { empty } from './pseudo/empty.ts'
23
+ import { entropic } from './pseudo/entropic.ts'
24
+ import { env } from './pseudo/env.ts'
25
+ import { evalParser } from './pseudo/eval.ts'
26
+ import { fs } from './pseudo/fs.ts'
27
+ import { hostContext } from './pseudo/host.ts'
28
+ import { hostname } from './pseudo/hostname.ts'
29
+ import { license } from './pseudo/license.ts'
30
+ import { link } from './pseudo/link.ts'
31
+ import { malware } from './pseudo/malware.ts'
32
+ import { minified } from './pseudo/minified.ts'
33
+ import { missing } from './pseudo/missing.ts'
34
+ import { nativeParser } from './pseudo/native.ts'
35
+ import { network } from './pseudo/network.ts'
36
+ import { obfuscated } from './pseudo/obfuscated.ts'
37
+ import { optional } from './pseudo/optional.ts'
38
+ import { outdated } from './pseudo/outdated.ts'
39
+ import { overridden } from './pseudo/overridden.ts'
40
+ import { path } from './pseudo/path.ts'
41
+ import { peer } from './pseudo/peer.ts'
42
+ import { prerelease } from './pseudo/prerelease.ts'
43
+ import { published } from './pseudo/published.ts'
44
+ import { privateParser } from './pseudo/private.ts'
45
+ import { registry } from './pseudo/registry.ts'
46
+ import { prod } from './pseudo/prod.ts'
47
+ import { root } from './pseudo/root.ts'
48
+ import { scanned } from './pseudo/scanned.ts'
49
+ import { score } from './pseudo/score.ts'
50
+ import { scripts } from './pseudo/scripts.ts'
51
+ import { shell } from './pseudo/shell.ts'
52
+ import { semverParser as semver } from './pseudo/semver.ts'
53
+ import { severity } from './pseudo/severity.ts'
54
+ import { spec } from './pseudo/spec.ts'
55
+ import { shrinkwrap } from './pseudo/shrinkwrap.ts'
56
+ import { squat } from './pseudo/squat.ts'
57
+ import { suspicious } from './pseudo/suspicious.ts'
58
+ import { tracker } from './pseudo/tracker.ts'
59
+ import { trivial } from './pseudo/trivial.ts'
60
+ import { type } from './pseudo/type.ts'
61
+ import { undesirable } from './pseudo/undesirable.ts'
62
+ import { unknown } from './pseudo/unknown.ts'
63
+ import { unmaintained } from './pseudo/unmaintained.ts'
64
+ import { unpopular } from './pseudo/unpopular.ts'
65
+ import { unstable } from './pseudo/unstable.ts'
66
+ import { vuln } from './pseudo/vuln.ts'
67
+ import { workspace } from './pseudo/workspace.ts'
68
+
69
+ import type { EdgeLike, NodeLike } from '@vltpkg/types'
70
+ import type { ParserFn, ParserState } from './types.ts'
71
+
72
+ /**
73
+ * :has Pseudo-Selector, matches only nodes that have valid results
74
+ * for its nested selector expressions.
75
+ */
76
+ const has = async (state: ParserState) => {
77
+ const top = asPostcssNodeWithChildren(state.current)
78
+ const collectNodes = new Set<NodeLike>()
79
+ const collectEdges = new Set<EdgeLike>()
80
+
81
+ for (const node of top.nodes) {
82
+ if (isSelectorNode(node)) {
83
+ const nestedState = await state.walk({
84
+ cancellable: state.cancellable,
85
+ initial: {
86
+ edges: new Set(state.initial.edges),
87
+ nodes: new Set(state.initial.nodes),
88
+ },
89
+ current: node,
90
+ walk: state.walk,
91
+ collect: {
92
+ edges: new Set(),
93
+ nodes: new Set(),
94
+ },
95
+ partial: {
96
+ edges: new Set(state.partial.edges),
97
+ nodes: new Set(state.partial.nodes),
98
+ },
99
+ diffFiles: state.diffFiles,
100
+ loose: state.loose,
101
+ hostContexts: state.hostContexts,
102
+ importers: state.importers,
103
+ retries: state.retries,
104
+ securityArchive: state.securityArchive,
105
+ signal: state.signal,
106
+ scopeIDs: state.scopeIDs,
107
+ comment: state.comment,
108
+ specificity: { ...state.specificity },
109
+ })
110
+ for (const n of nestedState.collect.nodes) {
111
+ collectNodes.add(n)
112
+ }
113
+ for (const e of nestedState.partial.edges) {
114
+ collectEdges.add(e)
115
+ }
116
+ }
117
+ }
118
+
119
+ // if the nested selector did not match anything, that means
120
+ // no current node has any matches
121
+ if (collectNodes.size === 0) {
122
+ state.partial.edges.clear()
123
+ state.partial.nodes.clear()
124
+ return state
125
+ }
126
+
127
+ // handles transitive dependencies
128
+ // compareNodes collects a list of all ancestor nodes
129
+ // from the resulting nodes of the nested selector
130
+ const compareNodes = new Set<NodeLike>()
131
+ const traverse = new Set(collectNodes)
132
+ for (const node of traverse) {
133
+ for (const edge of node.edgesIn) {
134
+ compareNodes.add(edge.from)
135
+ if (edge.from.edgesIn.size) {
136
+ traverse.add(edge.from)
137
+ }
138
+ }
139
+ }
140
+
141
+ // for each node in the current list checks to see if
142
+ // it has a node in the resulting nested state that is
143
+ // a transitive dependency / children.
144
+ nodesLoop: for (const node of state.partial.nodes) {
145
+ if (node.edgesOut.size === 0 || !compareNodes.has(node)) {
146
+ removeNode(state, node)
147
+ continue
148
+ }
149
+
150
+ for (const edge of node.edgesOut.values()) {
151
+ if (collectEdges.has(edge)) {
152
+ continue nodesLoop
153
+ }
154
+ }
155
+ removeNode(state, node)
156
+ }
157
+
158
+ removeDanglingEdges(state)
159
+
160
+ return state
161
+ }
162
+
163
+ /**
164
+ * :is Pseudo-selector, acts as a shortcut for writing more compact expressions
165
+ * by allowing multiple nested selectors to match on the previous results.
166
+ *
167
+ * It also enables the loose parsing mode, skipping instead of erroring usage
168
+ * of non-existing classes, identifiers, pseudo-classes, etc.
169
+ */
170
+ const is = async (state: ParserState) => {
171
+ const top = asPostcssNodeWithChildren(state.current)
172
+ const collect = new Set()
173
+ for (const node of top.nodes) {
174
+ if (isSelectorNode(node)) {
175
+ const nestedState = await state.walk({
176
+ cancellable: state.cancellable,
177
+ collect: {
178
+ edges: new Set(),
179
+ nodes: new Set(),
180
+ },
181
+ current: node,
182
+ diffFiles: state.diffFiles,
183
+ initial: state.initial,
184
+ loose: true,
185
+ partial: {
186
+ nodes: new Set(state.partial.nodes),
187
+ edges: new Set(state.partial.edges),
188
+ },
189
+ importers: state.importers,
190
+ hostContexts: state.hostContexts,
191
+ walk: state.walk,
192
+ retries: state.retries,
193
+ securityArchive: state.securityArchive,
194
+ signal: state.signal,
195
+ scopeIDs: state.scopeIDs,
196
+ comment: state.comment,
197
+ specificity: { ...state.specificity },
198
+ })
199
+ for (const n of nestedState.collect.nodes) {
200
+ collect.add(n)
201
+ }
202
+ }
203
+ }
204
+ for (const node of state.partial.nodes) {
205
+ if (!collect.has(node)) {
206
+ removeNode(state, node)
207
+ }
208
+ }
209
+ return state
210
+ }
211
+
212
+ /**
213
+ * :not Pseudo-class, serves to create negate expressions, anything that
214
+ * matches selectors declared inside the `:not()` expression is going to be
215
+ * filtered out in the final result.
216
+ */
217
+ const not = async (state: ParserState) => {
218
+ const top = asPostcssNodeWithChildren(state.current)
219
+ const collect = new Set()
220
+ for (const node of top.nodes) {
221
+ if (isSelectorNode(node)) {
222
+ const nestedState = await state.walk({
223
+ cancellable: state.cancellable,
224
+ collect: {
225
+ edges: new Set(),
226
+ nodes: new Set(),
227
+ },
228
+ current: node,
229
+ diffFiles: state.diffFiles,
230
+ initial: state.initial,
231
+ loose: state.loose,
232
+ partial: {
233
+ nodes: new Set(state.partial.nodes),
234
+ edges: new Set(state.partial.edges),
235
+ },
236
+ importers: state.importers,
237
+ hostContexts: state.hostContexts,
238
+ walk: state.walk,
239
+ retries: state.retries,
240
+ securityArchive: state.securityArchive,
241
+ signal: state.signal,
242
+ scopeIDs: state.scopeIDs,
243
+ comment: state.comment,
244
+ specificity: { ...state.specificity },
245
+ })
246
+ for (const n of nestedState.collect.nodes) {
247
+ collect.add(n)
248
+ }
249
+ /* c8 ignore start - should be impossible */
250
+ } else {
251
+ throw error('Error parsing :not() selectors', {
252
+ wanted: { type: 'selector' },
253
+ found: node,
254
+ })
255
+ }
256
+ /* c8 ignore stop */
257
+ }
258
+ for (const node of state.partial.nodes) {
259
+ if (collect.has(node)) {
260
+ removeNode(state, node)
261
+ }
262
+ }
263
+
264
+ removeDanglingEdges(state)
265
+
266
+ return state
267
+ }
268
+
269
+ /**
270
+ * :project Pseudo-Class, matches only graph importers (e.g: the
271
+ * root node along with any configured workspace)
272
+ */
273
+ const project = async (state: ParserState) => {
274
+ for (const node of state.partial.nodes) {
275
+ if (!node.importer) {
276
+ removeNode(state, node)
277
+ }
278
+ }
279
+ for (const edge of state.partial.edges) {
280
+ if (!edge.to?.importer) {
281
+ state.partial.edges.delete(edge)
282
+ }
283
+ }
284
+ return state
285
+ }
286
+
287
+ /**
288
+ * :scope Pseudo-Element, returns only the nodes that match the provided scopeIDs
289
+ * from the Query.search method.
290
+ */
291
+ const scope = async (state: ParserState) => {
292
+ const scopeIDSet = new Set(state.scopeIDs)
293
+
294
+ for (const node of state.partial.nodes) {
295
+ if (!scopeIDSet.has(node.id)) {
296
+ removeNode(state, node)
297
+ }
298
+ }
299
+
300
+ removeDanglingEdges(state)
301
+
302
+ return state
303
+ }
304
+
305
+ const pseudoSelectors = new Map<string, ParserFn>(
306
+ Object.entries({
307
+ abandoned,
308
+ attr,
309
+ built,
310
+ confused,
311
+ cve,
312
+ cwe,
313
+ debug,
314
+ deprecated,
315
+ dev,
316
+ diff,
317
+ dist,
318
+ dynamic,
319
+ eval: evalParser,
320
+ empty,
321
+ entropic,
322
+ env,
323
+ fs,
324
+ has,
325
+ host: hostContext,
326
+ hostname,
327
+ is,
328
+ license,
329
+ link,
330
+ malware,
331
+ minified,
332
+ missing,
333
+ native: nativeParser,
334
+ network,
335
+ not,
336
+ obfuscated,
337
+ optional,
338
+ outdated,
339
+ overridden,
340
+ path,
341
+ peer,
342
+ prerelease,
343
+ published,
344
+ private: privateParser,
345
+ prod,
346
+ registry,
347
+ project,
348
+ root,
349
+ scanned,
350
+ scope,
351
+ score,
352
+ scripts,
353
+ semver,
354
+ sev: severity,
355
+ spec,
356
+ severity,
357
+ shell,
358
+ shrinkwrap,
359
+ squat,
360
+ suspicious,
361
+ tracker,
362
+ trivial,
363
+ type,
364
+ undesirable,
365
+ unknown,
366
+ unmaintained,
367
+ unpopular,
368
+ unstable,
369
+ v: semver,
370
+ vuln,
371
+ vulnerable: vuln,
372
+ workspace,
373
+ }),
374
+ )
375
+
376
+ /**
377
+ * Parsers the `pseudo` node types.
378
+ */
379
+ export const pseudo = async (state: ParserState) => {
380
+ await state.cancellable()
381
+
382
+ const curr = asPseudoNode(state.current)
383
+ const parserFn =
384
+ curr.value && pseudoSelectors.get(curr.value.slice(1))
385
+
386
+ if (!parserFn) {
387
+ if (state.loose) {
388
+ state.partial.edges.clear()
389
+ state.partial.nodes.clear()
390
+ return state
391
+ }
392
+
393
+ throw error(`Unsupported pseudo-class: ${state.current.value}`, {
394
+ found: state.current,
395
+ })
396
+ }
397
+
398
+ const result = await parserFn(state)
399
+
400
+ // Increment the commonCounter for specificity, except for
401
+ // nesting selectors which don't contribute to specificity
402
+ const pseudoValue = curr.value.slice(1)
403
+ if (
404
+ pseudoValue &&
405
+ pseudoValue !== 'not' &&
406
+ pseudoValue !== 'is' &&
407
+ pseudoValue !== 'has'
408
+ ) {
409
+ result.specificity.commonCounter += 1
410
+ }
411
+
412
+ return result
413
+ }
package/src/types.ts ADDED
@@ -0,0 +1,165 @@
1
+ import type { EdgeLike, NodeLike } from '@vltpkg/types'
2
+ import type {
3
+ SecurityArchiveLike,
4
+ PackageScore,
5
+ } from '@vltpkg/security-archive'
6
+ import type { DepID } from '@vltpkg/dep-id'
7
+ import type { PostcssNode } from '@vltpkg/dss-parser'
8
+
9
+ export type HostContextsMapResult = {
10
+ initialEdges: EdgeLike[]
11
+ initialNodes: NodeLike[]
12
+ edges: EdgeLike[]
13
+ nodes: NodeLike[]
14
+ securityArchive: SecurityArchiveLike | undefined
15
+ }
16
+
17
+ export type HostContextsMap = Map<
18
+ string,
19
+ () => Promise<HostContextsMapResult>
20
+ >
21
+
22
+ export type Specificity = {
23
+ idCounter: number
24
+ commonCounter: number
25
+ }
26
+
27
+ export type GraphSelectionState = {
28
+ nodes: Set<NodeLike>
29
+ edges: Set<EdgeLike>
30
+ }
31
+
32
+ /**
33
+ * Callback that returns changed file paths for a given
34
+ * commitish reference. Used by the :diff() pseudo selector.
35
+ * The returned paths should be relative to the project root.
36
+ */
37
+ export type DiffFilesProvider = (commitish: string) => Set<string>
38
+
39
+ export type ParserState = {
40
+ cancellable: () => Promise<void>
41
+ collect: GraphSelectionState
42
+ comment: string
43
+ current: PostcssNode
44
+ diffFiles?: DiffFilesProvider
45
+ hostContexts?: HostContextsMap
46
+ importers: Set<NodeLike>
47
+ initial: GraphSelectionState
48
+ loose?: boolean
49
+ next?: PostcssNode
50
+ prev?: PostcssNode
51
+ result?: NodeLike[]
52
+ signal: AbortSignal
53
+ walk: ParserFn
54
+ partial: GraphSelectionState
55
+ retries: number
56
+ securityArchive: SecurityArchiveLike | undefined
57
+ scopeIDs?: DepID[]
58
+ specificity: Specificity
59
+ }
60
+
61
+ export type QueryResponse = {
62
+ edges: QueryResponseEdge[]
63
+ nodes: QueryResponseNode[]
64
+ importers: QueryResponseNode[]
65
+ comment: string
66
+ specificity: Specificity
67
+ }
68
+
69
+ export type QueryResponseEdge = Omit<EdgeLike, 'from' | 'to'> & {
70
+ from: QueryResponseNode
71
+ to?: QueryResponseNode
72
+ }
73
+
74
+ export type QueryResponseNode = Omit<
75
+ NodeLike,
76
+ 'edgesIn' | 'edgesOut'
77
+ > & {
78
+ edgesIn: Set<QueryResponseEdge>
79
+ edgesOut: Map<string, QueryResponseEdge>
80
+ insights: Insights
81
+ toJSON: () => Pick<
82
+ QueryResponseNode,
83
+ | 'id'
84
+ | 'name'
85
+ | 'version'
86
+ | 'location'
87
+ | 'importer'
88
+ | 'manifest'
89
+ | 'projectRoot'
90
+ | 'integrity'
91
+ | 'resolved'
92
+ | 'dev'
93
+ | 'optional'
94
+ | 'insights'
95
+ | 'confused'
96
+ >
97
+ }
98
+
99
+ export type Insights = {
100
+ abandoned?: boolean
101
+ confused?: boolean
102
+ cve?: `CVE-${string}`[]
103
+ cwe?: `CWE-${string}`[]
104
+ debug?: boolean
105
+ deprecated?: boolean
106
+ dynamic?: boolean
107
+ entropic?: boolean
108
+ env?: boolean
109
+ eval?: boolean
110
+ fs?: boolean
111
+ license?: LicenseInsights
112
+ malware?: boolean
113
+ minified?: boolean
114
+ native?: boolean
115
+ network?: boolean
116
+ obfuscated?: boolean
117
+ scanned: boolean
118
+ score?: PackageScore
119
+ scripts?: boolean
120
+ severity?: SeverityInsights
121
+ shell?: boolean
122
+ shrinkwrap?: boolean
123
+ squat?: SquatInsights
124
+ suspicious?: boolean
125
+ tracker?: boolean
126
+ trivial?: boolean
127
+ undesirable?: boolean
128
+ unknown?: boolean
129
+ unmaintained?: boolean
130
+ unpopular?: boolean
131
+ unstable?: boolean
132
+ vuln?: VulnInsights
133
+ }
134
+
135
+ export type LicenseInsights = {
136
+ unlicensed: boolean
137
+ misc: boolean
138
+ restricted: boolean
139
+ ambiguous: boolean
140
+ copyleft: boolean
141
+ unknown: boolean
142
+ none: boolean
143
+ exception: boolean
144
+ }
145
+
146
+ export type LeveledInsights = {
147
+ low: boolean
148
+ medium: boolean
149
+ high: boolean
150
+ critical: boolean
151
+ }
152
+
153
+ export type SeverityInsights = LeveledInsights
154
+ export type VulnInsights = LeveledInsights
155
+
156
+ export type SquatInsights = {
157
+ medium: boolean
158
+ critical: boolean
159
+ }
160
+
161
+ export type ParserFn = (opt: ParserState) => Promise<ParserState>
162
+
163
+ export type ParsedSelectorToken = PostcssNode & {
164
+ token: string
165
+ }