@vitnode/core 1.2.0-canary.73 → 1.2.0-canary.75

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 (730) hide show
  1. package/config/next.config.ts +4 -0
  2. package/dist/scripts/plugin.d.ts.map +1 -1
  3. package/dist/scripts/prepare-database.d.ts.map +1 -1
  4. package/dist/scripts/scripts.js +10 -39
  5. package/dist/scripts/shared/file-utils.d.ts +1 -0
  6. package/dist/scripts/shared/file-utils.d.ts.map +1 -1
  7. package/dist/scripts/shared/file-utils.test.d.ts +2 -0
  8. package/dist/scripts/shared/file-utils.test.d.ts.map +1 -0
  9. package/dist/src/api/config.d.ts.map +1 -1
  10. package/dist/src/api/config.js +1 -1
  11. package/dist/src/api/lib/cache-client.d.ts +4 -0
  12. package/dist/src/api/lib/cache-client.d.ts.map +1 -0
  13. package/dist/src/api/lib/cache-client.js +1 -0
  14. package/dist/src/api/lib/cache.d.ts +32 -0
  15. package/dist/src/api/lib/cache.d.ts.map +1 -0
  16. package/dist/src/api/lib/cache.js +1 -0
  17. package/dist/src/api/lib/cache.test.d.ts +2 -0
  18. package/dist/src/api/lib/cache.test.d.ts.map +1 -0
  19. package/dist/src/api/lib/cache.test.js +1 -0
  20. package/dist/src/api/lib/check-staff-permission.d.ts +20 -0
  21. package/dist/src/api/lib/check-staff-permission.d.ts.map +1 -0
  22. package/dist/src/api/lib/check-staff-permission.js +1 -0
  23. package/dist/src/api/lib/module.d.ts +4 -1
  24. package/dist/src/api/lib/module.d.ts.map +1 -1
  25. package/dist/src/api/lib/module.js +1 -1
  26. package/dist/src/api/lib/permission-staff.d.ts +35 -0
  27. package/dist/src/api/lib/permission-staff.d.ts.map +1 -0
  28. package/dist/src/api/lib/permission-staff.js +1 -0
  29. package/dist/src/api/lib/plugin.d.ts +8 -3
  30. package/dist/src/api/lib/plugin.d.ts.map +1 -1
  31. package/dist/src/api/lib/plugin.js +1 -1
  32. package/dist/src/api/lib/queue.d.ts +14 -0
  33. package/dist/src/api/lib/queue.d.ts.map +1 -0
  34. package/dist/src/api/lib/queue.js +1 -0
  35. package/dist/src/api/lib/resolve-role-names.d.ts +7 -0
  36. package/dist/src/api/lib/resolve-role-names.d.ts.map +1 -0
  37. package/dist/src/api/lib/resolve-role-names.js +1 -0
  38. package/dist/src/api/lib/route.d.ts +7 -1
  39. package/dist/src/api/lib/route.d.ts.map +1 -1
  40. package/dist/src/api/lib/route.js +1 -1
  41. package/dist/src/api/lib/staff-permission.d.ts +4 -0
  42. package/dist/src/api/lib/staff-permission.d.ts.map +1 -0
  43. package/dist/src/api/lib/staff-permission.js +1 -0
  44. package/dist/src/api/middlewares/global.middleware.d.ts +18 -5
  45. package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
  46. package/dist/src/api/middlewares/global.middleware.js +1 -1
  47. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts +2 -1
  48. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts.map +1 -1
  49. package/dist/src/api/middlewares/rate-limiter.middleware.js +1 -1
  50. package/dist/src/api/models/email.d.ts +11 -1
  51. package/dist/src/api/models/email.d.ts.map +1 -1
  52. package/dist/src/api/models/email.js +1 -1
  53. package/dist/src/api/models/email.test.d.ts +2 -0
  54. package/dist/src/api/models/email.test.d.ts.map +1 -0
  55. package/dist/src/api/models/email.test.js +1 -0
  56. package/dist/src/api/models/queue.d.ts +17 -0
  57. package/dist/src/api/models/queue.d.ts.map +1 -0
  58. package/dist/src/api/models/queue.js +1 -0
  59. package/dist/src/api/models/queue.test.d.ts +2 -0
  60. package/dist/src/api/models/queue.test.d.ts.map +1 -0
  61. package/dist/src/api/models/queue.test.js +1 -0
  62. package/dist/src/api/models/session-admin.d.ts.map +1 -1
  63. package/dist/src/api/models/session-admin.js +1 -1
  64. package/dist/src/api/models/session-cache.d.ts +8 -0
  65. package/dist/src/api/models/session-cache.d.ts.map +1 -0
  66. package/dist/src/api/models/session-cache.js +1 -0
  67. package/dist/src/api/models/session.d.ts.map +1 -1
  68. package/dist/src/api/models/session.js +1 -1
  69. package/dist/src/api/modules/admin/admin.module.d.ts +694 -8
  70. package/dist/src/api/modules/admin/admin.module.d.ts.map +1 -1
  71. package/dist/src/api/modules/admin/admin.module.js +1 -1
  72. package/dist/src/api/modules/admin/advanced/advanced.admin.module.d.ts +64 -2
  73. package/dist/src/api/modules/admin/advanced/advanced.admin.module.d.ts.map +1 -1
  74. package/dist/src/api/modules/admin/advanced/advanced.admin.module.js +1 -1
  75. package/dist/src/api/modules/admin/advanced/queue/queue.admin.module.d.ts +64 -0
  76. package/dist/src/api/modules/admin/advanced/queue/queue.admin.module.d.ts.map +1 -0
  77. package/dist/src/api/modules/admin/advanced/queue/queue.admin.module.js +1 -0
  78. package/dist/src/api/modules/admin/advanced/queue/routes/get.route.d.ts +65 -0
  79. package/dist/src/api/modules/admin/advanced/queue/routes/get.route.d.ts.map +1 -0
  80. package/dist/src/api/modules/admin/advanced/queue/routes/get.route.js +1 -0
  81. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts +122 -2
  82. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts.map +1 -1
  83. package/dist/src/api/modules/admin/debug/debug.admin.module.js +1 -1
  84. package/dist/src/api/modules/admin/debug/routes/integrations.route.d.ts +49 -0
  85. package/dist/src/api/modules/admin/debug/routes/integrations.route.d.ts.map +1 -0
  86. package/dist/src/api/modules/admin/debug/routes/integrations.route.js +1 -0
  87. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts +2 -2
  88. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts.map +1 -1
  89. package/dist/src/api/modules/admin/debug/routes/logs.route.js +1 -1
  90. package/dist/src/api/modules/admin/debug/routes/queue.route.d.ts +42 -0
  91. package/dist/src/api/modules/admin/debug/routes/queue.route.d.ts.map +1 -0
  92. package/dist/src/api/modules/admin/debug/routes/queue.route.js +1 -0
  93. package/dist/src/api/modules/admin/debug/routes/send-test-email.route.d.ts +43 -0
  94. package/dist/src/api/modules/admin/debug/routes/send-test-email.route.d.ts.map +1 -0
  95. package/dist/src/api/modules/admin/debug/routes/send-test-email.route.js +1 -0
  96. package/dist/src/api/modules/admin/routes/session.route.d.ts +8 -0
  97. package/dist/src/api/modules/admin/routes/session.route.d.ts.map +1 -1
  98. package/dist/src/api/modules/admin/routes/session.route.js +1 -1
  99. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.d.ts +38 -0
  100. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.d.ts.map +1 -0
  101. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.js +1 -0
  102. package/dist/src/api/modules/admin/staff/lib/schema.d.ts +107 -0
  103. package/dist/src/api/modules/admin/staff/lib/schema.d.ts.map +1 -0
  104. package/dist/src/api/modules/admin/staff/lib/schema.js +1 -0
  105. package/dist/src/api/modules/admin/staff/routes/admins.route.d.ts +76 -0
  106. package/dist/src/api/modules/admin/staff/routes/admins.route.d.ts.map +1 -0
  107. package/dist/src/api/modules/admin/staff/routes/admins.route.js +1 -0
  108. package/dist/src/api/modules/admin/staff/routes/create.route.d.ts +52 -0
  109. package/dist/src/api/modules/admin/staff/routes/create.route.d.ts.map +1 -0
  110. package/dist/src/api/modules/admin/staff/routes/create.route.js +1 -0
  111. package/dist/src/api/modules/admin/staff/routes/delete.route.d.ts +36 -0
  112. package/dist/src/api/modules/admin/staff/routes/delete.route.d.ts.map +1 -0
  113. package/dist/src/api/modules/admin/staff/routes/delete.route.js +1 -0
  114. package/dist/src/api/modules/admin/staff/routes/moderators.route.d.ts +76 -0
  115. package/dist/src/api/modules/admin/staff/routes/moderators.route.d.ts.map +1 -0
  116. package/dist/src/api/modules/admin/staff/routes/moderators.route.js +1 -0
  117. package/dist/src/api/modules/admin/staff/routes/permission-catalog.route.d.ts +32 -0
  118. package/dist/src/api/modules/admin/staff/routes/permission-catalog.route.d.ts.map +1 -0
  119. package/dist/src/api/modules/admin/staff/routes/permission-catalog.route.js +1 -0
  120. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.d.ts +75 -0
  121. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.d.ts.map +1 -0
  122. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.js +1 -0
  123. package/dist/src/api/modules/admin/staff/routes/update-permissions.route.d.ts +62 -0
  124. package/dist/src/api/modules/admin/staff/routes/update-permissions.route.d.ts.map +1 -0
  125. package/dist/src/api/modules/admin/staff/routes/update-permissions.route.js +1 -0
  126. package/dist/src/api/modules/admin/staff/staff.admin.module.d.ts +392 -0
  127. package/dist/src/api/modules/admin/staff/staff.admin.module.d.ts.map +1 -0
  128. package/dist/src/api/modules/admin/staff/staff.admin.module.js +1 -0
  129. package/dist/src/api/modules/admin/users/lib/assert-edit-user-permission.d.ts +4 -0
  130. package/dist/src/api/modules/admin/users/lib/assert-edit-user-permission.d.ts.map +1 -0
  131. package/dist/src/api/modules/admin/users/lib/assert-edit-user-permission.js +1 -0
  132. package/dist/src/api/modules/admin/users/routes/create.route.d.ts.map +1 -1
  133. package/dist/src/api/modules/admin/users/routes/create.route.js +1 -1
  134. package/dist/src/api/modules/admin/users/routes/list.route.d.ts +16 -0
  135. package/dist/src/api/modules/admin/users/routes/list.route.d.ts.map +1 -1
  136. package/dist/src/api/modules/admin/users/routes/list.route.js +1 -1
  137. package/dist/src/api/modules/admin/users/routes/show.route.d.ts +19 -2
  138. package/dist/src/api/modules/admin/users/routes/show.route.d.ts.map +1 -1
  139. package/dist/src/api/modules/admin/users/routes/show.route.js +1 -1
  140. package/dist/src/api/modules/admin/users/routes/update.route.d.ts +83 -0
  141. package/dist/src/api/modules/admin/users/routes/update.route.d.ts.map +1 -0
  142. package/dist/src/api/modules/admin/users/routes/update.route.js +1 -0
  143. package/dist/src/api/modules/admin/users/routes/verify-email.route.d.ts +2 -2
  144. package/dist/src/api/modules/admin/users/routes/verify-email.route.d.ts.map +1 -1
  145. package/dist/src/api/modules/admin/users/routes/verify-email.route.js +1 -1
  146. package/dist/src/api/modules/admin/users/users.admin.module.d.ts +110 -4
  147. package/dist/src/api/modules/admin/users/users.admin.module.d.ts.map +1 -1
  148. package/dist/src/api/modules/admin/users/users.admin.module.js +1 -1
  149. package/dist/src/api/modules/queue/cron/process-queue.cron.d.ts +2 -0
  150. package/dist/src/api/modules/queue/cron/process-queue.cron.d.ts.map +1 -0
  151. package/dist/src/api/modules/queue/cron/process-queue.cron.js +1 -0
  152. package/dist/src/api/modules/queue/helpers/process-queue-tasks.d.ts +4 -0
  153. package/dist/src/api/modules/queue/helpers/process-queue-tasks.d.ts.map +1 -0
  154. package/dist/src/api/modules/queue/helpers/process-queue-tasks.js +1 -0
  155. package/dist/src/api/modules/queue/queue.module.d.ts +2 -0
  156. package/dist/src/api/modules/queue/queue.module.d.ts.map +1 -0
  157. package/dist/src/api/modules/queue/queue.module.js +1 -0
  158. package/dist/src/api/modules/queue/tasks/send-email.task.d.ts +10 -0
  159. package/dist/src/api/modules/queue/tasks/send-email.task.d.ts.map +1 -0
  160. package/dist/src/api/modules/queue/tasks/send-email.task.js +1 -0
  161. package/dist/src/api/modules/users/routes/permissions.route.d.ts +26 -0
  162. package/dist/src/api/modules/users/routes/permissions.route.d.ts.map +1 -0
  163. package/dist/src/api/modules/users/routes/permissions.route.js +1 -0
  164. package/dist/src/api/modules/users/routes/reset-passowrd.route.js +1 -1
  165. package/dist/src/api/modules/users/routes/session.route.d.ts +1 -0
  166. package/dist/src/api/modules/users/routes/session.route.d.ts.map +1 -1
  167. package/dist/src/api/modules/users/routes/session.route.js +1 -1
  168. package/dist/src/api/modules/users/users.module.d.ts +24 -0
  169. package/dist/src/api/modules/users/users.module.d.ts.map +1 -1
  170. package/dist/src/api/modules/users/users.module.js +1 -1
  171. package/dist/src/api/plugin.d.ts.map +1 -1
  172. package/dist/src/api/plugin.js +1 -1
  173. package/dist/src/components/confirm-action/confirm-action-alert-dialog.d.ts +1 -1
  174. package/dist/src/components/confirm-action/confirm-action-alert-dialog.d.ts.map +1 -1
  175. package/dist/src/components/confirm-action/confirm-action-alert-dialog.js +1 -1
  176. package/dist/src/components/form/auto-form.js +1 -1
  177. package/dist/src/components/form/fields/array.d.ts.map +1 -1
  178. package/dist/src/components/form/fields/checkbox.js +1 -1
  179. package/dist/src/components/form/fields/select.d.ts.map +1 -1
  180. package/dist/src/components/form/fields/select.js +1 -1
  181. package/dist/src/components/form/fields/switch.js +1 -1
  182. package/dist/src/components/staff-permission/provider.d.ts +13 -0
  183. package/dist/src/components/staff-permission/provider.d.ts.map +1 -0
  184. package/dist/src/components/staff-permission/provider.js +1 -0
  185. package/dist/src/components/switchers/langs/language-switcher.d.ts.map +1 -1
  186. package/dist/src/components/switchers/langs/language-switcher.js +1 -1
  187. package/dist/src/components/switchers/themes/theme-switcher.js +1 -1
  188. package/dist/src/components/table/filters.d.ts.map +1 -1
  189. package/dist/src/components/table/filters.js +1 -1
  190. package/dist/src/components/table/pagination.d.ts.map +1 -1
  191. package/dist/src/components/table/pagination.js +1 -1
  192. package/dist/src/components/theme-provider.d.ts +26 -0
  193. package/dist/src/components/theme-provider.d.ts.map +1 -0
  194. package/dist/src/components/theme-provider.js +1 -0
  195. package/dist/src/components/tiptap/toolbar/actions/alignment-action.d.ts.map +1 -1
  196. package/dist/src/components/tiptap/toolbar/actions/alignment-action.js +1 -1
  197. package/dist/src/components/tiptap/toolbar/actions/headings-action.d.ts.map +1 -1
  198. package/dist/src/components/tiptap/toolbar/actions/headings-action.js +1 -1
  199. package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.d.ts.map +1 -1
  200. package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.js +1 -1
  201. package/dist/src/components/ui/accordion.d.ts +3 -3
  202. package/dist/src/components/ui/accordion.d.ts.map +1 -1
  203. package/dist/src/components/ui/accordion.js +1 -1
  204. package/dist/src/components/ui/alert-dialog.d.ts +10 -10
  205. package/dist/src/components/ui/alert-dialog.d.ts.map +1 -1
  206. package/dist/src/components/ui/alert-dialog.js +1 -1
  207. package/dist/src/components/ui/alert.d.ts +2 -2
  208. package/dist/src/components/ui/alert.d.ts.map +1 -1
  209. package/dist/src/components/ui/alert.js +1 -1
  210. package/dist/src/components/ui/aspect-ratio.d.ts +4 -2
  211. package/dist/src/components/ui/aspect-ratio.d.ts.map +1 -1
  212. package/dist/src/components/ui/aspect-ratio.js +1 -1
  213. package/dist/src/components/ui/avatar.d.ts +2 -2
  214. package/dist/src/components/ui/avatar.d.ts.map +1 -1
  215. package/dist/src/components/ui/avatar.js +1 -1
  216. package/dist/src/components/ui/badge.d.ts +3 -5
  217. package/dist/src/components/ui/badge.d.ts.map +1 -1
  218. package/dist/src/components/ui/badge.js +1 -1
  219. package/dist/src/components/ui/breadcrumb.d.ts +3 -4
  220. package/dist/src/components/ui/breadcrumb.d.ts.map +1 -1
  221. package/dist/src/components/ui/breadcrumb.js +1 -1
  222. package/dist/src/components/ui/button-client.d.ts +1 -1
  223. package/dist/src/components/ui/button-client.d.ts.map +1 -1
  224. package/dist/src/components/ui/button-client.js +1 -1
  225. package/dist/src/components/ui/button-group.d.ts +2 -3
  226. package/dist/src/components/ui/button-group.d.ts.map +1 -1
  227. package/dist/src/components/ui/button-group.js +1 -1
  228. package/dist/src/components/ui/button.d.ts +5 -5
  229. package/dist/src/components/ui/button.d.ts.map +1 -1
  230. package/dist/src/components/ui/button.js +1 -1
  231. package/dist/src/components/ui/card.d.ts +1 -1
  232. package/dist/src/components/ui/card.d.ts.map +1 -1
  233. package/dist/src/components/ui/card.js +1 -1
  234. package/dist/src/components/ui/carousel.d.ts +1 -1
  235. package/dist/src/components/ui/carousel.d.ts.map +1 -1
  236. package/dist/src/components/ui/carousel.js +1 -1
  237. package/dist/src/components/ui/chart.d.ts +1 -1
  238. package/dist/src/components/ui/chart.d.ts.map +1 -1
  239. package/dist/src/components/ui/chart.js +1 -1
  240. package/dist/src/components/ui/checkbox.d.ts +2 -2
  241. package/dist/src/components/ui/checkbox.d.ts.map +1 -1
  242. package/dist/src/components/ui/checkbox.js +1 -1
  243. package/dist/src/components/ui/collapsible.d.ts +5 -4
  244. package/dist/src/components/ui/collapsible.d.ts.map +1 -1
  245. package/dist/src/components/ui/collapsible.js +1 -1
  246. package/dist/src/components/ui/combobox.d.ts +1 -1
  247. package/dist/src/components/ui/combobox.d.ts.map +1 -1
  248. package/dist/src/components/ui/combobox.js +1 -1
  249. package/dist/src/components/ui/command.d.ts +1 -1
  250. package/dist/src/components/ui/command.d.ts.map +1 -1
  251. package/dist/src/components/ui/command.js +1 -1
  252. package/dist/src/components/ui/context-menu.d.ts +7 -9
  253. package/dist/src/components/ui/context-menu.d.ts.map +1 -1
  254. package/dist/src/components/ui/context-menu.js +1 -1
  255. package/dist/src/components/ui/dialog.d.ts +12 -9
  256. package/dist/src/components/ui/dialog.d.ts.map +1 -1
  257. package/dist/src/components/ui/dialog.js +1 -1
  258. package/dist/src/components/ui/direction.d.ts +5 -5
  259. package/dist/src/components/ui/direction.d.ts.map +1 -1
  260. package/dist/src/components/ui/direction.js +1 -1
  261. package/dist/src/components/ui/drawer.d.ts +1 -1
  262. package/dist/src/components/ui/drawer.d.ts.map +1 -1
  263. package/dist/src/components/ui/drawer.js +1 -1
  264. package/dist/src/components/ui/dropdown-menu.d.ts +16 -16
  265. package/dist/src/components/ui/dropdown-menu.d.ts.map +1 -1
  266. package/dist/src/components/ui/dropdown-menu.js +1 -1
  267. package/dist/src/components/ui/empty.d.ts.map +1 -1
  268. package/dist/src/components/ui/empty.js +1 -1
  269. package/dist/src/components/ui/field.js +1 -1
  270. package/dist/src/components/ui/form.d.ts +1 -2
  271. package/dist/src/components/ui/form.d.ts.map +1 -1
  272. package/dist/src/components/ui/form.js +1 -1
  273. package/dist/src/components/ui/hover-card.d.ts +5 -5
  274. package/dist/src/components/ui/hover-card.d.ts.map +1 -1
  275. package/dist/src/components/ui/hover-card.js +1 -1
  276. package/dist/src/components/ui/input-group.d.ts +4 -2
  277. package/dist/src/components/ui/input-group.d.ts.map +1 -1
  278. package/dist/src/components/ui/input-group.js +1 -1
  279. package/dist/src/components/ui/input-otp.d.ts +1 -1
  280. package/dist/src/components/ui/input-otp.d.ts.map +1 -1
  281. package/dist/src/components/ui/input-otp.js +1 -1
  282. package/dist/src/components/ui/input.d.ts +1 -1
  283. package/dist/src/components/ui/input.d.ts.map +1 -1
  284. package/dist/src/components/ui/input.js +1 -1
  285. package/dist/src/components/ui/item.d.ts +4 -5
  286. package/dist/src/components/ui/item.d.ts.map +1 -1
  287. package/dist/src/components/ui/item.js +1 -1
  288. package/dist/src/components/ui/label.d.ts +2 -3
  289. package/dist/src/components/ui/label.d.ts.map +1 -1
  290. package/dist/src/components/ui/label.js +1 -1
  291. package/dist/src/components/ui/menubar.d.ts +18 -17
  292. package/dist/src/components/ui/menubar.d.ts.map +1 -1
  293. package/dist/src/components/ui/menubar.js +1 -1
  294. package/dist/src/components/ui/native-select.d.ts +1 -1
  295. package/dist/src/components/ui/native-select.d.ts.map +1 -1
  296. package/dist/src/components/ui/native-select.js +1 -1
  297. package/dist/src/components/ui/navigation-menu.d.ts +9 -11
  298. package/dist/src/components/ui/navigation-menu.d.ts.map +1 -1
  299. package/dist/src/components/ui/navigation-menu.js +1 -1
  300. package/dist/src/components/ui/pagination.d.ts +1 -1
  301. package/dist/src/components/ui/pagination.d.ts.map +1 -1
  302. package/dist/src/components/ui/pagination.js +1 -1
  303. package/dist/src/components/ui/popover.d.ts +6 -7
  304. package/dist/src/components/ui/popover.d.ts.map +1 -1
  305. package/dist/src/components/ui/popover.js +1 -1
  306. package/dist/src/components/ui/progress.d.ts +2 -2
  307. package/dist/src/components/ui/progress.d.ts.map +1 -1
  308. package/dist/src/components/ui/progress.js +1 -1
  309. package/dist/src/components/ui/radio-group.d.ts +5 -4
  310. package/dist/src/components/ui/radio-group.d.ts.map +1 -1
  311. package/dist/src/components/ui/radio-group.js +1 -1
  312. package/dist/src/components/ui/scroll-area.d.ts +3 -3
  313. package/dist/src/components/ui/scroll-area.d.ts.map +1 -1
  314. package/dist/src/components/ui/scroll-area.js +1 -1
  315. package/dist/src/components/ui/select.d.ts +6 -6
  316. package/dist/src/components/ui/select.d.ts.map +1 -1
  317. package/dist/src/components/ui/select.js +1 -1
  318. package/dist/src/components/ui/separator.d.ts +3 -3
  319. package/dist/src/components/ui/separator.d.ts.map +1 -1
  320. package/dist/src/components/ui/separator.js +1 -1
  321. package/dist/src/components/ui/sheet.d.ts +8 -8
  322. package/dist/src/components/ui/sheet.d.ts.map +1 -1
  323. package/dist/src/components/ui/sheet.js +1 -1
  324. package/dist/src/components/ui/sidebar.d.ts +9 -15
  325. package/dist/src/components/ui/sidebar.d.ts.map +1 -1
  326. package/dist/src/components/ui/sidebar.js +1 -1
  327. package/dist/src/components/ui/slider.d.ts +2 -2
  328. package/dist/src/components/ui/slider.d.ts.map +1 -1
  329. package/dist/src/components/ui/slider.js +1 -1
  330. package/dist/src/components/ui/sonner.d.ts.map +1 -1
  331. package/dist/src/components/ui/sonner.js +1 -1
  332. package/dist/src/components/ui/spinner.d.ts.map +1 -1
  333. package/dist/src/components/ui/spinner.js +1 -1
  334. package/dist/src/components/ui/switch.d.ts +2 -2
  335. package/dist/src/components/ui/switch.d.ts.map +1 -1
  336. package/dist/src/components/ui/switch.js +1 -1
  337. package/dist/src/components/ui/table.d.ts +1 -1
  338. package/dist/src/components/ui/table.d.ts.map +1 -1
  339. package/dist/src/components/ui/table.js +1 -1
  340. package/dist/src/components/ui/tabs.d.ts +4 -4
  341. package/dist/src/components/ui/tabs.d.ts.map +1 -1
  342. package/dist/src/components/ui/tabs.js +1 -1
  343. package/dist/src/components/ui/textarea.d.ts +1 -1
  344. package/dist/src/components/ui/textarea.d.ts.map +1 -1
  345. package/dist/src/components/ui/textarea.js +1 -1
  346. package/dist/src/components/ui/toggle-group.d.ts +1 -1
  347. package/dist/src/components/ui/toggle-group.d.ts.map +1 -1
  348. package/dist/src/components/ui/toggle-group.js +1 -1
  349. package/dist/src/components/ui/tooltip.d.ts +1 -1
  350. package/dist/src/components/ui/tooltip.d.ts.map +1 -1
  351. package/dist/src/components/ui/tooltip.js +1 -1
  352. package/dist/src/config.js +1 -1
  353. package/dist/src/database/admins.d.ts +20 -0
  354. package/dist/src/database/admins.d.ts.map +1 -1
  355. package/dist/src/database/admins.js +1 -1
  356. package/dist/src/database/languages.d.ts.map +1 -1
  357. package/dist/src/database/languages.js +1 -1
  358. package/dist/src/database/logs.d.ts +1 -1
  359. package/dist/src/database/moderators.d.ts +20 -0
  360. package/dist/src/database/moderators.d.ts.map +1 -1
  361. package/dist/src/database/moderators.js +1 -1
  362. package/dist/src/database/queue.d.ts +273 -0
  363. package/dist/src/database/queue.d.ts.map +1 -0
  364. package/dist/src/database/queue.js +1 -0
  365. package/dist/src/database/users.d.ts +63 -0
  366. package/dist/src/database/users.d.ts.map +1 -1
  367. package/dist/src/database/users.js +1 -1
  368. package/dist/src/emails/default-template.d.ts +1 -1
  369. package/dist/src/emails/default-template.d.ts.map +1 -1
  370. package/dist/src/emails/default-template.js +1 -1
  371. package/dist/src/emails/reset-password.js +1 -1
  372. package/dist/src/emails/test-email.d.ts +26 -0
  373. package/dist/src/emails/test-email.d.ts.map +1 -0
  374. package/dist/src/emails/test-email.js +1 -0
  375. package/dist/src/emails/ui/button.d.ts +2 -2
  376. package/dist/src/emails/ui/button.d.ts.map +1 -1
  377. package/dist/src/emails/ui/button.js +1 -1
  378. package/dist/src/emails/ui/card.d.ts +1 -1
  379. package/dist/src/emails/ui/card.d.ts.map +1 -1
  380. package/dist/src/emails/ui/card.js +1 -1
  381. package/dist/src/hooks/use-captcha.d.ts.map +1 -1
  382. package/dist/src/hooks/use-captcha.js +1 -1
  383. package/dist/src/hooks/use-mobile.js +1 -1
  384. package/dist/src/lib/api/get-moderator-permissions-api.d.ts +4 -0
  385. package/dist/src/lib/api/get-moderator-permissions-api.d.ts.map +1 -0
  386. package/dist/src/lib/api/get-moderator-permissions-api.js +1 -0
  387. package/dist/src/lib/api/get-next-cron-run-date.js +1 -1
  388. package/dist/src/lib/api/get-queue-backoff-date.d.ts +2 -0
  389. package/dist/src/lib/api/get-queue-backoff-date.d.ts.map +1 -0
  390. package/dist/src/lib/api/get-queue-backoff-date.js +1 -0
  391. package/dist/src/lib/api/get-queue-backoff-date.test.d.ts +2 -0
  392. package/dist/src/lib/api/get-queue-backoff-date.test.d.ts.map +1 -0
  393. package/dist/src/lib/api/get-queue-backoff-date.test.js +1 -0
  394. package/dist/src/lib/api/get-session-admin-api.d.ts +12 -0
  395. package/dist/src/lib/api/get-session-admin-api.d.ts.map +1 -1
  396. package/dist/src/lib/api/get-session-admin-api.js +1 -1
  397. package/dist/src/lib/api/get-session-api.d.ts +1 -0
  398. package/dist/src/lib/api/get-session-api.d.ts.map +1 -1
  399. package/dist/src/lib/api/resolve-queue-task-outcome.d.ts +14 -0
  400. package/dist/src/lib/api/resolve-queue-task-outcome.d.ts.map +1 -0
  401. package/dist/src/lib/api/resolve-queue-task-outcome.js +1 -0
  402. package/dist/src/lib/api/resolve-queue-task-outcome.test.d.ts +2 -0
  403. package/dist/src/lib/api/resolve-queue-task-outcome.test.d.ts.map +1 -0
  404. package/dist/src/lib/api/resolve-queue-task-outcome.test.js +1 -0
  405. package/dist/src/lib/api/should-cron-job-run.js +1 -1
  406. package/dist/src/lib/config.d.ts +1 -0
  407. package/dist/src/lib/config.d.ts.map +1 -1
  408. package/dist/src/lib/config.js +1 -1
  409. package/dist/src/lib/fetcher/types.d.ts.map +1 -1
  410. package/dist/src/lib/navigation.d.ts +5 -5
  411. package/dist/src/lib/plugin.d.ts +3 -0
  412. package/dist/src/lib/plugin.d.ts.map +1 -1
  413. package/dist/src/lib/utils.d.ts +1 -0
  414. package/dist/src/lib/utils.d.ts.map +1 -1
  415. package/dist/src/lib/utils.js +1 -1
  416. package/dist/src/routes/admin/core/advanced/queue/page.d.ts +13 -0
  417. package/dist/src/routes/admin/core/advanced/queue/page.d.ts.map +1 -0
  418. package/dist/src/routes/admin/core/advanced/queue/page.js +1 -0
  419. package/dist/src/routes/admin/core/debug/page.d.ts.map +1 -1
  420. package/dist/src/routes/admin/core/debug/page.js +1 -1
  421. package/dist/src/routes/admin/core/staff/admins/create/page.d.ts +3 -0
  422. package/dist/src/routes/admin/core/staff/admins/create/page.d.ts.map +1 -0
  423. package/dist/src/routes/admin/core/staff/admins/create/page.js +1 -0
  424. package/dist/src/routes/admin/core/staff/admins/edit/[id]/page.d.ts +7 -0
  425. package/dist/src/routes/admin/core/staff/admins/edit/[id]/page.d.ts.map +1 -0
  426. package/dist/src/routes/admin/core/staff/admins/edit/[id]/page.js +1 -0
  427. package/dist/src/routes/admin/core/staff/admins/page.d.ts +4 -0
  428. package/dist/src/routes/admin/core/staff/admins/page.d.ts.map +1 -0
  429. package/dist/src/routes/admin/core/staff/admins/page.js +1 -0
  430. package/dist/src/routes/admin/core/staff/moderators/create/page.d.ts +3 -0
  431. package/dist/src/routes/admin/core/staff/moderators/create/page.d.ts.map +1 -0
  432. package/dist/src/routes/admin/core/staff/moderators/create/page.js +1 -0
  433. package/dist/src/routes/admin/core/staff/moderators/edit/[id]/page.d.ts +7 -0
  434. package/dist/src/routes/admin/core/staff/moderators/edit/[id]/page.d.ts.map +1 -0
  435. package/dist/src/routes/admin/core/staff/moderators/edit/[id]/page.js +1 -0
  436. package/dist/src/routes/admin/core/staff/moderators/page.d.ts +4 -0
  437. package/dist/src/routes/admin/core/staff/moderators/page.d.ts.map +1 -0
  438. package/dist/src/routes/admin/core/staff/moderators/page.js +1 -0
  439. package/dist/src/routes/admin/core/system/integrations/page.d.ts +7 -0
  440. package/dist/src/routes/admin/core/system/integrations/page.d.ts.map +1 -0
  441. package/dist/src/routes/admin/core/system/integrations/page.js +1 -0
  442. package/dist/src/routes/admin/core/users/{[nameCode] → [id]}/page.d.ts +2 -2
  443. package/dist/src/routes/admin/core/users/[id]/page.d.ts.map +1 -0
  444. package/dist/src/routes/admin/core/users/[id]/page.js +1 -0
  445. package/dist/src/routes/admin/core/users/page.d.ts.map +1 -1
  446. package/dist/src/routes/admin/core/users/page.js +1 -1
  447. package/dist/src/routes/breadcrumb/admin/[...all]/page.d.ts +1 -5
  448. package/dist/src/routes/breadcrumb/admin/[...all]/page.d.ts.map +1 -1
  449. package/dist/src/routes/breadcrumb/admin/[...all]/page.js +1 -1
  450. package/dist/src/routes/breadcrumb/admin/core/staff/admins/create/page.d.ts +2 -0
  451. package/dist/src/routes/breadcrumb/admin/core/staff/admins/create/page.d.ts.map +1 -0
  452. package/dist/src/routes/breadcrumb/admin/core/staff/admins/create/page.js +1 -0
  453. package/dist/src/routes/breadcrumb/admin/core/{users/[nameCode] → staff/admins/edit/[id]}/page.d.ts +1 -1
  454. package/dist/src/routes/breadcrumb/admin/core/staff/admins/edit/[id]/page.d.ts.map +1 -0
  455. package/dist/src/routes/breadcrumb/admin/core/staff/admins/edit/[id]/page.js +1 -0
  456. package/dist/src/routes/breadcrumb/admin/core/staff/admins/page.d.ts +2 -0
  457. package/dist/src/routes/breadcrumb/admin/core/staff/admins/page.d.ts.map +1 -0
  458. package/dist/src/routes/breadcrumb/admin/core/staff/admins/page.js +1 -0
  459. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/create/page.d.ts +2 -0
  460. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/create/page.d.ts.map +1 -0
  461. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/create/page.js +1 -0
  462. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/edit/[id]/page.d.ts +6 -0
  463. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/edit/[id]/page.d.ts.map +1 -0
  464. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/edit/[id]/page.js +1 -0
  465. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/page.d.ts +2 -0
  466. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/page.d.ts.map +1 -0
  467. package/dist/src/routes/breadcrumb/admin/core/staff/moderators/page.js +1 -0
  468. package/dist/src/routes/breadcrumb/admin/core/users/[id]/page.d.ts +6 -0
  469. package/dist/src/routes/breadcrumb/admin/core/users/[id]/page.d.ts.map +1 -0
  470. package/dist/src/routes/breadcrumb/admin/core/users/{[nameCode] → [id]}/page.js +1 -1
  471. package/dist/src/routes/breadcrumb/main/[...rest]/page.d.ts +1 -5
  472. package/dist/src/routes/breadcrumb/main/[...rest]/page.d.ts.map +1 -1
  473. package/dist/src/routes/breadcrumb/main/[...rest]/page.js +1 -1
  474. package/dist/src/routes/breadcrumb/main/settings/overview/page.d.ts.map +1 -0
  475. package/dist/src/routes/breadcrumb/main/settings/overview/page.js +1 -0
  476. package/dist/src/routes/breadcrumb/main/settings/page.d.ts.map +1 -0
  477. package/dist/src/routes/breadcrumb/main/{register → settings}/page.js +1 -1
  478. package/dist/src/routes/breadcrumb/main/settings/security/page.d.ts.map +1 -0
  479. package/dist/src/routes/breadcrumb/main/settings/security/page.js +1 -0
  480. package/dist/src/routes/main/settings/layout.d.ts +5 -0
  481. package/dist/src/routes/main/settings/layout.d.ts.map +1 -0
  482. package/dist/src/routes/main/settings/layout.js +1 -0
  483. package/dist/src/routes/main/settings/overview/page.d.ts +5 -0
  484. package/dist/src/routes/main/settings/overview/page.d.ts.map +1 -0
  485. package/dist/src/routes/main/settings/overview/page.js +1 -0
  486. package/dist/src/routes/main/settings/page.d.ts +5 -0
  487. package/dist/src/routes/main/settings/page.d.ts.map +1 -0
  488. package/dist/src/routes/main/settings/page.js +1 -0
  489. package/dist/src/routes/main/settings/security/page.d.ts +5 -0
  490. package/dist/src/routes/main/settings/security/page.d.ts.map +1 -0
  491. package/dist/src/routes/main/settings/security/page.js +1 -0
  492. package/dist/src/views/admin/layouts/admin-layout.d.ts.map +1 -1
  493. package/dist/src/views/admin/layouts/admin-layout.js +1 -1
  494. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-admin.d.ts +6 -0
  495. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-admin.d.ts.map +1 -0
  496. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-admin.js +1 -0
  497. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-create-admin.d.ts +5 -0
  498. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-create-admin.d.ts.map +1 -0
  499. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-create-admin.js +1 -0
  500. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-edit-admin.d.ts +6 -0
  501. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-edit-admin.d.ts.map +1 -0
  502. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-staff-edit-admin.js +1 -0
  503. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-user-admin.d.ts +2 -2
  504. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-user-admin.d.ts.map +1 -1
  505. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-user-admin.js +1 -1
  506. package/dist/src/views/admin/layouts/breadcrumb/resolve-breadcrumb.d.ts.map +1 -1
  507. package/dist/src/views/admin/layouts/breadcrumb/resolve-breadcrumb.js +1 -1
  508. package/dist/src/views/admin/layouts/sidebar/nav/get-admin-nav.d.ts.map +1 -1
  509. package/dist/src/views/admin/layouts/sidebar/nav/get-admin-nav.js +1 -1
  510. package/dist/src/views/admin/layouts/sidebar/nav/item.d.ts.map +1 -1
  511. package/dist/src/views/admin/layouts/sidebar/nav/item.js +1 -1
  512. package/dist/src/views/admin/layouts/user-bar/client.d.ts.map +1 -1
  513. package/dist/src/views/admin/layouts/user-bar/client.js +1 -1
  514. package/dist/src/views/admin/layouts/user-bar/user-bar.js +1 -1
  515. package/dist/src/views/admin/views/core/advanced/queue/badges/status-badge.d.ts +5 -0
  516. package/dist/src/views/admin/views/core/advanced/queue/badges/status-badge.d.ts.map +1 -0
  517. package/dist/src/views/admin/views/core/advanced/queue/badges/status-badge.js +1 -0
  518. package/dist/src/views/admin/views/core/advanced/queue/queue-table-view.d.ts +7 -0
  519. package/dist/src/views/admin/views/core/advanced/queue/queue-table-view.d.ts.map +1 -0
  520. package/dist/src/views/admin/views/core/advanced/queue/queue-table-view.js +1 -0
  521. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.d.ts.map +1 -1
  522. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.js +1 -1
  523. package/dist/src/views/admin/views/core/debug/queue/queue-view.d.ts +2 -0
  524. package/dist/src/views/admin/views/core/debug/queue/queue-view.d.ts.map +1 -0
  525. package/dist/src/views/admin/views/core/debug/queue/queue-view.js +1 -0
  526. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.d.ts +1 -1
  527. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.d.ts.map +1 -1
  528. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.js +1 -1
  529. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.d.ts +1 -1
  530. package/dist/src/views/admin/views/core/staff/create/create-staff-permissions-view.d.ts +5 -0
  531. package/dist/src/views/admin/views/core/staff/create/create-staff-permissions-view.d.ts.map +1 -0
  532. package/dist/src/views/admin/views/core/staff/create/create-staff-permissions-view.js +1 -0
  533. package/dist/src/views/admin/views/core/staff/create/form.d.ts +6 -0
  534. package/dist/src/views/admin/views/core/staff/create/form.d.ts.map +1 -0
  535. package/dist/src/views/admin/views/core/staff/create/form.js +1 -0
  536. package/dist/src/views/admin/views/core/staff/create/mutation-api.d.ts +14 -0
  537. package/dist/src/views/admin/views/core/staff/create/mutation-api.d.ts.map +1 -0
  538. package/dist/src/views/admin/views/core/staff/create/mutation-api.js +1 -0
  539. package/dist/src/views/admin/views/core/staff/create/search.action.d.ts +8 -0
  540. package/dist/src/views/admin/views/core/staff/create/search.action.d.ts.map +1 -0
  541. package/dist/src/views/admin/views/core/staff/create/search.action.js +1 -0
  542. package/dist/src/views/admin/views/core/staff/edit/edit-staff-permissions-view.d.ts +8 -0
  543. package/dist/src/views/admin/views/core/staff/edit/edit-staff-permissions-view.d.ts.map +1 -0
  544. package/dist/src/views/admin/views/core/staff/edit/edit-staff-permissions-view.js +1 -0
  545. package/dist/src/views/admin/views/core/staff/edit/form.d.ts +29 -0
  546. package/dist/src/views/admin/views/core/staff/edit/form.d.ts.map +1 -0
  547. package/dist/src/views/admin/views/core/staff/edit/form.js +1 -0
  548. package/dist/src/views/admin/views/core/staff/edit/mutation-api.d.ts +13 -0
  549. package/dist/src/views/admin/views/core/staff/edit/mutation-api.d.ts.map +1 -0
  550. package/dist/src/views/admin/views/core/staff/edit/mutation-api.js +1 -0
  551. package/dist/src/views/admin/views/core/staff/selectable-card.d.ts +11 -0
  552. package/dist/src/views/admin/views/core/staff/selectable-card.d.ts.map +1 -0
  553. package/dist/src/views/admin/views/core/staff/selectable-card.js +1 -0
  554. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.d.ts +11 -0
  555. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.d.ts.map +1 -0
  556. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.js +1 -0
  557. package/dist/src/views/admin/views/core/staff/table/actions/staff-row-actions.d.ts +10 -0
  558. package/dist/src/views/admin/views/core/staff/table/actions/staff-row-actions.d.ts.map +1 -0
  559. package/dist/src/views/admin/views/core/staff/table/actions/staff-row-actions.js +1 -0
  560. package/dist/src/views/admin/views/core/staff/table/staff-table.d.ts +7 -0
  561. package/dist/src/views/admin/views/core/staff/table/staff-table.d.ts.map +1 -0
  562. package/dist/src/views/admin/views/core/staff/table/staff-table.js +1 -0
  563. package/dist/src/views/admin/views/core/staff/table/staff-user-format.d.ts +18 -0
  564. package/dist/src/views/admin/views/core/staff/table/staff-user-format.d.ts.map +1 -0
  565. package/dist/src/views/admin/views/core/staff/table/staff-user-format.js +1 -0
  566. package/dist/src/views/admin/views/core/staff/views/admins/admins-staff-view.d.ts +4 -0
  567. package/dist/src/views/admin/views/core/staff/views/admins/admins-staff-view.d.ts.map +1 -0
  568. package/dist/src/views/admin/views/core/staff/views/admins/admins-staff-view.js +1 -0
  569. package/dist/src/views/admin/views/core/staff/views/moderators/moderators-staff-view.d.ts +4 -0
  570. package/dist/src/views/admin/views/core/staff/views/moderators/moderators-staff-view.d.ts.map +1 -0
  571. package/dist/src/views/admin/views/core/staff/views/moderators/moderators-staff-view.js +1 -0
  572. package/dist/src/views/admin/views/core/system/integrations/integration-card.d.ts +15 -0
  573. package/dist/src/views/admin/views/core/system/integrations/integration-card.d.ts.map +1 -0
  574. package/dist/src/views/admin/views/core/system/integrations/integration-card.js +1 -0
  575. package/dist/src/views/admin/views/core/system/integrations/integrations-view.d.ts +3 -0
  576. package/dist/src/views/admin/views/core/system/integrations/integrations-view.d.ts.map +1 -0
  577. package/dist/src/views/admin/views/core/system/integrations/integrations-view.js +1 -0
  578. package/dist/src/views/admin/views/core/system/integrations/send-test-email/content.d.ts +2 -0
  579. package/dist/src/views/admin/views/core/system/integrations/send-test-email/content.d.ts.map +1 -0
  580. package/dist/src/views/admin/views/core/system/integrations/send-test-email/content.js +1 -0
  581. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.d.ts +12 -0
  582. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.d.ts.map +1 -0
  583. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.js +1 -0
  584. package/dist/src/views/admin/views/core/system/integrations/send-test-email/send-test-email.d.ts +3 -0
  585. package/dist/src/views/admin/views/core/system/integrations/send-test-email/send-test-email.d.ts.map +1 -0
  586. package/dist/src/views/admin/views/core/system/integrations/send-test-email/send-test-email.js +1 -0
  587. package/dist/src/views/admin/views/core/system/integrations/send-test-email/use-form.d.ts +15 -0
  588. package/dist/src/views/admin/views/core/system/integrations/send-test-email/use-form.d.ts.map +1 -0
  589. package/dist/src/views/admin/views/core/system/integrations/send-test-email/use-form.js +1 -0
  590. package/dist/src/views/admin/views/core/users/actions/create/create.d.ts.map +1 -1
  591. package/dist/src/views/admin/views/core/users/actions/create/create.js +1 -1
  592. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.d.ts +1 -1
  593. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.d.ts.map +1 -1
  594. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.js +1 -1
  595. package/dist/src/views/admin/views/core/users/actions/verify-email/verify-email.d.ts +2 -2
  596. package/dist/src/views/admin/views/core/users/actions/verify-email/verify-email.d.ts.map +1 -1
  597. package/dist/src/views/admin/views/core/users/actions/verify-email/verify-email.js +1 -1
  598. package/dist/src/views/admin/views/core/users/actions.d.ts +3 -3
  599. package/dist/src/views/admin/views/core/users/actions.d.ts.map +1 -1
  600. package/dist/src/views/admin/views/core/users/actions.js +1 -1
  601. package/dist/src/views/admin/views/core/users/show/edit-buttons.d.ts +4 -0
  602. package/dist/src/views/admin/views/core/users/show/edit-buttons.d.ts.map +1 -0
  603. package/dist/src/views/admin/views/core/users/show/edit-buttons.js +1 -0
  604. package/dist/src/views/admin/views/core/users/show/edit-field.d.ts +13 -0
  605. package/dist/src/views/admin/views/core/users/show/edit-field.d.ts.map +1 -0
  606. package/dist/src/views/admin/views/core/users/show/edit-field.js +1 -0
  607. package/dist/src/views/admin/views/core/users/show/edit-name-code.d.ts +5 -0
  608. package/dist/src/views/admin/views/core/users/show/edit-name-code.d.ts.map +1 -0
  609. package/dist/src/views/admin/views/core/users/show/edit-name-code.js +1 -0
  610. package/dist/src/views/admin/views/core/users/show/mutation-api.d.ts +19 -0
  611. package/dist/src/views/admin/views/core/users/show/mutation-api.d.ts.map +1 -0
  612. package/dist/src/views/admin/views/core/users/show/mutation-api.js +1 -0
  613. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.d.ts +8 -0
  614. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.d.ts.map +1 -0
  615. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.js +1 -0
  616. package/dist/src/views/admin/views/core/users/show/roles/roles.d.ts +8 -0
  617. package/dist/src/views/admin/views/core/users/show/roles/roles.d.ts.map +1 -0
  618. package/dist/src/views/admin/views/core/users/show/roles/roles.js +1 -0
  619. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.d.ts +10 -0
  620. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.d.ts.map +1 -0
  621. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.js +1 -0
  622. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.d.ts +13 -0
  623. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.d.ts.map +1 -0
  624. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.js +1 -0
  625. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.d.ts +2 -2
  626. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.d.ts.map +1 -1
  627. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.js +1 -1
  628. package/dist/src/views/admin/views/core/users/users-admin-view.d.ts.map +1 -1
  629. package/dist/src/views/admin/views/core/users/users-admin-view.js +1 -1
  630. package/dist/src/views/auth/settings/layout.d.ts +4 -0
  631. package/dist/src/views/auth/settings/layout.d.ts.map +1 -0
  632. package/dist/src/views/auth/settings/layout.js +1 -0
  633. package/dist/src/views/auth/settings/nav.d.ts +2 -0
  634. package/dist/src/views/auth/settings/nav.d.ts.map +1 -0
  635. package/dist/src/views/auth/settings/nav.js +1 -0
  636. package/dist/src/views/auth/settings/overview/overview.d.ts +2 -0
  637. package/dist/src/views/auth/settings/overview/overview.d.ts.map +1 -0
  638. package/dist/src/views/auth/settings/overview/overview.js +1 -0
  639. package/dist/src/views/auth/settings/security/security.d.ts +2 -0
  640. package/dist/src/views/auth/settings/security/security.d.ts.map +1 -0
  641. package/dist/src/views/auth/settings/security/security.js +1 -0
  642. package/dist/src/views/auth/settings/shell.d.ts +4 -0
  643. package/dist/src/views/auth/settings/shell.d.ts.map +1 -0
  644. package/dist/src/views/auth/settings/shell.js +1 -0
  645. package/dist/src/views/auth/sso/callback/client/client.d.ts.map +1 -1
  646. package/dist/src/views/auth/sso/callback/client/client.js +1 -1
  647. package/dist/src/views/breadcrumb/breadcrumb-main.js +1 -1
  648. package/dist/src/views/breadcrumb/breadcrumb-render.js +1 -1
  649. package/dist/src/views/error/global-error-view.js +1 -1
  650. package/dist/src/views/layouts/provider.d.ts.map +1 -1
  651. package/dist/src/views/layouts/provider.js +1 -1
  652. package/dist/src/views/layouts/root-layout.d.ts.map +1 -1
  653. package/dist/src/views/layouts/root-layout.js +1 -1
  654. package/dist/src/views/layouts/theme/header/user/auth/auth.js +1 -1
  655. package/dist/src/views/layouts/theme/header/user/auth/client.d.ts.map +1 -1
  656. package/dist/src/views/layouts/theme/header/user/auth/client.js +1 -1
  657. package/dist/src/vitnode.config.d.ts +7 -3
  658. package/dist/src/vitnode.config.d.ts.map +1 -1
  659. package/dist/src/ws/handle.d.ts.map +1 -1
  660. package/dist/src/ws/handle.js +1 -1
  661. package/dist/src/ws/manager.d.ts.map +1 -1
  662. package/dist/src/ws/manager.js +1 -1
  663. package/dist/src/ws/provider.d.ts.map +1 -1
  664. package/dist/src/ws/provider.js +1 -1
  665. package/dist/src/ws/registry.d.ts +5 -0
  666. package/dist/src/ws/registry.d.ts.map +1 -1
  667. package/dist/src/ws/registry.js +1 -1
  668. package/dist/tsconfig.tsbuildinfo +1 -1
  669. package/dist/vitest.config.d.ts.map +1 -1
  670. package/package.json +24 -26
  671. package/src/locales/en.json +279 -4
  672. package/src/routes/admin/core/advanced/cron/page.tsx +42 -0
  673. package/src/routes/admin/core/advanced/queue/page.tsx +51 -0
  674. package/src/routes/admin/core/debug/page.tsx +67 -0
  675. package/src/routes/admin/core/page.tsx +5 -0
  676. package/src/routes/admin/core/staff/admins/create/page.tsx +17 -0
  677. package/src/routes/admin/core/staff/admins/edit/[id]/page.tsx +23 -0
  678. package/src/routes/admin/core/staff/admins/page.tsx +14 -0
  679. package/src/routes/admin/core/staff/moderators/create/page.tsx +17 -0
  680. package/src/routes/admin/core/staff/moderators/edit/[id]/page.tsx +23 -0
  681. package/src/routes/admin/core/staff/moderators/page.tsx +14 -0
  682. package/src/routes/admin/core/system/integrations/page.tsx +43 -0
  683. package/src/routes/admin/core/test/page.tsx +5 -0
  684. package/src/routes/admin/core/users/[id]/page.tsx +65 -0
  685. package/src/routes/admin/core/users/page.tsx +55 -0
  686. package/src/routes/admin/core/users/roles/page.tsx +46 -0
  687. package/src/routes/blank/test/page.tsx +11 -0
  688. package/src/routes/breadcrumb/admin/[...all]/page.tsx +3 -0
  689. package/src/routes/breadcrumb/admin/core/staff/admins/create/page.tsx +5 -0
  690. package/src/routes/breadcrumb/admin/core/staff/admins/edit/[id]/page.tsx +11 -0
  691. package/src/routes/breadcrumb/admin/core/staff/admins/page.tsx +5 -0
  692. package/src/routes/breadcrumb/admin/core/staff/moderators/create/page.tsx +5 -0
  693. package/src/routes/breadcrumb/admin/core/staff/moderators/edit/[id]/page.tsx +11 -0
  694. package/src/routes/breadcrumb/admin/core/staff/moderators/page.tsx +5 -0
  695. package/src/routes/breadcrumb/admin/core/users/[id]/page.tsx +11 -0
  696. package/src/routes/breadcrumb/admin/default.tsx +4 -0
  697. package/src/routes/breadcrumb/main/[...rest]/page.tsx +3 -0
  698. package/src/routes/breadcrumb/main/default.tsx +4 -0
  699. package/src/routes/breadcrumb/main/page.tsx +6 -0
  700. package/src/routes/breadcrumb/main/settings/overview/page.tsx +17 -0
  701. package/src/routes/breadcrumb/main/settings/page.tsx +14 -0
  702. package/src/routes/breadcrumb/main/settings/security/page.tsx +17 -0
  703. package/src/routes/main/login/page.tsx +22 -0
  704. package/src/routes/main/login/reset-password/page.tsx +27 -0
  705. package/src/routes/main/login/sso/[providerId]/page.tsx +19 -0
  706. package/src/routes/main/register/page.tsx +22 -0
  707. package/src/routes/main/settings/layout.tsx +16 -0
  708. package/src/routes/main/settings/overview/page.tsx +15 -0
  709. package/src/routes/main/settings/page.tsx +15 -0
  710. package/src/routes/main/settings/security/page.tsx +15 -0
  711. package/dist/scripts/get-config.js +0 -66
  712. package/dist/scripts/plugin.js +0 -206
  713. package/dist/scripts/prepare-database.js +0 -177
  714. package/dist/scripts/prepare-plugins-files.js +0 -152
  715. package/dist/scripts/run-interactive-shell-command.js +0 -21
  716. package/dist/scripts/shared/file-utils.js +0 -203
  717. package/dist/src/locales/en.json +0 -372
  718. package/dist/src/routes/admin/core/users/[nameCode]/page.d.ts.map +0 -1
  719. package/dist/src/routes/admin/core/users/[nameCode]/page.js +0 -1
  720. package/dist/src/routes/breadcrumb/admin/core/users/[nameCode]/page.d.ts.map +0 -1
  721. package/dist/src/routes/breadcrumb/main/login/page.d.ts.map +0 -1
  722. package/dist/src/routes/breadcrumb/main/login/page.js +0 -1
  723. package/dist/src/routes/breadcrumb/main/login/reset-password/page.d.ts.map +0 -1
  724. package/dist/src/routes/breadcrumb/main/login/reset-password/page.js +0 -1
  725. package/dist/src/routes/breadcrumb/main/register/page.d.ts.map +0 -1
  726. package/dist/tsup.config.js +0 -17
  727. package/dist/vitest.config.js +0 -48
  728. /package/dist/src/routes/breadcrumb/main/{login → settings/overview}/page.d.ts +0 -0
  729. /package/dist/src/routes/breadcrumb/main/{login/reset-password → settings}/page.d.ts +0 -0
  730. /package/dist/src/routes/breadcrumb/main/{register → settings/security}/page.d.ts +0 -0
@@ -0,0 +1,5 @@
1
+ export declare const generateMetadata: () => Promise<{
2
+ title: string;
3
+ }>;
4
+ export default function Page(): import("react").JSX.Element;
5
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/main/settings/overview/page.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;EAM5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,gCAE3B"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{OverviewSettings}from"../../../../views/auth/settings/overview/overview.js";export const generateMetadata=async()=>{const t=await getTranslations("core.auth.settings");return{title:`${t("nav.overview")} - ${t("title")}`}};export default function Page(){return _jsx(OverviewSettings,{})}
@@ -0,0 +1,5 @@
1
+ export declare const generateMetadata: () => Promise<{
2
+ title: string;
3
+ }>;
4
+ export default function Page(): import("react").JSX.Element;
5
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../src/routes/main/settings/page.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;EAM5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,gCAE3B"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{OverviewSettings}from"../../../views/auth/settings/overview/overview.js";export const generateMetadata=async()=>{const t=await getTranslations("core.auth.settings");return{title:`${t("nav.overview")} - ${t("title")}`}};export default function Page(){return _jsx(OverviewSettings,{})}
@@ -0,0 +1,5 @@
1
+ export declare const generateMetadata: () => Promise<{
2
+ title: string;
3
+ }>;
4
+ export default function Page(): import("react").JSX.Element;
5
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/main/settings/security/page.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;EAM5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,gCAE3B"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{SecuritySettings}from"../../../../views/auth/settings/security/security.js";export const generateMetadata=async()=>{const t=await getTranslations("core.auth.settings");return{title:`${t("nav.security")} - ${t("title")}`}};export default function Page(){return _jsx(SecuritySettings,{})}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-layout.d.ts","sourceRoot":"","sources":["../../../../../src/views/admin/layouts/admin-layout.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAO7D,MAAM,WAAW,gBAAgB;IAE/B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,GAAU,0CAI/B,gBAAgB,GAAG;IACpB,aAAa,EAAE,aAAa,CAAC;CAC9B,gDAmCA,CAAC"}
1
+ {"version":3,"file":"admin-layout.d.ts","sourceRoot":"","sources":["../../../../../src/views/admin/layouts/admin-layout.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAO7D,MAAM,WAAW,gBAAgB;IAE/B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,GAAU,0CAI/B,gBAAgB,GAAG;IACpB,aAAa,EAAE,aAAa,CAAC;CAC9B,gDAqCA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{cookies}from"next/headers";import{ThemeSwitcher}from"../../../components/switchers/themes/theme-switcher.js";import{Separator}from"../../../components/ui/separator.js";import{SidebarInset,SidebarProvider,SidebarTrigger}from"../../../components/ui/sidebar.js";import{getSessionAdminApi}from"../../../lib/api/get-session-admin-api.js";import{I18nProvider}from"../../../components/i18n-provider.js";import{LanguageSwitcher}from"../../../components/switchers/langs/language-switcher.js";import{SidebarAdmin}from"./sidebar/sidebar.js";import{UserBarAdmin}from"./user-bar/user-bar.js";export const AdminLayout=async({children,breadcrumb,vitNodeConfig})=>{const session=await getSessionAdminApi();const cookieStore=await cookies();const defaultOpen=!cookieStore.get("vitnode_admin_sidebar_state")||cookieStore.get("vitnode_admin_sidebar_state")?.value==="true";if(!session)return null;return _jsx(I18nProvider,{namespaces:["admin.global"],children:_jsxs(SidebarProvider,{defaultOpen:defaultOpen,children:[_jsx(SidebarAdmin,{vitNodeConfig:vitNodeConfig}),_jsxs(SidebarInset,{children:[_jsxs("header",{className:"flex h-16 shrink-0 items-center gap-2 border-b px-4",children:[_jsx(SidebarTrigger,{className:"-ml-1"}),breadcrumb!=null&&_jsxs(_Fragment,{children:[_jsx(Separator,{className:"mr-1 h-4",orientation:"vertical"}),breadcrumb]}),_jsxs("div",{className:"ml-auto flex items-center justify-center gap-2 px-2",children:[vitNodeConfig.i18n.locales.length>1&&_jsx(LanguageSwitcher,{locales:vitNodeConfig.i18n.locales}),_jsx(ThemeSwitcher,{}),_jsx(UserBarAdmin,{user:session.user})]})]}),children]})]})})};
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{cookies}from"next/headers";import{AdminStaffPermissionProvider}from"../../../components/staff-permission/provider.js";import{ThemeSwitcher}from"../../../components/switchers/themes/theme-switcher.js";import{Separator}from"../../../components/ui/separator.js";import{SidebarInset,SidebarProvider,SidebarTrigger}from"../../../components/ui/sidebar.js";import{getSessionAdminApi}from"../../../lib/api/get-session-admin-api.js";import{I18nProvider}from"../../../components/i18n-provider.js";import{LanguageSwitcher}from"../../../components/switchers/langs/language-switcher.js";import{SidebarAdmin}from"./sidebar/sidebar.js";import{UserBarAdmin}from"./user-bar/user-bar.js";export const AdminLayout=async({children,breadcrumb,vitNodeConfig})=>{const session=await getSessionAdminApi();const cookieStore=await cookies();const defaultOpen=!cookieStore.get("vitnode_admin_sidebar_state")||cookieStore.get("vitnode_admin_sidebar_state")?.value==="true";if(!session)return null;return _jsx(I18nProvider,{namespaces:["admin.global"],children:_jsx(AdminStaffPermissionProvider,{value:session.permissions,children:_jsxs(SidebarProvider,{defaultOpen:defaultOpen,children:[_jsx(SidebarAdmin,{vitNodeConfig:vitNodeConfig}),_jsxs(SidebarInset,{children:[_jsxs("header",{className:"flex h-16 shrink-0 items-center gap-2 border-b px-4",children:[_jsx(SidebarTrigger,{className:"-ml-1"}),breadcrumb!=null&&_jsxs(_Fragment,{children:[_jsx(Separator,{className:"mr-1 h-4",orientation:"vertical"}),breadcrumb]}),_jsxs("div",{className:"ml-auto flex items-center justify-center gap-2 px-2",children:[vitNodeConfig.i18n.locales.length>1&&_jsx(LanguageSwitcher,{locales:vitNodeConfig.i18n.locales}),_jsx(ThemeSwitcher,{}),_jsx(UserBarAdmin,{user:session.user})]})]}),children]})]})})})};
@@ -0,0 +1,6 @@
1
+ import type { VitNodeConfig } from "../../../../vitnode.config";
2
+ export declare const BreadcrumbStaffAdmin: ({ tab, vitNodeConfig, }: {
3
+ tab: "admins" | "moderators";
4
+ vitNodeConfig?: VitNodeConfig;
5
+ }) => Promise<import("react").JSX.Element>;
6
+ //# sourceMappingURL=breadcrumb-staff-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-staff-admin.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/breadcrumb-staff-admin.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,eAAO,MAAM,oBAAoB,GAAU,yBAGxC;IACD,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,yCAaA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{BreadcrumbAdmin}from"./breadcrumb-admin.js";export const BreadcrumbStaffAdmin=async({tab,vitNodeConfig})=>{const t=await getTranslations("admin.staff");return _jsx(BreadcrumbAdmin,{labels:{"/admin/core/staff":t("title"),[`/admin/core/staff/${tab}`]:t(`tabs.${tab}`)},segments:["core","staff",tab],vitNodeConfig:vitNodeConfig})};
@@ -0,0 +1,5 @@
1
+ import type { PermissionStaffType } from "../../../../api/lib/permission-staff";
2
+ export declare const BreadcrumbStaffCreateAdmin: ({ type, }: {
3
+ type: PermissionStaffType;
4
+ }) => Promise<import("react").JSX.Element>;
5
+ //# sourceMappingURL=breadcrumb-staff-create-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-staff-create-admin.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/breadcrumb-staff-create-admin.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE,eAAO,MAAM,0BAA0B,GAAU,WAE9C;IACD,IAAI,EAAE,mBAAmB,CAAC;CAC3B,yCAiBA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{BreadcrumbAdmin}from"./breadcrumb-admin.js";export const BreadcrumbStaffCreateAdmin=async({type})=>{const[t,tCreate]=await Promise.all([getTranslations("admin.staff"),getTranslations("admin.staff.create")]);const tab=type==="admin"?"admins":"moderators";return _jsx(BreadcrumbAdmin,{labels:{"/admin/core/staff":t("title"),[`/admin/core/staff/${tab}`]:t(`tabs.${tab}`)},overrideLastLabel:tCreate("button"),segments:["core","staff",tab,"create"]})};
@@ -0,0 +1,6 @@
1
+ import type { PermissionStaffType } from "../../../../api/lib/permission-staff";
2
+ export declare const BreadcrumbStaffEditAdmin: ({ type, id, }: {
3
+ id: string;
4
+ type: PermissionStaffType;
5
+ }) => Promise<import("react").JSX.Element>;
6
+ //# sourceMappingURL=breadcrumb-staff-edit-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-staff-edit-admin.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/breadcrumb-staff-edit-admin.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE,eAAO,MAAM,wBAAwB,GAAU,eAG5C;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;CAC3B,yCAcA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{BreadcrumbAdmin}from"./breadcrumb-admin.js";export const BreadcrumbStaffEditAdmin=async({type,id})=>{const t=await getTranslations("admin.staff");const tab=type==="admin"?"admins":"moderators";return _jsx(BreadcrumbAdmin,{labels:{"/admin/core/staff":t("title"),[`/admin/core/staff/${tab}`]:t(`tabs.${tab}`)},overrideLastLabel:t("edit.title"),segments:["core","staff",tab,id]})};
@@ -1,6 +1,6 @@
1
1
  import type { VitNodeConfig } from "../../../../vitnode.config";
2
- export declare const BreadcrumbUserAdmin: ({ nameCode, vitNodeConfig, }: {
3
- nameCode: string;
2
+ export declare const BreadcrumbUserAdmin: ({ id, vitNodeConfig, }: {
3
+ id: string;
4
4
  vitNodeConfig?: VitNodeConfig;
5
5
  }) => Promise<import("react").JSX.Element>;
6
6
  //# sourceMappingURL=breadcrumb-user-admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-user-admin.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/breadcrumb-user-admin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AActD,eAAO,MAAM,mBAAmB,GAAU,8BAGvC;IACD,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,yCAiCA,CAAC"}
1
+ {"version":3,"file":"breadcrumb-user-admin.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/breadcrumb-user-admin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AActD,eAAO,MAAM,mBAAmB,GAAU,wBAGvC;IACD,EAAE,EAAE,MAAM,CAAC;IAEX,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,yCAiCA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{adminModule}from"../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../lib/fetcher.js";import{getAdminNav}from"../sidebar/nav/get-admin-nav.js";import{BreadcrumbAdmin}from"./breadcrumb-admin.js";import{resolveBreadcrumb}from"./resolve-breadcrumb.js";export const BreadcrumbUserAdmin=async({nameCode,vitNodeConfig})=>{const segments=["core","users",nameCode];const nav=await getAdminNav({vitNodeConfig});const isKnownRoute=resolveBreadcrumb(nav,segments).at(-1)?.isKnown??false;let overrideLastLabel;if(!isKnownRoute){const res=await fetcher(adminModule,{path:"/{nameCode}",method:"get",module:"admin/users",args:{params:{nameCode}}});if(res.ok){overrideLastLabel=(await res.json()).name}}return _jsx(BreadcrumbAdmin,{nav:nav,overrideLastLabel:overrideLastLabel,segments:segments,vitNodeConfig:vitNodeConfig})};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{adminModule}from"../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../lib/fetcher.js";import{getAdminNav}from"../sidebar/nav/get-admin-nav.js";import{BreadcrumbAdmin}from"./breadcrumb-admin.js";import{resolveBreadcrumb}from"./resolve-breadcrumb.js";export const BreadcrumbUserAdmin=async({id,vitNodeConfig})=>{const segments=["core","users",id];const nav=await getAdminNav({vitNodeConfig});const isKnownRoute=resolveBreadcrumb(nav,segments).at(-1)?.isKnown??false;let overrideLastLabel;if(!isKnownRoute){const res=await fetcher(adminModule,{path:"/{id}",method:"get",module:"admin/users",args:{params:{id}}});if(res.ok){overrideLastLabel=(await res.json()).name}}return _jsx(BreadcrumbAdmin,{nav:nav,overrideLastLabel:overrideLastLabel,segments:segments,vitNodeConfig:vitNodeConfig})};
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-breadcrumb.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/resolve-breadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,YAAY,EAAE,eAAe,EAAE,CAAC;AAsChC,eAAO,MAAM,iBAAiB,GAC5B,KAAK,cAAc,EAAE,EACrB,UAAU,MAAM,EAAE,KACjB,eAAe,EAgBjB,CAAC"}
1
+ {"version":3,"file":"resolve-breadcrumb.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/breadcrumb/resolve-breadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,YAAY,EAAE,eAAe,EAAE,CAAC;AA6BhC,eAAO,MAAM,iBAAiB,GAC5B,KAAK,cAAc,EAAE,EACrB,UAAU,MAAM,EAAE,KACjB,eAAe,EAgBjB,CAAC"}
@@ -1 +1 @@
1
- import{humanize}from"../../../breadcrumb/crumb.js";const normalizeUrl=url=>url.endsWith("/")&&url.length>1?url.slice(0,-1):url;const flattenNav=nav=>{const labels=new Map;const setIfAbsent=(href,title)=>{if(href==null)return;const key=normalizeUrl(href);if(!labels.has(key))labels.set(key,title)};for(const parent of nav){for(const item of parent.items){setIfAbsent(item.href,item.title);for(const subItem of item.items??[]){setIfAbsent(subItem.href,subItem.title)}}}return labels};export const resolveBreadcrumb=(nav,segments)=>{const labels=flattenNav(nav);return segments.map((segment,index)=>{const href=`/admin/${segments.slice(0,index+1).join("/")}`;const known=labels.get(normalizeUrl(href));const isCurrent=index===segments.length-1;return{href,isCurrent,isKnown:known!==undefined,isLink:known!==undefined&&!isCurrent,label:known??humanize(segment)}})};
1
+ import{humanize}from"../../../breadcrumb/crumb.js";const normalizeUrl=url=>url.endsWith("/")&&url.length>1?url.slice(0,-1):url;const flattenNav=nav=>{const labels=new Map;const setIfAbsent=(href,title)=>{if(href==null)return;const key=normalizeUrl(href);if(!labels.has(key))labels.set(key,title)};for(const parent of nav){setIfAbsent(`/admin/${parent.id}`,parent.title);for(const item of parent.items){setIfAbsent(item.href,item.title);for(const subItem of item.items??[]){setIfAbsent(subItem.href,subItem.title)}}}return labels};export const resolveBreadcrumb=(nav,segments)=>{const labels=flattenNav(nav);return segments.map((segment,index)=>{const href=`/admin/${segments.slice(0,index+1).join("/")}`;const known=labels.get(normalizeUrl(href));const isCurrent=index===segments.length-1;return{href,isCurrent,isKnown:known!==undefined,isLink:known!==undefined&&!isCurrent,label:known??humanize(segment)}})};
@@ -1 +1 @@
1
- {"version":3,"file":"get-admin-nav.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/layouts/sidebar/nav/get-admin-nav.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,EAAE,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAWD,eAAO,MAAM,WAAW,GAAU,qBAE/B;IACD,aAAa,CAAC,EAAE,aAAa,CAAC;CAC1B,KAAG,OAAO,CAAC,cAAc,EAAE,CAqEhC,CAAC"}
1
+ {"version":3,"file":"get-admin-nav.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/layouts/sidebar/nav/get-admin-nav.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,EAAE,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAoED,eAAO,MAAM,WAAW,GAAU,qBAE/B;IACD,aAAa,CAAC,EAAE,aAAa,CAAC;CAC1B,KAAG,OAAO,CAAC,cAAc,EAAE,CAgJhC,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{LayoutDashboardIcon,UsersRoundIcon,WrenchIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{getVitNodeConfig}from"../../../../../vitnode.config.js";export const getAdminNav=async({vitNodeConfig=getVitNodeConfig()}={})=>{const t=await getTranslations();const core={id:"core",title:t("admin.global.nav.core"),items:[{href:"/admin/core/",icon:_jsx(LayoutDashboardIcon,{}),title:t("admin.global.nav.dashboard")},{title:"test",icon:_jsx(LayoutDashboardIcon,{}),href:"/admin/core/test"},{href:"/admin/core/users",title:t("admin.global.nav.users.title"),icon:_jsx(UsersRoundIcon,{}),items:[{title:t("admin.global.nav.users.list"),href:"/admin/core/users"},{title:t("admin.global.nav.users.roles"),href:"/admin/core/users/roles"}]},{href:"/admin/core/advanced",title:t("admin.global.nav.advanced.title"),icon:_jsx(WrenchIcon,{}),items:[{title:t("admin.global.nav.advanced.cron"),href:"/admin/core/advanced/cron"}]}]};const pluginNav=vitNodeConfig.plugins.filter(plugin=>plugin.admin?.nav).map(plugin=>({id:plugin.pluginId,title:t(`${plugin.pluginId}.title`),items:(plugin.admin?.nav??[]).map(item=>({...item,title:t(`${plugin.pluginId}.admin.nav.${item.id}`),items:item.items?.map(subItem=>({...subItem,title:t(`${plugin.pluginId}.admin.nav.${item.id}.${subItem.id}`)}))??[]}))}));return[core,...pluginNav]};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{LayoutDashboardIcon,ServerIcon,ShieldUserIcon,UsersRoundIcon,WrenchIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{hasStaffPermission}from"../../../../../api/lib/staff-permission.js";import{CONFIG_PLUGIN}from"../../../../../config.js";import{getSessionAdminApi}from"../../../../../lib/api/get-session-admin-api.js";import{getVitNodeConfig}from"../../../../../vitnode.config.js";const isAllowed=(permission,set)=>!permission||hasStaffPermission(set,permission);const filterNavItems=(items,set)=>{const result=[];for(const item of items){if(!isAllowed(item.permission,set))continue;if(item.items&&item.items.length>0){const visibleSubItems=item.items.filter(subItem=>isAllowed(subItem.permission,set));if(visibleSubItems.length===0)continue;result.push({href:item.href,icon:item.icon,isOpenInNewTab:item.isOpenInNewTab,title:item.title,items:visibleSubItems.map(subItem=>({href:subItem.href,isOpenInNewTab:subItem.isOpenInNewTab,title:subItem.title}))})}else{result.push({href:item.href,icon:item.icon,isOpenInNewTab:item.isOpenInNewTab,title:item.title})}}return result};export const getAdminNav=async({vitNodeConfig=getVitNodeConfig()}={})=>{const t=await getTranslations();const session=await getSessionAdminApi();const permissions=session?.permissions??{root:false,permissions:[]};const core={id:"core",title:t("admin.global.nav.core"),items:[{href:"/admin/core/",icon:_jsx(LayoutDashboardIcon,{}),title:t("admin.global.nav.dashboard")},{title:"test",icon:_jsx(LayoutDashboardIcon,{}),href:"/admin/core/test"},{href:"/admin/core/users",title:t("admin.global.nav.users.title"),icon:_jsx(UsersRoundIcon,{}),items:[{title:t("admin.global.nav.users.list"),href:"/admin/core/users",permission:{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_view"}},{title:t("admin.global.nav.users.roles"),href:"/admin/core/users/roles"}]},{href:"/admin/core/staff",title:t("admin.global.nav.staff.title"),icon:_jsx(ShieldUserIcon,{}),items:[{title:t("admin.global.nav.staff.moderators"),href:"/admin/core/staff/moderators",permission:{plugin:CONFIG_PLUGIN.pluginId,module:"staff_moderators",permission:"can_view"}},{title:t("admin.global.nav.staff.admins"),href:"/admin/core/staff/admins",permission:{plugin:CONFIG_PLUGIN.pluginId,module:"staff_admins",permission:"can_view"}}]},{href:"/admin/core/system",title:t("admin.global.nav.system.title"),icon:_jsx(ServerIcon,{}),items:[{title:t("admin.global.nav.system.integrations"),href:"/admin/core/system/integrations",permission:{plugin:CONFIG_PLUGIN.pluginId,module:"system",permission:"can_view"}}]},{href:"/admin/core/advanced",title:t("admin.global.nav.advanced.title"),icon:_jsx(WrenchIcon,{}),items:[{title:t("admin.global.nav.advanced.cron"),href:"/admin/core/advanced/cron"},{title:t("admin.global.nav.advanced.queue"),href:"/admin/core/advanced/queue",permission:{plugin:CONFIG_PLUGIN.pluginId,module:"queue",permission:"can_view"}}]}]};const pluginNav=vitNodeConfig.plugins.filter(plugin=>plugin.admin?.nav).map(plugin=>({id:plugin.pluginId,title:t(`${plugin.pluginId}.title`),items:(plugin.admin?.nav??[]).map(item=>({href:item.href,icon:item.icon,isOpenInNewTab:item.isOpenInNewTab,title:t(`${plugin.pluginId}.admin.nav.${item.id}`),permission:item.permission?{plugin:plugin.pluginId,...item.permission}:undefined,items:item.items?.map(subItem=>({href:subItem.href,isOpenInNewTab:subItem.isOpenInNewTab,title:t(`${plugin.pluginId}.admin.nav.${item.id}.${subItem.id}`),permission:subItem.permission?{plugin:plugin.pluginId,...subItem.permission}:undefined}))??[]}))}));return[core,...pluginNav].map(group=>({id:group.id,title:group.title,items:filterNavItems(group.items,permissions)})).filter(group=>group.items.length>0)};
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/layouts/sidebar/nav/item.tsx"],"names":[],"mappings":"AAqBA,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,GAAI,+CAM1B,iBAAiB,GAAG;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3C,gCAsGA,CAAC"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/layouts/sidebar/nav/item.tsx"],"names":[],"mappings":"AAsBA,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,GAAI,+CAM1B,iBAAiB,GAAG;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3C,gCA4IA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ChevronRight,MenuIcon}from"lucide-react";import{Collapsible,CollapsibleContent,CollapsibleTrigger}from"../../../../../components/ui/collapsible.js";import{SidebarMenuButton,SidebarMenuItem,SidebarMenuSub,SidebarMenuSubButton,SidebarMenuSubItem,useSidebar}from"../../../../../components/ui/sidebar.js";import{useIsMobile}from"../../../../../hooks/use-mobile.js";import{Link,usePathname}from"../../../../../lib/navigation.js";import{cn}from"../../../../../lib/utils.js";export const ItemNavAdmin=({href,title,icon,items=[],isOpenInNewTab})=>{const{toggleSidebar}=useSidebar();const isMobile=useIsMobile();const pathname=usePathname();const normalizeUrl=url=>{return url.endsWith("/")&&url.length>1?url.slice(0,-1):url};const isActive=normalizeUrl(pathname)===normalizeUrl(href);const hasActiveChild=items.some(item=>normalizeUrl(pathname)===normalizeUrl(item.href));const defaultOpen=hasActiveChild;const content=_jsxs(_Fragment,{children:[icon??_jsx(MenuIcon,{}),_jsx("span",{children:title})]});if(!items.length){return _jsx(SidebarMenuItem,{children:_jsx(SidebarMenuButton,{asChild:true,isActive:isActive,tooltip:title,children:_jsx(Link,{href:href,onClick:()=>{if(isMobile){toggleSidebar()}},rel:isOpenInNewTab?"noopener noreferrer":undefined,target:isOpenInNewTab?"_blank":undefined,children:content})})})}return _jsx(Collapsible,{asChild:true,className:"group/collapsible",defaultOpen:defaultOpen,children:_jsxs(SidebarMenuItem,{children:[_jsx(CollapsibleTrigger,{asChild:true,children:_jsxs(SidebarMenuButton,{isActive:isActive||hasActiveChild,tooltip:title,children:[content,_jsx(ChevronRight,{className:"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"})]})}),_jsx(CollapsibleContent,{className:cn("text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 outline-none"),children:_jsx(SidebarMenuSub,{children:items.map(item=>{const isChildActive=normalizeUrl(pathname)===normalizeUrl(item.href);return _jsx(SidebarMenuSubItem,{children:_jsx(SidebarMenuSubButton,{asChild:true,isActive:isChildActive,children:_jsx(Link,{href:item.href,onClick:()=>{if(isMobile){toggleSidebar()}},rel:item.isOpenInNewTab?"noopener noreferrer":undefined,target:item.isOpenInNewTab?"_blank":undefined,children:item.title})})},item.href)})})})]})})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ChevronRight,MenuIcon}from"lucide-react";import{useEffect,useState}from"react";import{Collapsible,CollapsibleContent,CollapsibleTrigger}from"../../../../../components/ui/collapsible.js";import{SidebarMenuButton,SidebarMenuItem,SidebarMenuSub,SidebarMenuSubButton,SidebarMenuSubItem,useSidebar}from"../../../../../components/ui/sidebar.js";import{useIsMobile}from"../../../../../hooks/use-mobile.js";import{Link,usePathname}from"../../../../../lib/navigation.js";import{cn}from"../../../../../lib/utils.js";export const ItemNavAdmin=({href,title,icon,items=[],isOpenInNewTab})=>{const{toggleSidebar}=useSidebar();const isMobile=useIsMobile();const pathname=usePathname();const normalizeUrl=url=>{return url.endsWith("/")&&url.length>1?url.slice(0,-1):url};const isPathnameUnderHref=candidate=>{const normalizedPathname=normalizeUrl(pathname);const normalizedHref=normalizeUrl(candidate);return normalizedPathname===normalizedHref||normalizedPathname.startsWith(`${normalizedHref}/`)};const isActive=normalizeUrl(pathname)===normalizeUrl(href);const activeChildHref=items.reduce((best,item)=>{if(!isPathnameUnderHref(item.href))return best;if(best===null)return item.href;return normalizeUrl(item.href).length>normalizeUrl(best).length?item.href:best},null);const hasActiveChild=activeChildHref!==null;const[open,setOpen]=useState(hasActiveChild);useEffect(()=>{if(hasActiveChild){setOpen(true)}},[hasActiveChild]);const content=_jsxs(_Fragment,{children:[icon??_jsx(MenuIcon,{}),_jsx("span",{children:title})]});if(!items.length){return _jsx(SidebarMenuItem,{children:_jsx(SidebarMenuButton,{isActive:isActive,render:_jsx(Link,{href:href,onClick:()=>{if(isMobile){toggleSidebar()}},rel:isOpenInNewTab?"noopener noreferrer":undefined,target:isOpenInNewTab?"_blank":undefined}),tooltip:title,children:content})})}return _jsxs(Collapsible,{onOpenChange:setOpen,open:open,render:_jsx(SidebarMenuItem,{}),children:[_jsxs(CollapsibleTrigger,{className:"group/collapsible",render:_jsx(SidebarMenuButton,{isActive:isActive||hasActiveChild,tooltip:title}),children:[content,_jsx(ChevronRight,{className:"ml-auto transition-transform duration-200 group-data-panel-open/collapsible:rotate-90"})]}),_jsx(CollapsibleContent,{className:cn("text-popover-foreground h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-out outline-none data-ending-style:h-0 data-starting-style:h-0"),children:_jsx(SidebarMenuSub,{children:items.map(item=>{const isChildActive=item.href===activeChildHref;return _jsx(SidebarMenuSubItem,{children:_jsx(SidebarMenuSubButton,{isActive:isChildActive,render:_jsx(Link,{href:item.href,onClick:()=>{if(isMobile){toggleSidebar()}},rel:item.isOpenInNewTab?"noopener noreferrer":undefined,target:item.isOpenInNewTab?"_blank":undefined}),children:item.title})},item.href)})})})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/user-bar/client.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,GAAI,WAEhC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,gCAsCA,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/layouts/user-bar/client.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,kBAAkB,GAAI,WAEhC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,gCAyCA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{BugIcon,HomeIcon,LogOut}from"lucide-react";import{useTranslations}from"next-intl";import{DropdownMenuGroup,DropdownMenuItem,DropdownMenuLabel,DropdownMenuSeparator}from"../../../../components/ui/dropdown-menu.js";import{Link}from"../../../../lib/navigation.js";import{logOutMutationApi}from"../../../layouts/theme/header/user/auth/log-out-mutation-api.js";export const ClientUserBarAdmin=({user})=>{const t=useTranslations("admin.global.nav.user_bar");return _jsxs(_Fragment,{children:[_jsx(DropdownMenuLabel,{className:"p-0 font-normal",children:_jsxs("div",{className:"flex flex-col px-2 py-2 text-left",children:[_jsx("span",{className:"font-medium",children:user.name}),_jsx("span",{className:"text-muted-foreground text-xs",children:user.email})]})}),_jsx(DropdownMenuSeparator,{}),_jsxs(DropdownMenuGroup,{children:[_jsx(DropdownMenuItem,{asChild:true,children:_jsxs(Link,{href:"/",target:"_blank",children:[_jsx(HomeIcon,{}),t("home_page")]})}),_jsx(DropdownMenuItem,{asChild:true,children:_jsxs(Link,{href:"/admin/core/debug",children:[_jsx(BugIcon,{}),t("debug")]})})]}),_jsx(DropdownMenuSeparator,{}),_jsxs(DropdownMenuItem,{className:"text-destructive focus:text-destructive",onClick:async()=>{await logOutMutationApi({isAdmin:true})},children:[_jsx(LogOut,{}),t("log_out")]})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{BugIcon,HomeIcon,LogOut}from"lucide-react";import{useTranslations}from"next-intl";import{useAdminStaffPermission}from"../../../../components/staff-permission/provider.js";import{DropdownMenuGroup,DropdownMenuItem,DropdownMenuLabel,DropdownMenuSeparator}from"../../../../components/ui/dropdown-menu.js";import{CONFIG_PLUGIN}from"../../../../config.js";import{Link}from"../../../../lib/navigation.js";import{logOutMutationApi}from"../../../layouts/theme/header/user/auth/log-out-mutation-api.js";export const ClientUserBarAdmin=({user})=>{const t=useTranslations("admin.global.nav.user_bar");const canViewDebug=useAdminStaffPermission({plugin:CONFIG_PLUGIN.pluginId,module:"debug",permission:"can_view"});return _jsxs(_Fragment,{children:[_jsx(DropdownMenuLabel,{className:"p-0 font-normal",children:_jsxs("div",{className:"flex flex-col px-2 py-2 text-left",children:[_jsx("span",{className:"font-medium",children:user.name}),_jsx("span",{className:"text-muted-foreground text-xs",children:user.email})]})}),_jsx(DropdownMenuSeparator,{}),_jsxs(DropdownMenuGroup,{children:[_jsxs(DropdownMenuItem,{render:_jsx(Link,{href:"/",target:"_blank"}),children:[_jsx(HomeIcon,{}),t("home_page")]}),canViewDebug&&_jsxs(DropdownMenuItem,{render:_jsx(Link,{href:"/admin/core/debug"}),children:[_jsx(BugIcon,{}),t("debug")]})]}),_jsx(DropdownMenuSeparator,{}),_jsxs(DropdownMenuItem,{className:"text-destructive data-highlighted:text-destructive",onClick:async()=>{await logOutMutationApi({isAdmin:true})},children:[_jsx(LogOut,{}),t("log_out")]})]})};
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Avatar}from"../../../../components/avatar.js";import{Button}from"../../../../components/ui/button.js";import{DropdownMenu,DropdownMenuContent,DropdownMenuTrigger}from"../../../../components/ui/dropdown-menu.js";import{ClientUserBarAdmin}from"./client.js";export const UserBarAdmin=({user})=>{return _jsxs(DropdownMenu,{children:[_jsx(DropdownMenuTrigger,{asChild:true,children:_jsx(Button,{"aria-label":user.name,size:"icon",variant:"ghost",children:_jsx(Avatar,{size:24,user:user})})}),_jsx(DropdownMenuContent,{className:"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",side:"bottom",sideOffset:4,children:_jsx(ClientUserBarAdmin,{user:user})})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Avatar}from"../../../../components/avatar.js";import{Button}from"../../../../components/ui/button.js";import{DropdownMenu,DropdownMenuContent,DropdownMenuTrigger}from"../../../../components/ui/dropdown-menu.js";import{ClientUserBarAdmin}from"./client.js";export const UserBarAdmin=({user})=>{return _jsxs(DropdownMenu,{children:[_jsx(DropdownMenuTrigger,{render:_jsx(Button,{"aria-label":user.name,size:"icon",variant:"ghost"}),children:_jsx(Avatar,{size:24,user:user})}),_jsx(DropdownMenuContent,{className:"w-(--anchor-width) min-w-56 rounded-lg",side:"bottom",sideOffset:4,children:_jsx(ClientUserBarAdmin,{user:user})})]})};
@@ -0,0 +1,5 @@
1
+ export type QueueTaskStatus = "completed" | "failed" | "pending" | "processing";
2
+ export declare const QueueStatusBadge: ({ status }: {
3
+ status: QueueTaskStatus;
4
+ }) => import("react").JSX.Element;
5
+ //# sourceMappingURL=status-badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-badge.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/advanced/queue/badges/status-badge.tsx"],"names":[],"mappings":"AAUA,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAEhF,eAAO,MAAM,gBAAgB,GAAI,YAAY;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,gCAgCvE,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CircleCheckIcon,CircleXIcon,ClockIcon,LoaderIcon}from"lucide-react";import{useTranslations}from"next-intl";import{Badge}from"../../../../../../../components/ui/badge.js";export const QueueStatusBadge=({status})=>{const t=useTranslations("admin.advanced.queue.status");if(status==="processing"){return _jsxs(Badge,{className:"border-blue-500/50 bg-blue-500/10 text-blue-700 dark:text-blue-400",children:[_jsx(LoaderIcon,{className:"animate-spin"})," ",t("processing")]})}if(status==="completed"){return _jsxs(Badge,{className:"border-green-500/50 bg-green-500/10 text-green-700 dark:text-green-400",children:[_jsx(CircleCheckIcon,{})," ",t("completed")]})}if(status==="failed"){return _jsxs(Badge,{className:"border-destructive/50 bg-destructive/10 text-destructive",children:[_jsx(CircleXIcon,{})," ",t("failed")]})}return _jsxs(Badge,{variant:"secondary",children:[_jsx(ClockIcon,{})," ",t("pending")]})};
@@ -0,0 +1,7 @@
1
+ import { type SearchParamsDataTable } from "../../../../../../components/table/data-table";
2
+ export declare const QueueTableView: ({ searchParams, }: {
3
+ searchParams: Promise<SearchParamsDataTable & {
4
+ status?: string;
5
+ }>;
6
+ }) => Promise<import("react").JSX.Element>;
7
+ //# sourceMappingURL=queue-table-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-table-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/advanced/queue/queue-table-view.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAYvC,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,qBAAqB,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE,yCAuFA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{queueAdminModule}from"../../../../../../api/modules/admin/advanced/queue/queue.admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{QueueStatusBadge}from"./badges/status-badge.js";const QUEUE_STATUSES=["pending","processing","completed","failed"];export const QueueTableView=async({searchParams})=>{const query=await searchParams;const res=await fetcher(queueAdminModule,{path:"/",method:"get",module:"queue",prefixPath:"/admin/advanced",args:{query},withPagination:true});const[data,t]=await Promise.all([res.json(),getTranslations("admin.advanced.queue")]);return _jsx(DataTable,{columns:[{id:"name",label:t("list.name"),cell:({row})=>_jsxs("div",{className:"flex max-w-sm flex-col",children:[_jsx("span",{children:row.name}),_jsx("p",{className:"text-muted-foreground text-sm",children:row.pluginId})]})},{id:"queue",label:t("list.queue")},{id:"status",label:t("list.status"),cell:({row})=>_jsx(QueueStatusBadge,{status:row.status})},{id:"attempts",label:t("list.attempts"),cell:({row})=>`${row.attempts}/${row.maxAttempts}`},{id:"availableAt",label:t("list.availableAt"),cell:({row})=>_jsx(DateFormat,{date:row.availableAt,showFullDate:true})},{id:"createdAt",label:t("list.createdAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"lastError",label:t("list.lastError"),cell:({row})=>row.lastError?_jsx("span",{className:"text-destructive line-clamp-2 max-w-xs text-sm",children:row.lastError}):_jsx("span",{className:"text-muted-foreground",children:"—"})}],edges:data.edges,filters:[{id:"status",label:t("list.statusFilter"),options:QUEUE_STATUSES.map(status=>({value:status,label:t(`status.${status}`)}))}],id:"queue-table",order:{columns:["createdAt","availableAt","status"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo})};
@@ -1 +1 @@
1
- {"version":3,"file":"mutation-api.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/debug/actions/clear-cache/mutation-api.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB,qBAE9B,CAAC"}
1
+ {"version":3,"file":"mutation-api.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/debug/actions/clear-cache/mutation-api.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,qBAW9B,CAAC"}
@@ -1 +1 @@
1
- "use server";import{revalidatePath}from"next/cache";export const clearCacheMutation=async()=>{await Promise.resolve(revalidatePath("/","layout"))};
1
+ "use server";import{revalidatePath}from"next/cache";import{checkAdminPermissionApi}from"../../../../../../../lib/api/get-session-admin-api.js";export const clearCacheMutation=async()=>{const canClearCache=await checkAdminPermissionApi({module:"debug",permission:"can_clear_cache"});if(!canClearCache){throw new Error("Forbidden")}await Promise.resolve(revalidatePath("/","layout"))};
@@ -0,0 +1,2 @@
1
+ export declare const QueueView: () => Promise<import("react").JSX.Element>;
2
+ //# sourceMappingURL=queue-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/debug/queue/queue-view.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,SAAS,4CAoErB,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{Table,TableBody,TableCell,TableHead,TableHeader,TableRow}from"../../../../../../components/ui/table.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{QueueStatusBadge}from"../../advanced/queue/badges/status-badge.js";const COUNT_STATUSES=["pending","processing","completed","failed"];export const QueueView=async()=>{const[t,res]=await Promise.all([getTranslations("admin.debug.queue"),fetcher(debugAdminModule,{prefixPath:"/admin",path:"/queue",method:"get",module:"debug"})]);const data=await res.json();return _jsxs("div",{className:"space-y-4",children:[_jsx("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4",children:COUNT_STATUSES.map(status=>_jsxs("div",{className:"rounded-lg border p-3",children:[_jsx("p",{className:"text-muted-foreground text-sm",children:t(`counts.${status}`)}),_jsx("p",{className:"text-2xl font-semibold",children:data.counts[status]})]},status))}),data.active.length===0?_jsx("p",{className:"text-muted-foreground text-sm",children:t("empty")}):_jsx("div",{className:"rounded-md border",children:_jsxs(Table,{children:[_jsx(TableHeader,{children:_jsxs(TableRow,{children:[_jsx(TableHead,{children:t("list.name")}),_jsx(TableHead,{children:t("list.queue")}),_jsx(TableHead,{children:t("list.status")}),_jsx(TableHead,{children:t("list.attempts")}),_jsx(TableHead,{children:t("list.availableAt")})]})}),_jsx(TableBody,{children:data.active.map(task=>_jsxs(TableRow,{children:[_jsx(TableCell,{children:_jsxs("div",{className:"flex flex-col",children:[_jsx("span",{children:task.name}),_jsx("span",{className:"text-muted-foreground text-sm",children:task.pluginId})]})}),_jsx(TableCell,{children:task.queue}),_jsx(TableCell,{children:_jsx(QueueStatusBadge,{status:task.status})}),_jsxs(TableCell,{children:[task.attempts,"/",task.maxAttempts]}),_jsx(TableCell,{children:_jsx(DateFormat,{date:task.availableAt,showFullDate:true})})]},task.id))})]})})]})};
@@ -2,7 +2,7 @@ import React from "react";
2
2
  declare const ContentMoreActionSystemLogs: React.ComponentType<{
3
3
  id: number;
4
4
  pluginId: string;
5
- type: "warn" | "error" | "debug";
5
+ type: "error" | "warn" | "debug";
6
6
  content: string;
7
7
  createdAt: Date;
8
8
  ipAddress: string;
@@ -1 +1 @@
1
- {"version":3,"file":"more.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/debug/system-logs/actions/more/more.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;EAIhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,2BAA2B,CAAC,sBAiChE,CAAC"}
1
+ {"version":3,"file":"more.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/debug/system-logs/actions/more/more.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;EAIhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,2BAA2B,CAAC,sBAmChE,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{SearchIcon}from"lucide-react";import{useTranslations}from"next-intl";import dynamic from"next/dynamic";import React from"react";import{Button}from"../../../../../../../../components/ui/button.js";import{Dialog,DialogContent,DialogDescription,DialogHeader,DialogTitle,DialogTrigger}from"../../../../../../../../components/ui/dialog.js";import{Loader}from"../../../../../../../../components/ui/loader.js";import{TooltipWithContent}from"../../../../../../../../components/ui/tooltip.js";const ContentMoreActionSystemLogs=dynamic(async()=>import("./content.js").then(module=>({default:module.ContentMoreActionSystemLogs})));export const MoreActionSystemLogs=props=>{const t=useTranslations("admin.debug.logs.more");return _jsxs(Dialog,{children:[_jsx(TooltipWithContent,{text:t("title"),children:_jsx(DialogTrigger,{asChild:true,children:_jsx(Button,{"aria-label":t("title"),size:"icon",variant:"ghost",children:_jsx(SearchIcon,{})})})}),_jsxs(DialogContent,{className:"sm:max-w-4xl",children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(SearchIcon,{className:"size-5"}),t("title")]}),_jsx(DialogDescription,{children:t.rich("desc",{logId:()=>_jsxs("span",{className:"font-semibold",children:["#",props.id]})})})]}),_jsx(React.Suspense,{fallback:_jsx(Loader,{}),children:_jsx(ContentMoreActionSystemLogs,{...props})})]})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{SearchIcon}from"lucide-react";import{useTranslations}from"next-intl";import dynamic from"next/dynamic";import React from"react";import{Button}from"../../../../../../../../components/ui/button.js";import{Dialog,DialogContent,DialogDescription,DialogHeader,DialogTitle,DialogTrigger}from"../../../../../../../../components/ui/dialog.js";import{Loader}from"../../../../../../../../components/ui/loader.js";import{TooltipWithContent}from"../../../../../../../../components/ui/tooltip.js";const ContentMoreActionSystemLogs=dynamic(async()=>import("./content.js").then(module=>({default:module.ContentMoreActionSystemLogs})));export const MoreActionSystemLogs=props=>{const t=useTranslations("admin.debug.logs.more");return _jsxs(Dialog,{children:[_jsx(TooltipWithContent,{text:t("title"),children:_jsx(DialogTrigger,{render:_jsx(Button,{"aria-label":t("title"),size:"icon",variant:"ghost"}),children:_jsx(SearchIcon,{})})}),_jsxs(DialogContent,{className:"sm:max-w-4xl",children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(SearchIcon,{className:"size-5"}),t("title")]}),_jsx(DialogDescription,{children:t.rich("desc",{logId:()=>_jsxs("span",{className:"font-semibold",children:["#",props.id]})})})]}),_jsx(React.Suspense,{fallback:_jsx(Loader,{}),children:_jsx(ContentMoreActionSystemLogs,{...props})})]})]})};
@@ -2,7 +2,7 @@ export declare const getSystemLogsData: (query: Record<string, string | string[]
2
2
  edges: {
3
3
  id: number;
4
4
  pluginId: string;
5
- type: "warn" | "error" | "debug";
5
+ type: "error" | "warn" | "debug";
6
6
  content: string;
7
7
  createdAt: Date;
8
8
  ipAddress: string;
@@ -0,0 +1,5 @@
1
+ import type { PermissionStaffType } from "../../../../../../api/lib/permission-staff";
2
+ export declare const CreateStaffPermissionsView: ({ type, }: {
3
+ type: PermissionStaffType;
4
+ }) => Promise<import("react").JSX.Element>;
5
+ //# sourceMappingURL=create-staff-permissions-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-staff-permissions-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/create/create-staff-permissions-view.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAUtE,eAAO,MAAM,0BAA0B,GAAU,WAE9C;IACD,IAAI,EAAE,mBAAmB,CAAC;CAC3B,yCAqCA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ArrowLeftIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{staffPermissionModuleByType}from"../../../../../../api/modules/admin/staff/lib/schema.js";import{Button}from"../../../../../../components/ui/button.js";import{HeaderContent}from"../../../../../../components/ui/header-content.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{Link}from"../../../../../../lib/navigation.js";import{CreateStaffPermissionsForm}from"./form.js";export const CreateStaffPermissionsView=async({type})=>{const[t,canCreate]=await Promise.all([getTranslations("admin.staff.create"),checkAdminPermissionApi({module:staffPermissionModuleByType[type],permission:"can_create"})]);if(!canCreate){notFound()}const backHref=type==="admin"?"/admin/core/staff/admins":"/admin/core/staff/moderators";return _jsxs(_Fragment,{children:[_jsx(HeaderContent,{desc:t("desc"),h1:t(type==="admin"?"admins":"moderators"),children:_jsxs(Button,{nativeButton:false,render:_jsx(Link,{href:backHref}),variant:"outline",children:[_jsx(ArrowLeftIcon,{}),t("back")]})}),_jsx(CreateStaffPermissionsForm,{type:type})]})};
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import type { PermissionStaffType } from "../../../../../../api/lib/permission-staff";
3
+ export declare const CreateStaffPermissionsForm: ({ type, }: {
4
+ type: PermissionStaffType;
5
+ }) => React.JSX.Element;
6
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/create/form.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAiItE,eAAO,MAAM,0BAA0B,GAAI,WAExC;IACD,IAAI,EAAE,mBAAmB,CAAC;CAC3B,sBA6IA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ChevronsUpDownIcon,ShieldIcon,UserIcon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{useDebouncedCallback}from"use-debounce";import{Avatar}from"../../../../../../components/avatar.js";import{Button}from"../../../../../../components/ui/button.js";import{Command,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList}from"../../../../../../components/ui/command.js";import{Popover,PopoverContent,PopoverTrigger}from"../../../../../../components/ui/popover.js";import{Spinner}from"../../../../../../components/ui/spinner.js";import{useRouter}from"../../../../../../lib/navigation.js";import{searchRolesForUser}from"../../users/show/roles/search-roles.action.js";import{SelectableCard}from"../selectable-card.js";import{createStaffEntry}from"./mutation-api.js";import{searchUsersForStaff}from"./search.action.js";const roleName=(role,locale)=>role.name.find(item=>item.languageCode===locale)?.name??role.name[0]?.name??"";function EntityPicker({search,getKey,renderItem,placeholder,onSelect,trigger}){const t=useTranslations("core.global");const[open,setOpen]=React.useState(false);const[options,setOptions]=React.useState([]);const[isSearching,setIsSearching]=React.useState(false);const runSearch=React.useCallback(async value=>{setIsSearching(true);try{setOptions(await search(value))}catch(error){console.error(error);setOptions([])}finally{setIsSearching(false)}},[search]);const debouncedSearch=useDebouncedCallback(runSearch,400);return _jsxs(Popover,{onOpenChange:next=>{setOpen(next);if(next){setOptions([]);void runSearch("")}},open:open,children:[_jsxs(PopoverTrigger,{render:_jsx(Button,{className:"w-full justify-start font-normal",variant:"outline"}),children:[trigger,_jsx(ChevronsUpDownIcon,{className:"ms-auto opacity-50"})]}),_jsx(PopoverContent,{align:"start",className:"w-(--anchor-width) min-w-56 p-0",children:_jsxs(Command,{shouldFilter:false,children:[_jsx(CommandInput,{onValueChange:debouncedSearch,placeholder:placeholder}),_jsx(CommandList,{children:isSearching&&options.length===0?_jsx("div",{className:"flex items-center justify-center py-6",children:_jsx(Spinner,{})}):_jsxs(_Fragment,{children:[_jsx(CommandEmpty,{children:t("results_not_found")}),_jsx(CommandGroup,{children:options.map(item=>_jsx(CommandItem,{onSelect:()=>{onSelect(item);setOpen(false)},value:getKey(item),children:renderItem(item)},getKey(item)))})]})})]})})]})}export const CreateStaffPermissionsForm=({type})=>{const t=useTranslations("admin.staff.create");const locale=useLocale();const router=useRouter();const[target,setTarget]=React.useState("role");const[role,setRole]=React.useState(null);const[user,setUser]=React.useState(null);const[isLoading,setIsLoading]=React.useState(false);const onSubmit=async()=>{let payload=null;if(target==="role"){if(role)payload={roleId:role.id}}else{if(user)payload={userId:user.id}}if(!payload)return;setIsLoading(true);const result=await createStaffEntry({type,...payload});if(result.error){setIsLoading(false);toast.error(result.error.status===409?t("already_exists"):t("error"));return}toast.success(t("success"));router.push(`/admin/core/staff/${type==="admin"?"admins":"moderators"}/edit/${result.data?.id}`)};const canSubmit=target==="role"?Boolean(role):Boolean(user);return _jsxs("div",{className:"max-w-2xl space-y-6",children:[_jsxs("div",{className:"space-y-3",children:[_jsx("h2",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:t("assign_to")}),_jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[_jsx(SelectableCard,{description:t("tabs.role_desc"),icon:_jsx("span",{className:"bg-primary/10 text-primary flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(ShieldIcon,{className:"size-5"})}),onSelect:()=>setTarget("role"),selected:target==="role",title:t("tabs.role")}),_jsx(SelectableCard,{description:t("tabs.user_desc"),icon:_jsx("span",{className:"bg-muted text-muted-foreground flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(UserIcon,{className:"size-5"})}),onSelect:()=>setTarget("user"),selected:target==="user",title:t("tabs.user")})]})]}),_jsx("div",{className:"space-y-2",children:target==="role"?_jsx(EntityPicker,{getKey:item=>String(item.id),onSelect:setRole,placeholder:t("select_role"),renderItem:item=>_jsx("span",{className:"truncate font-medium",style:item.color?{color:item.color}:undefined,children:roleName(item,locale)}),search:searchRolesForUser,trigger:role?_jsx("span",{className:"truncate font-medium",style:role.color?{color:role.color}:undefined,children:roleName(role,locale)}):_jsx("span",{className:"text-muted-foreground",children:t("select_role")})}):_jsx(EntityPicker,{getKey:item=>String(item.id),onSelect:setUser,placeholder:t("search_user"),renderItem:item=>_jsxs("div",{className:"flex items-center gap-2",children:[_jsx(Avatar,{size:24,user:item}),_jsx("span",{className:"font-medium",children:item.name}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",item.nameCode]})]}),search:searchUsersForStaff,trigger:user?_jsxs("span",{className:"flex items-center gap-2",children:[_jsx(Avatar,{size:20,user:user}),user.name]}):_jsx("span",{className:"text-muted-foreground",children:t("search_user")})})}),_jsx("div",{className:"flex justify-end",children:_jsx(Button,{disabled:!canSubmit,isLoading:isLoading,onClick:onSubmit,children:t("submit")})})]})};
@@ -0,0 +1,14 @@
1
+ import type { PermissionStaffType } from "../../../../../../api/lib/permission-staff";
2
+ export declare const createStaffEntry: ({ type, roleId, userId, }: {
3
+ roleId?: number;
4
+ type: PermissionStaffType;
5
+ userId?: number;
6
+ }) => Promise<{
7
+ data?: {
8
+ id: number;
9
+ };
10
+ error?: {
11
+ status: number;
12
+ };
13
+ }>;
14
+ //# sourceMappingURL=mutation-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/create/mutation-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,eAAO,MAAM,gBAAgB,GAAU,2BAIpC;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBhE,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{revalidatePath}from"next/cache";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../../../lib/fetcher.js";export const createStaffEntry=async({type,roleId,userId})=>{const res=await fetcher(adminModule,{path:"/entry/{type}",method:"post",module:"admin/staff",args:{params:{type},body:{roleId,userId}}});if(res.status!==201){return{error:{status:res.status}}}revalidatePath("/[locale]/admin","layout");return{data:await res.json()}};
@@ -0,0 +1,8 @@
1
+ export interface StaffUserOption {
2
+ avatarColor: string;
3
+ id: number;
4
+ name: string;
5
+ nameCode: string;
6
+ }
7
+ export declare const searchUsersForStaff: (search: string) => Promise<StaffUserOption[]>;
8
+ //# sourceMappingURL=search.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.action.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/create/search.action.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,KACb,OAAO,CAAC,eAAe,EAAE,CAuB3B,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../../../lib/fetcher.js";export const searchUsersForStaff=async search=>{const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/users",args:{query:{search,first:"20"}},withPagination:true});if(res.status!==200){return[]}const data=await res.json();return data.edges.map(user=>({id:user.id,name:user.name,nameCode:user.nameCode,avatarColor:user.avatarColor}))};
@@ -0,0 +1,8 @@
1
+ import type { PermissionStaffType } from "../../../../../../api/lib/permission-staff";
2
+ interface EditStaffPermissionsViewProps {
3
+ id: string;
4
+ type: PermissionStaffType;
5
+ }
6
+ export declare const EditStaffPermissionsView: ({ type, id, }: EditStaffPermissionsViewProps) => Promise<import("react").JSX.Element>;
7
+ export {};
8
+ //# sourceMappingURL=edit-staff-permissions-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-staff-permissions-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/edit/edit-staff-permissions-view.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAetE,UAAU,6BAA6B;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,GAAU,eAG5C,6BAA6B,yCAqI/B,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ArrowLeftIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{staffPermissionKey}from"../../../../../../api/lib/staff-permission.js";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{staffPermissionModuleByType}from"../../../../../../api/modules/admin/staff/lib/schema.js";import{RoleFormat}from"../../../../../../components/role-format.js";import{Button}from"../../../../../../components/ui/button.js";import{HeaderContent}from"../../../../../../components/ui/header-content.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{Link}from"../../../../../../lib/navigation.js";import{StaffUserFormat}from"../table/staff-user-format.js";import{EditStaffPermissionsForm}from"./form.js";export const EditStaffPermissionsView=async({type,id})=>{const canEdit=await checkAdminPermissionApi({module:staffPermissionModuleByType[type],permission:"can_edit"});if(!canEdit){notFound()}const t=await getTranslations("admin.staff.edit");const tRoot=await getTranslations();const[catalogRes,entryRes]=await Promise.all([fetcher(adminModule,{path:"/permission-catalog",method:"get",module:"admin/staff"}),fetcher(adminModule,{path:"/entry/{type}/{id}",method:"get",module:"admin/staff",args:{params:{type,id}}})]);if(entryRes.status!==200||catalogRes.status!==200){notFound()}const catalog=await catalogRes.json();const entry=await entryRes.json();const granted=new Set(entry.permissions.map(permission=>staffPermissionKey(permission)));const plugins=catalog.map(plugin=>{const modules=Object.entries(plugin[type]).map(([module,permissions])=>({module,label:tRoot.has(`${plugin.pluginId}:${module}`)?tRoot(`${plugin.pluginId}:${module}`):module,permissions:permissions.map(entry=>{const args={plugin:plugin.pluginId,module,permission:entry.permission};const key=staffPermissionKey(args);return{...args,key,checked:granted.has(key),label:tRoot.has(key)?tRoot(key):entry.permission,dependsOn:entry.dependsOn.map(dependency=>staffPermissionKey({plugin:plugin.pluginId,module,permission:dependency}))}})})).filter(module=>module.permissions.length>0);return{pluginId:plugin.pluginId,label:tRoot.has(`${plugin.pluginId}.title`)?tRoot(`${plugin.pluginId}.title`):plugin.pluginId,modules}}).filter(plugin=>plugin.modules.length>0);const backHref=type==="admin"?"/admin/core/staff/admins":"/admin/core/staff/moderators";return _jsxs(_Fragment,{children:[_jsx(HeaderContent,{desc:_jsxs("div",{className:"flex items-center gap-2",children:[t("subject"),entry.role?_jsx(RoleFormat,{role:entry.role}):entry.user?_jsx(StaffUserFormat,{user:entry.user}):null]}),h1:t("title"),children:_jsxs(Button,{nativeButton:false,render:_jsx(Link,{href:backHref}),variant:"outline",children:[_jsx(ArrowLeftIcon,{}),t("back")]})}),entry.protected?_jsx("p",{className:"text-muted-foreground",children:t("protected")}):entry.self?_jsx("p",{className:"text-muted-foreground",children:t("self")}):_jsx(EditStaffPermissionsForm,{id:id,plugins:plugins,type:type,unrestricted:entry.unrestricted})]})};
@@ -0,0 +1,29 @@
1
+ import React from "react";
2
+ import type { PermissionStaffType } from "../../../../../../api/lib/permission-staff";
3
+ interface PermissionItem {
4
+ checked: boolean;
5
+ dependsOn: string[];
6
+ key: string;
7
+ label: string;
8
+ module: string;
9
+ permission: string;
10
+ plugin: string;
11
+ }
12
+ interface ModuleGroup {
13
+ label: string;
14
+ module: string;
15
+ permissions: PermissionItem[];
16
+ }
17
+ export interface PluginGroup {
18
+ label: string;
19
+ modules: ModuleGroup[];
20
+ pluginId: string;
21
+ }
22
+ export declare const EditStaffPermissionsForm: ({ type, id, plugins, unrestricted: defaultUnrestricted, }: {
23
+ id: string;
24
+ plugins: PluginGroup[];
25
+ type: PermissionStaffType;
26
+ unrestricted: boolean;
27
+ }) => React.JSX.Element;
28
+ export {};
29
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/edit/form.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAgBtE,UAAU,cAAc;IACtB,OAAO,EAAE,OAAO,CAAC;IAGjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqKD,eAAO,MAAM,wBAAwB,GAAI,2DAKtC;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB,sBAoVA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CheckIcon,ChevronRightIcon,LockIcon,SearchIcon,ShieldCheckIcon,SparklesIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{Input}from"../../../../../../components/ui/input.js";import{Switch}from"../../../../../../components/ui/switch.js";import{useRouter}from"../../../../../../lib/navigation.js";import{cn}from"../../../../../../lib/utils.js";import{SelectableCard}from"../selectable-card.js";import{updateStaffPermissions}from"./mutation-api.js";const listHref=type=>type==="admin"?"/admin/core/staff/admins":"/admin/core/staff/moderators";const countGranted=(permissions,checked)=>permissions.reduce((total,item)=>total+(checked.has(item.key)?1:0),0);const CountBadge=({granted,total})=>{const isFull=total>0&&granted===total;return _jsxs("span",{className:cn("rounded-md px-1.5 py-0.5 text-xs font-medium tabular-nums",isFull?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-muted text-muted-foreground"),children:[granted,"/",total]})};const PermissionRow=({permission,checked,labelByKey,onToggle,t})=>{const isChecked=checked.has(permission.key);const locked=!permission.dependsOn.every(dependency=>checked.has(dependency));const requires=permission.dependsOn.map(dependency=>labelByKey.get(dependency)??dependency).join(", ");return _jsxs("label",{className:cn("flex items-center gap-3 px-4 py-3 transition-colors",!locked&&"hover:bg-muted/40"),children:[_jsx("span",{className:cn("flex size-5 shrink-0 items-center justify-center rounded-md transition-colors",locked?"bg-muted text-muted-foreground":isChecked?"bg-primary text-primary-foreground":"border-input border"),children:locked?_jsx(LockIcon,{className:"size-3"}):isChecked?_jsx(CheckIcon,{className:"size-3.5"}):null}),_jsxs("div",{className:"min-w-0 flex-1",children:[_jsx("p",{className:cn("text-sm leading-none",locked&&"text-muted-foreground"),children:permission.label}),locked?_jsx("p",{className:"text-muted-foreground mt-1 text-xs",children:t("requires",{permission:requires})}):null]}),_jsx(Switch,{checked:isChecked,disabled:locked,onCheckedChange:value=>onToggle(permission.key,value)})]})};const ModuleSection=({module,checked,labelByKey,open,onOpenChange,onToggle,onToggleModule,t})=>{const granted=countGranted(module.permissions,checked);const total=module.permissions.length;const isFull=total>0&&granted===total;return _jsxs("div",{className:"bg-card overflow-hidden rounded-xl border",children:[_jsxs("div",{className:"flex items-center gap-2 p-3 sm:gap-3 sm:px-4",children:[_jsxs("button",{"aria-expanded":open,className:"flex min-w-0 flex-1 items-center gap-3 text-left outline-none",onClick:()=>onOpenChange(!open),type:"button",children:[_jsx(ChevronRightIcon,{className:cn("text-muted-foreground size-4 shrink-0 transition-transform",open&&"rotate-90")}),_jsx("span",{className:"truncate text-sm font-semibold sm:text-base",children:module.label})]}),_jsx(CountBadge,{granted:granted,total:total}),_jsx(Switch,{checked:isFull,onCheckedChange:value=>onToggleModule(module,value)})]}),open?_jsx("div",{className:"divide-y border-t",children:module.permissions.map(permission=>_jsx(PermissionRow,{checked:checked,labelByKey:labelByKey,onToggle:onToggle,permission:permission,t:t},permission.key))}):null]})};export const EditStaffPermissionsForm=({type,id,plugins,unrestricted:defaultUnrestricted})=>{const t=useTranslations("admin.staff.edit");const router=useRouter();const[mode,setMode]=React.useState(defaultUnrestricted?"unrestricted":"restricted");const[checked,setChecked]=React.useState(()=>new Set(plugins.flatMap(plugin=>plugin.modules.flatMap(module=>module.permissions.filter(permission=>permission.checked).map(permission=>permission.key)))));const[isLoading,setIsLoading]=React.useState(false);const[query,setQuery]=React.useState("");const[selectedPluginId,setSelectedPluginId]=React.useState(()=>plugins[0]?.pluginId??"");const[openModules,setOpenModules]=React.useState(()=>new Set);const allItems=React.useMemo(()=>plugins.flatMap(plugin=>plugin.modules.flatMap(module=>module.permissions)),[plugins]);const labelByKey=React.useMemo(()=>{const map=new Map;for(const item of allItems)map.set(item.key,item.label);return map},[allItems]);const dependentsByKey=React.useMemo(()=>{const map=new Map;for(const item of allItems){for(const dependency of item.dependsOn){map.set(dependency,[...map.get(dependency)??[],item.key])}}return map},[allItems]);const filteredPlugins=React.useMemo(()=>{const value=query.trim().toLowerCase();if(!value)return plugins;return plugins.filter(plugin=>plugin.label.toLowerCase().includes(value)||plugin.pluginId.toLowerCase().includes(value))},[plugins,query]);const selectedPlugin=filteredPlugins.find(plugin=>plugin.pluginId===selectedPluginId)??filteredPlugins[0];const toggle=(key,value)=>{setChecked(prev=>{const next=new Set(prev);if(value){next.add(key);return next}const stack=[key];while(stack.length>0){const current=stack.pop();if(current===undefined)break;next.delete(current);for(const dependent of dependentsByKey.get(current)??[]){if(next.has(dependent))stack.push(dependent)}}return next})};const setKeysChecked=(keys,value)=>{setChecked(prev=>{const next=new Set(prev);for(const key of keys){if(value){next.add(key)}else{next.delete(key)}}return next})};const setPluginChecked=(plugin,value)=>{setKeysChecked(plugin.modules.flatMap(module=>module.permissions.map(permission=>permission.key)),value)};const setModuleChecked=(module,value)=>{setKeysChecked(module.permissions.map(permission=>permission.key),value)};const onSubmit=async()=>{const unrestricted=mode==="unrestricted";setIsLoading(true);const permissions=unrestricted?[]:allItems.filter(item=>checked.has(item.key)&&item.dependsOn.every(dependency=>checked.has(dependency))).map(({plugin,module,permission})=>({plugin,module,permission}));const result=await updateStaffPermissions({type,id,unrestricted,permissions});if(result.error){setIsLoading(false);toast.error(t("error"));return}toast.success(t("success"));router.push(listHref(type))};return _jsxs("div",{className:"space-y-6",children:[_jsxs("div",{className:"space-y-3",children:[_jsx("h2",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:t("mode.label")}),_jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[_jsx(SelectableCard,{description:t("mode.unrestricted.desc"),icon:_jsx("span",{className:"flex size-10 shrink-0 items-center justify-center rounded-lg bg-amber-500/10 text-amber-500",children:_jsx(SparklesIcon,{className:"size-5"})}),onSelect:()=>setMode("unrestricted"),selected:mode==="unrestricted",title:t("mode.unrestricted.label")}),_jsx(SelectableCard,{description:t("mode.restricted.desc"),icon:_jsx("span",{className:"bg-primary/10 text-primary flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(ShieldCheckIcon,{className:"size-5"})}),onSelect:()=>setMode("restricted"),selected:mode==="restricted",title:t("mode.restricted.label")})]})]}),mode==="restricted"&&(plugins.length===0?_jsx("p",{className:"text-muted-foreground",children:t("no_permissions")}):_jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[_jsxs("aside",{className:"flex flex-col gap-3 lg:sticky lg:top-4 lg:w-72 lg:shrink-0 lg:self-start",children:[_jsxs("div",{className:"relative",children:[_jsx(SearchIcon,{className:"text-muted-foreground pointer-events-none absolute inset-s-2.5 top-1/2 size-4 -translate-y-1/2"}),_jsx(Input,{className:"ps-8",onChange:event=>setQuery(event.target.value),placeholder:t("search_plugins"),value:query})]}),_jsx("div",{className:"flex flex-col gap-1",children:filteredPlugins.map(plugin=>{const isSelected=plugin.pluginId===selectedPlugin?.pluginId;const total=plugin.modules.reduce((sum,module)=>sum+module.permissions.length,0);const granted=plugin.modules.reduce((sum,module)=>sum+countGranted(module.permissions,checked),0);return _jsxs("button",{className:cn("flex w-full items-center gap-3 rounded-lg border p-2.5 text-left transition-colors outline-none",isSelected?"border-primary/40 bg-primary/4":"hover:bg-muted/50 border-transparent"),onClick:()=>setSelectedPluginId(plugin.pluginId),type:"button",children:[_jsx("span",{className:cn("flex size-9 shrink-0 items-center justify-center rounded-md text-sm font-semibold uppercase",isSelected?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground"),children:plugin.label.charAt(0)}),_jsxs("div",{className:"min-w-0 flex-1",children:[_jsx("p",{className:"truncate text-sm font-medium",children:plugin.label}),_jsx("p",{className:"text-muted-foreground text-xs",children:t("granted",{granted,total})})]})]},plugin.pluginId)})})]}),_jsx("div",{className:"min-w-0 flex-1 space-y-3",children:selectedPlugin?_jsxs(_Fragment,{children:[_jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[_jsxs("div",{className:"min-w-0",children:[_jsx("p",{className:"truncate text-base font-semibold",children:selectedPlugin.label}),_jsx("p",{className:"text-muted-foreground truncate text-sm",children:selectedPlugin.pluginId})]}),_jsxs("div",{className:"text-muted-foreground flex items-center gap-1 text-sm",children:[_jsx("button",{className:"hover:text-foreground font-medium transition-colors",onClick:()=>setPluginChecked(selectedPlugin,true),type:"button",children:t("select_all")}),_jsx("span",{"aria-hidden":true,children:"·"}),_jsx("button",{className:"hover:text-foreground font-medium transition-colors",onClick:()=>setPluginChecked(selectedPlugin,false),type:"button",children:t("clear_all")})]})]}),selectedPlugin.modules.map(module=>{const moduleKey=`${selectedPlugin.pluginId}:${module.module}`;return _jsx(ModuleSection,{checked:checked,labelByKey:labelByKey,module:module,onOpenChange:value=>setOpenModules(prev=>{const next=new Set(prev);if(value){next.add(moduleKey)}else{next.delete(moduleKey)}return next}),onToggle:toggle,onToggleModule:setModuleChecked,open:openModules.has(moduleKey),t:t},moduleKey)})]}):_jsx("p",{className:"text-muted-foreground py-8 text-center text-sm",children:t("search_empty")})})]})),_jsx("div",{className:"flex justify-end",children:_jsx(Button,{isLoading:isLoading,onClick:onSubmit,children:t("save")})})]})};
@@ -0,0 +1,13 @@
1
+ import type { PermissionsStaffArgs, PermissionStaffType } from "../../../../../../api/lib/permission-staff";
2
+ export declare const updateStaffPermissions: ({ type, id, unrestricted, permissions, }: {
3
+ id: string;
4
+ permissions: PermissionsStaffArgs[];
5
+ type: PermissionStaffType;
6
+ unrestricted: boolean;
7
+ }) => Promise<{
8
+ data?: true;
9
+ error?: {
10
+ status: number;
11
+ };
12
+ }>;
13
+ //# sourceMappingURL=mutation-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/edit/mutation-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAKpC,eAAO,MAAM,sBAAsB,GAAU,0CAK1C;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB,KAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBtD,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{revalidatePath}from"next/cache";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../../../lib/fetcher.js";export const updateStaffPermissions=async({type,id,unrestricted,permissions})=>{const res=await fetcher(adminModule,{path:"/entry/{type}/{id}",method:"patch",module:"admin/staff",args:{params:{type,id},body:{unrestricted,permissions}}});if(res.status!==200){return{error:{status:res.status}}}revalidatePath("/[locale]/admin","layout");return{data:true}};
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface SelectableCardProps {
3
+ description: React.ReactNode;
4
+ icon: React.ReactNode;
5
+ onSelect: () => void;
6
+ selected: boolean;
7
+ title: React.ReactNode;
8
+ }
9
+ export declare const SelectableCard: ({ selected, onSelect, icon, title, description, }: SelectableCardProps) => React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=selectable-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectable-card.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/views/core/staff/selectable-card.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,mBAAmB;IAC3B,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAOD,eAAO,MAAM,cAAc,GAAI,mDAM5B,mBAAmB,sBAkCrB,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CheckIcon}from"lucide-react";import React from"react";import{cn}from"../../../../../lib/utils.js";export const SelectableCard=({selected,onSelect,icon,title,description})=>{return _jsxs("button",{"aria-pressed":selected,className:cn("group focus-visible:ring-ring/50 relative flex items-start gap-3 rounded-xl border p-4 text-left transition-colors outline-none focus-visible:ring-[3px] sm:gap-4",selected?"border-primary ring-primary/20 bg-primary/4 ring-1":"border-border hover:border-foreground/20 hover:bg-muted/40"),onClick:onSelect,type:"button",children:[icon,_jsxs("div",{className:"min-w-0 flex-1 space-y-1 pe-7",children:[_jsx("p",{className:"leading-none font-semibold",children:title}),_jsx("p",{className:"text-muted-foreground text-sm leading-snug",children:description})]}),_jsx("span",{className:cn("absolute inset-e-4 top-4 flex size-5 shrink-0 items-center justify-center rounded-full border transition-colors",selected?"border-primary bg-primary text-primary-foreground":"border-input"),children:selected?_jsx(CheckIcon,{className:"size-3.5"}):null})]})};