openvsx-webui-test 0.17.2 → 0.18.0-dev.0

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 (337) hide show
  1. package/lib/components/button-with-progress.d.ts +1 -0
  2. package/lib/components/button-with-progress.d.ts.map +1 -1
  3. package/lib/components/button-with-progress.js +1 -1
  4. package/lib/components/button-with-progress.js.map +1 -1
  5. package/lib/components/sanitized-markdown.d.ts.map +1 -1
  6. package/lib/components/sanitized-markdown.js +79 -1
  7. package/lib/components/sanitized-markdown.js.map +1 -1
  8. package/lib/components/scan-admin/common/auto-refresh.d.ts +21 -0
  9. package/lib/components/scan-admin/common/auto-refresh.d.ts.map +1 -0
  10. package/lib/components/scan-admin/common/auto-refresh.js +45 -0
  11. package/lib/components/scan-admin/common/auto-refresh.js.map +1 -0
  12. package/lib/components/scan-admin/common/conditional-tooltip.d.ts +24 -0
  13. package/lib/components/scan-admin/common/conditional-tooltip.d.ts.map +1 -0
  14. package/lib/components/scan-admin/common/conditional-tooltip.js +63 -0
  15. package/lib/components/scan-admin/common/conditional-tooltip.js.map +1 -0
  16. package/lib/components/scan-admin/common/file-table.d.ts +23 -0
  17. package/lib/components/scan-admin/common/file-table.d.ts.map +1 -0
  18. package/lib/components/scan-admin/common/file-table.js +350 -0
  19. package/lib/components/scan-admin/common/file-table.js.map +1 -0
  20. package/lib/components/scan-admin/common/index.d.ts +18 -0
  21. package/lib/components/scan-admin/common/index.d.ts.map +1 -0
  22. package/lib/components/scan-admin/common/index.js +18 -0
  23. package/lib/components/scan-admin/common/index.js.map +1 -0
  24. package/lib/components/scan-admin/common/tab-panel.d.ts +25 -0
  25. package/lib/components/scan-admin/common/tab-panel.d.ts.map +1 -0
  26. package/lib/components/scan-admin/common/tab-panel.js +22 -0
  27. package/lib/components/scan-admin/common/tab-panel.js.map +1 -0
  28. package/lib/components/scan-admin/common/utils.d.ts +15 -0
  29. package/lib/components/scan-admin/common/utils.d.ts.map +1 -0
  30. package/lib/components/scan-admin/common/utils.js +46 -0
  31. package/lib/components/scan-admin/common/utils.js.map +1 -0
  32. package/lib/components/scan-admin/dialogs/file-dialog.d.ts +19 -0
  33. package/lib/components/scan-admin/dialogs/file-dialog.d.ts.map +1 -0
  34. package/lib/components/scan-admin/dialogs/file-dialog.js +85 -0
  35. package/lib/components/scan-admin/dialogs/file-dialog.js.map +1 -0
  36. package/lib/components/scan-admin/dialogs/index.d.ts +15 -0
  37. package/lib/components/scan-admin/dialogs/index.d.ts.map +1 -0
  38. package/lib/components/scan-admin/dialogs/index.js +15 -0
  39. package/lib/components/scan-admin/dialogs/index.js.map +1 -0
  40. package/lib/components/scan-admin/dialogs/quarantine-dialog.d.ts +23 -0
  41. package/lib/components/scan-admin/dialogs/quarantine-dialog.d.ts.map +1 -0
  42. package/lib/components/scan-admin/dialogs/quarantine-dialog.js +192 -0
  43. package/lib/components/scan-admin/dialogs/quarantine-dialog.js.map +1 -0
  44. package/lib/components/scan-admin/index.d.ts +20 -0
  45. package/lib/components/scan-admin/index.d.ts.map +1 -0
  46. package/lib/components/scan-admin/index.js +25 -0
  47. package/lib/components/scan-admin/index.js.map +1 -0
  48. package/lib/components/scan-admin/scan-card/index.d.ts +20 -0
  49. package/lib/components/scan-admin/scan-card/index.d.ts.map +1 -0
  50. package/lib/components/scan-admin/scan-card/index.js +20 -0
  51. package/lib/components/scan-admin/scan-card/index.js.map +1 -0
  52. package/lib/components/scan-admin/scan-card/scan-card-content.d.ts +30 -0
  53. package/lib/components/scan-admin/scan-card/scan-card-content.d.ts.map +1 -0
  54. package/lib/components/scan-admin/scan-card/scan-card-content.js +232 -0
  55. package/lib/components/scan-admin/scan-card/scan-card-content.js.map +1 -0
  56. package/lib/components/scan-admin/scan-card/scan-card-expand-strip-badges.d.ts +26 -0
  57. package/lib/components/scan-admin/scan-card/scan-card-expand-strip-badges.d.ts.map +1 -0
  58. package/lib/components/scan-admin/scan-card/scan-card-expand-strip-badges.js +121 -0
  59. package/lib/components/scan-admin/scan-card/scan-card-expand-strip-badges.js.map +1 -0
  60. package/lib/components/scan-admin/scan-card/scan-card-expand-strip.d.ts +27 -0
  61. package/lib/components/scan-admin/scan-card/scan-card-expand-strip.d.ts.map +1 -0
  62. package/lib/components/scan-admin/scan-card/scan-card-expand-strip.js +66 -0
  63. package/lib/components/scan-admin/scan-card/scan-card-expand-strip.js.map +1 -0
  64. package/lib/components/scan-admin/scan-card/scan-card-expanded-content.d.ts +26 -0
  65. package/lib/components/scan-admin/scan-card/scan-card-expanded-content.d.ts.map +1 -0
  66. package/lib/components/scan-admin/scan-card/scan-card-expanded-content.js +151 -0
  67. package/lib/components/scan-admin/scan-card/scan-card-expanded-content.js.map +1 -0
  68. package/lib/components/scan-admin/scan-card/scan-card-header.d.ts +26 -0
  69. package/lib/components/scan-admin/scan-card/scan-card-header.d.ts.map +1 -0
  70. package/lib/components/scan-admin/scan-card/scan-card-header.js +101 -0
  71. package/lib/components/scan-admin/scan-card/scan-card-header.js.map +1 -0
  72. package/lib/components/scan-admin/scan-card/scan-card.d.ts +34 -0
  73. package/lib/components/scan-admin/scan-card/scan-card.d.ts.map +1 -0
  74. package/lib/components/scan-admin/scan-card/scan-card.js +90 -0
  75. package/lib/components/scan-admin/scan-card/scan-card.js.map +1 -0
  76. package/lib/components/scan-admin/scan-card/scan-detail-card.d.ts +38 -0
  77. package/lib/components/scan-admin/scan-card/scan-detail-card.d.ts.map +1 -0
  78. package/lib/components/scan-admin/scan-card/scan-detail-card.js +72 -0
  79. package/lib/components/scan-admin/scan-card/scan-detail-card.js.map +1 -0
  80. package/lib/components/scan-admin/scan-card/utils.d.ts +48 -0
  81. package/lib/components/scan-admin/scan-card/utils.d.ts.map +1 -0
  82. package/lib/components/scan-admin/scan-card/utils.js +166 -0
  83. package/lib/components/scan-admin/scan-card/utils.js.map +1 -0
  84. package/lib/components/scan-admin/tab-contents/allow-list-tab-content.d.ts +19 -0
  85. package/lib/components/scan-admin/tab-contents/allow-list-tab-content.d.ts.map +1 -0
  86. package/lib/components/scan-admin/tab-contents/allow-list-tab-content.js +55 -0
  87. package/lib/components/scan-admin/tab-contents/allow-list-tab-content.js.map +1 -0
  88. package/lib/components/scan-admin/tab-contents/auto-rejected-tab-content.d.ts +19 -0
  89. package/lib/components/scan-admin/tab-contents/auto-rejected-tab-content.d.ts.map +1 -0
  90. package/lib/components/scan-admin/tab-contents/auto-rejected-tab-content.js +43 -0
  91. package/lib/components/scan-admin/tab-contents/auto-rejected-tab-content.js.map +1 -0
  92. package/lib/components/scan-admin/tab-contents/block-list-tab-content.d.ts +19 -0
  93. package/lib/components/scan-admin/tab-contents/block-list-tab-content.d.ts.map +1 -0
  94. package/lib/components/scan-admin/tab-contents/block-list-tab-content.js +55 -0
  95. package/lib/components/scan-admin/tab-contents/block-list-tab-content.js.map +1 -0
  96. package/lib/components/scan-admin/tab-contents/index.d.ts +18 -0
  97. package/lib/components/scan-admin/tab-contents/index.d.ts.map +1 -0
  98. package/lib/components/scan-admin/tab-contents/index.js +18 -0
  99. package/lib/components/scan-admin/tab-contents/index.js.map +1 -0
  100. package/lib/components/scan-admin/tab-contents/quarantined-tab-content.d.ts +19 -0
  101. package/lib/components/scan-admin/tab-contents/quarantined-tab-content.d.ts.map +1 -0
  102. package/lib/components/scan-admin/tab-contents/quarantined-tab-content.js +78 -0
  103. package/lib/components/scan-admin/tab-contents/quarantined-tab-content.js.map +1 -0
  104. package/lib/components/scan-admin/tab-contents/scans-tab-content.d.ts +19 -0
  105. package/lib/components/scan-admin/tab-contents/scans-tab-content.d.ts.map +1 -0
  106. package/lib/components/scan-admin/tab-contents/scans-tab-content.js +52 -0
  107. package/lib/components/scan-admin/tab-contents/scans-tab-content.js.map +1 -0
  108. package/lib/components/scan-admin/toolbars/counts-toolbar.d.ts +35 -0
  109. package/lib/components/scan-admin/toolbars/counts-toolbar.d.ts.map +1 -0
  110. package/lib/components/scan-admin/toolbars/counts-toolbar.js +132 -0
  111. package/lib/components/scan-admin/toolbars/counts-toolbar.js.map +1 -0
  112. package/lib/components/scan-admin/toolbars/index.d.ts +16 -0
  113. package/lib/components/scan-admin/toolbars/index.d.ts.map +1 -0
  114. package/lib/components/scan-admin/toolbars/index.js +16 -0
  115. package/lib/components/scan-admin/toolbars/index.js.map +1 -0
  116. package/lib/components/scan-admin/toolbars/search-toolbar.d.ts +43 -0
  117. package/lib/components/scan-admin/toolbars/search-toolbar.d.ts.map +1 -0
  118. package/lib/components/scan-admin/toolbars/search-toolbar.js +106 -0
  119. package/lib/components/scan-admin/toolbars/search-toolbar.js.map +1 -0
  120. package/lib/components/scan-admin/toolbars/tab-toolbar.d.ts +25 -0
  121. package/lib/components/scan-admin/toolbars/tab-toolbar.d.ts.map +1 -0
  122. package/lib/components/scan-admin/toolbars/tab-toolbar.js +33 -0
  123. package/lib/components/scan-admin/toolbars/tab-toolbar.js.map +1 -0
  124. package/lib/context/scan-admin/index.d.ts +21 -0
  125. package/lib/context/scan-admin/index.d.ts.map +1 -0
  126. package/lib/context/scan-admin/index.js +27 -0
  127. package/lib/context/scan-admin/index.js.map +1 -0
  128. package/lib/context/scan-admin/scan-actions.d.ts +19 -0
  129. package/lib/context/scan-admin/scan-actions.d.ts.map +1 -0
  130. package/lib/context/scan-admin/scan-actions.js +64 -0
  131. package/lib/context/scan-admin/scan-actions.js.map +1 -0
  132. package/lib/context/scan-admin/scan-api-actions.d.ts +26 -0
  133. package/lib/context/scan-admin/scan-api-actions.d.ts.map +1 -0
  134. package/lib/context/scan-admin/scan-api-actions.js +118 -0
  135. package/lib/context/scan-admin/scan-api-actions.js.map +1 -0
  136. package/lib/context/scan-admin/scan-api-effects.d.ts +40 -0
  137. package/lib/context/scan-admin/scan-api-effects.d.ts.map +1 -0
  138. package/lib/context/scan-admin/scan-api-effects.js +446 -0
  139. package/lib/context/scan-admin/scan-api-effects.js.map +1 -0
  140. package/lib/context/scan-admin/scan-context-types.d.ts +69 -0
  141. package/lib/context/scan-admin/scan-context-types.d.ts.map +1 -0
  142. package/lib/context/scan-admin/scan-context-types.js +14 -0
  143. package/lib/context/scan-admin/scan-context-types.js.map +1 -0
  144. package/lib/context/scan-admin/scan-context.d.ts +17 -0
  145. package/lib/context/scan-admin/scan-context.d.ts.map +1 -0
  146. package/lib/context/scan-admin/scan-context.js +90 -0
  147. package/lib/context/scan-admin/scan-context.js.map +1 -0
  148. package/lib/context/scan-admin/scan-helpers.d.ts +28 -0
  149. package/lib/context/scan-admin/scan-helpers.d.ts.map +1 -0
  150. package/lib/context/scan-admin/scan-helpers.js +56 -0
  151. package/lib/context/scan-admin/scan-helpers.js.map +1 -0
  152. package/lib/context/scan-admin/scan-reducer.d.ts +18 -0
  153. package/lib/context/scan-admin/scan-reducer.d.ts.map +1 -0
  154. package/lib/context/scan-admin/scan-reducer.js +194 -0
  155. package/lib/context/scan-admin/scan-reducer.js.map +1 -0
  156. package/lib/context/scan-admin/scan-types.d.ts +292 -0
  157. package/lib/context/scan-admin/scan-types.d.ts.map +1 -0
  158. package/lib/context/scan-admin/scan-types.js +67 -0
  159. package/lib/context/scan-admin/scan-types.js.map +1 -0
  160. package/lib/default/page-settings.d.ts.map +1 -1
  161. package/lib/default/page-settings.js +3 -0
  162. package/lib/default/page-settings.js.map +1 -1
  163. package/lib/default/theme.d.ts +50 -12
  164. package/lib/default/theme.d.ts.map +1 -1
  165. package/lib/default/theme.js +42 -0
  166. package/lib/default/theme.js.map +1 -1
  167. package/lib/extension-registry-service.d.ts +85 -1
  168. package/lib/extension-registry-service.d.ts.map +1 -1
  169. package/lib/extension-registry-service.js +197 -0
  170. package/lib/extension-registry-service.js.map +1 -1
  171. package/lib/extension-registry-types.d.ts +140 -0
  172. package/lib/extension-registry-types.d.ts.map +1 -1
  173. package/lib/extension-registry-types.js.map +1 -1
  174. package/lib/hooks/scan-admin/index.d.ts +34 -0
  175. package/lib/hooks/scan-admin/index.d.ts.map +1 -0
  176. package/lib/hooks/scan-admin/index.js +28 -0
  177. package/lib/hooks/scan-admin/index.js.map +1 -0
  178. package/lib/hooks/scan-admin/use-auto-rejected-tab.d.ts +76 -0
  179. package/lib/hooks/scan-admin/use-auto-rejected-tab.d.ts.map +1 -0
  180. package/lib/hooks/scan-admin/use-auto-rejected-tab.js +79 -0
  181. package/lib/hooks/scan-admin/use-auto-rejected-tab.js.map +1 -0
  182. package/lib/hooks/scan-admin/use-dialogs.d.ts +43 -0
  183. package/lib/hooks/scan-admin/use-dialogs.d.ts.map +1 -0
  184. package/lib/hooks/scan-admin/use-dialogs.js +55 -0
  185. package/lib/hooks/scan-admin/use-dialogs.js.map +1 -0
  186. package/lib/hooks/scan-admin/use-file-list-tab.d.ts +208 -0
  187. package/lib/hooks/scan-admin/use-file-list-tab.d.ts.map +1 -0
  188. package/lib/hooks/scan-admin/use-file-list-tab.js +125 -0
  189. package/lib/hooks/scan-admin/use-file-list-tab.js.map +1 -0
  190. package/lib/hooks/scan-admin/use-pagination.d.ts +36 -0
  191. package/lib/hooks/scan-admin/use-pagination.d.ts.map +1 -0
  192. package/lib/hooks/scan-admin/use-pagination.js +79 -0
  193. package/lib/hooks/scan-admin/use-pagination.js.map +1 -0
  194. package/lib/hooks/scan-admin/use-quarantined-tab.d.ts +92 -0
  195. package/lib/hooks/scan-admin/use-quarantined-tab.d.ts.map +1 -0
  196. package/lib/hooks/scan-admin/use-quarantined-tab.js +125 -0
  197. package/lib/hooks/scan-admin/use-quarantined-tab.js.map +1 -0
  198. package/lib/hooks/scan-admin/use-scan-card-state.d.ts +29 -0
  199. package/lib/hooks/scan-admin/use-scan-card-state.d.ts.map +1 -0
  200. package/lib/hooks/scan-admin/use-scan-card-state.js +50 -0
  201. package/lib/hooks/scan-admin/use-scan-card-state.js.map +1 -0
  202. package/lib/hooks/scan-admin/use-scan-filters.d.ts +53 -0
  203. package/lib/hooks/scan-admin/use-scan-filters.d.ts.map +1 -0
  204. package/lib/hooks/scan-admin/use-scan-filters.js +75 -0
  205. package/lib/hooks/scan-admin/use-scan-filters.js.map +1 -0
  206. package/lib/hooks/scan-admin/use-scans-tab.d.ts +85 -0
  207. package/lib/hooks/scan-admin/use-scans-tab.d.ts.map +1 -0
  208. package/lib/hooks/scan-admin/use-scans-tab.js +87 -0
  209. package/lib/hooks/scan-admin/use-scans-tab.js.map +1 -0
  210. package/lib/hooks/scan-admin/use-search.d.ts +32 -0
  211. package/lib/hooks/scan-admin/use-search.d.ts.map +1 -0
  212. package/lib/hooks/scan-admin/use-search.js +48 -0
  213. package/lib/hooks/scan-admin/use-search.js.map +1 -0
  214. package/lib/hooks/scan-admin/use-tab-navigation.d.ts +96 -0
  215. package/lib/hooks/scan-admin/use-tab-navigation.d.ts.map +1 -0
  216. package/lib/hooks/scan-admin/use-tab-navigation.js +70 -0
  217. package/lib/hooks/scan-admin/use-tab-navigation.js.map +1 -0
  218. package/lib/hooks/scan-admin/use-url-sync.d.ts +22 -0
  219. package/lib/hooks/scan-admin/use-url-sync.d.ts.map +1 -0
  220. package/lib/hooks/scan-admin/use-url-sync.js +252 -0
  221. package/lib/hooks/scan-admin/use-url-sync.js.map +1 -0
  222. package/lib/page-settings.d.ts +4 -0
  223. package/lib/page-settings.d.ts.map +1 -1
  224. package/lib/pages/admin-dashboard/admin-dashboard.d.ts +1 -0
  225. package/lib/pages/admin-dashboard/admin-dashboard.d.ts.map +1 -1
  226. package/lib/pages/admin-dashboard/admin-dashboard.js +23 -3
  227. package/lib/pages/admin-dashboard/admin-dashboard.js.map +1 -1
  228. package/lib/pages/admin-dashboard/publisher-admin.js +1 -1
  229. package/lib/pages/admin-dashboard/publisher-admin.js.map +1 -1
  230. package/lib/pages/admin-dashboard/publisher-revoke-dialog.d.ts.map +1 -1
  231. package/lib/pages/admin-dashboard/publisher-revoke-dialog.js +1 -1
  232. package/lib/pages/admin-dashboard/publisher-revoke-dialog.js.map +1 -1
  233. package/lib/pages/admin-dashboard/scan-admin.d.ts +20 -0
  234. package/lib/pages/admin-dashboard/scan-admin.d.ts.map +1 -0
  235. package/lib/pages/admin-dashboard/scan-admin.js +66 -0
  236. package/lib/pages/admin-dashboard/scan-admin.js.map +1 -0
  237. package/lib/pages/admin-dashboard/welcome.d.ts.map +1 -1
  238. package/lib/pages/admin-dashboard/welcome.js +2 -1
  239. package/lib/pages/admin-dashboard/welcome.js.map +1 -1
  240. package/lib/pages/extension-detail/extension-detail-overview.d.ts.map +1 -1
  241. package/lib/pages/extension-detail/extension-detail-overview.js +9 -1
  242. package/lib/pages/extension-detail/extension-detail-overview.js.map +1 -1
  243. package/lib/pages/extension-detail/extension-detail-reviews.d.ts.map +1 -1
  244. package/lib/pages/extension-detail/extension-detail-reviews.js +67 -18
  245. package/lib/pages/extension-detail/extension-detail-reviews.js.map +1 -1
  246. package/lib/pages/extension-detail/extension-detail.js +2 -2
  247. package/lib/pages/extension-detail/extension-detail.js.map +1 -1
  248. package/lib/pages/extension-detail/extension-rating-stars.d.ts +2 -2
  249. package/lib/pages/extension-detail/extension-rating-stars.d.ts.map +1 -1
  250. package/lib/pages/extension-detail/extension-rating-stars.js +1 -1
  251. package/lib/pages/extension-detail/extension-rating-stars.js.map +1 -1
  252. package/lib/pages/extension-list/extension-list-item.js +2 -2
  253. package/lib/pages/extension-list/extension-list-item.js.map +1 -1
  254. package/lib/pages/user/user-namespace-extension-list-item.d.ts.map +1 -1
  255. package/lib/pages/user/user-namespace-extension-list-item.js +23 -9
  256. package/lib/pages/user/user-namespace-extension-list-item.js.map +1 -1
  257. package/lib/pages/user/user-publisher-agreement.d.ts.map +1 -1
  258. package/lib/pages/user/user-publisher-agreement.js +34 -13
  259. package/lib/pages/user/user-publisher-agreement.js.map +1 -1
  260. package/lib/pages/user/user-settings-profile.d.ts.map +1 -1
  261. package/lib/pages/user/user-settings-profile.js +10 -5
  262. package/lib/pages/user/user-settings-profile.js.map +1 -1
  263. package/lib/pages/user/user-settings-tokens.d.ts.map +1 -1
  264. package/lib/pages/user/user-settings-tokens.js +13 -5
  265. package/lib/pages/user/user-settings-tokens.js.map +1 -1
  266. package/package.json +10 -9
  267. package/src/components/button-with-progress.tsx +2 -1
  268. package/src/components/sanitized-markdown.tsx +81 -1
  269. package/src/components/scan-admin/common/auto-refresh.tsx +79 -0
  270. package/src/components/scan-admin/common/conditional-tooltip.tsx +74 -0
  271. package/src/components/scan-admin/common/file-table.tsx +508 -0
  272. package/src/components/scan-admin/common/index.ts +18 -0
  273. package/src/components/scan-admin/common/tab-panel.tsx +42 -0
  274. package/src/components/scan-admin/common/utils.ts +48 -0
  275. package/src/components/scan-admin/dialogs/file-dialog.tsx +137 -0
  276. package/src/components/scan-admin/dialogs/index.ts +15 -0
  277. package/src/components/scan-admin/dialogs/quarantine-dialog.tsx +270 -0
  278. package/src/components/scan-admin/index.ts +52 -0
  279. package/src/components/scan-admin/scan-card/index.ts +20 -0
  280. package/src/components/scan-admin/scan-card/scan-card-content.tsx +457 -0
  281. package/src/components/scan-admin/scan-card/scan-card-expand-strip-badges.tsx +186 -0
  282. package/src/components/scan-admin/scan-card/scan-card-expand-strip.tsx +104 -0
  283. package/src/components/scan-admin/scan-card/scan-card-expanded-content.tsx +262 -0
  284. package/src/components/scan-admin/scan-card/scan-card-header.tsx +176 -0
  285. package/src/components/scan-admin/scan-card/scan-card.tsx +152 -0
  286. package/src/components/scan-admin/scan-card/scan-detail-card.tsx +144 -0
  287. package/src/components/scan-admin/scan-card/utils.ts +199 -0
  288. package/src/components/scan-admin/tab-contents/allow-list-tab-content.tsx +119 -0
  289. package/src/components/scan-admin/tab-contents/auto-rejected-tab-content.tsx +106 -0
  290. package/src/components/scan-admin/tab-contents/block-list-tab-content.tsx +119 -0
  291. package/src/components/scan-admin/tab-contents/index.ts +18 -0
  292. package/src/components/scan-admin/tab-contents/quarantined-tab-content.tsx +158 -0
  293. package/src/components/scan-admin/tab-contents/scans-tab-content.tsx +113 -0
  294. package/src/components/scan-admin/toolbars/counts-toolbar.tsx +262 -0
  295. package/src/components/scan-admin/toolbars/index.ts +16 -0
  296. package/src/components/scan-admin/toolbars/search-toolbar.tsx +255 -0
  297. package/src/components/scan-admin/toolbars/tab-toolbar.tsx +56 -0
  298. package/src/context/scan-admin/index.ts +43 -0
  299. package/src/context/scan-admin/scan-actions.ts +87 -0
  300. package/src/context/scan-admin/scan-api-actions.ts +137 -0
  301. package/src/context/scan-admin/scan-api-effects.ts +491 -0
  302. package/src/context/scan-admin/scan-context-types.ts +102 -0
  303. package/src/context/scan-admin/scan-context.tsx +123 -0
  304. package/src/context/scan-admin/scan-helpers.ts +63 -0
  305. package/src/context/scan-admin/scan-reducer.ts +321 -0
  306. package/src/context/scan-admin/scan-types.ts +337 -0
  307. package/src/default/page-settings.tsx +3 -0
  308. package/src/default/theme.tsx +102 -13
  309. package/src/extension-registry-service.ts +216 -1
  310. package/src/extension-registry-types.ts +157 -0
  311. package/src/hooks/scan-admin/index.ts +48 -0
  312. package/src/hooks/scan-admin/use-auto-rejected-tab.ts +85 -0
  313. package/src/hooks/scan-admin/use-dialogs.ts +83 -0
  314. package/src/hooks/scan-admin/use-file-list-tab.ts +149 -0
  315. package/src/hooks/scan-admin/use-pagination.ts +90 -0
  316. package/src/hooks/scan-admin/use-quarantined-tab.ts +138 -0
  317. package/src/hooks/scan-admin/use-scan-card-state.ts +73 -0
  318. package/src/hooks/scan-admin/use-scan-filters.ts +83 -0
  319. package/src/hooks/scan-admin/use-scans-tab.ts +92 -0
  320. package/src/hooks/scan-admin/use-search.ts +54 -0
  321. package/src/hooks/scan-admin/use-tab-navigation.ts +82 -0
  322. package/src/hooks/scan-admin/use-url-sync.ts +293 -0
  323. package/src/page-settings.ts +4 -0
  324. package/src/pages/admin-dashboard/admin-dashboard.tsx +26 -2
  325. package/src/pages/admin-dashboard/publisher-admin.tsx +1 -1
  326. package/src/pages/admin-dashboard/publisher-revoke-dialog.tsx +2 -1
  327. package/src/pages/admin-dashboard/scan-admin.tsx +109 -0
  328. package/src/pages/admin-dashboard/welcome.tsx +1 -0
  329. package/src/pages/extension-detail/extension-detail-overview.tsx +16 -2
  330. package/src/pages/extension-detail/extension-detail-reviews.tsx +116 -30
  331. package/src/pages/extension-detail/extension-detail.tsx +2 -2
  332. package/src/pages/extension-detail/extension-rating-stars.tsx +2 -2
  333. package/src/pages/extension-list/extension-list-item.tsx +2 -2
  334. package/src/pages/user/user-namespace-extension-list-item.tsx +38 -13
  335. package/src/pages/user/user-publisher-agreement.tsx +30 -11
  336. package/src/pages/user/user-settings-profile.tsx +10 -6
  337. package/src/pages/user/user-settings-tokens.tsx +15 -6
@@ -0,0 +1,166 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ // ============================================================================
14
+ // Constants
15
+ // ============================================================================
16
+ export const ICON_SIZE = 48;
17
+ // ============================================================================
18
+ // Status Utilities
19
+ // ============================================================================
20
+ export const isRunning = (status) => {
21
+ return status === 'STARTED' || status === 'VALIDATING' || status === 'SCANNING';
22
+ };
23
+ /**
24
+ * Determines whether the scan card badge/strip should show the striped effect.
25
+ * Only shows striping when the hypothetical status would be DIFFERENT from the current status.
26
+ *
27
+ * - PASSED: Stripe if any threats or validationFailures exist (hypothetical would be QUARANTINED or AUTO REJECTED)
28
+ * - QUARANTINED: Stripe only if validationFailures exist (hypothetical would be AUTO REJECTED)
29
+ * - Unenforced threats don't cause striping since hypothetical would still be QUARANTINED
30
+ * - AUTO REJECTED: Never stripe (hypothetical would still be AUTO REJECTED)
31
+ */
32
+ export const shouldShowStriped = (scan) => {
33
+ switch (scan.status) {
34
+ case 'PASSED':
35
+ // Any issues mean hypothetical status would be different (QUARANTINED or AUTO REJECTED)
36
+ return scan.threats.length > 0 || scan.validationFailures.length > 0;
37
+ case 'QUARANTINED':
38
+ // Only validation failures would change status to AUTO REJECTED
39
+ // Unenforced threats would still result in QUARANTINED (same status, no stripe)
40
+ return scan.validationFailures.length > 0;
41
+ case 'AUTO REJECTED':
42
+ // Scan could only be AUTO REJECTED if there's at least one enforced validation failure
43
+ // Unenforced validation failures would still result in AUTO REJECTED (same status, no stripe)
44
+ return false;
45
+ default:
46
+ return false;
47
+ }
48
+ };
49
+ export const getHypotheticalStatus = (scan) => {
50
+ if (!shouldShowStriped(scan))
51
+ return null;
52
+ const hasUnenforcedValidationFailures = scan.validationFailures.some(v => !v.enforcedFlag);
53
+ const hasUnenforcedThreats = scan.threats.some(t => !t.enforcedFlag);
54
+ if (hasUnenforcedValidationFailures) {
55
+ return 'AUTO REJECTED';
56
+ }
57
+ if (hasUnenforcedThreats) {
58
+ return 'QUARANTINED';
59
+ }
60
+ return null;
61
+ };
62
+ export const getDetailBadges = (scan) => {
63
+ var _a;
64
+ const badges = [];
65
+ scan.threats.forEach(threat => {
66
+ if (threat.type) {
67
+ badges.push({
68
+ label: threat.type,
69
+ isEnforced: threat.enforcedFlag,
70
+ type: 'threat'
71
+ });
72
+ }
73
+ });
74
+ scan.validationFailures.forEach(failure => {
75
+ badges.push({
76
+ label: failure.type,
77
+ isEnforced: failure.enforcedFlag,
78
+ type: 'validation'
79
+ });
80
+ });
81
+ // Add badges for check results with ERROR status
82
+ (_a = scan.checkResults) === null || _a === void 0 ? void 0 : _a.forEach(checkResult => {
83
+ if (checkResult.result === 'ERROR') {
84
+ badges.push({
85
+ label: checkResult.checkType,
86
+ // Use "enforced" styling (solid) for required checks, striped for optional
87
+ isEnforced: checkResult.required !== false,
88
+ type: 'error'
89
+ });
90
+ }
91
+ });
92
+ return badges;
93
+ };
94
+ // ============================================================================
95
+ // Theme Utilities
96
+ // ============================================================================
97
+ export const getStatusColorSx = (status, theme) => {
98
+ switch (status) {
99
+ case 'PASSED':
100
+ return {
101
+ backgroundColor: theme.palette.passed.dark,
102
+ color: theme.palette.passed.light,
103
+ '& .MuiChip-icon': {
104
+ color: theme.palette.passed.light,
105
+ },
106
+ };
107
+ case 'QUARANTINED':
108
+ return {
109
+ backgroundColor: theme.palette.quarantined.dark,
110
+ color: theme.palette.quarantined.light,
111
+ '& .MuiChip-icon': {
112
+ color: theme.palette.quarantined.light,
113
+ },
114
+ };
115
+ case 'AUTO REJECTED':
116
+ return {
117
+ backgroundColor: theme.palette.rejected.dark,
118
+ color: theme.palette.rejected.light,
119
+ '& .MuiChip-icon': {
120
+ color: theme.palette.rejected.light,
121
+ },
122
+ };
123
+ case 'ERROR':
124
+ return {
125
+ backgroundColor: theme.palette.errorStatus.dark,
126
+ color: theme.palette.errorStatus.light,
127
+ '& .MuiChip-icon': {
128
+ color: theme.palette.errorStatus.light,
129
+ },
130
+ };
131
+ default:
132
+ return {};
133
+ }
134
+ };
135
+ export const getStatusBarColor = (status, theme) => {
136
+ switch (status) {
137
+ case 'PASSED':
138
+ return theme.palette.passed.dark;
139
+ case 'QUARANTINED':
140
+ return theme.palette.quarantined.dark;
141
+ case 'AUTO REJECTED':
142
+ return theme.palette.rejected.dark;
143
+ case 'ERROR':
144
+ return theme.palette.errorStatus.dark;
145
+ default:
146
+ return 'transparent';
147
+ }
148
+ };
149
+ // ============================================================================
150
+ // UI Utilities
151
+ // ============================================================================
152
+ export const shouldShowExpandButton = (scan) => {
153
+ const hasErrorMessage = scan.status === 'ERROR' && !!scan.errorMessage;
154
+ const hasCheckResults = scan.checkResults && scan.checkResults.length > 0;
155
+ return scan.threats.length > 0 || scan.validationFailures.length > 0 || hasCheckResults || hasErrorMessage;
156
+ };
157
+ export const hasDownload = (scan) => {
158
+ return scan.status === 'PASSED' || scan.status === 'QUARANTINED';
159
+ };
160
+ export const getFileName = (url) => {
161
+ if (!url)
162
+ return 'extension.vsix';
163
+ const parts = url.split('/');
164
+ return parts[parts.length - 1] || 'extension.vsix';
165
+ };
166
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/scan-admin/scan-card/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import { FunctionComponent } from 'react';
14
+ /**
15
+ * Allowed Files tab component that displays files that have been allowed.
16
+ * Uses the useAllowListTab hook to consume context.
17
+ */
18
+ export declare const AllowListTabContent: FunctionComponent;
19
+ //# sourceMappingURL=allow-list-tab-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allow-list-tab-content.d.ts","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/allow-list-tab-content.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQjD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBA6FjC,CAAC"}
@@ -0,0 +1,55 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import React from 'react';
14
+ import { Box, Typography, Pagination, CircularProgress } from '@mui/material';
15
+ import { SearchToolbar, CountsToolbar } from '../toolbars';
16
+ import { FileTable, AutoRefresh } from '../common';
17
+ import { useAllowListTab } from '../../../hooks/scan-admin';
18
+ import { useScanContext } from '../../../context/scan-admin';
19
+ import { useTheme } from '@mui/material/styles';
20
+ /**
21
+ * Allowed Files tab component that displays files that have been allowed.
22
+ * Uses the useAllowListTab hook to consume context.
23
+ */
24
+ export const AllowListTabContent = () => {
25
+ const theme = useTheme();
26
+ const { state, actions } = useScanContext();
27
+ const { files, isLoading, fileCount, search, selection, setFilesChecked, fileActions, pagination, lastRefreshed, autoRefresh, onAutoRefreshChange, } = useAllowListTab();
28
+ return (React.createElement(React.Fragment, null,
29
+ React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column' } },
30
+ React.createElement(SearchToolbar, { publisherQuery: search.publisherQuery, namespaceQuery: search.namespaceQuery, nameQuery: search.nameQuery, onPublisherChange: search.handlePublisherChange, onNamespaceChange: search.handleNamespaceChange, onNameChange: search.handleNameChange, actionButtons: [
31
+ {
32
+ label: 'BLOCK',
33
+ color: theme.palette.blocked,
34
+ disabled: !fileActions.canPerformAction,
35
+ onClick: fileActions.openBlockDialog,
36
+ },
37
+ {
38
+ label: 'DELETE',
39
+ color: theme.palette.secondary.main,
40
+ disabled: !fileActions.canPerformAction,
41
+ onClick: fileActions.openDeleteDialog,
42
+ },
43
+ ], selectedCount: selection.selectedCount }),
44
+ React.createElement(CountsToolbar, { counts: [
45
+ { label: 'Allowed Files', value: fileCount, color: theme.palette.allowed },
46
+ ], dateRange: state.fileDateRange, onDateRangeChange: actions.setFileDateRange }),
47
+ React.createElement(AutoRefresh, { lastRefreshed: lastRefreshed, autoRefresh: autoRefresh, onAutoRefreshChange: onAutoRefreshChange })),
48
+ isLoading ? (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', py: 8 } },
49
+ React.createElement(CircularProgress, { color: 'secondary' }))) : files.length === 0 ? (React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column', alignItems: 'center', py: 4 } },
50
+ React.createElement(Typography, { variant: 'h6', color: 'text.secondary' }, "No allowed files"),
51
+ React.createElement(Typography, { variant: 'body2', color: 'text.secondary', sx: { mt: 1 } }, "Files that have been allowed will appear here"))) : (React.createElement(FileTable, { files: files, type: 'allowed', selectedFiles: selection.checked, onSelectionChange: setFilesChecked })),
52
+ pagination.totalPages > 1 && (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', mt: 3, mb: 2 } },
53
+ React.createElement(Pagination, { count: pagination.totalPages, page: pagination.currentPage + 1, onChange: (_, page) => pagination.goToPage(page - 1), disabled: isLoading, color: 'secondary', size: 'large', showFirstButton: true, showLastButton: true })))));
54
+ };
55
+ //# sourceMappingURL=allow-list-tab-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allow-list-tab-content.js","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/allow-list-tab-content.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import { FunctionComponent } from 'react';
14
+ /**
15
+ * Auto Rejected tab component that displays extensions that failed validation.
16
+ * Uses the useAutoRejectedTab hook to consume context.
17
+ */
18
+ export declare const AutoRejectedTabContent: FunctionComponent;
19
+ //# sourceMappingURL=auto-rejected-tab-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-rejected-tab-content.d.ts","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/auto-rejected-tab-content.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;iFAWiF;AAEjF,OAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAOjD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAiFpC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import React from 'react';
14
+ import { Box, Typography, Pagination, CircularProgress } from '@mui/material';
15
+ import { ScanCard } from '../scan-card';
16
+ import { SearchToolbar, CountsToolbar } from '../toolbars';
17
+ import { AutoRefresh } from '../common';
18
+ import { useAutoRejectedTab } from '../../../hooks/scan-admin';
19
+ /**
20
+ * Auto Rejected tab component that displays extensions that failed validation.
21
+ * Uses the useAutoRejectedTab hook to consume context.
22
+ */
23
+ export const AutoRejectedTabContent = () => {
24
+ const { scans, isLoading, lastRefreshed, autoRefresh, onAutoRefreshChange, totalCount, search, globalFilters, validationTypeFilters, pagination, hasValidationTypes, } = useAutoRejectedTab();
25
+ return (React.createElement(React.Fragment, null,
26
+ React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column' } },
27
+ React.createElement(SearchToolbar, { publisherQuery: search.publisherQuery, namespaceQuery: search.namespaceQuery, nameQuery: search.nameQuery, onPublisherChange: search.handlePublisherChange, onNamespaceChange: search.handleNamespaceChange, onNameChange: search.handleNameChange }),
28
+ React.createElement(CountsToolbar, { counts: [
29
+ { label: 'Total', value: totalCount, color: 'text.primary' },
30
+ ], filterOptions: validationTypeFilters.availableValidationTypes.map(type => ({
31
+ label: type,
32
+ value: type,
33
+ checked: validationTypeFilters.filters.has(type),
34
+ })), onFilterOptionToggle: validationTypeFilters.toggle, dateRange: globalFilters.dateRange, onDateRangeChange: globalFilters.setDateRange, enforcement: globalFilters.enforcement, onEnforcementChange: globalFilters.setEnforcement }),
35
+ React.createElement(AutoRefresh, { lastRefreshed: lastRefreshed, autoRefresh: autoRefresh, onAutoRefreshChange: onAutoRefreshChange })),
36
+ isLoading ? (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', py: 8 } },
37
+ React.createElement(CircularProgress, { color: 'secondary' }))) : (!hasValidationTypes || scans.length === 0) ? (React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column', alignItems: 'center', py: 4 } },
38
+ React.createElement(Typography, { variant: 'h6', color: 'text.secondary' }, "No auto rejected extensions"),
39
+ React.createElement(Typography, { variant: 'body2', color: 'text.secondary', sx: { mt: 1 } }, "Extensions that fail validation will appear here"))) : (scans.map((scan) => (React.createElement(ScanCard, { key: scan.id, scan: scan })))),
40
+ pagination.totalPages > 1 && (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', mt: 3, mb: 2 } },
41
+ React.createElement(Pagination, { count: pagination.totalPages, page: pagination.currentPage + 1, onChange: (_, page) => pagination.goToPage(page - 1), disabled: isLoading, color: 'secondary', size: 'large', showFirstButton: true, showLastButton: true })))));
42
+ };
43
+ //# sourceMappingURL=auto-rejected-tab-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-rejected-tab-content.js","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/auto-rejected-tab-content.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import { FunctionComponent } from 'react';
14
+ /**
15
+ * Blocked Files tab component that displays files that have been blocked.
16
+ * Uses the useBlockListTab hook to consume context.
17
+ */
18
+ export declare const BlockListTabContent: FunctionComponent;
19
+ //# sourceMappingURL=block-list-tab-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-list-tab-content.d.ts","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/block-list-tab-content.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQjD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBA6FjC,CAAC"}
@@ -0,0 +1,55 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import React from 'react';
14
+ import { Box, Typography, Pagination, CircularProgress } from '@mui/material';
15
+ import { SearchToolbar, CountsToolbar } from '../toolbars';
16
+ import { FileTable, AutoRefresh } from '../common';
17
+ import { useBlockListTab } from '../../../hooks/scan-admin';
18
+ import { useScanContext } from '../../../context/scan-admin';
19
+ import { useTheme } from '@mui/material/styles';
20
+ /**
21
+ * Blocked Files tab component that displays files that have been blocked.
22
+ * Uses the useBlockListTab hook to consume context.
23
+ */
24
+ export const BlockListTabContent = () => {
25
+ const theme = useTheme();
26
+ const { state, actions } = useScanContext();
27
+ const { files, isLoading, fileCount, search, selection, setFilesChecked, fileActions, pagination, lastRefreshed, autoRefresh, onAutoRefreshChange, } = useBlockListTab();
28
+ return (React.createElement(React.Fragment, null,
29
+ React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column' } },
30
+ React.createElement(SearchToolbar, { publisherQuery: search.publisherQuery, namespaceQuery: search.namespaceQuery, nameQuery: search.nameQuery, onPublisherChange: search.handlePublisherChange, onNamespaceChange: search.handleNamespaceChange, onNameChange: search.handleNameChange, actionButtons: [
31
+ {
32
+ label: 'ALLOW',
33
+ color: theme.palette.allowed,
34
+ disabled: !fileActions.canPerformAction,
35
+ onClick: fileActions.openAllowDialog,
36
+ },
37
+ {
38
+ label: 'DELETE',
39
+ color: theme.palette.secondary.main,
40
+ disabled: !fileActions.canPerformAction,
41
+ onClick: fileActions.openDeleteDialog,
42
+ },
43
+ ], selectedCount: selection.selectedCount }),
44
+ React.createElement(CountsToolbar, { counts: [
45
+ { label: 'Blocked Files', value: fileCount, color: theme.palette.blocked },
46
+ ], dateRange: state.fileDateRange, onDateRangeChange: actions.setFileDateRange }),
47
+ React.createElement(AutoRefresh, { lastRefreshed: lastRefreshed, autoRefresh: autoRefresh, onAutoRefreshChange: onAutoRefreshChange })),
48
+ isLoading ? (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', py: 8 } },
49
+ React.createElement(CircularProgress, { color: 'secondary' }))) : files.length === 0 ? (React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column', alignItems: 'center', py: 4 } },
50
+ React.createElement(Typography, { variant: 'h6', color: 'text.secondary' }, "No blocked files"),
51
+ React.createElement(Typography, { variant: 'body2', color: 'text.secondary', sx: { mt: 1 } }, "Files that have been blocked will appear here"))) : (React.createElement(FileTable, { files: files, type: 'blocked', selectedFiles: selection.checked, onSelectionChange: setFilesChecked })),
52
+ pagination.totalPages > 1 && (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', mt: 3, mb: 2 } },
53
+ React.createElement(Pagination, { count: pagination.totalPages, page: pagination.currentPage + 1, onChange: (_, page) => pagination.goToPage(page - 1), disabled: isLoading, color: 'secondary', size: 'large', showFirstButton: true, showLastButton: true })))));
54
+ };
55
+ //# sourceMappingURL=block-list-tab-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-list-tab-content.js","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/block-list-tab-content.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ export { ScansTabContent } from './scans-tab-content';
14
+ export { QuarantinedTabContent } from './quarantined-tab-content';
15
+ export { AutoRejectedTabContent } from './auto-rejected-tab-content';
16
+ export { AllowListTabContent } from './allow-list-tab-content';
17
+ export { BlockListTabContent } from './block-list-tab-content';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ export { ScansTabContent } from './scans-tab-content';
14
+ export { QuarantinedTabContent } from './quarantined-tab-content';
15
+ export { AutoRejectedTabContent } from './auto-rejected-tab-content';
16
+ export { AllowListTabContent } from './allow-list-tab-content';
17
+ export { BlockListTabContent } from './block-list-tab-content';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import { FunctionComponent } from 'react';
14
+ /**
15
+ * Quarantined tab component that displays extensions flagged by security scans.
16
+ * Uses the useQuarantinedTab hook to consume context.
17
+ */
18
+ export declare const QuarantinedTabContent: FunctionComponent;
19
+ //# sourceMappingURL=quarantined-tab-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quarantined-tab-content.d.ts","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/quarantined-tab-content.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AASjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAmInC,CAAC"}
@@ -0,0 +1,78 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import React from 'react';
14
+ import { Box, Typography, Pagination, CircularProgress } from '@mui/material';
15
+ import { ScanCard } from '../scan-card';
16
+ import { SearchToolbar, CountsToolbar } from '../toolbars';
17
+ import { AutoRefresh } from '../common';
18
+ import { useQuarantinedTab } from '../../../hooks/scan-admin';
19
+ import { useScanContext } from '../../../context/scan-admin';
20
+ import { useTheme } from '@mui/material/styles';
21
+ /**
22
+ * Quarantined tab component that displays extensions flagged by security scans.
23
+ * Uses the useQuarantinedTab hook to consume context.
24
+ */
25
+ export const QuarantinedTabContent = () => {
26
+ var _a, _b, _c, _d, _e, _f;
27
+ const theme = useTheme();
28
+ const { state } = useScanContext();
29
+ const { scans, isLoading, lastRefreshed, autoRefresh, onAutoRefreshChange, totalCount, search, globalFilters, quarantineFilters, pagination, selection, toggleCheck, selectAll, deselectAll, isAllSelected, bulkActions, hasThreatScanners, } = useQuarantinedTab();
30
+ // Calculate allowed/blocked/needs review counts from scanCounts
31
+ const allowedCount = (_b = (_a = state.scanCounts) === null || _a === void 0 ? void 0 : _a.ALLOWED) !== null && _b !== void 0 ? _b : 0;
32
+ const blockedCount = (_d = (_c = state.scanCounts) === null || _c === void 0 ? void 0 : _c.BLOCKED) !== null && _d !== void 0 ? _d : 0;
33
+ const needsReviewCount = (_f = (_e = state.scanCounts) === null || _e === void 0 ? void 0 : _e.NEEDS_REVIEW) !== null && _f !== void 0 ? _f : 0;
34
+ const handleSelectAllChange = (checked) => {
35
+ if (checked) {
36
+ selectAll();
37
+ }
38
+ else {
39
+ deselectAll();
40
+ }
41
+ };
42
+ return (React.createElement(React.Fragment, null,
43
+ React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column' } },
44
+ React.createElement(SearchToolbar, { publisherQuery: search.publisherQuery, namespaceQuery: search.namespaceQuery, nameQuery: search.nameQuery, onPublisherChange: search.handlePublisherChange, onNamespaceChange: search.handleNamespaceChange, onNameChange: search.handleNameChange, filters: [
45
+ { label: 'Allowed', value: 'allowed', checked: quarantineFilters.filters.has('allowed'), onChange: quarantineFilters.toggle },
46
+ { label: 'Blocked', value: 'blocked', checked: quarantineFilters.filters.has('blocked'), onChange: quarantineFilters.toggle },
47
+ { label: 'Needs Review', value: 'needs-review', checked: quarantineFilters.filters.has('needs-review'), onChange: quarantineFilters.toggle },
48
+ ], showSelectAll: true, allSelected: isAllSelected, onSelectAllChange: handleSelectAllChange, actionButtons: [
49
+ { label: 'ALLOW', color: theme.palette.allowed, disabled: !bulkActions.canPerformBulkAction, onClick: bulkActions.openAllowDialog },
50
+ { label: 'BLOCK', color: theme.palette.blocked, disabled: !bulkActions.canPerformBulkAction, onClick: bulkActions.openBlockDialog },
51
+ ], selectedCount: selection.selectedCount }),
52
+ React.createElement(CountsToolbar, { counts: [
53
+ { label: 'Total', value: totalCount, color: 'text.primary' },
54
+ { label: 'Allowed', value: allowedCount, color: theme.palette.allowed },
55
+ { label: 'Blocked', value: blockedCount, color: theme.palette.blocked },
56
+ { label: 'Needs Review', value: needsReviewCount, color: theme.palette.review },
57
+ ], filterOptions: quarantineFilters.availableThreatScanners.map(scanner => ({
58
+ label: scanner,
59
+ value: scanner,
60
+ checked: quarantineFilters.threatScannerFilters.has(scanner),
61
+ })), onFilterOptionToggle: quarantineFilters.toggleThreatScanner, dateRange: globalFilters.dateRange, onDateRangeChange: globalFilters.setDateRange, enforcement: globalFilters.enforcement, onEnforcementChange: globalFilters.setEnforcement }),
62
+ React.createElement(AutoRefresh, { lastRefreshed: lastRefreshed, autoRefresh: autoRefresh, onAutoRefreshChange: onAutoRefreshChange })),
63
+ isLoading ? (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', py: 8 } },
64
+ React.createElement(CircularProgress, { color: 'secondary' }))) : (!hasThreatScanners || scans.length === 0) ? (React.createElement(Box, { sx: { display: 'flex', flexDirection: 'column', alignItems: 'center', py: 4 } },
65
+ React.createElement(Typography, { variant: 'h6', color: 'text.secondary' }, "No quarantined extensions"),
66
+ React.createElement(Typography, { variant: 'body2', color: 'text.secondary', sx: { mt: 1 } }, "Extensions flagged by security scans will appear here"))) : (scans.map((scan) => {
67
+ var _a;
68
+ // Only show checkbox for scans that need review:
69
+ // - No admin decision yet AND
70
+ // - Has at least one enforced threat (unenforced threats don't require review)
71
+ const hasEnforcedThreat = scan.threats.some(t => t.enforcedFlag);
72
+ const needsReview = !((_a = scan.adminDecision) === null || _a === void 0 ? void 0 : _a.decision) && hasEnforcedThreat;
73
+ return (React.createElement(ScanCard, { key: scan.id, scan: scan, showCheckbox: needsReview, checked: selection.checked[scan.id] || false, onCheckboxChange: toggleCheck }));
74
+ })),
75
+ pagination.totalPages > 1 && (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'center', mt: 3, mb: 2 } },
76
+ React.createElement(Pagination, { count: pagination.totalPages, page: pagination.currentPage + 1, onChange: (_, page) => pagination.goToPage(page - 1), disabled: isLoading, color: 'secondary', size: 'large', showFirstButton: true, showLastButton: true })))));
77
+ };
78
+ //# sourceMappingURL=quarantined-tab-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quarantined-tab-content.js","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/quarantined-tab-content.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ ********************************************************************************/
13
+ import { FunctionComponent } from 'react';
14
+ /**
15
+ * Scans tab component that displays an overview of all extension scans.
16
+ * Uses the useScansTab hook to consume context.
17
+ */
18
+ export declare const ScansTabContent: FunctionComponent;
19
+ //# sourceMappingURL=scans-tab-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scans-tab-content.d.ts","sourceRoot":"","sources":["../../../../src/components/scan-admin/tab-contents/scans-tab-content.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQjD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAuF7B,CAAC"}