68 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Changelog
0.25.7
Versions:Compose:1.8.0->1.8.1Xerial SQLite:3.49.1.0->3.50.1.0Okio:3.11.0->3.12.0Android AppCompat:1.7.0->1.7.1Android Fragment:1.8.6->1.8.8
0.25.6
Versions:Kotlin:2.1.20->2.1.21KSLog:1.4.1->1.4.2Compose:1.7.3->1.8.0Okio:3.10.2->3.11.0
0.25.5
Versions:Exposed:0.60.0->0.61.0Serialization:1.8.0->1.8.1Coroutines:1.10.1->1.10.2
Common:- Small performance optimization of 
MutableMap.applyDiff 
- Small performance optimization of 
 
0.25.4
Versions:Ktor:3.1.1->3.1.2Koin:4.0.2->4.0.4
Coroutines:- Add 
SmartKeyRWLocker.withWriteLocksextension with vararg keys 
- Add 
 Transactions:- Fix order of rollback actions calling
 
0.25.3
Coroutines:- Add extensions 
SmartRWLocker.alsoWithUnlockingOnSuccessAsyncandSmartRWLocker.alsoWithUnlockingOnSuccess - Fix of 
SmartRWLocker.lockWriteissue when it could lock write mutex without unlocking - Add tool 
SmartKeyRWLocker SmartSemaphoregot new propertymaxPermits- New extension 
SmartSemaphore.waitReleaseAll() 
- Add extensions 
 Transactions:- Add 
TransactionsDSL 
- Add 
 
0.25.2
Versions:Exposed:0.59.0->0.60.0
Repo:Cache:- Add extensions 
alsoInvalidate,alsoInvalidateAsync,alsoInvalidateSyncandalsoInvalidateSyncLogging 
- Add extensions 
 
Koin:- Add extensions 
singleSuspendandfactorySuspendfor defining of dependencies with suspendable blocks 
- Add extensions 
 
0.25.1
Coroutines:- Add 
SortedMapLikeBinaryTreeNode 
- Add 
 Pagination:Compose:- One more rework of 
InfinityPagedComponentandPagedComponent 
- One more rework of 
 
0.25.0
Repos:Cache:- All cache repos now do not have 
openvals - to avoid collisions in runtime 
- All cache repos now do not have 
 
0.24.9
Pagination:- Make alternative constructor parameter 
sizeofPaginationResultwith default value - Add 
Pagination.previousPageextension Compose:- Rework of 
InfinityPagedComponentContext - Rework of 
PagedComponent 
- Rework of 
 
- Make alternative constructor parameter 
 
0.24.8
Versions:Ktor:3.1.0->3.1.1KSP:2.1.10-1.0.30->2.1.10-1.0.31
Common:Compose:- Add component 
LoadableComponent 
- Add component 
 
Coroutines:- Add 
SortedBinaryTreeNode 
- Add 
 Pagination:Compose:- Add components 
PagedComponentandInfinityPagedComponent 
- Add components 
 
0.24.7
Versions:SQLite:3.49.0.0->3.49.1.0
Common:- Add 
retryOnFailureutility for simple retries code writing 
- Add 
 Repos:Cache:- Fix of 
FullKeyValueCacheRepofields usage 
- Fix of 
 Exposed:AbstractExposedKeyValuesRepowill produceonValueRemovedevent onsetif some data has been removed
0.24.6
Versions:KSLog:1.4.0->1.4.1Exposed:0.58.0->0.59.0SQLite:3.48.0.0->3.49.0.0AndroidFragment:1.8.5->1.8.6
Coroutines:- Safely functions has been replaced with 
Loggingvariations (resolve of #541) 
- Safely functions has been replaced with 
 KSP:Variations:- Module has been created
 
0.24.5
Versions:Kotlin:2.1.0->2.1.10SQLite:3.47.2.0->3.48.0.0Koin:4.0.1->4.0.2Android RecyclerView:1.3.2->1.4.0
0.24.4
Repos:Exposed:- Improve 
CommonExposedRepo.selectByIds 
- Improve 
 
FSM:- Fixes and improvements
 
0.24.3
Ksp:Sealed:- Fixes in processing of 
GenerateSealedTypesWorkaroundannotations 
- Fixes in processing of 
 
0.24.2
Versions:Exposed:0.57.0->0.58.0
Ksp:Sealed:- Add annotation 
GenerateSealedTypesWorkaroundwhich allow to generatesubtypeslists 
- Add annotation 
 
0.24.1
Versions:Serialization:1.7.3->1.8.0SQLite:3.47.1.0->3.47.2.0Koin:4.0.0->3.10.2OKio:3.9.1->3.10.2
0.24.0
Versions:Coroutines:1.9.0->1.10.1KSLog:1.3.6->1.4.0Compose:1.7.1->1.7.3Ktor:3.0.2->3.0.3
Common:- Rename 
Progressto more commonPercentage.Progressnow is typealias - Fix of 
Progress.compareToextension 
- Rename 
 
0.23.2
Versions:Kotlin:2.0.21->2.1.0Exposed:0.56.0->0.57.0Xerial SQLite:3.47.0.0->3.47.1.0Ktor:3.0.1->3.0.2
Coroutines:- Small refactor in 
AccumulatorFlowto userunCatchinginstead ofrunCatchingSafely 
- Small refactor in 
 
0.23.1
Versions:Compose:1.7.0->1.7.1Exposed:0.55.0->0.56.0Xerial SQLite:3.46.1.3->3.47.0.0Android CoreKTX:1.13.1->1.15.0Android Fragment:1.8.4->1.8.5
Coroutines:Compose:- Add 
StyleSheetsAggregator 
- Add 
 
0.23.0
THIS UPDATE MAY CONTAINS SOME BREAKING CHANGES (INCLUDING BREAKING CHANGES IN BYTECODE LAYER) RELATED TO UPDATE OF KTOR DEPENDENCY
THIS UPDATE CONTAINS CHANGES ACCORDING TO MIGRATION GUIDE FROM KTOR
Versions:Ktor:2.3.12->3.0.1
Ktor:Common:- Extension 
Input.downloadToTempFilehas changed its receiver toSource. Its API can be broken 
- Extension 
 Client:- Extension 
HttpClient.tempUploadhas changed type ofonUploadargument fromOnUploadCallbacktoProgressListener - All extensions 
HttpClient.uniUploadhave changed type ofonUploadargument fromOnUploadCallbacktoProgressListener 
- Extension 
 Server:- Remove redundant 
ApplicationCall.respondextension due to its presence in the ktor library 
- Remove redundant 
 
0.22.9
Repos:Cache:- Add direct caching repos
 
0.22.8
Common:- Add 
List.breakAsPairsextension - Add 
Sequence.padWith/Sequence.padStart/Sequence.padEndandList.padWith/List.padStart/List.padEndextensions 
- Add 
 
0.22.7
Versions:Kotlin:2.0.20->2.0.21Compose:1.7.0-rc01->1.7.0
KSP:Sealed:- Change package of 
GenerateSealedWorkaround. Migration: replacedev.inmo.microutils.kps.sealed.GenerateSealedWorkaround->dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround 
- Change package of 
 
0.22.6
KSP:Generator:- Add extension 
KSClassDeclaration.buildSubFileName - Add extension 
KSClassDeclaration.companion - Add extension 
KSClassDeclaration.resolveSubclasses 
- Add extension 
 Sealed:- Improvements
 
0.22.5
Versions:Compose:1.7.0-beta02->1.7.0-rc01SQLite:3.46.1.2->3.46.1.3AndroidXFragment:1.8.3->1.8.4
Common:- Add extension 
withReplacedAt/withReplaced(#489) 
- Add extension 
 Coroutines:- Add extension 
Flow.debouncedBy 
- Add extension 
 Ktor:Server:- Add 
KtorApplicationConfigurator.Routing.Staticas solution for #488 
- Add 
 
0.22.4
Versions:Exposed:0.54.0->0.55.0SQLite:3.46.1.0->3.46.1.2
0.22.3
Versions:Serialization:1.7.2->1.7.3Coroutines:1.8.1->1.9.0Compose:1.7.0-alpha03->1.7.0-beta02Koin:3.5.6->4.0.0Okio:3.9.0->3.9.1AndroidFragment:1.8.2->1.8.3androidx.compose.material3:material3has been replaced withorg.jetbrains.compose.material3:material3
Common:JS:- Add several useful extensions
 
Compose:JS:- Add several useful extensions
 
0.22.2
Versions:Exposed:0.53.0->0.54.0SQLite:3.46.0.1->3.46.1.0
0.22.1
Versions:Kotlin:2.0.10->2.0.20Serialization:1.7.1->1.7.2KSLog:1.3.5->1.3.6Compose:1.7.0-alpha02->1.7.0-alpha03Ktor:2.3.11->2.3.12
0.22.0
THIS UPDATE CONTAINS BREAKING CHANGES ACCORDING TO UPDATE UP TO KOTLIN 2.0
Versions:Kotlin:1.9.23->2.0.10Serialization:1.6.3->1.7.1KSLog:1.3.4->1.3.5Compose:1.6.2->1.7.0-alpha02Exposed:0.50.1->0.53.0AndroidAppCompat:1.6.1->1.7.0AndroidFragment:1.7.1->1.8.2
0.21.6
KSP:Sealed:- Fixes in generation
 
0.21.5
KSP:- Add utility functions 
KSClassDeclaration.findSubClasses Sealed:- Improve generation
 
- Add utility functions 
 
0.21.4
Common:Compose:- Add support of mingw, linux, arm64 targets
 
Coroutines:Compose:- Add support of mingw, linux, arm64 targets
 
Koin:- Add support of mingw, linux, arm64 targets
 
KSP:ClassCasts:- Add support of mingw, linux, arm64 targets
 
Sealed:- Add support of mingw, linux, arm64 targets
 
0.21.3
Colors:- Added as a module. It should be used by default in case you wish all the API currently realized for 
HEXAColor 
- Added as a module. It should be used by default in case you wish all the API currently realized for 
 Coroutines:- Fix of #374:
- Add vararg variants of 
awaitFirst - Add 
joinFirst 
 - Add vararg variants of 
 
- Fix of #374:
 
0.21.2
KSP:ClassCasts:- Module has been initialized
 
0.21.1
KSP:- Module has been initialized
 Generator:- Module has been initialized
 
Sealed:- Module has been initialized
 
0.21.0
THIS UPDATE CONTAINS BREAKING CHANGES IN safely*-ORIENTED FUNCTIONS
Coroutines:- All 
safelyfunctions lost theirsupervisorScopein favor to wrappingrunCatchingrunCatchingSafelyis the main handling function of allsafelyfunctionslaunchSafely*andasyncSafely*blocks lostCoroutineScopeas their receiver
 
- All 
 
0.20.52
Coroutines:- Small rework of weak jobs: add 
WeakScopefactory, rename old weal extensions and add kdocs 
- Small rework of weak jobs: add 
 
0.20.51
Versions:Android Fragment:1.7.0->1.7.1
Pagination:- Add 
Pagination.nextPageIfTrueandPagination.thisPageIftrueextensions to get the page according to condition pass status - Add 
PaginationResult.nextPageIfNotEmptyOrLastPageandPaginationResult.thisPageIfNotEmptyOrLastPage - Change all 
doForAllandgetAllextensions fo pagination to work basing onnextPageIfNotEmptyOrLastPageandthisPageIfNotEmptyOrLastPage 
- Add 
 
0.20.50
Versions:Coroutines:1.8.0->1.8.1KSLog:1.3.3->1.3.4Exposed:0.50.0->0.50.1Ktor:2.3.10->2.3.11
- A lot of inline functions became common functions due to inline with only noinline callbacks in arguments leads to low performance
 Coroutines:SmartMutex,SmartSemaphoreandSmartRWLockeras their user changed their state flow toSpecialMutableStateFlow
0.20.49
Repos:Common:- All 
Repos getdiffextensions KeyValueRepoandKeyValuesRepogetapplyDiffextension- Add new extensions 
on*flows for crud repos 
- All 
 
0.20.48
Versions:Android Core KTX:1.13.0->1.13.1AndroidX Fragment:1.6.2->1.7.0
0.20.47
Versions:Exposed:0.49.0->0.50.0
0.20.46
Common:- Now this repo depends on 
klock - Add new object-serializer 
DateTimeSerializerforklockserializer 
- Now this repo depends on 
 
0.20.45
Versions:Android Core KTX:1.12.0->1.13.0
0.20.44
Versions:Compose:1.6.1->1.6.2Koin:3.5.4->3.5.6
0.20.43
Versions:Ktor:2.3.9->2.3.10Koin:3.5.3->3.5.4
0.20.42
Repos:Generator:- Improvements
 
0.20.41
Repos:Exposed:AbstractExposedKeyValueRepo,ExposedKeyValueRepo,AbstractExposedKeyValuesRepo,ExposedKeyValuesRepogot opportunity to setup some part of their flows
0.20.40
Versions:KSLog:1.3.2->1.3.3Exposed:0.48.0->0.49.0UUID:0.8.2->0.8.4
0.20.39
Versions:Kotlin:1.9.22->1.9.23Korlibs:5.3.2->5.4.0Okio:3.8.0->3.9.0Compose:1.6.0->1.6.1ComposeMaterial3:1.2.0->1.2.1
0.20.38
Versions:Ktor:2.3.8->2.3.9
0.20.37
Versions:Compose:1.5.12->1.6.0Exposed:0.47.0->0.48.0
0.20.36
Versions:Serialization:1.6.2->1.6.3Korlibs:5.3.1->5.3.2
Repos:Cache:- Improve work and functionality of 
actualizeAlland subsequent functions - All internal repos 
invalidate/actualizeAllnow use commonactualizeAllfunctions 
- Improve work and functionality of 
 
0.20.35
Versions:Coroutines:1.7.3->1.8.0Material3:1.1.2->1.2.0
0.20.34
Repos:Common:- Improve default 
setrealization ofKeyValuesRepo 
- Improve default 
 
0.20.33
ColorsCommon:- Add opportunity to use 
HEXAColorwithahexcolors 
- Add opportunity to use 
 
0.20.32
Versions:Okio:3.7.0->3.8.0
Resources:- Make 
StringResourceserializable - Add several variants of builder usages
 
- Make 
 
0.20.31
Versions:Ktor:2.3.7->2.3.8
0.20.30
Versions:Exposed:0.46.0->0.47.0
0.20.29
Versions:Kotlin:1.9.21->1.9.22Compose:1.5.11->1.5.12Korlibs:5.3.0->5.3.1
0.20.28
Versions:Kotlin:1.9.22->1.9.21(downgrade)Compose:1.6.0-dev13691->1.5.11(downgrade)
0.20.27
Versions:Kotlin:1.9.21->1.9.22Compose:1.5.11->1.6.0-dev13691
0.20.26
Versions:Exposed:0.45.0->0.46.0. This update brinds new api deprecations in exposed
Resources:- Add opportunity to get default translation by passing 
nullasIetfLangargument - Add several useful extensions to get translations in 
JStarget 
- Add opportunity to get default translation by passing 
 
0.20.25
Colors:Common:- Module inited
 
0.20.24
Since this version depdendencies of klock and krypto replaced with com.soywiz.korge:korlibs-time and com.soywiz.korge:korlibs-crypto
Versions:Klock(since nowKorlibsTime):4.0.10->5.3.0Krypto(since nowKorlibsCrypto):4.0.10->5.3.0
Serialization:Mapper:Mapperpass decoder into callback of deserialization strategyMapperpass encoder into callback of serialization strategy
0.20.23
Versions:Koin:3.5.0->3.5.3Okio:3.6.0->3.7.0
LanguageCodes:- Fixes in intermediate language codes (like 
Chinese.Hans) - Rename 
IetfLanguageCodetoIetfLang- Rename all subsequent functions (including serializer)
 
 - New lazy properties 
knownLanguageCodesMap,knownLanguageCodesMapByLowerCasedKeysand several others 
- Fixes in intermediate language codes (like 
 
0.20.22
Common:- Add opportunity to create own 
Diffwith base constructor 
- Add opportunity to create own 
 
0.20.21
Resources:- Inited
 
0.20.20
Repos:Exposed:- Add opportunity for setup flows in 
AbstractExposedCRUDRepo 
- Add opportunity for setup flows in 
 
0.20.19
Versions:Ktor:2.3.6->2.3.7
0.20.18
Coroutines:SpecialMutableStateFlownow extendsMutableStateFlowCompose:- Deprecate 
FlowStatedue to its complexity in fixes 
- Deprecate 
 
0.20.17
Versions:Serialization:1.6.1->1.6.2
0.20.16
Versions:Exposed:0.44.1->0.45.0
Coroutines:- Add 
SpecialMutableStateFlow Compose:- Add 
FlowState 
- Add 
 
- Add 
 
0.20.15
Versions:Kotlin:1.9.20->1.9.21KSLog:1.3.0->1.3.1Compose:1.5.10->1.5.11
0.20.14
Versions:Serialization:1.6.0->1.6.1KSLog:1.2.4->1.3.0
0.20.13
Versions:Ktor:2.3.5->2.3.6UUID:0.8.1->0.8.2
0.20.12
It is experimental migration onto new gradle version. Be careful in use of this version
This update have JDK 17 in compatibility and target versions
0.20.11
Versions:Kotlin:1.9.20-RC2->1.9.20Exposed:0.44.0->0.44.1Compose:1.5.10-rc02->1.5.10
Coroutines:SmartRWLockernow will wait first unlock of write mutex for acquiring read
0.20.10
Versions:Kotlin:1.9.20-RC->1.9.20-RC1KSLog:1.2.1->1.2.2Compose:1.5.10-rc01->1.5.10-rc02RecyclerView:1.3.1->1.3.2
0.20.9
- Most of common modules now supports 
linuxArm64target 
0.20.8
THIS VERSION CONTAINS UPDATES OF DEPENDENCIES UP TO RC VERSIONS. USE WITH CAUTION
Versions:Kotlin:1.9.20-Beta2->1.9.20-RCCompose:1.5.10-beta02->1.5.10-rc01
0.20.7
THIS VERSION CONTAINS UPDATES OF DEPENDENCIES UP TO BETA VERSIONS. USE WITH CAUTION
Versions:Kotlin:1.9.10->1.9.20-Beta2Compose:1.5.1->1.5.10-beta02Exposed:0.43.0->0.44.0Ktor:2.3.4->2.3.5Koin:3.4.3->3.5.0Okio:3.5.0->3.6.0Android Core:1.10.1->1.12.0Android Compose Material:1.1.1->1.1.2
0.20.6
Repos:Exposed- Fixes in exposed key-values repos
 
0.20.5
Coroutines:- Fixes in 
SmartRWLocker 
- Fixes in 
 
0.20.4
Versions:Kotlin:1.9.0->1.9.10KSLog:1.2.0->1.2.1Compose:1.5.0->1.5.1UUID:0.8.0->0.8.1
0.20.3
Versions:Compose:1.4.3->1.5.0Exposed:0.42.1->0.43.0Ktor:2.3.3->2.3.4
Repos:Cache:- Fixes in locks of caches
 
0.20.2
- All main repos uses 
SmartRWLocker Versions:Serialization:1.5.1->1.6.0Exposed:0.42.0->0.42.1Korlibs:4.0.9->4.0.10
Androis SDK:33->34
0.20.1
SmallTextField:- Module is initialized
 
Pickers:- Module is initialized
 
Coroutines:- Add 
SmartSemaphore - Add 
SmartRWLocker 
- Add 
 
0.20.0
Versions:Kotlin:1.8.22->1.9.0KSLog:1.1.1->1.2.0Exposed:0.41.1->0.42.0UUID:0.7.1->0.8.0Korlibs:4.0.3->4.0.9Ktor:2.3.2->2.3.3Okio:3.4.0->3.5.0
0.19.9
Versions:Koin:3.4.2->3.4.3
Startup:- Now it is possible to start application in synchronous way
 
0.19.8
Versions:Coroutines:1.7.2->1.7.3Kotlin:1.8.20->1.8.22Compose:1.4.1->1.4.3Okio:3.3.0->3.4.0RecyclerView:1.3.0->1.3.1Fragment:1.6.0->1.6.1
Repos:- Fixes In 
KeyValueRepo.clear()of almost all inheritors ofKeyValueRepo Cache:- All full caches got 
skipStartInvalidateproperty. By default, this property isfalseand fully caching repos will be automatically invalidated on start of their work 
- All full caches got 
 
- Fixes In 
 
0.19.7
Versions:Coroutines:1.7.1->1.7.2
0.19.6
Versions:Coroutines:1.6.4->1.7.1Ktor:2.3.1->2.3.2Compose:1.4.0->1.4.1
0.19.5
Repos:Generator:- Fixes in new type generation
 
0.19.4
Versions:Koin:3.4.1->3.4.2Android Fragments:1.5.7->1.6.0
KoinGenerator- Fixes in new generic generator part
 
0.19.3
KoinGenerator- New getter methods now available with opportunity to use parameters
 - Old notation 
*Singleand*Factoryis deprecated since this release. With old will be generated newsingle*andfactory*notations for new generations - Add opportunity to use generic-oriented koin definitions
 
0.19.2
Versions:Ktor:2.3.0->2.3.1Koin:3.4.0->3.4.1Uuid:0.7.0->0.7.1
0.19.1
Versions:Korlibs:4.0.1->4.0.3Kotlin Poet:1.13.2->1.14.0
0.19.0
Versions:Korlibs:3.4.0->4.0.1
0.18.4
Koin:- New extension 
lazyInject 
- New extension 
 
0.18.3
Versions:Serialization:1.5.0->1.5.1Android Cor Ktx:1.10.0->1.10.1
0.18.2
Startup:- Now internal 
Jsonis fully customizable 
- Now internal 
 
0.18.1
Common:- Add 
MapDiff 
- Add 
 Coroutines:- Add 
SmartMutex 
- Add 
 
0.18.0
ALL PREVIOUSLY DEPRECATED FUNCTIONALITY HAVE BEEN REMOVED
Versions:Android Fragments:1.5.6->1.5.7
Ktor:Server:- Now it is possible to take query parameters as list
 
Repos:Common:- New 
WriteKeyValuesRepo.removeWithValue 
- New 
 Cache:- Rename full caching factories functions to 
fullyCached 
- Rename full caching factories functions to 
 
0.17.8
Versions:Ktor:2.2.4->2.3.0
0.17.7
Versions:Android CoreKtx:1.9.0->1.10.0
Startup:- Add support of 
linuxX64andmingwX64platforms 
- Add support of 
 
0.17.6
Versions:Kotlin:1.8.10->1.8.20KSLog:1.0.0->1.1.1Compose:1.3.1->1.4.0Koin:3.3.2->3.4.0RecyclerView:1.2.1->1.3.0Fragment:1.5.5->1.5.6
- Experimentally (
!!!) addlinuxX64andmingwX64targets 
0.17.5
Common:- Conversations of number primitives with bounds care
 
Repos:Common:- By default, 
getAllfor repos will take all the size of repo as page size - New extension for all built-in repos 
maxPagePagination 
- By default, 
 - All the repos got 
getAllfunctions 
0.17.4
Serialization:Mapper:- Module inited
 
Versions:Compose:1.3.1-rc02->1.3.1
0.17.3
Common:- Add 
fixedextensions forFloatandDouble - New function 
emptyDiff - Now you may pass custom 
comparisonFunto alldifffunctions 
- Add 
 
0.17.2
FSM:DefaultStatesManager.onUpdateContextsConflictResolverandDefaultStatesManager.onStartContextsConflictResolvernow returnfalseby default
0.17.1
- Hotfix for absence of jvm dependencies in android modules
 Versions:Ktor:2.2.3->2.2.4
0.17.0
Versions:Kotlin:1.7.20->1.8.10Serialization:1.4.1->1.5.0KSLog:0.5.4->1.0.0AppCompat:1.6.0->1.6.1
0.16.13
Repos:Generator:- Module has been created
 
0.16.12
Repos:Exposed:CommonExposedRepo.selectByIdsusesfoldRightby default instead of raw foreach
Koin:Generator:- Module has been created
 
0.16.11
LanguageCodes:- In android and JVM targets now available 
toJavaLocaleand from JavaLocaleconversations from/toIetfLanguageCode 
- In android and JVM targets now available 
 
0.16.10
Repos:Cache:- New transformer type: 
ReadCRUDFromKeyValueRepo - New transformer type: 
ReadKeyValueFromCRUDRepo 
- New transformer type: 
 
Pagination:- New 
paginateextensions withreversedsupport forList/Set 
- New 
 
0.16.9
Versions:Koin:3.2.2->3.3.2AppCompat:1.5.1->1.6.0
Ktor:ClientHttpResponse.bodyOrNullnow retrieve callback to check if body should be received or null- New extension 
HttpResponse.bodyOrNullOnNoContent 
0.16.8
Versions:Ktor:2.2.2->2.2.3
Ktor:Client- Fixes in 
HttpClient.uniUpload 
- Fixes in 
 Server- Fixes in 
PartData.FileItem.download 
- Fixes in 
 
Repos:Cache:- New type of caches: 
FallbackCacheRepo - Fixes in 
Write*variants of cached repos - New type 
ActionWrapper - New 
AutoRecache*classes for all types of repos asFallbackCacheRepos 
- New type of caches: 
 Common:- New transformations for key-value and key-values vice-verse
 - Fixes in 
FileReadKeyValueRepo 
0.16.7
Common:- New extensions 
ifTrue/ifFalse/alsoIfTrue/alsoIfFalse/letIfTrue/letIfFalse Diffnow is serializable- Add 
IndexedValueserializer repeatOnFailureextending: now you may pass any lambda to check if continue to try/do somethingCompose:- New extension 
MutableState.asState 
- New extension 
 
- New extensions 
 Coroutines:Compose:- All the 
Flowconversations to composeState/MutableState/SnapshotStateList/Listgot several new parameters Flow.toMutableStatenow is deprecated in favor toasMutableComposeState
- All the 
 
Repos:Cache:- New type 
FullCacheRepo - New type 
CommonCacheRepo CacheRepogotinvalidatemethod. It will fully reloadFullCacheRepoand just clearCommonCacheRepo- New extensions 
KVCache.actualizeAll 
- New type 
 
0.16.6
Startup:Launcher:- Improvements in 
StartLauncherPlugin#startmethods - Add opportunity to pass second argument on 
JVMplatform as log level 
- Improvements in 
 
Repos:Ktor:Client:- All clients repos got opportunity to customize their flows
 
Exposed:- Extensions 
eqOrIsNullandneqOrIsNotNullforColumn 
- Extensions 
 
0.16.5
Versions:Ktor:2.2.1->2.2.2
0.16.4
Coroutines:- Create 
launchInCurrentThread 
- Create 
 
0.16.3
Startup:Launcher:- All starting API have been moved into 
StartLauncherPluginand do not require serialize/deserialize cycle for now 
- All starting API have been moved into 
 
0.16.2
Versions:Compose:1.2.1->1.2.2
Startup:- Module become available on 
JStarget 
- Module become available on 
 
0.16.1
Coroutines:- New 
runCatchingSafely/safelyWithResultwith receivers 
- New 
 SafeWrapper:- Module inited
 
0.16.0
Versions:Ktor:2.1.3->2.2.1Android Fragment:1.5.3->1.5.5
0.15.1
Startup:- Inited :)
 Plugin:- Inited :)
 
Launcher:- Inited :)
 
0.15.0
Repos:CRUD:Common:- New method 
ReadCRUDRepo#getIdsByPagination 
- New method 
 Android:AbstractAndroidCRUDRepogot new abstract methodtoId
Exposed:CommonExposedReponew abstract propertyasId
Ktor:Client:KtorReadCRUDRepoClientnow requirespaginationIdType
LanguageCodes:- Updates and fixes in generation
 
MimeTypes:- Updates and fixes in generation
 
0.14.4
Common:JVM:- New extension 
downloadToTempFile 
- New extension 
 
Ktor:Server:- Small fix in 
handleUniUpload ApplicationCall#uniloadMultipartFilenow usesuniloadMultipart
- Small fix in 
 Common:- New extension 
downloadToTempFile 
- New extension 
 Client:- New extensions on top of 
uniUpload 
- New extensions on top of 
 
0.14.3
Common:- New type 
Progress 
- New type 
 Ktor:Client:- New universal 
uniUploadextension forHttpClient 
- New universal 
 Server:- New universal 
handleUniUploadextension forApplicationCall - Add extensions 
downloadanddownloadToTemporalFile 
- New universal 
 
0.14.2
Versions:Exposed:0.40.1->0.41.1
0.14.1
Versions:Klock:3.3.1->3.4.0UUID:0.5.0->0.6.0
0.14.0
ALL DEPRECATIONS HAVE BEEN REMOVED
Versions:Kotlin:1.7.10->1.7.20Klock:3.3.0->3.3.1Compose:1.2.0->1.2.1Exposed:0.39.2->0.40.1
0.13.2
Versions:Klock:3.1.0->3.3.0Ktor:2.1.2->2.1.3
0.13.1
Repos:Exposed:AbstractExposedWriteCRUDRepo#createAndInsertIdnow is optional and returns nullable value
0.13.0
ALL DEPRECATIONS HAVE BEEN REMOVED A LOT OF KTOR METHODS RELATED TO UnifierRouter/UnifiedRequester HAVE BEEN REMOVED
Repos:Exposed:AbstractExposedWriteCRUDRepogot two new methods:updatewithitasUpdateBuilder<Int>andcreateAndInsertId- Old 
updatemethod has been deprecated and not recommended to override anymore in realizations - Old 
insertmethod now isopeninstead ofabstractand can be omitted 
- Old 
 AbstractExposedKeyValueRepogot two new methods:updatewithitasUpdateBuilder<Int>andinsertKey- Old 
updatemethod has been deprecated and not recommended to override anymore - Old 
insertmethod now isopeninstead ofabstractand can be omitted in realizations 
- Old 
 
0.12.17
Versions:JB Compose:1.2.0-alpha01-dev774->1.2.0-beta02Ktor:2.1.1->2.1.2Koin:3.2.0->3.2.2
0.12.16
Coroutines:Android:- Add class 
FlowOnHierarchyChangeListener - Add 
ViewGroup#setOnHierarchyChangeListenerRecursively(OnHierarchyChangeListener) 
- Add class 
 
0.12.15
Common:applyDiffwill returnDiffobject since this releaseAndroid:- New functions/extensions 
findViewsByTagandfindViewsByTagInActivity 
- New functions/extensions 
 
Coroutines:- Add 
FlowextensionsflatMap,flatMapNotNullandflatten - Add 
FlowextensionstakeNotNullandfilterNotNull 
- Add 
 
0.12.14
Versions:Android CoreKTX:1.8.0->1.9.0Android AppCompat:1.4.2->1.5.1- Android Compile SDK: 32 -> 33
 - Android Build Tools: 32.0.0 -> 33.0.0
 
Common:Android:- Add 
argumentOrNull/argumentOrThrowdelegates for fragments 
- Add 
 
Coroutines:- Rewrite 
awaitFirstWithDeferredontoCompletableDeferredinstead of coroutines suspending 
- Rewrite 
 
0.12.13
Coroutines:- Add opportunity to use markers in actors (solution of #160)
 
Koin:- Module inited :)
 
Repos:Android:- Add typealias 
KeyValueSPRepoand opportunity to create shared preferencesKeyValuerepo withKeyValueStore(...)(fix of #155) 
- Add typealias 
 
0.12.12
Common:Compose:JS:- Add 
SkeletonAnimationstylesheet 
- Add 
 
0.12.11
Repos:Cache:- Override 
KeyValuecache methodvalues 
- Override 
 
0.12.10
Repos:Cache:- Hotfix in key values 
get 
- Hotfix in key values 
 
0.12.9
Versions:Klock:3.0.0->3.1.0
Repos:Cache:- Fixes in key values cache
 
0.12.8
Versions:Ktor:2.1.0->2.1.1Compose:1.2.0-alpha01-dev764->1.2.0-alpha01-dev774
Ktor:Client:- New extension 
HttpClient#bodyOrNullwhich returnsnullin case when server responded withNo Content(204) 
- New extension 
 Server:- New extension 
ApplicationCall#respondOrNoContentwhich respondsNo Content(204) when passed data is null 
- New extension 
 
0.12.7
Repos:Cache:- Force 
WriteCRUDCacheRepoto subscribe on new and updated objects of parent repo 
- Force 
 
Pagination:- New function 
changeResultsUnchecked(Pagination) 
- New function 
 
0.12.6
MimeeTypes>:- Fixed absence of 
image/*in known mime types 
- Fixed absence of 
 
0.12.5
Repos:Exposed:- Fixes in 
paginateextensions 
- Fixes in 
 
0.12.4
Versions:Kotlin:1.7.0->1.7.10Compose:1.2.0-alpha01-dev755->1.2.0-alpha01-dev764
0.12.3
Repos:Exposed:- Add abstract exposed variants of 
KeyValueandKeyValuesrepos - Add new extension 
Query#selectPaginated 
- Add abstract exposed variants of 
 
0.12.2
Versions:Serialization:1.4.0-RC->1.4.0Compose:1.2.0-alpha01-dev753->1.2.0-alpha01-dev755
0.12.1
Versions:Ktor:2.0.3->2.1.0
0.12.0
OLD DEPRECATIONS HAVE BEEN REMOVED
MINIMAL ANDROID API HAS BEEN ENLARGED UP TO API 21 (Android 5.0)
VersionsKotlin:1.6.21->1.7.0Coroutines:1.6.3->1.6.4Exposed:0.38.2->0.39.2Compose:1.2.0-alpha01-dev729->1.2.0-alpha01-dev753Klock:2.7.0->3.0.0uuid:0.4.1->0.5.0Android Core KTX:1.7.0->1.8.0Android AppCompat:1.4.1->1.4.2
Ktor:- All previously standard functions related to work with binary data by default have been deprecated
 
0.11.14
Pagination:PaginationResultgot new fieldobjectsNumberwhich by default is a times betweenpagesNumberandsize
0.11.13
Versions:Coroutines:1.6.3->1.6.4Compose:1.2.0-alpha01-dev629->1.2.0-alpha01-dev731
0.11.12
Repos:Common:JVM:- Fixes in 
ReadFileKeyValueRepomethods (values/keys) 
- Fixes in 
 
0.11.11
Crypto:hmacSha256has been deprecated
Ktor:Client:BodyPairhas been deprecated
Repos:Cache:- New interface 
CacheRepo - New interface 
FullCacheRepo actualize*methods inside of full cache repos now open for overriding
- New interface 
 
0.11.10
Repos:Cache:KVCachehas been replaced to the packagedev.inmo.micro_utils.repos.cacheSimpleKVCachehas been replaced to the packagedev.inmo.micro_utils.repos.cache- New 
KVCachesubtype -FullKVCache - Add 
Full*variants of standard repos - Add 
cached/caching(for write repos) extensions for all standard types of repos 
0.11.9
VersionsCoroutines:1.6.1->1.6.3Ktor:2.0.2->2.0.3Compose:1.2.0-alpha01-dev686->1.2.0-alpha01-dev729
0.11.8
Repos:Common:- Fixes in 
FileKeyValueRepo 
- Fixes in 
 
0.11.7
Common:- New abstractions 
SimpleMapperandSimpleSuspendableMapper 
- New abstractions 
 Repos:Common:- Add mappers for 
CRUDRepo 
- Add mappers for 
 
0.11.6
FSM:Common- Several fixes related to the jobs handling
 
0.11.5
Coroutines:Compose:- Add extension 
StateFlow#asMutableComposeListStateandStateFlow#asComposeList - Add extension 
StateFlow#asMutableComposeState/StateFlow#asComposeState 
- Add extension 
 
0.11.4
THIS VERSION HAS BEEN BROKEN, DO NOT USE IT
0.11.3
Ktor:- Support of 
WebSocketshas been improvedClient:- New extensions: 
HttpClient#openBaseWebSocketFlow,HttpClient#openWebSocketFlow,HttpClient#openSecureWebSocketFlow 
- New extensions: 
 
 
- Support of 
 
0.11.2
Ktor:- Support of 
WebSocketshas been improved and added fixes inside of clients 
- Support of 
 
0.11.1
ReposKtor- In 
configureReadKeyValueRepoRoutesandconfigureReadKeyValuesRepoRoutesconfigurators fixed requiring ofreversedproperty 
- In 
 
0.11.0
VersionsUUID:0.4.0->0.4.1
KtorClient:- New extension fun 
HttpResponse#throwOnUnsuccess - All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping 
ContentNegotiationin mind 
- New extension fun 
 Server:- All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping 
ContentNegotiationin mind 
- All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping 
 
ReposKtor:- Fully rewritten work with all declared repositories
 - All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping 
ContentNegotiationin mind 
0.10.8
Common- Add 
Element.isOverflow*extension properties 
- Add 
 
0.10.7
Pagination:- Now it is possible to use 
doForAll*andgetForAllfunctions in non suspend places 
- Now it is possible to use 
 
0.10.6
VersionsKtor:2.0.1->2.0.2
CommonJS:- Add 
ResizeObserverfunctionality 
- Add 
 
0.10.5
VersionsCompose:1.2.0-alpha01-dev683->1.2.0-alpha01-dev686
ReposAndroid:- New function 
SharedPreferencesKeyValueRepo 
- New function 
 
FSM- Add 
StateHandlingErrorHandlerand opportunity to handle states handling errors 
- Add 
 
0.10.4
Versions:Serialization:1.3.2->1.3.3
0.10.3
Versions:Compose:1.2.0-alpha01-dev682->1.2.0-alpha01-dev683
Coroutines:- Fixes in 
AccumulatorFlow 
- Fixes in 
 
0.10.2
Versions:Compose:1.2.0-alpha01-dev675->1.2.0-alpha01-dev682
0.10.1
Versions:Ktor:2.0.0->2.0.1
Crypto:- Add 
hmacSha256 - Add 
hex 
- Add 
 
0.10.0
Versions:Kotlin:1.6.10->1.6.21Compose:1.1.1->1.2.0-alpha01-dev675Exposed:0.37.3->0.38.2Ktor:1.6.8->2.0.0Dokka:1.6.10->1.6.21
0.9.24
Ktor:Common:- New extension fun 
MPPFile#input 
- New extension fun 
 
0.9.23
Repos:Exposed:- New property 
ExposedRepo#selectAllto retrieve all the rows in the table 
- New property 
 
0.9.22
Ktor:Server:- Now 
createKtorServerfun is fully customizable 
- Now 
 
0.9.21
Repos:Exposed:- fixes in 
AbstractExposedWriteCRUDRepo 
- fixes in 
 
0.9.20
Repos:Common:- Fixes in 
OneToManyAndroidRepo - New 
CursorIterator 
- Fixes in 
 
0.9.19
Versions:Coroutines:1.6.0->1.6.1
Repos:Exposed:- Fixes in 
ExposedStandardVersionsRepoProxy 
- Fixes in 
 
0.9.18
Common- New extensions for 
Element:Element#onActionOutsideandElement#onClickOutside 
- New extensions for 
 
0.9.17
Common:- New extensions 
Element#onVisibilityChanged,Element#onVisibleandElement#onInvisible 
- New extensions 
 Coroutines:- New extension 
Element.visibilityFlow() 
- New extension 
 FSM:- Now it is possible to resolve conflicts on 
startChain 
- Now it is possible to resolve conflicts on 
 
0.9.16
Versions:Klock:2.6.3->2.7.0
Common:- New extension 
Node#onRemoved Compose:- New extension 
Composition#linkWithRootfor removing of composition with root element 
- New extension 
 
- New extension 
 Coroutines:Compose:- New function 
renderComposableAndLinkToContextAndRootwith linking of composition to root element 
- New function 
 
0.9.15
FSM:- Rename 
DefaultUpdatableStatesMachine#comparetoDefaultUpdatableStatesMachine#shouldReplaceJob DefaultStatesManagernow is extendableDefaultStatesMachinewill stop all jobs of states which was removed fromstatesManager
- Rename 
 
0.9.14
Versions:Klock:2.6.2->2.6.3Ktor:1.6.7->1.6.8
Ktor:- Add temporal files uploading functionality (for clients to upload and for server to receive)
 
0.9.13
Versions:Compose:1.1.0->1.1.1
0.9.12
Common:JS:- New function 
openLink - New function 
selectFile - New function 
triggerDownloadFile 
- New function 
 Compose:- Created :)
 Common:DefaultDisposableEffectResultas a default realization ofDisposableEffectResult
JS:openLinkon top ofopenLinkwithStringtarget from common
Coroutines:Compose:Common:- New extension 
Flow.toMutableState - New extension 
StateFlow.toMutableState 
- New extension 
 JS:- New function 
selectFileOrThrowon top ofselectFilefromcommon - New function 
selectFileOrNullon top ofselectFilefromcommon 
- New function 
 
0.9.11
Versions:Klock:2.6.1->2.6.2
Coroutines:Compose:- Created :)
 - New extensions and function:
Composition#linkWithJobComposition#linkWithContextrenderComposableAndLinkToContext
 
0.9.10
Versions:Klock:2.5.2->2.6.1
- Ktor:
- Client:
- New function 
UnifiedRequester#createStandardWebsocketFlowwithoutcheckReconnectionarg 
 - New function 
 - Server:
- Now it is possible to filter data in 
Route#includeWebsocketHandling - Callback in 
Route#includeWebsocketHandlingand dependent methods issuspendsince now - Add 
URLProtocolsupport inRoute#includeWebsocketHandlingand dependent methods 
 - Now it is possible to filter data in 
 
 - Client:
 
0.9.9
Versions:Klock:2.5.1->2.5.2
Common:- Add new diff tool - 
applyDiff - Implementation of 
IntersectionObserverin JS part (copypaste of this comment) 
- Add new diff tool - 
 
0.9.8
Versions:Exposed:0.37.2->0.37.3Klock:2.4.13->2.5.1AppCompat:1.4.0->1.4.1
0.9.7
Repos:Exposed:- Fix in 
ExposedOneToManyKeyValueRepo- now it will not useinsertIgnore 
- Fix in 
 
Ktor:Server:Route#includeWebsocketHandlingnow will check thatWebSocketsfeature and install it if not
0.9.6
Repos:Exposed:- Fix in 
ExposedOneToManyKeyValueRepo- now it will not usedeleteIgnoreWhere 
- Fix in 
 
0.9.5
Versions:Klock:2.4.12->2.4.13
0.9.4
Pagination:Common:- Add several 
optionallyReversefunctions 
- Add several 
 
Common:- Changes in 
Either:- Now 
EitherusesoptionalT1andoptionalT2as main properties Either#t1andEither#t2are deprecated- New extensions 
Either#mapOnFirstandEither#mapOnSecond 
 - Now 
 
- Changes in 
 
0.9.3
Versions:UUID:0.3.1->0.4.0
0.9.2
Versions:Klock:2.4.10->2.4.12
0.9.1
Repos:Exposed:- Default realizations of standard interfaces for exposed DB are using public fields for now:
ExposedReadKeyValueRepoExposedReadOneToManyKeyValueRepoExposedStandardVersionsRepoProxy
 - New typealiases for one to many exposed realizations:
ExposedReadKeyValuesRepoExposedKeyValuesRepo
 
- Default realizations of standard interfaces for exposed DB are using public fields for now:
 
0.9.0
Versions:Kotlin:1.5.31->1.6.10Coroutines:1.5.2->1.6.0Serialization:1.3.1->1.3.2Exposed:0.36.2->0.37.2Ktor:1.6.5->1.6.7Klock:2.4.8->2.4.10
0.8.9
Ktor:Server:- Fixes in 
uniloadMultipart 
- Fixes in 
 Client:- Fixes in 
unimultipart 
- Fixes in 
 
FSM:- Fixes in 
DefaultUpdatableStatesMachine 
- Fixes in 
 
0.8.8
Versions:AppCompat:1.3.1->1.4.0- Android Compile SDK: 
31.0.0->32.0.0 
FSM:DefaultStatesMachinenow is extendable- New type 
UpdatableStatesMachinewith default realizationDefaultUpdatableStatesMachine 
0.8.7
Ktor:Client:UnifiedRequesternow have no private fields- Add preview work with multipart
 
ServerUnifiedRouternow have no private fields- Add preview work with multipart
 
0.8.6
Common:EitherextensionsonFirstandonSecondnow accept notcrossinlinecallbacks- All 
joinTonow accept notcrossinlinecallbacks 
0.8.5
Common:repeatOnFailure
0.8.4
Ktor:Server:- Several new 
createKtorServer 
- Several new 
 
0.8.3
Common:- Ranges intersection functionality
 - New type 
Optional 
Pagination:Paginationnow extendsClosedRange<Int>Paginationintersection functionality
0.8.2
Versions:Klock:2.4.7->2.4.8Serialization:1.3.0->1.3.1
FSM:- Now it is possible to pass any 
CheckableHandlerHolderinFSMBuilder - Now 
StatesMachineworks withCheckableHandlerHolderinstead ofCustomizableHandlerHolder 
- Now it is possible to pass any 
 
0.8.1
Versions:Exposed:0.36.1->0.36.2Core KTX:1.6.0->1.7.0
0.8.0
Versions:Klock:2.4.6->2.4.7Ktor:1.6.4->1.6.5Exposed:0.35.3->0.36.1
Common:- Type 
Eithergot its own serializer 
- Type 
 FSM:Common:- Full rework of FSM:
- Now it is more flexible for checking of handler opportunity to handle state
 - Now machine and states managers are type-oriented
 StateHandlerHolderhas been renamed toCheckableHandlerHolder
 - Add opportunity for comfortable adding default state handler
 
- Full rework of FSM:
 
0.7.4
Common:- New type 
Either 
- New type 
 Serialization:TypedSerializer- New factory fun which accept vararg pairs of type and its serializer
 
Repos:Common(Android):AbstractMutableAndroidCRUDRepoflows now will have extra buffer capacity instead of reply. It means that android crud repo WILL NOT send previous events to the
Exposed:- New parameter 
AbstractExposedWriteCRUDRepo#replyCacheInFlows - KeyValue realization 
ExposedKeyValueRepoproperties_onNewValueand_onValueRemovednow are available in inheritors 
- New parameter 
 
Pagination:Common:- New types 
getAllBy*for current, next and custom paging 
- New types 
 
0.7.3
Versions:Exposed:0.35.2->0.35.3
0.7.2
Versions:Klock:2.4.5->2.4.6
0.7.1
Versions:Klock:2.4.3->2.4.5Exposed:0.35.1->0.35.2
Coroutines:Common:- New 
Flow-AccumulatorFlow 
- New 
 
FSM:Common:InMemoryStatesManagerhas been replacedStatesMachinebecame an interface- New manager 
DefaultStatesManagerwithDefaultStatesManagerRepofor abstraction of manager and storing of data info 
0.7.0
THIS VERSION HAS MIGRATED FROM KOTLINX DATETIME TO KORLIBS KLOCK. CAREFUL
Versionskotlinx.datetime->Klock
0.6.0 DO NOT RECOMMENDED
THIS VERSION HAS MIGRATED FROM KORLIBS KLOCK TO KOTLINX DATETIME. CAREFUL ALL DEPRECATION HAVE BEEN REMOVED
VersionsKlock->kotlinx.datetime
0.5.31
Versions:Klock:2.4.2->2.4.3Ktor:1.6.3->1.6.4
0.5.30
Versions:Serialization:1.2.2->1.3.0
0.5.29
Versions:Exposed:0.34.2->0.35.1
0.5.28
Versions:Kotlin:1.5.30->1.5.31Klock:2.4.1->2.4.2
0.5.27
Versions:Exposed:0.34.1->0.34.2
0.5.26
Repos:InMemory:MapCRUDRepos andMapKeyValueRepos gotprotectedmethods and properties instead of private
0.5.25
Versions:UUID:0.3.0->0.3.1
Common:- New property 
MPPFile#withoutSlashAtTheEnd - Extension 
clamphas been deprecated - New extension 
Iterable#diff 
- New property 
 Serialization:- New operators 
TypedSerializer#plusAssignandTypedSerializer#minusAssign 
- New operators 
 
0.5.24
Versions:Coroutines:1.5.1->1.5.2Klock:2.3.4->2.4.1
Coroutines:- New function 
CoroutineScopewith safely exceptions handler as second parameter 
- New function 
 
0.5.23
Versions:Exposed:0.33.1->0.34.1
Common:- New extensions 
Iterable#joinToandArray#joinTo 
- New extensions 
 
0.5.22
VersionsKotlin:1.5.21->1.5.30Klock:2.3.2->2.3.4AppCompat:1.3.0->1.3.1Ktor:1.6.2->1.6.3
0.5.21
VersionsKlock:2.3.1->2.3.2
SerializationTyped Serializer:TypedSerializerDescriptor serial name has been fixed
0.5.20
Repos:CommonAndroid:*OrNullanalogs ofCursor.get*(String)extensions have been added- Extensions 
Cursor.getFloatandCursor.getFloatOrNullhave been added 
0.5.19
LanguageCode:IetfLanguageCodebecame as sealed classIetfLanguageCodenow overridetoStringand returns its code
0.5.18
VersionsKotlin Exposed:0.32.1->0.33.1
LanguageCode:- Module has been created
 
0.5.17
SINCE THIS UPDATE JS PARTS WILL BE COMPILED WITH IR COMPILER ONLY
VersionsKotlin:1.5.20->1.5.21Ktor:1.6.1->1.6.2Klock:2.2.0->2.3.1CryptoJS:4.0.0->4.1.1
0.5.16
VersionsCoroutines:1.5.0->1.5.1Serialization:1.2.1->1.2.2Ktor:1.6.0->1.6.1Klock:2.1.2->2.2.0Core KTX:1.5.0->1.6.0
0.5.15 HOTFIX FOR 0.5.14
Coroutines- Fixes in 
subscribeAsync 
- Fixes in 
 
0.5.14 NOT RECOMMENDED
VersionsKotlin:1.5.10->1.5.20
CoroutinessubscribeSafelyWithoutExceptionsgot new parameteronExceptionby analogue withsafelyWithoutExceptions- New extensions 
Flow#subscribeAsyncand subsequent analogs ofsubscribewith opportunity to set up custom marker 
0.5.13
Common:- Add functionality for multiplatform working with files:
- Main class for files 
MPPFile - Inline class for filenames work encapsulation 
FileName 
 - Main class for files 
 
- Add functionality for multiplatform working with files:
 FSM- Module inited and in preview state
 
0.5.12
Common:Android- Extension 
View#changeVisibilityhas been fixed 
- Extension 
 
AndroidRecyclerView- Default adapter got 
dataCountFlowproperty - New subtype of adapter based on 
StateFlow:StateFlowBasedRecyclerViewAdapter 
- Default adapter got 
 
0.5.11
Repos:Common:- Fixes in 
WriteOneToManyRepo#add 
- Fixes in 
 Exposed:- Fixes in 
ExposedOneToManyKeyValueRepo#add 
- Fixes in 
 
0.5.10
VersionsCore KTX:1.3.2->1.5.0AndroidX Recycler:1.2.0->1.2.1AppCompat:1.2.0->1.3.0
AndroidRecyclerView:dataofRecyclerViewAdapterbecame an abstract field- New function 
RecyclerViewAdapter 
- New function 
 
Common:- New extension 
View#changeVisibility 
- New extension 
 Repos:Common:WriteOneToManyRepogot new functionclearWithValueAndroid:- New extension 
SQLiteDatabase#selectDistinct - Fixes in 
OneToManyAndroidRepo 
- New extension 
 
KtorServer- All elements in configurators became a 
fun interface 
- All elements in configurators became a 
 
Pagination- New function 
doForAllWithCurrentPaging 
- New function 
 
0.5.9
ReposCommonOneToManyAndroidRepogot new primary constructor
0.5.8
Common:- New extension 
Iterable#firstNotNull 
- New extension 
 Coroutines- New extension 
Flow#firstNotNull - New extensions 
CoroutineContext#LinkedSupervisorJob,CoroutineScope#LinkedSupervisorJobandCoroutineScope#LinkedSupervisorScope 
- New extension 
 
0.5.7
PaginationKtorServer- Fixes in extension 
extractPagination 
- Fixes in extension 
 
ReposCache- All standard cache repos have been separated to read and read/write repos
 
0.5.6
VersionsExposed:0.31.1->0.32.1
CoroutinesJVMlaunchSynchronouslyand subsequent functions got improved mechanism
- New method 
safelyWithResult 
0.5.5
VersionsKtor:1.5.4->1.6.0
0.5.4
Versions:Klock:2.1.0->2.1.2
0.5.3
Versions:Kotlin:1.5.0->1.5.10
Coroutines:- Extensions 
doInUIanddoInDefaultwere replaced in common and available on any supported platform - Extension 
doInIOreplaced intojvmand available on anyJVMplatform - Old extension 
safelyWithouExceptionwithoutonExceptionhas been replaced by its copy withonExceptionand default value- New value 
defaultSafelyWithoutExceptionHandlerWithNullwhich is used in all*WithoutExceptionsby default 
 - New value 
 - Analogs of 
launchandasyncforsafelyandsafelyWithoutExceptionswere added - Analogs of 
runCatchingforsafelyandsafelyWithoutExceptionswere added 
- Extensions 
 
0.5.2
Ktor:Client:- Fixes in 
UnifiedRequester 
- Fixes in 
 
0.5.1
Versions:Kotlin Serialization:1.2.0->1.2.1
0.5.0
Notice: This version is still depend on Kotlin Exposed 0.31.1. That means that this version may work improperly in modules based on Kotlin Exposed
Versions:Kotlin Exposed:0.30.2->0.31.1Kotlin Coroutines:1.4.3->1.5.0RecyclerView:1.1.0->1.2.0Ktor:1.5.3->1.5.4Klock:2.0.7->2.1.0UUID:0.2.4->0.3.0
- ALL DEPRECATIONS WERE REMOVED
 Android:Alerts:RecyclerView:- Classes 
ActionViewHolderandActionsRecyclerViewAdapterbecame public 
- Classes 
 
Coroutines:- New extension and function 
doSynchronouslywhich are the same aslaunchSynchronously - New extensions 
doInDefaultanddoInIO 
- New extension and function 
 
0.4.36
- All 
Androidtargets inside common mpp modules now includes JVM code 
0.4.35
Versions:Kotlin Exposed:0.30.1->0.30.2
Serialization:TypedSerializer:- Project has been inited
 
0.4.34
Versions:uuid:0.2.3->0.2.4
Repos:AbstractExposedCRUDReponow implementsStandardCRUDRepoAbstractMutableAndroidCRUDReponow implementsStandardCRUDRepo
0.4.33
Versions:Ktor:1.5.2->1.5.3
Coroutines- Add 
WeakJobworkaround:CoroutineScope#weakLaunchCoroutineScope#weakAsync
 
- Add 
 
0.4.32
Versions:Kotlin Exposed:0.29.1->0.30.1
0.4.31
Versions:Kotlin:1.4.31->1.4.32
Pagination:- New extensions 
PaginationResult.changeResultsUncheckedandPaginationResult.changeResultsfor mapping results with the same parameters, but different data - Extension 
PaginationResult.thisPageIfNotEmptynow is typed and will returnPaginationResult?with the same generic type as incomePaginationResult - New extension 
PaginationResult.currentPageIfNotEmpty- shortcut forPaginationResult.thisPageIfNotEmpty - New common functions. They were created as replacements for currently available for more comfortable work
with repos pagination:
doForAlldoForAllWithNextPagingdoForAllWithCurrentPaginggetAllgetAllWithNextPaginggetAllWithCurrentPaging
 
- New extensions 
 Coroutines:- Rewrite 
subscribeSafelyWithoutExceptions- Now 
subscribeSafelyWithoutExceptionswill use default handler instead of skipping 
 - Now 
 - New extension 
subscribeSafelySkippingExceptions 
- Rewrite 
 Repos- New subproject 
repos.cache- this subproject will contain repos with data caching mechanisms - Most old 
doForAllmethods have been deprecated 
- New subproject 
 
0.4.30
Versions:Klock:2.0.6->2.0.7
Pagination:- New variable 
defaultPaginationPageSizehas been added to be able to change default pagination size - Add new value 
firstPageWithOneElementPagination 
- New variable 
 
0.4.29
Versions:Coroutines:1.4.2->1.4.3
Repos:CommonAndroid:- New 
blockingReadableTransaction/blockingWritableTransaction- Android databases realizations now use blocking transactions where it is possible
 
 - Several improvements in transactions work
 
- New 
 
0.4.28
Versions:Kotlin:1.4.30->1.4.31Ktor:1.5.1->1.5.2
Coroutines- Add 
createActionsActor/createSafeActionsActoranddoWithSuspending 
- Add 
 
0.4.27
ReposExposed- Fix in 
AbstractExposedWriteCRUDRepo 
- Fix in 
 
0.4.26
Versions:Serialization:1.0.1->1.1.0
0.4.25
Matrix:- Subproject has been created
 
0.4.24
Versions:Kotlin:1.4.21->1.4.30Klock:2.0.4->2.0.6
Coroutines:- New class 
DoWithFirstBuilder - Several new extensions like 
firstOf/first/invokeOnFirstOf 
- New class 
 
0.4.23
Versions:Ktor:1.5.0->1.5.1
SerializationBase64- New serializer 
Base64BytesToFromStringSerializerhas been added 
- New serializer 
 
0.4.22
Versions:Exposed:0.28.1->0.29.1Klock:2.0.2->2.0.4
0.4.21
CommonJS- Extension 
DataView#toByteArrayhas been added - Extension 
ArrayBuffer#toByteArrayhas been added - Extension 
ByteArray#toDataViewhas been added - Extension 
ByteArray#toArrayBufferhas been added 
- Extension 
 
CoroutinesJS- Extension 
Blob#toByteArrayhas been added 
- Extension 
 
Crypto- Subproject has been created
 
SerializationBase64- Currently, it is not depended on 
commonproject and usecryptoinstead 
- Currently, it is not depended on 
 
0.4.20
SerializationEncapsulator:- Has been created
 
0.4.19
Coroutines:- New extension 
Iterable<Deferred>#awaitFirstWithDeferredhas been added to identify which ofDeferreds was normally completed - New extensions 
Iterable<Deferred<T>>#invokeOnFirstandIterable<DeferredAction<*, O>>.invokeFirstOfhave been added 
- New extension 
 
0.4.18
Coroutines:- New extension 
Iterable<Deferred>#awaitFirsthas been added 
- New extension 
 SerializationBase 64- New 
Base64ByteArraySerializerhas been added 
- New 
 
0.4.17
Common- Functionality for decode/encode base 64 to/from 
ByteArray/Stringhave been added 
- Functionality for decode/encode base 64 to/from 
 SerializationBase 64- Project has been initiated
 
0.4.16
Coroutines:safely:- New 
safelyWithoutExceptionsfunction may acceptonExceptionparameter with nullable result - Old 
safelyWithoutExceptionsnow usingdefaultSafelyWithoutExceptionHandlerto handle exceptions "like insafely", but it is expected thatdefaultSafelyWithoutExceptionHandlerwill not throw any exception 
- New 
 
0.4.15
Coroutines:safely:SafelyExceptionHandlerKeyhas been deprecatedSafelyExceptionHandlerhas been deprecatedContextSafelyExceptionHandlerKeyhas been addedContextSafelyExceptionHandlerhas been addedsafelyWithContextExceptionHandlerhas been added
0.4.14
Versions:Kotlin:1.4.20->1.4.21Ktor:1.4.3->1.5.0Klock:2.0.1->2.0.2
Coroutines:- Add global variable 
defaultSafelyExceptionHandler - Add 
SafelyExceptionHandlerKeyandSafelyExceptionHandlerclasses to be able to overwritedefaultSafelyExceptionHandlerusing context of coroutine 
- Add global variable 
 
0.4.13
CommonAndroid- Add expand/collapse functionality for horizontal expand/collapse
 
0.4.12
CoroutinesJVM- Update 
launchSynchronouslysignature 
- Update 
 
Selector- Project created
 
0.4.11
Common- Add 
clampfunction 
- Add 
 
0.4.10
Versions:Klock:2.0.0->2.0.1
Repo- Repo 
WriteStandardKeyValueRepogot new methodunsetWithValues 
- Repo 
 
0.4.9
Versions:Ktor:1.4.2->1.4.3
Coroutines:launchSynchronouslyhas been added in JVM
RepoCommon- In repos different usages of 
BroadcastChannels has been replaced withMutableSharedFlow 
- In repos different usages of 
 ExposedasObjectopen fun has been added in CRUD realization
0.4.8
Versions:Coroutines:1.4.1->1.4.2UUID:0.2.2->0.2.3
Pagination- Add 
PaginatedIterableandPaginatedIterator 
- Add 
 
0.4.7
KtorClient- New class 
UnifiedRequester 
- New class 
 Server- New class 
UnifiedRouter 
- New class 
 
ReposKtorClient- Rewriting of all clients on new 
UnifiedRequester 
- Rewriting of all clients on new 
 Server- Rewriting of all clients on new 
UnifiedRouter 
- Rewriting of all clients on new 
 
0.4.6
Common- New annotation 
Warninghas been added 
- New annotation 
 PaginationCommonPaginationgot new extension:Pagination#isFirstPage
Coroutines:- New extension 
FlowCollector#invokehas been added 
- New extension 
 ReposCommonJVM(andAndroidsinceAndroid API 26):FileStandardKeyValueRepohas been added
- Add several 
typealiases for each type of repos 
0.4.5
AndroidAlertsCommon- Project has been created
 
RecyclerView- Project has been created
 
Common- Annotation 
PreviewFeaturehas been added Android- Added tools to work with visibility in more comfortable way
 - Added tools to work with disabled/enabled state in more comfortable way
 - Added tools to work with expanded/collapsed state in more comfortable way (in preview mode)
 
- Annotation 
 
0.4.4
Versions:Klock:1.12.1->2.0.0
Commons:- Update left items functionality to include work with 
GridLayoutManager 
- Update left items functionality to include work with 
 Repos:- Add interface 
VersionsRepo- Add default realization of 
VersionsReponamedStandardVersionsRepowhich useStandardVersionsRepoProxyto get access to some end-store - Add default realization of 
StandardVersionsRepoProxybased onKeyValuerepos - Add realizations of 
StandardVersionsRepoProxyfor exposed and android (SQLandSharedPreferences) 
 - Add default realization of 
 Commons:- In Android fully reworked transactions functions
 - Now 
DatabaseCoroutineContextis a shortcut forDispatchers.IO 
- Add interface 
 
0.4.3
Versions:Kotlin:1.4.10->1.4.20
Common:- Two new extensions for Android:
Resources#getSpResources#getDp
 
- Two new extensions for Android:
 
0.4.2
Repos:- Add 
WriteOneToManyKeyValueRepo#setfunction and extensions 
- Add 
 
0.4.1
Repos:- Fixed error in 
ExposedKeyValueReporelated to negative size of shared flow - Fixed error in 
ExposedKeyValueReporelated to avoiding of table initiation 
- Fixed error in 
 
0.4.0
Repos:ReadOneToManyKeyValueRepogotkeysmethod with value parameter- All implementations inside of this library has been updated
 
ReadStandardKeyValueRepogotkeysmethod with value parameter- All implementations inside of this library has been updated
 
- New extensions 
withMapper 
0.3.3
Coroutines:- New extension 
Flow<T>#plus 
- New extension 
 
0.3.2
Versions:Coroutines:1.4.1->1.4.2
Repos:Common:- New inline function 
mapperfor simplier creating ofMapperRepoobjects - Extensions 
withMapperfor keyvalue repos and onetomany repos 
- New inline function 
 
0.3.1
ANDROID PACKAGES
Android:RecyclerView:- Library has been created
 
Common- Now available package 
dev.inmo:micro_utils.common-android 
- Now available package 
 Coroutines- Now available package 
dev.inmo:micro_utils.coroutines-android 
- Now available package 
 KtorCommon- Now available package 
dev.inmo:micro_utils.ktor.common-android 
- Now available package 
 Client- Now available package 
dev.inmo:micro_utils.ktor.client-android 
- Now available package 
 
MimeTypes- Now available package 
dev.inmo:micro_utils.mime_types-android 
- Now available package 
 PaginationCommon- Now available package 
dev.inmo:micro_utils.pagination.common-android 
- Now available package 
 KtorCommon- Now available package 
dev.inmo:micro_utils.pagination.ktor.common-android 
- Now available package 
 
ReposCommon- Now available package 
dev.inmo:micro_utils.repos.common-android - Now it is possible to use default realizations of repos abstractions natively on android
 
- Now available package 
 Inmemory- Now available package 
dev.inmo:micro_utils.repos.inmemory-android 
- Now available package 
 KtorCommon- Now available package 
dev.inmo:micro_utils.repos.ktor.common-android 
- Now available package 
 Common- Now available package 
dev.inmo:micro_utils.repos.ktor.client-android 
- Now available package 
 
0.3.0
All deprecations has been removed
Repos:Common:KeyValueandOneToManyrepos lost their deprecated methodsOneToManywrite repos got additional extensions for mutation of repoKeyValuewrite repos got additional extensions for mutation of repo- New interface 
MapperRepoand new classes which are using this:KeyValueMapperReadStandardKeyValueRepoMapperWriteStandardKeyValueRepoMapperStandardKeyValueRepo
OneToManyMapperReadOneToManyKeyValueRepoMapperWriteOneToManyKeyValueRepoMapperOneToManyKeyValueRepo
 
Exposed:- CRUD realizations replaced their channels to shared flows
 
0.2.7
Versions:Coroutines:1.4.0->1.4.1
Repos:WriteStandardKeyValueRepogot new methodssetandunsetwith collections- All standard realizations of repos got collections methods realizations
 - All old usages of 
BroadcastFlowandBroadcastChannelhas been replaced withMutableSharedFlow Ktor:Server:- Fixed incorrect answer for 
keyvalue 
- Fixed incorrect answer for 
 
0.2.6
Pagination- Fixes in function 
List#paginate - Extension property 
Pagination#lastIndexExclusive 
- Fixes in function 
 
0.2.5
Coroutines- Function 
safelyWithoutExceptions - Extension 
CoroutineScope#safeActor 
- Function 
 
0.2.4
VersionsSerialization:1.0.0->1.0.1
Common- Full rework of 
DiffUtils- Data class 
Diffhas been added - Extension 
Iterable#calculateDiffhas been added- Extension 
Iterable#calculateStrictDiffas replacement forIterable#calculateDiffwithstrictComparisonmode enabled - Functions 
Diff(as analog ofIterable#calculateDiff) andStrictDiff(as analog ofIterable#calculateStrictDiff) 
 - Extension 
 
 - Data class 
 
- Full rework of 
 CoroutinesBroadcastFlownow is deprecatedBroadcastStateFlownow is deprecated- New extensions for 
Flows:Flow#subscribeFlow#subscribeSafelyFlow#subscribeSafelyWithoutExceptions
 
0.2.3
VersionsCoroutines:1.3.9->1.4.0Exposed:0.27.1->0.28.1
CommonK/JS- Add several extensions for 
Elementobjects to detect that object is on screen viewport - Add several extensions for 
Elementobjects to detect object visibility 
- Add several extensions for 
 
CoroutinesBroadcastStateFlownow use different strategy for getting of state and implementsreplayCache
0.2.2
ReposCommon- Several new methods 
ReadOneToManyKeyValueRepo#getAll - Several new method 
WriteOneToManyKeyValueRepo#addand several extensions - Several new method 
WriteOneToManyKeyValueRepo#removeand several extensions 
- Several new methods 
 
0.2.1
PaginationCommon:- Extension 
Pagination#reversehas been added - Factory 
PaginationByIndexes - Shortcut 
calculatePagesNumberwith reversed parameters - Value 
emptyPaginationfor emptySimplePaginationcases 
- Extension 
 
0.2.0
ReposExposed- Now this project depend on 
micro_utils.coroutines - Typealias 
ColumnAllocatorhas been replaced to root exposed package - Interface 
ExposedRepohas been addedExposedCRUDReponow extendsExposedRepoinstead of simpleRepo
 - New extension 
initTablefor classes which areTableandExposedRepoat the same time KeyValue:tableNameparameter- Class 
AbstractExposedReadKeyValueRepo- Renamed to 
ExposedReadKeyValueRepo - Changed incoming types to 
ColumnAllocator openinstead ofabstract- Implements 
ExposedRepo 
 - Renamed to 
 - Class 
AbstractExposedKeyValueRepo- Renamed to 
ExposedKeyValueRepo - Changed incoming types to 
ColumnAllocator openinstead ofabstract
 - Renamed to 
 
OneToMany:tableNameparameter- Class 
AbstractExposedReadOneToManyKeyValueRepo- Renamed to 
ExposedReadOneToManyKeyValueRepo - Changed incoming arguments order
 - Implements 
ExposedRepo 
 - Renamed to 
 - Class 
AbstractExposedOneToManyKeyValueRepo- Renamed to 
ExposedKeyValueRepo - Changed incoming arguments order
 openinstead ofabstract- Release for every 
Flowin parent interfaces 
 - Renamed to 
 
- Now this project depend on 
 
0.1.1
Versions:kotlinx.serialization:1.0.0-RC2->1.0.0
PaginationCommon- Function 
calculatePagefor calculating page based on size of page and index of first element - Extension 
List#createPaginationResultwhich use index of first element to calculate current page and other info inPaginationResultobject - Factory 
emptyPaginationResultfor emptyPaginationResult - Extensions 
paginatefor creating ofPaginationResultwhich use as source one of next types:IterableListSet
 
- Function 
 
ReposCommon- Interfaces related to 
OneToManyKeyValueRepowere renamed with convenience toRead/Writemodifier before name- All subclasses were renamed
 
 - Interfaces related to 
StandartKeyValueRepowere renamed with convenience toRead/Writemodifier before name- All subclasses were renamed
 
 - Extensions 
doForAllandgetAllwere added for all current types of repos:ReadStandardCRUDRepoReadStandardKeyValueRepoReadOneToManyKeyValueRepo
 ReadStandardKeyValueRepomethodsvaluesandkeysnow have default value forreversedparameterfalse- New 
Flow's inWriteOneToManyKeyValueRepo:onNewValueonValueRemovedonDataCleared
 - New function 
ReadStandardCRUDRepo#count 
- Interfaces related to 
 In Memory- Package has been created:) you can connect it via 
implementation "dev.inmo:micro_utils.repos.inmemory" MapCRUDRepoclass as implementation ofStandardCRUDRepoon top ofMutableMaphas been addedMapKeyValueRepoclass as implementation ofStandardKeyValueRepoon top ofMutableMaphas been addedMapOneToManyKeyValueRepoclass as implementation ofOneToManyKeyValueRepoon top ofMutableMaphas been added
- Package has been created:) you can connect it via 
 
0.1.0
Inited :)