@tulip-systems/core 0.10.1 → 0.10.3

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 (673) hide show
  1. package/dist/auth/client.d.mts +11 -11
  2. package/dist/auth/client.mjs +10 -10
  3. package/dist/auth/server.d.mts +8 -8
  4. package/dist/auth/server.mjs +8 -8
  5. package/dist/auth.d.mts +5 -5
  6. package/dist/auth.mjs +4 -4
  7. package/dist/commands/client.d.mts +16 -16
  8. package/dist/commands/client.mjs +16 -16
  9. package/dist/commands.d.mts +3 -3
  10. package/dist/commands.mjs +3 -3
  11. package/dist/components/client.d.mts +48 -48
  12. package/dist/components/client.mjs +48 -48
  13. package/dist/components/layouts/root-layout.server.mjs +1 -0
  14. package/dist/components/server.d.mts +2 -2
  15. package/dist/components/server.mjs +2 -2
  16. package/dist/components/ui/badge.d.mts +1 -1
  17. package/dist/components/ui/button-group.d.mts +1 -1
  18. package/dist/components/ui/button.d.mts +2 -2
  19. package/dist/components/ui/field.client.d.mts +1 -1
  20. package/dist/components.d.mts +40 -40
  21. package/dist/components.mjs +39 -39
  22. package/dist/config.d.mts +5 -7
  23. package/dist/config.mjs +4 -5
  24. package/dist/data-tables/client.d.mts +21 -21
  25. package/dist/data-tables/client.mjs +21 -21
  26. package/dist/data-tables/server.d.mts +7 -7
  27. package/dist/data-tables/server.mjs +7 -7
  28. package/dist/data-tables.d.mts +15 -14
  29. package/dist/data-tables.mjs +14 -13
  30. package/dist/database/server.d.mts +1 -1
  31. package/dist/database/server.mjs +1 -1
  32. package/dist/database.d.mts +2 -2
  33. package/dist/database.mjs +1 -1
  34. package/dist/emails/server.d.mts +1 -1
  35. package/dist/emails/server.mjs +1 -1
  36. package/dist/inline/client.d.mts +15 -15
  37. package/dist/inline/client.mjs +15 -15
  38. package/dist/inline.d.mts +1 -1
  39. package/dist/inline.mjs +1 -1
  40. package/dist/lib/client.d.mts +4 -4
  41. package/dist/lib/client.mjs +4 -4
  42. package/dist/lib/utils/url.d.mts +15 -4
  43. package/dist/lib/utils/url.mjs +17 -8
  44. package/dist/lib.d.mts +7 -7
  45. package/dist/lib.mjs +6 -6
  46. package/dist/modules/auth/components/create-first-user-guard.server.d.mts +4 -3
  47. package/dist/modules/auth/components/guard.server.d.mts +5 -5
  48. package/dist/modules/auth/components/guard.server.mjs +3 -4
  49. package/dist/modules/auth/handler/create-client.client.d.mts +28 -6382
  50. package/dist/modules/auth/handler/create-client.client.mjs +4 -16
  51. package/dist/modules/auth/handler/proxy.server.d.mts +1 -0
  52. package/dist/modules/auth/handler/proxy.server.mjs +1 -1
  53. package/dist/modules/auth/handler/route.server.d.mts +2 -4
  54. package/dist/modules/auth/handler/route.server.mjs +3 -3
  55. package/dist/modules/auth/handler/service.server.d.mts +41 -2079
  56. package/dist/modules/auth/handler/service.server.mjs +40 -60
  57. package/dist/modules/auth/hooks/use-auth-client.d.mts +5 -6
  58. package/dist/modules/auth/hooks/use-permission.d.mts +7 -7
  59. package/dist/modules/auth/hooks/use-permission.mjs +1 -1
  60. package/dist/modules/auth/hooks/use-session.d.mts +13 -35
  61. package/dist/modules/auth/hooks/use-session.mjs +3 -0
  62. package/dist/modules/auth/lib/helpers.server.d.mts +7 -77
  63. package/dist/modules/auth/lib/helpers.server.mjs +4 -34
  64. package/dist/modules/auth/lib/permissions.d.mts +22 -3
  65. package/dist/modules/auth/plugins/admin.d.mts +916 -0
  66. package/dist/modules/auth/plugins/admin.mjs +18 -0
  67. package/dist/modules/auth/plugins/email-otp.d.mts +554 -0
  68. package/dist/modules/auth/plugins/email-otp.mjs +34 -0
  69. package/dist/modules/config/lib/context.d.mts +5 -4
  70. package/dist/modules/data-tables/components/filters/date-range.client.mjs +5 -2
  71. package/dist/modules/data-tables/lib/converters/dto.d.mts +12 -1
  72. package/dist/modules/data-tables/lib/converters/dto.mjs +13 -1
  73. package/dist/modules/data-tables/lib/converters/filters.d.mts +1 -1
  74. package/dist/modules/data-tables/server/get-data.server.d.mts +3 -2
  75. package/dist/modules/data-tables/strategies/infinite/components.mjs +1 -2
  76. package/dist/modules/data-tables/strategies/infinite/strategy.mjs +0 -6
  77. package/dist/modules/inline/lib/variants.d.mts +1 -1
  78. package/dist/modules/router/handler/init.server.d.mts +43 -51
  79. package/dist/modules/router/handler/init.server.mjs +24 -41
  80. package/dist/modules/router/handler/route.server.d.mts +6 -3
  81. package/dist/modules/router/handler/route.server.mjs +6 -9
  82. package/dist/modules/router/lib/query-client.server.d.mts +2 -2
  83. package/dist/modules/router/lib/query-client.server.mjs +3 -3
  84. package/dist/modules/storage/components/dropzone.client.d.mts +2 -2
  85. package/dist/modules/storage/lib/router-handlers.server.d.mts +6 -7
  86. package/dist/modules/storage/lib/router-handlers.server.mjs +2 -2
  87. package/dist/modules/storage/lib/{procedures.server.d.mts → router.server.d.mts} +42 -19
  88. package/dist/modules/storage/lib/router.server.mjs +21 -0
  89. package/dist/modules/storage/lib/service.server.d.mts +25 -25
  90. package/dist/modules/storage/lib/upload.client.d.mts +9 -10
  91. package/dist/router/client.d.mts +1 -1
  92. package/dist/router/client.mjs +1 -1
  93. package/dist/router/server.d.mts +7 -8
  94. package/dist/router/server.mjs +7 -8
  95. package/dist/router.d.mts +2 -2
  96. package/dist/router.mjs +2 -2
  97. package/dist/storage/client.d.mts +8 -8
  98. package/dist/storage/client.mjs +8 -8
  99. package/dist/storage/server.d.mts +5 -5
  100. package/dist/storage/server.mjs +5 -5
  101. package/dist/storage.d.mts +8 -8
  102. package/dist/storage.mjs +7 -7
  103. package/package.json +2 -2
  104. package/src/components/layouts/root-layout.server.tsx +1 -1
  105. package/src/lib/utils/url.ts +19 -8
  106. package/src/modules/auth/components/create-first-user-guard.server.tsx +5 -4
  107. package/src/modules/auth/components/create-first-user-page.client.tsx +6 -1
  108. package/src/modules/auth/components/forget-password-page.client.tsx +3 -2
  109. package/src/modules/auth/components/guard.server.tsx +6 -7
  110. package/src/modules/auth/components/login-page.client.tsx +3 -1
  111. package/src/modules/auth/components/reset-password-page.client.tsx +3 -2
  112. package/src/modules/auth/db/schema.ts +1 -1
  113. package/src/modules/auth/entry.server.ts +0 -1
  114. package/src/modules/auth/handler/create-client.client.ts +43 -41
  115. package/src/modules/auth/handler/proxy.server.ts +4 -2
  116. package/src/modules/auth/handler/route.server.ts +6 -5
  117. package/src/modules/auth/handler/service.server.ts +70 -94
  118. package/src/modules/auth/hooks/use-auth-client.tsx +6 -18
  119. package/src/modules/auth/hooks/use-permission.ts +23 -9
  120. package/src/modules/auth/hooks/use-session.ts +18 -5
  121. package/src/modules/auth/lib/helpers.server.ts +16 -44
  122. package/src/modules/auth/lib/permissions.ts +35 -2
  123. package/src/modules/auth/plugins/admin.ts +28 -0
  124. package/src/modules/auth/plugins/email-otp.ts +43 -0
  125. package/src/modules/config/entry.ts +0 -3
  126. package/src/modules/config/lib/context.ts +8 -4
  127. package/src/modules/data-tables/components/filters/date-range.client.tsx +6 -12
  128. package/src/modules/data-tables/entry.ts +1 -0
  129. package/src/modules/data-tables/lib/converters/dto.ts +12 -0
  130. package/src/modules/data-tables/lib/converters/filters.ts +1 -1
  131. package/src/modules/data-tables/lib/filters/parsers.ts +1 -2
  132. package/src/modules/data-tables/server/get-data.server.ts +8 -3
  133. package/src/modules/data-tables/strategies/infinite/components.tsx +2 -2
  134. package/src/modules/data-tables/strategies/infinite/strategy.ts +0 -14
  135. package/src/modules/inline/components/inputs/combobox-dropdown.client.tsx +1 -3
  136. package/src/modules/inline/components/inputs/combobox.client.tsx +2 -8
  137. package/src/modules/inline/components/inputs/date-time.client.tsx +4 -24
  138. package/src/modules/inline/components/inputs/date.client.tsx +3 -11
  139. package/src/modules/inline/components/inputs/editor.client.tsx +9 -10
  140. package/src/modules/inline/components/inputs/input.client.tsx +10 -33
  141. package/src/modules/inline/components/inputs/select.client.tsx +3 -16
  142. package/src/modules/inline/components/inputs/switch.client.tsx +3 -16
  143. package/src/modules/router/entry.server.ts +0 -1
  144. package/src/modules/router/handler/init.server.ts +58 -62
  145. package/src/modules/router/handler/route.server.ts +19 -19
  146. package/src/modules/router/lib/query-client.server.tsx +2 -2
  147. package/src/modules/storage/entry.server.ts +1 -1
  148. package/src/modules/storage/lib/router-handlers.server.ts +8 -10
  149. package/src/modules/storage/lib/router.server.ts +53 -0
  150. package/src/modules/storage/lib/upload.client.ts +9 -21
  151. package/src/styles.css +107 -78
  152. package/dist/dist/config.d.mts +0 -5
  153. package/dist/dist/modules/auth/handler/service.server.d.mts +0 -8
  154. package/dist/dist/modules/auth/lib/permissions.d.mts +0 -2
  155. package/dist/dist/modules/config/lib/context.d.mts +0 -4
  156. package/dist/dist/modules/config/paths/helpers.d.mts +0 -1
  157. package/dist/dist/modules/config/paths/types.d.mts +0 -3
  158. package/dist/dist/modules/database/lib/helpers.d.mts +0 -2
  159. package/dist/dist/modules/database/lib/service.server.d.mts +0 -2
  160. package/dist/dist/modules/database/lib/types.d.mts +0 -5
  161. package/dist/dist/modules/emails/lib/service.server.d.mts +0 -2
  162. package/dist/dist/modules/storage/lib/schema.d.mts +0 -1
  163. package/dist/dist/modules/storage/lib/service.server.d.mts +0 -5
  164. package/dist/dist/modules/storage/lib/validators.d.mts +0 -4
  165. package/dist/dist/modules/storage/providers/lib/types.d.mts +0 -1
  166. package/dist/dist/modules/storage/providers/lib/validators.d.mts +0 -2
  167. package/dist/modules/router/handler/context.server.d.mts +0 -62
  168. package/dist/modules/router/handler/context.server.mjs +0 -20
  169. package/dist/modules/storage/lib/procedures.server.mjs +0 -21
  170. package/dist/src/components/common/icons.d.mts +0 -60
  171. package/dist/src/components/common/icons.mjs +0 -121
  172. package/dist/src/components/common/status.d.mts +0 -52
  173. package/dist/src/components/common/status.mjs +0 -55
  174. package/dist/src/components/editor/components/content.client.d.mts +0 -6
  175. package/dist/src/components/editor/components/content.client.mjs +0 -16
  176. package/dist/src/components/editor/components/editor.client.d.mts +0 -48
  177. package/dist/src/components/editor/components/editor.client.mjs +0 -55
  178. package/dist/src/components/editor/components/menu-nodes.client.mjs +0 -92
  179. package/dist/src/components/editor/components/menu.client.d.mts +0 -9
  180. package/dist/src/components/editor/components/menu.client.mjs +0 -168
  181. package/dist/src/components/editor/extensions/file-handler/extension.d.mts +0 -20
  182. package/dist/src/components/editor/extensions/file-handler/extension.mjs +0 -39
  183. package/dist/src/components/editor/extensions/file-handler/strategy.d.mts +0 -26
  184. package/dist/src/components/editor/extensions/file-handler/strategy.mjs +0 -110
  185. package/dist/src/components/editor/extensions/file-handler/utils.mjs +0 -49
  186. package/dist/src/components/editor/extensions/image/extension.d.mts +0 -7
  187. package/dist/src/components/editor/extensions/image/extension.mjs +0 -50
  188. package/dist/src/components/editor/extensions/skeleton/extension.mjs +0 -40
  189. package/dist/src/components/editor/extensions/skeleton/renderer.mjs +0 -24
  190. package/dist/src/components/editor/lib/constants.d.mts +0 -62
  191. package/dist/src/components/editor/lib/constants.mjs +0 -101
  192. package/dist/src/components/editor/lib/extensions.d.mts +0 -67
  193. package/dist/src/components/editor/lib/extensions.mjs +0 -49
  194. package/dist/src/components/editor/lib/helpers.d.mts +0 -25
  195. package/dist/src/components/editor/lib/helpers.mjs +0 -75
  196. package/dist/src/components/editor/lib/types.d.mts +0 -9
  197. package/dist/src/components/editor/lib/variants.mjs +0 -15
  198. package/dist/src/components/emails/forget-password-email.mjs +0 -50
  199. package/dist/src/components/header/back-button.client.d.mts +0 -9
  200. package/dist/src/components/header/back-button.client.mjs +0 -42
  201. package/dist/src/components/header/bottom-bar.client.d.mts +0 -28
  202. package/dist/src/components/header/bottom-bar.client.mjs +0 -37
  203. package/dist/src/components/header/breadcrumbs.client.d.mts +0 -34
  204. package/dist/src/components/header/breadcrumbs.client.mjs +0 -63
  205. package/dist/src/components/header/header.client.d.mts +0 -11
  206. package/dist/src/components/header/header.client.mjs +0 -14
  207. package/dist/src/components/header/indicator.client.mjs +0 -24
  208. package/dist/src/components/header/mobile-nav-switcher.client.d.mts +0 -9
  209. package/dist/src/components/header/mobile-nav-switcher.client.mjs +0 -18
  210. package/dist/src/components/header/top-bar.client.d.mts +0 -42
  211. package/dist/src/components/header/top-bar.client.mjs +0 -47
  212. package/dist/src/components/layouts/admin-content.client.d.mts +0 -12
  213. package/dist/src/components/layouts/admin-content.client.mjs +0 -22
  214. package/dist/src/components/layouts/admin-error-pages.d.mts +0 -22
  215. package/dist/src/components/layouts/admin-error-pages.mjs +0 -59
  216. package/dist/src/components/layouts/admin-layout.d.mts +0 -7
  217. package/dist/src/components/layouts/admin-layout.mjs +0 -13
  218. package/dist/src/components/layouts/admin-loading.d.mts +0 -7
  219. package/dist/src/components/layouts/admin-loading.mjs +0 -13
  220. package/dist/src/components/layouts/empty-page.d.mts +0 -30
  221. package/dist/src/components/layouts/empty-page.mjs +0 -28
  222. package/dist/src/components/layouts/error-page.d.mts +0 -47
  223. package/dist/src/components/layouts/error-page.mjs +0 -53
  224. package/dist/src/components/layouts/error-sections.d.mts +0 -28
  225. package/dist/src/components/layouts/error-sections.mjs +0 -46
  226. package/dist/src/components/layouts/list-layout.d.mts +0 -11
  227. package/dist/src/components/layouts/list-layout.mjs +0 -14
  228. package/dist/src/components/layouts/providers.client.d.mts +0 -9
  229. package/dist/src/components/layouts/providers.client.mjs +0 -31
  230. package/dist/src/components/layouts/root-error-pages.d.mts +0 -9
  231. package/dist/src/components/layouts/root-error-pages.mjs +0 -16
  232. package/dist/src/components/layouts/root-layout.server.d.mts +0 -37
  233. package/dist/src/components/layouts/root-layout.server.mjs +0 -44
  234. package/dist/src/components/layouts/root-loading.d.mts +0 -6
  235. package/dist/src/components/layouts/root-loading.mjs +0 -13
  236. package/dist/src/components/layouts/tab-layout.d.mts +0 -22
  237. package/dist/src/components/layouts/tab-layout.mjs +0 -50
  238. package/dist/src/components/lists/data-list.d.mts +0 -30
  239. package/dist/src/components/lists/data-list.mjs +0 -35
  240. package/dist/src/components/lists/data-stack.d.mts +0 -48
  241. package/dist/src/components/lists/data-stack.mjs +0 -56
  242. package/dist/src/components/navigation/admin-sidebar-header.client.mjs +0 -92
  243. package/dist/src/components/navigation/admin-sidebar-paths.client.d.mts +0 -91
  244. package/dist/src/components/navigation/admin-sidebar-paths.client.mjs +0 -143
  245. package/dist/src/components/navigation/admin-sidebar-skeleton.mjs +0 -30
  246. package/dist/src/components/themes/color-theme-provider.client.d.mts +0 -27
  247. package/dist/src/components/themes/color-theme-provider.client.mjs +0 -59
  248. package/dist/src/components/themes/color-theme.d.mts +0 -29
  249. package/dist/src/components/themes/color-theme.mjs +0 -32
  250. package/dist/src/components/ui/accordion.client.d.mts +0 -25
  251. package/dist/src/components/ui/accordion.client.mjs +0 -57
  252. package/dist/src/components/ui/alert-dialog.client.d.mts +0 -60
  253. package/dist/src/components/ui/alert-dialog.client.mjs +0 -103
  254. package/dist/src/components/ui/alert.d.mts +0 -28
  255. package/dist/src/components/ui/alert.mjs +0 -44
  256. package/dist/src/components/ui/aspect-ratio.client.d.mts +0 -9
  257. package/dist/src/components/ui/aspect-ratio.client.mjs +0 -15
  258. package/dist/src/components/ui/avatar.client.d.mts +0 -34
  259. package/dist/src/components/ui/avatar.client.mjs +0 -53
  260. package/dist/src/components/ui/badge.d.mts +0 -19
  261. package/dist/src/components/ui/badge.mjs +0 -28
  262. package/dist/src/components/ui/breadcrumb.d.mts +0 -37
  263. package/dist/src/components/ui/breadcrumb.mjs +0 -70
  264. package/dist/src/components/ui/button-group.d.mts +0 -28
  265. package/dist/src/components/ui/button-group.mjs +0 -40
  266. package/dist/src/components/ui/button.d.mts +0 -21
  267. package/dist/src/components/ui/button.mjs +0 -48
  268. package/dist/src/components/ui/calendar.client.d.mts +0 -30
  269. package/dist/src/components/ui/calendar.client.mjs +0 -113
  270. package/dist/src/components/ui/card.d.mts +0 -37
  271. package/dist/src/components/ui/card.mjs +0 -57
  272. package/dist/src/components/ui/carousel.client.d.mts +0 -56
  273. package/dist/src/components/ui/carousel.client.mjs +0 -135
  274. package/dist/src/components/ui/chart.client.d.mts +0 -71
  275. package/dist/src/components/ui/chart.client.mjs +0 -142
  276. package/dist/src/components/ui/checkbox.client.d.mts +0 -11
  277. package/dist/src/components/ui/checkbox.client.mjs +0 -23
  278. package/dist/src/components/ui/collapsible.client.d.mts +0 -15
  279. package/dist/src/components/ui/collapsible.client.mjs +0 -27
  280. package/dist/src/components/ui/color-picker.client.d.mts +0 -15
  281. package/dist/src/components/ui/color-picker.client.mjs +0 -38
  282. package/dist/src/components/ui/combobox-dropdown.client.d.mts +0 -45
  283. package/dist/src/components/ui/combobox-dropdown.client.mjs +0 -94
  284. package/dist/src/components/ui/combobox.client.d.mts +0 -30
  285. package/dist/src/components/ui/combobox.client.mjs +0 -66
  286. package/dist/src/components/ui/command.client.d.mts +0 -58
  287. package/dist/src/components/ui/command.client.mjs +0 -97
  288. package/dist/src/components/ui/context-menu.client.d.mts +0 -85
  289. package/dist/src/components/ui/context-menu.client.mjs +0 -127
  290. package/dist/src/components/ui/date-picker.client.d.mts +0 -20
  291. package/dist/src/components/ui/date-picker.client.mjs +0 -43
  292. package/dist/src/components/ui/dialog.client.d.mts +0 -51
  293. package/dist/src/components/ui/dialog.client.mjs +0 -98
  294. package/dist/src/components/ui/drawer.client.d.mts +0 -44
  295. package/dist/src/components/ui/drawer.client.mjs +0 -80
  296. package/dist/src/components/ui/dropdown-menu.client.d.mts +0 -84
  297. package/dist/src/components/ui/dropdown-menu.client.mjs +0 -130
  298. package/dist/src/components/ui/empty.d.mts +0 -35
  299. package/dist/src/components/ui/empty.mjs +0 -61
  300. package/dist/src/components/ui/field.client.d.mts +0 -64
  301. package/dist/src/components/ui/field.client.mjs +0 -113
  302. package/dist/src/components/ui/form.client.d.mts +0 -47
  303. package/dist/src/components/ui/form.client.mjs +0 -92
  304. package/dist/src/components/ui/hover-card.client.d.mts +0 -19
  305. package/dist/src/components/ui/hover-card.client.mjs +0 -34
  306. package/dist/src/components/ui/input-date-time.client.d.mts +0 -22
  307. package/dist/src/components/ui/input-date-time.client.mjs +0 -33
  308. package/dist/src/components/ui/input-date.d.mts +0 -13
  309. package/dist/src/components/ui/input-date.mjs +0 -15
  310. package/dist/src/components/ui/input-group.client.d.mts +0 -58
  311. package/dist/src/components/ui/input-group.client.mjs +0 -105
  312. package/dist/src/components/ui/input-recipient.d.mts +0 -26
  313. package/dist/src/components/ui/input-recipient.mjs +0 -218
  314. package/dist/src/components/ui/input-time.d.mts +0 -13
  315. package/dist/src/components/ui/input-time.mjs +0 -15
  316. package/dist/src/components/ui/input.d.mts +0 -11
  317. package/dist/src/components/ui/input.mjs +0 -15
  318. package/dist/src/components/ui/item.d.mts +0 -62
  319. package/dist/src/components/ui/item.mjs +0 -118
  320. package/dist/src/components/ui/kbd.d.mts +0 -13
  321. package/dist/src/components/ui/kbd.mjs +0 -21
  322. package/dist/src/components/ui/label.d.mts +0 -11
  323. package/dist/src/components/ui/label.mjs +0 -17
  324. package/dist/src/components/ui/loader.d.mts +0 -6
  325. package/dist/src/components/ui/loader.mjs +0 -62
  326. package/dist/src/components/ui/navigation-menu.d.mts +0 -46
  327. package/dist/src/components/ui/navigation-menu.mjs +0 -81
  328. package/dist/src/components/ui/pagination.d.mts +0 -45
  329. package/dist/src/components/ui/pagination.mjs +0 -87
  330. package/dist/src/components/ui/popover.client.d.mts +0 -34
  331. package/dist/src/components/ui/popover.client.mjs +0 -58
  332. package/dist/src/components/ui/progress.client.d.mts +0 -12
  333. package/dist/src/components/ui/progress.client.mjs +0 -22
  334. package/dist/src/components/ui/radio-group.d.mts +0 -15
  335. package/dist/src/components/ui/radio-group.mjs +0 -29
  336. package/dist/src/components/ui/resizable.client.d.mts +0 -20
  337. package/dist/src/components/ui/resizable.client.mjs +0 -31
  338. package/dist/src/components/ui/scroll-area.d.mts +0 -17
  339. package/dist/src/components/ui/scroll-area.mjs +0 -39
  340. package/dist/src/components/ui/select.client.d.mts +0 -53
  341. package/dist/src/components/ui/select.client.mjs +0 -102
  342. package/dist/src/components/ui/separator.d.mts +0 -13
  343. package/dist/src/components/ui/separator.mjs +0 -19
  344. package/dist/src/components/ui/sheet.client.d.mts +0 -42
  345. package/dist/src/components/ui/sheet.client.mjs +0 -92
  346. package/dist/src/components/ui/sidebar.client.d.mts +0 -167
  347. package/dist/src/components/ui/sidebar.client.mjs +0 -373
  348. package/dist/src/components/ui/skeleton.d.mts +0 -9
  349. package/dist/src/components/ui/skeleton.mjs +0 -14
  350. package/dist/src/components/ui/slider.d.mts +0 -15
  351. package/dist/src/components/ui/slider.mjs +0 -39
  352. package/dist/src/components/ui/sonner.client.d.mts +0 -9
  353. package/dist/src/components/ui/sonner.client.mjs +0 -24
  354. package/dist/src/components/ui/spinner.d.mts +0 -9
  355. package/dist/src/components/ui/spinner.mjs +0 -16
  356. package/dist/src/components/ui/switch.client.d.mts +0 -14
  357. package/dist/src/components/ui/switch.client.mjs +0 -22
  358. package/dist/src/components/ui/tabs.client.d.mts +0 -30
  359. package/dist/src/components/ui/tabs.client.mjs +0 -48
  360. package/dist/src/components/ui/textarea.d.mts +0 -10
  361. package/dist/src/components/ui/textarea.mjs +0 -14
  362. package/dist/src/components/ui/toggle-group.client.d.mts +0 -28
  363. package/dist/src/components/ui/toggle-group.client.mjs +0 -54
  364. package/dist/src/components/ui/toggle.client.d.mts +0 -19
  365. package/dist/src/components/ui/toggle.client.mjs +0 -39
  366. package/dist/src/components/ui/tooltip.client.d.mts +0 -23
  367. package/dist/src/components/ui/tooltip.client.mjs +0 -38
  368. package/dist/src/lib/hooks/use-action.d.mts +0 -16
  369. package/dist/src/lib/hooks/use-action.mjs +0 -41
  370. package/dist/src/lib/hooks/use-indicator.d.mts +0 -39
  371. package/dist/src/lib/hooks/use-indicator.mjs +0 -63
  372. package/dist/src/lib/hooks/use-mobile.client.d.mts +0 -6
  373. package/dist/src/lib/hooks/use-mobile.client.mjs +0 -21
  374. package/dist/src/lib/types/config.d.mts +0 -11
  375. package/dist/src/lib/utils/array-move.d.mts +0 -10
  376. package/dist/src/lib/utils/array-move.mjs +0 -12
  377. package/dist/src/lib/utils/cn.d.mts +0 -6
  378. package/dist/src/lib/utils/cn.mjs +0 -10
  379. package/dist/src/lib/utils/fonts.d.mts +0 -7
  380. package/dist/src/lib/utils/fonts.mjs +0 -11
  381. package/dist/src/lib/utils/format.d.mts +0 -51
  382. package/dist/src/lib/utils/format.mjs +0 -113
  383. package/dist/src/lib/utils/manifest.d.mts +0 -7
  384. package/dist/src/lib/utils/manifest.mjs +0 -35
  385. package/dist/src/lib/utils/markdown.d.mts +0 -9
  386. package/dist/src/lib/utils/markdown.mjs +0 -14
  387. package/dist/src/lib/utils/url.d.mts +0 -9
  388. package/dist/src/lib/utils/url.mjs +0 -15
  389. package/dist/src/lib/utils/user-agent.mjs +0 -74
  390. package/dist/src/modules/auth/components/allowed.client.d.mts +0 -33
  391. package/dist/src/modules/auth/components/allowed.client.mjs +0 -19
  392. package/dist/src/modules/auth/components/auth-layout.server.d.mts +0 -9
  393. package/dist/src/modules/auth/components/auth-layout.server.mjs +0 -36
  394. package/dist/src/modules/auth/components/auth-loading.d.mts +0 -6
  395. package/dist/src/modules/auth/components/auth-loading.mjs +0 -17
  396. package/dist/src/modules/auth/components/create-first-user-guard.server.d.mts +0 -15
  397. package/dist/src/modules/auth/components/create-first-user-guard.server.mjs +0 -15
  398. package/dist/src/modules/auth/components/create-first-user-page.client.d.mts +0 -6
  399. package/dist/src/modules/auth/components/create-first-user-page.client.mjs +0 -153
  400. package/dist/src/modules/auth/components/forget-password-page.client.d.mts +0 -6
  401. package/dist/src/modules/auth/components/forget-password-page.client.mjs +0 -72
  402. package/dist/src/modules/auth/components/guard.server.d.mts +0 -14
  403. package/dist/src/modules/auth/components/guard.server.mjs +0 -20
  404. package/dist/src/modules/auth/components/login-page.client.d.mts +0 -11
  405. package/dist/src/modules/auth/components/login-page.client.mjs +0 -155
  406. package/dist/src/modules/auth/components/reset-password-page.client.d.mts +0 -11
  407. package/dist/src/modules/auth/components/reset-password-page.client.mjs +0 -121
  408. package/dist/src/modules/auth/components/update-password-command.d.mts +0 -22
  409. package/dist/src/modules/auth/components/update-password-command.mjs +0 -47
  410. package/dist/src/modules/auth/db/schema.d.mts +0 -983
  411. package/dist/src/modules/auth/db/schema.mjs +0 -101
  412. package/dist/src/modules/auth/handler/create-client.client.d.mts +0 -6393
  413. package/dist/src/modules/auth/handler/create-client.client.mjs +0 -25
  414. package/dist/src/modules/auth/handler/proxy.server.d.mts +0 -11
  415. package/dist/src/modules/auth/handler/proxy.server.mjs +0 -20
  416. package/dist/src/modules/auth/handler/route.server.d.mts +0 -16
  417. package/dist/src/modules/auth/handler/route.server.mjs +0 -28
  418. package/dist/src/modules/auth/handler/service.server.d.mts +0 -2101
  419. package/dist/src/modules/auth/handler/service.server.mjs +0 -87
  420. package/dist/src/modules/auth/hooks/use-auth-client.d.mts +0 -23
  421. package/dist/src/modules/auth/hooks/use-auth-client.mjs +0 -30
  422. package/dist/src/modules/auth/hooks/use-permission.d.mts +0 -42
  423. package/dist/src/modules/auth/hooks/use-permission.mjs +0 -57
  424. package/dist/src/modules/auth/hooks/use-session.d.mts +0 -40
  425. package/dist/src/modules/auth/hooks/use-session.mjs +0 -22
  426. package/dist/src/modules/auth/lib/helpers.server.d.mts +0 -84
  427. package/dist/src/modules/auth/lib/helpers.server.mjs +0 -41
  428. package/dist/src/modules/auth/lib/permissions.d.mts +0 -17
  429. package/dist/src/modules/auth/lib/permissions.mjs +0 -14
  430. package/dist/src/modules/auth/lib/validators.d.mts +0 -299
  431. package/dist/src/modules/auth/lib/validators.mjs +0 -59
  432. package/dist/src/modules/commands/components/menus/context-menu.client.d.mts +0 -39
  433. package/dist/src/modules/commands/components/menus/context-menu.client.mjs +0 -47
  434. package/dist/src/modules/commands/components/menus/dropdown-menu.client.d.mts +0 -29
  435. package/dist/src/modules/commands/components/menus/dropdown-menu.client.mjs +0 -58
  436. package/dist/src/modules/commands/components/menus/floating-menu.client.d.mts +0 -29
  437. package/dist/src/modules/commands/components/menus/floating-menu.client.mjs +0 -33
  438. package/dist/src/modules/commands/components/menus/inline-menu.client.d.mts +0 -29
  439. package/dist/src/modules/commands/components/menus/inline-menu.client.mjs +0 -41
  440. package/dist/src/modules/commands/components/menus/responsive-menu.client.d.mts +0 -16
  441. package/dist/src/modules/commands/components/menus/responsive-menu.client.mjs +0 -22
  442. package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.d.mts +0 -65
  443. package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.mjs +0 -138
  444. package/dist/src/modules/commands/components/primitives/click-command.client.d.mts +0 -26
  445. package/dist/src/modules/commands/components/primitives/click-command.client.mjs +0 -52
  446. package/dist/src/modules/commands/components/primitives/command-trigger.client.d.mts +0 -17
  447. package/dist/src/modules/commands/components/primitives/command-trigger.client.mjs +0 -42
  448. package/dist/src/modules/commands/components/primitives/dialog-command.client.d.mts +0 -53
  449. package/dist/src/modules/commands/components/primitives/dialog-command.client.mjs +0 -116
  450. package/dist/src/modules/commands/components/primitives/dropdown-command.client.d.mts +0 -47
  451. package/dist/src/modules/commands/components/primitives/dropdown-command.client.mjs +0 -131
  452. package/dist/src/modules/commands/components/primitives/empty-command.client.d.mts +0 -20
  453. package/dist/src/modules/commands/components/primitives/empty-command.client.mjs +0 -44
  454. package/dist/src/modules/commands/components/primitives/form-dialog-command.client.d.mts +0 -71
  455. package/dist/src/modules/commands/components/primitives/form-dialog-command.client.mjs +0 -163
  456. package/dist/src/modules/commands/components/render-command.mjs +0 -48
  457. package/dist/src/modules/commands/components/utils/archive-command.client.d.mts +0 -24
  458. package/dist/src/modules/commands/components/utils/archive-command.client.mjs +0 -29
  459. package/dist/src/modules/commands/components/utils/delete-command.client.d.mts +0 -20
  460. package/dist/src/modules/commands/components/utils/delete-command.client.mjs +0 -28
  461. package/dist/src/modules/commands/hooks/use-command-mutation.client.d.mts +0 -11
  462. package/dist/src/modules/commands/hooks/use-command-mutation.client.mjs +0 -39
  463. package/dist/src/modules/commands/hooks/use-command.client.d.mts +0 -31
  464. package/dist/src/modules/commands/hooks/use-command.client.mjs +0 -45
  465. package/dist/src/modules/commands/lib/builder.d.mts +0 -135
  466. package/dist/src/modules/commands/lib/builder.mjs +0 -82
  467. package/dist/src/modules/commands/lib/registery.d.mts +0 -68
  468. package/dist/src/modules/commands/lib/registery.mjs +0 -103
  469. package/dist/src/modules/commands/lib/utils.d.mts +0 -11
  470. package/dist/src/modules/commands/lib/utils.mjs +0 -14
  471. package/dist/src/modules/config/lib/config.d.mts +0 -16
  472. package/dist/src/modules/config/lib/config.mjs +0 -8
  473. package/dist/src/modules/config/lib/context.d.mts +0 -17
  474. package/dist/src/modules/config/lib/context.mjs +0 -7
  475. package/dist/src/modules/config/paths/helpers.d.mts +0 -9
  476. package/dist/src/modules/config/paths/helpers.mjs +0 -8
  477. package/dist/src/modules/config/paths/types.d.mts +0 -31
  478. package/dist/src/modules/data-tables/components/cell/common.client.d.mts +0 -26
  479. package/dist/src/modules/data-tables/components/cell/common.client.mjs +0 -35
  480. package/dist/src/modules/data-tables/components/cell/index.client.d.mts +0 -10
  481. package/dist/src/modules/data-tables/components/cell/index.client.mjs +0 -24
  482. package/dist/src/modules/data-tables/components/cell/select.client.d.mts +0 -10
  483. package/dist/src/modules/data-tables/components/cell/select.client.mjs +0 -36
  484. package/dist/src/modules/data-tables/components/column-header.d.mts +0 -15
  485. package/dist/src/modules/data-tables/components/column-header.mjs +0 -46
  486. package/dist/src/modules/data-tables/components/filters/combobox.client.d.mts +0 -27
  487. package/dist/src/modules/data-tables/components/filters/combobox.client.mjs +0 -97
  488. package/dist/src/modules/data-tables/components/filters/date-range.client.d.mts +0 -24
  489. package/dist/src/modules/data-tables/components/filters/date-range.client.mjs +0 -99
  490. package/dist/src/modules/data-tables/components/filters/search.client.d.mts +0 -17
  491. package/dist/src/modules/data-tables/components/filters/search.client.mjs +0 -32
  492. package/dist/src/modules/data-tables/components/filters/slider.client.d.mts +0 -22
  493. package/dist/src/modules/data-tables/components/filters/slider.client.mjs +0 -128
  494. package/dist/src/modules/data-tables/components/filters/toggle.client.d.mts +0 -17
  495. package/dist/src/modules/data-tables/components/filters/toggle.client.mjs +0 -25
  496. package/dist/src/modules/data-tables/components/footer.mjs +0 -31
  497. package/dist/src/modules/data-tables/components/header.d.mts +0 -40
  498. package/dist/src/modules/data-tables/components/header.mjs +0 -43
  499. package/dist/src/modules/data-tables/components/layout.d.mts +0 -11
  500. package/dist/src/modules/data-tables/components/layout.mjs +0 -14
  501. package/dist/src/modules/data-tables/components/search-input.client.d.mts +0 -6
  502. package/dist/src/modules/data-tables/components/search-input.client.mjs +0 -19
  503. package/dist/src/modules/data-tables/components/skeleton.d.mts +0 -6
  504. package/dist/src/modules/data-tables/components/skeleton.mjs +0 -21
  505. package/dist/src/modules/data-tables/components/table.d.mts +0 -33
  506. package/dist/src/modules/data-tables/components/table.mjs +0 -55
  507. package/dist/src/modules/data-tables/components/toolbar.d.mts +0 -22
  508. package/dist/src/modules/data-tables/components/toolbar.mjs +0 -21
  509. package/dist/src/modules/data-tables/hooks/use-context.client.d.mts +0 -47
  510. package/dist/src/modules/data-tables/hooks/use-context.client.mjs +0 -34
  511. package/dist/src/modules/data-tables/hooks/use-search.client.mjs +0 -39
  512. package/dist/src/modules/data-tables/hooks/use-selection.client.mjs +0 -44
  513. package/dist/src/modules/data-tables/hooks/use-table.client.d.mts +0 -10
  514. package/dist/src/modules/data-tables/hooks/use-table.client.mjs +0 -55
  515. package/dist/src/modules/data-tables/lib/converters/dto.d.mts +0 -50
  516. package/dist/src/modules/data-tables/lib/converters/dto.mjs +0 -24
  517. package/dist/src/modules/data-tables/lib/converters/filters.d.mts +0 -41
  518. package/dist/src/modules/data-tables/lib/converters/filters.mjs +0 -38
  519. package/dist/src/modules/data-tables/lib/converters/pagination.d.mts +0 -17
  520. package/dist/src/modules/data-tables/lib/converters/pagination.mjs +0 -15
  521. package/dist/src/modules/data-tables/lib/converters/search.d.mts +0 -16
  522. package/dist/src/modules/data-tables/lib/converters/search.mjs +0 -15
  523. package/dist/src/modules/data-tables/lib/converters/sorting.d.mts +0 -48
  524. package/dist/src/modules/data-tables/lib/converters/sorting.mjs +0 -55
  525. package/dist/src/modules/data-tables/lib/filters/config.d.mts +0 -13
  526. package/dist/src/modules/data-tables/lib/filters/config.mjs +0 -5
  527. package/dist/src/modules/data-tables/lib/filters/helpers.d.mts +0 -10
  528. package/dist/src/modules/data-tables/lib/filters/helpers.mjs +0 -16
  529. package/dist/src/modules/data-tables/lib/filters/parsers.d.mts +0 -46
  530. package/dist/src/modules/data-tables/lib/filters/parsers.mjs +0 -47
  531. package/dist/src/modules/data-tables/lib/filters/resolvers.d.mts +0 -28
  532. package/dist/src/modules/data-tables/lib/filters/resolvers.mjs +0 -55
  533. package/dist/src/modules/data-tables/lib/helpers/create-column.mjs +0 -10
  534. package/dist/src/modules/data-tables/lib/search-params.d.mts +0 -21
  535. package/dist/src/modules/data-tables/lib/search-params.mjs +0 -16
  536. package/dist/src/modules/data-tables/lib/types.d.mts +0 -54
  537. package/dist/src/modules/data-tables/lib/validators.d.mts +0 -19
  538. package/dist/src/modules/data-tables/lib/validators.mjs +0 -16
  539. package/dist/src/modules/data-tables/server/get-data.server.d.mts +0 -29
  540. package/dist/src/modules/data-tables/server/get-data.server.mjs +0 -47
  541. package/dist/src/modules/data-tables/strategies/helpers/sorting.mjs +0 -37
  542. package/dist/src/modules/data-tables/strategies/infinite/components.mjs +0 -50
  543. package/dist/src/modules/data-tables/strategies/infinite/strategy.d.mts +0 -20
  544. package/dist/src/modules/data-tables/strategies/infinite/strategy.mjs +0 -50
  545. package/dist/src/modules/data-tables/strategies/local/components.mjs +0 -25
  546. package/dist/src/modules/data-tables/strategies/local/strategy.d.mts +0 -12
  547. package/dist/src/modules/data-tables/strategies/local/strategy.mjs +0 -31
  548. package/dist/src/modules/data-tables/strategies/pagination/components.mjs +0 -131
  549. package/dist/src/modules/data-tables/strategies/pagination/strategy.d.mts +0 -12
  550. package/dist/src/modules/data-tables/strategies/pagination/strategy.mjs +0 -45
  551. package/dist/src/modules/data-tables/tables/data-table/components/body.mjs +0 -32
  552. package/dist/src/modules/data-tables/tables/data-table/components/header.mjs +0 -12
  553. package/dist/src/modules/data-tables/tables/data-table/components/row.mjs +0 -13
  554. package/dist/src/modules/data-tables/tables/data-table/components/table.d.mts +0 -8
  555. package/dist/src/modules/data-tables/tables/data-table/components/table.mjs +0 -42
  556. package/dist/src/modules/data-tables/tables/inline-table/components/body.mjs +0 -69
  557. package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.d.mts +0 -11
  558. package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.mjs +0 -14
  559. package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts +0 -24
  560. package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +0 -38
  561. package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.d.mts +0 -11
  562. package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +0 -14
  563. package/dist/src/modules/data-tables/tables/inline-table/components/header.mjs +0 -10
  564. package/dist/src/modules/data-tables/tables/inline-table/components/row.client.mjs +0 -24
  565. package/dist/src/modules/data-tables/tables/inline-table/components/table.d.mts +0 -14
  566. package/dist/src/modules/data-tables/tables/inline-table/components/table.mjs +0 -52
  567. package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +0 -48
  568. package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.mjs +0 -58
  569. package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts +0 -29
  570. package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs +0 -94
  571. package/dist/src/modules/database/lib/helpers.d.mts +0 -15
  572. package/dist/src/modules/database/lib/helpers.mjs +0 -16
  573. package/dist/src/modules/database/lib/service.server.d.mts +0 -33
  574. package/dist/src/modules/database/lib/service.server.mjs +0 -23
  575. package/dist/src/modules/database/lib/types.d.mts +0 -4
  576. package/dist/src/modules/emails/lib/service.server.d.mts +0 -28
  577. package/dist/src/modules/emails/lib/service.server.mjs +0 -20
  578. package/dist/src/modules/inline/components/cell.client.d.mts +0 -20
  579. package/dist/src/modules/inline/components/cell.client.mjs +0 -46
  580. package/dist/src/modules/inline/components/field.client.d.mts +0 -36
  581. package/dist/src/modules/inline/components/field.client.mjs +0 -61
  582. package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.d.mts +0 -28
  583. package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.mjs +0 -49
  584. package/dist/src/modules/inline/components/inputs/combobox.client.d.mts +0 -23
  585. package/dist/src/modules/inline/components/inputs/combobox.client.mjs +0 -45
  586. package/dist/src/modules/inline/components/inputs/date-time.client.d.mts +0 -25
  587. package/dist/src/modules/inline/components/inputs/date-time.client.mjs +0 -48
  588. package/dist/src/modules/inline/components/inputs/date.client.d.mts +0 -66
  589. package/dist/src/modules/inline/components/inputs/date.client.mjs +0 -175
  590. package/dist/src/modules/inline/components/inputs/editor.client.d.mts +0 -26
  591. package/dist/src/modules/inline/components/inputs/editor.client.mjs +0 -51
  592. package/dist/src/modules/inline/components/inputs/input-recipient.client.d.mts +0 -27
  593. package/dist/src/modules/inline/components/inputs/input-recipient.client.mjs +0 -48
  594. package/dist/src/modules/inline/components/inputs/input.client.d.mts +0 -54
  595. package/dist/src/modules/inline/components/inputs/input.client.mjs +0 -129
  596. package/dist/src/modules/inline/components/inputs/select.client.d.mts +0 -32
  597. package/dist/src/modules/inline/components/inputs/select.client.mjs +0 -64
  598. package/dist/src/modules/inline/components/inputs/switch.client.d.mts +0 -22
  599. package/dist/src/modules/inline/components/inputs/switch.client.mjs +0 -42
  600. package/dist/src/modules/inline/components/inputs/toggle.client.d.mts +0 -24
  601. package/dist/src/modules/inline/components/inputs/toggle.client.mjs +0 -47
  602. package/dist/src/modules/inline/hooks/inline-provider.d.mts +0 -28
  603. package/dist/src/modules/inline/hooks/inline-provider.mjs +0 -25
  604. package/dist/src/modules/inline/hooks/inline-state.client.d.mts +0 -30
  605. package/dist/src/modules/inline/hooks/inline-state.client.mjs +0 -25
  606. package/dist/src/modules/inline/hooks/use-inline.client.d.mts +0 -144
  607. package/dist/src/modules/inline/hooks/use-inline.client.mjs +0 -125
  608. package/dist/src/modules/inline/lib/validators.d.mts +0 -56
  609. package/dist/src/modules/inline/lib/validators.mjs +0 -34
  610. package/dist/src/modules/inline/lib/variants.d.mts +0 -11
  611. package/dist/src/modules/inline/lib/variants.mjs +0 -21
  612. package/dist/src/modules/router/handler/caller.client.d.mts +0 -10
  613. package/dist/src/modules/router/handler/caller.client.mjs +0 -23
  614. package/dist/src/modules/router/handler/caller.server.d.mts +0 -6
  615. package/dist/src/modules/router/handler/caller.server.mjs +0 -7
  616. package/dist/src/modules/router/handler/context.server.d.mts +0 -62
  617. package/dist/src/modules/router/handler/context.server.mjs +0 -20
  618. package/dist/src/modules/router/handler/init.server.d.mts +0 -65
  619. package/dist/src/modules/router/handler/init.server.mjs +0 -55
  620. package/dist/src/modules/router/handler/register.server.d.mts +0 -8
  621. package/dist/src/modules/router/handler/register.server.mjs +0 -10
  622. package/dist/src/modules/router/handler/route.server.d.mts +0 -21
  623. package/dist/src/modules/router/handler/route.server.mjs +0 -32
  624. package/dist/src/modules/router/lib/error.server.d.mts +0 -2
  625. package/dist/src/modules/router/lib/error.server.mjs +0 -3
  626. package/dist/src/modules/router/lib/helpers.mjs +0 -7
  627. package/dist/src/modules/router/lib/query-client.d.mts +0 -10
  628. package/dist/src/modules/router/lib/query-client.mjs +0 -50
  629. package/dist/src/modules/router/lib/query-client.server.d.mts +0 -17
  630. package/dist/src/modules/router/lib/query-client.server.mjs +0 -23
  631. package/dist/src/modules/router/lib/validators.d.mts +0 -12
  632. package/dist/src/modules/router/lib/validators.mjs +0 -10
  633. package/dist/src/modules/storage/components/dropzone-context.client.d.mts +0 -18
  634. package/dist/src/modules/storage/components/dropzone-context.client.mjs +0 -17
  635. package/dist/src/modules/storage/components/dropzone.client.d.mts +0 -52
  636. package/dist/src/modules/storage/components/dropzone.client.mjs +0 -110
  637. package/dist/src/modules/storage/components/image-grid.client.d.mts +0 -32
  638. package/dist/src/modules/storage/components/image-grid.client.mjs +0 -167
  639. package/dist/src/modules/storage/components/image.client.d.mts +0 -7
  640. package/dist/src/modules/storage/components/image.client.mjs +0 -16
  641. package/dist/src/modules/storage/components/upload-button.client.d.mts +0 -11
  642. package/dist/src/modules/storage/components/upload-button.client.mjs +0 -33
  643. package/dist/src/modules/storage/components/upload-zone-context.client.d.mts +0 -30
  644. package/dist/src/modules/storage/components/upload-zone-context.client.mjs +0 -20
  645. package/dist/src/modules/storage/components/upload-zone.client.d.mts +0 -27
  646. package/dist/src/modules/storage/components/upload-zone.client.mjs +0 -111
  647. package/dist/src/modules/storage/lib/constants.d.mts +0 -5
  648. package/dist/src/modules/storage/lib/constants.mjs +0 -5
  649. package/dist/src/modules/storage/lib/helpers.d.mts +0 -29
  650. package/dist/src/modules/storage/lib/helpers.mjs +0 -49
  651. package/dist/src/modules/storage/lib/procedures.server.d.mts +0 -1990
  652. package/dist/src/modules/storage/lib/procedures.server.mjs +0 -21
  653. package/dist/src/modules/storage/lib/router-handlers.server.d.mts +0 -40
  654. package/dist/src/modules/storage/lib/router-handlers.server.mjs +0 -123
  655. package/dist/src/modules/storage/lib/schema.d.mts +0 -291
  656. package/dist/src/modules/storage/lib/schema.mjs +0 -37
  657. package/dist/src/modules/storage/lib/service.server.d.mts +0 -2217
  658. package/dist/src/modules/storage/lib/service.server.mjs +0 -514
  659. package/dist/src/modules/storage/lib/upload.client.d.mts +0 -57
  660. package/dist/src/modules/storage/lib/upload.client.mjs +0 -86
  661. package/dist/src/modules/storage/lib/validators.d.mts +0 -935
  662. package/dist/src/modules/storage/lib/validators.mjs +0 -52
  663. package/dist/src/modules/storage/providers/adapters/s3.server.d.mts +0 -18
  664. package/dist/src/modules/storage/providers/adapters/s3.server.mjs +0 -172
  665. package/dist/src/modules/storage/providers/lib/constants.d.mts +0 -5
  666. package/dist/src/modules/storage/providers/lib/constants.mjs +0 -5
  667. package/dist/src/modules/storage/providers/lib/errors.d.mts +0 -11
  668. package/dist/src/modules/storage/providers/lib/errors.mjs +0 -12
  669. package/dist/src/modules/storage/providers/lib/types.d.mts +0 -20
  670. package/dist/src/modules/storage/providers/lib/validators.d.mts +0 -111
  671. package/dist/src/modules/storage/providers/lib/validators.mjs +0 -74
  672. package/src/modules/router/handler/context.server.ts +0 -28
  673. package/src/modules/storage/lib/procedures.server.ts +0 -60
@@ -1,53 +1,55 @@
1
1
  import "client-only";
2
2
 
3
- import { passkeyClient } from "@better-auth/passkey/client";
4
- import { adminClient, emailOTPClient, inferAdditionalFields } from "better-auth/client/plugins";
5
- import type { AccessControl, Role } from "better-auth/plugins";
3
+ import type { passkeyClient } from "@better-auth/passkey/client";
4
+ import type { BetterAuthClientOptions } from "better-auth";
5
+ import type {
6
+ adminClient,
7
+ emailOTPClient,
8
+ inferAdditionalFields,
9
+ } from "better-auth/client/plugins";
6
10
  import { createAuthClient as createBetterAuthClient } from "better-auth/react";
7
- import { url } from "@/lib/utils/url";
8
- import type { Auth } from "./service.server";
11
+ import type { AdminClientOptions } from "../plugins/admin";
12
+ import type { Auth, authAdditionalFields } from "./service.server";
13
+
14
+ export type AuthClientOptions = BetterAuthClientOptions;
9
15
 
10
16
  /**
11
17
  * Create auth client
12
18
  */
13
- export type CreateAuthClientProps<
14
- TAccessControl extends AccessControl,
15
- TRoles extends { [key in string]: Role },
16
- > = {
17
- /**
18
- * Base URL for the auth client
19
- */
20
- baseURL?: string;
21
- /**
22
- * Access control instance
23
- */
24
- ac: TAccessControl;
25
- roles: TRoles;
26
- };
27
-
28
- export function createAuthClient<
29
- TAccessControl extends AccessControl,
30
- TRoles extends { [key in string]: Role },
31
- >(props: CreateAuthClientProps<TAccessControl, TRoles>) {
32
- const { ac, roles } = props;
33
-
34
- const baseURL = props.baseURL ?? url();
35
-
36
- return createBetterAuthClient({
37
- baseURL,
38
- plugins: [
39
- emailOTPClient(),
40
- passkeyClient(),
41
- adminClient({ ac, roles }),
42
- inferAdditionalFields<Auth>(),
43
- ],
44
- });
19
+ export function createAuthClient<TOptions extends AuthClientOptions>(
20
+ props: TOptions | undefined,
21
+ ): AuthClient<TOptions> {
22
+ return createBetterAuthClient<TOptions>(props) as unknown as AuthClient<TOptions>;
45
23
  }
46
24
 
25
+ /**
26
+ * Any auth client
27
+ */
28
+ declare const authClientMarker: unique symbol;
29
+
30
+ export type AnyAuthClient = {
31
+ readonly [authClientMarker]: true;
32
+ };
33
+
47
34
  /**
48
35
  * Client auth type
49
36
  */
50
- export type ClientAuth<
51
- TAccessControl extends AccessControl,
52
- TRoles extends { [key in string]: Role },
53
- > = ReturnType<typeof createAuthClient<TAccessControl, TRoles>>;
37
+ export type BaseAuthClient<TOptions extends AuthClientOptions> = ReturnType<
38
+ typeof createBetterAuthClient<TOptions>
39
+ >;
40
+
41
+ export type AuthClient<TOptions extends AuthClientOptions> = BaseAuthClient<TOptions> & AnyAuthClient;
42
+
43
+ /**
44
+ * Auth client plugins types
45
+ */
46
+ export type AuthClientEmailOtpPlugin = ReturnType<typeof emailOTPClient>;
47
+ export type AuthClientPasskeyPlugin = ReturnType<typeof passkeyClient>;
48
+
49
+ export type AuthClientInferAdditionalFieldsPlugin = ReturnType<
50
+ typeof inferAdditionalFields<Auth<{ user: { additionalFields: typeof authAdditionalFields } }>>
51
+ >;
52
+
53
+ export type AuthClientAdminPlugin<TAdminClientOptions extends AdminClientOptions> = ReturnType<
54
+ typeof adminClient<TAdminClientOptions>
55
+ >;
@@ -5,7 +5,7 @@ import { authCookiePrefix } from "./service.server";
5
5
  /**
6
6
  * Create auth proxy
7
7
  */
8
- export function createAuthProxy(props: { publicRoutes: string[] }) {
8
+ export function createAuthProxy(props: { publicRoutes: string[]; cookiePrefix?: string }) {
9
9
  return (req: NextRequest) => {
10
10
  // 1. Check if the current route is protected or public
11
11
  const pathname = req.nextUrl.pathname;
@@ -15,7 +15,9 @@ export function createAuthProxy(props: { publicRoutes: string[] }) {
15
15
  );
16
16
 
17
17
  // 2. Check if a session cookie is present
18
- const sessionCookie = getSessionCookie(req, { cookiePrefix: authCookiePrefix });
18
+ const sessionCookie = getSessionCookie(req, {
19
+ cookiePrefix: props.cookiePrefix ?? authCookiePrefix,
20
+ });
19
21
 
20
22
  // 3. Redirect to /auth/login if the user is not authenticated
21
23
  if (!isPublicRoute && !sessionCookie) {
@@ -1,17 +1,18 @@
1
+ import "server-cli-only";
2
+
1
3
  import { toNextJsHandler } from "better-auth/next-js";
2
4
  import type { NextRequest } from "next/server";
3
- import "server-cli-only";
4
- import type { Auth } from "./service.server";
5
+ import type { Auth, TAuthServerOptions } from "./service.server";
5
6
 
6
7
  /**
7
8
  * Handle the auth routes
8
9
  */
9
- export function handleAuthRoute(props: { auth: Auth }) {
10
+ export function handleAuthRoute<TOptions extends TAuthServerOptions>(auth: Auth<TOptions>) {
10
11
  /**
11
12
  * GET route handler
12
13
  */
13
14
  async function GET(request: NextRequest) {
14
- const routes = toNextJsHandler(props.auth.handler);
15
+ const routes = toNextJsHandler(auth.handler);
15
16
  return routes.GET(request);
16
17
  }
17
18
 
@@ -19,7 +20,7 @@ export function handleAuthRoute(props: { auth: Auth }) {
19
20
  * POST route handler
20
21
  */
21
22
  async function POST(request: NextRequest) {
22
- const routes = toNextJsHandler(props.auth.handler);
23
+ const routes = toNextJsHandler(auth.handler);
23
24
  return routes.POST(request);
24
25
  }
25
26
 
@@ -1,125 +1,76 @@
1
- import { passkey } from "@better-auth/passkey";
1
+ import type { Session, User } from "better-auth";
2
2
  import { drizzleAdapter } from "better-auth/adapters/drizzle";
3
- import { createAuthMiddleware } from "better-auth/api";
4
- import { betterAuth } from "better-auth/minimal";
5
- import { admin, emailOTP } from "better-auth/plugins";
6
- import { eq } from "drizzle-orm";
7
- import ForgetPasswordEmail from "@/components/emails/forget-password-email";
8
- import { url } from "@/lib/utils/url";
9
- import type { TDatabaseSchema } from "@/modules/config/entry";
10
- import type { TulipConfig } from "@/modules/config/lib/config";
3
+ import { type BetterAuthOptions, betterAuth } from "better-auth/minimal";
4
+ import type { AdminOptions } from "better-auth/plugins";
11
5
  import type { Database } from "@/modules/database/lib/service.server";
12
- import type { Email } from "@/modules/emails/lib/service.server";
13
- import { users } from "../entry";
14
- import type { createAccessControl, Role } from "../lib/permissions";
6
+ import type { TDatabaseSchema } from "@/modules/database/lib/types";
7
+ import { adminPlugin } from "../plugins/admin";
8
+ import { emailOtpPlugin } from "../plugins/email-otp";
15
9
 
16
10
  export const authCookiePrefix = "tulip";
17
11
 
18
- type InitAuthProps<TSchema extends TDatabaseSchema> = {
19
- db: Database<TSchema>;
20
- email: Email;
21
- config: TulipConfig;
22
- ac: ReturnType<typeof createAccessControl>;
23
- roles: {
24
- [key in string]?: Role;
25
- };
26
- allowedHosts: string[];
27
- defaultRole?: string;
28
- };
12
+ export type TAuthServerOptions = Omit<BetterAuthOptions, "database">;
13
+
14
+ /**
15
+ * Additional fields
16
+ */
17
+ export const authAdditionalFields = {
18
+ firstName: {
19
+ type: "string",
20
+ required: true,
21
+ input: true,
22
+ },
23
+ lastName: {
24
+ type: "string",
25
+ required: true,
26
+ input: true,
27
+ },
28
+ } as const;
29
29
 
30
30
  /**
31
31
  * Create the Better Auth server instance.
32
32
  */
33
- function createAuth<TSchema extends TDatabaseSchema>(props: InitAuthProps<TSchema>) {
34
- return betterAuth({
33
+ type InitAuthServerProps<TOptions extends TAuthServerOptions> = TOptions & {
34
+ db: Database<TDatabaseSchema>;
35
+ };
36
+
37
+ export function createAuthServer<TOptions extends TAuthServerOptions>(
38
+ props: InitAuthServerProps<TOptions>,
39
+ ) {
40
+ const { db, advanced, user, baseURL, emailAndPassword, hooks, plugins } = props;
41
+
42
+ return betterAuth<TOptions>({
43
+ ...props,
35
44
  advanced: {
36
45
  cookiePrefix: authCookiePrefix,
37
- database: {
38
- generateId: () => false,
39
- },
40
- },
41
- baseURL: {
42
- allowedHosts: props.allowedHosts,
46
+ database: { generateId: () => false as const },
47
+ ...(advanced ?? {}),
43
48
  },
44
- database: drizzleAdapter(props.db, {
49
+ baseURL,
50
+ database: drizzleAdapter(db, {
45
51
  provider: "pg",
46
52
  usePlural: true,
47
53
  }),
48
54
  emailAndPassword: {
49
55
  enabled: true,
56
+ ...(emailAndPassword ?? {}),
50
57
  },
51
58
  user: {
59
+ ...(user ?? {}),
52
60
  changeEmail: {
53
61
  enabled: true,
54
- },
55
- additionalFields: {
56
- firstName: {
57
- type: "string",
58
- required: true,
59
- input: true,
60
- },
61
- lastName: {
62
- type: "string",
63
- required: true,
64
- input: true,
65
- },
62
+ ...(user?.changeEmail ?? {}),
66
63
  },
67
64
  },
68
- hooks: {
69
- after: createAuthMiddleware(async (ctx) => {
70
- if (!ctx.path.startsWith("/sign-up")) return;
71
-
72
- const session = ctx.context.newSession;
73
- if (!session) return;
74
-
75
- const existingUsers = await props.db.select().from(users);
76
-
77
- if (existingUsers.length === 1) {
78
- await props.db
79
- .update(users)
80
- .set({ role: "developer" })
81
- .where(eq(users.id, session.user.id));
82
- }
83
- }),
84
- },
85
- plugins: [
86
- passkey(),
87
- admin({
88
- roles: props.roles,
89
- ac: props.ac,
90
- adminRoles: ["admin", "developer"],
91
- defaultRole: props.defaultRole ?? "user",
92
- }),
93
- emailOTP({
94
- sendVerificationOTP: async ({ email, otp, type }) => {
95
- /**
96
- * Send a forget password mail
97
- */
98
- if (type === "forget-password") {
99
- const searchParams = new URLSearchParams();
100
- searchParams.set("email", email);
101
- searchParams.set("otp", otp);
102
-
103
- const resetPasswordHref = url(`/auth/reset-password?${searchParams.toString()}`);
104
-
105
- const result = await props.email.emails.send({
106
- from: props.config.email.defaultFrom,
107
- to: email,
108
- subject: "Wachtwoord herstellen",
109
- react: ForgetPasswordEmail({ resetPasswordHref }),
110
- });
111
- if (result.error) throw new Error(result.error.message);
112
- }
113
- },
114
- }),
115
- ],
65
+ hooks,
66
+ plugins,
116
67
  });
117
68
  }
118
69
 
119
70
  /**
120
71
  * Better Auth instance type returned by `Auth.init()`.
121
72
  */
122
- export type Auth = ReturnType<typeof createAuth>;
73
+ export type Auth<Options extends TAuthServerOptions> = ReturnType<typeof betterAuth<Options>>;
123
74
 
124
75
  /**
125
76
  * Auth service namespace.
@@ -128,5 +79,30 @@ export type Auth = ReturnType<typeof createAuth>;
128
79
  * const auth = Auth.init({ db, email, config, ac, roles, allowedHosts });
129
80
  */
130
81
  export const Auth = {
131
- init: createAuth,
82
+ init: createAuthServer,
83
+ plugins: {
84
+ admin: adminPlugin,
85
+ emailOTP: emailOtpPlugin,
86
+ },
132
87
  };
88
+
89
+ /**
90
+ * Session and user types for the Auth service.
91
+ */
92
+ export type AuthServerUser<TOptions extends TAuthServerOptions> = User<
93
+ TOptions["user"],
94
+ TOptions["plugins"]
95
+ >;
96
+
97
+ export type AuthServerSession<TOptions extends TAuthServerOptions> = Session<
98
+ TOptions["session"],
99
+ TOptions["plugins"]
100
+ >;
101
+
102
+ /**
103
+ * Plugin types
104
+ */
105
+ export type AuthServerAdminPlugin<Options extends AdminOptions> = ReturnType<
106
+ typeof adminPlugin<Options>
107
+ >;
108
+ export type AuthServerEmailOtpPlugin = ReturnType<typeof emailOtpPlugin>;
@@ -1,38 +1,26 @@
1
1
  "use client";
2
2
 
3
- import type { AccessControl, Role } from "better-auth/plugins";
4
3
  import { createContext, type PropsWithChildren, use } from "react";
5
- import type { ClientAuth } from "../handler/create-client.client";
4
+ import type { AnyAuthClient, AuthClient } from "../handler/create-client.client";
6
5
 
7
6
  /**
8
7
  * Auth client context
9
8
  */
10
-
11
- export const AuthClientContext = createContext(null as unknown as ClientAuth<never, never>);
9
+ export const AuthClientContext = createContext(null as AnyAuthClient | null);
12
10
 
13
11
  /**
14
12
  * Use auth client
15
13
  */
16
- export function useAuthClient<
17
- TAccessControl extends AccessControl = never,
18
- TRoles extends { [key in string]: Role } = never,
19
- >() {
14
+ export function useAuthClient<TAuthClient extends AnyAuthClient = AuthClient<object>>() {
20
15
  const context = use(AuthClientContext);
21
16
  if (!context) throw new Error("Auth client is not provided");
22
17
 
23
- return context as ClientAuth<TAccessControl, TRoles>;
18
+ return context as TAuthClient;
24
19
  }
25
20
 
26
21
  /**
27
22
  * Auth client provider
28
23
  */
29
- export function AuthProvider<
30
- TAccessControl extends AccessControl,
31
- TRoles extends { [key in string]: Role },
32
- >(props: PropsWithChildren<{ authClient: ClientAuth<TAccessControl, TRoles> }>) {
33
- return (
34
- <AuthClientContext value={props.authClient as ClientAuth<never, never>}>
35
- {props.children}
36
- </AuthClientContext>
37
- );
24
+ export function AuthProvider(props: PropsWithChildren<{ authClient: AnyAuthClient }>) {
25
+ return <AuthClientContext value={props.authClient}>{props.children}</AuthClientContext>;
38
26
  }
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
 
3
- import type { Permission } from "../lib/permissions";
3
+ import type { AuthClient, AuthClientAdminPlugin } from "../handler/create-client.client";
4
+ import type { AccessControl, Permission } from "../lib/permissions";
4
5
  import { useAuthClient } from "./use-auth-client";
5
6
  import { useSession } from "./use-session";
6
7
 
7
- export type UsePermissionProps =
8
+ export type UsePermissionProps<TAccessControl extends AccessControl = AccessControl> =
8
9
  | {
9
10
  /**
10
11
  * Strategy to use when checking multiple permissions
@@ -18,7 +19,7 @@ export type UsePermissionProps =
18
19
  * Permission to check
19
20
  * @example { project: ["view", "create"] }
20
21
  */
21
- permission?: Permission;
22
+ permission?: Permission<TAccessControl>;
22
23
  }
23
24
  | {
24
25
  /**
@@ -33,20 +34,24 @@ export type UsePermissionProps =
33
34
  * Permission to check
34
35
  * @example [{ project: ["view", "create"] }, { client: ["view"] }, { drive: ["view"] }]
35
36
  */
36
- permission?: Permission[];
37
+ permission?: Permission<TAccessControl>[];
37
38
  };
38
39
 
39
40
  /**
40
41
  * UsePermission
41
42
  */
42
- export function usePermission({ strategy = "all", permission }: UsePermissionProps) {
43
- const authClient = useAuthClient();
43
+ export function usePermission<TAccessControl extends AccessControl = AccessControl>({
44
+ strategy = "all",
45
+ permission,
46
+ }: UsePermissionProps<TAccessControl> = {}) {
47
+ const authClient =
48
+ useAuthClient<AuthClient<{ plugins: [AuthClientAdminPlugin<{ ac: TAccessControl }>] }>>();
44
49
  const sessionQuery = useSession(authClient);
45
50
 
46
51
  /**
47
52
  * If no role is found in the session, deny by default
48
53
  */
49
- const role = sessionQuery.data?.user.role;
54
+ const role = sessionQuery.data?.user.role as "admin" | "user" | undefined;
50
55
  if (!role) return { permission, success: false };
51
56
 
52
57
  /**
@@ -63,7 +68,7 @@ export function usePermission({ strategy = "all", permission }: UsePermissionPro
63
68
  const success = permissions.some((permission) =>
64
69
  authClient.admin.checkRolePermission({
65
70
  role,
66
- permissions: permission,
71
+ permissions: permission as CheckRolePermission<TAccessControl>,
67
72
  }),
68
73
  );
69
74
 
@@ -76,7 +81,7 @@ export function usePermission({ strategy = "all", permission }: UsePermissionPro
76
81
  if (strategy === "all" && !Array.isArray(permission)) {
77
82
  const success = authClient.admin.checkRolePermission({
78
83
  role,
79
- permissions: permission,
84
+ permissions: permission as CheckRolePermission<TAccessControl>,
80
85
  });
81
86
 
82
87
  return { permission, success };
@@ -87,3 +92,12 @@ export function usePermission({ strategy = "all", permission }: UsePermissionPro
87
92
  */
88
93
  return { permission, success: false };
89
94
  }
95
+
96
+ /**
97
+ * These types are used to extract the permissions from the checkRolePermission endpoint. They are used to ensure that the permissions passed to the hook are valid.
98
+ */
99
+ type CheckRolePermission<TAccessControl extends AccessControl> = Parameters<
100
+ ReturnType<
101
+ AuthClientAdminPlugin<{ ac: TAccessControl }>["getActions"]
102
+ >["admin"]["checkRolePermission"]
103
+ >[0]["permissions"];
@@ -1,20 +1,33 @@
1
1
  "use client";
2
2
 
3
3
  import { useSuspenseQuery } from "@tanstack/react-query";
4
- import type { ClientAuth } from "../entry.client";
4
+ import type { InferSessionFromClient, InferUserFromClient } from "better-auth";
5
+ import type { AuthClient, AuthClientOptions } from "../handler/create-client.client";
5
6
 
6
- export function useSession(authClient: ClientAuth<never, never>) {
7
- const session = useSuspenseQuery({
7
+ /**
8
+ * Use session return type
9
+ */
10
+ type UseSessionReturnType<TOptions extends AuthClientOptions> = {
11
+ user: InferUserFromClient<TOptions>;
12
+ session: InferSessionFromClient<TOptions>;
13
+ } | null;
14
+
15
+ /**
16
+ * Use session
17
+ */
18
+ export function useSession<TOptions extends AuthClientOptions>(authClient: AuthClient<TOptions>) {
19
+ const session = useSuspenseQuery<UseSessionReturnType<TOptions>>({
8
20
  queryKey: ["session"],
9
21
  queryFn: async () => {
10
- const session = await authClient.getSession();
22
+ const client = authClient as unknown as AuthClient<object>;
23
+ const session = await client.getSession();
11
24
 
12
25
  if (session.error) {
13
26
  console.error(session.error);
14
27
  return null;
15
28
  }
16
29
 
17
- return session.data;
30
+ return session.data as UseSessionReturnType<TOptions>;
18
31
  },
19
32
  staleTime: 1000 * 60 * 60,
20
33
  });
@@ -1,55 +1,27 @@
1
1
  import "server-cli-only";
2
-
3
- import { eq } from "drizzle-orm";
4
2
  import { headers } from "next/headers";
5
- import type { TulipContext } from "@/modules/config/entry";
6
- import type { TDatabaseSchema } from "@/modules/database/lib/types";
7
- import { ServerError } from "@/modules/router/lib/error.server";
8
- import { users } from "../entry";
9
- import type { CreateUserSchema, UpdateUserSchema } from "./validators";
3
+ import type {
4
+ Auth,
5
+ AuthServerSession,
6
+ AuthServerUser,
7
+ TAuthServerOptions,
8
+ } from "../handler/service.server";
10
9
 
11
10
  /**
12
11
  * Get the session
13
12
  */
14
- export async function getSession<TSchema extends TDatabaseSchema>({
15
- auth,
16
- }: Pick<TulipContext<TSchema>, "auth">) {
17
- return auth.api.getSession({ headers: await headers() });
18
- }
13
+ export type GetSessionResult<TAuthOptions extends TAuthServerOptions> = {
14
+ session: AuthServerSession<TAuthOptions>;
15
+ user: AuthServerUser<TAuthOptions>;
16
+ } | null;
19
17
 
20
- /**
21
- * Create a user
22
- */
23
- export function createUser<TSchema extends TDatabaseSchema>(
24
- { auth, headers }: TulipContext<TSchema> & { headers: Headers },
25
- { body }: { body: CreateUserSchema },
18
+ export async function getSession<TAuthOptions extends TAuthServerOptions>(
19
+ auth: Auth<TAuthOptions>,
26
20
  ) {
27
- const { firstName, lastName } = body;
28
-
29
- return auth.api.createUser({
30
- headers,
31
- body: {
32
- ...body,
33
- name: `${firstName} ${lastName}`,
34
- data: { firstName, lastName },
35
- },
36
- });
37
- }
21
+ const headersList = await headers();
38
22
 
39
- /**
40
- * Update a user
41
- */
42
-
43
- export async function updateUser<TSchema extends TDatabaseSchema>(
44
- { db }: TulipContext<TSchema>,
45
- { userId, body }: { userId: string; body: Partial<UpdateUserSchema> },
46
- ) {
47
- const [result] = await db.update(users).set(body).where(eq(users.id, userId)).returning();
48
- if (!result) {
49
- throw new ServerError("INTERNAL_SERVER_ERROR", {
50
- message: "Gebruiker kon niet worden aangemaakt",
51
- });
52
- }
23
+ const api = auth.api as unknown as Auth<object>["api"];
24
+ const data = await api.getSession({ headers: headersList });
53
25
 
54
- return result;
26
+ return data as GetSessionResult<TAuthOptions>;
55
27
  }
@@ -1,7 +1,40 @@
1
- import { createAccessControl, type Role } from "better-auth/plugins/access";
1
+ import {
2
+ type AccessControl as BetterAuthAccessControl,
3
+ type Statements as BetterAuthStatements,
4
+ createAccessControl,
5
+ type Role,
6
+ } from "better-auth/plugins/access";
2
7
  import { adminAc, defaultStatements } from "better-auth/plugins/admin/access";
3
8
 
4
- export type Permission = Record<string, string[]>;
9
+ /**
10
+ * Permission Statements
11
+ * @description These are the statements that define the permissions for the application. They are used to create the access control and to check the permissions for the users.
12
+ */
13
+ type Statements = BetterAuthStatements;
14
+
15
+ /**
16
+ * Access Control
17
+ * @description The access control is created using the statements and is used to check the permissions for the users. It is also used to define the roles for the application.
18
+ */
19
+ export type AccessControl<TStatements extends Statements = Statements> =
20
+ BetterAuthAccessControl<TStatements>;
21
+
22
+ /**
23
+ * Permission Actions
24
+ * @description The actions that can be performed on a resource. For example, if the resource is "project", the actions can be "view", "create", "edit", "delete", etc.
25
+ */
26
+ type Actions<T> = T extends readonly unknown[] ? T[number] : never;
27
+
28
+ /**
29
+ * Permission
30
+ * @description The permission is an object that defines the resource and the actions that can be performed on that resource. For example, { project: ["view", "create"] } means that the user has permission to view and create projects.
31
+ */
32
+ export type Permission<TAccessControl extends AccessControl = AccessControl> =
33
+ TAccessControl extends AccessControl<infer S extends Statements>
34
+ ? {
35
+ [K in keyof S]?: Actions<S[K]>[];
36
+ }
37
+ : Record<string, string[]>;
5
38
 
6
39
  /**
7
40
  * Create statements
@@ -0,0 +1,28 @@
1
+ import { type AccessControl, type AdminOptions, admin, type Role } from "better-auth/plugins";
2
+
3
+ /**
4
+ * Admin client options
5
+ */
6
+ export type AdminClientOptions = {
7
+ ac?: AccessControl | undefined;
8
+ roles?: { [key in string]: Role } | undefined;
9
+ };
10
+
11
+ /**
12
+ * Admin plugin.
13
+ */
14
+ export function adminPlugin<Options extends AdminOptions>({
15
+ roles,
16
+ ac,
17
+ adminRoles,
18
+ defaultRole,
19
+ ...props
20
+ }: Options) {
21
+ return admin<Options>({
22
+ ...props,
23
+ roles,
24
+ ac,
25
+ adminRoles: adminRoles ?? ["admin", "developer"],
26
+ defaultRole: defaultRole ?? "user",
27
+ } as unknown as Options);
28
+ }