@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.
- package/dist/auth/client.d.mts +11 -11
- package/dist/auth/client.mjs +10 -10
- package/dist/auth/server.d.mts +8 -8
- package/dist/auth/server.mjs +8 -8
- package/dist/auth.d.mts +5 -5
- package/dist/auth.mjs +4 -4
- package/dist/commands/client.d.mts +16 -16
- package/dist/commands/client.mjs +16 -16
- package/dist/commands.d.mts +3 -3
- package/dist/commands.mjs +3 -3
- package/dist/components/client.d.mts +49 -48
- package/dist/components/client.mjs +49 -48
- package/dist/components/editor/extensions/file-handler/extension.d.mts +1 -1
- package/dist/components/editor/extensions/image/extension.d.mts +1 -1
- package/dist/components/editor/extensions/skeleton/extension.mjs +1 -1
- package/dist/components/editor/lib/constants.d.mts +1 -1
- package/dist/components/editor/lib/extensions.d.mts +1 -1
- package/dist/components/editor/lib/helpers.d.mts +5 -1
- package/dist/components/editor/lib/helpers.mjs +8 -1
- package/dist/components/layouts/root-layout.server.d.mts +3 -2
- package/dist/components/layouts/root-layout.server.mjs +1 -3
- package/dist/components/server.d.mts +3 -3
- package/dist/components/server.mjs +2 -2
- package/dist/components/themes/color-theme-provider.client.d.mts +27 -0
- package/dist/components/themes/color-theme-provider.client.mjs +59 -0
- package/dist/components/themes/color-theme.d.mts +29 -0
- package/dist/components/themes/color-theme.mjs +32 -0
- package/dist/components/ui/item.d.mts +1 -1
- package/dist/components.d.mts +41 -40
- package/dist/components.mjs +40 -39
- package/dist/config.d.mts +5 -7
- package/dist/config.mjs +4 -5
- package/dist/data-tables/client.d.mts +21 -21
- package/dist/data-tables/client.mjs +21 -21
- package/dist/data-tables/server.d.mts +7 -7
- package/dist/data-tables/server.mjs +7 -7
- package/dist/data-tables.d.mts +15 -14
- package/dist/data-tables.mjs +14 -13
- package/dist/database/server.d.mts +1 -1
- package/dist/database/server.mjs +1 -1
- package/dist/database.d.mts +2 -2
- package/dist/database.mjs +1 -1
- package/dist/emails/server.d.mts +1 -1
- package/dist/emails/server.mjs +1 -1
- package/dist/inline/client.d.mts +15 -15
- package/dist/inline/client.mjs +15 -15
- package/dist/inline.d.mts +1 -1
- package/dist/inline.mjs +1 -1
- package/dist/lib/client.d.mts +4 -4
- package/dist/lib/client.mjs +4 -4
- package/dist/lib/utils/url.d.mts +15 -4
- package/dist/lib/utils/url.mjs +17 -8
- package/dist/lib.d.mts +7 -7
- package/dist/lib.mjs +6 -6
- package/dist/modules/auth/components/create-first-user-guard.server.d.mts +4 -3
- package/dist/modules/auth/components/guard.server.d.mts +5 -5
- package/dist/modules/auth/components/guard.server.mjs +3 -4
- package/dist/modules/auth/handler/create-client.client.d.mts +28 -6382
- package/dist/modules/auth/handler/create-client.client.mjs +4 -16
- package/dist/modules/auth/handler/proxy.server.d.mts +1 -0
- package/dist/modules/auth/handler/proxy.server.mjs +1 -1
- package/dist/modules/auth/handler/route.server.d.mts +2 -4
- package/dist/modules/auth/handler/route.server.mjs +3 -3
- package/dist/modules/auth/handler/service.server.d.mts +41 -2079
- package/dist/modules/auth/handler/service.server.mjs +40 -60
- package/dist/modules/auth/hooks/use-auth-client.d.mts +5 -6
- package/dist/modules/auth/hooks/use-permission.d.mts +7 -7
- package/dist/modules/auth/hooks/use-permission.mjs +1 -1
- package/dist/modules/auth/hooks/use-session.d.mts +13 -35
- package/dist/modules/auth/hooks/use-session.mjs +3 -0
- package/dist/modules/auth/lib/helpers.server.d.mts +7 -77
- package/dist/modules/auth/lib/helpers.server.mjs +4 -34
- package/dist/modules/auth/lib/permissions.d.mts +22 -3
- package/dist/modules/auth/plugins/admin.d.mts +917 -0
- package/dist/modules/auth/plugins/admin.mjs +18 -0
- package/dist/modules/auth/plugins/email-otp.d.mts +554 -0
- package/dist/modules/auth/plugins/email-otp.mjs +34 -0
- package/dist/modules/config/lib/context.d.mts +5 -4
- package/dist/modules/data-tables/lib/converters/dto.d.mts +12 -1
- package/dist/modules/data-tables/lib/converters/dto.mjs +13 -1
- package/dist/modules/data-tables/lib/converters/filters.d.mts +1 -1
- package/dist/modules/data-tables/server/get-data.server.d.mts +3 -2
- package/dist/modules/inline/lib/variants.d.mts +1 -1
- package/dist/modules/router/handler/init.server.d.mts +43 -51
- package/dist/modules/router/handler/init.server.mjs +24 -41
- package/dist/modules/router/handler/route.server.d.mts +6 -3
- package/dist/modules/router/handler/route.server.mjs +6 -9
- package/dist/modules/router/lib/query-client.server.d.mts +2 -2
- package/dist/modules/router/lib/query-client.server.mjs +3 -3
- package/dist/modules/storage/components/dropzone.client.d.mts +2 -2
- package/dist/modules/storage/lib/router-handlers.server.d.mts +6 -7
- package/dist/modules/storage/lib/router-handlers.server.mjs +2 -2
- package/dist/modules/storage/lib/{procedures.server.d.mts → router.server.d.mts} +42 -19
- package/dist/modules/storage/lib/router.server.mjs +21 -0
- package/dist/modules/storage/lib/service.server.d.mts +19 -19
- package/dist/modules/storage/lib/upload.client.d.mts +9 -10
- package/dist/router/client.d.mts +1 -1
- package/dist/router/client.mjs +1 -1
- package/dist/router/server.d.mts +7 -8
- package/dist/router/server.mjs +7 -8
- package/dist/router.d.mts +2 -2
- package/dist/router.mjs +2 -2
- package/dist/storage/client.d.mts +8 -8
- package/dist/storage/client.mjs +8 -8
- package/dist/storage/server.d.mts +5 -5
- package/dist/storage/server.mjs +5 -5
- package/dist/storage.d.mts +8 -8
- package/dist/storage.mjs +7 -7
- package/package.json +2 -2
- package/src/components/editor/lib/helpers.ts +8 -0
- package/src/components/entry.client.ts +1 -1
- package/src/components/entry.ts +1 -1
- package/src/components/layouts/root-layout.server.tsx +4 -2
- package/src/components/themes/color-theme-provider.client.tsx +82 -0
- package/src/components/themes/color-theme.ts +32 -0
- package/src/lib/utils/url.ts +19 -8
- package/src/modules/auth/components/create-first-user-guard.server.tsx +5 -4
- package/src/modules/auth/components/create-first-user-page.client.tsx +6 -1
- package/src/modules/auth/components/forget-password-page.client.tsx +3 -2
- package/src/modules/auth/components/guard.server.tsx +6 -7
- package/src/modules/auth/components/login-page.client.tsx +3 -1
- package/src/modules/auth/components/reset-password-page.client.tsx +3 -2
- package/src/modules/auth/db/schema.ts +1 -1
- package/src/modules/auth/entry.server.ts +0 -1
- package/src/modules/auth/handler/create-client.client.ts +43 -41
- package/src/modules/auth/handler/proxy.server.ts +4 -2
- package/src/modules/auth/handler/route.server.ts +6 -5
- package/src/modules/auth/handler/service.server.ts +70 -94
- package/src/modules/auth/hooks/use-auth-client.tsx +6 -18
- package/src/modules/auth/hooks/use-permission.ts +23 -9
- package/src/modules/auth/hooks/use-session.ts +18 -5
- package/src/modules/auth/lib/helpers.server.ts +16 -44
- package/src/modules/auth/lib/permissions.ts +35 -2
- package/src/modules/auth/plugins/admin.ts +28 -0
- package/src/modules/auth/plugins/email-otp.ts +43 -0
- package/src/modules/config/entry.ts +0 -3
- package/src/modules/config/lib/context.ts +8 -4
- package/src/modules/data-tables/components/filters/date-range.client.tsx +1 -5
- package/src/modules/data-tables/entry.ts +1 -0
- package/src/modules/data-tables/lib/converters/dto.ts +12 -0
- package/src/modules/data-tables/lib/converters/filters.ts +1 -1
- package/src/modules/data-tables/lib/filters/parsers.ts +1 -2
- package/src/modules/data-tables/server/get-data.server.ts +8 -3
- package/src/modules/inline/components/inputs/combobox-dropdown.client.tsx +1 -3
- package/src/modules/inline/components/inputs/combobox.client.tsx +2 -8
- package/src/modules/inline/components/inputs/date-time.client.tsx +4 -24
- package/src/modules/inline/components/inputs/date.client.tsx +3 -11
- package/src/modules/inline/components/inputs/editor.client.tsx +9 -10
- package/src/modules/inline/components/inputs/input.client.tsx +10 -33
- package/src/modules/inline/components/inputs/select.client.tsx +3 -16
- package/src/modules/inline/components/inputs/switch.client.tsx +3 -16
- package/src/modules/router/entry.server.ts +0 -1
- package/src/modules/router/handler/init.server.ts +58 -62
- package/src/modules/router/handler/route.server.ts +19 -19
- package/src/modules/router/lib/query-client.server.tsx +2 -2
- package/src/modules/storage/entry.server.ts +1 -1
- package/src/modules/storage/lib/router-handlers.server.ts +8 -10
- package/src/modules/storage/lib/router.server.ts +53 -0
- package/src/modules/storage/lib/upload.client.ts +9 -21
- package/src/styles.css +255 -2
- package/dist/dist/config.d.mts +0 -5
- package/dist/dist/modules/auth/handler/service.server.d.mts +0 -8
- package/dist/dist/modules/auth/lib/permissions.d.mts +0 -2
- package/dist/dist/modules/config/lib/context.d.mts +0 -4
- package/dist/dist/modules/config/paths/helpers.d.mts +0 -1
- package/dist/dist/modules/config/paths/types.d.mts +0 -3
- package/dist/dist/modules/database/lib/helpers.d.mts +0 -2
- package/dist/dist/modules/database/lib/service.server.d.mts +0 -2
- package/dist/dist/modules/database/lib/types.d.mts +0 -5
- package/dist/dist/modules/emails/lib/service.server.d.mts +0 -2
- package/dist/dist/modules/storage/lib/schema.d.mts +0 -1
- package/dist/dist/modules/storage/lib/service.server.d.mts +0 -5
- package/dist/dist/modules/storage/lib/validators.d.mts +0 -4
- package/dist/dist/modules/storage/providers/lib/types.d.mts +0 -1
- package/dist/dist/modules/storage/providers/lib/validators.d.mts +0 -2
- package/dist/modules/router/handler/context.server.d.mts +0 -62
- package/dist/modules/router/handler/context.server.mjs +0 -20
- package/dist/modules/storage/lib/procedures.server.mjs +0 -21
- package/dist/src/components/common/icons.d.mts +0 -60
- package/dist/src/components/common/icons.mjs +0 -121
- package/dist/src/components/common/status.d.mts +0 -52
- package/dist/src/components/common/status.mjs +0 -55
- package/dist/src/components/editor/components/content.client.d.mts +0 -6
- package/dist/src/components/editor/components/content.client.mjs +0 -16
- package/dist/src/components/editor/components/editor.client.d.mts +0 -48
- package/dist/src/components/editor/components/editor.client.mjs +0 -55
- package/dist/src/components/editor/components/menu-nodes.client.mjs +0 -92
- package/dist/src/components/editor/components/menu.client.d.mts +0 -9
- package/dist/src/components/editor/components/menu.client.mjs +0 -168
- package/dist/src/components/editor/extensions/file-handler/extension.d.mts +0 -20
- package/dist/src/components/editor/extensions/file-handler/extension.mjs +0 -39
- package/dist/src/components/editor/extensions/file-handler/strategy.d.mts +0 -26
- package/dist/src/components/editor/extensions/file-handler/strategy.mjs +0 -110
- package/dist/src/components/editor/extensions/file-handler/utils.mjs +0 -49
- package/dist/src/components/editor/extensions/image/extension.d.mts +0 -7
- package/dist/src/components/editor/extensions/image/extension.mjs +0 -50
- package/dist/src/components/editor/extensions/skeleton/extension.mjs +0 -40
- package/dist/src/components/editor/extensions/skeleton/renderer.mjs +0 -24
- package/dist/src/components/editor/lib/constants.d.mts +0 -62
- package/dist/src/components/editor/lib/constants.mjs +0 -101
- package/dist/src/components/editor/lib/extensions.d.mts +0 -67
- package/dist/src/components/editor/lib/extensions.mjs +0 -49
- package/dist/src/components/editor/lib/helpers.d.mts +0 -21
- package/dist/src/components/editor/lib/helpers.mjs +0 -68
- package/dist/src/components/editor/lib/types.d.mts +0 -9
- package/dist/src/components/editor/lib/variants.mjs +0 -15
- package/dist/src/components/emails/forget-password-email.mjs +0 -50
- package/dist/src/components/header/back-button.client.d.mts +0 -9
- package/dist/src/components/header/back-button.client.mjs +0 -42
- package/dist/src/components/header/bottom-bar.client.d.mts +0 -28
- package/dist/src/components/header/bottom-bar.client.mjs +0 -37
- package/dist/src/components/header/breadcrumbs.client.d.mts +0 -34
- package/dist/src/components/header/breadcrumbs.client.mjs +0 -63
- package/dist/src/components/header/header.client.d.mts +0 -11
- package/dist/src/components/header/header.client.mjs +0 -14
- package/dist/src/components/header/indicator.client.mjs +0 -24
- package/dist/src/components/header/mobile-nav-switcher.client.d.mts +0 -9
- package/dist/src/components/header/mobile-nav-switcher.client.mjs +0 -18
- package/dist/src/components/header/top-bar.client.d.mts +0 -42
- package/dist/src/components/header/top-bar.client.mjs +0 -47
- package/dist/src/components/layouts/admin-content.client.d.mts +0 -12
- package/dist/src/components/layouts/admin-content.client.mjs +0 -22
- package/dist/src/components/layouts/admin-error-pages.d.mts +0 -22
- package/dist/src/components/layouts/admin-error-pages.mjs +0 -59
- package/dist/src/components/layouts/admin-layout.d.mts +0 -7
- package/dist/src/components/layouts/admin-layout.mjs +0 -13
- package/dist/src/components/layouts/admin-loading.d.mts +0 -7
- package/dist/src/components/layouts/admin-loading.mjs +0 -13
- package/dist/src/components/layouts/empty-page.d.mts +0 -30
- package/dist/src/components/layouts/empty-page.mjs +0 -28
- package/dist/src/components/layouts/error-page.d.mts +0 -47
- package/dist/src/components/layouts/error-page.mjs +0 -53
- package/dist/src/components/layouts/error-sections.d.mts +0 -28
- package/dist/src/components/layouts/error-sections.mjs +0 -46
- package/dist/src/components/layouts/list-layout.d.mts +0 -11
- package/dist/src/components/layouts/list-layout.mjs +0 -14
- package/dist/src/components/layouts/providers.client.d.mts +0 -9
- package/dist/src/components/layouts/providers.client.mjs +0 -31
- package/dist/src/components/layouts/root-error-pages.d.mts +0 -9
- package/dist/src/components/layouts/root-error-pages.mjs +0 -16
- package/dist/src/components/layouts/root-layout.server.d.mts +0 -36
- package/dist/src/components/layouts/root-layout.server.mjs +0 -46
- package/dist/src/components/layouts/root-loading.d.mts +0 -6
- package/dist/src/components/layouts/root-loading.mjs +0 -13
- package/dist/src/components/layouts/tab-layout.d.mts +0 -22
- package/dist/src/components/layouts/tab-layout.mjs +0 -50
- package/dist/src/components/lists/data-list.d.mts +0 -30
- package/dist/src/components/lists/data-list.mjs +0 -35
- package/dist/src/components/lists/data-stack.d.mts +0 -48
- package/dist/src/components/lists/data-stack.mjs +0 -56
- package/dist/src/components/navigation/admin-sidebar-header.client.mjs +0 -92
- package/dist/src/components/navigation/admin-sidebar-paths.client.d.mts +0 -91
- package/dist/src/components/navigation/admin-sidebar-paths.client.mjs +0 -143
- package/dist/src/components/navigation/admin-sidebar-skeleton.mjs +0 -30
- package/dist/src/components/ui/accordion.client.d.mts +0 -25
- package/dist/src/components/ui/accordion.client.mjs +0 -57
- package/dist/src/components/ui/alert-dialog.client.d.mts +0 -60
- package/dist/src/components/ui/alert-dialog.client.mjs +0 -103
- package/dist/src/components/ui/alert.d.mts +0 -28
- package/dist/src/components/ui/alert.mjs +0 -44
- package/dist/src/components/ui/aspect-ratio.client.d.mts +0 -9
- package/dist/src/components/ui/aspect-ratio.client.mjs +0 -15
- package/dist/src/components/ui/avatar.client.d.mts +0 -34
- package/dist/src/components/ui/avatar.client.mjs +0 -53
- package/dist/src/components/ui/badge.d.mts +0 -19
- package/dist/src/components/ui/badge.mjs +0 -28
- package/dist/src/components/ui/breadcrumb.d.mts +0 -37
- package/dist/src/components/ui/breadcrumb.mjs +0 -70
- package/dist/src/components/ui/button-group.d.mts +0 -28
- package/dist/src/components/ui/button-group.mjs +0 -40
- package/dist/src/components/ui/button.d.mts +0 -21
- package/dist/src/components/ui/button.mjs +0 -48
- package/dist/src/components/ui/calendar.client.d.mts +0 -30
- package/dist/src/components/ui/calendar.client.mjs +0 -113
- package/dist/src/components/ui/card.d.mts +0 -37
- package/dist/src/components/ui/card.mjs +0 -57
- package/dist/src/components/ui/carousel.client.d.mts +0 -56
- package/dist/src/components/ui/carousel.client.mjs +0 -135
- package/dist/src/components/ui/chart.client.d.mts +0 -71
- package/dist/src/components/ui/chart.client.mjs +0 -142
- package/dist/src/components/ui/checkbox.client.d.mts +0 -11
- package/dist/src/components/ui/checkbox.client.mjs +0 -23
- package/dist/src/components/ui/collapsible.client.d.mts +0 -15
- package/dist/src/components/ui/collapsible.client.mjs +0 -27
- package/dist/src/components/ui/color-picker.client.d.mts +0 -15
- package/dist/src/components/ui/color-picker.client.mjs +0 -38
- package/dist/src/components/ui/combobox-dropdown.client.d.mts +0 -45
- package/dist/src/components/ui/combobox-dropdown.client.mjs +0 -94
- package/dist/src/components/ui/combobox.client.d.mts +0 -30
- package/dist/src/components/ui/combobox.client.mjs +0 -66
- package/dist/src/components/ui/command.client.d.mts +0 -58
- package/dist/src/components/ui/command.client.mjs +0 -97
- package/dist/src/components/ui/context-menu.client.d.mts +0 -85
- package/dist/src/components/ui/context-menu.client.mjs +0 -127
- package/dist/src/components/ui/date-picker.client.d.mts +0 -20
- package/dist/src/components/ui/date-picker.client.mjs +0 -43
- package/dist/src/components/ui/dialog.client.d.mts +0 -51
- package/dist/src/components/ui/dialog.client.mjs +0 -98
- package/dist/src/components/ui/drawer.client.d.mts +0 -44
- package/dist/src/components/ui/drawer.client.mjs +0 -80
- package/dist/src/components/ui/dropdown-menu.client.d.mts +0 -84
- package/dist/src/components/ui/dropdown-menu.client.mjs +0 -130
- package/dist/src/components/ui/empty.d.mts +0 -35
- package/dist/src/components/ui/empty.mjs +0 -61
- package/dist/src/components/ui/field.client.d.mts +0 -64
- package/dist/src/components/ui/field.client.mjs +0 -113
- package/dist/src/components/ui/form.client.d.mts +0 -47
- package/dist/src/components/ui/form.client.mjs +0 -92
- package/dist/src/components/ui/hover-card.client.d.mts +0 -19
- package/dist/src/components/ui/hover-card.client.mjs +0 -34
- package/dist/src/components/ui/input-date-time.client.d.mts +0 -22
- package/dist/src/components/ui/input-date-time.client.mjs +0 -33
- package/dist/src/components/ui/input-date.d.mts +0 -13
- package/dist/src/components/ui/input-date.mjs +0 -15
- package/dist/src/components/ui/input-group.client.d.mts +0 -58
- package/dist/src/components/ui/input-group.client.mjs +0 -105
- package/dist/src/components/ui/input-recipient.d.mts +0 -26
- package/dist/src/components/ui/input-recipient.mjs +0 -218
- package/dist/src/components/ui/input-time.d.mts +0 -13
- package/dist/src/components/ui/input-time.mjs +0 -15
- package/dist/src/components/ui/input.d.mts +0 -11
- package/dist/src/components/ui/input.mjs +0 -15
- package/dist/src/components/ui/item.d.mts +0 -62
- package/dist/src/components/ui/item.mjs +0 -118
- package/dist/src/components/ui/kbd.d.mts +0 -13
- package/dist/src/components/ui/kbd.mjs +0 -21
- package/dist/src/components/ui/label.d.mts +0 -11
- package/dist/src/components/ui/label.mjs +0 -17
- package/dist/src/components/ui/loader.d.mts +0 -6
- package/dist/src/components/ui/loader.mjs +0 -62
- package/dist/src/components/ui/navigation-menu.d.mts +0 -46
- package/dist/src/components/ui/navigation-menu.mjs +0 -81
- package/dist/src/components/ui/pagination.d.mts +0 -45
- package/dist/src/components/ui/pagination.mjs +0 -87
- package/dist/src/components/ui/popover.client.d.mts +0 -34
- package/dist/src/components/ui/popover.client.mjs +0 -58
- package/dist/src/components/ui/progress.client.d.mts +0 -12
- package/dist/src/components/ui/progress.client.mjs +0 -22
- package/dist/src/components/ui/radio-group.d.mts +0 -15
- package/dist/src/components/ui/radio-group.mjs +0 -29
- package/dist/src/components/ui/resizable.client.d.mts +0 -20
- package/dist/src/components/ui/resizable.client.mjs +0 -31
- package/dist/src/components/ui/scroll-area.d.mts +0 -17
- package/dist/src/components/ui/scroll-area.mjs +0 -39
- package/dist/src/components/ui/select.client.d.mts +0 -53
- package/dist/src/components/ui/select.client.mjs +0 -102
- package/dist/src/components/ui/separator.d.mts +0 -13
- package/dist/src/components/ui/separator.mjs +0 -19
- package/dist/src/components/ui/sheet.client.d.mts +0 -42
- package/dist/src/components/ui/sheet.client.mjs +0 -92
- package/dist/src/components/ui/sidebar.client.d.mts +0 -167
- package/dist/src/components/ui/sidebar.client.mjs +0 -373
- package/dist/src/components/ui/skeleton.d.mts +0 -9
- package/dist/src/components/ui/skeleton.mjs +0 -14
- package/dist/src/components/ui/slider.d.mts +0 -15
- package/dist/src/components/ui/slider.mjs +0 -39
- package/dist/src/components/ui/sonner.client.d.mts +0 -9
- package/dist/src/components/ui/sonner.client.mjs +0 -24
- package/dist/src/components/ui/spinner.d.mts +0 -9
- package/dist/src/components/ui/spinner.mjs +0 -16
- package/dist/src/components/ui/switch.client.d.mts +0 -14
- package/dist/src/components/ui/switch.client.mjs +0 -22
- package/dist/src/components/ui/tabs.client.d.mts +0 -30
- package/dist/src/components/ui/tabs.client.mjs +0 -48
- package/dist/src/components/ui/textarea.d.mts +0 -10
- package/dist/src/components/ui/textarea.mjs +0 -14
- package/dist/src/components/ui/toggle-group.client.d.mts +0 -28
- package/dist/src/components/ui/toggle-group.client.mjs +0 -54
- package/dist/src/components/ui/toggle.client.d.mts +0 -19
- package/dist/src/components/ui/toggle.client.mjs +0 -39
- package/dist/src/components/ui/tooltip.client.d.mts +0 -23
- package/dist/src/components/ui/tooltip.client.mjs +0 -38
- package/dist/src/lib/hooks/use-action.d.mts +0 -16
- package/dist/src/lib/hooks/use-action.mjs +0 -41
- package/dist/src/lib/hooks/use-indicator.d.mts +0 -39
- package/dist/src/lib/hooks/use-indicator.mjs +0 -63
- package/dist/src/lib/hooks/use-mobile.client.d.mts +0 -6
- package/dist/src/lib/hooks/use-mobile.client.mjs +0 -21
- package/dist/src/lib/types/config.d.mts +0 -11
- package/dist/src/lib/utils/array-move.d.mts +0 -10
- package/dist/src/lib/utils/array-move.mjs +0 -12
- package/dist/src/lib/utils/cn.d.mts +0 -6
- package/dist/src/lib/utils/cn.mjs +0 -10
- package/dist/src/lib/utils/fonts.d.mts +0 -7
- package/dist/src/lib/utils/fonts.mjs +0 -11
- package/dist/src/lib/utils/format.d.mts +0 -51
- package/dist/src/lib/utils/format.mjs +0 -113
- package/dist/src/lib/utils/manifest.d.mts +0 -7
- package/dist/src/lib/utils/manifest.mjs +0 -35
- package/dist/src/lib/utils/markdown.d.mts +0 -9
- package/dist/src/lib/utils/markdown.mjs +0 -14
- package/dist/src/lib/utils/url.d.mts +0 -9
- package/dist/src/lib/utils/url.mjs +0 -15
- package/dist/src/lib/utils/user-agent.mjs +0 -74
- package/dist/src/modules/auth/components/allowed.client.d.mts +0 -33
- package/dist/src/modules/auth/components/allowed.client.mjs +0 -19
- package/dist/src/modules/auth/components/auth-layout.server.d.mts +0 -9
- package/dist/src/modules/auth/components/auth-layout.server.mjs +0 -36
- package/dist/src/modules/auth/components/auth-loading.d.mts +0 -6
- package/dist/src/modules/auth/components/auth-loading.mjs +0 -17
- package/dist/src/modules/auth/components/create-first-user-guard.server.d.mts +0 -15
- package/dist/src/modules/auth/components/create-first-user-guard.server.mjs +0 -15
- package/dist/src/modules/auth/components/create-first-user-page.client.d.mts +0 -6
- package/dist/src/modules/auth/components/create-first-user-page.client.mjs +0 -153
- package/dist/src/modules/auth/components/forget-password-page.client.d.mts +0 -6
- package/dist/src/modules/auth/components/forget-password-page.client.mjs +0 -72
- package/dist/src/modules/auth/components/guard.server.d.mts +0 -14
- package/dist/src/modules/auth/components/guard.server.mjs +0 -20
- package/dist/src/modules/auth/components/login-page.client.d.mts +0 -11
- package/dist/src/modules/auth/components/login-page.client.mjs +0 -155
- package/dist/src/modules/auth/components/reset-password-page.client.d.mts +0 -11
- package/dist/src/modules/auth/components/reset-password-page.client.mjs +0 -121
- package/dist/src/modules/auth/components/update-password-command.d.mts +0 -22
- package/dist/src/modules/auth/components/update-password-command.mjs +0 -47
- package/dist/src/modules/auth/db/schema.d.mts +0 -983
- package/dist/src/modules/auth/db/schema.mjs +0 -101
- package/dist/src/modules/auth/handler/create-client.client.d.mts +0 -6393
- package/dist/src/modules/auth/handler/create-client.client.mjs +0 -25
- package/dist/src/modules/auth/handler/proxy.server.d.mts +0 -11
- package/dist/src/modules/auth/handler/proxy.server.mjs +0 -20
- package/dist/src/modules/auth/handler/route.server.d.mts +0 -16
- package/dist/src/modules/auth/handler/route.server.mjs +0 -28
- package/dist/src/modules/auth/handler/service.server.d.mts +0 -2101
- package/dist/src/modules/auth/handler/service.server.mjs +0 -87
- package/dist/src/modules/auth/hooks/use-auth-client.d.mts +0 -23
- package/dist/src/modules/auth/hooks/use-auth-client.mjs +0 -30
- package/dist/src/modules/auth/hooks/use-permission.d.mts +0 -42
- package/dist/src/modules/auth/hooks/use-permission.mjs +0 -57
- package/dist/src/modules/auth/hooks/use-session.d.mts +0 -40
- package/dist/src/modules/auth/hooks/use-session.mjs +0 -22
- package/dist/src/modules/auth/lib/helpers.server.d.mts +0 -84
- package/dist/src/modules/auth/lib/helpers.server.mjs +0 -41
- package/dist/src/modules/auth/lib/permissions.d.mts +0 -17
- package/dist/src/modules/auth/lib/permissions.mjs +0 -14
- package/dist/src/modules/auth/lib/validators.d.mts +0 -299
- package/dist/src/modules/auth/lib/validators.mjs +0 -59
- package/dist/src/modules/commands/components/menus/context-menu.client.d.mts +0 -39
- package/dist/src/modules/commands/components/menus/context-menu.client.mjs +0 -47
- package/dist/src/modules/commands/components/menus/dropdown-menu.client.d.mts +0 -29
- package/dist/src/modules/commands/components/menus/dropdown-menu.client.mjs +0 -58
- package/dist/src/modules/commands/components/menus/floating-menu.client.d.mts +0 -29
- package/dist/src/modules/commands/components/menus/floating-menu.client.mjs +0 -33
- package/dist/src/modules/commands/components/menus/inline-menu.client.d.mts +0 -29
- package/dist/src/modules/commands/components/menus/inline-menu.client.mjs +0 -41
- package/dist/src/modules/commands/components/menus/responsive-menu.client.d.mts +0 -16
- package/dist/src/modules/commands/components/menus/responsive-menu.client.mjs +0 -22
- package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.d.mts +0 -65
- package/dist/src/modules/commands/components/primitives/alert-dialog-command.client.mjs +0 -138
- package/dist/src/modules/commands/components/primitives/click-command.client.d.mts +0 -26
- package/dist/src/modules/commands/components/primitives/click-command.client.mjs +0 -52
- package/dist/src/modules/commands/components/primitives/command-trigger.client.d.mts +0 -17
- package/dist/src/modules/commands/components/primitives/command-trigger.client.mjs +0 -42
- package/dist/src/modules/commands/components/primitives/dialog-command.client.d.mts +0 -53
- package/dist/src/modules/commands/components/primitives/dialog-command.client.mjs +0 -116
- package/dist/src/modules/commands/components/primitives/dropdown-command.client.d.mts +0 -47
- package/dist/src/modules/commands/components/primitives/dropdown-command.client.mjs +0 -131
- package/dist/src/modules/commands/components/primitives/empty-command.client.d.mts +0 -20
- package/dist/src/modules/commands/components/primitives/empty-command.client.mjs +0 -44
- package/dist/src/modules/commands/components/primitives/form-dialog-command.client.d.mts +0 -71
- package/dist/src/modules/commands/components/primitives/form-dialog-command.client.mjs +0 -163
- package/dist/src/modules/commands/components/render-command.mjs +0 -48
- package/dist/src/modules/commands/components/utils/archive-command.client.d.mts +0 -24
- package/dist/src/modules/commands/components/utils/archive-command.client.mjs +0 -29
- package/dist/src/modules/commands/components/utils/delete-command.client.d.mts +0 -20
- package/dist/src/modules/commands/components/utils/delete-command.client.mjs +0 -28
- package/dist/src/modules/commands/hooks/use-command-mutation.client.d.mts +0 -11
- package/dist/src/modules/commands/hooks/use-command-mutation.client.mjs +0 -39
- package/dist/src/modules/commands/hooks/use-command.client.d.mts +0 -31
- package/dist/src/modules/commands/hooks/use-command.client.mjs +0 -45
- package/dist/src/modules/commands/lib/builder.d.mts +0 -135
- package/dist/src/modules/commands/lib/builder.mjs +0 -82
- package/dist/src/modules/commands/lib/registery.d.mts +0 -68
- package/dist/src/modules/commands/lib/registery.mjs +0 -103
- package/dist/src/modules/commands/lib/utils.d.mts +0 -11
- package/dist/src/modules/commands/lib/utils.mjs +0 -14
- package/dist/src/modules/config/lib/config.d.mts +0 -16
- package/dist/src/modules/config/lib/config.mjs +0 -8
- package/dist/src/modules/config/lib/context.d.mts +0 -17
- package/dist/src/modules/config/lib/context.mjs +0 -7
- package/dist/src/modules/config/paths/helpers.d.mts +0 -9
- package/dist/src/modules/config/paths/helpers.mjs +0 -8
- package/dist/src/modules/config/paths/types.d.mts +0 -31
- package/dist/src/modules/data-tables/components/cell/common.client.d.mts +0 -26
- package/dist/src/modules/data-tables/components/cell/common.client.mjs +0 -35
- package/dist/src/modules/data-tables/components/cell/index.client.d.mts +0 -10
- package/dist/src/modules/data-tables/components/cell/index.client.mjs +0 -24
- package/dist/src/modules/data-tables/components/cell/select.client.d.mts +0 -10
- package/dist/src/modules/data-tables/components/cell/select.client.mjs +0 -36
- package/dist/src/modules/data-tables/components/column-header.d.mts +0 -15
- package/dist/src/modules/data-tables/components/column-header.mjs +0 -46
- package/dist/src/modules/data-tables/components/filters/combobox.client.d.mts +0 -27
- package/dist/src/modules/data-tables/components/filters/combobox.client.mjs +0 -97
- package/dist/src/modules/data-tables/components/filters/date-range.client.d.mts +0 -24
- package/dist/src/modules/data-tables/components/filters/date-range.client.mjs +0 -99
- package/dist/src/modules/data-tables/components/filters/search.client.d.mts +0 -17
- package/dist/src/modules/data-tables/components/filters/search.client.mjs +0 -32
- package/dist/src/modules/data-tables/components/filters/slider.client.d.mts +0 -22
- package/dist/src/modules/data-tables/components/filters/slider.client.mjs +0 -128
- package/dist/src/modules/data-tables/components/filters/toggle.client.d.mts +0 -17
- package/dist/src/modules/data-tables/components/filters/toggle.client.mjs +0 -25
- package/dist/src/modules/data-tables/components/footer.mjs +0 -31
- package/dist/src/modules/data-tables/components/header.d.mts +0 -40
- package/dist/src/modules/data-tables/components/header.mjs +0 -43
- package/dist/src/modules/data-tables/components/layout.d.mts +0 -11
- package/dist/src/modules/data-tables/components/layout.mjs +0 -14
- package/dist/src/modules/data-tables/components/search-input.client.d.mts +0 -6
- package/dist/src/modules/data-tables/components/search-input.client.mjs +0 -19
- package/dist/src/modules/data-tables/components/skeleton.d.mts +0 -6
- package/dist/src/modules/data-tables/components/skeleton.mjs +0 -21
- package/dist/src/modules/data-tables/components/table.d.mts +0 -33
- package/dist/src/modules/data-tables/components/table.mjs +0 -55
- package/dist/src/modules/data-tables/components/toolbar.d.mts +0 -22
- package/dist/src/modules/data-tables/components/toolbar.mjs +0 -21
- package/dist/src/modules/data-tables/hooks/use-context.client.d.mts +0 -47
- package/dist/src/modules/data-tables/hooks/use-context.client.mjs +0 -34
- package/dist/src/modules/data-tables/hooks/use-search.client.mjs +0 -39
- package/dist/src/modules/data-tables/hooks/use-selection.client.mjs +0 -44
- package/dist/src/modules/data-tables/hooks/use-table.client.d.mts +0 -10
- package/dist/src/modules/data-tables/hooks/use-table.client.mjs +0 -55
- package/dist/src/modules/data-tables/lib/converters/dto.d.mts +0 -50
- package/dist/src/modules/data-tables/lib/converters/dto.mjs +0 -24
- package/dist/src/modules/data-tables/lib/converters/filters.d.mts +0 -41
- package/dist/src/modules/data-tables/lib/converters/filters.mjs +0 -38
- package/dist/src/modules/data-tables/lib/converters/pagination.d.mts +0 -17
- package/dist/src/modules/data-tables/lib/converters/pagination.mjs +0 -15
- package/dist/src/modules/data-tables/lib/converters/search.d.mts +0 -16
- package/dist/src/modules/data-tables/lib/converters/search.mjs +0 -15
- package/dist/src/modules/data-tables/lib/converters/sorting.d.mts +0 -48
- package/dist/src/modules/data-tables/lib/converters/sorting.mjs +0 -55
- package/dist/src/modules/data-tables/lib/filters/config.d.mts +0 -13
- package/dist/src/modules/data-tables/lib/filters/config.mjs +0 -5
- package/dist/src/modules/data-tables/lib/filters/helpers.d.mts +0 -10
- package/dist/src/modules/data-tables/lib/filters/helpers.mjs +0 -16
- package/dist/src/modules/data-tables/lib/filters/parsers.d.mts +0 -46
- package/dist/src/modules/data-tables/lib/filters/parsers.mjs +0 -47
- package/dist/src/modules/data-tables/lib/filters/resolvers.d.mts +0 -28
- package/dist/src/modules/data-tables/lib/filters/resolvers.mjs +0 -55
- package/dist/src/modules/data-tables/lib/helpers/create-column.mjs +0 -10
- package/dist/src/modules/data-tables/lib/search-params.d.mts +0 -21
- package/dist/src/modules/data-tables/lib/search-params.mjs +0 -16
- package/dist/src/modules/data-tables/lib/types.d.mts +0 -54
- package/dist/src/modules/data-tables/lib/validators.d.mts +0 -19
- package/dist/src/modules/data-tables/lib/validators.mjs +0 -16
- package/dist/src/modules/data-tables/server/get-data.server.d.mts +0 -29
- package/dist/src/modules/data-tables/server/get-data.server.mjs +0 -47
- package/dist/src/modules/data-tables/strategies/helpers/sorting.mjs +0 -37
- package/dist/src/modules/data-tables/strategies/infinite/components.mjs +0 -50
- package/dist/src/modules/data-tables/strategies/infinite/strategy.d.mts +0 -20
- package/dist/src/modules/data-tables/strategies/infinite/strategy.mjs +0 -50
- package/dist/src/modules/data-tables/strategies/local/components.mjs +0 -25
- package/dist/src/modules/data-tables/strategies/local/strategy.d.mts +0 -12
- package/dist/src/modules/data-tables/strategies/local/strategy.mjs +0 -31
- package/dist/src/modules/data-tables/strategies/pagination/components.mjs +0 -131
- package/dist/src/modules/data-tables/strategies/pagination/strategy.d.mts +0 -12
- package/dist/src/modules/data-tables/strategies/pagination/strategy.mjs +0 -45
- package/dist/src/modules/data-tables/tables/data-table/components/body.mjs +0 -32
- package/dist/src/modules/data-tables/tables/data-table/components/header.mjs +0 -12
- package/dist/src/modules/data-tables/tables/data-table/components/row.mjs +0 -13
- package/dist/src/modules/data-tables/tables/data-table/components/table.d.mts +0 -8
- package/dist/src/modules/data-tables/tables/data-table/components/table.mjs +0 -42
- package/dist/src/modules/data-tables/tables/inline-table/components/body.mjs +0 -69
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.d.mts +0 -11
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/common.mjs +0 -14
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts +0 -24
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +0 -38
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.d.mts +0 -11
- package/dist/src/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +0 -14
- package/dist/src/modules/data-tables/tables/inline-table/components/header.mjs +0 -10
- package/dist/src/modules/data-tables/tables/inline-table/components/row.client.mjs +0 -24
- package/dist/src/modules/data-tables/tables/inline-table/components/table.d.mts +0 -14
- package/dist/src/modules/data-tables/tables/inline-table/components/table.mjs +0 -52
- package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +0 -48
- package/dist/src/modules/data-tables/tables/inline-table/hooks/context.client.mjs +0 -58
- package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts +0 -29
- package/dist/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs +0 -94
- package/dist/src/modules/database/lib/helpers.d.mts +0 -15
- package/dist/src/modules/database/lib/helpers.mjs +0 -16
- package/dist/src/modules/database/lib/service.server.d.mts +0 -33
- package/dist/src/modules/database/lib/service.server.mjs +0 -23
- package/dist/src/modules/database/lib/types.d.mts +0 -4
- package/dist/src/modules/emails/lib/service.server.d.mts +0 -28
- package/dist/src/modules/emails/lib/service.server.mjs +0 -20
- package/dist/src/modules/inline/components/cell.client.d.mts +0 -20
- package/dist/src/modules/inline/components/cell.client.mjs +0 -46
- package/dist/src/modules/inline/components/field.client.d.mts +0 -36
- package/dist/src/modules/inline/components/field.client.mjs +0 -61
- package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.d.mts +0 -28
- package/dist/src/modules/inline/components/inputs/combobox-dropdown.client.mjs +0 -49
- package/dist/src/modules/inline/components/inputs/combobox.client.d.mts +0 -23
- package/dist/src/modules/inline/components/inputs/combobox.client.mjs +0 -45
- package/dist/src/modules/inline/components/inputs/date-time.client.d.mts +0 -25
- package/dist/src/modules/inline/components/inputs/date-time.client.mjs +0 -48
- package/dist/src/modules/inline/components/inputs/date.client.d.mts +0 -66
- package/dist/src/modules/inline/components/inputs/date.client.mjs +0 -175
- package/dist/src/modules/inline/components/inputs/editor.client.d.mts +0 -26
- package/dist/src/modules/inline/components/inputs/editor.client.mjs +0 -51
- package/dist/src/modules/inline/components/inputs/input-recipient.client.d.mts +0 -27
- package/dist/src/modules/inline/components/inputs/input-recipient.client.mjs +0 -48
- package/dist/src/modules/inline/components/inputs/input.client.d.mts +0 -54
- package/dist/src/modules/inline/components/inputs/input.client.mjs +0 -129
- package/dist/src/modules/inline/components/inputs/select.client.d.mts +0 -32
- package/dist/src/modules/inline/components/inputs/select.client.mjs +0 -64
- package/dist/src/modules/inline/components/inputs/switch.client.d.mts +0 -22
- package/dist/src/modules/inline/components/inputs/switch.client.mjs +0 -42
- package/dist/src/modules/inline/components/inputs/toggle.client.d.mts +0 -24
- package/dist/src/modules/inline/components/inputs/toggle.client.mjs +0 -47
- package/dist/src/modules/inline/hooks/inline-provider.d.mts +0 -28
- package/dist/src/modules/inline/hooks/inline-provider.mjs +0 -25
- package/dist/src/modules/inline/hooks/inline-state.client.d.mts +0 -30
- package/dist/src/modules/inline/hooks/inline-state.client.mjs +0 -25
- package/dist/src/modules/inline/hooks/use-inline.client.d.mts +0 -144
- package/dist/src/modules/inline/hooks/use-inline.client.mjs +0 -125
- package/dist/src/modules/inline/lib/validators.d.mts +0 -56
- package/dist/src/modules/inline/lib/validators.mjs +0 -34
- package/dist/src/modules/inline/lib/variants.d.mts +0 -11
- package/dist/src/modules/inline/lib/variants.mjs +0 -21
- package/dist/src/modules/router/handler/caller.client.d.mts +0 -10
- package/dist/src/modules/router/handler/caller.client.mjs +0 -23
- package/dist/src/modules/router/handler/caller.server.d.mts +0 -6
- package/dist/src/modules/router/handler/caller.server.mjs +0 -7
- package/dist/src/modules/router/handler/context.server.d.mts +0 -62
- package/dist/src/modules/router/handler/context.server.mjs +0 -20
- package/dist/src/modules/router/handler/init.server.d.mts +0 -65
- package/dist/src/modules/router/handler/init.server.mjs +0 -55
- package/dist/src/modules/router/handler/register.server.d.mts +0 -8
- package/dist/src/modules/router/handler/register.server.mjs +0 -10
- package/dist/src/modules/router/handler/route.server.d.mts +0 -21
- package/dist/src/modules/router/handler/route.server.mjs +0 -32
- package/dist/src/modules/router/lib/error.server.d.mts +0 -2
- package/dist/src/modules/router/lib/error.server.mjs +0 -3
- package/dist/src/modules/router/lib/helpers.mjs +0 -7
- package/dist/src/modules/router/lib/query-client.d.mts +0 -10
- package/dist/src/modules/router/lib/query-client.mjs +0 -50
- package/dist/src/modules/router/lib/query-client.server.d.mts +0 -17
- package/dist/src/modules/router/lib/query-client.server.mjs +0 -23
- package/dist/src/modules/router/lib/validators.d.mts +0 -12
- package/dist/src/modules/router/lib/validators.mjs +0 -10
- package/dist/src/modules/storage/components/dropzone-context.client.d.mts +0 -18
- package/dist/src/modules/storage/components/dropzone-context.client.mjs +0 -17
- package/dist/src/modules/storage/components/dropzone.client.d.mts +0 -52
- package/dist/src/modules/storage/components/dropzone.client.mjs +0 -110
- package/dist/src/modules/storage/components/image-grid.client.d.mts +0 -32
- package/dist/src/modules/storage/components/image-grid.client.mjs +0 -167
- package/dist/src/modules/storage/components/image.client.d.mts +0 -7
- package/dist/src/modules/storage/components/image.client.mjs +0 -16
- package/dist/src/modules/storage/components/upload-button.client.d.mts +0 -11
- package/dist/src/modules/storage/components/upload-button.client.mjs +0 -33
- package/dist/src/modules/storage/components/upload-zone-context.client.d.mts +0 -30
- package/dist/src/modules/storage/components/upload-zone-context.client.mjs +0 -20
- package/dist/src/modules/storage/components/upload-zone.client.d.mts +0 -27
- package/dist/src/modules/storage/components/upload-zone.client.mjs +0 -111
- package/dist/src/modules/storage/lib/constants.d.mts +0 -5
- package/dist/src/modules/storage/lib/constants.mjs +0 -5
- package/dist/src/modules/storage/lib/helpers.d.mts +0 -29
- package/dist/src/modules/storage/lib/helpers.mjs +0 -49
- package/dist/src/modules/storage/lib/procedures.server.d.mts +0 -1990
- package/dist/src/modules/storage/lib/procedures.server.mjs +0 -21
- package/dist/src/modules/storage/lib/router-handlers.server.d.mts +0 -40
- package/dist/src/modules/storage/lib/router-handlers.server.mjs +0 -123
- package/dist/src/modules/storage/lib/schema.d.mts +0 -291
- package/dist/src/modules/storage/lib/schema.mjs +0 -37
- package/dist/src/modules/storage/lib/service.server.d.mts +0 -2217
- package/dist/src/modules/storage/lib/service.server.mjs +0 -514
- package/dist/src/modules/storage/lib/upload.client.d.mts +0 -57
- package/dist/src/modules/storage/lib/upload.client.mjs +0 -86
- package/dist/src/modules/storage/lib/validators.d.mts +0 -935
- package/dist/src/modules/storage/lib/validators.mjs +0 -52
- package/dist/src/modules/storage/providers/adapters/s3.server.d.mts +0 -18
- package/dist/src/modules/storage/providers/adapters/s3.server.mjs +0 -172
- package/dist/src/modules/storage/providers/lib/constants.d.mts +0 -5
- package/dist/src/modules/storage/providers/lib/constants.mjs +0 -5
- package/dist/src/modules/storage/providers/lib/errors.d.mts +0 -11
- package/dist/src/modules/storage/providers/lib/errors.mjs +0 -12
- package/dist/src/modules/storage/providers/lib/types.d.mts +0 -20
- package/dist/src/modules/storage/providers/lib/validators.d.mts +0 -111
- package/dist/src/modules/storage/providers/lib/validators.mjs +0 -74
- package/src/modules/router/handler/context.server.ts +0 -28
- 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 {
|
|
5
|
-
import type {
|
|
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 {
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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, {
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
23
|
+
const routes = toNextJsHandler(auth.handler);
|
|
23
24
|
return routes.POST(request);
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -1,125 +1,76 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Session, User } from "better-auth";
|
|
2
2
|
import { drizzleAdapter } from "better-auth/adapters/drizzle";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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 {
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
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
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
34
|
-
|
|
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
|
-
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
baseURL: {
|
|
42
|
-
allowedHosts: props.allowedHosts,
|
|
46
|
+
database: { generateId: () => false as const },
|
|
47
|
+
...(advanced ?? {}),
|
|
43
48
|
},
|
|
44
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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 {
|
|
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
|
|
18
|
+
return context as TAuthClient;
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
/**
|
|
27
22
|
* Auth client provider
|
|
28
23
|
*/
|
|
29
|
-
export function AuthProvider<
|
|
30
|
-
|
|
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 {
|
|
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
|
|
43
|
-
|
|
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 {
|
|
4
|
+
import type { InferSessionFromClient, InferUserFromClient } from "better-auth";
|
|
5
|
+
import type { AuthClient, AuthClientOptions } from "../handler/create-client.client";
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
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 {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
13
|
+
export type GetSessionResult<TAuthOptions extends TAuthServerOptions> = {
|
|
14
|
+
session: AuthServerSession<TAuthOptions>;
|
|
15
|
+
user: AuthServerUser<TAuthOptions>;
|
|
16
|
+
} | null;
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
26
|
+
return data as GetSessionResult<TAuthOptions>;
|
|
55
27
|
}
|
|
@@ -1,7 +1,40 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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
|
+
}
|