Remy Benza
03/21/2026, 1:46 PMRemy Benza
03/21/2026, 1:47 PM/**
* Json config for the SettingsSessionManager, derived from jsonConfig.
* The default SettingsSessionManager uses its own private Json with no serializersModule.
* On Kotlin/JS dev mode, runtime KClass-based serializer lookup fails for classes from
* dependency modules (UserSession etc.). Contextual serializers provide a fallback path.
* encodeDefaults = true is required by SettingsSessionManager.
*/
@OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
private val sessionJson by lazy {
Json(from = jsonConfig) {
encodeDefaults = true
serializersModule = SerializersModule {
contextual(UserSession::class, UserSession.serializer())
contextual(UserInfo::class, UserInfo.serializer())
contextual(Identity::class, Identity.serializer())
contextual(UserMfaFactor::class, UserMfaFactor.serializer())
}
}
}
val supabaseClient by lazy {
createSupabaseClient(SB_URL, SB_ANON_PUBLIC_KEY) {
defaultSerializer = KotlinXSerializer(jsonConfig)Jan
03/24/2026, 4:19 PM