diff --git a/api/api/api.klib.api b/api/api/api.klib.api index 7b2da73..4451f73 100644 --- a/api/api/api.klib.api +++ b/api/api/api.klib.api @@ -1,39 +1,53 @@ // Klib ABI Dump -// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, watchosArm64, watchosSimulatorArm64, watchosX64] +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm64, watchosSimulatorArm64, watchosX64] // Rendering settings: // - Signature version: 2 // - Show manifest properties: true // - Show declarations: true // Library unique name: +open annotation class dev.kord.cache.api/Identity : kotlin/Annotation { // dev.kord.cache.api/Identity|null[0] + constructor () // dev.kord.cache.api/Identity.|(){}[0] +} + +open annotation class dev.kord.cache.api/Link : kotlin/Annotation { // dev.kord.cache.api/Link|null[0] + constructor (kotlin.reflect/KClass<*>, kotlin/String) // dev.kord.cache.api/Link.|(kotlin.reflect.KClass<*>;kotlin.String){}[0] + + final val name // dev.kord.cache.api/Link.name|{}name[0] + final fun (): kotlin/String // dev.kord.cache.api/Link.name.|(){}[0] + final val to // dev.kord.cache.api/Link.to|{}to[0] + final fun (): kotlin.reflect/KClass<*> // dev.kord.cache.api/Link.to.|(){}[0] +} + abstract interface <#A: kotlin/Any> dev.kord.cache.api/DataEntryCache { // dev.kord.cache.api/DataEntryCache|null[0] abstract fun query(): dev.kord.cache.api/QueryBuilder<#A> // dev.kord.cache.api/DataEntryCache.query|query(){}[0] abstract suspend fun put(#A) // dev.kord.cache.api/DataEntryCache.put|put(1:0){}[0] - final object Companion { // dev.kord.cache.api/DataEntryCache.Companion|null[0] - final fun <#A2: kotlin/Any> none(): dev.kord.cache.api/DataEntryCache<#A2> // dev.kord.cache.api/DataEntryCache.Companion.none|none(){0§}[0] - } open suspend fun put(kotlin.collections/Iterable<#A>) // dev.kord.cache.api/DataEntryCache.put|put(kotlin.collections.Iterable<1:0>){}[0] open suspend fun put(kotlin/Array...) // dev.kord.cache.api/DataEntryCache.put|put(kotlin.Array...){}[0] open suspend fun put(kotlinx.coroutines.flow/Flow<#A>) // dev.kord.cache.api/DataEntryCache.put|put(kotlinx.coroutines.flow.Flow<1:0>){}[0] + + final object Companion { // dev.kord.cache.api/DataEntryCache.Companion|null[0] + final fun <#A2: kotlin/Any> none(): dev.kord.cache.api/DataEntryCache<#A2> // dev.kord.cache.api/DataEntryCache.Companion.none|none(){0§}[0] + } } + abstract interface <#A: kotlin/Any> dev.kord.cache.api/Query { // dev.kord.cache.api/Query|null[0] abstract fun asFlow(): kotlinx.coroutines.flow/Flow<#A> // dev.kord.cache.api/Query.asFlow|asFlow(){}[0] abstract suspend fun remove() // dev.kord.cache.api/Query.remove|remove(){}[0] abstract suspend fun update(kotlin.coroutines/SuspendFunction1<#A, #A>) // dev.kord.cache.api/Query.update|update(kotlin.coroutines.SuspendFunction1<1:0,1:0>){}[0] - final object Companion { // dev.kord.cache.api/Query.Companion|null[0] - final fun <#A2: kotlin/Any> none(): dev.kord.cache.api/Query<#A2> // dev.kord.cache.api/Query.Companion.none|none(){0§}[0] - } open suspend fun count(): kotlin/Long // dev.kord.cache.api/Query.count|count(){}[0] open suspend fun single(): #A // dev.kord.cache.api/Query.single|single(){}[0] open suspend fun singleOrNull(): #A? // dev.kord.cache.api/Query.singleOrNull|singleOrNull(){}[0] open suspend fun toCollection(): kotlin.collections/Collection<#A> // dev.kord.cache.api/Query.toCollection|toCollection(){}[0] + + final object Companion { // dev.kord.cache.api/Query.Companion|null[0] + final fun <#A2: kotlin/Any> none(): dev.kord.cache.api/Query<#A2> // dev.kord.cache.api/Query.Companion.none|none(){0§}[0] + } } + abstract interface <#A: kotlin/Any> dev.kord.cache.api/QueryBuilder { // dev.kord.cache.api/QueryBuilder|null[0] abstract fun <#A1: kotlin/Any?> (kotlin.reflect/KProperty1<#A, #A1>).predicate(kotlin/Function1<#A1, kotlin/Boolean>) // dev.kord.cache.api/QueryBuilder.predicate|predicate@kotlin.reflect.KProperty1<1:0,0:0>(kotlin.Function1<0:0,kotlin.Boolean>){0§}[0] abstract fun build(): dev.kord.cache.api/Query<#A> // dev.kord.cache.api/QueryBuilder.build|build(){}[0] - final object Companion { // dev.kord.cache.api/QueryBuilder.Companion|null[0] - final fun <#A2: kotlin/Any> none(): dev.kord.cache.api/QueryBuilder<#A2> // dev.kord.cache.api/QueryBuilder.Companion.none|none(){0§}[0] - } open fun <#A1: kotlin/Any?> (kotlin.reflect/KProperty1<#A, #A1>).eq(#A1) // dev.kord.cache.api/QueryBuilder.eq|eq@kotlin.reflect.KProperty1<1:0,0:0>(0:0){0§}[0] open fun <#A1: kotlin/Any?> (kotlin.reflect/KProperty1<#A, #A1>).in(kotlin.collections/Iterable<#A1>) // dev.kord.cache.api/QueryBuilder.in|in@kotlin.reflect.KProperty1<1:0,0:0>(kotlin.collections.Iterable<0:0>){0§}[0] open fun <#A1: kotlin/Any?> (kotlin.reflect/KProperty1<#A, #A1>).ne(#A1) // dev.kord.cache.api/QueryBuilder.ne|ne@kotlin.reflect.KProperty1<1:0,0:0>(0:0){0§}[0] @@ -45,24 +59,34 @@ abstract interface <#A: kotlin/Any> dev.kord.cache.api/QueryBuilder { // dev.kor open fun <#A1: kotlin/Comparable<#A1>> (kotlin.reflect/KProperty1<#A, #A1>).gte(#A1) // dev.kord.cache.api/QueryBuilder.gte|gte@kotlin.reflect.KProperty1<1:0,0:0>(0:0){0§>}[0] open fun <#A1: kotlin/Comparable<#A1>> (kotlin.reflect/KProperty1<#A, #A1>).lt(#A1) // dev.kord.cache.api/QueryBuilder.lt|lt@kotlin.reflect.KProperty1<1:0,0:0>(0:0){0§>}[0] open fun <#A1: kotlin/Comparable<#A1>> (kotlin.reflect/KProperty1<#A, #A1>).lte(#A1) // dev.kord.cache.api/QueryBuilder.lte|lte@kotlin.reflect.KProperty1<1:0,0:0>(0:0){0§>}[0] + + final object Companion { // dev.kord.cache.api/QueryBuilder.Companion|null[0] + final fun <#A2: kotlin/Any> none(): dev.kord.cache.api/QueryBuilder<#A2> // dev.kord.cache.api/QueryBuilder.Companion.none|none(){0§}[0] + } } + abstract interface dev.kord.cache.api.delegate/EntrySupplier { // dev.kord.cache.api.delegate/EntrySupplier|null[0] abstract suspend fun <#A1: kotlin/Any> supply(dev.kord.cache.api/DataCache, dev.kord.cache.api.data/DataDescription<#A1, out kotlin/Any>): dev.kord.cache.api/DataEntryCache<#A1> // dev.kord.cache.api.delegate/EntrySupplier.supply|supply(dev.kord.cache.api.DataCache;dev.kord.cache.api.data.DataDescription<0:0,out|kotlin.Any>){0§}[0] + final object Companion { // dev.kord.cache.api.delegate/EntrySupplier.Companion|null[0] final fun invoke(kotlin/Function2, dev.kord.cache.api/DataEntryCache<*>>): dev.kord.cache.api.delegate/EntrySupplier // dev.kord.cache.api.delegate/EntrySupplier.Companion.invoke|invoke(kotlin.Function2,dev.kord.cache.api.DataEntryCache<*>>){}[0] } } + abstract interface dev.kord.cache.api/DataCache { // dev.kord.cache.api/DataCache|null[0] abstract fun <#A1: kotlin/Any> getEntry(kotlin.reflect/KType): dev.kord.cache.api/DataEntryCache<#A1>? // dev.kord.cache.api/DataCache.getEntry|getEntry(kotlin.reflect.KType){0§}[0] abstract suspend fun register(dev.kord.cache.api.data/DataDescription) // dev.kord.cache.api/DataCache.register|register(dev.kord.cache.api.data.DataDescription){}[0] + open suspend fun register(kotlin.collections/Iterable>) // dev.kord.cache.api/DataCache.register|register(kotlin.collections.Iterable>){}[0] + open suspend fun register(kotlin/Array>...) // dev.kord.cache.api/DataCache.register|register(kotlin.Array>...){}[0] + final object Companion { // dev.kord.cache.api/DataCache.Companion|null[0] final fun none(): dev.kord.cache.api/DataCache // dev.kord.cache.api/DataCache.Companion.none|none(){}[0] } - open suspend fun register(kotlin.collections/Iterable>) // dev.kord.cache.api/DataCache.register|register(kotlin.collections.Iterable>){}[0] - open suspend fun register(kotlin/Array>...) // dev.kord.cache.api/DataCache.register|register(kotlin.Array>...){}[0] } + final class <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any?> dev.kord.cache.api.data/DataLink { // dev.kord.cache.api.data/DataLink|null[0] constructor (kotlin.reflect/KProperty1<#A, #C>, kotlin.reflect/KType, kotlin.reflect/KProperty1<#B, #C>) // dev.kord.cache.api.data/DataLink.|(kotlin.reflect.KProperty1<1:0,1:2>;kotlin.reflect.KType;kotlin.reflect.KProperty1<1:1,1:2>){}[0] + final val linkedField // dev.kord.cache.api.data/DataLink.linkedField|{}linkedField[0] final fun (): kotlin.reflect/KProperty1<#B, #C> // dev.kord.cache.api.data/DataLink.linkedField.|(){}[0] final val source // dev.kord.cache.api.data/DataLink.source|{}source[0] @@ -70,8 +94,10 @@ final class <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any?> dev.kord.cache.api final val target // dev.kord.cache.api.data/DataLink.target|{}target[0] final fun (): kotlin.reflect/KType // dev.kord.cache.api.data/DataLink.target.|(){}[0] } + final class <#A: kotlin/Any, #B: kotlin/Any?> dev.kord.cache.api.data/DataDescription { // dev.kord.cache.api.data/DataDescription|null[0] constructor (kotlin.reflect/KType, kotlin.reflect/KClass<#A>, dev.kord.cache.api.data/IndexField<#A, #B>, kotlin.collections/List> = ...) // dev.kord.cache.api.data/DataDescription.|(kotlin.reflect.KType;kotlin.reflect.KClass<1:0>;dev.kord.cache.api.data.IndexField<1:0,1:1>;kotlin.collections.List>){}[0] + final val indexField // dev.kord.cache.api.data/DataDescription.indexField|{}indexField[0] final fun (): dev.kord.cache.api.data/IndexField<#A, #B> // dev.kord.cache.api.data/DataDescription.indexField.|(){}[0] final val klass // dev.kord.cache.api.data/DataDescription.klass|{}klass[0] @@ -81,37 +107,49 @@ final class <#A: kotlin/Any, #B: kotlin/Any?> dev.kord.cache.api.data/DataDescri final val type // dev.kord.cache.api.data/DataDescription.type|{}type[0] final fun (): kotlin.reflect/KType // dev.kord.cache.api.data/DataDescription.type.|(){}[0] } + final class <#A: kotlin/Any> dev.kord.cache.api.data/LinkBuilder { // dev.kord.cache.api.data/LinkBuilder|null[0] constructor (kotlin.collections/MutableList> = ...) // dev.kord.cache.api.data/LinkBuilder.|(kotlin.collections.MutableList>){}[0] - final inline fun <#A1: reified kotlin/Any, #B1: kotlin/Any?> link(kotlin/Pair, kotlin.reflect/KProperty1<#A1, #B1>>) // dev.kord.cache.api.data/LinkBuilder.link|link(kotlin.Pair,kotlin.reflect.KProperty1<0:0,0:1>>){0§;1§}[0] + final val links // dev.kord.cache.api.data/LinkBuilder.links|{}links[0] final fun (): kotlin.collections/MutableList> // dev.kord.cache.api.data/LinkBuilder.links.|(){}[0] + + final inline fun <#A1: reified kotlin/Any, #B1: kotlin/Any?> link(kotlin/Pair, kotlin.reflect/KProperty1<#A1, #B1>>) // dev.kord.cache.api.data/LinkBuilder.link|link(kotlin.Pair,kotlin.reflect.KProperty1<0:0,0:1>>){0§;1§}[0] } + final class <#A: kotlin/Any?, #B: kotlin/Any?> dev.kord.cache.api.data/IndexField { // dev.kord.cache.api.data/IndexField|null[0] constructor (kotlin.reflect/KProperty1<#A, #B>) // dev.kord.cache.api.data/IndexField.|(kotlin.reflect.KProperty1<1:0,1:1>){}[0] + final val property // dev.kord.cache.api.data/IndexField.property|{}property[0] final fun (): kotlin.reflect/KProperty1<#A, #B> // dev.kord.cache.api.data/IndexField.property.|(){}[0] } + final class dev.kord.cache.api.delegate/DelegatingDataCache : dev.kord.cache.api/DataCache { // dev.kord.cache.api.delegate/DelegatingDataCache|null[0] constructor (dev.kord.cache.api.delegate/EntrySupplier) // dev.kord.cache.api.delegate/DelegatingDataCache.|(dev.kord.cache.api.delegate.EntrySupplier){}[0] + final fun <#A1: kotlin/Any> getEntry(kotlin.reflect/KType): dev.kord.cache.api/DataEntryCache<#A1>? // dev.kord.cache.api.delegate/DelegatingDataCache.getEntry|getEntry(kotlin.reflect.KType){0§}[0] + final suspend fun register(dev.kord.cache.api.data/DataDescription) // dev.kord.cache.api.delegate/DelegatingDataCache.register|register(dev.kord.cache.api.data.DataDescription){}[0] + final object Companion { // dev.kord.cache.api.delegate/DelegatingDataCache.Companion|null[0] + final inline fun invoke(kotlin/Function1 = ...): dev.kord.cache.api/DataCache // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.invoke|invoke(kotlin.Function1){}[0] + final class Builder { // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder|null[0] constructor () // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.|(){}[0] + + final val suppliers // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.suppliers|{}suppliers[0] + final fun (): kotlin.collections/MutableMap, dev.kord.cache.api/DataEntryCache<*>>> // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.suppliers.|(){}[0] + final fun <#A3: kotlin/Any, #B3: kotlin/Any?> forDescription(dev.kord.cache.api.data/DataDescription<#A3, #B3>, kotlin/Function2, dev.kord.cache.api/DataEntryCache<#A3>>) // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.forDescription|forDescription(dev.kord.cache.api.data.DataDescription<0:0,0:1>;kotlin.Function2,dev.kord.cache.api.DataEntryCache<0:0>>){0§;1§}[0] final fun build(): dev.kord.cache.api/DataCache // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.build|build(){}[0] final fun default(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.default|default(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final inline fun <#A3: reified kotlin/Any> forType(noinline kotlin/Function2, dev.kord.cache.api/DataEntryCache<#A3>>) // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.forType|forType(kotlin.Function2,dev.kord.cache.api.DataEntryCache<0:0>>){0§}[0] - final val suppliers // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.suppliers|{}suppliers[0] - final fun (): kotlin.collections/MutableMap, dev.kord.cache.api/DataEntryCache<*>>> // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.Builder.suppliers.|(){}[0] } - final inline fun invoke(kotlin/Function1 = ...): dev.kord.cache.api/DataCache // dev.kord.cache.api.delegate/DelegatingDataCache.Companion.invoke|invoke(kotlin.Function1){}[0] } - final suspend fun register(dev.kord.cache.api.data/DataDescription) // dev.kord.cache.api.delegate/DelegatingDataCache.register|register(dev.kord.cache.api.data.DataDescription){}[0] } + final class dev.kord.cache.api.meta/CacheStatistics { // dev.kord.cache.api.meta/CacheStatistics|null[0] constructor (kotlin.collections/Map = ...) // dev.kord.cache.api.meta/CacheStatistics.|(kotlin.collections.Map){}[0] - final inline fun <#A1: reified kotlin/Any?> getForType(): dev.kord.cache.api.meta/TypeStatistics? // dev.kord.cache.api.meta/CacheStatistics.getForType|getForType(){0§}[0] + final val hitRatio // dev.kord.cache.api.meta/CacheStatistics.hitRatio|{}hitRatio[0] final fun (): kotlin/Double // dev.kord.cache.api.meta/CacheStatistics.hitRatio.|(){}[0] final val hits // dev.kord.cache.api.meta/CacheStatistics.hits|{}hits[0] @@ -122,25 +160,35 @@ final class dev.kord.cache.api.meta/CacheStatistics { // dev.kord.cache.api.meta final fun (): kotlin/Long // dev.kord.cache.api.meta/CacheStatistics.queries.|(){}[0] final val typeData // dev.kord.cache.api.meta/CacheStatistics.typeData|{}typeData[0] final fun (): kotlin.collections/Map // dev.kord.cache.api.meta/CacheStatistics.typeData.|(){}[0] + + final inline fun <#A1: reified kotlin/Any?> getForType(): dev.kord.cache.api.meta/TypeStatistics? // dev.kord.cache.api.meta/CacheStatistics.getForType|getForType(){0§}[0] } + final class dev.kord.cache.api.meta/MetricsCache : dev.kord.cache.api/DataCache { // dev.kord.cache.api.meta/MetricsCache|null[0] constructor (dev.kord.cache.api/DataCache, dev.kord.cache.api.meta/StatisticsLogger = ...) // dev.kord.cache.api.meta/MetricsCache.|(dev.kord.cache.api.DataCache;dev.kord.cache.api.meta.StatisticsLogger){}[0] + + final val statistics // dev.kord.cache.api.meta/MetricsCache.statistics|{}statistics[0] + final fun (): dev.kord.cache.api.meta/CacheStatistics // dev.kord.cache.api.meta/MetricsCache.statistics.|(){}[0] + final fun <#A1: kotlin/Any> getEntry(kotlin.reflect/KType): dev.kord.cache.api/DataEntryCache<#A1>? // dev.kord.cache.api.meta/MetricsCache.getEntry|getEntry(kotlin.reflect.KType){0§}[0] final suspend fun register(dev.kord.cache.api.data/DataDescription) // dev.kord.cache.api.meta/MetricsCache.register|register(dev.kord.cache.api.data.DataDescription){}[0] final suspend fun register(kotlin.collections/Iterable>) // dev.kord.cache.api.meta/MetricsCache.register|register(kotlin.collections.Iterable>){}[0] final suspend fun register(kotlin/Array>...) // dev.kord.cache.api.meta/MetricsCache.register|register(kotlin.Array>...){}[0] - final val statistics // dev.kord.cache.api.meta/MetricsCache.statistics|{}statistics[0] - final fun (): dev.kord.cache.api.meta/CacheStatistics // dev.kord.cache.api.meta/MetricsCache.statistics.|(){}[0] } + final class dev.kord.cache.api.meta/StatisticsLogger { // dev.kord.cache.api.meta/StatisticsLogger|null[0] constructor () // dev.kord.cache.api.meta/StatisticsLogger.|(){}[0] - final fun getForType(kotlin.reflect/KType): dev.kord.cache.api.meta/TypeStatisticsLogger // dev.kord.cache.api.meta/StatisticsLogger.getForType|getForType(kotlin.reflect.KType){}[0] - final inline fun <#A1: reified kotlin/Any?> getForType(): dev.kord.cache.api.meta/TypeStatisticsLogger // dev.kord.cache.api.meta/StatisticsLogger.getForType|getForType(){0§}[0] + final val metaData // dev.kord.cache.api.meta/StatisticsLogger.metaData|{}metaData[0] final fun (): dev.kord.cache.api.meta/CacheStatistics // dev.kord.cache.api.meta/StatisticsLogger.metaData.|(){}[0] + + final fun getForType(kotlin.reflect/KType): dev.kord.cache.api.meta/TypeStatisticsLogger // dev.kord.cache.api.meta/StatisticsLogger.getForType|getForType(kotlin.reflect.KType){}[0] + final inline fun <#A1: reified kotlin/Any?> getForType(): dev.kord.cache.api.meta/TypeStatisticsLogger // dev.kord.cache.api.meta/StatisticsLogger.getForType|getForType(){0§}[0] } + final class dev.kord.cache.api.meta/TypeStatistics { // dev.kord.cache.api.meta/TypeStatistics|null[0] constructor (kotlin.reflect/KType, kotlin/Long, kotlin/Long) // dev.kord.cache.api.meta/TypeStatistics.|(kotlin.reflect.KType;kotlin.Long;kotlin.Long){}[0] + final val hitRatio // dev.kord.cache.api.meta/TypeStatistics.hitRatio|{}hitRatio[0] final fun (): kotlin/Double // dev.kord.cache.api.meta/TypeStatistics.hitRatio.|(){}[0] final val hits // dev.kord.cache.api.meta/TypeStatistics.hits|{}hits[0] @@ -152,12 +200,18 @@ final class dev.kord.cache.api.meta/TypeStatistics { // dev.kord.cache.api.meta/ final val type // dev.kord.cache.api.meta/TypeStatistics.type|{}type[0] final fun (): kotlin.reflect/KType // dev.kord.cache.api.meta/TypeStatistics.type.|(){}[0] } + final class dev.kord.cache.api.meta/TypeStatisticsLogger { // dev.kord.cache.api.meta/TypeStatisticsLogger|null[0] - final fun logHit() // dev.kord.cache.api.meta/TypeStatisticsLogger.logHit|logHit(){}[0] - final fun logQuery() // dev.kord.cache.api.meta/TypeStatisticsLogger.logQuery|logQuery(){}[0] final val type // dev.kord.cache.api.meta/TypeStatisticsLogger.type|{}type[0] final fun (): kotlin.reflect/KType // dev.kord.cache.api.meta/TypeStatisticsLogger.type.|(){}[0] + + final fun logHit() // dev.kord.cache.api.meta/TypeStatisticsLogger.logHit|logHit(){}[0] + final fun logQuery() // dev.kord.cache.api.meta/TypeStatisticsLogger.logQuery|logQuery(){}[0] } + +final val dev.kord.cache.api/logger // dev.kord.cache.api/logger|{}logger[0] + final fun (): io.github.oshai.kotlinlogging/KLogger // dev.kord.cache.api/logger.|(){}[0] + final fun (dev.kord.cache.api/DataCache).dev.kord.cache.api.meta/withMetrics(): dev.kord.cache.api.meta/MetricsCache // dev.kord.cache.api.meta/withMetrics|withMetrics@dev.kord.cache.api.DataCache(){}[0] final inline fun <#A: reified kotlin/Any, #B: kotlin/Any?> dev.kord.cache.api.data/description(kotlin.reflect/KProperty1<#A, #B>, kotlin/Function1, kotlin/Unit> = ...): dev.kord.cache.api.data/DataDescription<#A, #B> // dev.kord.cache.api.data/description|description(kotlin.reflect.KProperty1<0:0,0:1>;kotlin.Function1,kotlin.Unit>){0§;1§}[0] final inline fun <#A: reified kotlin/Any> (dev.kord.cache.api/DataCache).dev.kord.cache.api/find(kotlin/Function1, kotlin/Unit> = ...): dev.kord.cache.api/Query<#A> // dev.kord.cache.api/find|find@dev.kord.cache.api.DataCache(kotlin.Function1,kotlin.Unit>){0§}[0] @@ -176,15 +230,3 @@ final suspend inline fun <#A: reified kotlin/Any> (dev.kord.cache.api/DataCache) final suspend inline fun <#A: reified kotlin/Any> (dev.kord.cache.api/DataCache).dev.kord.cache.api/remove(kotlin/Function1, kotlin/Unit> = ...) // dev.kord.cache.api/remove|remove@dev.kord.cache.api.DataCache(kotlin.Function1,kotlin.Unit>){0§}[0] final suspend inline fun <#A: reified kotlin/Any> (dev.kord.cache.api/DataEntryCache<#A>).dev.kord.cache.api/count(kotlin/Function1, kotlin/Unit> = ...): kotlin/Long // dev.kord.cache.api/count|count@dev.kord.cache.api.DataEntryCache<0:0>(kotlin.Function1,kotlin.Unit>){0§}[0] final suspend inline fun <#A: reified kotlin/Any> (dev.kord.cache.api/DataEntryCache<#A>).dev.kord.cache.api/remove(kotlin/Function1, kotlin/Unit> = ...) // dev.kord.cache.api/remove|remove@dev.kord.cache.api.DataEntryCache<0:0>(kotlin.Function1,kotlin.Unit>){0§}[0] -final val dev.kord.cache.api/logger // dev.kord.cache.api/logger|{}logger[0] - final fun (): io.github.oshai.kotlinlogging/KLogger // dev.kord.cache.api/logger.|(){}[0] -open annotation class dev.kord.cache.api/Identity : kotlin/Annotation { // dev.kord.cache.api/Identity|null[0] - constructor () // dev.kord.cache.api/Identity.|(){}[0] -} -open annotation class dev.kord.cache.api/Link : kotlin/Annotation { // dev.kord.cache.api/Link|null[0] - constructor (kotlin.reflect/KClass<*>, kotlin/String) // dev.kord.cache.api/Link.|(kotlin.reflect.KClass<*>;kotlin.String){}[0] - final val name // dev.kord.cache.api/Link.name|{}name[0] - final fun (): kotlin/String // dev.kord.cache.api/Link.name.|(){}[0] - final val to // dev.kord.cache.api/Link.to|{}to[0] - final fun (): kotlin.reflect/KClass<*> // dev.kord.cache.api/Link.to.|(){}[0] -} diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 6d05367..596e2f9 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -49,6 +49,11 @@ kotlin { implementation(libs.kotlin.test.js) } } + wasmJsTest { + dependencies { + implementation(libs.kotlin.test.wasmJs) + } + } } @OptIn(ExperimentalKotlinGradlePluginApi::class) diff --git a/buildSrc/src/main/kotlin/Documentation.kt b/buildSrc/src/main/kotlin/Documentation.kt index f69165b..33ba653 100644 --- a/buildSrc/src/main/kotlin/Documentation.kt +++ b/buildSrc/src/main/kotlin/Documentation.kt @@ -1,10 +1,9 @@ import org.gradle.api.Project -import org.jetbrains.dokka.gradle.DokkaTask -import org.gradle.kotlin.dsl.* +import org.gradle.kotlin.dsl.assign import org.jetbrains.dokka.gradle.DokkaExtension fun DokkaExtension.configure(project: Project, additional: DokkaExtension.() -> Unit = {}) { - this.dokkaPublicationDirectory.set(project.file("${project.projectDir}/dokka/kord/")) + this.basePublicationsDirectory.set(project.file("${project.projectDir}/dokka/kord/")) dokkaSourceSets.configureEach { sourceLink { diff --git a/buildSrc/src/main/kotlin/multiplatform-module.gradle.kts b/buildSrc/src/main/kotlin/multiplatform-module.gradle.kts index 389681a..80995d6 100644 --- a/buildSrc/src/main/kotlin/multiplatform-module.gradle.kts +++ b/buildSrc/src/main/kotlin/multiplatform-module.gradle.kts @@ -1,7 +1,10 @@ +@file:OptIn(ExperimentalWasmDsl::class) + import com.vanniktech.maven.publish.JavadocJar import com.vanniktech.maven.publish.KotlinMultiplatform import kotlinx.validation.ExperimentalBCVApi import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest @@ -19,6 +22,7 @@ kotlin { common { group("nonJvm") { withJs() + withWasmJs() withNative() } } @@ -35,6 +39,11 @@ kotlin { nodejs() } + wasmJs { + browser() + nodejs() + } + compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") } @@ -64,7 +73,7 @@ tasks { getByName("jvmTest") { useJUnitPlatform() } - withType() { + withType { enabled = false } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f69b1d4..1a797dc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,26 +1,27 @@ [versions] -coroutines = "1.9.0" +coroutines = "1.10.2" stately = "2.1.0" -kotlinx-atomicfu = "0.25.0" -kotlin = "2.0.21" -kotlin-serialization = "1.7.3" -kotlinx-benchmark = "0.4.12" +kotlinx-atomicfu = "0.27.0" +kotlin = "2.1.21-RC" +kotlin-serialization = "1.8.1" +kotlinx-benchmark = "0.4.13" jmh = "1.37" [libraries] -kotlin-logging = { group = "io.github.oshai", name = "kotlin-logging", version = "7.0.0" } +kotlin-logging = { group = "io.github.oshai", name = "kotlin-logging", version = "7.0.7" } slf4j-api = { group = "org.slf4j", name = "slf4j-api", version = "2.0.16" } # implementations stately-collections = { module = "co.touchlab:stately-concurrent-collections", version.ref = "stately" } stately-concurrency = { module = "co.touchlab:stately-concurrency", version.ref = "stately" } -caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.1.8" } -lettuce = { module = "io.lettuce:lettuce-core", version = "6.4.0.RELEASE" } +caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.2.0" } +lettuce = { module = "io.lettuce:lettuce-core", version = "6.5.5.RELEASE" } # tests kotlin-test-annotations = { group = "org.jetbrains.kotlin", name = "kotlin-test-annotations-common", version.ref = "kotlin" } kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test-common", version.ref = "kotlin" } kotlin-test-js = { group = "org.jetbrains.kotlin", name = "kotlin-test-js", version.ref = "kotlin" } +kotlin-test-wasmJs = { group = "org.jetbrains.kotlin", name = "kotlin-test-wasm-js", version.ref = "kotlin" } kotlin-test-junit5 = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit5", version.ref = "kotlin" } embedded-redis = { module = "it.ozimov:embedded-redis", version = "0.7.3" } @@ -36,10 +37,10 @@ kotlinx-benchmark = { group = "org.jetbrains.kotlinx", name = "kotlinx-benchmark # plugins atomicfu-plugin = { module = "org.jetbrains.kotlinx:atomicfu-gradle-plugin", version.ref = "kotlinx-atomicfu" } kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } -binary-compatibility-validator-plugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version = "0.16.3" } -dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version = "2.0.0-Beta" } -maven-publish-plugin = { module = "com.vanniktech:gradle-maven-publish-plugin", version = "0.30.0" } -kord-gradle-plugin = { module = "dev.kord:gradle-tools", version = "1.7.1" } +binary-compatibility-validator-plugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version = "0.17.0" } +dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version = "2.0.0" } +maven-publish-plugin = { module = "com.vanniktech:gradle-maven-publish-plugin", version = "0.31.0" } +kord-gradle-plugin = { module = "dev.kord:gradle-tools", version = "1.9.2" } [bundles] stately = ["stately-collections", "stately-concurrency"] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index df97d72..49ddf28 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-rc-2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index ad23f8f..1a99bee 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -87,33 +87,12 @@ dependencies: "@types/node" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.21.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.1.tgz#110b441a210d53ab47795124dbc3e9bb993d1e7c" - integrity sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/json-schema@*", "@types/json-schema@^7.0.8": +"@types/json-schema@^7.0.8": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -680,10 +659,10 @@ engine.io@~6.5.2: engine.io-parser "~5.2.1" ws "~8.11.0" -enhanced-resolve@^5.17.0: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== +enhanced-resolve@^5.17.1: + version "5.18.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -1142,10 +1121,10 @@ karma-webpack@5.0.1: minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.3.tgz#763e500f99597218bbb536de1a14acc4ceea7ce8" - integrity sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q== +karma@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1177,6 +1156,13 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kotlin-web-helpers@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" + integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== + dependencies: + format-util "^1.0.5" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -1280,10 +1266,10 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.7.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.0.tgz#9e5cbed8fa9b37537a25bd1f7fb4f6fc45458b9a" - integrity sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA== +mocha@10.7.3: + version "10.7.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== dependencies: ansi-colors "^4.1.3" browser-stdout "^1.3.1" @@ -1879,12 +1865,11 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.93.0: - version "5.93.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.93.0.tgz#2e89ec7035579bdfba9760d26c63ac5c3462a5e5" - integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA== +webpack@5.94.0: + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" @@ -1893,7 +1878,7 @@ webpack@5.93.0: acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" diff --git a/map/api/map.klib.api b/map/api/map.klib.api index 94fc3f0..691a412 100644 --- a/map/api/map.klib.api +++ b/map/api/map.klib.api @@ -1,5 +1,5 @@ // Klib ABI Dump -// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, watchosArm64, watchosSimulatorArm64, watchosX64] +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm64, watchosSimulatorArm64, watchosX64] // Rendering settings: // - Signature version: 2 // - Show manifest properties: true @@ -14,6 +14,8 @@ abstract interface <#A: kotlin/Any?, #B: kotlin/Any?> dev.kord.cache.map/MapLike abstract suspend fun get(#A): #B? // dev.kord.cache.map/MapLikeCollection.get|get(1:0){}[0] abstract suspend fun put(#A, #B) // dev.kord.cache.map/MapLikeCollection.put|put(1:0;1:1){}[0] abstract suspend fun remove(#A) // dev.kord.cache.map/MapLikeCollection.remove|remove(1:0){}[0] + open suspend fun contains(#A): kotlin/Boolean // dev.kord.cache.map/MapLikeCollection.contains|contains(1:0){}[0] + final object Companion { // dev.kord.cache.map/MapLikeCollection.Companion|null[0] final fun <#A2: kotlin/Any?, #B2: kotlin/Any> concurrentHashMap(co.touchlab.stately.collections/ConcurrentMutableMap<#A2, #B2> = ...): dev.kord.cache.map/MapLikeCollection<#A2, #B2> // dev.kord.cache.map/MapLikeCollection.Companion.concurrentHashMap|concurrentHashMap(co.touchlab.stately.collections.ConcurrentMutableMap<0:0,0:1>){0§;1§}[0] final fun <#A2: kotlin/Any?, #B2: kotlin/Any> from(kotlin.collections/MutableMap<#A2, #B2>): dev.kord.cache.map/MapLikeCollection<#A2, #B2> // dev.kord.cache.map/MapLikeCollection.Companion.from|from(kotlin.collections.MutableMap<0:0,0:1>){0§;1§}[0] @@ -21,22 +23,28 @@ abstract interface <#A: kotlin/Any?, #B: kotlin/Any?> dev.kord.cache.map/MapLike final fun <#A2: kotlin/Any?, #B2: kotlin/Any> none(): dev.kord.cache.map/MapLikeCollection<#A2, #B2> // dev.kord.cache.map/MapLikeCollection.Companion.none|none(){0§;1§}[0] final fun <#A2: kotlin/Any?, #B2: kotlin/Any> readOnly(kotlin.collections/Map<#A2, #B2>): dev.kord.cache.map/MapLikeCollection<#A2, #B2> // dev.kord.cache.map/MapLikeCollection.Companion.readOnly|readOnly(kotlin.collections.Map<0:0,0:1>){0§;1§}[0] } - open suspend fun contains(#A): kotlin/Boolean // dev.kord.cache.map/MapLikeCollection.contains|contains(1:0){}[0] } + final class <#A: kotlin/Any?, #B: kotlin/Any> dev.kord.cache.map.internal/MapEntryCache : dev.kord.cache.api/DataEntryCache<#B> { // dev.kord.cache.map.internal/MapEntryCache|null[0] constructor (dev.kord.cache.api/DataCache, dev.kord.cache.api.data/DataDescription<#B, #A>, dev.kord.cache.map/MapLikeCollection<#A, #B>) // dev.kord.cache.map.internal/MapEntryCache.|(dev.kord.cache.api.DataCache;dev.kord.cache.api.data.DataDescription<1:1,1:0>;dev.kord.cache.map.MapLikeCollection<1:0,1:1>){}[0] + final fun query(): dev.kord.cache.api/QueryBuilder<#B> // dev.kord.cache.map.internal/MapEntryCache.query|query(){}[0] final suspend fun put(#B) // dev.kord.cache.map.internal/MapEntryCache.put|put(1:1){}[0] } -final fun <#A: kotlin/Any?, #B: kotlin/Any> (kotlin.collections/MutableMap<#A, #B>).dev.kord.cache.map/toMapLike(kotlin/Boolean): dev.kord.cache.map/MapLikeCollection<#A, #B> // dev.kord.cache.map/toMapLike|toMapLike@kotlin.collections.MutableMap<0:0,0:1>(kotlin.Boolean){0§;1§}[0] + final object dev.kord.cache.map/MapDataCache { // dev.kord.cache.map/MapDataCache|null[0] + final inline fun invoke(kotlin/Function1 = ...): dev.kord.cache.api/DataCache // dev.kord.cache.map/MapDataCache.invoke|invoke(kotlin.Function1){}[0] + final class Builder { // dev.kord.cache.map/MapDataCache.Builder|null[0] constructor () // dev.kord.cache.map/MapDataCache.Builder.|(){}[0] + + final val suppliers // dev.kord.cache.map/MapDataCache.Builder.suppliers|{}suppliers[0] + final fun (): kotlin.collections/MutableMap, dev.kord.cache.map/MapLikeCollection>> // dev.kord.cache.map/MapDataCache.Builder.suppliers.|(){}[0] + final fun build(): dev.kord.cache.api/DataCache // dev.kord.cache.map/MapDataCache.Builder.build|build(){}[0] final fun default(kotlin/Function2, dev.kord.cache.map/MapLikeCollection>) // dev.kord.cache.map/MapDataCache.Builder.default|default(kotlin.Function2,dev.kord.cache.map.MapLikeCollection>){}[0] final inline fun <#A2: reified kotlin/Any> forType(noinline kotlin/Function2, dev.kord.cache.map/MapLikeCollection>?) // dev.kord.cache.map/MapDataCache.Builder.forType|forType(kotlin.Function2,dev.kord.cache.map.MapLikeCollection>?){0§}[0] - final val suppliers // dev.kord.cache.map/MapDataCache.Builder.suppliers|{}suppliers[0] - final fun (): kotlin.collections/MutableMap, dev.kord.cache.map/MapLikeCollection>> // dev.kord.cache.map/MapDataCache.Builder.suppliers.|(){}[0] } - final inline fun invoke(kotlin/Function1 = ...): dev.kord.cache.api/DataCache // dev.kord.cache.map/MapDataCache.invoke|invoke(kotlin.Function1){}[0] } + +final fun <#A: kotlin/Any?, #B: kotlin/Any> (kotlin.collections/MutableMap<#A, #B>).dev.kord.cache.map/toMapLike(kotlin/Boolean): dev.kord.cache.map/MapLikeCollection<#A, #B> // dev.kord.cache.map/toMapLike|toMapLike@kotlin.collections.MutableMap<0:0,0:1>(kotlin.Boolean){0§;1§}[0] diff --git a/tck/api/tck.klib.api b/tck/api/tck.klib.api index daba283..bfd104e 100644 --- a/tck/api/tck.klib.api +++ b/tck/api/tck.klib.api @@ -1,5 +1,5 @@ // Klib ABI Dump -// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, watchosArm64, watchosSimulatorArm64, watchosX64] +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm64, watchosSimulatorArm64, watchosX64] // Alias: native => [iosArm64, iosSimulatorArm64, iosX64, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, watchosArm64, watchosSimulatorArm64, watchosX64] // Rendering settings: // - Signature version: 2 @@ -8,10 +8,16 @@ // Library unique name: abstract class dev.kord.cache.tck/DataCacheVerifier { // dev.kord.cache.tck/DataCacheVerifier|null[0] - abstract fun newCache(): dev.kord.cache.api/DataCache // dev.kord.cache.tck/DataCacheVerifier.newCache|newCache(){}[0] constructor () // dev.kord.cache.tck/DataCacheVerifier.|(){}[0] + + final val serializers // dev.kord.cache.tck/DataCacheVerifier.serializers|{}serializers[0] + final fun (): kotlin.collections/Map, kotlinx.serialization/KSerializer<*>> // dev.kord.cache.tck/DataCacheVerifier.serializers.|(){}[0] + + abstract fun newCache(): dev.kord.cache.api/DataCache // dev.kord.cache.tck/DataCacheVerifier.newCache|newCache(){}[0] + final class Context : kotlinx.coroutines/CoroutineScope { // dev.kord.cache.tck/DataCacheVerifier.Context|null[0] constructor (dev.kord.cache.api/DataCache, kotlinx.coroutines/CoroutineScope) // dev.kord.cache.tck/DataCacheVerifier.Context.|(dev.kord.cache.api.DataCache;kotlinx.coroutines.CoroutineScope){}[0] + final val coroutineContext // dev.kord.cache.tck/DataCacheVerifier.Context.coroutineContext|{}coroutineContext[0] final fun (): kotlin.coroutines/CoroutineContext // dev.kord.cache.tck/DataCacheVerifier.Context.coroutineContext.|(){}[0] final val datacache // dev.kord.cache.tck/DataCacheVerifier.Context.datacache|{}datacache[0] @@ -19,50 +25,69 @@ abstract class dev.kord.cache.tck/DataCacheVerifier { // dev.kord.cache.tck/Data final val scope // dev.kord.cache.tck/DataCacheVerifier.Context.scope|{}scope[0] final fun (): kotlinx.coroutines/CoroutineScope // dev.kord.cache.tck/DataCacheVerifier.Context.scope.|(){}[0] } - final val serializers // dev.kord.cache.tck/DataCacheVerifier.serializers|{}serializers[0] - final fun (): kotlin.collections/Map, kotlinx.serialization/KSerializer<*>> // dev.kord.cache.tck/DataCacheVerifier.serializers.|(){}[0] + // Targets: [native] final fun concurrent reading and writing should be allowed() // dev.kord.cache.tck/DataCacheVerifier.concurrent reading and writing should be allowed|concurrent reading and writing should be allowed(){}[0] + // Targets: [native] final fun cyclical remove should not hang() // dev.kord.cache.tck/DataCacheVerifier.cyclical remove should not hang|cyclical remove should not hang(){}[0] + // Targets: [native] final fun delete should cascade() // dev.kord.cache.tck/DataCacheVerifier.delete should cascade|delete should cascade(){}[0] + // Targets: [native] final fun delete should not cascade nullable() // dev.kord.cache.tck/DataCacheVerifier.delete should not cascade nullable|delete should not cascade nullable(){}[0] + // Targets: [native] final fun insert should be queryable() // dev.kord.cache.tck/DataCacheVerifier.insert should be queryable|insert should be queryable(){}[0] + // Targets: [native] final fun removed entry should not be found() // dev.kord.cache.tck/DataCacheVerifier.removed entry should not be found|removed entry should not be found(){}[0] + // Targets: [native] final fun runTestWithDataCache(kotlin.coroutines/SuspendFunction1) // dev.kord.cache.tck/DataCacheVerifier.runTestWithDataCache|runTestWithDataCache(kotlin.coroutines.SuspendFunction1){}[0] + // Targets: [native] final fun update should modify correctly() // dev.kord.cache.tck/DataCacheVerifier.update should modify correctly|update should modify correctly(){}[0] + // Targets: [native] final fun update that changes identity throws() // dev.kord.cache.tck/DataCacheVerifier.update that changes identity throws|update that changes identity throws(){}[0] - // Targets: [js] - final fun concurrent reading and writing should be allowed(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.concurrent reading and writing should be allowed|concurrent reading and writing should be allowed(){}[0] - // Targets: [js] - final fun cyclical remove should not hang(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.cyclical remove should not hang|cyclical remove should not hang(){}[0] - // Targets: [js] - final fun delete should cascade(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.delete should cascade|delete should cascade(){}[0] - // Targets: [js] - final fun delete should not cascade nullable(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.delete should not cascade nullable|delete should not cascade nullable(){}[0] - // Targets: [js] - final fun insert should be queryable(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.insert should be queryable|insert should be queryable(){}[0] - // Targets: [js] - final fun removed entry should not be found(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.removed entry should not be found|removed entry should not be found(){}[0] - // Targets: [js] - final fun runTestWithDataCache(kotlin.coroutines/SuspendFunction1): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.runTestWithDataCache|runTestWithDataCache(kotlin.coroutines.SuspendFunction1){}[0] - // Targets: [js] - final fun update should modify correctly(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.update should modify correctly|update should modify correctly(){}[0] - // Targets: [js] - final fun update that changes identity throws(): kotlin.js/Promise // dev.kord.cache.tck/DataCacheVerifier.update that changes identity throws|update that changes identity throws(){}[0] + + // Targets: [js, wasmJs] + final fun concurrent reading and writing should be allowed(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.concurrent reading and writing should be allowed|concurrent reading and writing should be allowed(){}[0] + + // Targets: [js, wasmJs] + final fun cyclical remove should not hang(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.cyclical remove should not hang|cyclical remove should not hang(){}[0] + + // Targets: [js, wasmJs] + final fun delete should cascade(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.delete should cascade|delete should cascade(){}[0] + + // Targets: [js, wasmJs] + final fun delete should not cascade nullable(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.delete should not cascade nullable|delete should not cascade nullable(){}[0] + + // Targets: [js, wasmJs] + final fun insert should be queryable(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.insert should be queryable|insert should be queryable(){}[0] + + // Targets: [js, wasmJs] + final fun removed entry should not be found(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.removed entry should not be found|removed entry should not be found(){}[0] + + // Targets: [js, wasmJs] + final fun runTestWithDataCache(kotlin.coroutines/SuspendFunction1): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.runTestWithDataCache|runTestWithDataCache(kotlin.coroutines.SuspendFunction1){}[0] + + // Targets: [js, wasmJs] + final fun update should modify correctly(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.update should modify correctly|update should modify correctly(){}[0] + + // Targets: [js, wasmJs] + final fun update that changes identity throws(): kotlinx.coroutines.test.internal/JsPromiseInterfaceForTesting // dev.kord.cache.tck/DataCacheVerifier.update that changes identity throws|update that changes identity throws(){}[0] } + final const val dev.kord.cache.tck/SHORT_DISPLAY_NAME // dev.kord.cache.tck/SHORT_DISPLAY_NAME|{}SHORT_DISPLAY_NAME[0] final fun (): kotlin/String // dev.kord.cache.tck/SHORT_DISPLAY_NAME.|(){}[0] -// Targets: [native] + +// Targets: [native, wasmJs] open annotation class dev.kord.cache.tck/RepeatedTest : kotlin/Annotation { // dev.kord.cache.tck/RepeatedTest|null[1] constructor (kotlin/Int, kotlin/String, kotlin/Int = ...) // dev.kord.cache.tck/RepeatedTest.|(kotlin.Int;kotlin.String;kotlin.Int){}[1] + final val failureThreshold // dev.kord.cache.tck/RepeatedTest.failureThreshold|{}failureThreshold[1] final fun (): kotlin/Int // dev.kord.cache.tck/RepeatedTest.failureThreshold.|(){}[1] final val name // dev.kord.cache.tck/RepeatedTest.name|{}name[1] @@ -70,9 +95,11 @@ open annotation class dev.kord.cache.tck/RepeatedTest : kotlin/Annotation { // d final val value // dev.kord.cache.tck/RepeatedTest.value|{}value[1] final fun (): kotlin/Int // dev.kord.cache.tck/RepeatedTest.value.|(){}[1] } + // Targets: [js] open annotation class dev.kord.cache.tck/RepeatedTest : kotlin/Annotation { // dev.kord.cache.tck/RepeatedTest|null[0] constructor (kotlin/Int, kotlin/String, kotlin/Int = ...) // dev.kord.cache.tck/RepeatedTest.|(kotlin.Int;kotlin.String;kotlin.Int){}[0] + final val failureThreshold // dev.kord.cache.tck/RepeatedTest.failureThreshold|{}failureThreshold[0] final fun (): kotlin/Int // dev.kord.cache.tck/RepeatedTest.failureThreshold.|(){}[0] final val name // dev.kord.cache.tck/RepeatedTest.name|{}name[0] diff --git a/tck/build.gradle.kts b/tck/build.gradle.kts index ca03312..5dbdb30 100644 --- a/tck/build.gradle.kts +++ b/tck/build.gradle.kts @@ -32,5 +32,11 @@ kotlin { api(libs.kotlin.test.js) } } + + wasmJsMain { + dependencies { + api(libs.kotlin.test.wasmJs) + } + } } }