openvsx-webui-test 0.17.2 → 0.18.0-dev.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 (403) 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 +106 -1
  168. package/lib/extension-registry-service.d.ts.map +1 -1
  169. package/lib/extension-registry-service.js +348 -1
  170. package/lib/extension-registry-service.js.map +1 -1
  171. package/lib/extension-registry-types.d.ts +181 -0
  172. package/lib/extension-registry-types.d.ts.map +1 -1
  173. package/lib/extension-registry-types.js +16 -0
  174. package/lib/extension-registry-types.js.map +1 -1
  175. package/lib/hooks/scan-admin/index.d.ts +34 -0
  176. package/lib/hooks/scan-admin/index.d.ts.map +1 -0
  177. package/lib/hooks/scan-admin/index.js +28 -0
  178. package/lib/hooks/scan-admin/index.js.map +1 -0
  179. package/lib/hooks/scan-admin/use-auto-rejected-tab.d.ts +76 -0
  180. package/lib/hooks/scan-admin/use-auto-rejected-tab.d.ts.map +1 -0
  181. package/lib/hooks/scan-admin/use-auto-rejected-tab.js +79 -0
  182. package/lib/hooks/scan-admin/use-auto-rejected-tab.js.map +1 -0
  183. package/lib/hooks/scan-admin/use-dialogs.d.ts +43 -0
  184. package/lib/hooks/scan-admin/use-dialogs.d.ts.map +1 -0
  185. package/lib/hooks/scan-admin/use-dialogs.js +55 -0
  186. package/lib/hooks/scan-admin/use-dialogs.js.map +1 -0
  187. package/lib/hooks/scan-admin/use-file-list-tab.d.ts +208 -0
  188. package/lib/hooks/scan-admin/use-file-list-tab.d.ts.map +1 -0
  189. package/lib/hooks/scan-admin/use-file-list-tab.js +125 -0
  190. package/lib/hooks/scan-admin/use-file-list-tab.js.map +1 -0
  191. package/lib/hooks/scan-admin/use-pagination.d.ts +36 -0
  192. package/lib/hooks/scan-admin/use-pagination.d.ts.map +1 -0
  193. package/lib/hooks/scan-admin/use-pagination.js +79 -0
  194. package/lib/hooks/scan-admin/use-pagination.js.map +1 -0
  195. package/lib/hooks/scan-admin/use-quarantined-tab.d.ts +92 -0
  196. package/lib/hooks/scan-admin/use-quarantined-tab.d.ts.map +1 -0
  197. package/lib/hooks/scan-admin/use-quarantined-tab.js +125 -0
  198. package/lib/hooks/scan-admin/use-quarantined-tab.js.map +1 -0
  199. package/lib/hooks/scan-admin/use-scan-card-state.d.ts +29 -0
  200. package/lib/hooks/scan-admin/use-scan-card-state.d.ts.map +1 -0
  201. package/lib/hooks/scan-admin/use-scan-card-state.js +50 -0
  202. package/lib/hooks/scan-admin/use-scan-card-state.js.map +1 -0
  203. package/lib/hooks/scan-admin/use-scan-filters.d.ts +53 -0
  204. package/lib/hooks/scan-admin/use-scan-filters.d.ts.map +1 -0
  205. package/lib/hooks/scan-admin/use-scan-filters.js +75 -0
  206. package/lib/hooks/scan-admin/use-scan-filters.js.map +1 -0
  207. package/lib/hooks/scan-admin/use-scans-tab.d.ts +85 -0
  208. package/lib/hooks/scan-admin/use-scans-tab.d.ts.map +1 -0
  209. package/lib/hooks/scan-admin/use-scans-tab.js +87 -0
  210. package/lib/hooks/scan-admin/use-scans-tab.js.map +1 -0
  211. package/lib/hooks/scan-admin/use-search.d.ts +32 -0
  212. package/lib/hooks/scan-admin/use-search.d.ts.map +1 -0
  213. package/lib/hooks/scan-admin/use-search.js +48 -0
  214. package/lib/hooks/scan-admin/use-search.js.map +1 -0
  215. package/lib/hooks/scan-admin/use-tab-navigation.d.ts +96 -0
  216. package/lib/hooks/scan-admin/use-tab-navigation.d.ts.map +1 -0
  217. package/lib/hooks/scan-admin/use-tab-navigation.js +70 -0
  218. package/lib/hooks/scan-admin/use-tab-navigation.js.map +1 -0
  219. package/lib/hooks/scan-admin/use-url-sync.d.ts +22 -0
  220. package/lib/hooks/scan-admin/use-url-sync.d.ts.map +1 -0
  221. package/lib/hooks/scan-admin/use-url-sync.js +252 -0
  222. package/lib/hooks/scan-admin/use-url-sync.js.map +1 -0
  223. package/lib/page-settings.d.ts +4 -0
  224. package/lib/page-settings.d.ts.map +1 -1
  225. package/lib/pages/admin-dashboard/admin-dashboard.d.ts +4 -0
  226. package/lib/pages/admin-dashboard/admin-dashboard.d.ts.map +1 -1
  227. package/lib/pages/admin-dashboard/admin-dashboard.js +55 -5
  228. package/lib/pages/admin-dashboard/admin-dashboard.js.map +1 -1
  229. package/lib/pages/admin-dashboard/components/data-grid-filter-operators.d.ts +28 -0
  230. package/lib/pages/admin-dashboard/components/data-grid-filter-operators.d.ts.map +1 -0
  231. package/lib/pages/admin-dashboard/components/data-grid-filter-operators.js +93 -0
  232. package/lib/pages/admin-dashboard/components/data-grid-filter-operators.js.map +1 -0
  233. package/lib/pages/admin-dashboard/components/index.d.ts +2 -0
  234. package/lib/pages/admin-dashboard/components/index.d.ts.map +1 -0
  235. package/lib/pages/admin-dashboard/components/index.js +14 -0
  236. package/lib/pages/admin-dashboard/components/index.js.map +1 -0
  237. package/lib/pages/admin-dashboard/customers/customer-form-dialog.d.ts +23 -0
  238. package/lib/pages/admin-dashboard/customers/customer-form-dialog.d.ts.map +1 -0
  239. package/lib/pages/admin-dashboard/customers/customer-form-dialog.js +225 -0
  240. package/lib/pages/admin-dashboard/customers/customer-form-dialog.js.map +1 -0
  241. package/lib/pages/admin-dashboard/customers/customers.d.ts +15 -0
  242. package/lib/pages/admin-dashboard/customers/customers.d.ts.map +1 -0
  243. package/lib/pages/admin-dashboard/customers/customers.js +175 -0
  244. package/lib/pages/admin-dashboard/customers/customers.js.map +1 -0
  245. package/lib/pages/admin-dashboard/customers/delete-customer-dialog.d.ts +23 -0
  246. package/lib/pages/admin-dashboard/customers/delete-customer-dialog.d.ts.map +1 -0
  247. package/lib/pages/admin-dashboard/customers/delete-customer-dialog.js +64 -0
  248. package/lib/pages/admin-dashboard/customers/delete-customer-dialog.js.map +1 -0
  249. package/lib/pages/admin-dashboard/publisher-admin.js +5 -5
  250. package/lib/pages/admin-dashboard/publisher-admin.js.map +1 -1
  251. package/lib/pages/admin-dashboard/publisher-revoke-dialog.d.ts.map +1 -1
  252. package/lib/pages/admin-dashboard/publisher-revoke-dialog.js +1 -1
  253. package/lib/pages/admin-dashboard/publisher-revoke-dialog.js.map +1 -1
  254. package/lib/pages/admin-dashboard/scan-admin.d.ts +20 -0
  255. package/lib/pages/admin-dashboard/scan-admin.d.ts.map +1 -0
  256. package/lib/pages/admin-dashboard/scan-admin.js +66 -0
  257. package/lib/pages/admin-dashboard/scan-admin.js.map +1 -0
  258. package/lib/pages/admin-dashboard/tiers/delete-tier-dialog.d.ts +23 -0
  259. package/lib/pages/admin-dashboard/tiers/delete-tier-dialog.d.ts.map +1 -0
  260. package/lib/pages/admin-dashboard/tiers/delete-tier-dialog.js +55 -0
  261. package/lib/pages/admin-dashboard/tiers/delete-tier-dialog.js.map +1 -0
  262. package/lib/pages/admin-dashboard/tiers/tier-form-dialog.d.ts +23 -0
  263. package/lib/pages/admin-dashboard/tiers/tier-form-dialog.d.ts.map +1 -0
  264. package/lib/pages/admin-dashboard/tiers/tier-form-dialog.js +215 -0
  265. package/lib/pages/admin-dashboard/tiers/tier-form-dialog.js.map +1 -0
  266. package/lib/pages/admin-dashboard/tiers/tiers.d.ts +15 -0
  267. package/lib/pages/admin-dashboard/tiers/tiers.d.ts.map +1 -0
  268. package/lib/pages/admin-dashboard/tiers/tiers.js +174 -0
  269. package/lib/pages/admin-dashboard/tiers/tiers.js.map +1 -0
  270. package/lib/pages/admin-dashboard/usage-stats/usage-stats-chart.d.ts +23 -0
  271. package/lib/pages/admin-dashboard/usage-stats/usage-stats-chart.d.ts.map +1 -0
  272. package/lib/pages/admin-dashboard/usage-stats/usage-stats-chart.js +106 -0
  273. package/lib/pages/admin-dashboard/usage-stats/usage-stats-chart.js.map +1 -0
  274. package/lib/pages/admin-dashboard/usage-stats/usage-stats-search.d.ts +26 -0
  275. package/lib/pages/admin-dashboard/usage-stats/usage-stats-search.d.ts.map +1 -0
  276. package/lib/pages/admin-dashboard/usage-stats/usage-stats-search.js +50 -0
  277. package/lib/pages/admin-dashboard/usage-stats/usage-stats-search.js.map +1 -0
  278. package/lib/pages/admin-dashboard/usage-stats/usage-stats-utils.d.ts +14 -0
  279. package/lib/pages/admin-dashboard/usage-stats/usage-stats-utils.d.ts.map +1 -0
  280. package/lib/pages/admin-dashboard/usage-stats/usage-stats-utils.js +16 -0
  281. package/lib/pages/admin-dashboard/usage-stats/usage-stats-utils.js.map +1 -0
  282. package/lib/pages/admin-dashboard/usage-stats/usage-stats.d.ts +15 -0
  283. package/lib/pages/admin-dashboard/usage-stats/usage-stats.d.ts.map +1 -0
  284. package/lib/pages/admin-dashboard/usage-stats/usage-stats.js +103 -0
  285. package/lib/pages/admin-dashboard/usage-stats/usage-stats.js.map +1 -0
  286. package/lib/pages/admin-dashboard/welcome.d.ts.map +1 -1
  287. package/lib/pages/admin-dashboard/welcome.js +5 -1
  288. package/lib/pages/admin-dashboard/welcome.js.map +1 -1
  289. package/lib/pages/extension-detail/extension-detail-overview.d.ts.map +1 -1
  290. package/lib/pages/extension-detail/extension-detail-overview.js +9 -1
  291. package/lib/pages/extension-detail/extension-detail-overview.js.map +1 -1
  292. package/lib/pages/extension-detail/extension-detail-reviews.d.ts.map +1 -1
  293. package/lib/pages/extension-detail/extension-detail-reviews.js +67 -18
  294. package/lib/pages/extension-detail/extension-detail-reviews.js.map +1 -1
  295. package/lib/pages/extension-detail/extension-detail.js +2 -2
  296. package/lib/pages/extension-detail/extension-detail.js.map +1 -1
  297. package/lib/pages/extension-detail/extension-rating-stars.d.ts +2 -2
  298. package/lib/pages/extension-detail/extension-rating-stars.d.ts.map +1 -1
  299. package/lib/pages/extension-detail/extension-rating-stars.js +1 -1
  300. package/lib/pages/extension-detail/extension-rating-stars.js.map +1 -1
  301. package/lib/pages/extension-list/extension-list-item.js +2 -2
  302. package/lib/pages/extension-list/extension-list-item.js.map +1 -1
  303. package/lib/pages/user/user-namespace-extension-list-item.d.ts.map +1 -1
  304. package/lib/pages/user/user-namespace-extension-list-item.js +23 -9
  305. package/lib/pages/user/user-namespace-extension-list-item.js.map +1 -1
  306. package/lib/pages/user/user-publisher-agreement.d.ts.map +1 -1
  307. package/lib/pages/user/user-publisher-agreement.js +34 -13
  308. package/lib/pages/user/user-publisher-agreement.js.map +1 -1
  309. package/lib/pages/user/user-settings-profile.d.ts.map +1 -1
  310. package/lib/pages/user/user-settings-profile.js +10 -5
  311. package/lib/pages/user/user-settings-profile.js.map +1 -1
  312. package/lib/pages/user/user-settings-tokens.d.ts.map +1 -1
  313. package/lib/pages/user/user-settings-tokens.js +13 -5
  314. package/lib/pages/user/user-settings-tokens.js.map +1 -1
  315. package/lib/server-request.d.ts +1 -1
  316. package/lib/server-request.d.ts.map +1 -1
  317. package/lib/server-request.js +3 -3
  318. package/lib/server-request.js.map +1 -1
  319. package/package.json +17 -9
  320. package/src/components/button-with-progress.tsx +2 -1
  321. package/src/components/sanitized-markdown.tsx +81 -1
  322. package/src/components/scan-admin/common/auto-refresh.tsx +79 -0
  323. package/src/components/scan-admin/common/conditional-tooltip.tsx +74 -0
  324. package/src/components/scan-admin/common/file-table.tsx +508 -0
  325. package/src/components/scan-admin/common/index.ts +18 -0
  326. package/src/components/scan-admin/common/tab-panel.tsx +42 -0
  327. package/src/components/scan-admin/common/utils.ts +48 -0
  328. package/src/components/scan-admin/dialogs/file-dialog.tsx +137 -0
  329. package/src/components/scan-admin/dialogs/index.ts +15 -0
  330. package/src/components/scan-admin/dialogs/quarantine-dialog.tsx +270 -0
  331. package/src/components/scan-admin/index.ts +52 -0
  332. package/src/components/scan-admin/scan-card/index.ts +20 -0
  333. package/src/components/scan-admin/scan-card/scan-card-content.tsx +457 -0
  334. package/src/components/scan-admin/scan-card/scan-card-expand-strip-badges.tsx +186 -0
  335. package/src/components/scan-admin/scan-card/scan-card-expand-strip.tsx +104 -0
  336. package/src/components/scan-admin/scan-card/scan-card-expanded-content.tsx +262 -0
  337. package/src/components/scan-admin/scan-card/scan-card-header.tsx +176 -0
  338. package/src/components/scan-admin/scan-card/scan-card.tsx +152 -0
  339. package/src/components/scan-admin/scan-card/scan-detail-card.tsx +144 -0
  340. package/src/components/scan-admin/scan-card/utils.ts +199 -0
  341. package/src/components/scan-admin/tab-contents/allow-list-tab-content.tsx +119 -0
  342. package/src/components/scan-admin/tab-contents/auto-rejected-tab-content.tsx +106 -0
  343. package/src/components/scan-admin/tab-contents/block-list-tab-content.tsx +119 -0
  344. package/src/components/scan-admin/tab-contents/index.ts +18 -0
  345. package/src/components/scan-admin/tab-contents/quarantined-tab-content.tsx +158 -0
  346. package/src/components/scan-admin/tab-contents/scans-tab-content.tsx +113 -0
  347. package/src/components/scan-admin/toolbars/counts-toolbar.tsx +262 -0
  348. package/src/components/scan-admin/toolbars/index.ts +16 -0
  349. package/src/components/scan-admin/toolbars/search-toolbar.tsx +255 -0
  350. package/src/components/scan-admin/toolbars/tab-toolbar.tsx +56 -0
  351. package/src/context/scan-admin/index.ts +43 -0
  352. package/src/context/scan-admin/scan-actions.ts +87 -0
  353. package/src/context/scan-admin/scan-api-actions.ts +137 -0
  354. package/src/context/scan-admin/scan-api-effects.ts +491 -0
  355. package/src/context/scan-admin/scan-context-types.ts +102 -0
  356. package/src/context/scan-admin/scan-context.tsx +123 -0
  357. package/src/context/scan-admin/scan-helpers.ts +63 -0
  358. package/src/context/scan-admin/scan-reducer.ts +321 -0
  359. package/src/context/scan-admin/scan-types.ts +337 -0
  360. package/src/default/page-settings.tsx +3 -0
  361. package/src/default/theme.tsx +102 -13
  362. package/src/extension-registry-service.ts +372 -1
  363. package/src/extension-registry-types.ts +207 -0
  364. package/src/hooks/scan-admin/index.ts +48 -0
  365. package/src/hooks/scan-admin/use-auto-rejected-tab.ts +85 -0
  366. package/src/hooks/scan-admin/use-dialogs.ts +83 -0
  367. package/src/hooks/scan-admin/use-file-list-tab.ts +149 -0
  368. package/src/hooks/scan-admin/use-pagination.ts +90 -0
  369. package/src/hooks/scan-admin/use-quarantined-tab.ts +138 -0
  370. package/src/hooks/scan-admin/use-scan-card-state.ts +73 -0
  371. package/src/hooks/scan-admin/use-scan-filters.ts +83 -0
  372. package/src/hooks/scan-admin/use-scans-tab.ts +92 -0
  373. package/src/hooks/scan-admin/use-search.ts +54 -0
  374. package/src/hooks/scan-admin/use-tab-navigation.ts +82 -0
  375. package/src/hooks/scan-admin/use-url-sync.ts +293 -0
  376. package/src/page-settings.ts +4 -0
  377. package/src/pages/admin-dashboard/admin-dashboard.tsx +71 -4
  378. package/src/pages/admin-dashboard/components/data-grid-filter-operators.tsx +126 -0
  379. package/src/pages/admin-dashboard/components/index.ts +18 -0
  380. package/src/pages/admin-dashboard/customers/customer-form-dialog.tsx +348 -0
  381. package/src/pages/admin-dashboard/customers/customers.tsx +279 -0
  382. package/src/pages/admin-dashboard/customers/delete-customer-dialog.tsx +94 -0
  383. package/src/pages/admin-dashboard/publisher-admin.tsx +5 -5
  384. package/src/pages/admin-dashboard/publisher-revoke-dialog.tsx +2 -1
  385. package/src/pages/admin-dashboard/scan-admin.tsx +109 -0
  386. package/src/pages/admin-dashboard/tiers/delete-tier-dialog.tsx +83 -0
  387. package/src/pages/admin-dashboard/tiers/tier-form-dialog.tsx +372 -0
  388. package/src/pages/admin-dashboard/tiers/tiers.tsx +254 -0
  389. package/src/pages/admin-dashboard/usage-stats/usage-stats-chart.tsx +189 -0
  390. package/src/pages/admin-dashboard/usage-stats/usage-stats-search.tsx +83 -0
  391. package/src/pages/admin-dashboard/usage-stats/usage-stats-utils.ts +16 -0
  392. package/src/pages/admin-dashboard/usage-stats/usage-stats.tsx +127 -0
  393. package/src/pages/admin-dashboard/welcome.tsx +4 -0
  394. package/src/pages/extension-detail/extension-detail-overview.tsx +16 -2
  395. package/src/pages/extension-detail/extension-detail-reviews.tsx +116 -30
  396. package/src/pages/extension-detail/extension-detail.tsx +2 -2
  397. package/src/pages/extension-detail/extension-rating-stars.tsx +2 -2
  398. package/src/pages/extension-list/extension-list-item.tsx +2 -2
  399. package/src/pages/user/user-namespace-extension-list-item.tsx +38 -13
  400. package/src/pages/user/user-publisher-agreement.tsx +30 -11
  401. package/src/pages/user/user-settings-profile.tsx +10 -6
  402. package/src/pages/user/user-settings-tokens.tsx +15 -6
  403. package/src/server-request.ts +3 -3
@@ -0,0 +1,446 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ import { useEffect } from 'react';
23
+ import { getDateRangeParams, getFileDateRange } from './scan-helpers';
24
+ // ============================================================================
25
+ // Filter Options Effect
26
+ // ============================================================================
27
+ /**
28
+ * Hook to fetch filter options (validation types, threat scanners) on mount and refresh
29
+ */
30
+ export const useFilterOptionsEffect = (service, state, dispatch, handleErrorRef) => {
31
+ useEffect(() => {
32
+ const abortController = new AbortController();
33
+ const fetchFilterOptions = () => __awaiter(void 0, void 0, void 0, function* () {
34
+ try {
35
+ const options = yield service.admin.getScanFilterOptions(abortController);
36
+ if (!abortController.signal.aborted) {
37
+ dispatch({ type: 'SET_AVAILABLE_VALIDATION_TYPES', payload: options.validationTypes || [] });
38
+ dispatch({ type: 'SET_AVAILABLE_THREAT_SCANNERS', payload: options.threatScannerNames || [] });
39
+ dispatch({ type: 'SET_FILTER_OPTIONS_LOADED', payload: true });
40
+ }
41
+ }
42
+ catch (err) {
43
+ if (!abortController.signal.aborted) {
44
+ // Even on error, mark as loaded so we don't block forever
45
+ dispatch({ type: 'SET_FILTER_OPTIONS_LOADED', payload: true });
46
+ handleErrorRef.current(err);
47
+ }
48
+ }
49
+ });
50
+ fetchFilterOptions();
51
+ return () => abortController.abort();
52
+ }, [service, state.refreshTrigger, dispatch, handleErrorRef]);
53
+ };
54
+ // ============================================================================
55
+ // Scans Effect
56
+ // ============================================================================
57
+ /**
58
+ * Hook to fetch scans from API (tabs 0, 1, 2: Scans, Quarantined, Auto Rejected)
59
+ */
60
+ export const useScansEffect = (service, state, dispatch, handleErrorRef) => {
61
+ useEffect(() => {
62
+ // Only fetch scans for tabs 0, 1, 2
63
+ if (state.selectedTab > 2) {
64
+ return;
65
+ }
66
+ // Wait for filter options to be loaded to avoid duplicate requests
67
+ if (!state.filterOptionsLoaded) {
68
+ return;
69
+ }
70
+ // For Quarantined tab, don't fetch if there are no threat scanners available
71
+ // (we only show scans with threats, so no threat scanners = no data to show)
72
+ if (state.selectedTab === 1 && state.availableThreatScanners.length === 0) {
73
+ dispatch({ type: 'SET_SCANS', payload: { scans: [], totalScans: 0 } });
74
+ dispatch({ type: 'SET_LOADING_SCANS', payload: false });
75
+ return;
76
+ }
77
+ // For Auto Rejected tab, don't fetch if there are no validation types available
78
+ // (we only show scans with validation failures, so no validation types = no data to show)
79
+ if (state.selectedTab === 2 && state.availableValidationTypes.length === 0) {
80
+ dispatch({ type: 'SET_SCANS', payload: { scans: [], totalScans: 0 } });
81
+ dispatch({ type: 'SET_LOADING_SCANS', payload: false });
82
+ return;
83
+ }
84
+ const abortController = new AbortController();
85
+ const fetchScans = () => __awaiter(void 0, void 0, void 0, function* () {
86
+ // Only show loading state if we don't have existing data to display
87
+ // This allows seamless background refreshes
88
+ if (state.scans.length === 0) {
89
+ dispatch({ type: 'SET_LOADING_SCANS', payload: true });
90
+ }
91
+ try {
92
+ // Determine status filter based on selected tab and status filters
93
+ let statusParam;
94
+ let validationTypeParam;
95
+ let threatScannerParam;
96
+ let adminDecisionParam;
97
+ if (state.selectedTab === 0) {
98
+ // Scans tab - use statusFilters, expanding 'running' to explicit statuses
99
+ statusParam = Array.from(state.statusFilters).reduce((result, status) => {
100
+ if (status === 'running') {
101
+ return [...result, 'STARTED', 'VALIDATING', 'SCANNING'];
102
+ }
103
+ return [...result, status];
104
+ }, []);
105
+ }
106
+ else if (state.selectedTab === 1) {
107
+ // Quarantined tab - show scans with threats
108
+ // Filter by threat scanner (user selection or all available)
109
+ if (state.threatScannerFilters.size > 0) {
110
+ threatScannerParam = Array.from(state.threatScannerFilters);
111
+ }
112
+ else {
113
+ threatScannerParam = state.availableThreatScanners;
114
+ }
115
+ // Filter by admin decision status (allowed/blocked/needs-review)
116
+ if (state.quarantineFilters.size > 0) {
117
+ adminDecisionParam = Array.from(state.quarantineFilters);
118
+ }
119
+ }
120
+ else if (state.selectedTab === 2) {
121
+ // Auto Rejected tab - show scans with validation failures
122
+ // Filter by validation type (user selection or all available)
123
+ if (state.validationTypeFilters.size > 0) {
124
+ validationTypeParam = Array.from(state.validationTypeFilters);
125
+ }
126
+ else {
127
+ validationTypeParam = state.availableValidationTypes;
128
+ }
129
+ }
130
+ const dateParams = getDateRangeParams(state.dateRange);
131
+ const response = yield service.admin.getAllScans(abortController, {
132
+ size: state.pageSize,
133
+ offset: state.currentPage * state.pageSize,
134
+ publisher: state.publisherQuery || undefined,
135
+ namespace: state.namespaceQuery || undefined,
136
+ name: state.nameQuery || undefined,
137
+ status: statusParam,
138
+ validationType: validationTypeParam,
139
+ threatScannerName: threatScannerParam,
140
+ adminDecision: adminDecisionParam,
141
+ dateStartedFrom: dateParams.dateStartedFrom,
142
+ dateStartedTo: dateParams.dateStartedTo,
143
+ enforcement: state.enforcement
144
+ });
145
+ if (!abortController.signal.aborted) {
146
+ dispatch({ type: 'SET_LOADING_SCANS', payload: false });
147
+ // Convert API response to ScanResult format
148
+ const convertedScans = response.scans.map((scan) => {
149
+ var _a;
150
+ return ({
151
+ id: scan.id,
152
+ displayName: scan.displayName || scan.extensionName,
153
+ namespace: scan.namespace,
154
+ extensionName: scan.extensionName,
155
+ publisher: scan.publisher || '',
156
+ publisherUrl: scan.publisherUrl || null,
157
+ version: scan.version,
158
+ targetPlatform: scan.targetPlatform || 'universal',
159
+ universalTargetPlatform: (_a = scan.universalTargetPlatform) !== null && _a !== void 0 ? _a : true,
160
+ status: scan.status,
161
+ dateScanStarted: scan.dateScanStarted,
162
+ dateScanEnded: scan.dateScanEnded || null,
163
+ dateQuarantined: scan.dateQuarantined || null,
164
+ dateRejected: scan.dateRejected || null,
165
+ adminDecision: scan.adminDecision ? {
166
+ decision: scan.adminDecision.decision,
167
+ decidedBy: scan.adminDecision.decidedBy,
168
+ dateDecided: scan.adminDecision.dateDecided,
169
+ } : null,
170
+ threats: (scan.threats || []).map((threat) => {
171
+ var _a;
172
+ return ({
173
+ id: threat.id,
174
+ fileName: threat.fileName,
175
+ fileHash: threat.fileHash,
176
+ fileExtension: threat.fileExtension,
177
+ type: threat.type,
178
+ ruleName: threat.ruleName,
179
+ severity: threat.severity,
180
+ enforcedFlag: (_a = threat.enforcedFlag) !== null && _a !== void 0 ? _a : true,
181
+ reason: threat.reason,
182
+ dateDetected: threat.dateDetected,
183
+ });
184
+ }),
185
+ validationFailures: (scan.validationFailures || []).map((failure) => {
186
+ var _a;
187
+ return ({
188
+ id: failure.id,
189
+ type: failure.type,
190
+ ruleName: failure.ruleName,
191
+ reason: failure.reason,
192
+ dateDetected: failure.dateDetected,
193
+ enforcedFlag: (_a = failure.enforcedFlag) !== null && _a !== void 0 ? _a : true,
194
+ });
195
+ }),
196
+ checkResults: (scan.checkResults || []).map((result) => {
197
+ var _a, _b;
198
+ return ({
199
+ checkType: result.checkType,
200
+ category: result.category,
201
+ result: result.result,
202
+ startedAt: result.startedAt,
203
+ completedAt: result.completedAt || null,
204
+ durationMs: (_a = result.durationMs) !== null && _a !== void 0 ? _a : null,
205
+ filesScanned: result.filesScanned || null,
206
+ findingsCount: result.findingsCount || null,
207
+ summary: result.summary || null,
208
+ errorMessage: result.errorMessage || null,
209
+ required: (_b = result.required) !== null && _b !== void 0 ? _b : null,
210
+ });
211
+ }),
212
+ extensionIcon: scan.extensionIcon,
213
+ downloadUrl: scan.downloadUrl || null,
214
+ errorMessage: scan.errorMessage || null,
215
+ });
216
+ });
217
+ dispatch({ type: 'SET_SCANS', payload: { scans: convertedScans, totalScans: response.totalSize } });
218
+ dispatch({ type: 'SET_LAST_REFRESHED', payload: new Date() });
219
+ }
220
+ }
221
+ catch (err) {
222
+ if (!abortController.signal.aborted) {
223
+ dispatch({ type: 'SET_LOADING_SCANS', payload: false });
224
+ handleErrorRef.current(err);
225
+ }
226
+ }
227
+ });
228
+ fetchScans();
229
+ return () => abortController.abort();
230
+ }, [
231
+ service,
232
+ state.filterOptionsLoaded,
233
+ state.currentPage,
234
+ state.pageSize,
235
+ state.publisherQuery,
236
+ state.namespaceQuery,
237
+ state.nameQuery,
238
+ state.selectedTab,
239
+ state.statusFilters,
240
+ state.quarantineFilters,
241
+ state.validationTypeFilters,
242
+ state.threatScannerFilters,
243
+ state.availableThreatScanners,
244
+ state.availableValidationTypes,
245
+ state.dateRange,
246
+ state.enforcement,
247
+ state.refreshTrigger,
248
+ dispatch,
249
+ handleErrorRef,
250
+ ]);
251
+ };
252
+ // ============================================================================
253
+ // Scan Counts Effect
254
+ // ============================================================================
255
+ /**
256
+ * Hook to fetch scan counts from API
257
+ * Uses the same tab-aware filtering logic as the scans list
258
+ */
259
+ export const useScanCountsEffect = (service, state, dispatch, handleErrorRef) => {
260
+ useEffect(() => {
261
+ const abortController = new AbortController();
262
+ const fetchCounts = () => __awaiter(void 0, void 0, void 0, function* () {
263
+ try {
264
+ const dateParams = getDateRangeParams(state.dateRange);
265
+ // Determine filters based on selected tab (same logic as scans fetch)
266
+ let validationTypeParam;
267
+ let threatScannerParam;
268
+ if (state.selectedTab === 0) {
269
+ // Scans tab - no threatScanner or validationType filters
270
+ // (same as scans endpoint which only uses statusFilters on this tab)
271
+ }
272
+ else if (state.selectedTab === 1) {
273
+ // Quarantined tab - filter by threat scanner (user selection or all available)
274
+ if (state.threatScannerFilters.size > 0) {
275
+ threatScannerParam = Array.from(state.threatScannerFilters);
276
+ }
277
+ else {
278
+ threatScannerParam = state.availableThreatScanners;
279
+ }
280
+ }
281
+ else if (state.selectedTab === 2) {
282
+ // Auto Rejected tab - filter by validation type (user selection or all available)
283
+ if (state.validationTypeFilters.size > 0) {
284
+ validationTypeParam = Array.from(state.validationTypeFilters);
285
+ }
286
+ else {
287
+ validationTypeParam = state.availableValidationTypes;
288
+ }
289
+ }
290
+ const counts = yield service.admin.getScanCounts(abortController, Object.assign(Object.assign({}, dateParams), { enforcement: state.enforcement, threatScannerName: threatScannerParam, validationType: validationTypeParam }));
291
+ if (!abortController.signal.aborted) {
292
+ dispatch({ type: 'SET_SCAN_COUNTS', payload: counts });
293
+ }
294
+ }
295
+ catch (err) {
296
+ if (!abortController.signal.aborted) {
297
+ handleErrorRef.current(err);
298
+ }
299
+ }
300
+ });
301
+ fetchCounts();
302
+ return () => abortController.abort();
303
+ }, [
304
+ service,
305
+ state.dateRange,
306
+ state.enforcement,
307
+ state.threatScannerFilters,
308
+ state.validationTypeFilters,
309
+ state.selectedTab,
310
+ state.availableThreatScanners,
311
+ state.availableValidationTypes,
312
+ state.refreshTrigger,
313
+ dispatch,
314
+ handleErrorRef,
315
+ ]);
316
+ };
317
+ // ============================================================================
318
+ // Files Effect
319
+ // ============================================================================
320
+ /**
321
+ * Hook to fetch files from API (tabs 3, 4: Allowed Files, Blocked Files)
322
+ */
323
+ export const useFilesEffect = (service, state, dispatch, handleErrorRef) => {
324
+ useEffect(() => {
325
+ // Only fetch files for tabs 3 and 4
326
+ if (state.selectedTab < 3) {
327
+ return;
328
+ }
329
+ const abortController = new AbortController();
330
+ const fetchFiles = () => __awaiter(void 0, void 0, void 0, function* () {
331
+ // Only show loading state if we don't have existing data to display
332
+ // (Avoids flashing loading indicator when auto-refreshing)
333
+ if (state.files.length === 0) {
334
+ dispatch({ type: 'SET_LOADING_FILES', payload: true });
335
+ }
336
+ try {
337
+ // Determine decision filter based on selected tab
338
+ const decisionParam = state.selectedTab === 3 ? 'allowed' : 'blocked';
339
+ // Get date range parameters
340
+ const dateParams = getFileDateRange(state.fileDateRange);
341
+ const response = yield service.admin.getFiles(abortController, {
342
+ size: state.pageSize,
343
+ offset: state.currentPage * state.pageSize,
344
+ publisher: state.publisherQuery || undefined,
345
+ namespace: state.namespaceQuery || undefined,
346
+ name: state.nameQuery || undefined,
347
+ decision: decisionParam,
348
+ dateDecidedFrom: dateParams.dateDecidedFrom,
349
+ dateDecidedTo: dateParams.dateDecidedTo,
350
+ });
351
+ if (!abortController.signal.aborted) {
352
+ dispatch({ type: 'SET_LOADING_FILES', payload: false });
353
+ dispatch({ type: 'SET_FILES', payload: { files: response.files, totalFiles: response.totalSize } });
354
+ dispatch({ type: 'SET_LAST_REFRESHED', payload: new Date() });
355
+ }
356
+ }
357
+ catch (err) {
358
+ if (!abortController.signal.aborted) {
359
+ dispatch({ type: 'SET_LOADING_FILES', payload: false });
360
+ handleErrorRef.current(err);
361
+ }
362
+ }
363
+ });
364
+ fetchFiles();
365
+ return () => abortController.abort();
366
+ }, [
367
+ service,
368
+ state.currentPage,
369
+ state.pageSize,
370
+ state.publisherQuery,
371
+ state.namespaceQuery,
372
+ state.nameQuery,
373
+ state.selectedTab,
374
+ state.fileDateRange,
375
+ state.refreshTrigger,
376
+ state.files.length,
377
+ dispatch,
378
+ handleErrorRef,
379
+ ]);
380
+ };
381
+ // ============================================================================
382
+ // File Counts Effect
383
+ // ============================================================================
384
+ /**
385
+ * Hook to fetch file counts from API
386
+ */
387
+ export const useFileCountsEffect = (service, state, dispatch, handleErrorRef) => {
388
+ useEffect(() => {
389
+ // Only fetch file counts when on file tabs
390
+ if (state.selectedTab < 3) {
391
+ return;
392
+ }
393
+ const abortController = new AbortController();
394
+ const fetchFileCounts = () => __awaiter(void 0, void 0, void 0, function* () {
395
+ try {
396
+ // Get date range parameters
397
+ const dateParams = getFileDateRange(state.fileDateRange);
398
+ const counts = yield service.admin.getFileCounts(abortController, {
399
+ dateDecidedFrom: dateParams.dateDecidedFrom,
400
+ dateDecidedTo: dateParams.dateDecidedTo,
401
+ });
402
+ if (!abortController.signal.aborted) {
403
+ dispatch({ type: 'SET_FILE_COUNTS', payload: counts });
404
+ }
405
+ }
406
+ catch (err) {
407
+ if (!abortController.signal.aborted) {
408
+ handleErrorRef.current(err);
409
+ }
410
+ }
411
+ });
412
+ fetchFileCounts();
413
+ return () => abortController.abort();
414
+ }, [
415
+ service,
416
+ state.selectedTab,
417
+ state.fileDateRange,
418
+ state.refreshTrigger,
419
+ dispatch,
420
+ handleErrorRef,
421
+ ]);
422
+ };
423
+ // ============================================================================
424
+ // Auto Refresh Effect
425
+ // ============================================================================
426
+ /**
427
+ * Hook for periodic refresh - refreshes data every 30 seconds when enabled and page is visible
428
+ */
429
+ export const useAutoRefreshEffect = (state, dispatch) => {
430
+ useEffect(() => {
431
+ if (!state.autoRefresh) {
432
+ return; // Don't set up interval if auto-refresh is disabled
433
+ }
434
+ const REFRESH_INTERVAL = 30000; // 30 seconds
435
+ const intervalId = setInterval(() => {
436
+ // Only refresh when page is visible
437
+ if (!document.hidden) {
438
+ dispatch({ type: 'TRIGGER_REFRESH' });
439
+ }
440
+ }, REFRESH_INTERVAL);
441
+ return () => {
442
+ clearInterval(intervalId);
443
+ };
444
+ }, [state.autoRefresh, dispatch]);
445
+ };
446
+ //# sourceMappingURL=scan-api-effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-api-effects.js","sourceRoot":"","sources":["../../../src/context/scan-admin/scan-api-effects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
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 { ScanState, ScanAction, DateRangeType, EnforcementType, FileActionType, FileDecision, ScanResult } from './scan-types';
15
+ export interface ScanContextValue {
16
+ state: ScanState;
17
+ dispatch: React.Dispatch<ScanAction>;
18
+ actions: ScanActions;
19
+ derived: DerivedData;
20
+ }
21
+ export interface ScanActions {
22
+ setTab: (tab: number) => void;
23
+ setPublisherQuery: (query: string) => void;
24
+ setNamespaceQuery: (query: string) => void;
25
+ setNameQuery: (query: string) => void;
26
+ handlePublisherChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
27
+ handleNamespaceChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
28
+ handleNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
29
+ setPage: (page: number) => void;
30
+ setDateRange: (range: DateRangeType) => void;
31
+ setEnforcement: (enforcement: EnforcementType) => void;
32
+ setAutoRefresh: (enabled: boolean) => void;
33
+ setFileDateRange: (range: DateRangeType) => void;
34
+ toggleStatusFilter: (status: string) => void;
35
+ toggleQuarantineFilter: (filter: string) => void;
36
+ toggleThreatScannerFilter: (scanner: string) => void;
37
+ toggleValidationTypeFilter: (type: string) => void;
38
+ openFilterMenu: (event: React.MouseEvent<HTMLElement>) => void;
39
+ closeFilterMenu: () => void;
40
+ openQuarantineFilterMenu: (event: React.MouseEvent<HTMLElement>) => void;
41
+ closeQuarantineFilterMenu: () => void;
42
+ openAutoRejectedFilterMenu: (event: React.MouseEvent<HTMLElement>) => void;
43
+ closeAutoRejectedFilterMenu: () => void;
44
+ toggleQuarantinedCheck: (id: string, checked: boolean) => void;
45
+ selectAllQuarantined: (scans: ScanResult[]) => void;
46
+ deselectAllQuarantined: () => void;
47
+ setFilesChecked: (fileIds: Set<string>) => void;
48
+ openAllowDialog: () => void;
49
+ openBlockDialog: () => void;
50
+ closeConfirmDialog: () => void;
51
+ executeConfirmAction: () => void;
52
+ openFileDialog: (action: FileActionType) => void;
53
+ closeFileDialog: () => void;
54
+ executeFileAction: () => void;
55
+ }
56
+ export interface DerivedData {
57
+ /** Selected quarantined extensions (for bulk allow/block actions) */
58
+ selectedExtensions: ScanResult[];
59
+ /** Selected files from Allowed/Blocked Files tabs */
60
+ selectedFiles: FileDecision[];
61
+ /** Total pages for current data set (scans or files depending on tab) */
62
+ totalPages: number;
63
+ }
64
+ export interface ScanProviderProps {
65
+ children: React.ReactNode;
66
+ service: any;
67
+ handleError: (error: any) => void;
68
+ }
69
+ //# sourceMappingURL=scan-context-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-context-types.d.ts","sourceRoot":"","sources":["../../../src/context/scan-admin/scan-context-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
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 {};
14
+ //# sourceMappingURL=scan-context-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-context-types.js","sourceRoot":"","sources":["../../../src/context/scan-admin/scan-context-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF"}
@@ -0,0 +1,17 @@
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 { ScanContextValue, ScanProviderProps } from './scan-context-types';
15
+ export declare const ScanProvider: React.FC<ScanProviderProps>;
16
+ export declare const useScanContext: () => ScanContextValue;
17
+ //# sourceMappingURL=scan-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-context.d.ts","sourceRoot":"","sources":["../../../src/context/scan-admin/scan-context.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;kFAWkF;AAElF,OAAO,KAAiE,MAAM,OAAO,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAe,MAAM,sBAAsB,CAAC;AAsBxF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwEpD,CAAC;AAMF,eAAO,MAAM,cAAc,QAAO,gBAMjC,CAAC"}