From 9ce8ec50db95e125e1c0aff644683fff89a242e1 Mon Sep 17 00:00:00 2001 From: Mariia Skripchenko <61115099+marychatte@users.noreply.github.com> Date: Tue, 8 Oct 2024 16:51:50 +0200 Subject: [PATCH] Fix codestyle and run apiDump --- .../ktor-client-core/api/ktor-client-core.api | 59 ++++++++++--------- .../api/ktor-client-core.klib.api | 46 ++++++++------- .../client/plugins/sse/ClientSSESession.kt | 1 - .../src/io/ktor/client/plugins/sse/SSE.kt | 1 - .../tests/plugins/ServerSentEventsTest.kt | 50 ++++++++++------ .../ktor-server-sse/api/ktor-server-sse.api | 16 ++--- .../api/ktor-server-sse.klib.api | 18 +++--- .../common/src/io/ktor/server/sse/Routing.kt | 1 - .../io/ktor/server/sse/SSEServerContent.kt | 1 - .../src/io/ktor/server/sse/SSESession.kt | 1 - .../ktor/server/sse/ServerSentEventsTest.kt | 39 ++++++------ ktor-shared/ktor-sse/api/ktor-sse.api | 27 ++++++++- ktor-shared/ktor-sse/api/ktor-sse.klib.api | 37 ++++++++++-- 13 files changed, 186 insertions(+), 111 deletions(-) diff --git a/ktor-client/ktor-client-core/api/ktor-client-core.api b/ktor-client/ktor-client-core/api/ktor-client-core.api index dfda1c2ff3..84978e658b 100644 --- a/ktor-client/ktor-client-core/api/ktor-client-core.api +++ b/ktor-client/ktor-client-core/api/ktor-client-core.api @@ -767,48 +767,48 @@ public final class io/ktor/client/plugins/sse/BuildersKt { public static synthetic fun serverSentEvents-1wIb-0I$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun serverSentEvents-3bFjkrY (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun serverSentEvents-3bFjkrY$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun serverSentEvents-BqdlHlk (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun serverSentEvents-BqdlHlk$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun serverSentEvents-Mswn-_c (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun serverSentEvents-Mswn-_c$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun serverSentEvents-BqdlHlk (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun serverSentEvents-BqdlHlk$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun serverSentEvents-Mswn-_c (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun serverSentEvents-Mswn-_c$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun serverSentEvents-mY9Nd3A (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun serverSentEvents-mY9Nd3A$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun serverSentEvents-pTj2aPc (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun serverSentEvents-pTj2aPc$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun serverSentEventsSession-Mswn-_c (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun serverSentEventsSession-Mswn-_c$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun serverSentEvents-pTj2aPc (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun serverSentEvents-pTj2aPc$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun serverSentEventsSession-Mswn-_c (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun serverSentEventsSession-Mswn-_c$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun serverSentEventsSession-i8z2VEo (Lio/ktor/client/HttpClient;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun serverSentEventsSession-i8z2VEo$default (Lio/ktor/client/HttpClient;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun serverSentEventsSession-mY9Nd3A (Lio/ktor/client/HttpClient;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun serverSentEventsSession-mY9Nd3A (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun serverSentEventsSession-mY9Nd3A (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun serverSentEventsSession-mY9Nd3A$default (Lio/ktor/client/HttpClient;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun serverSentEventsSession-mY9Nd3A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun serverSentEventsSession-mY9Nd3A$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun serverSentEventsSession-tL6_L-A (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun serverSentEventsSession-tL6_L-A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun serverSentEventsSession-tL6_L-A (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun serverSentEventsSession-tL6_L-A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun serverSentEventsSession-xEWcMm4 (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun serverSentEventsSession-xEWcMm4$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun sse-BAHpl2s (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun sse-BAHpl2s$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sse-BAHpl2s (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sse-BAHpl2s$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sse-Mswn-_c (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun sse-Mswn-_c (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sse-Mswn-_c (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun sse-Mswn-_c$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun sse-Mswn-_c$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun sse-Q9yt8Vw (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun sse-Q9yt8Vw$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun sse-Mswn-_c$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sse-Q9yt8Vw (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sse-Q9yt8Vw$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sse-mY9Nd3A (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun sse-mY9Nd3A$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sse-tL6_L-A (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun sse-tL6_L-A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun sseSession-Mswn-_c (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun sseSession-Mswn-_c$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sseSession-Mswn-_c (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sseSession-Mswn-_c$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sseSession-i8z2VEo (Lio/ktor/client/HttpClient;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun sseSession-i8z2VEo$default (Lio/ktor/client/HttpClient;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sseSession-mY9Nd3A (Lio/ktor/client/HttpClient;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun sseSession-mY9Nd3A (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun sseSession-mY9Nd3A (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sseSession-mY9Nd3A$default (Lio/ktor/client/HttpClient;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun sseSession-mY9Nd3A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun sseSession-mY9Nd3A$default (Lio/ktor/client/HttpClient;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun sseSession-tL6_L-A (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun sseSession-tL6_L-A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sseSession-tL6_L-A (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sseSession-tL6_L-A$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lio/ktor/client/plugins/sse/Deserializer;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sseSession-xEWcMm4 (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun sseSession-xEWcMm4$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/time/Duration;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } @@ -824,7 +824,7 @@ public final class io/ktor/client/plugins/sse/ClientSSESessionWithDeserializatio public fun (Lio/ktor/client/call/HttpClientCall;Lio/ktor/client/plugins/sse/SSESessionWithDeserialization;)V public final fun getCall ()Lio/ktor/client/call/HttpClientCall; public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext; - public fun getDeserializer ()Lkotlin/jvm/functions/Function1; + public fun getDeserializer ()Lio/ktor/client/plugins/sse/Deserializer; public fun getIncoming ()Lkotlinx/coroutines/flow/Flow; } @@ -834,6 +834,10 @@ public final class io/ktor/client/plugins/sse/DefaultClientSSESession : io/ktor/ public fun getIncoming ()Lkotlinx/coroutines/flow/Flow; } +public abstract interface class io/ktor/client/plugins/sse/Deserializer { + public abstract fun deserialize (Lio/ktor/util/reflect/TypeInfo;Ljava/lang/String;)Ljava/lang/Object; +} + public final class io/ktor/client/plugins/sse/SSECapability : io/ktor/client/engine/HttpClientEngineCapability { public static final field INSTANCE Lio/ktor/client/plugins/sse/SSECapability; public fun equals (Ljava/lang/Object;)Z @@ -877,8 +881,9 @@ public abstract interface class io/ktor/client/plugins/sse/SSESession : kotlinx/ public abstract fun getIncoming ()Lkotlinx/coroutines/flow/Flow; } -public abstract interface class io/ktor/client/plugins/sse/SSESessionWithDeserialization : io/ktor/client/plugins/sse/SSESession { - public abstract fun getDeserializer ()Lkotlin/jvm/functions/Function1; +public abstract interface class io/ktor/client/plugins/sse/SSESessionWithDeserialization : kotlinx/coroutines/CoroutineScope { + public abstract fun getDeserializer ()Lio/ktor/client/plugins/sse/Deserializer; + public abstract fun getIncoming ()Lkotlinx/coroutines/flow/Flow; } public final class io/ktor/client/plugins/websocket/BuildersKt { diff --git a/ktor-client/ktor-client-core/api/ktor-client-core.klib.api b/ktor-client/ktor-client-core/api/ktor-client-core.klib.api index d6e377276f..29fe3c653e 100644 --- a/ktor-client/ktor-client-core/api/ktor-client-core.klib.api +++ b/ktor-client/ktor-client-core/api/ktor-client-core.klib.api @@ -77,14 +77,20 @@ abstract interface io.ktor.client.plugins.cookies/CookiesStorage : io.ktor.utils abstract suspend fun get(io.ktor.http/Url): kotlin.collections/List // io.ktor.client.plugins.cookies/CookiesStorage.get|get(io.ktor.http.Url){}[0] } +abstract interface io.ktor.client.plugins.sse/Deserializer { // io.ktor.client.plugins.sse/Deserializer|null[0] + abstract fun deserialize(io.ktor.util.reflect/TypeInfo, kotlin/String): kotlin/Any // io.ktor.client.plugins.sse/Deserializer.deserialize|deserialize(io.ktor.util.reflect.TypeInfo;kotlin.String){}[0] +} + abstract interface io.ktor.client.plugins.sse/SSESession : kotlinx.coroutines/CoroutineScope { // io.ktor.client.plugins.sse/SSESession|null[0] abstract val incoming // io.ktor.client.plugins.sse/SSESession.incoming|{}incoming[0] - abstract fun (): kotlinx.coroutines.flow/Flow> // io.ktor.client.plugins.sse/SSESession.incoming.|(){}[0] + abstract fun (): kotlinx.coroutines.flow/Flow // io.ktor.client.plugins.sse/SSESession.incoming.|(){}[0] } -abstract interface io.ktor.client.plugins.sse/SSESessionWithDeserialization : io.ktor.client.plugins.sse/SSESession { // io.ktor.client.plugins.sse/SSESessionWithDeserialization|null[0] +abstract interface io.ktor.client.plugins.sse/SSESessionWithDeserialization : kotlinx.coroutines/CoroutineScope { // io.ktor.client.plugins.sse/SSESessionWithDeserialization|null[0] abstract val deserializer // io.ktor.client.plugins.sse/SSESessionWithDeserialization.deserializer|{}deserializer[0] - abstract fun (): kotlin/Function1> // io.ktor.client.plugins.sse/SSESessionWithDeserialization.deserializer.|(){}[0] + abstract fun (): io.ktor.client.plugins.sse/Deserializer // io.ktor.client.plugins.sse/SSESessionWithDeserialization.deserializer.|(){}[0] + abstract val incoming // io.ktor.client.plugins.sse/SSESessionWithDeserialization.incoming|{}incoming[0] + abstract fun (): kotlinx.coroutines.flow/Flow> // io.ktor.client.plugins.sse/SSESessionWithDeserialization.incoming.|(){}[0] } abstract interface io.ktor.client.plugins.websocket/ClientWebSocketSession : io.ktor.websocket/WebSocketSession { // io.ktor.client.plugins.websocket/ClientWebSocketSession|null[0] @@ -439,7 +445,7 @@ final class io.ktor.client.plugins.sse/ClientSSESession : io.ktor.client.plugins final val coroutineContext // io.ktor.client.plugins.sse/ClientSSESession.coroutineContext|{}coroutineContext[0] final fun (): kotlin.coroutines/CoroutineContext // io.ktor.client.plugins.sse/ClientSSESession.coroutineContext.|(){}[0] final val incoming // io.ktor.client.plugins.sse/ClientSSESession.incoming|{}incoming[0] - final fun (): kotlinx.coroutines.flow/Flow> // io.ktor.client.plugins.sse/ClientSSESession.incoming.|(){}[0] + final fun (): kotlinx.coroutines.flow/Flow // io.ktor.client.plugins.sse/ClientSSESession.incoming.|(){}[0] } final class io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization : io.ktor.client.plugins.sse/SSESessionWithDeserialization { // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization|null[0] @@ -450,9 +456,9 @@ final class io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization : io. final val coroutineContext // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.coroutineContext|{}coroutineContext[0] final fun (): kotlin.coroutines/CoroutineContext // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.coroutineContext.|(){}[0] final val deserializer // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.deserializer|{}deserializer[0] - final fun (): kotlin/Function1> // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.deserializer.|(){}[0] + final fun (): io.ktor.client.plugins.sse/Deserializer // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.deserializer.|(){}[0] final val incoming // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.incoming|{}incoming[0] - final fun (): kotlinx.coroutines.flow/Flow> // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.incoming.|(){}[0] + final fun (): kotlinx.coroutines.flow/Flow> // io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization.incoming.|(){}[0] } final class io.ktor.client.plugins.sse/DefaultClientSSESession : io.ktor.client.plugins.sse/SSESession { // io.ktor.client.plugins.sse/DefaultClientSSESession|null[0] @@ -461,7 +467,7 @@ final class io.ktor.client.plugins.sse/DefaultClientSSESession : io.ktor.client. final val coroutineContext // io.ktor.client.plugins.sse/DefaultClientSSESession.coroutineContext|{}coroutineContext[0] final fun (): kotlin.coroutines/CoroutineContext // io.ktor.client.plugins.sse/DefaultClientSSESession.coroutineContext.|(){}[0] final val incoming // io.ktor.client.plugins.sse/DefaultClientSSESession.incoming|{}incoming[0] - final fun (): kotlinx.coroutines.flow/Flow> // io.ktor.client.plugins.sse/DefaultClientSSESession.incoming.|(){}[0] + final fun (): kotlinx.coroutines.flow/Flow // io.ktor.client.plugins.sse/DefaultClientSSESession.incoming.|(){}[0] } final class io.ktor.client.plugins.sse/SSEClientContent : io.ktor.http.content/OutgoingContent.ContentWrapper { // io.ktor.client.plugins.sse/SSEClientContent|null[0] @@ -1405,7 +1411,7 @@ final fun io.ktor.client/HttpClient(io.ktor.client.engine/HttpClientEngine, kotl final fun io.ktor.client/HttpClient(kotlin/Function1, kotlin/Unit> = ...): io.ktor.client/HttpClient // io.ktor.client/HttpClient|HttpClient(kotlin.Function1,kotlin.Unit>){}[0] final inline fun (io.ktor.client.request.forms/FormBuilder).io.ktor.client.request.forms/append(kotlin/String, io.ktor.http/Headers = ..., kotlin/Long? = ..., crossinline kotlin/Function1) // io.ktor.client.request.forms/append|append@io.ktor.client.request.forms.FormBuilder(kotlin.String;io.ktor.http.Headers;kotlin.Long?;kotlin.Function1){}[0] final inline fun <#A: kotlin/Any?> io.ktor.client.plugins/unwrapRequestTimeoutException(kotlin/Function0<#A>): #A // io.ktor.client.plugins/unwrapRequestTimeoutException|unwrapRequestTimeoutException(kotlin.Function0<0:0>){0§}[0] -final inline fun <#A: reified kotlin/Any?> (io.ktor.client.plugins.sse/SSESessionWithDeserialization).io.ktor.client.plugins.sse/deserialize(io.ktor.sse/ServerSentEvent): #A? // io.ktor.client.plugins.sse/deserialize|deserialize@io.ktor.client.plugins.sse.SSESessionWithDeserialization(io.ktor.sse.ServerSentEvent){0§}[0] +final inline fun <#A: reified kotlin/Any?> (io.ktor.client.plugins.sse/SSESessionWithDeserialization).io.ktor.client.plugins.sse/deserialize(io.ktor.sse/ParameterizedServerSentEvent): #A? // io.ktor.client.plugins.sse/deserialize|deserialize@io.ktor.client.plugins.sse.SSESessionWithDeserialization(io.ktor.sse.ParameterizedServerSentEvent){0§}[0] final inline fun <#A: reified kotlin/Any?> (io.ktor.client.plugins.sse/SSESessionWithDeserialization).io.ktor.client.plugins.sse/deserialize(kotlin/String?): #A? // io.ktor.client.plugins.sse/deserialize|deserialize@io.ktor.client.plugins.sse.SSESessionWithDeserialization(kotlin.String?){0§}[0] final inline fun <#A: reified kotlin/Any?> (io.ktor.client.request/HttpRequestBuilder).io.ktor.client.request/setBody(#A) // io.ktor.client.request/setBody|setBody@io.ktor.client.request.HttpRequestBuilder(0:0){0§}[0] final suspend fun (io.ktor.client.call/HttpClientCall).io.ktor.client.call/save(): io.ktor.client.call/HttpClientCall // io.ktor.client.call/save|save@io.ktor.client.call.HttpClientCall(){}[0] @@ -1422,30 +1428,30 @@ final suspend fun (io.ktor.client.statement/HttpResponse).io.ktor.client.stateme final suspend fun (io.ktor.client.statement/HttpResponse).io.ktor.client.statement/readRawBytes(): kotlin/ByteArray // io.ktor.client.statement/readRawBytes|readRawBytes@io.ktor.client.statement.HttpResponse(){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.cookies/cookies(io.ktor.http/Url): kotlin.collections/List // io.ktor.client.plugins.cookies/cookies|cookies@io.ktor.client.HttpClient(io.ktor.http.Url){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.cookies/cookies(kotlin/String): kotlin.collections/List // io.ktor.client.plugins.cookies/cookies|cookies@io.ktor.client.HttpClient(kotlin.String){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/Function1, io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.Function1;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/Function1, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.Function1;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/Function1, kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.Function1;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/String, io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.String;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/String, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.String;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/String, kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEvents(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/serverSentEvents|serverSentEvents@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1): io.ktor.client.plugins.sse/ClientSSESession // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/String, io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.String;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/String, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESession // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.String;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/String, kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESession // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/serverSentEventsSession(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/serverSentEventsSession|serverSentEventsSession@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/Function1, io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.Function1;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/Function1, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.Function1;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/Function1, kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.Function1;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/String, kotlin/Function1 = ..., io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/String, kotlin/Function1 = ..., kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/String, kotlin/Function1 = ..., kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1 = ..., io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1 = ..., kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sse(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1 = ..., kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.sse/sse|sse@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1): io.ktor.client.plugins.sse/ClientSSESession // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/String, io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.String;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/String, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESession // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.String;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/String, kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] +final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., io.ktor.client.plugins.sse/Deserializer, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;io.ktor.client.plugins.sse.Deserializer;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESession // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] -final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.sse/sseSession(kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1>, kotlin.time/Duration? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Function1 = ...): io.ktor.client.plugins.sse/ClientSSESessionWithDeserialization // io.ktor.client.plugins.sse/sseSession|sseSession@io.ktor.client.HttpClient(kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1>;kotlin.time.Duration?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Function1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.websocket/webSocket(io.ktor.http/HttpMethod = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.websocket/webSocket|webSocket@io.ktor.client.HttpClient(io.ktor.http.HttpMethod;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.websocket/webSocket(kotlin/Function1, kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.websocket/webSocket|webSocket@io.ktor.client.HttpClient(kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] final suspend fun (io.ktor.client/HttpClient).io.ktor.client.plugins.websocket/webSocket(kotlin/String, kotlin/Function1 = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.client.plugins.websocket/webSocket|webSocket@io.ktor.client.HttpClient(kotlin.String;kotlin.Function1;kotlin.coroutines.SuspendFunction1){}[0] diff --git a/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/ClientSSESession.kt b/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/ClientSSESession.kt index 5464c3fa3a..0510d75993 100644 --- a/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/ClientSSESession.kt +++ b/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/ClientSSESession.kt @@ -76,7 +76,6 @@ public class ClientSSESessionWithDeserialization( delegate: SSESessionWithDeserialization ) : SSESessionWithDeserialization by delegate - /** * Deserializer interface for transforming field `data` of `ServerSentEvent` into desired data object. */ diff --git a/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/SSE.kt b/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/SSE.kt index ce05987c90..2a6a47f3c7 100644 --- a/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/SSE.kt +++ b/ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/sse/SSE.kt @@ -15,7 +15,6 @@ import io.ktor.sse.* import io.ktor.util.* import io.ktor.util.logging.* import io.ktor.util.pipeline.* -import io.ktor.util.reflect.* import io.ktor.utils.io.* import kotlinx.coroutines.flow.* import kotlin.coroutines.* diff --git a/ktor-client/ktor-client-tests/common/test/io/ktor/client/tests/plugins/ServerSentEventsTest.kt b/ktor-client/ktor-client-tests/common/test/io/ktor/client/tests/plugins/ServerSentEventsTest.kt index 0a71b88e88..49aca5bb53 100644 --- a/ktor-client/ktor-client-tests/common/test/io/ktor/client/tests/plugins/ServerSentEventsTest.kt +++ b/ktor-client/ktor-client-tests/common/test/io/ktor/client/tests/plugins/ServerSentEventsTest.kt @@ -476,11 +476,14 @@ class ServerSentEventsTest : ClientLoader(timeoutSeconds = 120) { test { client -> assertFailsWith { - client.sse({ url("$TEST_SERVER/sse/person") }, object : Deserializer { - override fun deserialize(typeInfo: TypeInfo, data: String): Any { - return Data(data) + client.sse( + { url("$TEST_SERVER/sse/person") }, + object : Deserializer { + override fun deserialize(typeInfo: TypeInfo, data: String): Any { + return Data(data) + } } - }) { + ) { incoming.single().apply { val data = deserialize(data) assertEquals("Name 0", data?.name) @@ -500,20 +503,26 @@ class ServerSentEventsTest : ClientLoader(timeoutSeconds = 120) { } test { client -> - client.sse({ url("$TEST_SERVER/sse/person") }, object : Deserializer { - override fun deserialize(typeInfo: TypeInfo, data: String): Any { - return Person1(data) + client.sse( + { url("$TEST_SERVER/sse/person") }, + object : Deserializer { + override fun deserialize(typeInfo: TypeInfo, data: String): Any { + return Person1(data) + } } - }) { + ) { incoming.single().apply { assertEquals("Name 0", deserialize(data)?.name) } } - client.sse({ url("$TEST_SERVER/sse/person") }, deserialize = object : Deserializer { - override fun deserialize(typeInfo: TypeInfo, data: String): Any { - return Person2(data) + client.sse( + { url("$TEST_SERVER/sse/person") }, + deserialize = object : Deserializer { + override fun deserialize(typeInfo: TypeInfo, data: String): Any { + return Person2(data) + } } - }) { + ) { incoming.single().apply { assertEquals("Name 0", deserialize(data)?.middleName) } @@ -534,14 +543,17 @@ class ServerSentEventsTest : ClientLoader(timeoutSeconds = 120) { } test { client -> - client.sse({ - url("$TEST_SERVER/sse/json") - }, deserialize = object : Deserializer { - override fun deserialize(typeInfo: TypeInfo, data: String): Any { - val serializer = Json.serializersModule.serializer(typeInfo.kotlinType!!) - return Json.decodeFromString(serializer, data) ?: Exception() + client.sse( + { + url("$TEST_SERVER/sse/json") + }, + deserialize = object : Deserializer { + override fun deserialize(typeInfo: TypeInfo, data: String): Any { + val serializer = Json.serializersModule.serializer(typeInfo.kotlinType!!) + return Json.decodeFromString(serializer, data) ?: Exception() + } } - }) { + ) { var firstIsCustomer = true incoming.collect { event: ParameterizedServerSentEvent -> if (firstIsCustomer) { diff --git a/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.api b/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.api index 892b550352..d81753d899 100644 --- a/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.api +++ b/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.api @@ -1,10 +1,8 @@ public final class io/ktor/server/sse/RoutingKt { - public static final fun sse (Lio/ktor/server/routing/Route;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V + public static final fun sse (Lio/ktor/server/routing/Route;Lio/ktor/server/sse/Serializer;Lkotlin/jvm/functions/Function2;)V + public static final fun sse (Lio/ktor/server/routing/Route;Ljava/lang/String;Lio/ktor/server/sse/Serializer;Lkotlin/jvm/functions/Function2;)V public static final fun sse (Lio/ktor/server/routing/Route;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)V - public static final fun sse (Lio/ktor/server/routing/Route;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V public static final fun sse (Lio/ktor/server/routing/Route;Lkotlin/jvm/functions/Function2;)V - public static synthetic fun sse$default (Lio/ktor/server/routing/Route;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V - public static synthetic fun sse$default (Lio/ktor/server/routing/Route;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V } public final class io/ktor/server/sse/SSEKt { @@ -12,11 +10,11 @@ public final class io/ktor/server/sse/SSEKt { } public final class io/ktor/server/sse/SSEServerContent : io/ktor/http/content/OutgoingContent$WriteChannelContent { - public fun (Lio/ktor/server/application/ApplicationCall;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V + public fun (Lio/ktor/server/application/ApplicationCall;Lio/ktor/server/sse/Serializer;Lkotlin/jvm/functions/Function2;)V public final fun getCall ()Lio/ktor/server/application/ApplicationCall; public fun getContentType ()Lio/ktor/http/ContentType; public final fun getHandle ()Lkotlin/jvm/functions/Function2; - public final fun getSerialize ()Lkotlin/jvm/functions/Function1; + public final fun getSerialize ()Lio/ktor/server/sse/Serializer; public fun toString ()Ljava/lang/String; public fun writeTo (Lio/ktor/utils/io/ByteWriteChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -42,10 +40,14 @@ public final class io/ktor/server/sse/SSESessionWithDeserialization$DefaultImpls } public abstract interface class io/ktor/server/sse/SSESessionWithSerialization : io/ktor/server/sse/SSESession { - public abstract fun getSerializer ()Lkotlin/jvm/functions/Function1; + public abstract fun getSerializer ()Lio/ktor/server/sse/Serializer; } public final class io/ktor/server/sse/SSESessionWithSerialization$DefaultImpls { public static fun send (Lio/ktor/server/sse/SSESessionWithSerialization;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public abstract interface class io/ktor/server/sse/Serializer { + public abstract fun serialize (Lio/ktor/util/reflect/TypeInfo;Ljava/lang/Object;)Ljava/lang/String; +} + diff --git a/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.klib.api b/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.klib.api index e2aa41cf99..5f72db2354 100644 --- a/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.klib.api +++ b/ktor-server/ktor-server-plugins/ktor-server-sse/api/ktor-server-sse.klib.api @@ -11,17 +11,21 @@ abstract interface io.ktor.server.sse/SSESession : kotlinx.coroutines/CoroutineS abstract fun (): io.ktor.server.application/ApplicationCall // io.ktor.server.sse/SSESession.call.|(){}[0] abstract suspend fun close() // io.ktor.server.sse/SSESession.close|close(){}[0] - abstract suspend fun send(io.ktor.sse/ServerSentEvent) // io.ktor.server.sse/SSESession.send|send(io.ktor.sse.ServerSentEvent){}[0] + abstract suspend fun send(io.ktor.sse/ServerSentEvent) // io.ktor.server.sse/SSESession.send|send(io.ktor.sse.ServerSentEvent){}[0] open suspend fun send(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // io.ktor.server.sse/SSESession.send|send(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] } abstract interface io.ktor.server.sse/SSESessionWithSerialization : io.ktor.server.sse/SSESession { // io.ktor.server.sse/SSESessionWithSerialization|null[0] abstract val serializer // io.ktor.server.sse/SSESessionWithSerialization.serializer|{}serializer[0] - abstract fun (): kotlin/Function1> // io.ktor.server.sse/SSESessionWithSerialization.serializer.|(){}[0] + abstract fun (): io.ktor.server.sse/Serializer // io.ktor.server.sse/SSESessionWithSerialization.serializer.|(){}[0] +} + +abstract interface io.ktor.server.sse/Serializer { // io.ktor.server.sse/Serializer|null[0] + abstract fun serialize(io.ktor.util.reflect/TypeInfo, kotlin/Any): kotlin/String // io.ktor.server.sse/Serializer.serialize|serialize(io.ktor.util.reflect.TypeInfo;kotlin.Any){}[0] } final class <#A: io.ktor.server.sse/SSESession> io.ktor.server.sse/SSEServerContent : io.ktor.http.content/OutgoingContent.WriteChannelContent { // io.ktor.server.sse/SSEServerContent|null[0] - constructor (io.ktor.server.application/ApplicationCall, kotlin/Function1>?, kotlin.coroutines/SuspendFunction1<#A, kotlin/Unit>) // io.ktor.server.sse/SSEServerContent.|(io.ktor.server.application.ApplicationCall;kotlin.Function1>?;kotlin.coroutines.SuspendFunction1<1:0,kotlin.Unit>){}[0] + constructor (io.ktor.server.application/ApplicationCall, io.ktor.server.sse/Serializer?, kotlin.coroutines/SuspendFunction1<#A, kotlin/Unit>) // io.ktor.server.sse/SSEServerContent.|(io.ktor.server.application.ApplicationCall;io.ktor.server.sse.Serializer?;kotlin.coroutines.SuspendFunction1<1:0,kotlin.Unit>){}[0] final val call // io.ktor.server.sse/SSEServerContent.call|{}call[0] final fun (): io.ktor.server.application/ApplicationCall // io.ktor.server.sse/SSEServerContent.call.|(){}[0] @@ -30,7 +34,7 @@ final class <#A: io.ktor.server.sse/SSESession> io.ktor.server.sse/SSEServerCont final val handle // io.ktor.server.sse/SSEServerContent.handle|{}handle[0] final fun (): kotlin.coroutines/SuspendFunction1<#A, kotlin/Unit> // io.ktor.server.sse/SSEServerContent.handle.|(){}[0] final val serialize // io.ktor.server.sse/SSEServerContent.serialize|{}serialize[0] - final fun (): kotlin/Function1>? // io.ktor.server.sse/SSEServerContent.serialize.|(){}[0] + final fun (): io.ktor.server.sse/Serializer? // io.ktor.server.sse/SSEServerContent.serialize.|(){}[0] final fun toString(): kotlin/String // io.ktor.server.sse/SSEServerContent.toString|toString(){}[0] final suspend fun writeTo(io.ktor.utils.io/ByteWriteChannel) // io.ktor.server.sse/SSEServerContent.writeTo|writeTo(io.ktor.utils.io.ByteWriteChannel){}[0] @@ -39,10 +43,10 @@ final class <#A: io.ktor.server.sse/SSESession> io.ktor.server.sse/SSEServerCont final val io.ktor.server.sse/SSE // io.ktor.server.sse/SSE|{}SSE[0] final fun (): io.ktor.server.application/ApplicationPlugin // io.ktor.server.sse/SSE.|(){}[0] +final fun (io.ktor.server.routing/Route).io.ktor.server.sse/sse(io.ktor.server.sse/Serializer, kotlin.coroutines/SuspendFunction1) // io.ktor.server.sse/sse|sse@io.ktor.server.routing.Route(io.ktor.server.sse.Serializer;kotlin.coroutines.SuspendFunction1){}[0] final fun (io.ktor.server.routing/Route).io.ktor.server.sse/sse(kotlin.coroutines/SuspendFunction1) // io.ktor.server.sse/sse|sse@io.ktor.server.routing.Route(kotlin.coroutines.SuspendFunction1){}[0] -final fun (io.ktor.server.routing/Route).io.ktor.server.sse/sse(kotlin/Function1> = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.server.sse/sse|sse@io.ktor.server.routing.Route(kotlin.Function1>;kotlin.coroutines.SuspendFunction1){}[0] +final fun (io.ktor.server.routing/Route).io.ktor.server.sse/sse(kotlin/String, io.ktor.server.sse/Serializer, kotlin.coroutines/SuspendFunction1) // io.ktor.server.sse/sse|sse@io.ktor.server.routing.Route(kotlin.String;io.ktor.server.sse.Serializer;kotlin.coroutines.SuspendFunction1){}[0] final fun (io.ktor.server.routing/Route).io.ktor.server.sse/sse(kotlin/String, kotlin.coroutines/SuspendFunction1) // io.ktor.server.sse/sse|sse@io.ktor.server.routing.Route(kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] -final fun (io.ktor.server.routing/Route).io.ktor.server.sse/sse(kotlin/String, kotlin/Function1> = ..., kotlin.coroutines/SuspendFunction1) // io.ktor.server.sse/sse|sse@io.ktor.server.routing.Route(kotlin.String;kotlin.Function1>;kotlin.coroutines.SuspendFunction1){}[0] final suspend inline fun <#A: reified kotlin/Any> (io.ktor.server.sse/SSESessionWithSerialization).io.ktor.server.sse/sendSerialized(#A) // io.ktor.server.sse/sendSerialized|sendSerialized@io.ktor.server.sse.SSESessionWithSerialization(0:0){0§}[0] final suspend inline fun <#A: reified kotlin/Any> (io.ktor.server.sse/SSESessionWithSerialization).io.ktor.server.sse/sendSerialized(#A? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // io.ktor.server.sse/sendSerialized|sendSerialized@io.ktor.server.sse.SSESessionWithSerialization(0:0?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){0§}[0] -final suspend inline fun <#A: reified kotlin/Any> (io.ktor.server.sse/SSESessionWithSerialization).io.ktor.server.sse/sendSerialized(io.ktor.sse/ServerSentEvent<#A>) // io.ktor.server.sse/sendSerialized|sendSerialized@io.ktor.server.sse.SSESessionWithSerialization(io.ktor.sse.ServerSentEvent<0:0>){0§}[0] +final suspend inline fun <#A: reified kotlin/Any> (io.ktor.server.sse/SSESessionWithSerialization).io.ktor.server.sse/sendSerialized(io.ktor.sse/ParameterizedServerSentEvent<#A>) // io.ktor.server.sse/sendSerialized|sendSerialized@io.ktor.server.sse.SSESessionWithSerialization(io.ktor.sse.ParameterizedServerSentEvent<0:0>){0§}[0] diff --git a/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/Routing.kt b/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/Routing.kt index a395e362ab..acdc42e4d2 100644 --- a/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/Routing.kt +++ b/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/Routing.kt @@ -7,7 +7,6 @@ package io.ktor.server.sse import io.ktor.http.* import io.ktor.server.response.* import io.ktor.server.routing.* -import io.ktor.util.reflect.* /** * Adds a route to handle Server-Sent Events (SSE) at the specified [path] using the provided [handler]. diff --git a/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSEServerContent.kt b/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSEServerContent.kt index ef2fff124d..1250202597 100644 --- a/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSEServerContent.kt +++ b/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSEServerContent.kt @@ -8,7 +8,6 @@ import io.ktor.http.* import io.ktor.http.content.* import io.ktor.server.application.* import io.ktor.server.request.* -import io.ktor.util.reflect.* import io.ktor.utils.io.* import kotlinx.coroutines.* diff --git a/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSESession.kt b/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSESession.kt index 8f774834a5..e0358872ce 100644 --- a/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSESession.kt +++ b/ktor-server/ktor-server-plugins/ktor-server-sse/common/src/io/ktor/server/sse/SSESession.kt @@ -101,7 +101,6 @@ public suspend inline fun SSESessionWithSerialization.sendSeri send(ServerSentEvent(serializer.serialize(typeInfo(), data))) } - /** * Serializer interface for transforming data object into field `data` of `ServerSentEvent`. */ diff --git a/ktor-server/ktor-server-plugins/ktor-server-sse/common/test/io/ktor/server/sse/ServerSentEventsTest.kt b/ktor-server/ktor-server-plugins/ktor-server-sse/common/test/io/ktor/server/sse/ServerSentEventsTest.kt index d0b55630f5..419ac99c59 100644 --- a/ktor-server/ktor-server-plugins/ktor-server-sse/common/test/io/ktor/server/sse/ServerSentEventsTest.kt +++ b/ktor-server/ktor-server-plugins/ktor-server-sse/common/test/io/ktor/server/sse/ServerSentEventsTest.kt @@ -202,19 +202,22 @@ class ServerSentEventsTest { fun testSerializerInRoute() = testApplication { install(SSE) routing { - sse("/person", object : Serializer { - override fun serialize(typeInfo: TypeInfo, data: Any): String { - return when (typeInfo.type) { - Person1::class -> { - "Age ${(data as Person1).age}" - } - - else -> { - data.toString() + sse( + "/person", + object : Serializer { + override fun serialize(typeInfo: TypeInfo, data: Any): String { + return when (typeInfo.type) { + Person1::class -> { + "Age ${(data as Person1).age}" + } + + else -> { + data.toString() + } } } } - }) { + ) { repeat(10) { sendSerialized(Person1(it)) } @@ -250,8 +253,7 @@ class ServerSentEventsTest { } } } - }) - { + }) { sendSerialized(Person1(22)) sendSerialized(Person2(123456)) } @@ -281,12 +283,15 @@ class ServerSentEventsTest { fun testJsonDeserializer() = testApplication { install(SSE) routing { - sse("/json", object : Serializer { - override fun serialize(typeInfo: TypeInfo, data: Any): String { - val serializer = Json.serializersModule.serializer(typeInfo.kotlinType!!) - return Json.encodeToString(serializer, data) + sse( + "/json", + object : Serializer { + override fun serialize(typeInfo: TypeInfo, data: Any): String { + val serializer = Json.serializersModule.serializer(typeInfo.kotlinType!!) + return Json.encodeToString(serializer, data) + } } - }) { + ) { sendSerialized(Customer(0, "Jet", "Brains")) sendSerialized(Product(0, listOf(100, 200))) } diff --git a/ktor-shared/ktor-sse/api/ktor-sse.api b/ktor-shared/ktor-sse/api/ktor-sse.api index 3cec40fe47..e1fb8fbf30 100644 --- a/ktor-shared/ktor-sse/api/ktor-sse.api +++ b/ktor-shared/ktor-sse/api/ktor-sse.api @@ -1,4 +1,4 @@ -public final class io/ktor/sse/ServerSentEvent { +public final class io/ktor/sse/ParameterizedServerSentEvent { public fun ()V public fun (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)V public synthetic fun (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -7,8 +7,8 @@ public final class io/ktor/sse/ServerSentEvent { public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/Long; public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Lio/ktor/sse/ServerSentEvent; - public static synthetic fun copy$default (Lio/ktor/sse/ServerSentEvent;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Lio/ktor/sse/ServerSentEvent; + public final fun copy (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Lio/ktor/sse/ParameterizedServerSentEvent; + public static synthetic fun copy$default (Lio/ktor/sse/ParameterizedServerSentEvent;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Lio/ktor/sse/ParameterizedServerSentEvent; public fun equals (Ljava/lang/Object;)Z public final fun getComments ()Ljava/lang/String; public final fun getData ()Ljava/lang/Object; @@ -20,6 +20,27 @@ public final class io/ktor/sse/ServerSentEvent { public final fun toString (Lkotlin/jvm/functions/Function1;)Ljava/lang/String; } +public final class io/ktor/sse/ServerSentEvent { + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Lio/ktor/sse/ServerSentEvent; + public static synthetic fun copy$default (Lio/ktor/sse/ServerSentEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Lio/ktor/sse/ServerSentEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getComments ()Ljava/lang/String; + public final fun getData ()Ljava/lang/String; + public final fun getEvent ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getRetry ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class io/ktor/sse/ServerSentEventKt { public static final field COLON Ljava/lang/String; public static final field END_OF_LINE Ljava/lang/String; diff --git a/ktor-shared/ktor-sse/api/ktor-sse.klib.api b/ktor-shared/ktor-sse/api/ktor-sse.klib.api index 9d4118ddef..ec512c518d 100644 --- a/ktor-shared/ktor-sse/api/ktor-sse.klib.api +++ b/ktor-shared/ktor-sse/api/ktor-sse.klib.api @@ -6,13 +6,39 @@ // - Show declarations: true // Library unique name: -final class <#A: kotlin/Any?> io.ktor.sse/ServerSentEvent { // io.ktor.sse/ServerSentEvent|null[0] - constructor (#A? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // io.ktor.sse/ServerSentEvent.|(1:0?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] +final class <#A: kotlin/Any?> io.ktor.sse/ParameterizedServerSentEvent { // io.ktor.sse/ParameterizedServerSentEvent|null[0] + constructor (#A? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // io.ktor.sse/ParameterizedServerSentEvent.|(1:0?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + + final val comments // io.ktor.sse/ParameterizedServerSentEvent.comments|{}comments[0] + final fun (): kotlin/String? // io.ktor.sse/ParameterizedServerSentEvent.comments.|(){}[0] + final val data // io.ktor.sse/ParameterizedServerSentEvent.data|{}data[0] + final fun (): #A? // io.ktor.sse/ParameterizedServerSentEvent.data.|(){}[0] + final val event // io.ktor.sse/ParameterizedServerSentEvent.event|{}event[0] + final fun (): kotlin/String? // io.ktor.sse/ParameterizedServerSentEvent.event.|(){}[0] + final val id // io.ktor.sse/ParameterizedServerSentEvent.id|{}id[0] + final fun (): kotlin/String? // io.ktor.sse/ParameterizedServerSentEvent.id.|(){}[0] + final val retry // io.ktor.sse/ParameterizedServerSentEvent.retry|{}retry[0] + final fun (): kotlin/Long? // io.ktor.sse/ParameterizedServerSentEvent.retry.|(){}[0] + + final fun component1(): #A? // io.ktor.sse/ParameterizedServerSentEvent.component1|component1(){}[0] + final fun component2(): kotlin/String? // io.ktor.sse/ParameterizedServerSentEvent.component2|component2(){}[0] + final fun component3(): kotlin/String? // io.ktor.sse/ParameterizedServerSentEvent.component3|component3(){}[0] + final fun component4(): kotlin/Long? // io.ktor.sse/ParameterizedServerSentEvent.component4|component4(){}[0] + final fun component5(): kotlin/String? // io.ktor.sse/ParameterizedServerSentEvent.component5|component5(){}[0] + final fun copy(#A? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): io.ktor.sse/ParameterizedServerSentEvent<#A> // io.ktor.sse/ParameterizedServerSentEvent.copy|copy(1:0?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // io.ktor.sse/ParameterizedServerSentEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // io.ktor.sse/ParameterizedServerSentEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // io.ktor.sse/ParameterizedServerSentEvent.toString|toString(){}[0] + final fun toString(kotlin/Function1<#A, kotlin/String>): kotlin/String // io.ktor.sse/ParameterizedServerSentEvent.toString|toString(kotlin.Function1<1:0,kotlin.String>){}[0] +} + +final class io.ktor.sse/ServerSentEvent { // io.ktor.sse/ServerSentEvent|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // io.ktor.sse/ServerSentEvent.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] final val comments // io.ktor.sse/ServerSentEvent.comments|{}comments[0] final fun (): kotlin/String? // io.ktor.sse/ServerSentEvent.comments.|(){}[0] final val data // io.ktor.sse/ServerSentEvent.data|{}data[0] - final fun (): #A? // io.ktor.sse/ServerSentEvent.data.|(){}[0] + final fun (): kotlin/String? // io.ktor.sse/ServerSentEvent.data.|(){}[0] final val event // io.ktor.sse/ServerSentEvent.event|{}event[0] final fun (): kotlin/String? // io.ktor.sse/ServerSentEvent.event.|(){}[0] final val id // io.ktor.sse/ServerSentEvent.id|{}id[0] @@ -20,16 +46,15 @@ final class <#A: kotlin/Any?> io.ktor.sse/ServerSentEvent { // io.ktor.sse/Serve final val retry // io.ktor.sse/ServerSentEvent.retry|{}retry[0] final fun (): kotlin/Long? // io.ktor.sse/ServerSentEvent.retry.|(){}[0] - final fun component1(): #A? // io.ktor.sse/ServerSentEvent.component1|component1(){}[0] + final fun component1(): kotlin/String? // io.ktor.sse/ServerSentEvent.component1|component1(){}[0] final fun component2(): kotlin/String? // io.ktor.sse/ServerSentEvent.component2|component2(){}[0] final fun component3(): kotlin/String? // io.ktor.sse/ServerSentEvent.component3|component3(){}[0] final fun component4(): kotlin/Long? // io.ktor.sse/ServerSentEvent.component4|component4(){}[0] final fun component5(): kotlin/String? // io.ktor.sse/ServerSentEvent.component5|component5(){}[0] - final fun copy(#A? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): io.ktor.sse/ServerSentEvent<#A> // io.ktor.sse/ServerSentEvent.copy|copy(1:0?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): io.ktor.sse/ServerSentEvent // io.ktor.sse/ServerSentEvent.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] final fun equals(kotlin/Any?): kotlin/Boolean // io.ktor.sse/ServerSentEvent.equals|equals(kotlin.Any?){}[0] final fun hashCode(): kotlin/Int // io.ktor.sse/ServerSentEvent.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // io.ktor.sse/ServerSentEvent.toString|toString(){}[0] - final fun toString(kotlin/Function1<#A, kotlin/String>): kotlin/String // io.ktor.sse/ServerSentEvent.toString|toString(kotlin.Function1<1:0,kotlin.String>){}[0] } final const val io.ktor.sse/COLON // io.ktor.sse/COLON|{}COLON[0]