@tulip-systems/core 0.10.0 → 0.10.2

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 (678) 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 +49 -48
  12. package/dist/components/client.mjs +49 -48
  13. package/dist/components/editor/extensions/file-handler/extension.d.mts +1 -1
  14. package/dist/components/editor/extensions/image/extension.d.mts +1 -1
  15. package/dist/components/editor/extensions/skeleton/extension.mjs +1 -1
  16. package/dist/components/editor/lib/constants.d.mts +1 -1
  17. package/dist/components/editor/lib/extensions.d.mts +1 -1
  18. package/dist/components/editor/lib/helpers.d.mts +5 -1
  19. package/dist/components/editor/lib/helpers.mjs +8 -1
  20. package/dist/components/layouts/root-layout.server.d.mts +3 -2
  21. package/dist/components/layouts/root-layout.server.mjs +1 -3
  22. package/dist/components/server.d.mts +3 -3
  23. package/dist/components/server.mjs +2 -2
  24. package/dist/components/themes/color-theme-provider.client.d.mts +27 -0
  25. package/dist/components/themes/color-theme-provider.client.mjs +59 -0
  26. package/dist/components/themes/color-theme.d.mts +29 -0
  27. package/dist/components/themes/color-theme.mjs +32 -0
  28. package/dist/components/ui/item.d.mts +1 -1
  29. package/dist/components.d.mts +41 -40
  30. package/dist/components.mjs +40 -39
  31. package/dist/config.d.mts +5 -7
  32. package/dist/config.mjs +4 -5
  33. package/dist/data-tables/client.d.mts +21 -21
  34. package/dist/data-tables/client.mjs +21 -21
  35. package/dist/data-tables/server.d.mts +7 -7
  36. package/dist/data-tables/server.mjs +7 -7
  37. package/dist/data-tables.d.mts +15 -14
  38. package/dist/data-tables.mjs +14 -13
  39. package/dist/database/server.d.mts +1 -1
  40. package/dist/database/server.mjs +1 -1
  41. package/dist/database.d.mts +2 -2
  42. package/dist/database.mjs +1 -1
  43. package/dist/emails/server.d.mts +1 -1
  44. package/dist/emails/server.mjs +1 -1
  45. package/dist/inline/client.d.mts +15 -15
  46. package/dist/inline/client.mjs +15 -15
  47. package/dist/inline.d.mts +1 -1
  48. package/dist/inline.mjs +1 -1
  49. package/dist/lib/client.d.mts +4 -4
  50. package/dist/lib/client.mjs +4 -4
  51. package/dist/lib/utils/url.d.mts +15 -4
  52. package/dist/lib/utils/url.mjs +17 -8
  53. package/dist/lib.d.mts +7 -7
  54. package/dist/lib.mjs +6 -6
  55. package/dist/modules/auth/components/create-first-user-guard.server.d.mts +4 -3
  56. package/dist/modules/auth/components/guard.server.d.mts +5 -5
  57. package/dist/modules/auth/components/guard.server.mjs +3 -4
  58. package/dist/modules/auth/handler/create-client.client.d.mts +28 -6382
  59. package/dist/modules/auth/handler/create-client.client.mjs +4 -16
  60. package/dist/modules/auth/handler/proxy.server.d.mts +1 -0
  61. package/dist/modules/auth/handler/proxy.server.mjs +1 -1
  62. package/dist/modules/auth/handler/route.server.d.mts +2 -4
  63. package/dist/modules/auth/handler/route.server.mjs +3 -3
  64. package/dist/modules/auth/handler/service.server.d.mts +41 -2079
  65. package/dist/modules/auth/handler/service.server.mjs +40 -60
  66. package/dist/modules/auth/hooks/use-auth-client.d.mts +5 -6
  67. package/dist/modules/auth/hooks/use-permission.d.mts +7 -7
  68. package/dist/modules/auth/hooks/use-permission.mjs +1 -1
  69. package/dist/modules/auth/hooks/use-session.d.mts +13 -35
  70. package/dist/modules/auth/hooks/use-session.mjs +3 -0
  71. package/dist/modules/auth/lib/helpers.server.d.mts +7 -77
  72. package/dist/modules/auth/lib/helpers.server.mjs +4 -34
  73. package/dist/modules/auth/lib/permissions.d.mts +22 -3
  74. package/dist/modules/auth/plugins/admin.d.mts +917 -0
  75. package/dist/modules/auth/plugins/admin.mjs +18 -0
  76. package/dist/modules/auth/plugins/email-otp.d.mts +554 -0
  77. package/dist/modules/auth/plugins/email-otp.mjs +34 -0
  78. package/dist/modules/config/lib/context.d.mts +5 -4
  79. package/dist/modules/data-tables/lib/converters/dto.d.mts +12 -1
  80. package/dist/modules/data-tables/lib/converters/dto.mjs +13 -1
  81. package/dist/modules/data-tables/lib/converters/filters.d.mts +1 -1
  82. package/dist/modules/data-tables/server/get-data.server.d.mts +3 -2
  83. package/dist/modules/inline/lib/variants.d.mts +1 -1
  84. package/dist/modules/router/handler/init.server.d.mts +43 -51
  85. package/dist/modules/router/handler/init.server.mjs +24 -41
  86. package/dist/modules/router/handler/route.server.d.mts +6 -3
  87. package/dist/modules/router/handler/route.server.mjs +6 -9
  88. package/dist/modules/router/lib/query-client.server.d.mts +2 -2
  89. package/dist/modules/router/lib/query-client.server.mjs +3 -3
  90. package/dist/modules/storage/components/dropzone.client.d.mts +2 -2
  91. package/dist/modules/storage/lib/router-handlers.server.d.mts +6 -7
  92. package/dist/modules/storage/lib/router-handlers.server.mjs +2 -2
  93. package/dist/modules/storage/lib/{procedures.server.d.mts → router.server.d.mts} +42 -19
  94. package/dist/modules/storage/lib/router.server.mjs +21 -0
  95. package/dist/modules/storage/lib/service.server.d.mts +19 -19
  96. package/dist/modules/storage/lib/upload.client.d.mts +9 -10
  97. package/dist/router/client.d.mts +1 -1
  98. package/dist/router/client.mjs +1 -1
  99. package/dist/router/server.d.mts +7 -8
  100. package/dist/router/server.mjs +7 -8
  101. package/dist/router.d.mts +2 -2
  102. package/dist/router.mjs +2 -2
  103. package/dist/storage/client.d.mts +8 -8
  104. package/dist/storage/client.mjs +8 -8
  105. package/dist/storage/server.d.mts +5 -5
  106. package/dist/storage/server.mjs +5 -5
  107. package/dist/storage.d.mts +8 -8
  108. package/dist/storage.mjs +7 -7
  109. package/package.json +2 -2
  110. package/src/components/editor/lib/helpers.ts +8 -0
  111. package/src/components/entry.client.ts +1 -1
  112. package/src/components/entry.ts +1 -1
  113. package/src/components/layouts/root-layout.server.tsx +4 -2
  114. package/src/components/themes/color-theme-provider.client.tsx +82 -0
  115. package/src/components/themes/color-theme.ts +32 -0
  116. package/src/lib/utils/url.ts +19 -8
  117. package/src/modules/auth/components/create-first-user-guard.server.tsx +5 -4
  118. package/src/modules/auth/components/create-first-user-page.client.tsx +6 -1
  119. package/src/modules/auth/components/forget-password-page.client.tsx +3 -2
  120. package/src/modules/auth/components/guard.server.tsx +6 -7
  121. package/src/modules/auth/components/login-page.client.tsx +3 -1
  122. package/src/modules/auth/components/reset-password-page.client.tsx +3 -2
  123. package/src/modules/auth/db/schema.ts +1 -1
  124. package/src/modules/auth/entry.server.ts +0 -1
  125. package/src/modules/auth/handler/create-client.client.ts +43 -41
  126. package/src/modules/auth/handler/proxy.server.ts +4 -2
  127. package/src/modules/auth/handler/route.server.ts +6 -5
  128. package/src/modules/auth/handler/service.server.ts +70 -94
  129. package/src/modules/auth/hooks/use-auth-client.tsx +6 -18
  130. package/src/modules/auth/hooks/use-permission.ts +23 -9
  131. package/src/modules/auth/hooks/use-session.ts +18 -5
  132. package/src/modules/auth/lib/helpers.server.ts +16 -44
  133. package/src/modules/auth/lib/permissions.ts +35 -2
  134. package/src/modules/auth/plugins/admin.ts +28 -0
  135. package/src/modules/auth/plugins/email-otp.ts +43 -0
  136. package/src/modules/config/entry.ts +0 -3
  137. package/src/modules/config/lib/context.ts +8 -4
  138. package/src/modules/data-tables/components/filters/date-range.client.tsx +1 -5
  139. package/src/modules/data-tables/entry.ts +1 -0
  140. package/src/modules/data-tables/lib/converters/dto.ts +12 -0
  141. package/src/modules/data-tables/lib/converters/filters.ts +1 -1
  142. package/src/modules/data-tables/lib/filters/parsers.ts +1 -2
  143. package/src/modules/data-tables/server/get-data.server.ts +8 -3
  144. package/src/modules/inline/components/inputs/combobox-dropdown.client.tsx +1 -3
  145. package/src/modules/inline/components/inputs/combobox.client.tsx +2 -8
  146. package/src/modules/inline/components/inputs/date-time.client.tsx +4 -24
  147. package/src/modules/inline/components/inputs/date.client.tsx +3 -11
  148. package/src/modules/inline/components/inputs/editor.client.tsx +9 -10
  149. package/src/modules/inline/components/inputs/input.client.tsx +10 -33
  150. package/src/modules/inline/components/inputs/select.client.tsx +3 -16
  151. package/src/modules/inline/components/inputs/switch.client.tsx +3 -16
  152. package/src/modules/router/entry.server.ts +0 -1
  153. package/src/modules/router/handler/init.server.ts +58 -62
  154. package/src/modules/router/handler/route.server.ts +19 -19
  155. package/src/modules/router/lib/query-client.server.tsx +2 -2
  156. package/src/modules/storage/entry.server.ts +1 -1
  157. package/src/modules/storage/lib/router-handlers.server.ts +8 -10
  158. package/src/modules/storage/lib/router.server.ts +53 -0
  159. package/src/modules/storage/lib/upload.client.ts +9 -21
  160. package/src/styles.css +255 -2
  161. package/dist/dist/config.d.mts +0 -5
  162. package/dist/dist/modules/auth/handler/service.server.d.mts +0 -8
  163. package/dist/dist/modules/auth/lib/permissions.d.mts +0 -2
  164. package/dist/dist/modules/config/lib/context.d.mts +0 -4
  165. package/dist/dist/modules/config/paths/helpers.d.mts +0 -1
  166. package/dist/dist/modules/config/paths/types.d.mts +0 -3
  167. package/dist/dist/modules/database/lib/helpers.d.mts +0 -2
  168. package/dist/dist/modules/database/lib/service.server.d.mts +0 -2
  169. package/dist/dist/modules/database/lib/types.d.mts +0 -5
  170. package/dist/dist/modules/emails/lib/service.server.d.mts +0 -2
  171. package/dist/dist/modules/storage/lib/schema.d.mts +0 -1
  172. package/dist/dist/modules/storage/lib/service.server.d.mts +0 -5
  173. package/dist/dist/modules/storage/lib/validators.d.mts +0 -4
  174. package/dist/dist/modules/storage/providers/lib/types.d.mts +0 -1
  175. package/dist/dist/modules/storage/providers/lib/validators.d.mts +0 -2
  176. package/dist/modules/router/handler/context.server.d.mts +0 -62
  177. package/dist/modules/router/handler/context.server.mjs +0 -20
  178. package/dist/modules/storage/lib/procedures.server.mjs +0 -21
  179. package/dist/src/components/common/icons.d.mts +0 -60
  180. package/dist/src/components/common/icons.mjs +0 -121
  181. package/dist/src/components/common/status.d.mts +0 -52
  182. package/dist/src/components/common/status.mjs +0 -55
  183. package/dist/src/components/editor/components/content.client.d.mts +0 -6
  184. package/dist/src/components/editor/components/content.client.mjs +0 -16
  185. package/dist/src/components/editor/components/editor.client.d.mts +0 -48
  186. package/dist/src/components/editor/components/editor.client.mjs +0 -55
  187. package/dist/src/components/editor/components/menu-nodes.client.mjs +0 -92
  188. package/dist/src/components/editor/components/menu.client.d.mts +0 -9
  189. package/dist/src/components/editor/components/menu.client.mjs +0 -168
  190. package/dist/src/components/editor/extensions/file-handler/extension.d.mts +0 -20
  191. package/dist/src/components/editor/extensions/file-handler/extension.mjs +0 -39
  192. package/dist/src/components/editor/extensions/file-handler/strategy.d.mts +0 -26
  193. package/dist/src/components/editor/extensions/file-handler/strategy.mjs +0 -110
  194. package/dist/src/components/editor/extensions/file-handler/utils.mjs +0 -49
  195. package/dist/src/components/editor/extensions/image/extension.d.mts +0 -7
  196. package/dist/src/components/editor/extensions/image/extension.mjs +0 -50
  197. package/dist/src/components/editor/extensions/skeleton/extension.mjs +0 -40
  198. package/dist/src/components/editor/extensions/skeleton/renderer.mjs +0 -24
  199. package/dist/src/components/editor/lib/constants.d.mts +0 -62
  200. package/dist/src/components/editor/lib/constants.mjs +0 -101
  201. package/dist/src/components/editor/lib/extensions.d.mts +0 -67
  202. package/dist/src/components/editor/lib/extensions.mjs +0 -49
  203. package/dist/src/components/editor/lib/helpers.d.mts +0 -21
  204. package/dist/src/components/editor/lib/helpers.mjs +0 -68
  205. package/dist/src/components/editor/lib/types.d.mts +0 -9
  206. package/dist/src/components/editor/lib/variants.mjs +0 -15
  207. package/dist/src/components/emails/forget-password-email.mjs +0 -50
  208. package/dist/src/components/header/back-button.client.d.mts +0 -9
  209. package/dist/src/components/header/back-button.client.mjs +0 -42
  210. package/dist/src/components/header/bottom-bar.client.d.mts +0 -28
  211. package/dist/src/components/header/bottom-bar.client.mjs +0 -37
  212. package/dist/src/components/header/breadcrumbs.client.d.mts +0 -34
  213. package/dist/src/components/header/breadcrumbs.client.mjs +0 -63
  214. package/dist/src/components/header/header.client.d.mts +0 -11
  215. package/dist/src/components/header/header.client.mjs +0 -14
  216. package/dist/src/components/header/indicator.client.mjs +0 -24
  217. package/dist/src/components/header/mobile-nav-switcher.client.d.mts +0 -9
  218. package/dist/src/components/header/mobile-nav-switcher.client.mjs +0 -18
  219. package/dist/src/components/header/top-bar.client.d.mts +0 -42
  220. package/dist/src/components/header/top-bar.client.mjs +0 -47
  221. package/dist/src/components/layouts/admin-content.client.d.mts +0 -12
  222. package/dist/src/components/layouts/admin-content.client.mjs +0 -22
  223. package/dist/src/components/layouts/admin-error-pages.d.mts +0 -22
  224. package/dist/src/components/layouts/admin-error-pages.mjs +0 -59
  225. package/dist/src/components/layouts/admin-layout.d.mts +0 -7
  226. package/dist/src/components/layouts/admin-layout.mjs +0 -13
  227. package/dist/src/components/layouts/admin-loading.d.mts +0 -7
  228. package/dist/src/components/layouts/admin-loading.mjs +0 -13
  229. package/dist/src/components/layouts/empty-page.d.mts +0 -30
  230. package/dist/src/components/layouts/empty-page.mjs +0 -28
  231. package/dist/src/components/layouts/error-page.d.mts +0 -47
  232. package/dist/src/components/layouts/error-page.mjs +0 -53
  233. package/dist/src/components/layouts/error-sections.d.mts +0 -28
  234. package/dist/src/components/layouts/error-sections.mjs +0 -46
  235. package/dist/src/components/layouts/list-layout.d.mts +0 -11
  236. package/dist/src/components/layouts/list-layout.mjs +0 -14
  237. package/dist/src/components/layouts/providers.client.d.mts +0 -9
  238. package/dist/src/components/layouts/providers.client.mjs +0 -31
  239. package/dist/src/components/layouts/root-error-pages.d.mts +0 -9
  240. package/dist/src/components/layouts/root-error-pages.mjs +0 -16
  241. package/dist/src/components/layouts/root-layout.server.d.mts +0 -36
  242. package/dist/src/components/layouts/root-layout.server.mjs +0 -46
  243. package/dist/src/components/layouts/root-loading.d.mts +0 -6
  244. package/dist/src/components/layouts/root-loading.mjs +0 -13
  245. package/dist/src/components/layouts/tab-layout.d.mts +0 -22
  246. package/dist/src/components/layouts/tab-layout.mjs +0 -50
  247. package/dist/src/components/lists/data-list.d.mts +0 -30
  248. package/dist/src/components/lists/data-list.mjs +0 -35
  249. package/dist/src/components/lists/data-stack.d.mts +0 -48
  250. package/dist/src/components/lists/data-stack.mjs +0 -56
  251. package/dist/src/components/navigation/admin-sidebar-header.client.mjs +0 -92
  252. package/dist/src/components/navigation/admin-sidebar-paths.client.d.mts +0 -91
  253. package/dist/src/components/navigation/admin-sidebar-paths.client.mjs +0 -143
  254. package/dist/src/components/navigation/admin-sidebar-skeleton.mjs +0 -30
  255. package/dist/src/components/ui/accordion.client.d.mts +0 -25
  256. package/dist/src/components/ui/accordion.client.mjs +0 -57
  257. package/dist/src/components/ui/alert-dialog.client.d.mts +0 -60
  258. package/dist/src/components/ui/alert-dialog.client.mjs +0 -103
  259. package/dist/src/components/ui/alert.d.mts +0 -28
  260. package/dist/src/components/ui/alert.mjs +0 -44
  261. package/dist/src/components/ui/aspect-ratio.client.d.mts +0 -9
  262. package/dist/src/components/ui/aspect-ratio.client.mjs +0 -15
  263. package/dist/src/components/ui/avatar.client.d.mts +0 -34
  264. package/dist/src/components/ui/avatar.client.mjs +0 -53
  265. package/dist/src/components/ui/badge.d.mts +0 -19
  266. package/dist/src/components/ui/badge.mjs +0 -28
  267. package/dist/src/components/ui/breadcrumb.d.mts +0 -37
  268. package/dist/src/components/ui/breadcrumb.mjs +0 -70
  269. package/dist/src/components/ui/button-group.d.mts +0 -28
  270. package/dist/src/components/ui/button-group.mjs +0 -40
  271. package/dist/src/components/ui/button.d.mts +0 -21
  272. package/dist/src/components/ui/button.mjs +0 -48
  273. package/dist/src/components/ui/calendar.client.d.mts +0 -30
  274. package/dist/src/components/ui/calendar.client.mjs +0 -113
  275. package/dist/src/components/ui/card.d.mts +0 -37
  276. package/dist/src/components/ui/card.mjs +0 -57
  277. package/dist/src/components/ui/carousel.client.d.mts +0 -56
  278. package/dist/src/components/ui/carousel.client.mjs +0 -135
  279. package/dist/src/components/ui/chart.client.d.mts +0 -71
  280. package/dist/src/components/ui/chart.client.mjs +0 -142
  281. package/dist/src/components/ui/checkbox.client.d.mts +0 -11
  282. package/dist/src/components/ui/checkbox.client.mjs +0 -23
  283. package/dist/src/components/ui/collapsible.client.d.mts +0 -15
  284. package/dist/src/components/ui/collapsible.client.mjs +0 -27
  285. package/dist/src/components/ui/color-picker.client.d.mts +0 -15
  286. package/dist/src/components/ui/color-picker.client.mjs +0 -38
  287. package/dist/src/components/ui/combobox-dropdown.client.d.mts +0 -45
  288. package/dist/src/components/ui/combobox-dropdown.client.mjs +0 -94
  289. package/dist/src/components/ui/combobox.client.d.mts +0 -30
  290. package/dist/src/components/ui/combobox.client.mjs +0 -66
  291. package/dist/src/components/ui/command.client.d.mts +0 -58
  292. package/dist/src/components/ui/command.client.mjs +0 -97
  293. package/dist/src/components/ui/context-menu.client.d.mts +0 -85
  294. package/dist/src/components/ui/context-menu.client.mjs +0 -127
  295. package/dist/src/components/ui/date-picker.client.d.mts +0 -20
  296. package/dist/src/components/ui/date-picker.client.mjs +0 -43
  297. package/dist/src/components/ui/dialog.client.d.mts +0 -51
  298. package/dist/src/components/ui/dialog.client.mjs +0 -98
  299. package/dist/src/components/ui/drawer.client.d.mts +0 -44
  300. package/dist/src/components/ui/drawer.client.mjs +0 -80
  301. package/dist/src/components/ui/dropdown-menu.client.d.mts +0 -84
  302. package/dist/src/components/ui/dropdown-menu.client.mjs +0 -130
  303. package/dist/src/components/ui/empty.d.mts +0 -35
  304. package/dist/src/components/ui/empty.mjs +0 -61
  305. package/dist/src/components/ui/field.client.d.mts +0 -64
  306. package/dist/src/components/ui/field.client.mjs +0 -113
  307. package/dist/src/components/ui/form.client.d.mts +0 -47
  308. package/dist/src/components/ui/form.client.mjs +0 -92
  309. package/dist/src/components/ui/hover-card.client.d.mts +0 -19
  310. package/dist/src/components/ui/hover-card.client.mjs +0 -34
  311. package/dist/src/components/ui/input-date-time.client.d.mts +0 -22
  312. package/dist/src/components/ui/input-date-time.client.mjs +0 -33
  313. package/dist/src/components/ui/input-date.d.mts +0 -13
  314. package/dist/src/components/ui/input-date.mjs +0 -15
  315. package/dist/src/components/ui/input-group.client.d.mts +0 -58
  316. package/dist/src/components/ui/input-group.client.mjs +0 -105
  317. package/dist/src/components/ui/input-recipient.d.mts +0 -26
  318. package/dist/src/components/ui/input-recipient.mjs +0 -218
  319. package/dist/src/components/ui/input-time.d.mts +0 -13
  320. package/dist/src/components/ui/input-time.mjs +0 -15
  321. package/dist/src/components/ui/input.d.mts +0 -11
  322. package/dist/src/components/ui/input.mjs +0 -15
  323. package/dist/src/components/ui/item.d.mts +0 -62
  324. package/dist/src/components/ui/item.mjs +0 -118
  325. package/dist/src/components/ui/kbd.d.mts +0 -13
  326. package/dist/src/components/ui/kbd.mjs +0 -21
  327. package/dist/src/components/ui/label.d.mts +0 -11
  328. package/dist/src/components/ui/label.mjs +0 -17
  329. package/dist/src/components/ui/loader.d.mts +0 -6
  330. package/dist/src/components/ui/loader.mjs +0 -62
  331. package/dist/src/components/ui/navigation-menu.d.mts +0 -46
  332. package/dist/src/components/ui/navigation-menu.mjs +0 -81
  333. package/dist/src/components/ui/pagination.d.mts +0 -45
  334. package/dist/src/components/ui/pagination.mjs +0 -87
  335. package/dist/src/components/ui/popover.client.d.mts +0 -34
  336. package/dist/src/components/ui/popover.client.mjs +0 -58
  337. package/dist/src/components/ui/progress.client.d.mts +0 -12
  338. package/dist/src/components/ui/progress.client.mjs +0 -22
  339. package/dist/src/components/ui/radio-group.d.mts +0 -15
  340. package/dist/src/components/ui/radio-group.mjs +0 -29
  341. package/dist/src/components/ui/resizable.client.d.mts +0 -20
  342. package/dist/src/components/ui/resizable.client.mjs +0 -31
  343. package/dist/src/components/ui/scroll-area.d.mts +0 -17
  344. package/dist/src/components/ui/scroll-area.mjs +0 -39
  345. package/dist/src/components/ui/select.client.d.mts +0 -53
  346. package/dist/src/components/ui/select.client.mjs +0 -102
  347. package/dist/src/components/ui/separator.d.mts +0 -13
  348. package/dist/src/components/ui/separator.mjs +0 -19
  349. package/dist/src/components/ui/sheet.client.d.mts +0 -42
  350. package/dist/src/components/ui/sheet.client.mjs +0 -92
  351. package/dist/src/components/ui/sidebar.client.d.mts +0 -167
  352. package/dist/src/components/ui/sidebar.client.mjs +0 -373
  353. package/dist/src/components/ui/skeleton.d.mts +0 -9
  354. package/dist/src/components/ui/skeleton.mjs +0 -14
  355. package/dist/src/components/ui/slider.d.mts +0 -15
  356. package/dist/src/components/ui/slider.mjs +0 -39
  357. package/dist/src/components/ui/sonner.client.d.mts +0 -9
  358. package/dist/src/components/ui/sonner.client.mjs +0 -24
  359. package/dist/src/components/ui/spinner.d.mts +0 -9
  360. package/dist/src/components/ui/spinner.mjs +0 -16
  361. package/dist/src/components/ui/switch.client.d.mts +0 -14
  362. package/dist/src/components/ui/switch.client.mjs +0 -22
  363. package/dist/src/components/ui/tabs.client.d.mts +0 -30
  364. package/dist/src/components/ui/tabs.client.mjs +0 -48
  365. package/dist/src/components/ui/textarea.d.mts +0 -10
  366. package/dist/src/components/ui/textarea.mjs +0 -14
  367. package/dist/src/components/ui/toggle-group.client.d.mts +0 -28
  368. package/dist/src/components/ui/toggle-group.client.mjs +0 -54
  369. package/dist/src/components/ui/toggle.client.d.mts +0 -19
  370. package/dist/src/components/ui/toggle.client.mjs +0 -39
  371. package/dist/src/components/ui/tooltip.client.d.mts +0 -23
  372. package/dist/src/components/ui/tooltip.client.mjs +0 -38
  373. package/dist/src/lib/hooks/use-action.d.mts +0 -16
  374. package/dist/src/lib/hooks/use-action.mjs +0 -41
  375. package/dist/src/lib/hooks/use-indicator.d.mts +0 -39
  376. package/dist/src/lib/hooks/use-indicator.mjs +0 -63
  377. package/dist/src/lib/hooks/use-mobile.client.d.mts +0 -6
  378. package/dist/src/lib/hooks/use-mobile.client.mjs +0 -21
  379. package/dist/src/lib/types/config.d.mts +0 -11
  380. package/dist/src/lib/utils/array-move.d.mts +0 -10
  381. package/dist/src/lib/utils/array-move.mjs +0 -12
  382. package/dist/src/lib/utils/cn.d.mts +0 -6
  383. package/dist/src/lib/utils/cn.mjs +0 -10
  384. package/dist/src/lib/utils/fonts.d.mts +0 -7
  385. package/dist/src/lib/utils/fonts.mjs +0 -11
  386. package/dist/src/lib/utils/format.d.mts +0 -51
  387. package/dist/src/lib/utils/format.mjs +0 -113
  388. package/dist/src/lib/utils/manifest.d.mts +0 -7
  389. package/dist/src/lib/utils/manifest.mjs +0 -35
  390. package/dist/src/lib/utils/markdown.d.mts +0 -9
  391. package/dist/src/lib/utils/markdown.mjs +0 -14
  392. package/dist/src/lib/utils/url.d.mts +0 -9
  393. package/dist/src/lib/utils/url.mjs +0 -15
  394. package/dist/src/lib/utils/user-agent.mjs +0 -74
  395. package/dist/src/modules/auth/components/allowed.client.d.mts +0 -33
  396. package/dist/src/modules/auth/components/allowed.client.mjs +0 -19
  397. package/dist/src/modules/auth/components/auth-layout.server.d.mts +0 -9
  398. package/dist/src/modules/auth/components/auth-layout.server.mjs +0 -36
  399. package/dist/src/modules/auth/components/auth-loading.d.mts +0 -6
  400. package/dist/src/modules/auth/components/auth-loading.mjs +0 -17
  401. package/dist/src/modules/auth/components/create-first-user-guard.server.d.mts +0 -15
  402. package/dist/src/modules/auth/components/create-first-user-guard.server.mjs +0 -15
  403. package/dist/src/modules/auth/components/create-first-user-page.client.d.mts +0 -6
  404. package/dist/src/modules/auth/components/create-first-user-page.client.mjs +0 -153
  405. package/dist/src/modules/auth/components/forget-password-page.client.d.mts +0 -6
  406. package/dist/src/modules/auth/components/forget-password-page.client.mjs +0 -72
  407. package/dist/src/modules/auth/components/guard.server.d.mts +0 -14
  408. package/dist/src/modules/auth/components/guard.server.mjs +0 -20
  409. package/dist/src/modules/auth/components/login-page.client.d.mts +0 -11
  410. package/dist/src/modules/auth/components/login-page.client.mjs +0 -155
  411. package/dist/src/modules/auth/components/reset-password-page.client.d.mts +0 -11
  412. package/dist/src/modules/auth/components/reset-password-page.client.mjs +0 -121
  413. package/dist/src/modules/auth/components/update-password-command.d.mts +0 -22
  414. package/dist/src/modules/auth/components/update-password-command.mjs +0 -47
  415. package/dist/src/modules/auth/db/schema.d.mts +0 -983
  416. package/dist/src/modules/auth/db/schema.mjs +0 -101
  417. package/dist/src/modules/auth/handler/create-client.client.d.mts +0 -6393
  418. package/dist/src/modules/auth/handler/create-client.client.mjs +0 -25
  419. package/dist/src/modules/auth/handler/proxy.server.d.mts +0 -11
  420. package/dist/src/modules/auth/handler/proxy.server.mjs +0 -20
  421. package/dist/src/modules/auth/handler/route.server.d.mts +0 -16
  422. package/dist/src/modules/auth/handler/route.server.mjs +0 -28
  423. package/dist/src/modules/auth/handler/service.server.d.mts +0 -2101
  424. package/dist/src/modules/auth/handler/service.server.mjs +0 -87
  425. package/dist/src/modules/auth/hooks/use-auth-client.d.mts +0 -23
  426. package/dist/src/modules/auth/hooks/use-auth-client.mjs +0 -30
  427. package/dist/src/modules/auth/hooks/use-permission.d.mts +0 -42
  428. package/dist/src/modules/auth/hooks/use-permission.mjs +0 -57
  429. package/dist/src/modules/auth/hooks/use-session.d.mts +0 -40
  430. package/dist/src/modules/auth/hooks/use-session.mjs +0 -22
  431. package/dist/src/modules/auth/lib/helpers.server.d.mts +0 -84
  432. package/dist/src/modules/auth/lib/helpers.server.mjs +0 -41
  433. package/dist/src/modules/auth/lib/permissions.d.mts +0 -17
  434. package/dist/src/modules/auth/lib/permissions.mjs +0 -14
  435. package/dist/src/modules/auth/lib/validators.d.mts +0 -299
  436. package/dist/src/modules/auth/lib/validators.mjs +0 -59
  437. package/dist/src/modules/commands/components/menus/context-menu.client.d.mts +0 -39
  438. package/dist/src/modules/commands/components/menus/context-menu.client.mjs +0 -47
  439. package/dist/src/modules/commands/components/menus/dropdown-menu.client.d.mts +0 -29
  440. package/dist/src/modules/commands/components/menus/dropdown-menu.client.mjs +0 -58
  441. package/dist/src/modules/commands/components/menus/floating-menu.client.d.mts +0 -29
  442. package/dist/src/modules/commands/components/menus/floating-menu.client.mjs +0 -33
  443. package/dist/src/modules/commands/components/menus/inline-menu.client.d.mts +0 -29
  444. package/dist/src/modules/commands/components/menus/inline-menu.client.mjs +0 -41
  445. package/dist/src/modules/commands/components/menus/responsive-menu.client.d.mts +0 -16
  446. package/dist/src/modules/commands/components/menus/responsive-menu.client.mjs +0 -22
  447. package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.d.mts +0 -65
  448. package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.mjs +0 -138
  449. package/dist/src/modules/commands/components/primitives/click-command.client.d.mts +0 -26
  450. package/dist/src/modules/commands/components/primitives/click-command.client.mjs +0 -52
  451. package/dist/src/modules/commands/components/primitives/command-trigger.client.d.mts +0 -17
  452. package/dist/src/modules/commands/components/primitives/command-trigger.client.mjs +0 -42
  453. package/dist/src/modules/commands/components/primitives/dialog-command.client.d.mts +0 -53
  454. package/dist/src/modules/commands/components/primitives/dialog-command.client.mjs +0 -116
  455. package/dist/src/modules/commands/components/primitives/dropdown-command.client.d.mts +0 -47
  456. package/dist/src/modules/commands/components/primitives/dropdown-command.client.mjs +0 -131
  457. package/dist/src/modules/commands/components/primitives/empty-command.client.d.mts +0 -20
  458. package/dist/src/modules/commands/components/primitives/empty-command.client.mjs +0 -44
  459. package/dist/src/modules/commands/components/primitives/form-dialog-command.client.d.mts +0 -71
  460. package/dist/src/modules/commands/components/primitives/form-dialog-command.client.mjs +0 -163
  461. package/dist/src/modules/commands/components/render-command.mjs +0 -48
  462. package/dist/src/modules/commands/components/utils/archive-command.client.d.mts +0 -24
  463. package/dist/src/modules/commands/components/utils/archive-command.client.mjs +0 -29
  464. package/dist/src/modules/commands/components/utils/delete-command.client.d.mts +0 -20
  465. package/dist/src/modules/commands/components/utils/delete-command.client.mjs +0 -28
  466. package/dist/src/modules/commands/hooks/use-command-mutation.client.d.mts +0 -11
  467. package/dist/src/modules/commands/hooks/use-command-mutation.client.mjs +0 -39
  468. package/dist/src/modules/commands/hooks/use-command.client.d.mts +0 -31
  469. package/dist/src/modules/commands/hooks/use-command.client.mjs +0 -45
  470. package/dist/src/modules/commands/lib/builder.d.mts +0 -135
  471. package/dist/src/modules/commands/lib/builder.mjs +0 -82
  472. package/dist/src/modules/commands/lib/registery.d.mts +0 -68
  473. package/dist/src/modules/commands/lib/registery.mjs +0 -103
  474. package/dist/src/modules/commands/lib/utils.d.mts +0 -11
  475. package/dist/src/modules/commands/lib/utils.mjs +0 -14
  476. package/dist/src/modules/config/lib/config.d.mts +0 -16
  477. package/dist/src/modules/config/lib/config.mjs +0 -8
  478. package/dist/src/modules/config/lib/context.d.mts +0 -17
  479. package/dist/src/modules/config/lib/context.mjs +0 -7
  480. package/dist/src/modules/config/paths/helpers.d.mts +0 -9
  481. package/dist/src/modules/config/paths/helpers.mjs +0 -8
  482. package/dist/src/modules/config/paths/types.d.mts +0 -31
  483. package/dist/src/modules/data-tables/components/cell/common.client.d.mts +0 -26
  484. package/dist/src/modules/data-tables/components/cell/common.client.mjs +0 -35
  485. package/dist/src/modules/data-tables/components/cell/index.client.d.mts +0 -10
  486. package/dist/src/modules/data-tables/components/cell/index.client.mjs +0 -24
  487. package/dist/src/modules/data-tables/components/cell/select.client.d.mts +0 -10
  488. package/dist/src/modules/data-tables/components/cell/select.client.mjs +0 -36
  489. package/dist/src/modules/data-tables/components/column-header.d.mts +0 -15
  490. package/dist/src/modules/data-tables/components/column-header.mjs +0 -46
  491. package/dist/src/modules/data-tables/components/filters/combobox.client.d.mts +0 -27
  492. package/dist/src/modules/data-tables/components/filters/combobox.client.mjs +0 -97
  493. package/dist/src/modules/data-tables/components/filters/date-range.client.d.mts +0 -24
  494. package/dist/src/modules/data-tables/components/filters/date-range.client.mjs +0 -99
  495. package/dist/src/modules/data-tables/components/filters/search.client.d.mts +0 -17
  496. package/dist/src/modules/data-tables/components/filters/search.client.mjs +0 -32
  497. package/dist/src/modules/data-tables/components/filters/slider.client.d.mts +0 -22
  498. package/dist/src/modules/data-tables/components/filters/slider.client.mjs +0 -128
  499. package/dist/src/modules/data-tables/components/filters/toggle.client.d.mts +0 -17
  500. package/dist/src/modules/data-tables/components/filters/toggle.client.mjs +0 -25
  501. package/dist/src/modules/data-tables/components/footer.mjs +0 -31
  502. package/dist/src/modules/data-tables/components/header.d.mts +0 -40
  503. package/dist/src/modules/data-tables/components/header.mjs +0 -43
  504. package/dist/src/modules/data-tables/components/layout.d.mts +0 -11
  505. package/dist/src/modules/data-tables/components/layout.mjs +0 -14
  506. package/dist/src/modules/data-tables/components/search-input.client.d.mts +0 -6
  507. package/dist/src/modules/data-tables/components/search-input.client.mjs +0 -19
  508. package/dist/src/modules/data-tables/components/skeleton.d.mts +0 -6
  509. package/dist/src/modules/data-tables/components/skeleton.mjs +0 -21
  510. package/dist/src/modules/data-tables/components/table.d.mts +0 -33
  511. package/dist/src/modules/data-tables/components/table.mjs +0 -55
  512. package/dist/src/modules/data-tables/components/toolbar.d.mts +0 -22
  513. package/dist/src/modules/data-tables/components/toolbar.mjs +0 -21
  514. package/dist/src/modules/data-tables/hooks/use-context.client.d.mts +0 -47
  515. package/dist/src/modules/data-tables/hooks/use-context.client.mjs +0 -34
  516. package/dist/src/modules/data-tables/hooks/use-search.client.mjs +0 -39
  517. package/dist/src/modules/data-tables/hooks/use-selection.client.mjs +0 -44
  518. package/dist/src/modules/data-tables/hooks/use-table.client.d.mts +0 -10
  519. package/dist/src/modules/data-tables/hooks/use-table.client.mjs +0 -55
  520. package/dist/src/modules/data-tables/lib/converters/dto.d.mts +0 -50
  521. package/dist/src/modules/data-tables/lib/converters/dto.mjs +0 -24
  522. package/dist/src/modules/data-tables/lib/converters/filters.d.mts +0 -41
  523. package/dist/src/modules/data-tables/lib/converters/filters.mjs +0 -38
  524. package/dist/src/modules/data-tables/lib/converters/pagination.d.mts +0 -17
  525. package/dist/src/modules/data-tables/lib/converters/pagination.mjs +0 -15
  526. package/dist/src/modules/data-tables/lib/converters/search.d.mts +0 -16
  527. package/dist/src/modules/data-tables/lib/converters/search.mjs +0 -15
  528. package/dist/src/modules/data-tables/lib/converters/sorting.d.mts +0 -48
  529. package/dist/src/modules/data-tables/lib/converters/sorting.mjs +0 -55
  530. package/dist/src/modules/data-tables/lib/filters/config.d.mts +0 -13
  531. package/dist/src/modules/data-tables/lib/filters/config.mjs +0 -5
  532. package/dist/src/modules/data-tables/lib/filters/helpers.d.mts +0 -10
  533. package/dist/src/modules/data-tables/lib/filters/helpers.mjs +0 -16
  534. package/dist/src/modules/data-tables/lib/filters/parsers.d.mts +0 -46
  535. package/dist/src/modules/data-tables/lib/filters/parsers.mjs +0 -47
  536. package/dist/src/modules/data-tables/lib/filters/resolvers.d.mts +0 -28
  537. package/dist/src/modules/data-tables/lib/filters/resolvers.mjs +0 -55
  538. package/dist/src/modules/data-tables/lib/helpers/create-column.mjs +0 -10
  539. package/dist/src/modules/data-tables/lib/search-params.d.mts +0 -21
  540. package/dist/src/modules/data-tables/lib/search-params.mjs +0 -16
  541. package/dist/src/modules/data-tables/lib/types.d.mts +0 -54
  542. package/dist/src/modules/data-tables/lib/validators.d.mts +0 -19
  543. package/dist/src/modules/data-tables/lib/validators.mjs +0 -16
  544. package/dist/src/modules/data-tables/server/get-data.server.d.mts +0 -29
  545. package/dist/src/modules/data-tables/server/get-data.server.mjs +0 -47
  546. package/dist/src/modules/data-tables/strategies/helpers/sorting.mjs +0 -37
  547. package/dist/src/modules/data-tables/strategies/infinite/components.mjs +0 -50
  548. package/dist/src/modules/data-tables/strategies/infinite/strategy.d.mts +0 -20
  549. package/dist/src/modules/data-tables/strategies/infinite/strategy.mjs +0 -50
  550. package/dist/src/modules/data-tables/strategies/local/components.mjs +0 -25
  551. package/dist/src/modules/data-tables/strategies/local/strategy.d.mts +0 -12
  552. package/dist/src/modules/data-tables/strategies/local/strategy.mjs +0 -31
  553. package/dist/src/modules/data-tables/strategies/pagination/components.mjs +0 -131
  554. package/dist/src/modules/data-tables/strategies/pagination/strategy.d.mts +0 -12
  555. package/dist/src/modules/data-tables/strategies/pagination/strategy.mjs +0 -45
  556. package/dist/src/modules/data-tables/tables/data-table/components/body.mjs +0 -32
  557. package/dist/src/modules/data-tables/tables/data-table/components/header.mjs +0 -12
  558. package/dist/src/modules/data-tables/tables/data-table/components/row.mjs +0 -13
  559. package/dist/src/modules/data-tables/tables/data-table/components/table.d.mts +0 -8
  560. package/dist/src/modules/data-tables/tables/data-table/components/table.mjs +0 -42
  561. package/dist/src/modules/data-tables/tables/inline-table/components/body.mjs +0 -69
  562. package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.d.mts +0 -11
  563. package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.mjs +0 -14
  564. package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts +0 -24
  565. package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +0 -38
  566. package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.d.mts +0 -11
  567. package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +0 -14
  568. package/dist/src/modules/data-tables/tables/inline-table/components/header.mjs +0 -10
  569. package/dist/src/modules/data-tables/tables/inline-table/components/row.client.mjs +0 -24
  570. package/dist/src/modules/data-tables/tables/inline-table/components/table.d.mts +0 -14
  571. package/dist/src/modules/data-tables/tables/inline-table/components/table.mjs +0 -52
  572. package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +0 -48
  573. package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.mjs +0 -58
  574. package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts +0 -29
  575. package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs +0 -94
  576. package/dist/src/modules/database/lib/helpers.d.mts +0 -15
  577. package/dist/src/modules/database/lib/helpers.mjs +0 -16
  578. package/dist/src/modules/database/lib/service.server.d.mts +0 -33
  579. package/dist/src/modules/database/lib/service.server.mjs +0 -23
  580. package/dist/src/modules/database/lib/types.d.mts +0 -4
  581. package/dist/src/modules/emails/lib/service.server.d.mts +0 -28
  582. package/dist/src/modules/emails/lib/service.server.mjs +0 -20
  583. package/dist/src/modules/inline/components/cell.client.d.mts +0 -20
  584. package/dist/src/modules/inline/components/cell.client.mjs +0 -46
  585. package/dist/src/modules/inline/components/field.client.d.mts +0 -36
  586. package/dist/src/modules/inline/components/field.client.mjs +0 -61
  587. package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.d.mts +0 -28
  588. package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.mjs +0 -49
  589. package/dist/src/modules/inline/components/inputs/combobox.client.d.mts +0 -23
  590. package/dist/src/modules/inline/components/inputs/combobox.client.mjs +0 -45
  591. package/dist/src/modules/inline/components/inputs/date-time.client.d.mts +0 -25
  592. package/dist/src/modules/inline/components/inputs/date-time.client.mjs +0 -48
  593. package/dist/src/modules/inline/components/inputs/date.client.d.mts +0 -66
  594. package/dist/src/modules/inline/components/inputs/date.client.mjs +0 -175
  595. package/dist/src/modules/inline/components/inputs/editor.client.d.mts +0 -26
  596. package/dist/src/modules/inline/components/inputs/editor.client.mjs +0 -51
  597. package/dist/src/modules/inline/components/inputs/input-recipient.client.d.mts +0 -27
  598. package/dist/src/modules/inline/components/inputs/input-recipient.client.mjs +0 -48
  599. package/dist/src/modules/inline/components/inputs/input.client.d.mts +0 -54
  600. package/dist/src/modules/inline/components/inputs/input.client.mjs +0 -129
  601. package/dist/src/modules/inline/components/inputs/select.client.d.mts +0 -32
  602. package/dist/src/modules/inline/components/inputs/select.client.mjs +0 -64
  603. package/dist/src/modules/inline/components/inputs/switch.client.d.mts +0 -22
  604. package/dist/src/modules/inline/components/inputs/switch.client.mjs +0 -42
  605. package/dist/src/modules/inline/components/inputs/toggle.client.d.mts +0 -24
  606. package/dist/src/modules/inline/components/inputs/toggle.client.mjs +0 -47
  607. package/dist/src/modules/inline/hooks/inline-provider.d.mts +0 -28
  608. package/dist/src/modules/inline/hooks/inline-provider.mjs +0 -25
  609. package/dist/src/modules/inline/hooks/inline-state.client.d.mts +0 -30
  610. package/dist/src/modules/inline/hooks/inline-state.client.mjs +0 -25
  611. package/dist/src/modules/inline/hooks/use-inline.client.d.mts +0 -144
  612. package/dist/src/modules/inline/hooks/use-inline.client.mjs +0 -125
  613. package/dist/src/modules/inline/lib/validators.d.mts +0 -56
  614. package/dist/src/modules/inline/lib/validators.mjs +0 -34
  615. package/dist/src/modules/inline/lib/variants.d.mts +0 -11
  616. package/dist/src/modules/inline/lib/variants.mjs +0 -21
  617. package/dist/src/modules/router/handler/caller.client.d.mts +0 -10
  618. package/dist/src/modules/router/handler/caller.client.mjs +0 -23
  619. package/dist/src/modules/router/handler/caller.server.d.mts +0 -6
  620. package/dist/src/modules/router/handler/caller.server.mjs +0 -7
  621. package/dist/src/modules/router/handler/context.server.d.mts +0 -62
  622. package/dist/src/modules/router/handler/context.server.mjs +0 -20
  623. package/dist/src/modules/router/handler/init.server.d.mts +0 -65
  624. package/dist/src/modules/router/handler/init.server.mjs +0 -55
  625. package/dist/src/modules/router/handler/register.server.d.mts +0 -8
  626. package/dist/src/modules/router/handler/register.server.mjs +0 -10
  627. package/dist/src/modules/router/handler/route.server.d.mts +0 -21
  628. package/dist/src/modules/router/handler/route.server.mjs +0 -32
  629. package/dist/src/modules/router/lib/error.server.d.mts +0 -2
  630. package/dist/src/modules/router/lib/error.server.mjs +0 -3
  631. package/dist/src/modules/router/lib/helpers.mjs +0 -7
  632. package/dist/src/modules/router/lib/query-client.d.mts +0 -10
  633. package/dist/src/modules/router/lib/query-client.mjs +0 -50
  634. package/dist/src/modules/router/lib/query-client.server.d.mts +0 -17
  635. package/dist/src/modules/router/lib/query-client.server.mjs +0 -23
  636. package/dist/src/modules/router/lib/validators.d.mts +0 -12
  637. package/dist/src/modules/router/lib/validators.mjs +0 -10
  638. package/dist/src/modules/storage/components/dropzone-context.client.d.mts +0 -18
  639. package/dist/src/modules/storage/components/dropzone-context.client.mjs +0 -17
  640. package/dist/src/modules/storage/components/dropzone.client.d.mts +0 -52
  641. package/dist/src/modules/storage/components/dropzone.client.mjs +0 -110
  642. package/dist/src/modules/storage/components/image-grid.client.d.mts +0 -32
  643. package/dist/src/modules/storage/components/image-grid.client.mjs +0 -167
  644. package/dist/src/modules/storage/components/image.client.d.mts +0 -7
  645. package/dist/src/modules/storage/components/image.client.mjs +0 -16
  646. package/dist/src/modules/storage/components/upload-button.client.d.mts +0 -11
  647. package/dist/src/modules/storage/components/upload-button.client.mjs +0 -33
  648. package/dist/src/modules/storage/components/upload-zone-context.client.d.mts +0 -30
  649. package/dist/src/modules/storage/components/upload-zone-context.client.mjs +0 -20
  650. package/dist/src/modules/storage/components/upload-zone.client.d.mts +0 -27
  651. package/dist/src/modules/storage/components/upload-zone.client.mjs +0 -111
  652. package/dist/src/modules/storage/lib/constants.d.mts +0 -5
  653. package/dist/src/modules/storage/lib/constants.mjs +0 -5
  654. package/dist/src/modules/storage/lib/helpers.d.mts +0 -29
  655. package/dist/src/modules/storage/lib/helpers.mjs +0 -49
  656. package/dist/src/modules/storage/lib/procedures.server.d.mts +0 -1990
  657. package/dist/src/modules/storage/lib/procedures.server.mjs +0 -21
  658. package/dist/src/modules/storage/lib/router-handlers.server.d.mts +0 -40
  659. package/dist/src/modules/storage/lib/router-handlers.server.mjs +0 -123
  660. package/dist/src/modules/storage/lib/schema.d.mts +0 -291
  661. package/dist/src/modules/storage/lib/schema.mjs +0 -37
  662. package/dist/src/modules/storage/lib/service.server.d.mts +0 -2217
  663. package/dist/src/modules/storage/lib/service.server.mjs +0 -514
  664. package/dist/src/modules/storage/lib/upload.client.d.mts +0 -57
  665. package/dist/src/modules/storage/lib/upload.client.mjs +0 -86
  666. package/dist/src/modules/storage/lib/validators.d.mts +0 -935
  667. package/dist/src/modules/storage/lib/validators.mjs +0 -52
  668. package/dist/src/modules/storage/providers/adapters/s3.server.d.mts +0 -18
  669. package/dist/src/modules/storage/providers/adapters/s3.server.mjs +0 -172
  670. package/dist/src/modules/storage/providers/lib/constants.d.mts +0 -5
  671. package/dist/src/modules/storage/providers/lib/constants.mjs +0 -5
  672. package/dist/src/modules/storage/providers/lib/errors.d.mts +0 -11
  673. package/dist/src/modules/storage/providers/lib/errors.mjs +0 -12
  674. package/dist/src/modules/storage/providers/lib/types.d.mts +0 -20
  675. package/dist/src/modules/storage/providers/lib/validators.d.mts +0 -111
  676. package/dist/src/modules/storage/providers/lib/validators.mjs +0 -74
  677. package/src/modules/router/handler/context.server.ts +0 -28
  678. 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
+ }