feat: migrate auth from supabase to better auth (#596)

* feat: add README for @cio/db package and remove existingAccounts.json

* load session, load profile and organization, add create profile hook

* chore: cache session request

The trick was passing all the cookies to the backend. Previously I was only passing the better-auth.session_token and not better-auth.session_data. Read about the difference here https://www.better-auth.com/docs/concepts/cookies#custom-cookies

* feat: login, logout, onboarding, verify email, reset password.

* feat: complete change email and email verification

* feat: standardise how we make rpc calls and create org endpoints

* fix ui errors

* fix: handle potential undefined customerId and standardize avatar URL property

* refactor: standardize custom domain handling and update telegram chat ID references

* chore: add tailwind prefix to @cio/ui

this fixed the media query issues because  @cio/ui classes were overriding this dashboard tailwind build

* chore: clean up org sidebar

* chore: persist mode state

* feat: implement order breadcrumbs

* chore: upgrade to better auth 1.4

* chore: address common auth flow bugs and setup app for others to setup locally.
This commit is contained in:
Rotimi Best
2025-11-24 01:00:50 +01:00
committed by GitHub
parent 24741644d6
commit a3924100dd
567 changed files with 22364 additions and 13437 deletions
@@ -1,5 +1,5 @@
<script lang="ts">
import { page } from '$app/stores';
import { page } from '$app/state';
import CourseIcon from '$lib/Icons/CourseIcon.svelte';
import ChevronDown from 'carbon-icons-svelte/lib/ChevronDown.svelte';
import CloseLarge from 'carbon-icons-svelte/lib/CloseLarge.svelte';
@@ -50,8 +50,8 @@
}
];
$: activeLink = $page.url.pathname;
$: activeHash = $page.url.hash;
$: activeLink = page.url.pathname;
$: activeHash = page.url.hash;
$: isSolutionsActive = solutions.some((s) => activeHash.includes(s.key));
async function setStars() {
+3 -3
View File
@@ -1,6 +1,6 @@
<script>
import { dev } from '$app/environment';
import { page } from '$app/stores';
import { page } from '$app/state';
import Footer from '$lib/Footer/Footer.svelte';
import Navigation from '$lib/Navigation/Navigation.svelte';
import NotFound from '$lib/NotFound/NotFound.svelte';
@@ -19,7 +19,7 @@
}
});
$: metaTags = extend(true, {}, data.baseMetaTags, $page.data.pageMetaTags);
$: metaTags = extend(true, {}, data.baseMetaTags, page.data.pageMetaTags);
</script>
<MetaTags {...metaTags} />
@@ -28,7 +28,7 @@
<Navigation />
<PageTransition url={data.url}>
{#if $page.status === 404}
{#if page.status === 404}
<NotFound className="mt-5" />
{:else}
<slot />