Skip to content

Commit 34dfd75

Browse files
committed
feat: add Domains (formerly Clients) (#185)
Signed-off-by: Marcin Stepien <marcin.stepien@fluxon.com>
1 parent da9d2c8 commit 34dfd75

8 files changed

Lines changed: 1294 additions & 224 deletions

File tree

kotlin-sdk/api/android/kotlin-sdk.api

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,29 @@ public abstract interface class dev/openfeature/kotlin/sdk/Client : dev/openfeat
2323
}
2424

2525
public abstract interface class dev/openfeature/kotlin/sdk/ClientMetadata {
26+
public abstract fun getDomain ()Ljava/lang/String;
2627
public abstract fun getName ()Ljava/lang/String;
2728
}
2829

30+
public final class dev/openfeature/kotlin/sdk/DomainState {
31+
public fun <init> ()V
32+
public final fun emitStatus (Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
33+
public final fun getContext ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
34+
public final fun getProvider ()Ldev/openfeature/kotlin/sdk/FeatureProvider;
35+
public final fun getProviderMutex ()Lkotlinx/coroutines/sync/Mutex;
36+
public final fun getProvidersFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
37+
public final fun getSetEvaluationContextJob ()Lkotlinx/coroutines/Job;
38+
public final fun getSetProviderJob ()Lkotlinx/coroutines/Job;
39+
public final fun getStatus ()Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;
40+
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/Flow;
41+
public final fun get_statusFlow ()Lkotlinx/coroutines/flow/MutableSharedFlow;
42+
public final fun initializeListener (Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
43+
public final fun setContext (Ldev/openfeature/kotlin/sdk/EvaluationContext;)V
44+
public final fun setSetEvaluationContextJob (Lkotlinx/coroutines/Job;)V
45+
public final fun setSetProviderJob (Lkotlinx/coroutines/Job;)V
46+
public final fun shutdown (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
47+
}
48+
2949
public abstract interface class dev/openfeature/kotlin/sdk/EvaluationContext : dev/openfeature/kotlin/sdk/Structure {
3050
public abstract fun equals (Ljava/lang/Object;)Z
3151
public abstract fun getTargetingKey ()Ljava/lang/String;
@@ -275,19 +295,32 @@ public final class dev/openfeature/kotlin/sdk/OpenFeatureAPI {
275295
public final fun getClient (Ljava/lang/String;Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/Client;
276296
public static synthetic fun getClient$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/Client;
277297
public final fun getEvaluationContext ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
298+
public final fun getEvaluationContext (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/EvaluationContext;
278299
public final fun getHooks ()Ljava/util/List;
279300
public final fun getProvider ()Ldev/openfeature/kotlin/sdk/FeatureProvider;
301+
public final fun getProvider (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/FeatureProvider;
280302
public final fun getProviderMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
281-
public final fun getProvidersFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
303+
public final fun getProviderMetadata (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/ProviderMetadata;
304+
public final fun getProviderStatus (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;
305+
public final fun getProviderStatusFlow (Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
306+
public final fun getProvidersFlow ()Lkotlinx/coroutines/flow/Flow;
307+
public final fun getRepository ()Ldev/openfeature/kotlin/sdk/ProviderRepository;
282308
public final fun getStatus ()Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;
283309
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/Flow;
284310
public final fun setEvaluationContext (Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;)V
311+
public final fun setEvaluationContext (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;)V
285312
public static synthetic fun setEvaluationContext$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;ILjava/lang/Object;)V
313+
public static synthetic fun setEvaluationContext$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;ILjava/lang/Object;)V
286314
public final fun setEvaluationContextAndWait (Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
315+
public final fun setEvaluationContextAndWait (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
287316
public final fun setProvider (Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;)V
317+
public final fun setProvider (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;)V
288318
public static synthetic fun setProvider$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;ILjava/lang/Object;)V
319+
public static synthetic fun setProvider$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;ILjava/lang/Object;)V
289320
public final fun setProviderAndWait (Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
321+
public final fun setProviderAndWait (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
290322
public static synthetic fun setProviderAndWait$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
323+
public static synthetic fun setProviderAndWait$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
291324
public final fun shutdown (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
292325
}
293326

@@ -322,11 +355,14 @@ public final class dev/openfeature/kotlin/sdk/OpenFeatureClient : dev/openfeatur
322355
}
323356

324357
public final class dev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata : dev/openfeature/kotlin/sdk/ClientMetadata {
325-
public fun <init> (Ljava/lang/String;)V
358+
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
359+
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
326360
public final fun component1 ()Ljava/lang/String;
327-
public final fun copy (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
328-
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
361+
public final fun component2 ()Ljava/lang/String;
362+
public final fun copy (Ljava/lang/String;Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
363+
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
329364
public fun equals (Ljava/lang/Object;)Z
365+
public fun getDomain ()Ljava/lang/String;
330366
public fun getName ()Ljava/lang/String;
331367
public fun hashCode ()I
332368
public fun toString ()Ljava/lang/String;
@@ -392,6 +428,17 @@ public final class dev/openfeature/kotlin/sdk/ProviderMetadata$DefaultImpls {
392428
public static fun getOriginalMetadata (Ldev/openfeature/kotlin/sdk/ProviderMetadata;)Ljava/util/Map;
393429
}
394430

431+
public final class dev/openfeature/kotlin/sdk/ProviderRepository {
432+
public fun <init> ()V
433+
public final fun clearAll (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
434+
public final fun getAllStates ()Ljava/util/List;
435+
public final fun getOrCreateState (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
436+
public static synthetic fun getOrCreateState$default (Ldev/openfeature/kotlin/sdk/ProviderRepository;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
437+
public final fun getState (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/DomainState;
438+
public static synthetic fun getState$default (Ldev/openfeature/kotlin/sdk/ProviderRepository;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/DomainState;
439+
public final fun getStateFlow (Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
440+
}
441+
395442
public final class dev/openfeature/kotlin/sdk/Reason : java/lang/Enum {
396443
public static final field CACHED Ldev/openfeature/kotlin/sdk/Reason;
397444
public static final field DEFAULT Ldev/openfeature/kotlin/sdk/Reason;

kotlin-sdk/api/jvm/kotlin-sdk.api

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,29 @@ public abstract interface class dev/openfeature/kotlin/sdk/Client : dev/openfeat
2323
}
2424

2525
public abstract interface class dev/openfeature/kotlin/sdk/ClientMetadata {
26+
public abstract fun getDomain ()Ljava/lang/String;
2627
public abstract fun getName ()Ljava/lang/String;
2728
}
2829

30+
public final class dev/openfeature/kotlin/sdk/DomainState {
31+
public fun <init> ()V
32+
public final fun emitStatus (Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
33+
public final fun getContext ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
34+
public final fun getProvider ()Ldev/openfeature/kotlin/sdk/FeatureProvider;
35+
public final fun getProviderMutex ()Lkotlinx/coroutines/sync/Mutex;
36+
public final fun getProvidersFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
37+
public final fun getSetEvaluationContextJob ()Lkotlinx/coroutines/Job;
38+
public final fun getSetProviderJob ()Lkotlinx/coroutines/Job;
39+
public final fun getStatus ()Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;
40+
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/Flow;
41+
public final fun get_statusFlow ()Lkotlinx/coroutines/flow/MutableSharedFlow;
42+
public final fun initializeListener (Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
43+
public final fun setContext (Ldev/openfeature/kotlin/sdk/EvaluationContext;)V
44+
public final fun setSetEvaluationContextJob (Lkotlinx/coroutines/Job;)V
45+
public final fun setSetProviderJob (Lkotlinx/coroutines/Job;)V
46+
public final fun shutdown (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
47+
}
48+
2949
public abstract interface class dev/openfeature/kotlin/sdk/EvaluationContext : dev/openfeature/kotlin/sdk/Structure {
3050
public abstract fun equals (Ljava/lang/Object;)Z
3151
public abstract fun getTargetingKey ()Ljava/lang/String;
@@ -275,19 +295,32 @@ public final class dev/openfeature/kotlin/sdk/OpenFeatureAPI {
275295
public final fun getClient (Ljava/lang/String;Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/Client;
276296
public static synthetic fun getClient$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/Client;
277297
public final fun getEvaluationContext ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
298+
public final fun getEvaluationContext (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/EvaluationContext;
278299
public final fun getHooks ()Ljava/util/List;
279300
public final fun getProvider ()Ldev/openfeature/kotlin/sdk/FeatureProvider;
301+
public final fun getProvider (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/FeatureProvider;
280302
public final fun getProviderMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
281-
public final fun getProvidersFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
303+
public final fun getProviderMetadata (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/ProviderMetadata;
304+
public final fun getProviderStatus (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;
305+
public final fun getProviderStatusFlow (Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
306+
public final fun getProvidersFlow ()Lkotlinx/coroutines/flow/Flow;
307+
public final fun getRepository ()Ldev/openfeature/kotlin/sdk/ProviderRepository;
282308
public final fun getStatus ()Ldev/openfeature/kotlin/sdk/OpenFeatureStatus;
283309
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/Flow;
284310
public final fun setEvaluationContext (Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;)V
311+
public final fun setEvaluationContext (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;)V
285312
public static synthetic fun setEvaluationContext$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;ILjava/lang/Object;)V
313+
public static synthetic fun setEvaluationContext$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;ILjava/lang/Object;)V
286314
public final fun setEvaluationContextAndWait (Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
315+
public final fun setEvaluationContextAndWait (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
287316
public final fun setProvider (Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;)V
317+
public final fun setProvider (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;)V
288318
public static synthetic fun setProvider$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;ILjava/lang/Object;)V
319+
public static synthetic fun setProvider$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Lkotlinx/coroutines/CoroutineDispatcher;Ldev/openfeature/kotlin/sdk/EvaluationContext;ILjava/lang/Object;)V
289320
public final fun setProviderAndWait (Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
321+
public final fun setProviderAndWait (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
290322
public static synthetic fun setProviderAndWait$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
323+
public static synthetic fun setProviderAndWait$default (Ldev/openfeature/kotlin/sdk/OpenFeatureAPI;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FeatureProvider;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
291324
public final fun shutdown (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
292325
}
293326

@@ -322,11 +355,14 @@ public final class dev/openfeature/kotlin/sdk/OpenFeatureClient : dev/openfeatur
322355
}
323356

324357
public final class dev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata : dev/openfeature/kotlin/sdk/ClientMetadata {
325-
public fun <init> (Ljava/lang/String;)V
358+
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
359+
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
326360
public final fun component1 ()Ljava/lang/String;
327-
public final fun copy (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
328-
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
361+
public final fun component2 ()Ljava/lang/String;
362+
public final fun copy (Ljava/lang/String;Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
363+
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/OpenFeatureClient$Metadata;
329364
public fun equals (Ljava/lang/Object;)Z
365+
public fun getDomain ()Ljava/lang/String;
330366
public fun getName ()Ljava/lang/String;
331367
public fun hashCode ()I
332368
public fun toString ()Ljava/lang/String;
@@ -392,6 +428,17 @@ public final class dev/openfeature/kotlin/sdk/ProviderMetadata$DefaultImpls {
392428
public static fun getOriginalMetadata (Ldev/openfeature/kotlin/sdk/ProviderMetadata;)Ljava/util/Map;
393429
}
394430

431+
public final class dev/openfeature/kotlin/sdk/ProviderRepository {
432+
public fun <init> ()V
433+
public final fun clearAll (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
434+
public final fun getAllStates ()Ljava/util/List;
435+
public final fun getOrCreateState (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
436+
public static synthetic fun getOrCreateState$default (Ldev/openfeature/kotlin/sdk/ProviderRepository;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
437+
public final fun getState (Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/DomainState;
438+
public static synthetic fun getState$default (Ldev/openfeature/kotlin/sdk/ProviderRepository;Ljava/lang/String;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/DomainState;
439+
public final fun getStateFlow (Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
440+
}
441+
395442
public final class dev/openfeature/kotlin/sdk/Reason : java/lang/Enum {
396443
public static final field CACHED Ldev/openfeature/kotlin/sdk/Reason;
397444
public static final field DEFAULT Ldev/openfeature/kotlin/sdk/Reason;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package dev.openfeature.kotlin.sdk
22

33
interface ClientMetadata {
4+
@Deprecated("Use domain instead", ReplaceWith("domain"))
45
val name: String?
6+
7+
val domain: String?
58
}

0 commit comments

Comments
 (0)