@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
@@ -0,0 +1,310 @@
1
+ import t from 'tap'
2
+ import { joinDepIDTuple } from '@vltpkg/dep-id'
3
+ import { asPostcssNodeWithChildren, parse } from '@vltpkg/dss-parser'
4
+ import { asSecurityArchiveLike } from '@vltpkg/security-archive'
5
+ import { getSimpleGraph } from '../fixtures/graph.ts'
6
+ import {
7
+ severity,
8
+ isSeverityKind,
9
+ asSeverityKind,
10
+ parseInternals,
11
+ } from '../../src/pseudo/severity.ts'
12
+ import type { ParserState } from '../../src/types.ts'
13
+
14
+ t.test('selects packages with a specific severity kind', async t => {
15
+ const getState = (query: string, graph = getSimpleGraph()) => {
16
+ const ast = parse(query)
17
+ const current = ast.first.first
18
+ const state: ParserState = {
19
+ comment: '',
20
+ current,
21
+ initial: {
22
+ edges: new Set(graph.edges.values()),
23
+ nodes: new Set(graph.nodes.values()),
24
+ },
25
+ partial: {
26
+ edges: new Set(graph.edges.values()),
27
+ nodes: new Set(graph.nodes.values()),
28
+ },
29
+ collect: {
30
+ edges: new Set(),
31
+ nodes: new Set(),
32
+ },
33
+ cancellable: async () => {},
34
+ walk: async i => i,
35
+ securityArchive: asSecurityArchiveLike(
36
+ new Map([
37
+ [
38
+ joinDepIDTuple(['registry', '', 'e@1.0.0']),
39
+ {
40
+ id: joinDepIDTuple(['registry', '', 'e@1.0.0']),
41
+ alerts: [{ type: 'criticalCVE' }],
42
+ },
43
+ ],
44
+ [
45
+ joinDepIDTuple(['registry', '', 'f@1.0.0']),
46
+ {
47
+ id: joinDepIDTuple(['registry', '', 'f@1.0.0']),
48
+ alerts: [{ type: 'cve' }],
49
+ },
50
+ ],
51
+ [
52
+ joinDepIDTuple(['registry', '', 'a@1.0.0']),
53
+ {
54
+ id: joinDepIDTuple(['registry', '', 'a@1.0.0']),
55
+ alerts: [{ type: 'potentialVulnerability' }],
56
+ },
57
+ ],
58
+ [
59
+ joinDepIDTuple(['registry', '', 'b@1.0.0']),
60
+ {
61
+ id: joinDepIDTuple(['registry', '', 'b@1.0.0']),
62
+ alerts: [{ type: 'mildCVE' }],
63
+ },
64
+ ],
65
+ ]),
66
+ ),
67
+ importers: new Set(graph.importers),
68
+ retries: 0,
69
+ signal: new AbortController().signal,
70
+ specificity: { idCounter: 0, commonCounter: 0 },
71
+ }
72
+ return state
73
+ }
74
+
75
+ await t.test(
76
+ 'filter out any node that does not have the severity alert',
77
+ async t => {
78
+ const res = await severity(getState(':severity("critical")'))
79
+ t.strictSame(
80
+ [...res.partial.nodes].map(n => n.name),
81
+ ['e'],
82
+ 'should select only packages with the specified severity alert',
83
+ )
84
+ t.matchSnapshot({
85
+ nodes: [...res.partial.nodes].map(n => n.name),
86
+ edges: [...res.partial.edges].map(e => e.name),
87
+ })
88
+ },
89
+ )
90
+
91
+ await t.test('filter using numbered param', async t => {
92
+ const res = await severity(getState(':severity(0)'))
93
+ t.strictSame(
94
+ [...res.partial.nodes].map(n => n.name),
95
+ ['e'],
96
+ 'should select only packages with the specified severity alert',
97
+ )
98
+ t.matchSnapshot({
99
+ nodes: [...res.partial.nodes].map(n => n.name),
100
+ edges: [...res.partial.edges].map(e => e.name),
101
+ })
102
+ })
103
+
104
+ await t.test('filter out using unquoted param', async t => {
105
+ const res = await severity(getState(':severity(high)'))
106
+ t.strictSame(
107
+ [...res.partial.nodes].map(n => n.name),
108
+ ['f'],
109
+ 'should select only packages with the specified severity alert',
110
+ )
111
+ t.matchSnapshot({
112
+ nodes: [...res.partial.nodes].map(n => n.name),
113
+ edges: [...res.partial.edges].map(e => e.name),
114
+ })
115
+ })
116
+
117
+ await t.test(
118
+ 'greater than comparator with number (unquoted)',
119
+ async t => {
120
+ const res = await severity(getState(':severity(>1)'))
121
+ t.strictSame(
122
+ [...res.partial.nodes].map(n => n.name).sort(),
123
+ ['a', 'b'],
124
+ 'should select packages with severity greater than high/1',
125
+ )
126
+ t.matchSnapshot({
127
+ nodes: [...res.partial.nodes].map(n => n.name).sort(),
128
+ edges: [...res.partial.edges].map(e => e.name).sort(),
129
+ })
130
+ },
131
+ )
132
+
133
+ await t.test(
134
+ 'less than comparator with number (quoted)',
135
+ async t => {
136
+ const res = await severity(getState(':severity("<2")'))
137
+ t.strictSame(
138
+ [...res.partial.nodes].map(n => n.name).sort(),
139
+ ['e', 'f'],
140
+ 'should select packages with severity less than medium/2',
141
+ )
142
+ t.matchSnapshot({
143
+ nodes: [...res.partial.nodes].map(n => n.name).sort(),
144
+ edges: [...res.partial.edges].map(e => e.name).sort(),
145
+ })
146
+ },
147
+ )
148
+
149
+ await t.test(
150
+ 'greater than or equal to comparator with number (quoted)',
151
+ async t => {
152
+ const res = await severity(getState(':severity(">=2")'))
153
+ t.strictSame(
154
+ [...res.partial.nodes].map(n => n.name).sort(),
155
+ ['a', 'b'],
156
+ 'should select packages with severity greater than or equal to medium/2',
157
+ )
158
+ t.matchSnapshot({
159
+ nodes: [...res.partial.nodes].map(n => n.name).sort(),
160
+ edges: [...res.partial.edges].map(e => e.name).sort(),
161
+ })
162
+ },
163
+ )
164
+
165
+ await t.test(
166
+ 'less than or equal to comparator with number (unquoted)',
167
+ async t => {
168
+ const res = await severity(getState(':severity(<=1)'))
169
+ t.strictSame(
170
+ [...res.partial.nodes].map(n => n.name).sort(),
171
+ ['e', 'f'],
172
+ 'should select packages with severity less than or equal to high/1',
173
+ )
174
+ t.matchSnapshot({
175
+ nodes: [...res.partial.nodes].map(n => n.name).sort(),
176
+ edges: [...res.partial.edges].map(e => e.name).sort(),
177
+ })
178
+ },
179
+ )
180
+
181
+ await t.test('wrong parameter', async t => {
182
+ await t.rejects(
183
+ severity(getState(':severity')),
184
+ { message: /Failed to parse :severity selector/ },
185
+ 'should throw an error',
186
+ )
187
+ })
188
+ })
189
+
190
+ t.test('missing security archive', async t => {
191
+ const getState = (query: string) => {
192
+ const ast = parse(query)
193
+ const current = ast.first.first
194
+ const state: ParserState = {
195
+ comment: '',
196
+ current,
197
+ initial: {
198
+ edges: new Set(),
199
+ nodes: new Set(),
200
+ },
201
+ partial: {
202
+ edges: new Set(),
203
+ nodes: new Set(),
204
+ },
205
+ collect: {
206
+ edges: new Set(),
207
+ nodes: new Set(),
208
+ },
209
+ cancellable: async () => {},
210
+ walk: async i => i,
211
+ securityArchive: undefined,
212
+ importers: new Set(),
213
+ retries: 0,
214
+ signal: new AbortController().signal,
215
+ specificity: { idCounter: 0, commonCounter: 0 },
216
+ }
217
+ return state
218
+ }
219
+
220
+ await t.rejects(
221
+ severity(getState(':severity(critical)')),
222
+ { message: /Missing security archive/ },
223
+ 'should throw an error',
224
+ )
225
+ })
226
+
227
+ t.test('isSeverityKind', async t => {
228
+ t.ok(
229
+ isSeverityKind('critical'),
230
+ 'should return true for valid severity kinds',
231
+ )
232
+ t.notOk(
233
+ isSeverityKind('invalid'),
234
+ 'should return false for invalid severity kinds',
235
+ )
236
+ })
237
+
238
+ t.test('asSeverityKind', async t => {
239
+ t.equal(
240
+ asSeverityKind('critical'),
241
+ 'critical',
242
+ 'should return the severity kind',
243
+ )
244
+ t.throws(
245
+ () => asSeverityKind('invalid'),
246
+ { message: /Expected a valid severity kind/ },
247
+ 'should throw an error for invalid severity kinds',
248
+ )
249
+ })
250
+
251
+ t.test('parseInternals', async t => {
252
+ const testParseInternals = (query: string) => {
253
+ const ast = parse(query)
254
+ return parseInternals(
255
+ asPostcssNodeWithChildren(ast.first.first).nodes,
256
+ )
257
+ }
258
+
259
+ t.strictSame(
260
+ testParseInternals(':severity(critical)'),
261
+ { kind: 'critical', comparator: undefined },
262
+ 'should parse exact severity kind',
263
+ )
264
+
265
+ t.strictSame(
266
+ testParseInternals(':severity(>medium)'),
267
+ { kind: 'medium', comparator: '>' },
268
+ 'should parse severity kind with > comparator',
269
+ )
270
+
271
+ t.strictSame(
272
+ testParseInternals(':severity(<high)'),
273
+ { kind: 'high', comparator: '<' },
274
+ 'should parse severity kind with < comparator',
275
+ )
276
+
277
+ t.strictSame(
278
+ testParseInternals(':severity(>=2)'),
279
+ { kind: '2', comparator: '>=' },
280
+ 'should parse severity kind with >= comparator',
281
+ )
282
+
283
+ t.strictSame(
284
+ testParseInternals(':severity(<=low)'),
285
+ { kind: 'low', comparator: '<=' },
286
+ 'should parse severity kind with <= comparator',
287
+ )
288
+
289
+ t.throws(
290
+ () => testParseInternals(':severity'),
291
+ { message: /Missing severity kind parameter/ },
292
+ 'should throw for missing parameter',
293
+ )
294
+
295
+ t.throws(
296
+ () => testParseInternals(':severity(>invalid)'),
297
+ {
298
+ message: /Expected a valid severity kind or number between 0-3/,
299
+ },
300
+ 'should throw for invalid kind with comparator',
301
+ )
302
+
303
+ t.throws(
304
+ () => testParseInternals(':severity(>4)'),
305
+ {
306
+ message: /Expected a valid severity kind or number between 0-3/,
307
+ },
308
+ 'should throw for out of range number with comparator',
309
+ )
310
+ })
@@ -0,0 +1,98 @@
1
+ import t from 'tap'
2
+ import { joinDepIDTuple } from '@vltpkg/dep-id'
3
+ import { asSecurityArchiveLike } from '@vltpkg/security-archive'
4
+ import { getSimpleGraph } from '../fixtures/graph.ts'
5
+ import type { ParserState } from '../../src/types.ts'
6
+ import { shell } from '../../src/pseudo/shell.ts'
7
+ import { parse } from '../../src/parser.ts'
8
+
9
+ t.test('selects packages with a shellAccess alert', async t => {
10
+ const getState = (query: string, graph = getSimpleGraph()) => {
11
+ const ast = parse(query)
12
+ const current = ast.first.first
13
+ const state: ParserState = {
14
+ comment: '',
15
+ current,
16
+ initial: {
17
+ edges: new Set(graph.edges.values()),
18
+ nodes: new Set(graph.nodes.values()),
19
+ },
20
+ partial: {
21
+ edges: new Set(graph.edges.values()),
22
+ nodes: new Set(graph.nodes.values()),
23
+ },
24
+ collect: {
25
+ edges: new Set(),
26
+ nodes: new Set(),
27
+ },
28
+ cancellable: async () => {},
29
+ walk: async i => i,
30
+ securityArchive: asSecurityArchiveLike(
31
+ new Map([
32
+ [
33
+ joinDepIDTuple(['registry', '', 'e@1.0.0']),
34
+ { alerts: [{ type: 'shellAccess' }] },
35
+ ],
36
+ ]),
37
+ ),
38
+ importers: new Set(graph.importers),
39
+ retries: 0,
40
+ signal: new AbortController().signal,
41
+ specificity: { idCounter: 0, commonCounter: 0 },
42
+ }
43
+ return state
44
+ }
45
+
46
+ await t.test(
47
+ 'filter out any node that does not have the alert',
48
+ async t => {
49
+ const res = await shell(getState(':shell'))
50
+ t.strictSame(
51
+ [...res.partial.nodes].map(n => n.name),
52
+ ['e'],
53
+ 'should select only shell packages',
54
+ )
55
+ t.matchSnapshot({
56
+ nodes: [...res.partial.nodes].map(n => n.name),
57
+ edges: [...res.partial.edges].map(e => e.name),
58
+ })
59
+ },
60
+ )
61
+ })
62
+
63
+ t.test('missing security archive', async t => {
64
+ const getState = (query: string) => {
65
+ const ast = parse(query)
66
+ const current = ast.first.first
67
+ const state: ParserState = {
68
+ comment: '',
69
+ current,
70
+ initial: {
71
+ edges: new Set(),
72
+ nodes: new Set(),
73
+ },
74
+ partial: {
75
+ edges: new Set(),
76
+ nodes: new Set(),
77
+ },
78
+ collect: {
79
+ edges: new Set(),
80
+ nodes: new Set(),
81
+ },
82
+ cancellable: async () => {},
83
+ walk: async i => i,
84
+ securityArchive: undefined,
85
+ importers: new Set(),
86
+ retries: 0,
87
+ signal: new AbortController().signal,
88
+ specificity: { idCounter: 0, commonCounter: 0 },
89
+ }
90
+ return state
91
+ }
92
+
93
+ await t.rejects(
94
+ shell(getState(':shell')),
95
+ { message: /Missing security archive/ },
96
+ 'should throw an error',
97
+ )
98
+ })
@@ -0,0 +1,98 @@
1
+ import t from 'tap'
2
+ import { joinDepIDTuple } from '@vltpkg/dep-id'
3
+ import { asSecurityArchiveLike } from '@vltpkg/security-archive'
4
+ import { getSimpleGraph } from '../fixtures/graph.ts'
5
+ import type { ParserState } from '../../src/types.ts'
6
+ import { shrinkwrap } from '../../src/pseudo/shrinkwrap.ts'
7
+ import { parse } from '../../src/parser.ts'
8
+
9
+ t.test('selects packages with a shrinkwrap alert', async t => {
10
+ const getState = (query: string, graph = getSimpleGraph()) => {
11
+ const ast = parse(query)
12
+ const current = ast.first.first
13
+ const state: ParserState = {
14
+ comment: '',
15
+ current,
16
+ initial: {
17
+ edges: new Set(graph.edges.values()),
18
+ nodes: new Set(graph.nodes.values()),
19
+ },
20
+ partial: {
21
+ edges: new Set(graph.edges.values()),
22
+ nodes: new Set(graph.nodes.values()),
23
+ },
24
+ collect: {
25
+ edges: new Set(),
26
+ nodes: new Set(),
27
+ },
28
+ cancellable: async () => {},
29
+ walk: async i => i,
30
+ securityArchive: asSecurityArchiveLike(
31
+ new Map([
32
+ [
33
+ joinDepIDTuple(['registry', '', 'e@1.0.0']),
34
+ { alerts: [{ type: 'shrinkwrap' }] },
35
+ ],
36
+ ]),
37
+ ),
38
+ importers: new Set(graph.importers),
39
+ retries: 0,
40
+ signal: new AbortController().signal,
41
+ specificity: { idCounter: 0, commonCounter: 0 },
42
+ }
43
+ return state
44
+ }
45
+
46
+ await t.test(
47
+ 'filter out any node that does not have the alert',
48
+ async t => {
49
+ const res = await shrinkwrap(getState(':shrinkwrap'))
50
+ t.strictSame(
51
+ [...res.partial.nodes].map(n => n.name),
52
+ ['e'],
53
+ 'should select only shrinkwrap packages',
54
+ )
55
+ t.matchSnapshot({
56
+ nodes: [...res.partial.nodes].map(n => n.name),
57
+ edges: [...res.partial.edges].map(e => e.name),
58
+ })
59
+ },
60
+ )
61
+ })
62
+
63
+ t.test('missing security archive', async t => {
64
+ const getState = (query: string) => {
65
+ const ast = parse(query)
66
+ const current = ast.first.first
67
+ const state: ParserState = {
68
+ comment: '',
69
+ current,
70
+ initial: {
71
+ edges: new Set(),
72
+ nodes: new Set(),
73
+ },
74
+ partial: {
75
+ edges: new Set(),
76
+ nodes: new Set(),
77
+ },
78
+ collect: {
79
+ edges: new Set(),
80
+ nodes: new Set(),
81
+ },
82
+ cancellable: async () => {},
83
+ walk: async i => i,
84
+ securityArchive: undefined,
85
+ importers: new Set(),
86
+ retries: 0,
87
+ signal: new AbortController().signal,
88
+ specificity: { idCounter: 0, commonCounter: 0 },
89
+ }
90
+ return state
91
+ }
92
+
93
+ await t.rejects(
94
+ shrinkwrap(getState(':shrinkwrap')),
95
+ { message: /Missing security archive/ },
96
+ 'should throw an error',
97
+ )
98
+ })