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,4 +1,4 @@
import { LOCALE } from '$lib/utils/types';
import type { TLocale } from '@cio/db/types';
import i18n from '@sveltekit-i18n/base';
import parser from '@sveltekit-i18n/parser-icu';
import { writable } from 'svelte/store';
@@ -72,7 +72,7 @@ loading.subscribe(async ($loading) => {
}
});
export function handleLocaleChange(newLocale: LOCALE) {
export function handleLocaleChange(newLocale: TLocale) {
if (!newLocale) {
return;
}
@@ -82,7 +82,7 @@ export function handleLocaleChange(newLocale: LOCALE) {
selectedLocale.set(newLocale);
}
export function lessonFallbackNote(note: string, translation: Record<LOCALE, string>, locale: LOCALE) {
export function lessonFallbackNote(note: string, translation: Record<TLocale, string>, locale: TLocale) {
if (!translation) {
return note;
}
@@ -90,7 +90,7 @@ export function lessonFallbackNote(note: string, translation: Record<LOCALE, str
const content = translation[locale];
// if locale is english and no translated content for english but note exists
if (locale === LOCALE.EN && !content && note?.length) {
if (locale === 'en' && !content && note?.length) {
return note;
}