@vitnode/core 1.2.0-canary.74 → 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 (721) 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/queue/page.tsx +51 -0
  673. package/src/routes/admin/core/debug/page.tsx +25 -4
  674. package/src/routes/admin/core/staff/admins/create/page.tsx +17 -0
  675. package/src/routes/admin/core/staff/admins/edit/[id]/page.tsx +23 -0
  676. package/src/routes/admin/core/staff/admins/page.tsx +14 -0
  677. package/src/routes/admin/core/staff/moderators/create/page.tsx +17 -0
  678. package/src/routes/admin/core/staff/moderators/edit/[id]/page.tsx +23 -0
  679. package/src/routes/admin/core/staff/moderators/page.tsx +14 -0
  680. package/src/routes/admin/core/system/integrations/page.tsx +43 -0
  681. package/src/routes/admin/core/users/{[nameCode] → [id]}/page.tsx +7 -7
  682. package/src/routes/admin/core/users/page.tsx +10 -2
  683. package/src/routes/breadcrumb/admin/[...all]/page.tsx +2 -16
  684. package/src/routes/breadcrumb/admin/core/staff/admins/create/page.tsx +5 -0
  685. package/src/routes/breadcrumb/admin/core/staff/admins/edit/[id]/page.tsx +11 -0
  686. package/src/routes/breadcrumb/admin/core/staff/admins/page.tsx +5 -0
  687. package/src/routes/breadcrumb/admin/core/staff/moderators/create/page.tsx +5 -0
  688. package/src/routes/breadcrumb/admin/core/staff/moderators/edit/[id]/page.tsx +11 -0
  689. package/src/routes/breadcrumb/admin/core/staff/moderators/page.tsx +5 -0
  690. package/src/routes/breadcrumb/admin/core/users/[id]/page.tsx +11 -0
  691. package/src/routes/breadcrumb/main/[...rest]/page.tsx +2 -16
  692. package/src/routes/breadcrumb/main/settings/overview/page.tsx +17 -0
  693. package/src/routes/breadcrumb/main/{register → settings}/page.tsx +3 -3
  694. package/src/routes/breadcrumb/main/settings/security/page.tsx +17 -0
  695. package/src/routes/main/settings/layout.tsx +16 -0
  696. package/src/routes/main/settings/overview/page.tsx +15 -0
  697. package/src/routes/main/settings/page.tsx +15 -0
  698. package/src/routes/main/settings/security/page.tsx +15 -0
  699. package/dist/scripts/get-config.js +0 -66
  700. package/dist/scripts/plugin.js +0 -206
  701. package/dist/scripts/prepare-database.js +0 -177
  702. package/dist/scripts/prepare-plugins-files.js +0 -152
  703. package/dist/scripts/run-interactive-shell-command.js +0 -21
  704. package/dist/scripts/shared/file-utils.js +0 -203
  705. package/dist/src/locales/en.json +0 -372
  706. package/dist/src/routes/admin/core/users/[nameCode]/page.d.ts.map +0 -1
  707. package/dist/src/routes/admin/core/users/[nameCode]/page.js +0 -1
  708. package/dist/src/routes/breadcrumb/admin/core/users/[nameCode]/page.d.ts.map +0 -1
  709. package/dist/src/routes/breadcrumb/main/login/page.d.ts.map +0 -1
  710. package/dist/src/routes/breadcrumb/main/login/page.js +0 -1
  711. package/dist/src/routes/breadcrumb/main/login/reset-password/page.d.ts.map +0 -1
  712. package/dist/src/routes/breadcrumb/main/login/reset-password/page.js +0 -1
  713. package/dist/src/routes/breadcrumb/main/register/page.d.ts.map +0 -1
  714. package/dist/tsup.config.js +0 -17
  715. package/dist/vitest.config.js +0 -48
  716. package/src/routes/breadcrumb/admin/core/users/[nameCode]/page.tsx +0 -12
  717. package/src/routes/breadcrumb/main/login/page.tsx +0 -11
  718. package/src/routes/breadcrumb/main/login/reset-password/page.tsx +0 -20
  719. /package/dist/src/routes/breadcrumb/main/{login → settings/overview}/page.d.ts +0 -0
  720. /package/dist/src/routes/breadcrumb/main/{login/reset-password → settings}/page.d.ts +0 -0
  721. /package/dist/src/routes/breadcrumb/main/{register → settings/security}/page.d.ts +0 -0
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CalendarIcon,ImageIcon,MailIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../../components/avatar.js";import{DateFormat}from"../../../../../../components/date-format.js";import{Card,CardContent}from"../../../../../../components/ui/card.js";import{TooltipWithContent}from"../../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{VerifyEmailUserAdmin}from"../actions/verify-email/verify-email.js";export const ShowUserAdminView=async({nameCode})=>{const t=await getTranslations("admin.user.show");const res=await fetcher(adminModule,{path:"/{nameCode}",method:"get",module:"admin/users",args:{params:{nameCode}}});if(res.status!==200){notFound()}const user=await res.json();return _jsxs(Card,{className:"overflow-hidden pt-0",children:[_jsxs("div",{className:"bg-muted text-muted-foreground flex h-40 w-full items-center justify-center sm:h-56",children:[_jsx(ImageIcon,{className:"size-8 opacity-50"}),_jsx("span",{className:"sr-only",children:t("coverPlaceholder")})]}),_jsxs(CardContent,{children:[_jsxs("div",{className:"-mt-16 flex flex-col gap-4 sm:-mt-20 sm:flex-row sm:items-end",children:[_jsx(Avatar,{className:"border-card size-24 border-4 sm:size-32",size:128,user:user}),_jsxs("div",{className:"flex flex-1 flex-col gap-1 pb-1",children:[_jsxs("div",{className:"flex items-center gap-2",children:[_jsx("h2",{className:"text-foreground text-2xl font-bold",children:user.name}),!user.emailVerified&&_jsx(TooltipWithContent,{text:t("emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-5"})})]}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",user.nameCode]})]}),_jsx(VerifyEmailUserAdmin,{emailVerified:user.emailVerified,nameCode:user.nameCode})]}),_jsxs("div",{className:"text-muted-foreground mt-6 flex flex-col gap-2 text-sm",children:[_jsxs("div",{className:"flex items-center gap-2",children:[_jsx(MailIcon,{className:"size-4"}),_jsx("span",{children:user.email})]}),_jsxs("div",{className:"flex items-center gap-2",children:[_jsx(CalendarIcon,{className:"size-4"}),_jsxs("span",{children:[t("joined")," ",_jsx(DateFormat,{date:user.createdAt,showFullDate:true})]})]})]})]})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ExternalLinkIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{hasStaffPermission}from"../../../../../../api/lib/staff-permission.js";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../../components/avatar.js";import{DateFormat}from"../../../../../../components/date-format.js";import{Button}from"../../../../../../components/ui/button.js";import{Card,CardContent}from"../../../../../../components/ui/card.js";import{CONFIG_PLUGIN}from"../../../../../../config.js";import{getSessionAdminApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{Link}from"../../../../../../lib/navigation.js";import{EditImageButton}from"./edit-buttons.js";import{EditUserField}from"./edit-field.js";import{EditNameCode}from"./edit-name-code.js";import{RolesUserAdmin}from"./roles/roles.js";export const ShowUserAdminView=async({id})=>{const t=await getTranslations("admin.user.show");const res=await fetcher(adminModule,{path:"/{id}",method:"get",module:"admin/users",args:{params:{id}}});if(res.status!==200){notFound()}const user=await res.json();const session=await getSessionAdminApi();const canEdit=!!session&&hasStaffPermission(session.permissions,{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_edit"})&&(user.isAdmin?hasStaffPermission(session.permissions,{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_edit_admin"}):true);return _jsxs("div",{className:"mx-auto flex w-full max-w-lg flex-col gap-4",children:[_jsxs(Card,{className:"w-full overflow-hidden pt-0",children:[_jsxs("div",{className:"from-primary/30 to-primary/5 relative h-44 w-full bg-linear-to-br",children:[_jsx("span",{className:"sr-only",children:t("coverPlaceholder")}),canEdit&&_jsx("div",{className:"absolute inset-e-3 top-3",children:_jsx(EditImageButton,{label:t("editCover")})})]}),_jsxs(CardContent,{className:"flex flex-col",children:[_jsx("div",{className:"-mt-16 mb-4 flex justify-center",children:_jsxs("div",{className:"relative",children:[_jsx(Avatar,{className:"border-card size-32 border-4",size:128,user:user}),canEdit&&_jsx("div",{className:"absolute inset-e-0 bottom-0 translate-y-1/4",children:_jsx(EditImageButton,{label:t("editAvatar")})})]})}),_jsx(EditUserField,{as:"h2",canEdit:canEdit,field:"name",id:user.id,label:t("editName"),showUnverified:!user.emailVerified,value:user.name,valueClassName:"text-foreground truncate text-2xl font-bold"}),_jsxs("div",{className:"flex items-center gap-1",children:[_jsxs("span",{className:"text-muted-foreground truncate text-sm",children:["@",user.nameCode]}),canEdit&&_jsx(EditNameCode,{id:user.id,nameCode:user.nameCode})]}),_jsx("div",{className:"mt-3",children:_jsx(EditUserField,{canEdit:canEdit,field:"email",id:user.id,label:t("editEmail"),type:"email",value:user.email,valueClassName:"text-foreground truncate font-medium"})}),_jsxs("p",{className:"text-muted-foreground mt-1 text-sm",children:[t("joined")," ",_jsx(DateFormat,{date:user.createdAt})]}),_jsx("div",{className:"mt-6",children:_jsxs(Button,{className:"w-full",nativeButton:false,render:_jsx(Link,{href:`/profile/${user.nameCode}`,target:"_blank"}),variant:"ghost",children:[t("goToProfile")," ",_jsx(ExternalLinkIcon,{})]})})]})]}),_jsx(RolesUserAdmin,{canEdit:canEdit,id:user.id,role:user.role,secondaryRoles:user.secondaryRoles})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"users-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/views/core/users/users-admin-view.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCA8EA,CAAC"}
1
+ {"version":3,"file":"users-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/views/core/users/users-admin-view.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCA+GA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{MailIcon,UserSearchIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{adminModule}from"../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../components/avatar.js";import{DateFormat}from"../../../../../components/date-format.js";import{DataTable}from"../../../../../components/table/data-table.js";import{TooltipWithContent}from"../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../lib/fetcher.js";import{UsersAdminActions}from"./actions.js";import{searchRolesAdmin}from"./search-roles.action.js";export const UsersAdminView=async({searchParams})=>{const t=await getTranslations("admin.user.list");const query=await searchParams;const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/users",args:{query},withPagination:true});const data=await res.json();return _jsx(DataTable,{columns:[{id:"name",label:t("user"),cell:({row})=>_jsxs("div",{className:"flex items-center gap-3",children:[_jsx(Avatar,{size:32,user:row}),_jsxs("div",{className:"flex flex-col",children:[_jsxs("div",{className:"flex items-center gap-2",children:[_jsx("span",{className:"font-medium",children:row.name}),!row.emailVerified&&_jsx(TooltipWithContent,{text:t("emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-4"})})]}),_jsx("span",{className:"text-muted-foreground text-sm",children:row.email})]})]})},{id:"createdAt",label:t("createdAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"actions",label:"",className:"w-10",cell:({row})=>_jsx(UsersAdminActions,{...row})}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(UserSearchIcon,{})},edges:data.edges,filters:[{id:"roleId",label:t("roles"),onSearch:searchRolesAdmin}],id:"users-table",order:{columns:["createdAt","name"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo,search:true,searchPlaceholder:t("searchPlaceholder")})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{MailIcon,UserSearchIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{adminModule}from"../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../components/avatar.js";import{DateFormat}from"../../../../../components/date-format.js";import{RoleFormat}from"../../../../../components/role-format.js";import{DataTable}from"../../../../../components/table/data-table.js";import{TooltipWithContent}from"../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../lib/fetcher.js";import{UsersAdminActions}from"./actions.js";import{searchRolesAdmin}from"./search-roles.action.js";export const UsersAdminView=async({searchParams})=>{const t=await getTranslations("admin.user.list");const query=await searchParams;const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/users",args:{query},withPagination:true});const data=await res.json();return _jsx(DataTable,{columns:[{id:"name",label:t("user"),cell:({row})=>_jsxs("div",{className:"flex items-center gap-3",children:[_jsx(Avatar,{size:32,user:row}),_jsxs("div",{className:"flex flex-col",children:[_jsx("span",{className:"font-medium",children:row.name}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",row.nameCode]})]})]})},{id:"email",label:t("email"),cell:({row})=>{if(row.emailVerified){return _jsx("span",{children:row.email})}return _jsxs("div",{className:"flex items-center gap-2",children:[_jsx(TooltipWithContent,{text:t("emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-4"})}),_jsx("span",{className:"text-muted-foreground italic",children:row.email})]})}},{id:"roleId",label:t("roles"),cell:({row})=>_jsxs("div",{className:"flex flex-col items-start gap-1",children:[_jsx(RoleFormat,{role:row.role}),row.secondaryRoles.length>0&&_jsxs("div",{className:"text-muted-foreground flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm",children:[row.secondaryRoles.slice(0,3).map(role=>_jsx(RoleFormat,{role:role},role.id)),row.secondaryRoles.length>3&&_jsxs("span",{children:["+",row.secondaryRoles.length-3]})]})]})},{id:"createdAt",label:t("createdAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"actions",label:"",className:"w-10",cell:({row})=>_jsx(UsersAdminActions,{...row})}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(UserSearchIcon,{})},edges:data.edges,filters:[{id:"roleId",label:t("roles"),onSearch:searchRolesAdmin}],id:"users-table",order:{columns:["createdAt","name"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo,search:true,searchPlaceholder:t("searchPlaceholder")})};
@@ -0,0 +1,4 @@
1
+ export declare const LayoutSettings: ({ children, }: {
2
+ children: React.ReactNode;
3
+ }) => Promise<import("react").JSX.Element>;
4
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/views/auth/settings/layout.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,GAAU,eAElC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,yCAYA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{notFound}from"next/navigation";import{I18nProvider}from"../../../components/i18n-provider.js";import{getSessionApi}from"../../../lib/api/get-session-api.js";import{SettingsShell}from"./shell.js";export const LayoutSettings=async({children})=>{const session=await getSessionApi();if(!session.user){notFound()}return _jsx(I18nProvider,{namespaces:"core.auth.settings",children:_jsx(SettingsShell,{children:children})})};
@@ -0,0 +1,2 @@
1
+ export declare const NavSettings: () => import("react").JSX.Element;
2
+ //# sourceMappingURL=nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../../../../src/views/auth/settings/nav.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,WAAW,mCA8BvB,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ChevronRightIcon,KeyRoundIcon,UserRoundIcon}from"lucide-react";import{useTranslations}from"next-intl";import{buttonVariants}from"../../../components/ui/button.js";import{Link,usePathname}from"../../../lib/navigation.js";import{cn,normalizeUrl}from"../../../lib/utils.js";const items=[{href:"/settings/overview",key:"overview",icon:UserRoundIcon,aliases:["/settings"]},{href:"/settings/security",key:"security",icon:KeyRoundIcon}];export const NavSettings=()=>{const t=useTranslations("core.auth.settings.nav");const pathname=normalizeUrl(usePathname());return _jsx("nav",{className:"flex flex-col gap-1",children:items.map(({href,key,icon:Icon,...item})=>{const aliases="aliases"in item?item.aliases:[];const isActive=[href,...aliases].some(url=>pathname===normalizeUrl(url));return _jsxs(Link,{"aria-current":isActive?"page":undefined,className:cn(buttonVariants({variant:isActive?"default":"ghost"}),"w-full justify-start gap-2"),href:href,children:[_jsx(Icon,{}),t(key),_jsx(ChevronRightIcon,{className:"ml-auto opacity-60 sm:hidden"})]},href)})})};
@@ -0,0 +1,2 @@
1
+ export declare const OverviewSettings: () => Promise<import("react").JSX.Element>;
2
+ //# sourceMappingURL=overview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../../../../../src/views/auth/settings/overview/overview.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,4CAI5B,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{HeaderContent}from"../../../../components/ui/header-content.js";export const OverviewSettings=async()=>{const t=await getTranslations("core.auth.settings.nav");return _jsx(HeaderContent,{h2:t("overview")})};
@@ -0,0 +1,2 @@
1
+ export declare const SecuritySettings: () => Promise<import("react").JSX.Element>;
2
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../../../../src/views/auth/settings/security/security.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,4CAI5B,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{HeaderContent}from"../../../../components/ui/header-content.js";export const SecuritySettings=async()=>{const t=await getTranslations("core.auth.settings.nav");return _jsx(HeaderContent,{h2:t("security")})};
@@ -0,0 +1,4 @@
1
+ export declare const SettingsShell: ({ children }: {
2
+ children: React.ReactNode;
3
+ }) => import("react").JSX.Element;
4
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../../src/views/auth/settings/shell.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,aAAa,GAAI,cAAc;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,gCA0CxE,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ArrowLeftIcon}from"lucide-react";import{useTranslations}from"next-intl";import{buttonVariants}from"../../../components/ui/button.js";import{Card,CardContent}from"../../../components/ui/card.js";import{HeaderContent}from"../../../components/ui/header-content.js";import{Link,usePathname}from"../../../lib/navigation.js";import{cn,normalizeUrl}from"../../../lib/utils.js";import{NavSettings}from"./nav.js";export const SettingsShell=({children})=>{const t=useTranslations("core.auth.settings");const isRoot=normalizeUrl(usePathname())==="/settings";return _jsxs("div",{className:"container mx-auto space-y-6 px-4",children:[_jsx(HeaderContent,{className:cn(!isRoot&&"hidden md:flex"),desc:t("desc"),h1:t("title")}),_jsxs("div",{className:"flex flex-col gap-6 md:flex-row",children:[_jsx(Card,{className:cn("md:w-80 md:shrink-0",!isRoot&&"hidden md:flex"),children:_jsx(CardContent,{children:_jsx(NavSettings,{})})}),_jsx(Card,{className:cn("min-w-0 flex-1",isRoot&&"hidden md:flex"),children:_jsxs(CardContent,{children:[_jsxs(Link,{className:cn(buttonVariants({size:"sm",variant:"ghost"}),"mb-4 w-full justify-start gap-2 p-0 md:hidden"),href:"/settings",children:[_jsx(ArrowLeftIcon,{}),t("title")]}),children]})})]})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/auth/sso/callback/client/client.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAKlF,eAAO,MAAM,iBAAiB,GAAI,mCAK/B;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACf,gCAsDA,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/auth/sso/callback/client/client.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAKlF,eAAO,MAAM,iBAAiB,GAAI,mCAK/B;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACf,gCA0DA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx}from"react/jsx-runtime";import{useQuery}from"@tanstack/react-query";import{useTranslations}from"next-intl";import{Loader}from"../../../../../components/ui/loader.js";import{Link,useRouter}from"../../../../../lib/navigation.js";import{ErrorView}from"../../../../error/error-view.js";import{Button}from"../../../../../components/ui/button.js";import{mutationApi}from"./mutation-api.js";export const ClientCallbackSSO=({providerId,code,state,sso})=>{const t=useTranslations("core.auth.sso");const{replace}=useRouter();const{isError,error}=useQuery({queryKey:["core.auth.sso.callback.sign-up",providerId,code],queryFn:async()=>{const mutation=await mutationApi({providerId,code,state});if(mutation?.error){throw new Error(mutation.error)}replace("/");return""},retry:false});const provider=sso.find(p=>p.id===providerId);if(error?.message==="Email already exists"){return _jsx(ErrorView,{code:409,customActions:_jsx(Button,{asChild:true,size:"lg",children:_jsx(Link,{href:"/login",children:t("email_exists.sign_in")})}),customDescription:t.rich("email_exists.desc",{provider:()=>_jsx("span",{className:"font-semibold",children:provider?.name??providerId})}),customTitle:t.rich("email_exists.title",{provider:()=>_jsx("span",{className:"font-semibold",children:provider?.name??providerId})})})}if(isError){return _jsx(ErrorView,{code:500})}return _jsx("div",{className:"container mx-auto flex items-center justify-center p-4",children:_jsx(Loader,{})})};
1
+ "use client";import{jsx as _jsx}from"react/jsx-runtime";import{useQuery}from"@tanstack/react-query";import{useTranslations}from"next-intl";import{Loader}from"../../../../../components/ui/loader.js";import{Link,useRouter}from"../../../../../lib/navigation.js";import{ErrorView}from"../../../../error/error-view.js";import{Button}from"../../../../../components/ui/button.js";import{mutationApi}from"./mutation-api.js";export const ClientCallbackSSO=({providerId,code,state,sso})=>{const t=useTranslations("core.auth.sso");const{replace}=useRouter();const{isError,error}=useQuery({queryKey:["core.auth.sso.callback.sign-up",providerId,code],queryFn:async()=>{const mutation=await mutationApi({providerId,code,state});if(mutation?.error){throw new Error(mutation.error)}replace("/");return""},retry:false});const provider=sso.find(p=>p.id===providerId);if(error?.message==="Email already exists"){return _jsx(ErrorView,{code:409,customActions:_jsx(Button,{nativeButton:false,render:_jsx(Link,{href:"/login"}),size:"lg",children:t("email_exists.sign_in")}),customDescription:t.rich("email_exists.desc",{provider:()=>_jsx("span",{className:"font-semibold",children:provider?.name??providerId})}),customTitle:t.rich("email_exists.title",{provider:()=>_jsx("span",{className:"font-semibold",children:provider?.name??providerId})})})}if(isError){return _jsx(ErrorView,{code:500})}return _jsx("div",{className:"container mx-auto flex items-center justify-center p-4",children:_jsx(Loader,{})})};
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{BreadcrumbRender}from"./breadcrumb-render.js";import{resolveMainBreadcrumb}from"./resolve-main-breadcrumb.js";export const BreadcrumbMain=({segments,labels,overrideLastLabel})=>{const crumbs=resolveMainBreadcrumb(segments,labels);if(crumbs.length===0)return null;if(overrideLastLabel){crumbs[crumbs.length-1].label=overrideLastLabel}return _jsx("div",{className:"container mx-auto px-4 pt-4",children:_jsx(BreadcrumbRender,{crumbs:crumbs})})};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{BreadcrumbRender}from"./breadcrumb-render.js";import{resolveMainBreadcrumb}from"./resolve-main-breadcrumb.js";export const BreadcrumbMain=({segments,labels,overrideLastLabel})=>{const crumbs=resolveMainBreadcrumb(segments,labels);if(crumbs.length===0)return null;if(overrideLastLabel){crumbs[crumbs.length-1].label=overrideLastLabel}return _jsx("div",{className:"container mx-auto p-4",children:_jsx(BreadcrumbRender,{crumbs:crumbs})})};
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Fragment}from"react";import{Breadcrumb,BreadcrumbItem,BreadcrumbLink,BreadcrumbList,BreadcrumbPage,BreadcrumbSeparator}from"../../components/ui/breadcrumb.js";import{Link}from"../../lib/navigation.js";export const BreadcrumbRender=({crumbs})=>{if(crumbs.length===0)return null;return _jsx(Breadcrumb,{children:_jsx(BreadcrumbList,{children:crumbs.map((crumb,index)=>_jsxs(Fragment,{children:[index>0&&_jsx(BreadcrumbSeparator,{}),_jsx(BreadcrumbItem,{children:crumb.isCurrent?_jsx(BreadcrumbPage,{children:crumb.label}):crumb.isLink?_jsx(BreadcrumbLink,{asChild:true,children:_jsx(Link,{href:crumb.href,children:crumb.label})}):_jsx("span",{children:crumb.label})})]},crumb.href))})})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Fragment}from"react";import{Breadcrumb,BreadcrumbItem,BreadcrumbLink,BreadcrumbList,BreadcrumbPage,BreadcrumbSeparator}from"../../components/ui/breadcrumb.js";import{Link}from"../../lib/navigation.js";export const BreadcrumbRender=({crumbs})=>{if(crumbs.length===0)return null;return _jsx(Breadcrumb,{children:_jsx(BreadcrumbList,{children:crumbs.map((crumb,index)=>_jsxs(Fragment,{children:[index>0&&_jsx(BreadcrumbSeparator,{}),_jsx(BreadcrumbItem,{children:crumb.isCurrent?_jsx(BreadcrumbPage,{children:crumb.label}):crumb.isLink?_jsx(BreadcrumbLink,{render:_jsx(Link,{href:crumb.href,children:crumb.label})}):_jsx("span",{children:crumb.label})})]},crumb.href))})})};
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ThemeProvider}from"next-themes";import Link from"next/link";import{LogoVitNode}from"../../components/logo-vitnode.js";import{Card,CardContent}from"../../components/ui/card.js";export const metadata={title:"Error 500!"};export const GlobalErrorView=({className})=>{return _jsx("html",{lang:"en",suppressHydrationWarning:true,children:_jsx("body",{className:className,children:_jsx(ThemeProvider,{attribute:"class",disableTransitionOnChange:true,enableSystem:true,children:_jsx("div",{className:"bg-background flex min-h-screen flex-col items-center justify-center p-4",children:_jsxs("div",{className:"container mx-auto flex w-full max-w-md flex-col items-center justify-center gap-6 text-center",children:[_jsx(Link,{href:"/",children:_jsx(LogoVitNode,{className:"mb-4 h-12 w-auto"})}),_jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:"Oops! Something went wrong."}),_jsx(Card,{className:"w-full",children:_jsx(CardContent,{children:_jsx("p",{className:"text-muted-foreground",children:"An unexpected error occurred. Please try refreshing the page or come back later."})})})]})})})})})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import Link from"next/link";import{LogoVitNode}from"../../components/logo-vitnode.js";import{ThemeProvider}from"../../components/theme-provider.js";import{Card,CardContent}from"../../components/ui/card.js";export const metadata={title:"Error 500!"};export const GlobalErrorView=({className})=>{return _jsx("html",{lang:"en",suppressHydrationWarning:true,children:_jsx("body",{className:className,children:_jsx(ThemeProvider,{attribute:"class",disableTransitionOnChange:true,enableSystem:true,children:_jsx("div",{className:"bg-background flex min-h-screen flex-col items-center justify-center p-4",children:_jsxs("div",{className:"container mx-auto flex w-full max-w-md flex-col items-center justify-center gap-6 text-center",children:[_jsx(Link,{href:"/",children:_jsx(LogoVitNode,{className:"mb-4 h-12 w-auto"})}),_jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:"Oops! Something went wrong."}),_jsx(Card,{className:"w-full",children:_jsx(CardContent,{children:_jsx("p",{className:"text-muted-foreground",children:"An unexpected error occurred. Please try refreshing the page or come back later."})})})]})})})})})};
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/views/layouts/provider.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,eAAO,MAAM,YAAY,GAAI,+DAI1B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC;CAChD,sBAkDA,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/views/layouts/provider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,eAAO,MAAM,YAAY,GAAI,+DAI1B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC;CAChD,sBAkDA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ProgressProvider}from"@bprogress/next/app";import{QueryClient,QueryClientProvider}from"@tanstack/react-query";import{ThemeProvider}from"next-themes";import React from"react";import{scan}from"react-scan";import{CONFIG}from"../../lib/config.js";import{Toaster}from"../../components/ui/sonner.js";import{TooltipProvider}from"../../components/ui/tooltip.js";export const RootProvider=({children,toaster,config:{debug,theme,progressBar}})=>{React.useEffect(()=>{if(!(debug&&CONFIG.node_development))return;scan({enabled:true})},[debug]);const[queryClient]=React.useState(()=>new QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:false,refetchOnMount:false}}}));return _jsx(QueryClientProvider,{client:queryClient,children:_jsxs(ThemeProvider,{attribute:"class",disableTransitionOnChange:true,enableSystem:true,...theme,children:[_jsx(Toaster,{closeButton:true,position:toaster?.position??"top-center",...toaster}),_jsx(ProgressProvider,{...progressBar,color:progressBar?.color??"var(--primary)",height:progressBar?.height??"4px",options:{showSpinner:false,...progressBar?.options},shallowRouting:progressBar?.shallowRouting??true,children:_jsx(TooltipProvider,{children:children})})]})})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ProgressProvider}from"@bprogress/next/app";import{QueryClient,QueryClientProvider}from"@tanstack/react-query";import React from"react";import{scan}from"react-scan";import{CONFIG}from"../../lib/config.js";import{ThemeProvider}from"../../components/theme-provider.js";import{Toaster}from"../../components/ui/sonner.js";import{TooltipProvider}from"../../components/ui/tooltip.js";export const RootProvider=({children,toaster,config:{debug,theme,progressBar}})=>{React.useEffect(()=>{if(!(debug&&CONFIG.node_development))return;scan({enabled:true})},[debug]);const[queryClient]=React.useState(()=>new QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:false,refetchOnMount:false}}}));return _jsx(QueryClientProvider,{client:queryClient,children:_jsxs(ThemeProvider,{attribute:"class",disableTransitionOnChange:true,enableSystem:true,...theme,children:[_jsx(Toaster,{closeButton:true,position:toaster?.position??"top-center",...toaster}),_jsx(ProgressProvider,{...progressBar,color:progressBar?.color??"var(--primary)",height:progressBar?.height??"4px",options:{showSpinner:false,...progressBar?.options},shallowRouting:progressBar?.shallowRouting??true,children:_jsx(TooltipProvider,{children:children})})]})})};
@@ -1 +1 @@
1
- {"version":3,"file":"root-layout.d.ts","sourceRoot":"","sources":["../../../../src/views/layouts/root-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,0BAA0B,GAAI,sCAExC,aAAa,KAAG,QAQlB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,+BAI9B,eAAe,GAAG;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB,+BAWA,CAAC"}
1
+ {"version":3,"file":"root-layout.d.ts","sourceRoot":"","sources":["../../../../src/views/layouts/root-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,0BAA0B,GAAI,sCAExC,aAAa,KAAG,QAOlB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,+BAI9B,eAAe,GAAG;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB,+BAWA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{setRequestLocale}from"next-intl/server";import{I18nProvider}from"../../components/i18n-provider.js";import{VitNodeWebSocketProvider}from"../../ws/provider.js";import{RootProvider}from"./provider.js";export const generateMetadataRootLayout=({metadata:{title,shortTitle}})=>{return{title:{default:title,template:`%s - ${shortTitle??title}`},description:"Generated by create next app"}};export const RootLayout=async({children,params,config})=>{const{locale}=await params;setRequestLocale(locale);return _jsx(I18nProvider,{namespaces:[],children:_jsx(RootProvider,{config:config,children:_jsx(VitNodeWebSocketProvider,{children:children})})})};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{setRequestLocale}from"next-intl/server";import{I18nProvider}from"../../components/i18n-provider.js";import{VitNodeWebSocketProvider}from"../../ws/provider.js";import{RootProvider}from"./provider.js";export const generateMetadataRootLayout=({metadata:{title,shortTitle}})=>{return{title:{default:title,template:`%s - ${shortTitle??title}`}}};export const RootLayout=async({children,params,config})=>{const{locale}=await params;setRequestLocale(locale);return _jsx(I18nProvider,{namespaces:[],children:_jsx(RootProvider,{config:config,children:_jsx(VitNodeWebSocketProvider,{children:children})})})};
@@ -1 +1 @@
1
- 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{getSessionApi}from"../../../../../../lib/api/get-session-api.js";import{ClientAuthUserHeader}from"./client.js";export const AuthUserHeader=async()=>{const{user}=await getSessionApi();if(!user)return null;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,{align:"end",className:"w-64 p-2",children:_jsx(ClientAuthUserHeader,{user:user})})]})};
1
+ 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{getSessionApi}from"../../../../../../lib/api/get-session-api.js";import{ClientAuthUserHeader}from"./client.js";export const AuthUserHeader=async()=>{const{user}=await getSessionApi();if(!user)return null;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,{align:"end",className:"w-64 p-2",children:_jsx(ClientAuthUserHeader,{user:user})})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/layouts/theme/header/user/auth/client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,eAAO,MAAM,oBAAoB,GAAI,WAElC;IACD,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;CACvC,gCAgCA,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/layouts/theme/header/user/auth/client.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,eAAO,MAAM,oBAAoB,GAAI,WAElC;IACD,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;CACvC,gCAoDA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{KeyRoundIcon,LogOutIcon}from"lucide-react";import{useTranslations}from"next-intl";import{DropdownMenuGroup,DropdownMenuItem,DropdownMenuSeparator}from"../../../../../../components/ui/dropdown-menu.js";import{Link}from"../../../../../../lib/navigation.js";import{logOutMutationApi}from"./log-out-mutation-api.js";export const ClientAuthUserHeader=({user})=>{const t=useTranslations("core.global.user_bar");return _jsxs(_Fragment,{children:[user.isAdmin&&_jsxs(_Fragment,{children:[_jsx(DropdownMenuGroup,{children:_jsx(DropdownMenuItem,{asChild:true,children:_jsxs(Link,{href:"/admin",target:"_blank",children:[_jsx(KeyRoundIcon,{}),_jsx("span",{children:t("admin_cp")})]})})}),_jsx(DropdownMenuSeparator,{})]}),_jsx(DropdownMenuGroup,{children:_jsxs(DropdownMenuItem,{onClick:async()=>{await logOutMutationApi({})},children:[_jsx(LogOutIcon,{}),_jsx("span",{children:t("log_out")})]})})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{KeyRoundIcon,LogOutIcon,Settings,ShieldIcon,UserIcon}from"lucide-react";import{useTranslations}from"next-intl";import{DropdownMenuGroup,DropdownMenuItem,DropdownMenuSeparator}from"../../../../../../components/ui/dropdown-menu.js";import{Link}from"../../../../../../lib/navigation.js";import{logOutMutationApi}from"./log-out-mutation-api.js";export const ClientAuthUserHeader=({user})=>{const t=useTranslations("core.global.user_bar");return _jsxs(_Fragment,{children:[_jsxs(DropdownMenuGroup,{children:[_jsxs(DropdownMenuItem,{render:_jsx(Link,{href:`/users/${user.nameCode}`}),children:[_jsx(UserIcon,{}),_jsx("span",{children:t("my_profile")})]}),_jsxs(DropdownMenuItem,{render:_jsx(Link,{href:"/settings"}),children:[_jsx(Settings,{}),_jsx("span",{children:t("settings")})]})]}),_jsx(DropdownMenuSeparator,{}),(user.isAdmin||user.isModerator)&&_jsxs(_Fragment,{children:[_jsxs(DropdownMenuGroup,{children:[user.isModerator&&_jsxs(DropdownMenuItem,{render:_jsx(Link,{href:"/mod_cp"}),children:[_jsx(ShieldIcon,{}),_jsx("span",{children:t("mod_cp")})]}),user.isAdmin&&_jsxs(DropdownMenuItem,{render:_jsx(Link,{href:"/admin",target:"_blank"}),children:[_jsx(KeyRoundIcon,{}),_jsx("span",{children:t("admin_cp")})]})]}),_jsx(DropdownMenuSeparator,{})]}),_jsx(DropdownMenuGroup,{children:_jsxs(DropdownMenuItem,{onClick:async()=>{await logOutMutationApi({})},children:[_jsx(LogOutIcon,{}),_jsx("span",{children:t("log_out")})]})})]})};
@@ -1,12 +1,13 @@
1
1
  import type { ProgressProvider } from "@bprogress/next/app";
2
2
  import type { drizzle } from "drizzle-orm/postgres-js";
3
- import type { ThemeProvider } from "next-themes";
3
+ import type { RedisOptions } from "ioredis";
4
4
  import type { IRateLimiterOptions } from "rate-limiter-flexible";
5
5
  import type React from "react";
6
6
  import type { CronAdapter } from "./api/lib/cron";
7
7
  import type { BuildPluginApiReturn } from "./api/lib/plugin";
8
8
  import type { EmailApiPlugin } from "./api/models/email";
9
9
  import type { SSOApiPlugin } from "./api/models/sso";
10
+ import type { ThemeProviderProps } from "./components/theme-provider";
10
11
  import type { DefaultTemplateEmailProps } from "./emails/default-template";
11
12
  import type { BuildPluginReturn } from "./lib/plugin";
12
13
  export interface LocaleConfig {
@@ -24,7 +25,7 @@ export interface VitNodeConfig<AppLocales extends LocaleConfig[] = LocaleConfig[
24
25
  metadata: VitNodeApiConfig["metadata"];
25
26
  plugins: BuildPluginReturn[];
26
27
  progressBar?: React.ComponentProps<typeof ProgressProvider>;
27
- theme?: Omit<React.ComponentProps<typeof ThemeProvider>, "attribute" | "disableTransitionOnChange" | "enableSystem">;
28
+ theme?: Omit<ThemeProviderProps, "attribute" | "children" | "disableTransitionOnChange" | "enableSystem">;
28
29
  }
29
30
  export interface VitNodeApiConfig {
30
31
  authorization?: {
@@ -42,7 +43,7 @@ export interface VitNodeApiConfig {
42
43
  siteKey: string | undefined;
43
44
  type: "cloudflare_turnstile" | "recaptcha_v3";
44
45
  };
45
- cronAdapter?: CronAdapter;
46
+ cron?: CronAdapter;
46
47
  dbProvider: ReturnType<typeof drizzle>;
47
48
  email?: {
48
49
  adapter?: EmailApiPlugin;
@@ -58,6 +59,9 @@ export interface VitNodeApiConfig {
58
59
  }>;
59
60
  plugins: BuildPluginApiReturn[];
60
61
  rateLimiter?: Omit<IRateLimiterOptions, "keyPrefix">;
62
+ redis?: RedisOptions & {
63
+ url?: string;
64
+ };
61
65
  }
62
66
  export declare function buildConfig<AppLocales extends LocaleConfig[]>(args: VitNodeConfig<AppLocales>): VitNodeConfig<AppLocales>;
63
67
  export declare const getVitNodeConfig: () => VitNodeConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"vitnode.config.d.ts","sourceRoot":"","sources":["../../src/vitnode.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa,CAC5B,UAAU,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE;IAElD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE;QACJ,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1C,YAAY,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;QAChD,OAAO,EAAE,UAAU,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,IAAI,CACV,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,EAC1C,WAAW,GAAG,2BAA2B,GAAG,cAAc,CAC3D,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE;QACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,IAAI,EAAE,sBAAsB,GAAG,cAAc,CAAC;KAC/C,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,IAAI,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,cAAc,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC;KAC/E,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;CACtD;AAID,wBAAgB,WAAW,CAAC,UAAU,SAAS,YAAY,EAAE,EAC3D,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,GAC9B,aAAa,CAAC,UAAU,CAAC,CAc3B;AAOD,eAAO,MAAM,gBAAgB,QAAO,aAQnC,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAEvE;AAED,eAAO,MAAM,mBAAmB,GAAU,mDAIvC;IACD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,aAAa,EAAE,aAAa,CAAC;CAC9B;;;;;EAkCA,CAAC"}
1
+ {"version":3,"file":"vitnode.config.d.ts","sourceRoot":"","sources":["../../src/vitnode.config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/ws/handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAsDtE,wBAAgB,sBAAsB,CACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAEzD,GAAG,OAAO,CAAC,UAAU,CAAC,KAAG,OAAO,CAAC,QAAQ,CAAC,CAwDzD"}
1
+ {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/ws/handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAsDtE,wBAAgB,sBAAsB,CACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAMzD,GAAG,OAAO,CAAC,UAAU,CAAC,KAAG,OAAO,CAAC,QAAQ,CAAC,CAwDzD"}
@@ -1 +1 @@
1
- import{wsRegistry}from"./registry.js";import{getWebSocketId}from"./types.js";const parseMessage=raw=>{if(typeof raw!=="string")return undefined;try{const parsed=JSON.parse(raw);if(typeof parsed==="object"&&parsed!==null&&"id"in parsed&&typeof parsed.id==="string"){return parsed}}catch{}return undefined};export function handleVitNodeWebSocket(createEvents){return async c=>{const inline=await createEvents?.(c);const registered=c.get("core")?.webSockets??[];const userId=c.get("user")?.id??null;return{onOpen:(event,ws)=>{wsRegistry.add(ws,userId);inline?.onOpen?.(event,ws)},onClose:(event,ws)=>{wsRegistry.remove(ws);inline?.onClose?.(event,ws)},onError:inline?.onError,onMessage:(event,ws)=>{const message=parseMessage(event.data);const target=message?registered.find(webSocket=>getWebSocketId(webSocket)===message.id):undefined;if(message&&target){const send=data=>{ws.send(JSON.stringify({id:message.id,data}))};try{Promise.resolve(target.onMessage({c,data:message.data,send,ws})).catch(error=>{console.error("WebSocket handler error:",error)})}catch(error){console.error("WebSocket handler error:",error)}return}inline?.onMessage?.(event,ws)}}}}
1
+ import{markWebSocketEnabled,wsRegistry}from"./registry.js";import{getWebSocketId}from"./types.js";const parseMessage=raw=>{if(typeof raw!=="string")return undefined;try{const parsed=JSON.parse(raw);if(typeof parsed==="object"&&parsed!==null&&"id"in parsed&&typeof parsed.id==="string"){return parsed}}catch{}return undefined};export function handleVitNodeWebSocket(createEvents){markWebSocketEnabled();return async c=>{const inline=await createEvents?.(c);const registered=c.get("core")?.webSockets??[];const userId=c.get("user")?.id??null;return{onOpen:(event,ws)=>{wsRegistry.add(ws,userId);inline?.onOpen?.(event,ws)},onClose:(event,ws)=>{wsRegistry.remove(ws);inline?.onClose?.(event,ws)},onError:inline?.onError,onMessage:(event,ws)=>{const message=parseMessage(event.data);const target=message?registered.find(webSocket=>getWebSocketId(webSocket)===message.id):undefined;if(message&&target){const send=data=>{ws.send(JSON.stringify({id:message.id,data}))};try{Promise.resolve(target.onMessage({c,data:message.data,send,ws})).catch(error=>{console.error("WebSocket handler error:",error)})}catch(error){console.error("WebSocket handler error:",error)}return}inline?.onMessage?.(event,ws)}}}}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/ws/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiBhD,MAAM,WAAW,uBAAuB;IAEtC,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/C,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,MAAM,CAAC;IAM5B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3C;AAkBD,eAAO,MAAM,sBAAsB,GAAI,yCAIpC,uBAAuB,KAAG,gBAmL5B,CAAC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/ws/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiBhD,MAAM,WAAW,uBAAuB;IAEtC,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/C,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,MAAM,CAAC;IAM5B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3C;AAkBD,eAAO,MAAM,sBAAsB,GAAI,yCAIpC,uBAAuB,KAAG,gBAkL5B,CAAC"}
@@ -1 +1 @@
1
- const LEADER_LOCK="vitnode-ws-leader";const CHANNEL_NAME="vitnode-ws";const RECONNECT_DELAY=2e3;export const createWebSocketManager=({url,onMessage,onReadyStateChange})=>{let socket=null;let isLeader=false;let isDestroyed=false;let readyState=0;let releaseLeadership;let reconnectTimeout;const outgoingQueue=[];const channel=typeof BroadcastChannel==="undefined"?null:new BroadcastChannel(CHANNEL_NAME);const post=message=>channel?.postMessage(message);const setReadyState=state=>{readyState=state;onReadyStateChange(state)};const sendOverSocket=message=>{if(socket?.readyState===WebSocket.OPEN){socket.send(JSON.stringify(message))}else{outgoingQueue.push(message)}};const openSocket=()=>{if(isDestroyed)return;const ws=new WebSocket(url);socket=ws;ws.onopen=()=>{setReadyState(ws.readyState);post({payload:ws.readyState,type:"ready-state"});outgoingQueue.splice(0).forEach(message=>ws.send(JSON.stringify(message)))};ws.onmessage=event=>{if(typeof event.data!=="string")return;let message;try{message=JSON.parse(event.data)}catch{return}onMessage(message);post({payload:message,type:"message"})};ws.onclose=()=>{setReadyState(ws.readyState);post({payload:ws.readyState,type:"ready-state"});socket=null;if(!isDestroyed&&isLeader){reconnectTimeout=setTimeout(openSocket,RECONNECT_DELAY)}}};const becomeLeader=()=>{if(isDestroyed)return;isLeader=true;openSocket()};const reconnectLeader=()=>{if(!isLeader||isDestroyed)return;if(reconnectTimeout)clearTimeout(reconnectTimeout);if(socket){socket.onclose=null;socket.onerror=null;socket.onmessage=null;socket.onopen=null;socket.close();socket=null}openSocket()};const requestLeadership=()=>{if(typeof navigator==="undefined"||!navigator.locks||!channel){becomeLeader();return}void navigator.locks.request(LEADER_LOCK,{mode:"exclusive"},async()=>{becomeLeader();await new Promise(resolve=>{releaseLeadership=resolve})}).catch(()=>{becomeLeader()})};if(channel){channel.onmessage=event=>{const message=event.data;switch(message.type){case"message":onMessage(message.payload);break;case"ready-state":if(!isLeader)setReadyState(message.payload);break;case"reconnect":if(isLeader)reconnectLeader();break;case"request-state":if(isLeader)post({payload:readyState,type:"ready-state"});break;case"send":if(isLeader)sendOverSocket(message.payload);break}}}const send=message=>{if(isLeader||!channel){sendOverSocket(message)}else{post({payload:message,type:"send"})}};const reconnect=()=>{if(isLeader||!channel){reconnectLeader()}else{post({type:"reconnect"})}};requestLeadership();post({type:"request-state"});const destroy=()=>{isDestroyed=true;if(reconnectTimeout)clearTimeout(reconnectTimeout);socket?.close();socket=null;releaseLeadership?.();channel?.close()};return{destroy,getReadyState:()=>readyState,reconnect,send}};
1
+ const LEADER_LOCK="vitnode-ws-leader";const CHANNEL_NAME="vitnode-ws";const RECONNECT_DELAY=2e3;export const createWebSocketManager=({url,onMessage,onReadyStateChange})=>{let socket=null;let isLeader=false;let isDestroyed=false;let readyState=0;let releaseLeadership;let reconnectTimeout;const outgoingQueue=[];const channel=typeof BroadcastChannel==="undefined"?null:new BroadcastChannel(CHANNEL_NAME);const post=message=>channel?.postMessage(message);const setReadyState=state=>{readyState=state;onReadyStateChange(state)};const sendOverSocket=message=>{if(socket?.readyState===WebSocket.OPEN){socket.send(JSON.stringify(message))}else{outgoingQueue.push(message)}};const openSocket=()=>{const ws=new WebSocket(url);socket=ws;ws.onopen=()=>{setReadyState(ws.readyState);post({payload:ws.readyState,type:"ready-state"});outgoingQueue.splice(0).forEach(message=>ws.send(JSON.stringify(message)))};ws.onmessage=event=>{if(typeof event.data!=="string")return;let message;try{message=JSON.parse(event.data)}catch{return}onMessage(message);post({payload:message,type:"message"})};ws.onclose=()=>{setReadyState(ws.readyState);post({payload:ws.readyState,type:"ready-state"});socket=null;if(!isDestroyed&&isLeader){reconnectTimeout=setTimeout(openSocket,RECONNECT_DELAY)}}};const becomeLeader=()=>{if(isDestroyed)return;isLeader=true;openSocket()};const reconnectLeader=()=>{if(!isLeader||isDestroyed)return;if(reconnectTimeout)clearTimeout(reconnectTimeout);if(socket){socket.onclose=null;socket.onerror=null;socket.onmessage=null;socket.onopen=null;socket.close();socket=null}openSocket()};const requestLeadership=()=>{if(typeof navigator==="undefined"||!navigator.locks||!channel){becomeLeader();return}void navigator.locks.request(LEADER_LOCK,{mode:"exclusive"},async()=>{if(isDestroyed)return;const held=new Promise(resolve=>{releaseLeadership=resolve});becomeLeader();await held}).catch(()=>{becomeLeader()})};if(channel){channel.onmessage=event=>{const message=event.data;switch(message.type){case"message":onMessage(message.payload);break;case"ready-state":if(!isLeader)setReadyState(message.payload);break;case"reconnect":if(isLeader)reconnectLeader();break;case"request-state":if(isLeader)post({payload:readyState,type:"ready-state"});break;case"send":if(isLeader)sendOverSocket(message.payload);break}}}const send=message=>{if(isLeader||!channel){sendOverSocket(message)}else{post({payload:message,type:"send"})}};const reconnect=()=>{if(isLeader||!channel){reconnectLeader()}else{post({type:"reconnect"})}};requestLeadership();post({type:"request-state"});const destroy=()=>{isDestroyed=true;if(reconnectTimeout)clearTimeout(reconnectTimeout);socket?.close();socket=null;releaseLeadership?.();channel?.close()};return{destroy,getReadyState:()=>readyState,reconnect,send}};
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ws/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAExC,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC;CAC3D;AAKD,eAAO,MAAM,0BAA0B,QAAO,4BAS7C,CAAC;AAiBF,eAAO,MAAM,wBAAwB,GAAI,eAEtC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,sBAoEA,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ws/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAExC,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC;CAC3D;AAKD,eAAO,MAAM,0BAA0B,QAAO,4BAS7C,CAAC;AAqBF,eAAO,MAAM,wBAAwB,GAAI,eAEtC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,sBAwEA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx}from"react/jsx-runtime";import React from"react";import{CONFIG}from"../lib/config.js";import{createWebSocketManager}from"./manager.js";const VitNodeWebSocketContext=React.createContext(null);export const useVitNodeWebSocketContext=()=>{const context=React.use(VitNodeWebSocketContext);if(!context){throw new Error("useVitNodeWebSocket must be used within a <VitNodeWebSocketProvider>.")}return context};const getWebSocketUrl=()=>{const url=new URL("/api/ws",CONFIG.api);url.protocol=url.protocol==="https:"?"wss:":"ws:";return url.toString()};export const VitNodeWebSocketProvider=({children})=>{const listenersRef=React.useRef(new Map);const managerRef=React.useRef(null);const pendingSendRef=React.useRef([]);const[readyState,setReadyState]=React.useState(typeof WebSocket!=="undefined"?WebSocket.CONNECTING:0);const dispatch=React.useCallback(message=>{listenersRef.current.get(message.id)?.forEach(listener=>listener(message.data))},[]);React.useEffect(()=>{const manager=createWebSocketManager({url:getWebSocketUrl(),onMessage:dispatch,onReadyStateChange:setReadyState});managerRef.current=manager;pendingSendRef.current.splice(0).forEach(message=>manager.send(message));return()=>{manager.destroy();managerRef.current=null}},[dispatch]);const subscribe=React.useCallback((id,listener)=>{const listeners=listenersRef.current.get(id)??new Set;listeners.add(listener);listenersRef.current.set(id,listeners);return()=>{listeners.delete(listener);if(listeners.size===0){listenersRef.current.delete(id)}}},[]);const send=React.useCallback((id,data)=>{const message={data,id};const manager=managerRef.current;if(manager){manager.send(message)}else{pendingSendRef.current.push(message)}},[]);const reconnect=React.useCallback(()=>{managerRef.current?.reconnect()},[]);const value=React.useMemo(()=>({readyState,reconnect,send,subscribe}),[readyState,reconnect,send,subscribe]);return _jsx(VitNodeWebSocketContext.Provider,{value:value,children:children})};
1
+ "use client";import{jsx as _jsx}from"react/jsx-runtime";import React from"react";import{CONFIG}from"../lib/config.js";import{createWebSocketManager}from"./manager.js";const VitNodeWebSocketContext=React.createContext(null);export const useVitNodeWebSocketContext=()=>{const context=React.use(VitNodeWebSocketContext);if(!context){throw new Error("useVitNodeWebSocket must be used within a <VitNodeWebSocketProvider>.")}return context};const getWebSocketUrl=()=>{const url=new URL("/api/ws",CONFIG.api);url.protocol=url.protocol==="https:"?"wss:":"ws:";return url.toString()};const shouldConnectWebSocket=()=>CONFIG.api.pathname!==CONFIG.web.pathname||CONFIG.api.port!==CONFIG.web.port;export const VitNodeWebSocketProvider=({children})=>{const listenersRef=React.useRef(new Map);const managerRef=React.useRef(null);const pendingSendRef=React.useRef([]);const[readyState,setReadyState]=React.useState(()=>{if(typeof WebSocket==="undefined")return 0;return shouldConnectWebSocket()?WebSocket.CONNECTING:WebSocket.CLOSED});const dispatch=React.useCallback(message=>{listenersRef.current.get(message.id)?.forEach(listener=>listener(message.data))},[]);React.useEffect(()=>{if(!shouldConnectWebSocket())return;const manager=createWebSocketManager({url:getWebSocketUrl(),onMessage:dispatch,onReadyStateChange:setReadyState});managerRef.current=manager;pendingSendRef.current.splice(0).forEach(message=>manager.send(message));return()=>{manager.destroy();managerRef.current=null}},[dispatch]);const subscribe=React.useCallback((id,listener)=>{const listeners=listenersRef.current.get(id)??new Set;listeners.add(listener);listenersRef.current.set(id,listeners);return()=>{listeners.delete(listener);if(listeners.size===0){listenersRef.current.delete(id)}}},[]);const send=React.useCallback((id,data)=>{const message={data,id};const manager=managerRef.current;if(manager){manager.send(message)}else{pendingSendRef.current.push(message)}},[]);const reconnect=React.useCallback(()=>{managerRef.current?.reconnect()},[]);const value=React.useMemo(()=>({readyState,reconnect,send,subscribe}),[readyState,reconnect,send,subscribe]);return _jsx(VitNodeWebSocketContext.Provider,{value:value,children:children})};
@@ -1,11 +1,16 @@
1
1
  import type { WSContext } from "hono/ws";
2
+ import type { Redis } from "ioredis";
2
3
  import type { VitNodeWSChannel } from "./types";
4
+ export declare const markWebSocketEnabled: () => void;
5
+ export declare const isWebSocketEnabled: () => boolean;
3
6
  export declare const wsRegistry: {
4
7
  add: (ws: WSContext, userId: null | number) => void;
5
8
  broadcast: (id: string, data: unknown) => void;
6
9
  remove: (ws: WSContext) => void;
7
10
  sendToUser: (userId: number, id: string, data: unknown) => void;
8
11
  };
12
+ export declare const isRealtimePubSubEnabled: () => boolean;
13
+ export declare const initRealtimePubSub: (client: null | Redis) => void;
9
14
  export interface VitNodeRealtime {
10
15
  broadcast: <Receive>(channel: VitNodeWSChannel<unknown, Receive>, data: Receive) => void;
11
16
  sendToUser: <Receive>(userId: number, channel: VitNodeWSChannel<unknown, Receive>, data: Receive) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ws/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAC;AAsBlE,eAAO,MAAM,UAAU;cACX,SAAS,UAAU,IAAI,GAAG,MAAM,KAAG,IAAI;oBAIjC,MAAM,QAAQ,OAAO,KAAG,IAAI;iBAG/B,SAAS,KAAG,IAAI;yBAIR,MAAM,MAAM,MAAM,QAAQ,OAAO,KAAG,IAAI;CAK9D,CAAC;AAEF,MAAM,WAAW,eAAe;IAM9B,SAAS,EAAE,CAAC,OAAO,EACjB,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,OAAO,KACV,IAAI,CAAC;IAKV,UAAU,EAAE,CAAC,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,OAAO,KACV,IAAI,CAAC;CACX;AAKD,eAAO,MAAM,QAAQ,EAAE,eAOtB,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ws/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAC;AAwBlE,eAAO,MAAM,oBAAoB,QAAO,IAEvC,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAAO,OAA2B,CAAC;AAUlE,eAAO,MAAM,UAAU;cACX,SAAS,UAAU,IAAI,GAAG,MAAM,KAAG,IAAI;oBAIjC,MAAM,QAAQ,OAAO,KAAG,IAAI;iBAG/B,SAAS,KAAG,IAAI;yBAIR,MAAM,MAAM,MAAM,QAAQ,OAAO,KAAG,IAAI;CAK9D,CAAC;AAqBF,eAAO,MAAM,uBAAuB,QAAO,OAA6B,CAAC;AAyCzE,eAAO,MAAM,kBAAkB,GAAI,QAAQ,IAAI,GAAG,KAAK,KAAG,IA8BzD,CAAC;AAEF,MAAM,WAAW,eAAe;IAM9B,SAAS,EAAE,CAAC,OAAO,EACjB,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,OAAO,KACV,IAAI,CAAC;IAKV,UAAU,EAAE,CAAC,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,OAAO,KACV,IAAI,CAAC;CACX;AASD,eAAO,MAAM,QAAQ,EAAE,eAStB,CAAC"}
@@ -1 +1 @@
1
- const connections=new Map;const sendTo=(ws,id,data)=>{try{ws.send(JSON.stringify({data,id}))}catch(_error){wsRegistry.remove(ws)}};export const wsRegistry={add:(ws,userId)=>{connections.set(ws,userId)},broadcast:(id,data)=>{connections.forEach((_userId,ws)=>sendTo(ws,id,data))},remove:ws=>{connections.delete(ws)},sendToUser:(userId,id,data)=>{connections.forEach((connectionUserId,ws)=>{if(connectionUserId===userId)sendTo(ws,id,data)})}};export const realtime={broadcast:(channel,data)=>{wsRegistry.broadcast(channel.id,data)},sendToUser:(userId,channel,data)=>{wsRegistry.sendToUser(userId,channel.id,data)}};
1
+ const connections=new Map;let webSocketEnabled=false;export const markWebSocketEnabled=()=>{webSocketEnabled=true};export const isWebSocketEnabled=()=>webSocketEnabled;const sendTo=(ws,id,data)=>{try{ws.send(JSON.stringify({data,id}))}catch(_error){wsRegistry.remove(ws)}};export const wsRegistry={add:(ws,userId)=>{connections.set(ws,userId)},broadcast:(id,data)=>{connections.forEach((_userId,ws)=>sendTo(ws,id,data))},remove:ws=>{connections.delete(ws)},sendToUser:(userId,id,data)=>{connections.forEach((connectionUserId,ws)=>{if(connectionUserId===userId)sendTo(ws,id,data)})}};const REALTIME_PUBSUB_CHANNEL="vitnode:ws";const instanceId=crypto.randomUUID();let publisher=null;export const isRealtimePubSubEnabled=()=>publisher!==null;const deliverLocally=message=>{if(message.type==="broadcast"){wsRegistry.broadcast(message.id,message.data)}else if(message.type==="sendToUser"&&typeof message.userId==="number"){wsRegistry.sendToUser(message.userId,message.id,message.data)}};const publish=message=>{if(!publisher)return;void publisher.publish(REALTIME_PUBSUB_CHANNEL,JSON.stringify({...message,origin:instanceId})).catch(()=>{})};export const initRealtimePubSub=client=>{if(!client||publisher)return;publisher=client;const subscriber=client.duplicate();subscriber.on("error",()=>{});subscriber.on("ready",()=>{void subscriber.subscribe(REALTIME_PUBSUB_CHANNEL).catch(()=>{})});subscriber.on("message",(channel,raw)=>{if(channel!==REALTIME_PUBSUB_CHANNEL)return;try{const message=JSON.parse(raw);if(message.origin===instanceId)return;deliverLocally(message)}catch{}})};export const realtime={broadcast:(channel,data)=>{wsRegistry.broadcast(channel.id,data);publish({data,id:channel.id,type:"broadcast"})},sendToUser:(userId,channel,data)=>{wsRegistry.sendToUser(userId,channel.id,data);publish({data,id:channel.id,type:"sendToUser",userId})}};