@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
@@ -4,4 +4,3 @@ import type { ParserState } from '../types.ts';
4
4
  * It filters out any node that has edges out, i.e., has dependencies.
5
5
  */
6
6
  export declare const empty: (state: ParserState) => Promise<ParserState>;
7
- //# sourceMappingURL=empty.d.ts.map
@@ -11,4 +11,3 @@ export const empty = async (state) => {
11
11
  }
12
12
  return state;
13
13
  };
14
- //# sourceMappingURL=empty.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const entropic: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=entropic.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **highEntropyStrings** report alert.
4
4
  */
5
5
  export const entropic = createSecuritySelectorFilter('entropic', 'highEntropyStrings');
6
- //# sourceMappingURL=entropic.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const env: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=env.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **envVars** report alert.
4
4
  */
5
5
  export const env = createSecuritySelectorFilter('env', 'envVars');
6
- //# sourceMappingURL=env.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const evalParser: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=eval.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **usesEval** report alert.
4
4
  */
5
5
  export const evalParser = createSecuritySelectorFilter('eval', 'usesEval');
6
- //# sourceMappingURL=eval.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const fs: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=fs.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **filesystemAccess** report alert.
4
4
  */
5
5
  export const fs = createSecuritySelectorFilter('fs', 'filesystemAccess');
6
- //# sourceMappingURL=fs.js.map
@@ -36,4 +36,3 @@ export declare const clear: (state: ParserState) => ParserState;
36
36
  export declare const createSecuritySelectorFilter: (name: string, type: string) => (state: ParserState) => Promise<ParserState & {
37
37
  securityArchive: NonNullable<ParserState["securityArchive"]>;
38
38
  }>;
39
- //# sourceMappingURL=helpers.d.ts.map
@@ -13,7 +13,7 @@ export const removeNode = (state, node) => {
13
13
  */
14
14
  export const removeEdge = (state, edge) => {
15
15
  state.partial.edges.delete(edge);
16
- if (edge.to && edge.to.edgesIn.size === 1) {
16
+ if (edge.to?.edgesIn.size === 1) {
17
17
  state.partial.nodes.delete(edge.to);
18
18
  }
19
19
  };
@@ -77,4 +77,3 @@ export const createSecuritySelectorFilter = (name, type) => {
77
77
  return state;
78
78
  };
79
79
  };
80
- //# sourceMappingURL=helpers.js.map
@@ -17,4 +17,3 @@ export declare const parseInternals: (nodes: PostcssNode[]) => string;
17
17
  * - :host(local) - Switches to graphs loaded from the local context
18
18
  */
19
19
  export declare const hostContext: (state: ParserState) => Promise<ParserState>;
20
- //# sourceMappingURL=host.d.ts.map
@@ -77,4 +77,3 @@ export const hostContext = async (state) => {
77
77
  }
78
78
  return state;
79
79
  };
80
- //# sourceMappingURL=host.js.map
@@ -0,0 +1,11 @@
1
+ import type { ParserState } from '../types.ts';
2
+ /**
3
+ * :hostname(str) Pseudo-Selector, matches only nodes whose
4
+ * upstream hostname matches the provided domain string.
5
+ *
6
+ * Examples:
7
+ * - :hostname("registry.npmjs.org") — default npm registry deps
8
+ * - :hostname("github.com") — github git deps
9
+ * - :hostname("example.com") — custom registry deps
10
+ */
11
+ export declare const hostname: (state: ParserState) => Promise<ParserState>;
@@ -0,0 +1,140 @@
1
+ import { splitDepID } from '@vltpkg/dep-id/browser';
2
+ import { getOptions, gitHostWebsites } from '@vltpkg/spec/browser';
3
+ import { asPostcssNodeWithChildren } from '@vltpkg/dss-parser';
4
+ import { error } from '@vltpkg/error-cause';
5
+ import { removeDanglingEdges, removeNode } from "./helpers.js";
6
+ import { parseInternals } from "./spec.js";
7
+ /**
8
+ * Given a named git host (e.g. "github"), resolve its hostname
9
+ * by looking up `gitHostWebsites` (e.g. "github.com"), or
10
+ * falling back to the `git-hosts` template URL.
11
+ */
12
+ const resolveGitHostname = (namedHost, gitHosts) => {
13
+ // Check gitHostWebsites first (e.g. github -> github.com)
14
+ const website = gitHostWebsites[namedHost];
15
+ if (website) {
16
+ try {
17
+ return new URL(website).hostname;
18
+ /* c8 ignore next */
19
+ }
20
+ catch { }
21
+ }
22
+ // Fall back to parsing the git-hosts template URL
23
+ const template = gitHosts[namedHost];
24
+ if (template) {
25
+ try {
26
+ // Templates look like 'git+ssh://git@github.com:$1/$2.git'
27
+ // Replace colons after the host with / for URL parsing
28
+ const normalized = template
29
+ .replace(/^git\+/, '')
30
+ .replace(/:(\$)/, '/$1');
31
+ return new URL(normalized).hostname;
32
+ /* c8 ignore next */
33
+ }
34
+ catch { }
35
+ }
36
+ /* c8 ignore next */
37
+ return undefined;
38
+ };
39
+ /**
40
+ * Resolve the hostname for a git remote string.
41
+ * Named hosts: "github:user/repo" -> extract "github" and look up.
42
+ * Full URLs: "git+ssh://git@example.com/repo.git" -> parse URL.
43
+ */
44
+ const getGitHostname = (gitRemote, gitHosts) => {
45
+ // Check if it's a named git host like "github:user/repo"
46
+ const colonIdx = gitRemote.indexOf(':');
47
+ if (colonIdx > 0) {
48
+ const possibleHost = gitRemote.slice(0, colonIdx);
49
+ // If this is a known named git host, resolve it
50
+ if (possibleHost in gitHosts) {
51
+ return resolveGitHostname(possibleHost, gitHosts);
52
+ }
53
+ // Could be a protocol URL like git+ssh://...
54
+ try {
55
+ const normalized = gitRemote
56
+ .replace(/^git\+/, '')
57
+ .replace(/^ssh:\/\/([^@]+@)?([^:/]+)[:/]/, 'ssh://$1$2/');
58
+ return new URL(normalized).hostname;
59
+ /* c8 ignore next */
60
+ }
61
+ catch { }
62
+ }
63
+ /* c8 ignore start - git remotes always contain a colon */
64
+ // Try parsing as a plain URL
65
+ try {
66
+ return new URL(gitRemote).hostname;
67
+ }
68
+ catch { }
69
+ return undefined;
70
+ /* c8 ignore stop */
71
+ };
72
+ /**
73
+ * :hostname(str) Pseudo-Selector, matches only nodes whose
74
+ * upstream hostname matches the provided domain string.
75
+ *
76
+ * Examples:
77
+ * - :hostname("registry.npmjs.org") — default npm registry deps
78
+ * - :hostname("github.com") — github git deps
79
+ * - :hostname("example.com") — custom registry deps
80
+ */
81
+ export const hostname = async (state) => {
82
+ let internals;
83
+ try {
84
+ internals = parseInternals(asPostcssNodeWithChildren(state.current).nodes);
85
+ }
86
+ catch (err) {
87
+ throw error('Failed to parse :hostname selector', {
88
+ cause: err,
89
+ });
90
+ }
91
+ const targetHostname = internals.specValue;
92
+ for (const node of state.partial.nodes) {
93
+ const tuple = splitDepID(node.id);
94
+ const type = tuple[0];
95
+ let nodeHostname;
96
+ switch (type) {
97
+ case 'registry': {
98
+ const registryName = tuple[1];
99
+ const options = getOptions(node.options);
100
+ // Look up the registry URL from registries map. There is no
101
+ // default registry, so a node with an empty registry field and
102
+ // no configured registry has no hostname, and never matches.
103
+ const registryUrl = options.registries[registryName] ?? options.registry;
104
+ if (registryUrl) {
105
+ try {
106
+ nodeHostname = new URL(registryUrl).hostname;
107
+ /* c8 ignore next */
108
+ }
109
+ catch { }
110
+ }
111
+ break;
112
+ }
113
+ case 'git': {
114
+ const gitRemote = tuple[1];
115
+ const options = getOptions(node.options);
116
+ nodeHostname = getGitHostname(gitRemote, options['git-hosts']);
117
+ break;
118
+ }
119
+ case 'remote': {
120
+ const url = tuple[1];
121
+ try {
122
+ nodeHostname = new URL(url).hostname;
123
+ /* c8 ignore next */
124
+ }
125
+ catch { }
126
+ break;
127
+ }
128
+ // file and workspace deps are local — no hostname
129
+ default: {
130
+ nodeHostname = undefined;
131
+ break;
132
+ }
133
+ }
134
+ if (nodeHostname !== targetHostname) {
135
+ removeNode(state, node);
136
+ }
137
+ }
138
+ removeDanglingEdges(state);
139
+ return state;
140
+ };
@@ -10,4 +10,3 @@ export declare const parseInternals: (nodes: PostcssNode[]) => {
10
10
  export declare const license: (state: ParserState) => Promise<ParserState & {
11
11
  securityArchive: NonNullable<ParserState["securityArchive"]>;
12
12
  }>;
13
- //# sourceMappingURL=license.d.ts.map
@@ -72,4 +72,3 @@ export const license = async (state) => {
72
72
  removeDanglingEdges(state);
73
73
  return state;
74
74
  };
75
- //# sourceMappingURL=license.js.map
@@ -6,4 +6,3 @@ import type { ParserState } from '../types.ts';
6
6
  * type that ends with 'tar.gz' since these are local tarballs.
7
7
  */
8
8
  export declare const link: (state: ParserState) => Promise<ParserState>;
9
- //# sourceMappingURL=link.d.ts.map
@@ -22,4 +22,3 @@ export const link = async (state) => {
22
22
  }
23
23
  return state;
24
24
  };
25
- //# sourceMappingURL=link.js.map
@@ -0,0 +1,10 @@
1
+ import type { ParserState } from '../types.ts';
2
+ /**
3
+ * :malware Pseudo-Selector, matches nodes with any malware-related alert.
4
+ *
5
+ * This is a binary selector — no parameters. A node matches if it has
6
+ * at least one alert whose type is `malware` or `gptMalware`.
7
+ */
8
+ export declare const malware: (state: ParserState) => Promise<ParserState & {
9
+ securityArchive: NonNullable<ParserState["securityArchive"]>;
10
+ }>;
@@ -0,0 +1,26 @@
1
+ import { error } from '@vltpkg/error-cause';
2
+ import { asPostcssNodeWithChildren } from '@vltpkg/dss-parser';
3
+ import { assertSecurityArchive, removeDanglingEdges, removeNode, } from "./helpers.js";
4
+ const malwareAlertTypes = new Set(['malware', 'gptMalware']);
5
+ /**
6
+ * :malware Pseudo-Selector, matches nodes with any malware-related alert.
7
+ *
8
+ * This is a binary selector — no parameters. A node matches if it has
9
+ * at least one alert whose type is `malware` or `gptMalware`.
10
+ */
11
+ export const malware = async (state) => {
12
+ assertSecurityArchive(state, 'malware');
13
+ const currentNode = asPostcssNodeWithChildren(state.current);
14
+ if (currentNode.nodes.length > 0) {
15
+ throw error(':malware selector does not accept parameters. Use :vuln(<severity>) for severity-based filtering.');
16
+ }
17
+ for (const node of state.partial.nodes) {
18
+ const report = state.securityArchive.get(node.id);
19
+ const hasMalware = report?.alerts.some(alert => malwareAlertTypes.has(alert.type));
20
+ if (!hasMalware) {
21
+ removeNode(state, node);
22
+ }
23
+ }
24
+ removeDanglingEdges(state);
25
+ return state;
26
+ };
@@ -4,4 +4,3 @@
4
4
  export declare const minified: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=minified.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **minifiedFile** report alert.
4
4
  */
5
5
  export const minified = createSecuritySelectorFilter('minified', 'minifiedFile');
6
- //# sourceMappingURL=minified.js.map
@@ -5,4 +5,3 @@ import type { ParserState } from '../types.ts';
5
5
  * and clears all nodes from the result.
6
6
  */
7
7
  export declare const missing: (state: ParserState) => Promise<ParserState>;
8
- //# sourceMappingURL=missing.d.ts.map
@@ -12,4 +12,3 @@ export const missing = async (state) => {
12
12
  state.partial.nodes.clear();
13
13
  return state;
14
14
  };
15
- //# sourceMappingURL=missing.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const nativeParser: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=native.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **hasNativeCode** report alert.
4
4
  */
5
5
  export const nativeParser = createSecuritySelectorFilter('native', 'hasNativeCode');
6
- //# sourceMappingURL=native.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const network: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=network.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have a **networkAccess** report alert.
4
4
  */
5
5
  export const network = createSecuritySelectorFilter('network', 'networkAccess');
6
- //# sourceMappingURL=network.js.map
@@ -4,4 +4,3 @@
4
4
  export declare const obfuscated: (state: import("../types.ts").ParserState) => Promise<import("../types.ts").ParserState & {
5
5
  securityArchive: NonNullable<import("../types.ts").ParserState["securityArchive"]>;
6
6
  }>;
7
- //# sourceMappingURL=obfuscated.d.ts.map
@@ -3,4 +3,3 @@ import { createSecuritySelectorFilter } from "./helpers.js";
3
3
  * Filters out any node that does not have an **obfuscatedFile** report alert.
4
4
  */
5
5
  export const obfuscated = createSecuritySelectorFilter('obfuscated', 'obfuscatedFile');
6
- //# sourceMappingURL=obfuscated.js.map
@@ -3,4 +3,3 @@ import type { ParserState } from '../types.ts';
3
3
  * :optional Pseudo-Selector will only match optional dependencies.
4
4
  */
5
5
  export declare const optional: (state: ParserState) => Promise<ParserState>;
6
- //# sourceMappingURL=optional.d.ts.map
@@ -12,4 +12,3 @@ export const optional = async (state) => {
12
12
  removeUnlinkedNodes(state);
13
13
  return state;
14
14
  };
15
- //# sourceMappingURL=optional.js.map
@@ -51,4 +51,3 @@ export declare const queueNode: (state: ParserState, node: NodeLike, kind: Outda
51
51
  * that does not satisfy any of the available remote versions.
52
52
  */
53
53
  export declare const outdated: (state: ParserState) => Promise<ParserState>;
54
- //# sourceMappingURL=outdated.d.ts.map
@@ -209,4 +209,3 @@ export const outdated = async (state) => {
209
209
  }
210
210
  return state;
211
211
  };
212
- //# sourceMappingURL=outdated.js.map
@@ -5,4 +5,3 @@ import type { ParserState } from '../types.ts';
5
5
  * and removes any unlinked nodes from the result.
6
6
  */
7
7
  export declare const overridden: (state: ParserState) => Promise<ParserState>;
8
- //# sourceMappingURL=overridden.d.ts.map
@@ -14,4 +14,3 @@ export const overridden = async (state) => {
14
14
  removeUnlinkedNodes(state);
15
15
  return state;
16
16
  };
17
- //# sourceMappingURL=overridden.js.map
@@ -16,4 +16,3 @@ export declare function createPathMatcher(pattern: string, loose?: boolean): (pa
16
16
  * parser conflicts with special characters.
17
17
  */
18
18
  export declare const path: (state: ParserState) => Promise<ParserState>;
19
- //# sourceMappingURL=path.d.ts.map
@@ -9,12 +9,10 @@ import { removeNode, removeDanglingEdges, removeQuotes, clear, } from "./helpers
9
9
  * This ensures consistent path comparison regardless of how paths are specified.
10
10
  */
11
11
  export function normalizePath(path) {
12
- const trimmed = path.trim();
13
- // Handle root path case - normalize '.' to empty string for consistency
12
+ const trimmed = path.trim().replaceAll('\\', '/');
14
13
  if (trimmed === '.') {
15
14
  return '';
16
15
  }
17
- // Remove leading './' prefix
18
16
  if (trimmed.startsWith('./')) {
19
17
  return trimmed.slice(2);
20
18
  }
@@ -110,4 +108,3 @@ export const path = async (state) => {
110
108
  removeDanglingEdges(state);
111
109
  return state;
112
110
  };
113
- //# sourceMappingURL=path.js.map
@@ -3,4 +3,3 @@ import type { ParserState } from '../types.ts';
3
3
  * :peer Pseudo-Selector will only match peer dependencies.
4
4
  */
5
5
  export declare const peer: (state: ParserState) => Promise<ParserState>;
6
- //# sourceMappingURL=peer.d.ts.map
@@ -12,4 +12,3 @@ export const peer = async (state) => {
12
12
  removeUnlinkedNodes(state);
13
13
  return state;
14
14
  };
15
- //# sourceMappingURL=peer.js.map
@@ -15,4 +15,3 @@ import type { ParserState } from '../types.ts';
15
15
  * - 0.0.1
16
16
  */
17
17
  export declare const prerelease: (state: ParserState) => Promise<ParserState>;
18
- //# sourceMappingURL=prerelease.d.ts.map
@@ -38,4 +38,3 @@ export const prerelease = async (state) => {
38
38
  removeDanglingEdges(state);
39
39
  return state;
40
40
  };
41
- //# sourceMappingURL=prerelease.js.map
@@ -4,4 +4,3 @@ import type { ParserState } from '../types.ts';
4
4
  * a `private: true` key set in their `package.json` metadata.
5
5
  */
6
6
  export declare const privateParser: (state: ParserState) => Promise<ParserState>;
7
- //# sourceMappingURL=private.d.ts.map
@@ -13,4 +13,3 @@ export const privateParser = async (state) => {
13
13
  removeDanglingEdges(state);
14
14
  return state;
15
15
  };
16
- //# sourceMappingURL=private.js.map
@@ -3,4 +3,3 @@ import type { ParserState } from '../types.ts';
3
3
  * :prod Pseudo-Selector will only match production dependencies.
4
4
  */
5
5
  export declare const prod: (state: ParserState) => Promise<ParserState>;
6
- //# sourceMappingURL=prod.d.ts.map
@@ -12,4 +12,3 @@ export const prod = async (state) => {
12
12
  removeUnlinkedNodes(state);
13
13
  return state;
14
14
  };
15
- //# sourceMappingURL=prod.js.map
@@ -37,4 +37,3 @@ export declare const queueNode: (state: ParserState, node: NodeLike, relativeDat
37
37
  * - :published("<=2023-12-31") - Matches packages published on or before December 31st, 2023
38
38
  */
39
39
  export declare const published: (state: ParserState) => Promise<ParserState>;
40
- //# sourceMappingURL=published.d.ts.map
@@ -177,4 +177,3 @@ export const published = async (state) => {
177
177
  removeDanglingEdges(state);
178
178
  return state;
179
179
  };
180
- //# sourceMappingURL=published.js.map
@@ -0,0 +1,10 @@
1
+ import type { ParserState } from '../types.ts';
2
+ /**
3
+ * :registry(name) Pseudo-Selector, matches only nodes that
4
+ * belong to the specified registry configuration alias.
5
+ *
6
+ * For example, `:registry(npm)` matches deps from the default
7
+ * npm registry, and `:registry(custom)` matches deps from a
8
+ * custom-named registry.
9
+ */
10
+ export declare const registry: (state: ParserState) => Promise<ParserState>;
@@ -0,0 +1,24 @@
1
+ import { splitDepID } from '@vltpkg/dep-id/browser';
2
+ import { asPostcssNodeWithChildren, asTagNode, } from '@vltpkg/dss-parser';
3
+ import { removeDanglingEdges, removeNode } from "./helpers.js";
4
+ /**
5
+ * :registry(name) Pseudo-Selector, matches only nodes that
6
+ * belong to the specified registry configuration alias.
7
+ *
8
+ * For example, `:registry(npm)` matches deps from the default
9
+ * npm registry, and `:registry(custom)` matches deps from a
10
+ * custom-named registry.
11
+ */
12
+ export const registry = async (state) => {
13
+ const top = asPostcssNodeWithChildren(state.current);
14
+ const selector = asPostcssNodeWithChildren(top.nodes[0]);
15
+ const name = asTagNode(selector.nodes[0]).value;
16
+ for (const node of state.partial.nodes) {
17
+ const tuple = splitDepID(node.id);
18
+ if (tuple[0] !== 'registry' || tuple[1] !== name) {
19
+ removeNode(state, node);
20
+ }
21
+ }
22
+ removeDanglingEdges(state);
23
+ return state;
24
+ };
@@ -4,4 +4,3 @@ import type { ParserState } from '../types.ts';
4
4
  * It matches only nodes marked as `mainImporter`.
5
5
  */
6
6
  export declare const root: (state: ParserState) => Promise<ParserState>;
7
- //# sourceMappingURL=root.d.ts.map
@@ -15,4 +15,3 @@ export const root = async (state) => {
15
15
  }
16
16
  return state;
17
17
  };
18
- //# sourceMappingURL=root.js.map
@@ -6,4 +6,3 @@ import type { ParserState } from '../types.ts';
6
6
  * in the security archive.
7
7
  */
8
8
  export declare const scanned: (state: ParserState) => Promise<ParserState>;
9
- //# sourceMappingURL=scanned.d.ts.map
@@ -14,4 +14,3 @@ export const scanned = async (state) => {
14
14
  removeDanglingEdges(state);
15
15
  return state;
16
16
  };
17
- //# sourceMappingURL=scanned.js.map
@@ -13,4 +13,3 @@ export declare const parseInternals: (nodes: PostcssNode[]) => {
13
13
  export declare const score: (state: ParserState) => Promise<ParserState & {
14
14
  securityArchive: NonNullable<ParserState["securityArchive"]>;
15
15
  }>;
16
- //# sourceMappingURL=score.d.ts.map
@@ -130,4 +130,3 @@ export const score = async (state) => {
130
130
  removeDanglingEdges(state);
131
131
  return state;
132
132
  };
133
- //# sourceMappingURL=score.js.map
@@ -7,4 +7,3 @@ import type { ParserState } from '../types.ts';
7
7
  * - Prepare scripts on importers or git dependencies (prepare, preprepare, postprepare)
8
8
  */
9
9
  export declare const scripts: (state: ParserState) => Promise<ParserState>;
10
- //# sourceMappingURL=scripts.d.ts.map
@@ -18,7 +18,7 @@ const nodeNeedsBuild = (node) => {
18
18
  return true;
19
19
  // Check for prepare scripts on importers or git dependencies
20
20
  const prepable = node.id.startsWith('git') || node.importer;
21
- const runPrepare = !!((scripts.prepare || scripts.preprepare || scripts.postprepare)
21
+ const runPrepare = !!(scripts.prepare || scripts.preprepare || scripts.postprepare
22
22
  /* c8 ignore next 2 */
23
23
  ) && prepable;
24
24
  if (runPrepare)
@@ -41,4 +41,3 @@ export const scripts = async (state) => {
41
41
  removeDanglingEdges(state);
42
42
  return state;
43
43
  };
44
- //# sourceMappingURL=scripts.js.map
@@ -5,13 +5,14 @@ import type { PostcssNode } from '@vltpkg/dss-parser';
5
5
  export type SemverInternals = {
6
6
  semverValue: string;
7
7
  semverFunction: SemverComparatorFn;
8
+ semverRangeFunction: SemverRangeComparatorFn | undefined;
8
9
  compareAttribute: SemverCompareAttribute;
9
10
  };
10
- export type SemverFunctionNames = 'satisfies' | 'gt' | 'gte' | 'lt' | 'lte' | 'eq' | 'neq';
11
+ export type SemverFunctionNames = 'satisfies' | 'gt' | 'gte' | 'lt' | 'lte' | 'eq' | 'neq' | 'intersects' | 'subset';
11
12
  export type SemverComparatorFn = (version: Version | string, range: string) => boolean;
13
+ export type SemverRangeComparatorFn = (r1: string, r2: string) => boolean;
12
14
  export type SemverCompareAttribute = Pick<AttrInternals, 'attribute' | 'properties'> | undefined;
13
15
  export declare const isSemverFunctionName: (name: string) => name is SemverFunctionNames;
14
16
  export declare const asSemverFunctionName: (name: string) => SemverFunctionNames;
15
17
  export declare const parseInternals: (nodes: PostcssNode[], loose: boolean) => SemverInternals;
16
18
  export declare const semverParser: (state: ParserState) => Promise<ParserState>;
17
- //# sourceMappingURL=semver.d.ts.map