@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
@@ -0,0 +1,43 @@
1
+ import { emailOTP } from "better-auth/plugins";
2
+ import ForgetPasswordEmail from "@/components/emails/forget-password-email";
3
+ import { url } from "@/lib/utils/url";
4
+ import type { Email } from "@/modules/emails/lib/service.server";
5
+
6
+ type EmailOtpOptions = Omit<NonNullable<Parameters<typeof emailOTP>[0]>, "sendVerificationOTP">;
7
+
8
+ export type EmailOtpPluginConfig = EmailOtpOptions & {
9
+ email: Email;
10
+ defaultFrom: string;
11
+ };
12
+
13
+ /**
14
+ * Email OTP plugin.
15
+ *
16
+ * Handles Better Auth email OTP flows and provides Tulip's default
17
+ * forgot-password email implementation.
18
+ */
19
+ export function emailOtpPlugin(config: EmailOtpPluginConfig) {
20
+ const { email: emailClient, defaultFrom, ...options } = config;
21
+
22
+ return emailOTP({
23
+ ...options,
24
+ sendVerificationOTP: async ({ email, otp, type }) => {
25
+ if (type !== "forget-password") return;
26
+
27
+ const searchParams = new URLSearchParams();
28
+ searchParams.set("email", email);
29
+ searchParams.set("otp", otp);
30
+
31
+ const resetPasswordHref = url(`/auth/reset-password?${searchParams.toString()}`);
32
+
33
+ const result = await emailClient.emails.send({
34
+ from: defaultFrom,
35
+ to: email,
36
+ subject: "Wachtwoord herstellen",
37
+ react: ForgetPasswordEmail({ resetPasswordHref }),
38
+ });
39
+
40
+ if (result.error) throw new Error(result.error.message);
41
+ },
42
+ });
43
+ }
@@ -1,6 +1,3 @@
1
- export * from "../database/lib/helpers";
2
- export * from "../database/lib/types";
3
-
4
1
  export * from "./lib/config";
5
2
  export * from "./lib/context";
6
3
 
@@ -1,17 +1,21 @@
1
- import type { Auth } from "@/modules/auth/handler/service.server";
1
+ import type { BetterAuthOptions } from "better-auth";
2
+ import type { Auth, TAuthServerOptions } from "@/modules/auth/handler/service.server";
2
3
  import type { Database } from "@/modules/database/lib/service.server";
3
4
  import type { TDatabaseSchema } from "@/modules/database/lib/types";
4
5
  import type { Email } from "@/modules/emails/lib/service.server";
5
6
  import type { Storage } from "@/modules/storage/lib/service.server";
6
7
 
7
- export type TulipContext<TSchema extends TDatabaseSchema> = {
8
+ export type TulipContext<TSchema extends TDatabaseSchema, TOptions extends TAuthServerOptions> = {
8
9
  db: Database<TSchema>;
9
10
  schema: TSchema;
10
- auth: Auth;
11
+ auth: Auth<TOptions>;
11
12
  email: Email;
12
13
  storage: Storage<TSchema>;
13
14
  };
14
15
 
15
- export function createContext<TSchema extends TDatabaseSchema>(props: TulipContext<TSchema>) {
16
+ export function createContext<
17
+ TSchema extends TDatabaseSchema,
18
+ TAuthOptions extends BetterAuthOptions = BetterAuthOptions,
19
+ >(props: TulipContext<TSchema, TAuthOptions>) {
16
20
  return props;
17
21
  }
@@ -25,11 +25,7 @@ export type TableFilterDateRangePreset = {
25
25
  value: [Date, Date];
26
26
  };
27
27
 
28
- export function TableFilterDateRange({
29
- title,
30
- filter,
31
- presets,
32
- }: TableFilterDateRangeProps) {
28
+ export function TableFilterDateRange({ title, filter, presets }: TableFilterDateRangeProps) {
33
29
  const [open, setOpen] = useState(false);
34
30
  const [query, setQuery] = useQueryState(filter.name, filter.parser);
35
31
 
@@ -11,6 +11,7 @@ export * from "./components/toolbar";
11
11
  /**
12
12
  * Lib
13
13
  */
14
+ export * from "./lib/converters/dto";
14
15
  export * from "./lib/filters/config";
15
16
  export * from "./lib/filters/helpers";
16
17
  export * from "./lib/filters/parsers";
@@ -1,3 +1,4 @@
1
+ import { z } from "zod";
1
2
  import type { TableQuerySchema } from "../validators";
2
3
 
3
4
  /**
@@ -19,6 +20,17 @@ export type TableQueryPaginationResponse = {
19
20
  previousCursor: number | null;
20
21
  };
21
22
 
23
+ export const tableQueryPaginationResponseSchema = z.object({
24
+ total: z.number(),
25
+ totalPages: z.number(),
26
+ limit: z.number(),
27
+ hasNextPage: z.boolean(),
28
+ hasPreviousPage: z.boolean(),
29
+ cursor: z.number(),
30
+ nextCursor: z.number().nullable(),
31
+ previousCursor: z.number().nullable(),
32
+ });
33
+
22
34
  /**
23
35
  * Table query response input
24
36
  */
@@ -1,6 +1,6 @@
1
- import type { TDatabaseSchema } from "@tulip-systems/core/config";
2
1
  import { and, type SQL } from "drizzle-orm";
3
2
  import type { Database } from "@/modules/database/lib/service.server";
3
+ import type { TDatabaseSchema } from "@/modules/database/lib/types";
4
4
 
5
5
  /**
6
6
  * Parser function for a single filter key.
@@ -93,8 +93,7 @@ export const parseFilterDatetimeRange = <TSchema extends ParseFilterDatetimeRang
93
93
  const [from, to] = encoded.split("_");
94
94
  return (from && to ? [new Date(from), new Date(to)] : null) as unknown as z.input<TSchema>;
95
95
  },
96
- encode: (decoded) =>
97
- decoded ? `${decoded[0].toISOString()}_${decoded[1].toISOString()}` : "",
96
+ encode: (decoded) => (decoded ? `${decoded[0].toISOString()}_${decoded[1].toISOString()}` : ""),
98
97
  });
99
98
 
100
99
  /**
@@ -11,9 +11,10 @@ import {
11
11
  } from "drizzle-orm";
12
12
  import type { PgTable } from "drizzle-orm/pg-core";
13
13
  import type { RelationalQueryBuilder } from "drizzle-orm/pg-core/query-builders/query";
14
+ import type { TAuthServerOptions } from "@/modules/auth/handler/service.server";
14
15
  import type { TulipContext } from "@/modules/config/entry";
15
16
  import type { TDatabaseSchema } from "@/modules/database/lib/types";
16
- import { parseTableQueryPagination } from "../entry.server";
17
+ import { parseTableQueryPagination } from "../lib/converters/pagination";
17
18
  import {
18
19
  type ConvertSearchToQueryParamsFields,
19
20
  convertSearchToQueryParams,
@@ -32,8 +33,12 @@ export type GetTableDataOptions<TTable extends PgTable> = DBQueryConfig<"many">
32
33
  /**
33
34
  * Get data from the database for the data table
34
35
  */
35
- export async function getTableData<TTable extends PgTable, TSchema extends TDatabaseSchema>(
36
- { db, schema }: TulipContext<TSchema>,
36
+ export async function getTableData<
37
+ TTable extends PgTable,
38
+ TSchema extends TDatabaseSchema,
39
+ AuthOptions extends TAuthServerOptions,
40
+ >(
41
+ { db, schema }: TulipContext<TSchema, AuthOptions>,
37
42
  query: TableQuerySchema,
38
43
  options: GetTableDataOptions<TTable>,
39
44
  ): Promise<{ data: TTable["$inferSelect"][]; total: number }> {
@@ -19,9 +19,7 @@ import { type InlineEditVariantsProps, inlineEditVariants } from "../../lib/vari
19
19
 
20
20
  type ComboboxDropdownInlineTrigger = "commit";
21
21
 
22
- type InlineStringSchema =
23
- | z.ZodType<string | null, string | null>
24
- | z.ZodType<string, string>;
22
+ type InlineStringSchema = z.ZodType<string | null, string | null> | z.ZodType<string, string>;
25
23
 
26
24
  export type InlineEditComboboxDropdownProps<
27
25
  TValue extends ComboboxDropdownItem,
@@ -13,9 +13,7 @@ import {
13
13
 
14
14
  type ComboboxInlineTrigger = "commit";
15
15
 
16
- type InlineStringSchema =
17
- | z.ZodType<string | null, string | null>
18
- | z.ZodType<string, string>;
16
+ type InlineStringSchema = z.ZodType<string | null, string | null> | z.ZodType<string, string>;
19
17
 
20
18
  export type InlineComboboxProps<
21
19
  TValue,
@@ -68,11 +66,7 @@ export function InlineCombobox<
68
66
  state,
69
67
  });
70
68
 
71
- const { handleTrigger } = useInlineStrategy<
72
- ComboboxInlineTrigger,
73
- TSchema,
74
- string | null
75
- >({
69
+ const { handleTrigger } = useInlineStrategy<ComboboxInlineTrigger, TSchema, string | null>({
76
70
  strategy,
77
71
  state,
78
72
  mutations,
@@ -17,9 +17,7 @@ import { type InlineEditVariantsProps, inlineEditVariants } from "../../lib/vari
17
17
 
18
18
  type DateTimeInlineTrigger = "change" | "blur";
19
19
 
20
- type InlineDateTimeSchema =
21
- | z.ZodType<Date | null, Date | null>
22
- | z.ZodType<Date, Date>;
20
+ type InlineDateTimeSchema = z.ZodType<Date | null, Date | null> | z.ZodType<Date, Date>;
23
21
 
24
22
  type InlineDateTimeInputProps<
25
23
  TSchema extends InlineDateTimeSchema = z.ZodType<Date | null, Date | null>,
@@ -28,14 +26,7 @@ type InlineDateTimeInputProps<
28
26
  TVariables = unknown,
29
27
  TOnMutateResult = unknown,
30
28
  > = ComponentProps<typeof DateTimeInput> &
31
- useInlineEditOptions<
32
- DateTimeInlineTrigger,
33
- TSchema,
34
- TData,
35
- TError,
36
- TVariables,
37
- TOnMutateResult
38
- > &
29
+ useInlineEditOptions<DateTimeInlineTrigger, TSchema, TData, TError, TVariables, TOnMutateResult> &
39
30
  InlineEditVariantsProps;
40
31
 
41
32
  export function InlineDateTimeInput<
@@ -59,25 +50,14 @@ export function InlineDateTimeInput<
59
50
  initialValue ? format(initialValue, "yyyy-MM-dd'T'HH:mm") : "",
60
51
  );
61
52
  const access = useInlineAccess({ permission, disabled });
62
- const mutations = useInlineMutation<
63
- TSchema,
64
- string,
65
- TData,
66
- TError,
67
- TVariables,
68
- TOnMutateResult
69
- >({
53
+ const mutations = useInlineMutation<TSchema, string, TData, TError, TVariables, TOnMutateResult>({
70
54
  variables,
71
55
  mutation,
72
56
  access,
73
57
  state,
74
58
  });
75
59
 
76
- const { handleTrigger } = useInlineStrategy<
77
- DateTimeInlineTrigger,
78
- TSchema,
79
- string
80
- >({
60
+ const { handleTrigger } = useInlineStrategy<DateTimeInlineTrigger, TSchema, string>({
81
61
  strategy,
82
62
  state,
83
63
  mutations,
@@ -121,9 +121,7 @@ export function InlineDateInputField({
121
121
  }: InlineDateInputFieldProps) {
122
122
  const { state, access, mutations } = useInlineDateContext();
123
123
 
124
- const [draftValue, setDraftValue] = useState(() =>
125
- formatDisplayDate(state.value, dateFormat),
126
- );
124
+ const [draftValue, setDraftValue] = useState(() => formatDisplayDate(state.value, dateFormat));
127
125
  const [isLocallyInvalid, setIsLocallyInvalid] = useState(false);
128
126
  const [isFocused, setIsFocused] = useState(false);
129
127
 
@@ -270,20 +268,14 @@ function toCalendarDate(value: string | null | undefined): Date | undefined {
270
268
  return format(date, "yyyy-MM-dd") === value ? date : undefined;
271
269
  }
272
270
 
273
- function formatDisplayDate(
274
- value: string | null | undefined,
275
- dateFormat: string,
276
- ): string {
271
+ function formatDisplayDate(value: string | null | undefined, dateFormat: string): string {
277
272
  const date = toCalendarDate(value);
278
273
  if (!date) return "";
279
274
 
280
275
  return format(date, dateFormat);
281
276
  }
282
277
 
283
- function parseDisplayDate(
284
- value: string,
285
- dateFormat: string,
286
- ): string | null | undefined {
278
+ function parseDisplayDate(value: string, dateFormat: string): string | null | undefined {
287
279
  const trimmed = value.trim();
288
280
  if (!trimmed) return null;
289
281
 
@@ -21,24 +21,23 @@ type InlineEditorSchema =
21
21
  | z.ZodType<EditorJSONContent, EditorJSONContent>;
22
22
 
23
23
  export type InlineEditorProps<
24
- TSchema extends InlineEditorSchema = z.ZodType<EditorJSONContent | null, EditorJSONContent | null>,
24
+ TSchema extends InlineEditorSchema = z.ZodType<
25
+ EditorJSONContent | null,
26
+ EditorJSONContent | null
27
+ >,
25
28
  TData = unknown,
26
29
  TError = DefaultError,
27
30
  TVariables = unknown,
28
31
  TOnMutateResult = unknown,
29
- > = useInlineEditOptions<
30
- EditorInlineTrigger,
31
- TSchema,
32
- TData,
33
- TError,
34
- TVariables,
35
- TOnMutateResult
36
- > &
32
+ > = useInlineEditOptions<EditorInlineTrigger, TSchema, TData, TError, TVariables, TOnMutateResult> &
37
33
  InlineEditVariantsProps &
38
34
  Omit<EditorProps, "value" | "onUpdate" | "onBlur" | "variant">;
39
35
 
40
36
  export function InlineEditor<
41
- TSchema extends InlineEditorSchema = z.ZodType<EditorJSONContent | null, EditorJSONContent | null>,
37
+ TSchema extends InlineEditorSchema = z.ZodType<
38
+ EditorJSONContent | null,
39
+ EditorJSONContent | null
40
+ >,
42
41
  TData = unknown,
43
42
  TError = DefaultError,
44
43
  TVariables = unknown,
@@ -16,13 +16,9 @@ import { type InlineEditVariantsProps, inlineEditVariants } from "../../lib/vari
16
16
 
17
17
  type InputInlineTrigger = "change" | "blur";
18
18
 
19
- type InlineStringSchema =
20
- | z.ZodType<string | null, string | null>
21
- | z.ZodType<string, string>;
19
+ type InlineStringSchema = z.ZodType<string | null, string | null> | z.ZodType<string, string>;
22
20
 
23
- type InlineNumberSchema =
24
- | z.ZodType<number | null, number | null>
25
- | z.ZodType<number, number>;
21
+ type InlineNumberSchema = z.ZodType<number | null, number | null> | z.ZodType<number, number>;
26
22
 
27
23
  type InlineEditInputProps<
28
24
  TSchema extends z.ZodType,
@@ -121,13 +117,7 @@ export function InlineNumberInput<
121
117
  strategy,
122
118
  disabled,
123
119
  ...props
124
- }: InlineEditInputProps<
125
- TSchema,
126
- TData,
127
- TError,
128
- TVariables,
129
- TOnMutateResult
130
- >) {
120
+ }: InlineEditInputProps<TSchema, TData, TError, TVariables, TOnMutateResult>) {
131
121
  const state = useInlineState<number | null>(initialValue);
132
122
  const access = useInlineAccess({ permission, disabled });
133
123
  const mutations = useInlineMutation<
@@ -144,11 +134,7 @@ export function InlineNumberInput<
144
134
  state,
145
135
  });
146
136
 
147
- const { handleTrigger } = useInlineStrategy<
148
- InputInlineTrigger,
149
- TSchema,
150
- number | null
151
- >({
137
+ const { handleTrigger } = useInlineStrategy<InputInlineTrigger, TSchema, number | null>({
152
138
  strategy,
153
139
  state,
154
140
  mutations,
@@ -181,9 +167,10 @@ export function InlineNumberInput<
181
167
  * The inline edit decimal input component.
182
168
  */
183
169
  export function InlineDecimalInput<
184
- TSchema extends
185
- | z.ZodType<string | null, string | null>
186
- | z.ZodType<string, string> = z.ZodType<string | null, string | null>,
170
+ TSchema extends z.ZodType<string | null, string | null> | z.ZodType<string, string> = z.ZodType<
171
+ string | null,
172
+ string | null
173
+ >,
187
174
  TData = unknown,
188
175
  TError = DefaultError,
189
176
  TVariables = unknown,
@@ -198,13 +185,7 @@ export function InlineDecimalInput<
198
185
  strategy,
199
186
  disabled,
200
187
  ...props
201
- }: InlineEditInputProps<
202
- TSchema,
203
- TData,
204
- TError,
205
- TVariables,
206
- TOnMutateResult
207
- >) {
188
+ }: InlineEditInputProps<TSchema, TData, TError, TVariables, TOnMutateResult>) {
208
189
  const state = useInlineState<string | null>(initialValue);
209
190
  const access = useInlineAccess({ permission, disabled });
210
191
  const mutations = useInlineMutation<
@@ -221,11 +202,7 @@ export function InlineDecimalInput<
221
202
  state,
222
203
  });
223
204
 
224
- const { handleTrigger } = useInlineStrategy<
225
- InputInlineTrigger,
226
- TSchema,
227
- string | null
228
- >({
205
+ const { handleTrigger } = useInlineStrategy<InputInlineTrigger, TSchema, string | null>({
229
206
  strategy,
230
207
  state,
231
208
  mutations,
@@ -23,9 +23,7 @@ import { type InlineEditVariantsProps, inlineEditVariants } from "../../lib/vari
23
23
 
24
24
  type SelectInlineTrigger = "commit";
25
25
 
26
- type InlineStringSchema =
27
- | z.ZodType<string | null, string | null>
28
- | z.ZodType<string, string>;
26
+ type InlineStringSchema = z.ZodType<string | null, string | null> | z.ZodType<string, string>;
29
27
 
30
28
  type InlineSelectProps<
31
29
  TSchema extends InlineStringSchema = z.ZodType<string | null, string | null>,
@@ -34,14 +32,7 @@ type InlineSelectProps<
34
32
  TVariables = unknown,
35
33
  TOnMutateResult = unknown,
36
34
  > = Omit<ComponentProps<typeof Select>, "value" | "defaultValue"> &
37
- useInlineEditOptions<
38
- SelectInlineTrigger,
39
- TSchema,
40
- TData,
41
- TError,
42
- TVariables,
43
- TOnMutateResult
44
- >;
35
+ useInlineEditOptions<SelectInlineTrigger, TSchema, TData, TError, TVariables, TOnMutateResult>;
45
36
 
46
37
  export function InlineSelect<
47
38
  TSchema extends InlineStringSchema = z.ZodType<string | null, string | null>,
@@ -75,11 +66,7 @@ export function InlineSelect<
75
66
  state,
76
67
  });
77
68
 
78
- const { handleTrigger } = useInlineStrategy<
79
- SelectInlineTrigger,
80
- TSchema,
81
- string | null
82
- >({
69
+ const { handleTrigger } = useInlineStrategy<SelectInlineTrigger, TSchema, string | null>({
83
70
  strategy,
84
71
  state,
85
72
  mutations,
@@ -14,9 +14,7 @@ import {
14
14
 
15
15
  type SwitchInlineTrigger = "commit";
16
16
 
17
- type InlineBooleanSchema =
18
- | z.ZodType<boolean | null, boolean | null>
19
- | z.ZodType<boolean, boolean>;
17
+ type InlineBooleanSchema = z.ZodType<boolean | null, boolean | null> | z.ZodType<boolean, boolean>;
20
18
 
21
19
  type InlineSwitchProps<
22
20
  TSchema extends InlineBooleanSchema = z.ZodType<boolean | null, boolean | null>,
@@ -25,14 +23,7 @@ type InlineSwitchProps<
25
23
  TVariables = unknown,
26
24
  TOnMutateResult = unknown,
27
25
  > = ComponentProps<typeof Switch> &
28
- useInlineEditOptions<
29
- SwitchInlineTrigger,
30
- TSchema,
31
- TData,
32
- TError,
33
- TVariables,
34
- TOnMutateResult
35
- >;
26
+ useInlineEditOptions<SwitchInlineTrigger, TSchema, TData, TError, TVariables, TOnMutateResult>;
36
27
 
37
28
  export function InlineSwitch<
38
29
  TSchema extends InlineBooleanSchema = z.ZodType<boolean | null, boolean | null>,
@@ -65,11 +56,7 @@ export function InlineSwitch<
65
56
  state,
66
57
  });
67
58
 
68
- const { handleTrigger } = useInlineStrategy<
69
- SwitchInlineTrigger,
70
- TSchema,
71
- boolean | null
72
- >({
59
+ const { handleTrigger } = useInlineStrategy<SwitchInlineTrigger, TSchema, boolean | null>({
73
60
  strategy,
74
61
  state,
75
62
  mutations,
@@ -2,7 +2,6 @@
2
2
  * Handler
3
3
  */
4
4
  export * from "./handler/caller.server";
5
- export * from "./handler/context.server";
6
5
  export * from "./handler/init.server";
7
6
  export * from "./handler/register.server";
8
7
  export * from "./handler/route.server";
@@ -1,78 +1,74 @@
1
1
  import "server-cli-only";
2
2
 
3
3
  import { os } from "@orpc/server";
4
- import type { Permission } from "@/modules/auth/lib/permissions";
4
+ import type { Auth, TAuthServerOptions } from "@/modules/auth/handler/service.server";
5
+ import type { TulipContext } from "@/modules/config/lib/context";
6
+ import type { Database } from "@/modules/database/lib/service.server";
5
7
  import type { TDatabaseSchema } from "@/modules/database/lib/types";
6
- import { ServerError } from "../lib/error.server";
7
- import type { ProtectedRPCContext, RPCContext } from "./context.server";
8
+ import type { Email } from "@/modules/emails/lib/service.server";
9
+ import type { Storage } from "@/modules/storage/lib/service.server";
8
10
 
9
11
  /**
10
- * Initialize TRPC
12
+ * Tulip RPC Context
13
+ * This context is used to provide the necessary services and data to the RPC procedures.
14
+ * It includes the database, schema, authentication service, email service, storage service, and request headers.
11
15
  */
12
- export function initRPC<TSchema extends TDatabaseSchema>() {
13
- /**
14
- * Create the router
15
- */
16
- const o = os.$context<RPCContext<TSchema>>();
17
-
18
- /**
19
- * Middleware function to check if the user is authenticated
20
- */
21
- const authMiddleware = o.middleware(async (opts) => {
22
- if (!opts.context.session) {
23
- throw new ServerError("UNAUTHORIZED", {
24
- message: "Jou hebt geen toegang om deze actie uit te voeren",
25
- });
26
- }
16
+ export type RPCContext<TSchema extends TDatabaseSchema, TAuthOptions extends TAuthServerOptions> = {
17
+ db: Database<TSchema>;
18
+ schema: TSchema;
19
+ auth: Auth<TAuthOptions>;
20
+ email: Email;
21
+ storage: Storage<TSchema>;
22
+ headers: Headers;
23
+ };
27
24
 
28
- return opts.next({
29
- context: { ...opts.context, session: opts.context.session } as ProtectedRPCContext<TSchema>,
30
- });
31
- });
25
+ /**
26
+ * Create RPC Context function type
27
+ * This type defines the shape of the function that creates the RPC context. It takes an object with headers and returns a promise that resolves to the RPC context.
28
+ */
29
+ export type CreateRPCContext<
30
+ TSchema extends TDatabaseSchema,
31
+ TAuthOptions extends TAuthServerOptions,
32
+ > = (props: { headers: Headers }) => RPCContext<TSchema, TAuthOptions>;
32
33
 
34
+ /**
35
+ * Create context for the RPC procedures.
36
+ */
37
+ function defineContext<TSchema extends TDatabaseSchema, TAuthOptions extends TAuthServerOptions>(
38
+ context: TulipContext<TSchema, TAuthOptions>,
39
+ ) {
33
40
  /**
34
- * Middleware function to check if the user has the required permission
41
+ * Create context function
35
42
  */
36
- function permissionMiddleware(permissions: Permission) {
37
- /**
38
- * Middleware function to check if the user has the required permission
39
- */
40
- return os.$context<ProtectedRPCContext<TSchema>>().middleware(async (opts) => {
41
- const { success, error } = await opts.context.auth.api.userHasPermission({
42
- headers: opts.context.headers,
43
- body: {
44
- userId: opts.context.session.user.id,
45
- permissions,
46
- },
47
- });
48
-
49
- if (error || !success) {
50
- throw new ServerError("UNAUTHORIZED", {
51
- message: "Jou hebt geen toegang om deze actie uit te voeren",
52
- });
53
- }
54
-
55
- return opts.next({ context: { ...opts.context } as ProtectedRPCContext<TSchema> });
56
- });
57
- }
43
+ return <TExtendedContext>(extendedContext: TExtendedContext & { headers: Headers }) =>
44
+ ({
45
+ ...context,
46
+ ...extendedContext,
47
+ }) as RPCContext<TSchema, TAuthOptions> & TExtendedContext;
48
+ }
58
49
 
50
+ /**
51
+ * Initialize TRPC
52
+ */
53
+ function createRPC<TSchema extends TDatabaseSchema, TAuthOptions extends TAuthServerOptions>() {
59
54
  /**
60
- * Public procedures
55
+ * Create the router
61
56
  */
62
- const publicProcedure = o;
57
+ return os.$context<RPCContext<TSchema, TAuthOptions>>();
58
+ }
63
59
 
64
- /**
65
- * Protected procedures
66
- */
67
- const protectedProcedure = o.use(authMiddleware);
60
+ /**
61
+ * RPC instance.
62
+ */
63
+ export type RPC = ReturnType<typeof createRPC>;
68
64
 
69
- /**
70
- * Export
71
- */
72
- return {
73
- publicProcedure,
74
- protectedProcedure,
75
- authMiddleware,
76
- permissionMiddleware,
77
- };
78
- }
65
+ /**
66
+ * RPC namespace.
67
+ *
68
+ * @example
69
+ * const rpc = RPC.init<DatabaseSchema, AuthServerOptions>();
70
+ */
71
+ export const RPC = {
72
+ init: createRPC,
73
+ defineContext,
74
+ };