diff --git a/.gradle/9.5.1/checksums/checksums.lock b/.gradle/9.5.1/checksums/checksums.lock index bc7c017..473140b 100644 Binary files a/.gradle/9.5.1/checksums/checksums.lock and b/.gradle/9.5.1/checksums/checksums.lock differ diff --git a/.gradle/9.5.1/checksums/md5-checksums.bin b/.gradle/9.5.1/checksums/md5-checksums.bin index b13b569..86ef28e 100644 Binary files a/.gradle/9.5.1/checksums/md5-checksums.bin and b/.gradle/9.5.1/checksums/md5-checksums.bin differ diff --git a/.gradle/9.5.1/checksums/sha1-checksums.bin b/.gradle/9.5.1/checksums/sha1-checksums.bin index 9863cc2..cf39533 100644 Binary files a/.gradle/9.5.1/checksums/sha1-checksums.bin and b/.gradle/9.5.1/checksums/sha1-checksums.bin differ diff --git a/.gradle/9.5.1/executionHistory/executionHistory.bin b/.gradle/9.5.1/executionHistory/executionHistory.bin index c9e6c59..7ab1d4e 100644 Binary files a/.gradle/9.5.1/executionHistory/executionHistory.bin and b/.gradle/9.5.1/executionHistory/executionHistory.bin differ diff --git a/.gradle/9.5.1/executionHistory/executionHistory.lock b/.gradle/9.5.1/executionHistory/executionHistory.lock index 2e9dfd0..daf77ef 100644 Binary files a/.gradle/9.5.1/executionHistory/executionHistory.lock and b/.gradle/9.5.1/executionHistory/executionHistory.lock differ diff --git a/.gradle/9.5.1/fileHashes/fileHashes.bin b/.gradle/9.5.1/fileHashes/fileHashes.bin index 800d512..1bce2f6 100644 Binary files a/.gradle/9.5.1/fileHashes/fileHashes.bin and b/.gradle/9.5.1/fileHashes/fileHashes.bin differ diff --git a/.gradle/9.5.1/fileHashes/fileHashes.lock b/.gradle/9.5.1/fileHashes/fileHashes.lock index 4153d38..f47142b 100644 Binary files a/.gradle/9.5.1/fileHashes/fileHashes.lock and b/.gradle/9.5.1/fileHashes/fileHashes.lock differ diff --git a/.gradle/9.5.1/fileHashes/resourceHashesCache.bin b/.gradle/9.5.1/fileHashes/resourceHashesCache.bin index f56fd0d..52b9076 100644 Binary files a/.gradle/9.5.1/fileHashes/resourceHashesCache.bin and b/.gradle/9.5.1/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/9.5.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock b/.gradle/9.5.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock index 4182776..fb7c4ac 100644 Binary files a/.gradle/9.5.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock and b/.gradle/9.5.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 6477dfb..0aa4edd 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index ed0ea2b..c0cdc55 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 1fe2894..2165594 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..89eddd4 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Kidio_backend \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..1bec35e --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index c424bcd..2906b56 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,12 +19,18 @@ dependencies { implementation(ktorLibs.server.config.yaml) implementation(ktorLibs.server.core) implementation(ktorLibs.server.netty) + + // JWT Authentication (NEU) + implementation("io.ktor:ktor-server-auth") + implementation("io.ktor:ktor-server-auth-jwt") + implementation(libs.logback.classic) // JSON-Unterstützung und Serialization implementation("io.ktor:ktor-server-content-negotiation-jvm") implementation("io.ktor:ktor-serialization-kotlinx-json-jvm") -//postgres + + // postgres implementation("org.postgresql:postgresql:42.7.3") implementation("org.jetbrains.exposed:exposed-core:0.50.0") implementation("org.jetbrains.exposed:exposed-dao:0.50.0") @@ -32,7 +38,8 @@ dependencies { testImplementation(kotlin("test")) testImplementation(ktorLibs.server.testHost) - //redis + // redis implementation("redis.clients:jedis:5.1.2") + implementation("org.jetbrains.exposed:exposed-java-time:0.50.0") } \ No newline at end of file diff --git a/build/classes/kotlin/main/META-INF/com.oliver.kidio.backend_Kidio_backend.kotlin_module b/build/classes/kotlin/main/META-INF/com.oliver.kidio.backend_Kidio_backend.kotlin_module index 734c5e9..7b8ba29 100644 Binary files a/build/classes/kotlin/main/META-INF/com.oliver.kidio.backend_Kidio_backend.kotlin_module and b/build/classes/kotlin/main/META-INF/com.oliver.kidio.backend_Kidio_backend.kotlin_module differ diff --git a/build/classes/kotlin/main/MainKt.class b/build/classes/kotlin/main/MainKt.class index 2d8f550..231a512 100644 Binary files a/build/classes/kotlin/main/MainKt.class and b/build/classes/kotlin/main/MainKt.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest$$serializer.class b/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest$$serializer.class new file mode 100644 index 0000000..663da32 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest$$serializer.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest$Companion.class b/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest$Companion.class new file mode 100644 index 0000000..96b887a Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest$Companion.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest.class b/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest.class new file mode 100644 index 0000000..4eec9b1 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/LoginRequest.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$$serializer.class b/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$$serializer.class index 3ee8a6b..a4a79cb 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$$serializer.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$$serializer.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$Companion.class b/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$Companion.class index d80b3f5..81fcb23 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$Companion.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse$Companion.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse.class b/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse.class index 6fbc78c..ddcf59a 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/SyncResponse.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/User$$serializer.class b/build/classes/kotlin/main/com/oliver/kidio/backend/User$$serializer.class new file mode 100644 index 0000000..e84afb7 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/User$$serializer.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/User$Companion.class b/build/classes/kotlin/main/com/oliver/kidio/backend/User$Companion.class new file mode 100644 index 0000000..18d800c Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/User$Companion.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/User.class b/build/classes/kotlin/main/com/oliver/kidio/backend/User.class new file mode 100644 index 0000000..f289119 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/User.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory$dbQuery$2.class b/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory$dbQuery$2.class index 928ba81..c9c56ec 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory$dbQuery$2.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory$dbQuery$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory.class b/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory.class index 944c89a..35df8a1 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/DatabaseFactory.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/UserTable.class b/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/UserTable.class new file mode 100644 index 0000000..687b202 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/data/database/UserTable.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$findByUsername$2.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$findByUsername$2.class new file mode 100644 index 0000000..26ac5fb Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$findByUsername$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getAllTasks$2.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getAllTasks$2.class index 19a7849..9ab60a1 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getAllTasks$2.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getAllTasks$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$1.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$1.class index 149f4e4..1675e0e 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$1.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$1.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$dbSeconds$1.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$dbSeconds$1.class index a0f4558..45a4628 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$dbSeconds$1.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getScreentime$dbSeconds$1.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getTaskAnswerAndReward$2.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getTaskAnswerAndReward$2.class index e8fbaf3..9c04881 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getTaskAnswerAndReward$2.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$getTaskAnswerAndReward$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$updateScreentime$2.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$updateScreentime$2.class index 3041b15..12ca149 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$updateScreentime$2.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository$updateScreentime$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository.class index c445bb8..bed348a 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/ExposedKidioRepository.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/InMemoryKidioRepository.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/InMemoryKidioRepository.class index 461f398..8a85ab6 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/InMemoryKidioRepository.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/InMemoryKidioRepository.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/KidioRepository.class b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/KidioRepository.class index e85d2e6..65303aa 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/KidioRepository.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/domain/repository/KidioRepository.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$1.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$1.class index bcc2cf1..0d25f05 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$1.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$1.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$2.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$2.class index 369889a..93ba6c9 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$2.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$1.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$1.class new file mode 100644 index 0000000..6212445 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$1.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$2.class similarity index 75% rename from build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3.class rename to build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$2.class index cc745c9..a994284 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$2.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$4.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$3.class similarity index 71% rename from build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$4.class rename to build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$3.class index ca551d5..4c27e3b 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$4.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt$configureRouting$1$3$3.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt.class index 632979e..3685ba2 100644 Binary files a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt.class and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/RoutingKt.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/SecurityKt$configureSecurity$1$1$1.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/SecurityKt$configureSecurity$1$1$1.class new file mode 100644 index 0000000..4c8cb9f Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/SecurityKt$configureSecurity$1$1$1.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/SecurityKt.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/SecurityKt.class new file mode 100644 index 0000000..0c96321 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/SecurityKt.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/UserPrincipal.class b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/UserPrincipal.class new file mode 100644 index 0000000..11835f5 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/plugins/UserPrincipal.class differ diff --git a/build/classes/kotlin/main/com/oliver/kidio/backend/security/JwtService.class b/build/classes/kotlin/main/com/oliver/kidio/backend/security/JwtService.class new file mode 100644 index 0000000..d6de288 Binary files /dev/null and b/build/classes/kotlin/main/com/oliver/kidio/backend/security/JwtService.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1$1.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1$1.class index 81738e2..ecebcfb 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1$1.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1$1.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1.class index be7dbcc..9082b58 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test health endpoint$1.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1$1.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1$1.class index d200bae..1b62701 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1$1.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1$1.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1.class index c104b3a..2792588 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test screentime sync$1.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1$1.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1$1.class index cd6cbc5..2a498f6 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1$1.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1$1.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1.class index 92dba32..1f420fc 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest$test tasks endpoint and verify$1.class differ diff --git a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest.class b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest.class index bd5cbc0..10b540c 100644 Binary files a/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest.class and b/build/classes/kotlin/test/com/oliver/kidio/backend/ServerTest.class differ diff --git a/build/distributions/Kidio_backend-1.0.0-SNAPSHOT.tar b/build/distributions/Kidio_backend-1.0.0-SNAPSHOT.tar new file mode 100644 index 0000000..e0e0311 Binary files /dev/null and b/build/distributions/Kidio_backend-1.0.0-SNAPSHOT.tar differ diff --git a/build/distributions/Kidio_backend-1.0.0-SNAPSHOT.zip b/build/distributions/Kidio_backend-1.0.0-SNAPSHOT.zip new file mode 100644 index 0000000..e74214f Binary files /dev/null and b/build/distributions/Kidio_backend-1.0.0-SNAPSHOT.zip differ diff --git a/build/distributions/Kidio_backend-shadow-1.0.0-SNAPSHOT.tar b/build/distributions/Kidio_backend-shadow-1.0.0-SNAPSHOT.tar new file mode 100644 index 0000000..9c320d1 Binary files /dev/null and b/build/distributions/Kidio_backend-shadow-1.0.0-SNAPSHOT.tar differ diff --git a/build/distributions/Kidio_backend-shadow-1.0.0-SNAPSHOT.zip b/build/distributions/Kidio_backend-shadow-1.0.0-SNAPSHOT.zip new file mode 100644 index 0000000..25150d1 Binary files /dev/null and b/build/distributions/Kidio_backend-shadow-1.0.0-SNAPSHOT.zip differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab index 9c1a9a9..8aad32b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at index 886e38e..5875372 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab index 9c1a9a9..8aad32b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at index 886e38e..5875372 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab index 89be4b2..29b6b18 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream index a129b12..5b8e223 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len index ed09aa4..77a10ed 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at index 6cc944f..44c3b89 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i index 012909e..2b1ba42 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab index b46ebd7..35d777b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream index daadb62..69c811b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len index 409f6fc..bffcf07 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len index b31f54b..3085af4 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at index 79e9c0b..9df9802 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i index 2ce7054..5b4ab46 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab index daaa724..0d0ca8b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream index daadb62..69c811b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len index 409f6fc..bffcf07 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len index b31f54b..3085af4 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at index ed39afa..2c48fc8 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i index 2ce7054..5b4ab46 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab index ac0f723..1a8a1e8 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream index c2c282b..d8358de 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len index e75dc27..b492c4d 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len index 31ed51e..d8e0f3d 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at index 28b1107..2f334ca 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i index 17e3def..072d480 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab index 3b063e8..59af63a 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream index 42425c0..58eba4c 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len index 468508e..4a3c61e 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len index 93a595b..a9f80ae 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at index 41f26f4..33c7d6c 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i index 9370d4b..eb55cac 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab index d153545..ce05367 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream index 2a504c1..60a3d3d 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len index f48f129..ccd46c1 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len index 213dab4..b8872cd 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values deleted file mode 100644 index 64c36bb..0000000 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values and /dev/null differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at index 37b85cc..a6c305f 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s deleted file mode 100644 index f012697..0000000 --- a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +++ /dev/null @@ -1 +0,0 @@ -ÉHöHÃG \ No newline at end of file diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i index ca7f583..1c5e4f7 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab index d46ba2d..f4653ae 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream index a129b12..5b8e223 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len index ed09aa4..77a10ed 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at index 5b1e95c..dc7531e 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i index 012909e..2b1ba42 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab index 37326c9..eeb5c1a 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream index cac4596..1d8ebda 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len index 8af03de..fc03189 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len index a9f80ae..93a595b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at index 3f65078..24a0a8a 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i index f70120a..61538a2 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab index 65d4c8c..8b75964 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream index f6810f7..7a44cfc 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len index edeb18b..f1e2997 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len index eb0b8a0..6f677df 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at index c6027a5..210d9c3 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i index 2849214..a40fb69 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab index e90afe8..f2c67d0 100644 --- a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab +++ b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab @@ -1,2 +1,2 @@ -20 +8 0 \ No newline at end of file diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab index 17390ef..c8d07df 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream index e02d990..5b8e223 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len index ed09aa4..77a10ed 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at index 29acd8d..6a3671f 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i index 21e6c42..2b1ba42 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab index fae34cc..ebcd8e2 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream index 173226a..ce37c13 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len index c2e8349..d9e6aa6 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len index 8fe89d8..fa606b6 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at index ea625f0..17cef85 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i index 241ea8a..37f0862 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab index a3294c7..061d389 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream index 6e83f92..8ec1293 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len index 761e199..0eb9580 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len index 585cd66..4869a43 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at index 0343862..e94a229 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i index b8107e1..8d96c70 100644 Binary files a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ diff --git a/build/kotlin/compileKotlin/cacheable/last-build.bin b/build/kotlin/compileKotlin/cacheable/last-build.bin index c885ebb..464a82b 100644 Binary files a/build/kotlin/compileKotlin/cacheable/last-build.bin and b/build/kotlin/compileKotlin/cacheable/last-build.bin differ diff --git a/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin index 6f6ae3a..2120c35 100644 Binary files a/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin and b/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab index 3578a55..8aad32b 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at index 633f193..5875372 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab index 3578a55..8aad32b 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at index 633f193..5875372 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab index e5c2a6b..bdf584a 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at index e3bdcf6..415c12a 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab index f1bfb0a..bdf584a 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at index fc0e221..53b2d29 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab index 4aa297e..bdf584a 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at index fedce15..d66efe0 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab index 32aec6f..1eecde4 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream index 3465908..e1e0062 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len index 466716a..7b79156 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len index fa606b6..817b326 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at index b43bb6c..5a34f60 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i index 73c4bf7..058bc8c 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab index 0c69b05..d566562 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at index ac4d82c..5d79ce9 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab index 50015f3..bdf584a 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at index dec83c4..e9bb928 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/counters.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/counters.tab index 2ceb12b..166c057 100644 --- a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/counters.tab +++ b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/counters.tab @@ -1,2 +1,2 @@ -2 +1 0 \ No newline at end of file diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab index 5966749..bdf584a 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at index 7d30a43..5875372 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab index d51061d..8aad32b 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream index 100d205..08e7df1 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len index ccfcbf4..b7da01d 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len index 01bdaa1..2a17e6e 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at index ee7b9a3..2f5e659 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i deleted file mode 100644 index f768a77..0000000 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i and /dev/null differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len index 131e265..1b1cb4d 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab index 7a56877..5aaca73 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream index f3a76d9..d2e35e6 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len index 168edd0..1c7f255 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.len index 9d3828a..7fbeb33 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.len and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at index 6424862..cf5715f 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ diff --git a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab_i index f27ab67..8f94f94 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab_i and b/build/kotlin/compileTestKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ diff --git a/build/kotlin/compileTestKotlin/cacheable/last-build.bin b/build/kotlin/compileTestKotlin/cacheable/last-build.bin index 13724a7..17441ea 100644 Binary files a/build/kotlin/compileTestKotlin/cacheable/last-build.bin and b/build/kotlin/compileTestKotlin/cacheable/last-build.bin differ diff --git a/build/kotlin/compileTestKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/build/kotlin/compileTestKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin index 2553e43..d379c11 100644 Binary files a/build/kotlin/compileTestKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin and b/build/kotlin/compileTestKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ diff --git a/build/libs/Kidio_backend-1.0.0-SNAPSHOT.jar b/build/libs/Kidio_backend-1.0.0-SNAPSHOT.jar index fe75680..ad39b41 100644 Binary files a/build/libs/Kidio_backend-1.0.0-SNAPSHOT.jar and b/build/libs/Kidio_backend-1.0.0-SNAPSHOT.jar differ diff --git a/build/libs/Kidio_backend-all.jar b/build/libs/Kidio_backend-all.jar new file mode 100644 index 0000000..ce1ac9a Binary files /dev/null and b/build/libs/Kidio_backend-all.jar differ diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index 0a04b5b..c52eed3 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -653,7 +653,7 @@ code + .copy-button { diff --git a/build/reports/tests/test/8NsLo4ikTC0/RMUSCRWfDUg.html b/build/reports/tests/test/8NsLo4ikTC0/RMUSCRWfDUg.html index f5228e8..465f4ed 100644 --- a/build/reports/tests/test/8NsLo4ikTC0/RMUSCRWfDUg.html +++ b/build/reports/tests/test/8NsLo4ikTC0/RMUSCRWfDUg.html @@ -63,7 +63,7 @@
-
0.320s
+
0.354s

duration

@@ -85,10 +85,10 @@

standard output

-
2026-09-02 22:23:26.448 [DefaultDispatcher-worker-2 @call-context#3] INFO  io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active.
-2026-09-02 22:23:26.466 [DefaultDispatcher-worker-2 @call-context#3] INFO  io.ktor.test - Application started in 0.022 seconds.
-2026-09-02 22:23:26.467 [DefaultDispatcher-worker-3 @coroutine#5] INFO  io.ktor.test - Responding at http://localhost:80
-2026-09-02 22:23:26.467 [DefaultDispatcher-worker-3 @coroutine#5] INFO  io.ktor.test - Responding at https://localhost:443
+
2026-09-04 11:18:29.105 [DefaultDispatcher-worker-2 @call-context#3] INFO  io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active.
+2026-09-04 11:18:29.127 [DefaultDispatcher-worker-2 @call-context#3] INFO  io.ktor.test - Application started in 0.026 seconds.
+2026-09-04 11:18:29.127 [DefaultDispatcher-worker-3 @coroutine#5] INFO  io.ktor.test - Responding at http://localhost:80
+2026-09-04 11:18:29.127 [DefaultDispatcher-worker-3 @coroutine#5] INFO  io.ktor.test - Responding at https://localhost:443
 
@@ -103,7 +103,7 @@
Generated by -Gradle 9.5.1 at 02.09.2026, 22:23:26

+Gradle 9.5.1 at 04.09.2026, 11:18:29

diff --git a/build/reports/tests/test/8NsLo4ikTC0/_9htK0Zm5DI.html b/build/reports/tests/test/8NsLo4ikTC0/_9htK0Zm5DI.html index d357626..4f5571e 100644 --- a/build/reports/tests/test/8NsLo4ikTC0/_9htK0Zm5DI.html +++ b/build/reports/tests/test/8NsLo4ikTC0/_9htK0Zm5DI.html @@ -63,7 +63,7 @@
-
0.007s
+
0.008s

duration

@@ -85,10 +85,10 @@

standard output

-
2026-09-02 22:23:26.526 [DefaultDispatcher-worker-3 @call-context#23] INFO  io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active.
-2026-09-02 22:23:26.526 [DefaultDispatcher-worker-3 @call-context#23] INFO  io.ktor.test - Application started in 0.0 seconds.
-2026-09-02 22:23:26.526 [DefaultDispatcher-worker-5 @coroutine#25] INFO  io.ktor.test - Responding at http://localhost:80
-2026-09-02 22:23:26.526 [DefaultDispatcher-worker-5 @coroutine#25] INFO  io.ktor.test - Responding at https://localhost:443
+
2026-09-04 11:18:29.187 [DefaultDispatcher-worker-7 @call-context#23] INFO  io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active.
+2026-09-04 11:18:29.188 [DefaultDispatcher-worker-7 @call-context#23] INFO  io.ktor.test - Application started in 0.001 seconds.
+2026-09-04 11:18:29.188 [DefaultDispatcher-worker-1 @coroutine#25] INFO  io.ktor.test - Responding at http://localhost:80
+2026-09-04 11:18:29.188 [DefaultDispatcher-worker-1 @coroutine#25] INFO  io.ktor.test - Responding at https://localhost:443
 
@@ -103,7 +103,7 @@
Generated by -Gradle 9.5.1 at 02.09.2026, 22:23:26

+Gradle 9.5.1 at 04.09.2026, 11:18:29

diff --git a/build/reports/tests/test/8NsLo4ikTC0/index.html b/build/reports/tests/test/8NsLo4ikTC0/index.html index 6516b8c..05b0b17 100644 --- a/build/reports/tests/test/8NsLo4ikTC0/index.html +++ b/build/reports/tests/test/8NsLo4ikTC0/index.html @@ -59,7 +59,7 @@
-
0.340s
+
0.373s

duration

@@ -96,7 +96,7 @@ 1 0 0 -0.011s +0.009s 100% @@ -107,7 +107,7 @@ 1 0 0 -0.007s +0.008s 100% @@ -118,7 +118,7 @@ 1 0 0 -0.320s +0.354s 100% @@ -134,7 +134,7 @@ Generated by -Gradle 9.5.1 at 02.09.2026, 22:23:26

+Gradle 9.5.1 at 04.09.2026, 11:18:29

diff --git a/build/reports/tests/test/8NsLo4ikTC0/jeQlZocklF8.html b/build/reports/tests/test/8NsLo4ikTC0/jeQlZocklF8.html index 702ca15..fedc87a 100644 --- a/build/reports/tests/test/8NsLo4ikTC0/jeQlZocklF8.html +++ b/build/reports/tests/test/8NsLo4ikTC0/jeQlZocklF8.html @@ -63,7 +63,7 @@
-
0.011s
+
0.009s

duration

@@ -85,10 +85,10 @@

standard output

-
2026-09-02 22:23:26.533 [DefaultDispatcher-worker-7 @call-context#39] INFO  io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active.
-2026-09-02 22:23:26.534 [DefaultDispatcher-worker-7 @call-context#39] INFO  io.ktor.test - Application started in 0.001 seconds.
-2026-09-02 22:23:26.534 [DefaultDispatcher-worker-3 @coroutine#41] INFO  io.ktor.test - Responding at http://localhost:80
-2026-09-02 22:23:26.534 [DefaultDispatcher-worker-3 @coroutine#41] INFO  io.ktor.test - Responding at https://localhost:443
+
2026-09-04 11:18:29.194 [DefaultDispatcher-worker-5 @call-context#39] INFO  io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active.
+2026-09-04 11:18:29.195 [DefaultDispatcher-worker-5 @call-context#39] INFO  io.ktor.test - Application started in 0.001 seconds.
+2026-09-04 11:18:29.195 [DefaultDispatcher-worker-7 @coroutine#41] INFO  io.ktor.test - Responding at http://localhost:80
+2026-09-04 11:18:29.195 [DefaultDispatcher-worker-7 @coroutine#41] INFO  io.ktor.test - Responding at https://localhost:443
 
@@ -103,7 +103,7 @@
Generated by -Gradle 9.5.1 at 02.09.2026, 22:23:26

+Gradle 9.5.1 at 04.09.2026, 11:18:29

diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index 3544341..feeeb9d 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -56,7 +56,7 @@
-
0.658s
+
0.692s

duration

@@ -93,7 +93,7 @@ 3 0 0 -0.340s +0.373s 100% @@ -109,7 +109,7 @@ Generated by -Gradle 9.5.1 at 02.09.2026, 22:23:26

+Gradle 9.5.1 at 04.09.2026, 11:18:29

diff --git a/build/resources/main/application.yaml b/build/resources/main/application.yaml index 25c97a3..449ee2c 100644 --- a/build/resources/main/application.yaml +++ b/build/resources/main/application.yaml @@ -11,4 +11,4 @@ storage: port: "5432" database: "kidio_db" username: "postgres" - password: "Julian__98" + password: "learning" diff --git a/build/scripts/Kidio_backend b/build/scripts/Kidio_backend new file mode 100755 index 0000000..c0e921c --- /dev/null +++ b/build/scripts/Kidio_backend @@ -0,0 +1,250 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Kidio_backend start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Kidio_backend +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and KIDIO_BACKEND_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}.." > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/lib/Kidio_backend-1.0.0-SNAPSHOT.jar:$APP_HOME/lib/exposed-dao-0.50.0.jar:$APP_HOME/lib/exposed-jdbc-0.50.0.jar:$APP_HOME/lib/exposed-java-time-0.50.0.jar:$APP_HOME/lib/exposed-core-0.50.0.jar:$APP_HOME/lib/ktor-serialization-kotlinx-json-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-content-negotiation-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-config-yaml-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-netty-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-auth-jwt-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-auth-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-sessions-jvm-3.5.2.jar:$APP_HOME/lib/ktor-server-core-jvm-3.5.2.jar:$APP_HOME/lib/kotlin-reflect-2.3.21.jar:$APP_HOME/lib/ktor-serialization-kotlinx-jvm-3.5.2.jar:$APP_HOME/lib/ktor-client-core-jvm-3.5.2.jar:$APP_HOME/lib/ktor-http-cio-jvm-3.5.2.jar:$APP_HOME/lib/ktor-websocket-serialization-jvm-3.5.2.jar:$APP_HOME/lib/ktor-serialization-jvm-3.5.2.jar:$APP_HOME/lib/ktor-websockets-jvm-3.5.2.jar:$APP_HOME/lib/ktor-http-jvm-3.5.2.jar:$APP_HOME/lib/ktor-events-jvm-3.5.2.jar:$APP_HOME/lib/ktor-network-jvm-3.5.2.jar:$APP_HOME/lib/ktor-sse-jvm-3.5.2.jar:$APP_HOME/lib/ktor-utils-jvm-3.5.2.jar:$APP_HOME/lib/kotlinx-coroutines-slf4j-1.11.0.jar:$APP_HOME/lib/ktor-io-jvm-3.5.2.jar:$APP_HOME/lib/kotlinx-coroutines-core-jvm-1.11.0.jar:$APP_HOME/lib/yamlkt-jvm-0.13.0.jar:$APP_HOME/lib/kaml-jvm-0.79.0.jar:$APP_HOME/lib/kotlinx-serialization-core-jvm-1.11.0.jar:$APP_HOME/lib/kotlinx-serialization-json-io-jvm-1.11.0.jar:$APP_HOME/lib/kotlinx-serialization-json-jvm-1.11.0.jar:$APP_HOME/lib/kotlin-stdlib-jdk8-1.8.0.jar:$APP_HOME/lib/kotlin-stdlib-jdk7-1.8.0.jar:$APP_HOME/lib/snakeyaml-engine-kmp-jvm-3.1.1.jar:$APP_HOME/lib/okio-jvm-3.12.0.jar:$APP_HOME/lib/urlencoder-lib-jvm-1.6.0.jar:$APP_HOME/lib/kotlinx-io-core-jvm-0.9.1.jar:$APP_HOME/lib/kotlinx-io-bytestring-jvm-0.9.1.jar:$APP_HOME/lib/kotlin-stdlib-2.4.0.jar:$APP_HOME/lib/logback-classic-1.5.37.jar:$APP_HOME/lib/postgresql-42.7.3.jar:$APP_HOME/lib/jedis-5.1.2.jar:$APP_HOME/lib/annotations-23.0.0.jar:$APP_HOME/lib/logback-core-1.5.37.jar:$APP_HOME/lib/slf4j-api-2.0.18.jar:$APP_HOME/lib/checker-qual-3.42.0.jar:$APP_HOME/lib/commons-pool2-2.12.0.jar:$APP_HOME/lib/json-20231013.jar:$APP_HOME/lib/gson-2.10.1.jar:$APP_HOME/lib/config-1.4.9.jar:$APP_HOME/lib/netty-codec-4.2.16.Final.jar:$APP_HOME/lib/netty-codec-http2-4.2.16.Final.jar:$APP_HOME/lib/alpn-api-1.1.3.v20160715.jar:$APP_HOME/lib/netty-transport-native-kqueue-4.2.16.Final.jar:$APP_HOME/lib/netty-transport-native-epoll-4.2.16.Final.jar:$APP_HOME/lib/java-jwt-4.6.0.jar:$APP_HOME/lib/jwks-rsa-0.24.1.jar:$APP_HOME/lib/netty-codec-http-4.2.16.Final.jar:$APP_HOME/lib/netty-codec-compression-4.2.16.Final.jar:$APP_HOME/lib/netty-codec-protobuf-4.2.16.Final.jar:$APP_HOME/lib/netty-codec-marshalling-4.2.16.Final.jar:$APP_HOME/lib/netty-handler-4.2.16.Final.jar:$APP_HOME/lib/netty-codec-base-4.2.16.Final.jar:$APP_HOME/lib/netty-transport-classes-kqueue-4.2.16.Final.jar:$APP_HOME/lib/netty-transport-classes-epoll-4.2.16.Final.jar:$APP_HOME/lib/netty-transport-native-unix-common-4.2.16.Final.jar:$APP_HOME/lib/netty-transport-4.2.16.Final.jar:$APP_HOME/lib/netty-buffer-4.2.16.Final.jar:$APP_HOME/lib/netty-resolver-4.2.16.Final.jar:$APP_HOME/lib/netty-common-4.2.16.Final.jar:$APP_HOME/lib/jackson-databind-2.22.0.jar:$APP_HOME/lib/jackson-core-2.22.0.jar:$APP_HOME/lib/guava-33.6.0-jre.jar:$APP_HOME/lib/jackson-annotations-2.22.jar:$APP_HOME/lib/failureaccess-1.0.3.jar:$APP_HOME/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:$APP_HOME/lib/jspecify-1.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.47.0.jar:$APP_HOME/lib/j2objc-annotations-3.1.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and KIDIO_BACKEND_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and KIDIO_BACKEND_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + -classpath "$CLASSPATH" \ + io.ktor.server.netty.EngineMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $KIDIO_BACKEND_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/build/scripts/Kidio_backend.bat b/build/scripts/Kidio_backend.bat new file mode 100644 index 0000000..ab0d6ab --- /dev/null +++ b/build/scripts/Kidio_backend.bat @@ -0,0 +1,83 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Kidio_backend startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and KIDIO_BACKEND_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\Kidio_backend-1.0.0-SNAPSHOT.jar;%APP_HOME%\lib\exposed-dao-0.50.0.jar;%APP_HOME%\lib\exposed-jdbc-0.50.0.jar;%APP_HOME%\lib\exposed-java-time-0.50.0.jar;%APP_HOME%\lib\exposed-core-0.50.0.jar;%APP_HOME%\lib\ktor-serialization-kotlinx-json-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-content-negotiation-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-config-yaml-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-netty-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-auth-jwt-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-auth-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-sessions-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-server-core-jvm-3.5.2.jar;%APP_HOME%\lib\kotlin-reflect-2.3.21.jar;%APP_HOME%\lib\ktor-serialization-kotlinx-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-client-core-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-http-cio-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-websocket-serialization-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-serialization-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-websockets-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-http-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-events-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-network-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-sse-jvm-3.5.2.jar;%APP_HOME%\lib\ktor-utils-jvm-3.5.2.jar;%APP_HOME%\lib\kotlinx-coroutines-slf4j-1.11.0.jar;%APP_HOME%\lib\ktor-io-jvm-3.5.2.jar;%APP_HOME%\lib\kotlinx-coroutines-core-jvm-1.11.0.jar;%APP_HOME%\lib\yamlkt-jvm-0.13.0.jar;%APP_HOME%\lib\kaml-jvm-0.79.0.jar;%APP_HOME%\lib\kotlinx-serialization-core-jvm-1.11.0.jar;%APP_HOME%\lib\kotlinx-serialization-json-io-jvm-1.11.0.jar;%APP_HOME%\lib\kotlinx-serialization-json-jvm-1.11.0.jar;%APP_HOME%\lib\kotlin-stdlib-jdk8-1.8.0.jar;%APP_HOME%\lib\kotlin-stdlib-jdk7-1.8.0.jar;%APP_HOME%\lib\snakeyaml-engine-kmp-jvm-3.1.1.jar;%APP_HOME%\lib\okio-jvm-3.12.0.jar;%APP_HOME%\lib\urlencoder-lib-jvm-1.6.0.jar;%APP_HOME%\lib\kotlinx-io-core-jvm-0.9.1.jar;%APP_HOME%\lib\kotlinx-io-bytestring-jvm-0.9.1.jar;%APP_HOME%\lib\kotlin-stdlib-2.4.0.jar;%APP_HOME%\lib\logback-classic-1.5.37.jar;%APP_HOME%\lib\postgresql-42.7.3.jar;%APP_HOME%\lib\jedis-5.1.2.jar;%APP_HOME%\lib\annotations-23.0.0.jar;%APP_HOME%\lib\logback-core-1.5.37.jar;%APP_HOME%\lib\slf4j-api-2.0.18.jar;%APP_HOME%\lib\checker-qual-3.42.0.jar;%APP_HOME%\lib\commons-pool2-2.12.0.jar;%APP_HOME%\lib\json-20231013.jar;%APP_HOME%\lib\gson-2.10.1.jar;%APP_HOME%\lib\config-1.4.9.jar;%APP_HOME%\lib\netty-codec-4.2.16.Final.jar;%APP_HOME%\lib\netty-codec-http2-4.2.16.Final.jar;%APP_HOME%\lib\alpn-api-1.1.3.v20160715.jar;%APP_HOME%\lib\netty-transport-native-kqueue-4.2.16.Final.jar;%APP_HOME%\lib\netty-transport-native-epoll-4.2.16.Final.jar;%APP_HOME%\lib\java-jwt-4.6.0.jar;%APP_HOME%\lib\jwks-rsa-0.24.1.jar;%APP_HOME%\lib\netty-codec-http-4.2.16.Final.jar;%APP_HOME%\lib\netty-codec-compression-4.2.16.Final.jar;%APP_HOME%\lib\netty-codec-protobuf-4.2.16.Final.jar;%APP_HOME%\lib\netty-codec-marshalling-4.2.16.Final.jar;%APP_HOME%\lib\netty-handler-4.2.16.Final.jar;%APP_HOME%\lib\netty-codec-base-4.2.16.Final.jar;%APP_HOME%\lib\netty-transport-classes-kqueue-4.2.16.Final.jar;%APP_HOME%\lib\netty-transport-classes-epoll-4.2.16.Final.jar;%APP_HOME%\lib\netty-transport-native-unix-common-4.2.16.Final.jar;%APP_HOME%\lib\netty-transport-4.2.16.Final.jar;%APP_HOME%\lib\netty-buffer-4.2.16.Final.jar;%APP_HOME%\lib\netty-resolver-4.2.16.Final.jar;%APP_HOME%\lib\netty-common-4.2.16.Final.jar;%APP_HOME%\lib\jackson-databind-2.22.0.jar;%APP_HOME%\lib\jackson-core-2.22.0.jar;%APP_HOME%\lib\guava-33.6.0-jre.jar;%APP_HOME%\lib\jackson-annotations-2.22.jar;%APP_HOME%\lib\failureaccess-1.0.3.jar;%APP_HOME%\lib\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_HOME%\lib\jspecify-1.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.47.0.jar;%APP_HOME%\lib\j2objc-annotations-3.1.jar + + +@rem Execute Kidio_backend +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %KIDIO_BACKEND_OPTS% -classpath "%CLASSPATH%" io.ktor.server.netty.EngineMain %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/build/scriptsShadow/Kidio_backend b/build/scriptsShadow/Kidio_backend new file mode 100755 index 0000000..caf0667 --- /dev/null +++ b/build/scriptsShadow/Kidio_backend @@ -0,0 +1,250 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Kidio_backend start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Kidio_backend +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and KIDIO_BACKEND_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}.." > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/lib/Kidio_backend-all.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and KIDIO_BACKEND_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and KIDIO_BACKEND_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + -classpath "$CLASSPATH" \ + io.ktor.server.netty.EngineMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $KIDIO_BACKEND_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/build/scriptsShadow/Kidio_backend.bat b/build/scriptsShadow/Kidio_backend.bat new file mode 100644 index 0000000..69c31da --- /dev/null +++ b/build/scriptsShadow/Kidio_backend.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Kidio_backend startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and KIDIO_BACKEND_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\Kidio_backend-all.jar + + +@rem Execute Kidio_backend +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %KIDIO_BACKEND_OPTS% -classpath "%CLASSPATH%" io.ktor.server.netty.EngineMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable KIDIO_BACKEND_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%KIDIO_BACKEND_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/test-results/test/TEST-com.oliver.kidio.backend.ServerTest.xml b/build/test-results/test/TEST-com.oliver.kidio.backend.ServerTest.xml index 9c3b6db..030e1bf 100644 --- a/build/test-results/test/TEST-com.oliver.kidio.backend.ServerTest.xml +++ b/build/test-results/test/TEST-com.oliver.kidio.backend.ServerTest.xml @@ -1,21 +1,21 @@ - + - - - - + + + diff --git a/build/test-results/test/binary/output-events.bin b/build/test-results/test/binary/output-events.bin index 77a6fc5..21bc71d 100644 Binary files a/build/test-results/test/binary/output-events.bin and b/build/test-results/test/binary/output-events.bin differ diff --git a/build/test-results/test/binary/results-generic.bin b/build/test-results/test/binary/results-generic.bin index a39836a..73acd26 100644 Binary files a/build/test-results/test/binary/results-generic.bin and b/build/test-results/test/binary/results-generic.bin differ diff --git a/build/tmp/.cache/expanded/zip_167d82aff172bff40cc310895eadeb28/META-INF/services/org.jetbrains.exposed.dao.id.EntityIDFactory b/build/tmp/.cache/expanded/zip_167d82aff172bff40cc310895eadeb28/META-INF/services/org.jetbrains.exposed.dao.id.EntityIDFactory new file mode 100644 index 0000000..bf9fa96 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_167d82aff172bff40cc310895eadeb28/META-INF/services/org.jetbrains.exposed.dao.id.EntityIDFactory @@ -0,0 +1 @@ +org.jetbrains.exposed.dao.DaoEntityIDFactory \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_167d82aff172bff40cc310895eadeb28/META-INF/services/org.jetbrains.exposed.sql.statements.GlobalStatementInterceptor b/build/tmp/.cache/expanded/zip_167d82aff172bff40cc310895eadeb28/META-INF/services/org.jetbrains.exposed.sql.statements.GlobalStatementInterceptor new file mode 100644 index 0000000..dd663ef --- /dev/null +++ b/build/tmp/.cache/expanded/zip_167d82aff172bff40cc310895eadeb28/META-INF/services/org.jetbrains.exposed.sql.statements.GlobalStatementInterceptor @@ -0,0 +1 @@ +org.jetbrains.exposed.dao.EntityLifecycleInterceptor \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_34a95eb22ecb7c16263c3f0e4cab59c8/META-INF/services/io.ktor.serialization.kotlinx.KotlinxSerializationExtensionProvider b/build/tmp/.cache/expanded/zip_34a95eb22ecb7c16263c3f0e4cab59c8/META-INF/services/io.ktor.serialization.kotlinx.KotlinxSerializationExtensionProvider new file mode 100644 index 0000000..e3a4acd --- /dev/null +++ b/build/tmp/.cache/expanded/zip_34a95eb22ecb7c16263c3f0e4cab59c8/META-INF/services/io.ktor.serialization.kotlinx.KotlinxSerializationExtensionProvider @@ -0,0 +1 @@ +io.ktor.serialization.kotlinx.json.KotlinxSerializationJsonExtensionProvider diff --git a/build/tmp/.cache/expanded/zip_4e33f19ea8e326e1f585b2733a78668c/META-INF/services/java.sql.Driver b/build/tmp/.cache/expanded/zip_4e33f19ea8e326e1f585b2733a78668c/META-INF/services/java.sql.Driver new file mode 100644 index 0000000..6f03688 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_4e33f19ea8e326e1f585b2733a78668c/META-INF/services/java.sql.Driver @@ -0,0 +1 @@ +org.postgresql.Driver diff --git a/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader b/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader new file mode 100644 index 0000000..72cb1ae --- /dev/null +++ b/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader @@ -0,0 +1 @@ +kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsLoaderImpl \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.km.internal.extensions.MetadataExtensions b/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.km.internal.extensions.MetadataExtensions new file mode 100644 index 0000000..449bb56 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.km.internal.extensions.MetadataExtensions @@ -0,0 +1 @@ +kotlin.reflect.jvm.internal.impl.km.jvm.internal.JvmMetadataExtensions \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition b/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition new file mode 100644 index 0000000..6c897b4 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_55b3dadccfbf10d789c2754d7018fd21/META-INF/services/kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition @@ -0,0 +1,3 @@ +kotlin.reflect.jvm.internal.impl.load.java.FieldOverridabilityCondition +kotlin.reflect.jvm.internal.impl.load.java.ErasedOverridabilityCondition +kotlin.reflect.jvm.internal.impl.load.java.JavaIncompatibilityRulesOverridabilityCondition \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_56dbcb88ec05eebad043a750ea4f54fc/META-INF/services/com.fasterxml.jackson.core.JsonFactory b/build/tmp/.cache/expanded/zip_56dbcb88ec05eebad043a750ea4f54fc/META-INF/services/com.fasterxml.jackson.core.JsonFactory new file mode 100644 index 0000000..239a78a --- /dev/null +++ b/build/tmp/.cache/expanded/zip_56dbcb88ec05eebad043a750ea4f54fc/META-INF/services/com.fasterxml.jackson.core.JsonFactory @@ -0,0 +1 @@ +com.fasterxml.jackson.core.JsonFactory diff --git a/build/tmp/.cache/expanded/zip_5b613cde858b23c59505f9cc0918997c/META-INF/services/io.ktor.server.config.ConfigLoader b/build/tmp/.cache/expanded/zip_5b613cde858b23c59505f9cc0918997c/META-INF/services/io.ktor.server.config.ConfigLoader new file mode 100644 index 0000000..2b9f016 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_5b613cde858b23c59505f9cc0918997c/META-INF/services/io.ktor.server.config.ConfigLoader @@ -0,0 +1 @@ +io.ktor.server.config.yaml.YamlConfigLoader diff --git a/build/tmp/.cache/expanded/zip_620d573b67d0448b3c13e9e67e41a0ef/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration b/build/tmp/.cache/expanded/zip_620d573b67d0448b3c13e9e67e41a0ef/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration new file mode 100644 index 0000000..e33bea7 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_620d573b67d0448b3c13e9e67e41a0ef/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration @@ -0,0 +1,14 @@ +# Copyright 2019 The Netty Project +# +# The Netty Project licenses this file to you under the Apache License, +# version 2.0 (the "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at: +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +io.netty.util.internal.Hidden$NettyBlockHoundIntegration \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_6801c4692081179fecc820b55d8d5389/META-INF/services/org.jetbrains.exposed.sql.DatabaseConnectionAutoRegistration b/build/tmp/.cache/expanded/zip_6801c4692081179fecc820b55d8d5389/META-INF/services/org.jetbrains.exposed.sql.DatabaseConnectionAutoRegistration new file mode 100644 index 0000000..3da26ed --- /dev/null +++ b/build/tmp/.cache/expanded/zip_6801c4692081179fecc820b55d8d5389/META-INF/services/org.jetbrains.exposed.sql.DatabaseConnectionAutoRegistration @@ -0,0 +1 @@ +org.jetbrains.exposed.jdbc.ExposedConnectionImpl \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_827f36c07e68508df9a55907116a96f9/META-INF/services/io.ktor.server.config.ConfigLoader b/build/tmp/.cache/expanded/zip_827f36c07e68508df9a55907116a96f9/META-INF/services/io.ktor.server.config.ConfigLoader new file mode 100644 index 0000000..042e7f5 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_827f36c07e68508df9a55907116a96f9/META-INF/services/io.ktor.server.config.ConfigLoader @@ -0,0 +1 @@ +io.ktor.server.config.HoconConfigLoader diff --git a/build/tmp/.cache/expanded/zip_96301c3429dc53136318272e47762922/META-INF/services/jakarta.servlet.ServletContainerInitializer b/build/tmp/.cache/expanded/zip_96301c3429dc53136318272e47762922/META-INF/services/jakarta.servlet.ServletContainerInitializer new file mode 100644 index 0000000..a54b659 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_96301c3429dc53136318272e47762922/META-INF/services/jakarta.servlet.ServletContainerInitializer @@ -0,0 +1 @@ +ch.qos.logback.classic.servlet.LogbackServletContainerInitializer diff --git a/build/tmp/.cache/expanded/zip_96301c3429dc53136318272e47762922/META-INF/services/org.slf4j.spi.SLF4JServiceProvider b/build/tmp/.cache/expanded/zip_96301c3429dc53136318272e47762922/META-INF/services/org.slf4j.spi.SLF4JServiceProvider new file mode 100644 index 0000000..501df6d --- /dev/null +++ b/build/tmp/.cache/expanded/zip_96301c3429dc53136318272e47762922/META-INF/services/org.slf4j.spi.SLF4JServiceProvider @@ -0,0 +1 @@ +ch.qos.logback.classic.spi.LogbackServiceProvider \ No newline at end of file diff --git a/build/tmp/.cache/expanded/zip_f7082193985f014bef83e7de07e79f65/META-INF/services/com.fasterxml.jackson.core.ObjectCodec b/build/tmp/.cache/expanded/zip_f7082193985f014bef83e7de07e79f65/META-INF/services/com.fasterxml.jackson.core.ObjectCodec new file mode 100644 index 0000000..f126bb4 --- /dev/null +++ b/build/tmp/.cache/expanded/zip_f7082193985f014bef83e7de07e79f65/META-INF/services/com.fasterxml.jackson.core.ObjectCodec @@ -0,0 +1 @@ +com.fasterxml.jackson.databind.ObjectMapper diff --git a/build/tmp/shadowJar/MANIFEST.MF b/build/tmp/shadowJar/MANIFEST.MF new file mode 100644 index 0000000..ea53dd5 --- /dev/null +++ b/build/tmp/shadowJar/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Main-Class: io.ktor.server.netty.EngineMain +Multi-Release: true + diff --git a/src/main/kotlin/com/oliver/kidio/backend/data/database/DatabaseFactory.kt b/src/main/kotlin/com/oliver/kidio/backend/data/database/DatabaseFactory.kt index 6067566..05f3b2a 100644 --- a/src/main/kotlin/com/oliver/kidio/backend/data/database/DatabaseFactory.kt +++ b/src/main/kotlin/com/oliver/kidio/backend/data/database/DatabaseFactory.kt @@ -24,6 +24,14 @@ object ScreentimeTable : Table("user_screentime") { override val primaryKey = PrimaryKey(userId) } +object UserTable : Table("users") { + val id = varchar("id", 36) + val user_username = varchar("username", 50).index(isUnique = true) + val passwordHash = varchar("password_hash", 255) + + override val primaryKey = PrimaryKey(id) +} + object DatabaseFactory { fun init(config: ApplicationConfig) { val driverClassName = config.propertyOrNull("storage.driverClassName")?.getString() ?: "org.postgresql.Driver" @@ -86,6 +94,15 @@ object DatabaseFactory { it[parentPin] = "1234" } } + + // Create a standard user if the Users table is empty. + if (UserTable.selectAll().empty()) { + UserTable.insert { + it[id] = "default_user" + it[user_username] = "default_user" + it[passwordHash] = "1234" + } + } } } diff --git a/src/main/kotlin/com/oliver/kidio/backend/domain/models/models.kt b/src/main/kotlin/com/oliver/kidio/backend/domain/models/models.kt index 6bd88f0..c41fe4b 100644 --- a/src/main/kotlin/com/oliver/kidio/backend/domain/models/models.kt +++ b/src/main/kotlin/com/oliver/kidio/backend/domain/models/models.kt @@ -33,6 +33,18 @@ data class SyncRequest( val usedSecondsSinceLastSync: Int ) +@Serializable +data class LoginRequest( + val userId: String +) + +@Serializable +data class User( + val id: String, + val username: String, + val passwordHash: String +) + @Serializable data class SyncResponse( val remainingSeconds: Int, diff --git a/src/main/kotlin/com/oliver/kidio/backend/domain/repository/KidioRepository.kt b/src/main/kotlin/com/oliver/kidio/backend/domain/repository/KidioRepository.kt index d0b1166..58db7bd 100644 --- a/src/main/kotlin/com/oliver/kidio/backend/domain/repository/KidioRepository.kt +++ b/src/main/kotlin/com/oliver/kidio/backend/domain/repository/KidioRepository.kt @@ -1,10 +1,12 @@ package com.oliver.kidio.backend.domain.repository import com.oliver.kidio.backend.Task +import com.oliver.kidio.backend.User import com.oliver.kidio.backend.data.database.DatabaseFactory import com.oliver.kidio.backend.data.database.RedisFactory import com.oliver.kidio.backend.data.database.ScreentimeTable import com.oliver.kidio.backend.data.database.TasksTable +import com.oliver.kidio.backend.data.database.UserTable import org.jetbrains.exposed.sql.* interface KidioRepository { @@ -12,6 +14,9 @@ interface KidioRepository { suspend fun getTaskAnswerAndReward(taskId: String): Pair? suspend fun getScreentime(userId: String): Int suspend fun updateScreentime(userId: String, seconds: Int) + + suspend fun findByUsername(username: String): User? + suspend fun verifyPassword(password: String, passwordHash: String): Boolean } class ExposedKidioRepository : KidioRepository { @@ -76,6 +81,23 @@ class ExposedKidioRepository : KidioRepository { } } } + + override suspend fun findByUsername(username: String): User? = DatabaseFactory.dbQuery { + UserTable.selectAll() + .where { UserTable.user_username eq username } + .map { + User( + id = it[UserTable.id], + username = it[UserTable.user_username], + passwordHash = it[UserTable.passwordHash] + ) + } + .singleOrNull() + } + + override suspend fun verifyPassword(password: String, passwordHash: String): Boolean { + return password == passwordHash + } } class InMemoryKidioRepository : KidioRepository { @@ -91,6 +113,10 @@ class InMemoryKidioRepository : KidioRepository { "default_user" to 1800 ) + private val users = mutableListOf( + User(id = "1", username = "max", passwordHash = "geheim123") + ) + override suspend fun getAllTasks(): List = tasks override suspend fun getTaskAnswerAndReward(taskId: String): Pair? = answers[taskId] @@ -100,4 +126,12 @@ class InMemoryKidioRepository : KidioRepository { override suspend fun updateScreentime(userId: String, seconds: Int) { screentimes[userId] = seconds } -} + + override suspend fun findByUsername(username: String): User? { + return users.find { it.username == username } + } + + override suspend fun verifyPassword(password: String, passwordHash: String): Boolean { + return password == passwordHash + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/oliver/kidio/backend/plugins/Routing.kt b/src/main/kotlin/com/oliver/kidio/backend/plugins/Routing.kt index 23da00e..95af480 100644 --- a/src/main/kotlin/com/oliver/kidio/backend/plugins/Routing.kt +++ b/src/main/kotlin/com/oliver/kidio/backend/plugins/Routing.kt @@ -2,12 +2,14 @@ package com.oliver.kidio.backend.plugins import com.oliver.kidio.backend.* import com.oliver.kidio.backend.domain.repository.KidioRepository +import com.oliver.kidio.backend.security.JwtService import io.ktor.server.application.* +import io.ktor.server.auth.authenticate import io.ktor.server.request.* import io.ktor.server.response.* import io.ktor.server.routing.* -fun Application.configureRouting(repository: KidioRepository) { +fun Application.configureRouting(repository: KidioRepository, jwtService : JwtService) { routing { // Health-Check @@ -15,71 +17,81 @@ fun Application.configureRouting(repository: KidioRepository) { call.respond(mapOf("status" to "OK", "message" to "Kidio Backend läuft!")) } - // 1. Alle verfügbaren Aufgaben abrufen - get("/api/v1/tasks") { - val tasks = repository.getAllTasks() - call.respond(tasks) + post ("/api/v1/auth/login" ) { + val loginRequest = call.receive() + + val token = jwtService.generateToken(userId = loginRequest.userId) + call.respond(mapOf("token" to token)) } - // 2. Antwort auf eine Aufgabe überprüfen - post("/api/v1/tasks/verify") { - val request = call.receive() + authenticate("auth-jwt") { - val taskInfo = repository.getTaskAnswerAndReward(request.taskId) - - if (taskInfo == null) { - call.respond( - TaskVerifyResponse( - isCorrect = false, - earnedMinutes = 0, - message = "Aufgabe nicht gefunden!" - ) - ) - return@post + // 1. Alle verfügbaren Aufgaben abrufen + get("/api/v1/tasks") { + val tasks = repository.getAllTasks() + call.respond(tasks) } - val (correctAnswer, reward) = taskInfo - val isCorrect = request.selectedAnswer.trim() == correctAnswer.trim() + // 2. Antwort auf eine Aufgabe überprüfen + post("/api/v1/tasks/verify") { + val request = call.receive() - if (isCorrect) { - val currentScreentime = repository.getScreentime("default_user") - val newSeconds = currentScreentime + (reward * 60) - repository.updateScreentime("default_user", newSeconds) + val taskInfo = repository.getTaskAnswerAndReward(request.taskId) - call.respond( - TaskVerifyResponse( - isCorrect = true, - earnedMinutes = reward, - message = "Super gemacht! Du hast $reward Minuten gewonnen." + if (taskInfo == null) { + call.respond( + TaskVerifyResponse( + isCorrect = false, + earnedMinutes = 0, + message = "Aufgabe nicht gefunden!" + ) ) - ) - } else { + return@post + } + + val (correctAnswer, reward) = taskInfo + val isCorrect = request.selectedAnswer.trim() == correctAnswer.trim() + + if (isCorrect) { + val currentScreentime = repository.getScreentime("default_user") + val newSeconds = currentScreentime + (reward * 60) + repository.updateScreentime("default_user", newSeconds) + + call.respond( + TaskVerifyResponse( + isCorrect = true, + earnedMinutes = reward, + message = "Super gemacht! Du hast $reward Minuten gewonnen." + ) + ) + } else { + call.respond( + TaskVerifyResponse( + isCorrect = false, + earnedMinutes = 0, + message = "Schade, das war leider falsch. Versuche es nochmal!" + ) + ) + } + } + + // 3. Bildschirmzeit synchronisieren + post("/api/v1/screentime/sync") { + val request = call.receive() + + val currentSeconds = repository.getScreentime(request.userId) + var newSeconds = currentSeconds - request.usedSecondsSinceLastSync + if (newSeconds < 0) newSeconds = 0 + + repository.updateScreentime(request.userId, newSeconds) + call.respond( - TaskVerifyResponse( - isCorrect = false, - earnedMinutes = 0, - message = "Schade, das war leider falsch. Versuche es nochmal!" + SyncResponse( + remainingSeconds = newSeconds, + isBlocked = newSeconds <= 0 ) ) } } - - // 3. Bildschirmzeit synchronisieren - post("/api/v1/screentime/sync") { - val request = call.receive() - - val currentSeconds = repository.getScreentime(request.userId) - var newSeconds = currentSeconds - request.usedSecondsSinceLastSync - if (newSeconds < 0) newSeconds = 0 - - repository.updateScreentime(request.userId, newSeconds) - - call.respond( - SyncResponse( - remainingSeconds = newSeconds, - isBlocked = newSeconds <= 0 - ) - ) - } } } diff --git a/src/main/kotlin/com/oliver/kidio/backend/plugins/Security.kt b/src/main/kotlin/com/oliver/kidio/backend/plugins/Security.kt new file mode 100644 index 0000000..8aa7538 --- /dev/null +++ b/src/main/kotlin/com/oliver/kidio/backend/plugins/Security.kt @@ -0,0 +1,29 @@ +package com.oliver.kidio.backend.plugins + +import com.oliver.kidio.backend.security.JwtService +import io.ktor.server.application.* +import io.ktor.server.auth.* +import io.ktor.server.auth.jwt.* + +/** + * Repräsentiert den authentifizierten Benutzer im Request-Kontext. + */ +data class UserPrincipal(val userId: String) : Principal + +fun Application.configureSecurity(jwtService: JwtService) { + install(Authentication) { + jwt("auth-jwt") { + realm = "Kidio Backend" + verifier(jwtService.verifier) + + validate { credential -> + val userId = credential.payload.getClaim("userId").asString() + if (!userId.isNullOrEmpty()) { + UserPrincipal(userId) + } else { + null + } + } + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/oliver/kidio/backend/security/JwtService.kt b/src/main/kotlin/com/oliver/kidio/backend/security/JwtService.kt new file mode 100644 index 0000000..6f49fca --- /dev/null +++ b/src/main/kotlin/com/oliver/kidio/backend/security/JwtService.kt @@ -0,0 +1,32 @@ +package com.oliver.kidio.backend.security + +import com.auth0.jwt.JWT +import com.auth0.jwt.JWTVerifier +import com.auth0.jwt.algorithms.Algorithm +import java.util.Date + +class JwtService( + private val secret: String = System.getenv("JWT_SECRET") ?: "super-geheimes-secret-fuer-dev", + private val issuer: String = "https://kidio.oliver.com/", + private val audience: String = "kidio-users", + private val expirationInMs: Long = 36_000_000 // 10 Stunden +) { + + val verifier: JWTVerifier = JWT + .require(Algorithm.HMAC256(secret)) + .withAudience(audience) + .withIssuer(issuer) + .build() + + /** + * Generiert ein JWT-Token für einen bestimmten Benutzer. + */ + fun generateToken(userId: String): String { + return JWT.create() + .withAudience(audience) + .withIssuer(issuer) + .withClaim("userId", userId) + .withExpiresAt(Date(System.currentTimeMillis() + expirationInMs)) + .sign(Algorithm.HMAC256(secret)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/main.kt b/src/main/kotlin/main.kt index 3831b3c..cbc387f 100644 --- a/src/main/kotlin/main.kt +++ b/src/main/kotlin/main.kt @@ -2,6 +2,8 @@ import com.oliver.kidio.backend.plugins.configureRouting import com.oliver.kidio.backend.data.database.DatabaseFactory import com.oliver.kidio.backend.data.database.RedisFactory import com.oliver.kidio.backend.domain.repository.ExposedKidioRepository +import com.oliver.kidio.backend.plugins.configureSecurity +import com.oliver.kidio.backend.security.JwtService import io.ktor.serialization.kotlinx.json.* import io.ktor.server.application.* import io.ktor.server.plugins.contentnegotiation.* @@ -16,6 +18,13 @@ fun Application.module() { json() } - // Ruft die Funktion aus Routing.kt auf mit dem echten ExposedRepository - configureRouting(ExposedKidioRepository()) + val jwtService = JwtService() + val repository = ExposedKidioRepository() + + configureSecurity(jwtService) + + configureRouting( + repository = repository, + jwtService = jwtService + ) } \ No newline at end of file diff --git a/src/test/kotlin/ServerTest.kt b/src/test/kotlin/ServerTest.kt index 4771973..e11e7a1 100644 --- a/src/test/kotlin/ServerTest.kt +++ b/src/test/kotlin/ServerTest.kt @@ -7,6 +7,8 @@ import io.ktor.server.application.* import io.ktor.server.testing.* import com.oliver.kidio.backend.plugins.configureRouting import com.oliver.kidio.backend.domain.repository.InMemoryKidioRepository +import com.oliver.kidio.backend.plugins.configureSecurity +import com.oliver.kidio.backend.security.JwtService import io.ktor.server.plugins.contentnegotiation.ContentNegotiation as ServerContentNegotiation import io.ktor.serialization.kotlinx.json.* import kotlinx.serialization.json.* @@ -17,10 +19,12 @@ class ServerTest { @Test fun `test health endpoint`() = testApplication { application { - this.install(ServerContentNegotiation) { + install(ServerContentNegotiation) { json() } - configureRouting(InMemoryKidioRepository()) + val jwtService = JwtService() + configureSecurity(jwtService) + configureRouting(InMemoryKidioRepository(), jwtService) } val response = client.get("/api/v1/health") @@ -30,23 +34,29 @@ class ServerTest { @Test fun `test tasks endpoint and verify`() = testApplication { + val jwtService = JwtService() application { - this.install(ServerContentNegotiation) { + install(ServerContentNegotiation) { json() } - configureRouting(InMemoryKidioRepository()) + configureSecurity(jwtService) + configureRouting(InMemoryKidioRepository(), jwtService) } - // 1. Get Tasks - val tasksResponse = client.get("/api/v1/tasks") + val token = jwtService.generateToken("default_user") + + val tasksResponse = client.get("/api/v1/tasks") { + header(HttpHeaders.Authorization, "Bearer $token") + } assertEquals(HttpStatusCode.OK, tasksResponse.status) val tasksJson = Json.decodeFromString>(tasksResponse.bodyAsText()) assertEquals(2, tasksJson.size) assertEquals("t1", tasksJson[0].id) assertEquals("Was ist 12 + 15?", tasksJson[0].question) - // 2. Verify Task correct answer + // 2. Verify Task correct answer (with Auth header) val verifyResponse = client.post("/api/v1/tasks/verify") { + header(HttpHeaders.Authorization, "Bearer $token") header(HttpHeaders.ContentType, ContentType.Application.Json.toString()) setBody("""{"taskId":"t1","selectedAnswer":"27"}""") } @@ -55,8 +65,9 @@ class ServerTest { assertTrue(verifyJson.isCorrect) assertEquals(10, verifyJson.earnedMinutes) - // 3. Verify Task incorrect answer + // 3. Verify Task incorrect answer (with Auth header) val verifyWrongResponse = client.post("/api/v1/tasks/verify") { + header(HttpHeaders.Authorization, "Bearer $token") header(HttpHeaders.ContentType, ContentType.Application.Json.toString()) setBody("""{"taskId":"t1","selectedAnswer":"99"}""") } @@ -68,15 +79,20 @@ class ServerTest { @Test fun `test screentime sync`() = testApplication { + val jwtService = JwtService() application { - this.install(ServerContentNegotiation) { + install(ServerContentNegotiation) { json() } - configureRouting(InMemoryKidioRepository()) + configureSecurity(jwtService) // <-- Added configureSecurity + configureRouting(InMemoryKidioRepository(), jwtService) } - // Sync first time (user default_user has 1800s seeded) + val token = jwtService.generateToken("default_user") + + // Sync first time val syncResponse1 = client.post("/api/v1/screentime/sync") { + header(HttpHeaders.Authorization, "Bearer $token") header(HttpHeaders.ContentType, ContentType.Application.Json.toString()) setBody("""{"userId":"default_user","usedSecondsSinceLastSync":200}""") } @@ -87,6 +103,7 @@ class ServerTest { // Sync and block val syncResponse2 = client.post("/api/v1/screentime/sync") { + header(HttpHeaders.Authorization, "Bearer $token") header(HttpHeaders.ContentType, ContentType.Application.Json.toString()) setBody("""{"userId":"default_user","usedSecondsSinceLastSync":2000}""") }