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.downloadToTempFile
has changed its receiver toSource
. Its API can be broken
- Extension
Client
:- Extension
HttpClient.tempUpload
has changed type ofonUpload
argument fromOnUploadCallback
toProgressListener
- All extensions
HttpClient.uniUpload
have changed type ofonUpload
argument fromOnUploadCallback
toProgressListener
- Extension
Server
:- Remove redundant
ApplicationCall.respond
extension due to its presence in the ktor library
- Remove redundant
Repos
:Cache
:- Add direct caching repos
Common
:- Add
List.breakAsPairs
extension - Add
Sequence.padWith
/Sequence.padStart
/Sequence.padEnd
andList.padWith
/List.padStart
/List.padEnd
extensions
- Add
Versions
:Kotlin
:2.0.20
->2.0.21
Compose
: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
KSP
:Generator
:- Add extension
KSClassDeclaration.buildSubFileName
- Add extension
KSClassDeclaration.companion
- Add extension
KSClassDeclaration.resolveSubclasses
- Add extension
Sealed
:- Improvements
Versions
:Compose
:1.7.0-beta02
->1.7.0-rc01
SQLite
:3.46.1.2
->3.46.1.3
AndroidXFragment
: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.Static
as solution for #488
- Add
Versions
:Exposed
:0.54.0
->0.55.0
SQLite
:3.46.1.0
->3.46.1.2
Versions
:Serialization
:1.7.2
->1.7.3
Coroutines
:1.8.1
->1.9.0
Compose
:1.7.0-alpha03
->1.7.0-beta02
Koin
:3.5.6
->4.0.0
Okio
:3.9.0
->3.9.1
AndroidFragment
:1.8.2
->1.8.3
androidx.compose.material3:material3
has been replaced withorg.jetbrains.compose.material3:material3
Common
:JS
:- Add several useful extensions
Compose
:JS
:- Add several useful extensions
Versions
:Exposed
:0.53.0
->0.54.0
SQLite
:3.46.0.1
->3.46.1.0
Versions
:Kotlin
:2.0.10
->2.0.20
Serialization
:1.7.1
->1.7.2
KSLog
:1.3.5
->1.3.6
Compose
:1.7.0-alpha02
->1.7.0-alpha03
Ktor
:2.3.11
->2.3.12
THIS UPDATE CONTAINS BREAKING CHANGES ACCORDING TO UPDATE UP TO KOTLIN 2.0
Versions
:Kotlin
:1.9.23
->2.0.10
Serialization
:1.6.3
->1.7.1
KSLog
:1.3.4
->1.3.5
Compose
:1.6.2
->1.7.0-alpha02
Exposed
:0.50.1
->0.53.0
AndroidAppCompat
:1.6.1
->1.7.0
AndroidFragment
:1.7.1
->1.8.2
KSP
:Sealed
:- Fixes in generation
KSP
:- Add utility functions
KSClassDeclaration.findSubClasses
Sealed
:- Improve generation
- Add utility functions
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
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:
KSP
:ClassCasts
:- Module has been initialized
KSP
:- Module has been initialized
Generator
:- Module has been initialized
Sealed
:- Module has been initialized
THIS UPDATE CONTAINS BREAKING CHANGES IN safely*
-ORIENTED FUNCTIONS
Coroutines
:- All
safely
functions lost theirsupervisorScope
in favor to wrappingrunCatching
runCatchingSafely
is the main handling function of allsafely
functionslaunchSafely*
andasyncSafely*
blocks lostCoroutineScope
as their receiver
- All
Coroutines
:- Small rework of weak jobs: add
WeakScope
factory, rename old weal extensions and add kdocs
- Small rework of weak jobs: add
Versions
:Android Fragment
:1.7.0
->1.7.1
Pagination
:- Add
Pagination.nextPageIfTrue
andPagination.thisPageIftrue
extensions to get the page according to condition pass status - Add
PaginationResult.nextPageIfNotEmptyOrLastPage
andPaginationResult.thisPageIfNotEmptyOrLastPage
- Change all
doForAll
andgetAll
extensions fo pagination to work basing onnextPageIfNotEmptyOrLastPage
andthisPageIfNotEmptyOrLastPage
- Add
Versions
:Coroutines
:1.8.0
->1.8.1
KSLog
:1.3.3
->1.3.4
Exposed
:0.50.0
->0.50.1
Ktor
: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
,SmartSemaphore
andSmartRWLocker
as their user changed their state flow toSpecialMutableStateFlow
Repos
:Common
:- All
Repo
s getdiff
extensions KeyValueRepo
andKeyValuesRepo
getapplyDiff
extension- Add new extensions
on*
flows for crud repos
- All
Versions
:Android Core KTX
:1.13.0
->1.13.1
AndroidX Fragment
:1.6.2
->1.7.0
Versions
:Exposed
:0.49.0
->0.50.0
Common
:- Now this repo depends on
klock
- Add new object-serializer
DateTimeSerializer
forklock
serializer
- Now this repo depends on
Versions
:Android Core KTX
:1.12.0
->1.13.0
Versions
:Compose
:1.6.1
->1.6.2
Koin
:3.5.4
->3.5.6
Versions
:Ktor
:2.3.9
->2.3.10
Koin
:3.5.3
->3.5.4
Repos
:Generator
:- Improvements
Repos
:Exposed
:AbstractExposedKeyValueRepo
,ExposedKeyValueRepo
,AbstractExposedKeyValuesRepo
,ExposedKeyValuesRepo
got opportunity to setup some part of their flows
Versions
:KSLog
:1.3.2
->1.3.3
Exposed
:0.48.0
->0.49.0
UUID
:0.8.2
->0.8.4
Versions
:Kotlin
:1.9.22
->1.9.23
Korlibs
:5.3.2
->5.4.0
Okio
:3.8.0
->3.9.0
Compose
:1.6.0
->1.6.1
ComposeMaterial3
:1.2.0
->1.2.1
Versions
:Ktor
:2.3.8
->2.3.9
Versions
:Compose
:1.5.12
->1.6.0
Exposed
:0.47.0
->0.48.0
Versions
:Serialization
:1.6.2
->1.6.3
Korlibs
:5.3.1
->5.3.2
Repos
:Cache
:- Improve work and functionality of
actualizeAll
and subsequent functions - All internal repos
invalidate
/actualizeAll
now use commonactualizeAll
functions
- Improve work and functionality of
Versions
:Coroutines
:1.7.3
->1.8.0
Material3
:1.1.2
->1.2.0
Repos
:Common
:- Improve default
set
realization ofKeyValuesRepo
- Improve default
Colors
Common
:- Add opportunity to use
HEXAColor
withahex
colors
- Add opportunity to use
Versions
:Okio
:3.7.0
->3.8.0
Resources
:- Make
StringResource
serializable - Add several variants of builder usages
- Make
Versions
:Ktor
:2.3.7
->2.3.8
Versions
:Exposed
:0.46.0
->0.47.0
Versions
:Kotlin
:1.9.21
->1.9.22
Compose
:1.5.11
->1.5.12
Korlibs
:5.3.0
->5.3.1
Versions
:Kotlin
:1.9.22
->1.9.21
(downgrade)Compose
:1.6.0-dev13691
->1.5.11
(downgrade)
Versions
:Kotlin
:1.9.21
->1.9.22
Compose
:1.5.11
->1.6.0-dev13691
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
null
asIetfLang
argument - Add several useful extensions to get translations in
JS
target
- Add opportunity to get default translation by passing
Colors
:Common
:- Module inited
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.0
Krypto
(since nowKorlibsCrypto
):4.0.10
->5.3.0
Serialization
:Mapper
:Mapper
pass decoder into callback of deserialization strategyMapper
pass encoder into callback of serialization strategy
Versions
:Koin
:3.5.0
->3.5.3
Okio
:3.6.0
->3.7.0
LanguageCodes
:- Fixes in intermediate language codes (like
Chinese.Hans
) - Rename
IetfLanguageCode
toIetfLang
- Rename all subsequent functions (including serializer)
- New lazy properties
knownLanguageCodesMap
,knownLanguageCodesMapByLowerCasedKeys
and several others
- Fixes in intermediate language codes (like
Common
:- Add opportunity to create own
Diff
with base constructor
- Add opportunity to create own
Resources
:- Inited
Repos
:Exposed
:- Add opportunity for setup flows in
AbstractExposedCRUDRepo
- Add opportunity for setup flows in
Versions
:Ktor
:2.3.6
->2.3.7
Coroutines
:SpecialMutableStateFlow
now extendsMutableStateFlow
Compose
:- Deprecate
FlowState
due to its complexity in fixes
- Deprecate
Versions
:Serialization
:1.6.1
->1.6.2
Versions
:Exposed
:0.44.1
->0.45.0
Coroutines
:- Add
SpecialMutableStateFlow
Compose
:- Add
FlowState
- Add
- Add
Versions
:Kotlin
:1.9.20
->1.9.21
KSLog
:1.3.0
->1.3.1
Compose
:1.5.10
->1.5.11
Versions
:Serialization
:1.6.0
->1.6.1
KSLog
:1.2.4
->1.3.0
Versions
:Ktor
:2.3.5
->2.3.6
UUID
:0.8.1
->0.8.2
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
Versions
:Kotlin
:1.9.20-RC2
->1.9.20
Exposed
:0.44.0
->0.44.1
Compose
:1.5.10-rc02
->1.5.10
Coroutines
:SmartRWLocker
now will wait first unlock of write mutex for acquiring read
Versions
:Kotlin
:1.9.20-RC
->1.9.20-RC1
KSLog
:1.2.1
->1.2.2
Compose
:1.5.10-rc01
->1.5.10-rc02
RecyclerView
:1.3.1
->1.3.2
- Most of common modules now supports
linuxArm64
target
THIS VERSION CONTAINS UPDATES OF DEPENDENCIES UP TO RC VERSIONS. USE WITH CAUTION
Versions
:Kotlin
:1.9.20-Beta2
->1.9.20-RC
Compose
:1.5.10-beta02
->1.5.10-rc01
THIS VERSION CONTAINS UPDATES OF DEPENDENCIES UP TO BETA VERSIONS. USE WITH CAUTION
Versions
:Kotlin
:1.9.10
->1.9.20-Beta2
Compose
:1.5.1
->1.5.10-beta02
Exposed
:0.43.0
->0.44.0
Ktor
:2.3.4
->2.3.5
Koin
:3.4.3
->3.5.0
Okio
:3.5.0
->3.6.0
Android Core
:1.10.1
->1.12.0
Android Compose Material
:1.1.1
->1.1.2
Repos
:Exposed
- Fixes in exposed key-values repos
Coroutines
:- Fixes in
SmartRWLocker
- Fixes in
Versions
:Kotlin
:1.9.0
->1.9.10
KSLog
:1.2.0
->1.2.1
Compose
:1.5.0
->1.5.1
UUID
:0.8.0
->0.8.1
Versions
:Compose
:1.4.3
->1.5.0
Exposed
:0.42.1
->0.43.0
Ktor
:2.3.3
->2.3.4
Repos
:Cache
:- Fixes in locks of caches
- All main repos uses
SmartRWLocker
Versions
:Serialization
:1.5.1
->1.6.0
Exposed
:0.42.0
->0.42.1
Korlibs
:4.0.9
->4.0.10
Androis SDK
:33
->34
SmallTextField
:- Module is initialized
Pickers
:- Module is initialized
Coroutines
:- Add
SmartSemaphore
- Add
SmartRWLocker
- Add
Versions
:Kotlin
:1.8.22
->1.9.0
KSLog
:1.1.1
->1.2.0
Exposed
:0.41.1
->0.42.0
UUID
:0.7.1
->0.8.0
Korlibs
:4.0.3
->4.0.9
Ktor
:2.3.2
->2.3.3
Okio
:3.4.0
->3.5.0
Versions
:Koin
:3.4.2
->3.4.3
Startup
:- Now it is possible to start application in synchronous way
Versions
:Coroutines
:1.7.2
->1.7.3
Kotlin
:1.8.20
->1.8.22
Compose
:1.4.1
->1.4.3
Okio
:3.3.0
->3.4.0
RecyclerView
:1.3.0
->1.3.1
Fragment
:1.6.0
->1.6.1
Repos
:- Fixes In
KeyValueRepo.clear()
of almost all inheritors ofKeyValueRepo
Cache
:- All full caches got
skipStartInvalidate
property. By default, this property isfalse
and fully caching repos will be automatically invalidated on start of their work
- All full caches got
- Fixes In
Versions
:Coroutines
:1.7.1
->1.7.2
Versions
:Coroutines
:1.6.4
->1.7.1
Ktor
:2.3.1
->2.3.2
Compose
:1.4.0
->1.4.1
Repos
:Generator
:- Fixes in new type generation
Versions
:Koin
:3.4.1
->3.4.2
Android Fragments
:1.5.7
->1.6.0
Koin
Generator
- Fixes in new generic generator part
Koin
Generator
- New getter methods now available with opportunity to use parameters
- Old notation
*Single
and*Factory
is deprecated since this release. With old will be generated newsingle*
andfactory*
notations for new generations - Add opportunity to use generic-oriented koin definitions
Versions
:Ktor
:2.3.0
->2.3.1
Koin
:3.4.0
->3.4.1
Uuid
:0.7.0
->0.7.1
Versions
:Korlibs
:4.0.1
->4.0.3
Kotlin Poet
:1.13.2
->1.14.0
Versions
:Korlibs
:3.4.0
->4.0.1
Koin
:- New extension
lazyInject
- New extension
Versions
:Serialization
:1.5.0
->1.5.1
Android Cor Ktx
:1.10.0
->1.10.1
Startup
:- Now internal
Json
is fully customizable
- Now internal
Common
:- Add
MapDiff
- Add
Coroutines
:- Add
SmartMutex
- Add
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
Versions
:Ktor
:2.2.4
->2.3.0
Versions
:Android CoreKtx
:1.9.0
->1.10.0
Startup
:- Add support of
linuxX64
andmingwX64
platforms
- Add support of
Versions
:Kotlin
:1.8.10
->1.8.20
KSLog
:1.0.0
->1.1.1
Compose
:1.3.1
->1.4.0
Koin
:3.3.2
->3.4.0
RecyclerView
:1.2.1
->1.3.0
Fragment
:1.5.5
->1.5.6
- Experimentally (
!!!
) addlinuxX64
andmingwX64
targets
Common
:- Conversations of number primitives with bounds care
Repos
:Common
:- By default,
getAll
for 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
getAll
functions
Serialization
:Mapper
:- Module inited
Versions
:Compose
:1.3.1-rc02
->1.3.1
Common
:- Add
fixed
extensions forFloat
andDouble
- New function
emptyDiff
- Now you may pass custom
comparisonFun
to alldiff
functions
- Add
FSM
:DefaultStatesManager.onUpdateContextsConflictResolver
andDefaultStatesManager.onStartContextsConflictResolver
now returnfalse
by default
- Hotfix for absence of jvm dependencies in android modules
Versions
:Ktor
:2.2.3
->2.2.4
Versions
:Kotlin
:1.7.20
->1.8.10
Serialization
:1.4.1
->1.5.0
KSLog
:0.5.4
->1.0.0
AppCompat
:1.6.0
->1.6.1
Repos
:Generator
:- Module has been created
Repos
:Exposed
:CommonExposedRepo.selectByIds
usesfoldRight
by default instead of raw foreach
Koin
:Generator
:- Module has been created
LanguageCodes
:- In android and JVM targets now available
toJavaLocale
and from JavaLocale
conversations from/toIetfLanguageCode
- In android and JVM targets now available
Repos
:Cache
:- New transformer type:
ReadCRUDFromKeyValueRepo
- New transformer type:
ReadKeyValueFromCRUDRepo
- New transformer type:
Pagination
:- New
paginate
extensions withreversed
support forList
/Set
- New
Versions
:Koin
:3.2.2
->3.3.2
AppCompat
:1.5.1
->1.6.0
Ktor
:Client
HttpResponse.bodyOrNull
now retrieve callback to check if body should be received or null- New extension
HttpResponse.bodyOrNullOnNoContent
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 asFallbackCacheRepo
s
- New type of caches:
Common
:- New transformations for key-value and key-values vice-verse
- Fixes in
FileReadKeyValueRepo
Common
:- New extensions
ifTrue
/ifFalse
/alsoIfTrue
/alsoIfFalse
/letIfTrue
/letIfFalse
Diff
now is serializable- Add
IndexedValue
serializer repeatOnFailure
extending: 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
Flow
conversations to composeState
/MutableState
/SnapshotStateList
/List
got several new parameters Flow.toMutableState
now is deprecated in favor toasMutableComposeState
- All the
Repos
:Cache
:- New type
FullCacheRepo
- New type
CommonCacheRepo
CacheRepo
gotinvalidate
method. It will fully reloadFullCacheRepo
and just clearCommonCacheRepo
- New extensions
KVCache.actualizeAll
- New type
Startup
:Launcher
:- Improvements in
StartLauncherPlugin#start
methods - Add opportunity to pass second argument on
JVM
platform as log level
- Improvements in
Repos
:Ktor
:Client
:- All clients repos got opportunity to customize their flows
Exposed
:- Extensions
eqOrIsNull
andneqOrIsNotNull
forColumn
- Extensions
Versions
:Ktor
:2.2.1
->2.2.2
Coroutines
:- Create
launchInCurrentThread
- Create
Startup
:Launcher
:- All starting API have been moved into
StartLauncherPlugin
and do not require serialize/deserialize cycle for now
- All starting API have been moved into
Versions
:Compose
:1.2.1
->1.2.2
Startup
:- Module become available on
JS
target
- Module become available on
Coroutines
:- New
runCatchingSafely
/safelyWithResult
with receivers
- New
SafeWrapper
:- Module inited
Versions
:Ktor
:2.1.3
->2.2.1
Android Fragment
:1.5.3
->1.5.5
Startup
:- Inited :)
Plugin
:- Inited :)
Launcher
:- Inited :)
Repos
:CRUD
:Common
:- New method
ReadCRUDRepo#getIdsByPagination
- New method
Android
:AbstractAndroidCRUDRepo
got new abstract methodtoId
Exposed
:CommonExposedRepo
new abstract propertyasId
Ktor
:Client
:KtorReadCRUDRepoClient
now requirespaginationIdType
LanguageCodes
:- Updates and fixes in generation
MimeTypes
:- Updates and fixes in generation
Common
:JVM
:- New extension
downloadToTempFile
- New extension
Ktor
:Server
:- Small fix in
handleUniUpload
ApplicationCall#uniloadMultipartFile
now usesuniloadMultipart
- Small fix in
Common
:- New extension
downloadToTempFile
- New extension
Client
:- New extensions on top of
uniUpload
- New extensions on top of
Common
:- New type
Progress
- New type
Ktor
:Client
:- New universal
uniUpload
extension forHttpClient
- New universal
Server
:- New universal
handleUniUpload
extension forApplicationCall
- Add extensions
download
anddownloadToTemporalFile
- New universal
Versions
:Exposed
:0.40.1
->0.41.1
Versions
:Klock
:3.3.1
->3.4.0
UUID
:0.5.0
->0.6.0
ALL DEPRECATIONS HAVE BEEN REMOVED
Versions
:Kotlin
:1.7.10
->1.7.20
Klock
:3.3.0
->3.3.1
Compose
:1.2.0
->1.2.1
Exposed
:0.39.2
->0.40.1
Versions
:Klock
:3.1.0
->3.3.0
Ktor
:2.1.2
->2.1.3
Repos
:Exposed
:AbstractExposedWriteCRUDRepo#createAndInsertId
now is optional and returns nullable value
ALL DEPRECATIONS HAVE BEEN REMOVED A LOT OF KTOR METHODS RELATED TO UnifierRouter/UnifiedRequester HAVE BEEN REMOVED
Repos
:Exposed
:AbstractExposedWriteCRUDRepo
got two new methods:update
withit
asUpdateBuilder<Int>
andcreateAndInsertId
- Old
update
method has been deprecated and not recommended to override anymore in realizations - Old
insert
method now isopen
instead ofabstract
and can be omitted
- Old
AbstractExposedKeyValueRepo
got two new methods:update
withit
asUpdateBuilder<Int>
andinsertKey
- Old
update
method has been deprecated and not recommended to override anymore - Old
insert
method now isopen
instead ofabstract
and can be omitted in realizations
- Old
Versions
:JB Compose
:1.2.0-alpha01-dev774
->1.2.0-beta02
Ktor
:2.1.1
->2.1.2
Koin
:3.2.0
->3.2.2
Coroutines
:Android
:- Add class
FlowOnHierarchyChangeListener
- Add
ViewGroup#setOnHierarchyChangeListenerRecursively(OnHierarchyChangeListener)
- Add class
Common
:applyDiff
will returnDiff
object since this releaseAndroid
:- New functions/extensions
findViewsByTag
andfindViewsByTagInActivity
- New functions/extensions
Coroutines
:- Add
Flow
extensionsflatMap
,flatMapNotNull
andflatten
- Add
Flow
extensionstakeNotNull
andfilterNotNull
- Add
Versions
:Android CoreKTX
:1.8.0
->1.9.0
Android 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
/argumentOrThrow
delegates for fragments
- Add
Coroutines
:- Rewrite
awaitFirstWithDeferred
ontoCompletableDeferred
instead of coroutines suspending
- Rewrite
Coroutines
:- Add opportunity to use markers in actors (solution of #160)
Koin
:- Module inited :)
Repos
:Android
:- Add typealias
KeyValueSPRepo
and opportunity to create shared preferencesKeyValue
repo withKeyValueStore(...)
(fix of #155)
- Add typealias
Common
:Compose
:JS
:- Add
SkeletonAnimation
stylesheet
- Add
Repos
:Cache
:- Override
KeyValue
cache methodvalues
- Override
Repos
:Cache
:- Hotfix in key values
get
- Hotfix in key values
Versions
:Klock
:3.0.0
->3.1.0
Repos
:Cache
:- Fixes in key values cache
Versions
:Ktor
:2.1.0
->2.1.1
Compose
:1.2.0-alpha01-dev764
->1.2.0-alpha01-dev774
Ktor
:Client
:- New extension
HttpClient#bodyOrNull
which returnsnull
in case when server responded withNo Content
(204)
- New extension
Server
:- New extension
ApplicationCall#respondOrNoContent
which respondsNo Content
(204) when passed data is null
- New extension
Repos
:Cache
:- Force
WriteCRUDCacheRepo
to subscribe on new and updated objects of parent repo
- Force
Pagination
:- New function
changeResultsUnchecked(Pagination)
- New function
MimeeTypes>
:- Fixed absence of
image/*
in known mime types
- Fixed absence of
Repos
:Exposed
:- Fixes in
paginate
extensions
- Fixes in
Versions
:Kotlin
:1.7.0
->1.7.10
Compose
:1.2.0-alpha01-dev755
->1.2.0-alpha01-dev764
Repos
:Exposed
:- Add abstract exposed variants of
KeyValue
andKeyValues
repos - Add new extension
Query#selectPaginated
- Add abstract exposed variants of
Versions
:Serialization
:1.4.0-RC
->1.4.0
Compose
:1.2.0-alpha01-dev753
->1.2.0-alpha01-dev755
Versions
:Ktor
:2.0.3
->2.1.0
OLD DEPRECATIONS HAVE BEEN REMOVED
MINIMAL ANDROID API HAS BEEN ENLARGED UP TO API 21 (Android 5.0)
Versions
Kotlin
:1.6.21
->1.7.0
Coroutines
:1.6.3
->1.6.4
Exposed
:0.38.2
->0.39.2
Compose
:1.2.0-alpha01-dev729
->1.2.0-alpha01-dev753
Klock
:2.7.0
->3.0.0
uuid
:0.4.1
->0.5.0
Android Core KTX
:1.7.0
->1.8.0
Android AppCompat
:1.4.1
->1.4.2
Ktor
:- All previously standard functions related to work with binary data by default have been deprecated
Pagination
:PaginationResult
got new fieldobjectsNumber
which by default is a times betweenpagesNumber
andsize
Versions
:Coroutines
:1.6.3
->1.6.4
Compose
:1.2.0-alpha01-dev629
->1.2.0-alpha01-dev731
Repos
:Common
:JVM
:- Fixes in
ReadFileKeyValueRepo
methods (values
/keys
)
- Fixes in
Crypto
:hmacSha256
has been deprecated
Ktor
:Client
:BodyPair
has been deprecated
Repos
:Cache
:- New interface
CacheRepo
- New interface
FullCacheRepo
actualize*
methods inside of full cache repos now open for overriding
- New interface
Repos
:Cache
:KVCache
has been replaced to the packagedev.inmo.micro_utils.repos.cache
SimpleKVCache
has been replaced to the packagedev.inmo.micro_utils.repos.cache
- New
KVCache
subtype -FullKVCache
- Add
Full*
variants of standard repos - Add
cached
/caching
(for write repos) extensions for all standard types of repos
Versions
Coroutines
:1.6.1
->1.6.3
Ktor
:2.0.2
->2.0.3
Compose
:1.2.0-alpha01-dev686
->1.2.0-alpha01-dev729
Repos
:Common
:- Fixes in
FileKeyValueRepo
- Fixes in
Common
:- New abstractions
SimpleMapper
andSimpleSuspendableMapper
- New abstractions
Repos
:Common
:- Add mappers for
CRUDRepo
- Add mappers for
FSM
:Common
- Several fixes related to the jobs handling
Coroutines
:Compose
:- Add extension
StateFlow#asMutableComposeListState
andStateFlow#asComposeList
- Add extension
StateFlow#asMutableComposeState
/StateFlow#asComposeState
- Add extension
THIS VERSION HAS BEEN BROKEN, DO NOT USE IT
Ktor
:- Support of
WebSockets
has been improvedClient
:- New extensions:
HttpClient#openBaseWebSocketFlow
,HttpClient#openWebSocketFlow
,HttpClient#openSecureWebSocketFlow
- New extensions:
- Support of
Ktor
:- Support of
WebSockets
has been improved and added fixes inside of clients
- Support of
Repos
Ktor
- In
configureReadKeyValueRepoRoutes
andconfigureReadKeyValuesRepoRoutes
configurators fixed requiring ofreversed
property
- In
Versions
UUID
:0.4.0
->0.4.1
Ktor
Client
:- New extension fun
HttpResponse#throwOnUnsuccess
- All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping
ContentNegotiation
in mind
- New extension fun
Server
:- All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping
ContentNegotiation
in mind
- All old functions, classes and extensions has been rewritten with new ktor-way with types info and keeping
Repos
Ktor
:- 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
ContentNegotiation
in mind
Common
- Add
Element.isOverflow*
extension properties
- Add
Pagination
:- Now it is possible to use
doForAll*
andgetForAll
functions in non suspend places
- Now it is possible to use
Versions
Ktor
:2.0.1
->2.0.2
Common
JS
:- Add
ResizeObserver
functionality
- Add
Versions
Compose
:1.2.0-alpha01-dev683
->1.2.0-alpha01-dev686
Repos
Android
:- New function
SharedPreferencesKeyValueRepo
- New function
FSM
- Add
StateHandlingErrorHandler
and opportunity to handle states handling errors
- Add
Versions
:Serialization
:1.3.2
->1.3.3
Versions
:Compose
:1.2.0-alpha01-dev682
->1.2.0-alpha01-dev683
Coroutines
:- Fixes in
AccumulatorFlow
- Fixes in
Versions
:Compose
:1.2.0-alpha01-dev675
->1.2.0-alpha01-dev682
Versions
:Ktor
:2.0.0
->2.0.1
Crypto
:- Add
hmacSha256
- Add
hex
- Add
Versions
:Kotlin
:1.6.10
->1.6.21
Compose
:1.1.1
->1.2.0-alpha01-dev675
Exposed
:0.37.3
->0.38.2
Ktor
:1.6.8
->2.0.0
Dokka
:1.6.10
->1.6.21
Ktor
:Common
:- New extension fun
MPPFile#input
- New extension fun
Repos
:Exposed
:- New property
ExposedRepo#selectAll
to retrieve all the rows in the table
- New property
Ktor
:Server
:- Now
createKtorServer
fun is fully customizable
- Now
Repos
:Exposed
:- fixes in
AbstractExposedWriteCRUDRepo
- fixes in
Repos
:Common
:- Fixes in
OneToManyAndroidRepo
- New
CursorIterator
- Fixes in
Versions
:Coroutines
:1.6.0
->1.6.1
Repos
:Exposed
:- Fixes in
ExposedStandardVersionsRepoProxy
- Fixes in
Common
- New extensions for
Element
:Element#onActionOutside
andElement#onClickOutside
- New extensions for
Common
:- New extensions
Element#onVisibilityChanged
,Element#onVisible
andElement#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
Versions
:Klock
:2.6.3
->2.7.0
Common
:- New extension
Node#onRemoved
Compose
:- New extension
Composition#linkWithRoot
for removing of composition with root element
- New extension
- New extension
Coroutines
:Compose
:- New function
renderComposableAndLinkToContextAndRoot
with linking of composition to root element
- New function
FSM
:- Rename
DefaultUpdatableStatesMachine#compare
toDefaultUpdatableStatesMachine#shouldReplaceJob
DefaultStatesManager
now is extendableDefaultStatesMachine
will stop all jobs of states which was removed fromstatesManager
- Rename
Versions
:Klock
:2.6.2
->2.6.3
Ktor
:1.6.7
->1.6.8
Ktor
:- Add temporal files uploading functionality (for clients to upload and for server to receive)
Versions
:Compose
:1.1.0
->1.1.1
Common
:JS
:- New function
openLink
- New function
selectFile
- New function
triggerDownloadFile
- New function
Compose
:- Created :)
Common
:DefaultDisposableEffectResult
as a default realization ofDisposableEffectResult
JS
:openLink
on top ofopenLink
withString
target from common
Coroutines
:Compose
:Common
:- New extension
Flow.toMutableState
- New extension
StateFlow.toMutableState
- New extension
JS
:- New function
selectFileOrThrow
on top ofselectFile
fromcommon
- New function
selectFileOrNull
on top ofselectFile
fromcommon
- New function
Versions
:Klock
:2.6.1
->2.6.2
Coroutines
:Compose
:- Created :)
- New extensions and function:
Composition#linkWithJob
Composition#linkWithContext
renderComposableAndLinkToContext
Versions
:Klock
:2.5.2
->2.6.1
- Ktor:
- Client:
- New function
UnifiedRequester#createStandardWebsocketFlow
withoutcheckReconnection
arg
- New function
- Server:
- Now it is possible to filter data in
Route#includeWebsocketHandling
- Callback in
Route#includeWebsocketHandling
and dependent methods issuspend
since now - Add
URLProtocol
support inRoute#includeWebsocketHandling
and dependent methods
- Now it is possible to filter data in
- Client:
Versions
:Klock
:2.5.1
->2.5.2
Common
:- Add new diff tool -
applyDiff
- Implementation of
IntersectionObserver
in JS part (copypaste of this comment)
- Add new diff tool -
Versions
:Exposed
:0.37.2
->0.37.3
Klock
:2.4.13
->2.5.1
AppCompat
:1.4.0
->1.4.1
Repos
:Exposed
:- Fix in
ExposedOneToManyKeyValueRepo
- now it will not useinsertIgnore
- Fix in
Ktor
:Server
:Route#includeWebsocketHandling
now will check thatWebSockets
feature and install it if not
Repos
:Exposed
:- Fix in
ExposedOneToManyKeyValueRepo
- now it will not usedeleteIgnoreWhere
- Fix in
Versions
:Klock
:2.4.12
->2.4.13
Pagination
:Common
:- Add several
optionallyReverse
functions
- Add several
Common
:- Changes in
Either
:- Now
Either
usesoptionalT1
andoptionalT2
as main properties Either#t1
andEither#t2
are deprecated- New extensions
Either#mapOnFirst
andEither#mapOnSecond
- Now
- Changes in
Versions
:UUID
:0.3.1
->0.4.0
Versions
:Klock
:2.4.10
->2.4.12
Repos
:Exposed
:- Default realizations of standard interfaces for exposed DB are using public fields for now:
ExposedReadKeyValueRepo
ExposedReadOneToManyKeyValueRepo
ExposedStandardVersionsRepoProxy
- New typealiases for one to many exposed realizations:
ExposedReadKeyValuesRepo
ExposedKeyValuesRepo
- Default realizations of standard interfaces for exposed DB are using public fields for now:
Versions
:Kotlin
:1.5.31
->1.6.10
Coroutines
:1.5.2
->1.6.0
Serialization
:1.3.1
->1.3.2
Exposed
:0.36.2
->0.37.2
Ktor
:1.6.5
->1.6.7
Klock
:2.4.8
->2.4.10
Ktor
:Server
:- Fixes in
uniloadMultipart
- Fixes in
Client
:- Fixes in
unimultipart
- Fixes in
FSM
:- Fixes in
DefaultUpdatableStatesMachine
- Fixes in
Versions
:AppCompat
:1.3.1
->1.4.0
- Android Compile SDK:
31.0.0
->32.0.0
FSM
:DefaultStatesMachine
now is extendable- New type
UpdatableStatesMachine
with default realizationDefaultUpdatableStatesMachine
Ktor
:Client
:UnifiedRequester
now have no private fields- Add preview work with multipart
Server
UnifiedRouter
now have no private fields- Add preview work with multipart
Common
:Either
extensionsonFirst
andonSecond
now accept notcrossinline
callbacks- All
joinTo
now accept notcrossinline
callbacks
Common
:repeatOnFailure
Ktor
:Server
:- Several new
createKtorServer
- Several new
Common
:- Ranges intersection functionality
- New type
Optional
Pagination
:Pagination
now extendsClosedRange<Int>
Pagination
intersection functionality
Versions
:Klock
:2.4.7
->2.4.8
Serialization
:1.3.0
->1.3.1
FSM
:- Now it is possible to pass any
CheckableHandlerHolder
inFSMBuilder
- Now
StatesMachine
works withCheckableHandlerHolder
instead ofCustomizableHandlerHolder
- Now it is possible to pass any
Versions
:Exposed
:0.36.1
->0.36.2
Core KTX
:1.6.0
->1.7.0
Versions
:Klock
:2.4.6
->2.4.7
Ktor
:1.6.4
->1.6.5
Exposed
:0.35.3
->0.36.1
Common
:- Type
Either
got 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
StateHandlerHolder
has been renamed toCheckableHandlerHolder
- Add opportunity for comfortable adding default state handler
- Full rework of FSM:
Common
:- New type
Either
- New type
Serialization
:TypedSerializer
- New factory fun which accept vararg pairs of type and its serializer
Repos
:Common
(Android
):AbstractMutableAndroidCRUDRepo
flows 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
ExposedKeyValueRepo
properties_onNewValue
and_onValueRemoved
now are available in inheritors
- New parameter
Pagination
:Common
:- New types
getAllBy*
for current, next and custom paging
- New types
Versions
:Exposed
:0.35.2
->0.35.3
Versions
:Klock
:2.4.5
->2.4.6
Versions
:Klock
:2.4.3
->2.4.5
Exposed
:0.35.1
->0.35.2
Coroutines
:Common
:- New
Flow
-AccumulatorFlow
- New
FSM
:Common
:InMemoryStatesManager
has been replacedStatesMachine
became an interface- New manager
DefaultStatesManager
withDefaultStatesManagerRepo
for abstraction of manager and storing of data info
THIS VERSION HAS MIGRATED FROM KOTLINX DATETIME TO KORLIBS KLOCK. CAREFUL
Versions
kotlinx.datetime
->Klock
THIS VERSION HAS MIGRATED FROM KORLIBS KLOCK TO KOTLINX DATETIME. CAREFUL ALL DEPRECATION HAVE BEEN REMOVED
Versions
Klock
->kotlinx.datetime
Versions
:Klock
:2.4.2
->2.4.3
Ktor
:1.6.3
->1.6.4
Versions
:Serialization
:1.2.2
->1.3.0
Versions
:Exposed
:0.34.2
->0.35.1
Versions
:Kotlin
:1.5.30
->1.5.31
Klock
:2.4.1
->2.4.2
Versions
:Exposed
:0.34.1
->0.34.2
Repos
:InMemory
:MapCRUDRepo
s andMapKeyValueRepo
s gotprotected
methods and properties instead of private
Versions
:UUID
:0.3.0
->0.3.1
Common
:- New property
MPPFile#withoutSlashAtTheEnd
- Extension
clamp
has been deprecated - New extension
Iterable#diff
- New property
Serialization
:- New operators
TypedSerializer#plusAssign
andTypedSerializer#minusAssign
- New operators
Versions
:Coroutines
:1.5.1
->1.5.2
Klock
:2.3.4
->2.4.1
Coroutines
:- New function
CoroutineScope
with safely exceptions handler as second parameter
- New function
Versions
:Exposed
:0.33.1
->0.34.1
Common
:- New extensions
Iterable#joinTo
andArray#joinTo
- New extensions
Versions
Kotlin
:1.5.21
->1.5.30
Klock
:2.3.2
->2.3.4
AppCompat
:1.3.0
->1.3.1
Ktor
:1.6.2
->1.6.3
Versions
Klock
:2.3.1
->2.3.2
Serialization
Typed Serializer
:TypedSerializer
Descriptor serial name has been fixed
Repos
:Common
Android
:*OrNull
analogs ofCursor.get*(String)
extensions have been added- Extensions
Cursor.getFloat
andCursor.getFloatOrNull
have been added
LanguageCode
:IetfLanguageCode
became as sealed classIetfLanguageCode
now overridetoString
and returns its code
Versions
Kotlin Exposed
:0.32.1
->0.33.1
LanguageCode
:- Module has been created
SINCE THIS UPDATE JS PARTS WILL BE COMPILED WITH IR COMPILER ONLY
Versions
Kotlin
:1.5.20
->1.5.21
Ktor
:1.6.1
->1.6.2
Klock
:2.2.0
->2.3.1
CryptoJS
:4.0.0
->4.1.1
Versions
Coroutines
:1.5.0
->1.5.1
Serialization
:1.2.1
->1.2.2
Ktor
:1.6.0
->1.6.1
Klock
:2.1.2
->2.2.0
Core KTX
:1.5.0
->1.6.0
Coroutines
- Fixes in
subscribeAsync
- Fixes in
Versions
Kotlin
:1.5.10
->1.5.20
Coroutines
subscribeSafelyWithoutExceptions
got new parameteronException
by analogue withsafelyWithoutExceptions
- New extensions
Flow#subscribeAsync
and subsequent analogs ofsubscribe
with opportunity to set up custom marker
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
Common
:Android
- Extension
View#changeVisibility
has been fixed
- Extension
Android
RecyclerView
- Default adapter got
dataCountFlow
property - New subtype of adapter based on
StateFlow
:StateFlowBasedRecyclerViewAdapter
- Default adapter got
Repos
:Common
:- Fixes in
WriteOneToManyRepo#add
- Fixes in
Exposed
:- Fixes in
ExposedOneToManyKeyValueRepo#add
- Fixes in
Versions
Core KTX
:1.3.2
->1.5.0
AndroidX Recycler
:1.2.0
->1.2.1
AppCompat
:1.2.0
->1.3.0
Android
RecyclerView
:data
ofRecyclerViewAdapter
became an abstract field- New function
RecyclerViewAdapter
- New function
Common
:- New extension
View#changeVisibility
- New extension
Repos
:Common
:WriteOneToManyRepo
got new functionclearWithValue
Android
:- New extension
SQLiteDatabase#selectDistinct
- Fixes in
OneToManyAndroidRepo
- New extension
Ktor
Server
- All elements in configurators became a
fun interface
- All elements in configurators became a
Pagination
- New function
doForAllWithCurrentPaging
- New function
Repos
Common
OneToManyAndroidRepo
got new primary constructor
Common
:- New extension
Iterable#firstNotNull
- New extension
Coroutines
- New extension
Flow#firstNotNull
- New extensions
CoroutineContext#LinkedSupervisorJob
,CoroutineScope#LinkedSupervisorJob
andCoroutineScope#LinkedSupervisorScope
- New extension
Pagination
Ktor
Server
- Fixes in extension
extractPagination
- Fixes in extension
Repos
Cache
- All standard cache repos have been separated to read and read/write repos
Versions
Exposed
:0.31.1
->0.32.1
Coroutines
JVM
launchSynchronously
and subsequent functions got improved mechanism
- New method
safelyWithResult
Versions
Ktor
:1.5.4
->1.6.0
Versions
:Klock
:2.1.0
->2.1.2
Versions
:Kotlin
:1.5.0
->1.5.10
Coroutines
:- Extensions
doInUI
anddoInDefault
were replaced in common and available on any supported platform - Extension
doInIO
replaced intojvm
and available on anyJVM
platform - Old extension
safelyWithouException
withoutonException
has been replaced by its copy withonException
and default value- New value
defaultSafelyWithoutExceptionHandlerWithNull
which is used in all*WithoutExceptions
by default
- New value
- Analogs of
launch
andasync
forsafely
andsafelyWithoutExceptions
were added - Analogs of
runCatching
forsafely
andsafelyWithoutExceptions
were added
- Extensions
Ktor
:Client
:- Fixes in
UnifiedRequester
- Fixes in
Versions
:Kotlin Serialization
:1.2.0
->1.2.1
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.1
Kotlin Coroutines
:1.4.3
->1.5.0
RecyclerView
:1.1.0
->1.2.0
Ktor
:1.5.3
->1.5.4
Klock
:2.0.7
->2.1.0
UUID
:0.2.4
->0.3.0
- ALL DEPRECATIONS WERE REMOVED
Android
:Alerts
:RecyclerView
:- Classes
ActionViewHolder
andActionsRecyclerViewAdapter
became public
- Classes
Coroutines
:- New extension and function
doSynchronously
which are the same aslaunchSynchronously
- New extensions
doInDefault
anddoInIO
- New extension and function
- All
Android
targets inside common mpp modules now includes JVM code
Versions
:Kotlin Exposed
:0.30.1
->0.30.2
Serialization
:TypedSerializer
:- Project has been inited
Versions
:uuid
:0.2.3
->0.2.4
Repos
:AbstractExposedCRUDRepo
now implementsStandardCRUDRepo
AbstractMutableAndroidCRUDRepo
now implementsStandardCRUDRepo
Versions
:Ktor
:1.5.2
->1.5.3
Coroutines
- Add
WeakJob
workaround:CoroutineScope#weakLaunch
CoroutineScope#weakAsync
- Add
Versions
:Kotlin Exposed
:0.29.1
->0.30.1
Versions
:Kotlin
:1.4.31
->1.4.32
Pagination
:- New extensions
PaginationResult.changeResultsUnchecked
andPaginationResult.changeResults
for mapping results with the same parameters, but different data - Extension
PaginationResult.thisPageIfNotEmpty
now 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:
doForAll
doForAllWithNextPaging
doForAllWithCurrentPaging
getAll
getAllWithNextPaging
getAllWithCurrentPaging
- New extensions
Coroutines
:- Rewrite
subscribeSafelyWithoutExceptions
- Now
subscribeSafelyWithoutExceptions
will 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
doForAll
methods have been deprecated
- New subproject
Versions
:Klock
:2.0.6
->2.0.7
Pagination
:- New variable
defaultPaginationPageSize
has been added to be able to change default pagination size - Add new value
firstPageWithOneElementPagination
- New variable
Versions
:Coroutines
:1.4.2
->1.4.3
Repos
:Common
Android
:- New
blockingReadableTransaction
/blockingWritableTransaction
- Android databases realizations now use blocking transactions where it is possible
- Several improvements in transactions work
- New
Versions
:Kotlin
:1.4.30
->1.4.31
Ktor
:1.5.1
->1.5.2
Coroutines
- Add
createActionsActor
/createSafeActionsActor
anddoWithSuspending
- Add
Repos
Exposed
- Fix in
AbstractExposedWriteCRUDRepo
- Fix in
Versions
:Serialization
:1.0.1
->1.1.0
Matrix
:- Subproject has been created
Versions
:Kotlin
:1.4.21
->1.4.30
Klock
:2.0.4
->2.0.6
Coroutines
:- New class
DoWithFirstBuilder
- Several new extensions like
firstOf
/first
/invokeOnFirstOf
- New class
Versions
:Ktor
:1.5.0
->1.5.1
Serialization
Base64
- New serializer
Base64BytesToFromStringSerializer
has been added
- New serializer
Versions
:Exposed
:0.28.1
->0.29.1
Klock
:2.0.2
->2.0.4
Common
JS
- Extension
DataView#toByteArray
has been added - Extension
ArrayBuffer#toByteArray
has been added - Extension
ByteArray#toDataView
has been added - Extension
ByteArray#toArrayBuffer
has been added
- Extension
Coroutines
JS
- Extension
Blob#toByteArray
has been added
- Extension
Crypto
- Subproject has been created
Serialization
Base64
- Currently, it is not depended on
common
project and usecrypto
instead
- Currently, it is not depended on
Serialization
Encapsulator
:- Has been created
Coroutines
:- New extension
Iterable<Deferred>#awaitFirstWithDeferred
has been added to identify which ofDeferred
s was normally completed - New extensions
Iterable<Deferred<T>>#invokeOnFirst
andIterable<DeferredAction<*, O>>.invokeFirstOf
have been added
- New extension
Coroutines
:- New extension
Iterable<Deferred>#awaitFirst
has been added
- New extension
Serialization
Base 64
- New
Base64ByteArraySerializer
has been added
- New
Common
- Functionality for decode/encode base 64 to/from
ByteArray
/String
have been added
- Functionality for decode/encode base 64 to/from
Serialization
Base 64
- Project has been initiated
Coroutines
:safely
:- New
safelyWithoutExceptions
function may acceptonException
parameter with nullable result - Old
safelyWithoutExceptions
now usingdefaultSafelyWithoutExceptionHandler
to handle exceptions "like insafely
", but it is expected thatdefaultSafelyWithoutExceptionHandler
will not throw any exception
- New
Coroutines
:safely
:SafelyExceptionHandlerKey
has been deprecatedSafelyExceptionHandler
has been deprecatedContextSafelyExceptionHandlerKey
has been addedContextSafelyExceptionHandler
has been addedsafelyWithContextExceptionHandler
has been added
Versions
:Kotlin
:1.4.20
->1.4.21
Ktor
:1.4.3
->1.5.0
Klock
:2.0.1
->2.0.2
Coroutines
:- Add global variable
defaultSafelyExceptionHandler
- Add
SafelyExceptionHandlerKey
andSafelyExceptionHandler
classes to be able to overwritedefaultSafelyExceptionHandler
using context of coroutine
- Add global variable
Common
Android
- Add expand/collapse functionality for horizontal expand/collapse
Coroutines
JVM
- Update
launchSynchronously
signature
- Update
Selector
- Project created
Common
- Add
clamp
function
- Add
Versions
:Klock
:2.0.0
->2.0.1
Repo
- Repo
WriteStandardKeyValueRepo
got new methodunsetWithValues
- Repo
Versions
:Ktor
:1.4.2
->1.4.3
Coroutines
:launchSynchronously
has been added in JVM
Repo
Common
- In repos different usages of
BroadcastChannel
s has been replaced withMutableSharedFlow
- In repos different usages of
Exposed
asObject
open fun has been added in CRUD realization
Versions
:Coroutines
:1.4.1
->1.4.2
UUID
:0.2.2
->0.2.3
Pagination
- Add
PaginatedIterable
andPaginatedIterator
- Add
Ktor
Client
- New class
UnifiedRequester
- New class
Server
- New class
UnifiedRouter
- New class
Repos
Ktor
Client
- 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
Common
- New annotation
Warning
has been added
- New annotation
Pagination
Common
Pagination
got new extension:Pagination#isFirstPage
Coroutines
:- New extension
FlowCollector#invoke
has been added
- New extension
Repos
Common
JVM
(andAndroid
sinceAndroid API 26
):FileStandardKeyValueRepo
has been added
- Add several
typealias
es for each type of repos
Android
Alerts
Common
- Project has been created
RecyclerView
- Project has been created
Common
- Annotation
PreviewFeature
has 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
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
VersionsRepo
namedStandardVersionsRepo
which useStandardVersionsRepoProxy
to get access to some end-store - Add default realization of
StandardVersionsRepoProxy
based onKeyValue
repos - Add realizations of
StandardVersionsRepoProxy
for exposed and android (SQL
andSharedPreferences
)
- Add default realization of
Commons
:- In Android fully reworked transactions functions
- Now
DatabaseCoroutineContext
is a shortcut forDispatchers.IO
- Add interface
Versions
:Kotlin
:1.4.10
->1.4.20
Common
:- Two new extensions for Android:
Resources#getSp
Resources#getDp
- Two new extensions for Android:
Repos
:- Add
WriteOneToManyKeyValueRepo#set
function and extensions
- Add
Repos
:- Fixed error in
ExposedKeyValueRepo
related to negative size of shared flow - Fixed error in
ExposedKeyValueRepo
related to avoiding of table initiation
- Fixed error in
Repos
:ReadOneToManyKeyValueRepo
gotkeys
method with value parameter- All implementations inside of this library has been updated
ReadStandardKeyValueRepo
gotkeys
method with value parameter- All implementations inside of this library has been updated
- New extensions
withMapper
Coroutines
:- New extension
Flow<T>#plus
- New extension
Versions
:Coroutines
:1.4.1
->1.4.2
Repos
:Common
:- New inline function
mapper
for simplier creating ofMapperRepo
objects - Extensions
withMapper
for keyvalue repos and onetomany repos
- New inline function
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
Ktor
Common
- 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
Pagination
Common
- Now available package
dev.inmo:micro_utils.pagination.common-android
- Now available package
Ktor
Common
- Now available package
dev.inmo:micro_utils.pagination.ktor.common-android
- Now available package
Repos
Common
- 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
Ktor
Common
- 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
All deprecations has been removed
Repos
:Common
:KeyValue
andOneToMany
repos lost their deprecated methodsOneToMany
write repos got additional extensions for mutation of repoKeyValue
write repos got additional extensions for mutation of repo- New interface
MapperRepo
and new classes which are using this:KeyValue
MapperReadStandardKeyValueRepo
MapperWriteStandardKeyValueRepo
MapperStandardKeyValueRepo
OneToMany
MapperReadOneToManyKeyValueRepo
MapperWriteOneToManyKeyValueRepo
MapperOneToManyKeyValueRepo
Exposed
:- CRUD realizations replaced their channels to shared flows
Versions
:Coroutines
:1.4.0
->1.4.1
Repos
:WriteStandardKeyValueRepo
got new methodsset
andunset
with collections- All standard realizations of repos got collections methods realizations
- All old usages of
BroadcastFlow
andBroadcastChannel
has been replaced withMutableSharedFlow
Ktor
:Server
:- Fixed incorrect answer for
keyvalue
- Fixed incorrect answer for
Pagination
- Fixes in function
List#paginate
- Extension property
Pagination#lastIndexExclusive
- Fixes in function
Coroutines
- Function
safelyWithoutExceptions
- Extension
CoroutineScope#safeActor
- Function
Versions
Serialization
:1.0.0
->1.0.1
Common
- Full rework of
DiffUtils
- Data class
Diff
has been added - Extension
Iterable#calculateDiff
has been added- Extension
Iterable#calculateStrictDiff
as replacement forIterable#calculateDiff
withstrictComparison
mode enabled - Functions
Diff
(as analog ofIterable#calculateDiff
) andStrictDiff
(as analog ofIterable#calculateStrictDiff
)
- Extension
- Data class
- Full rework of
Coroutines
BroadcastFlow
now is deprecatedBroadcastStateFlow
now is deprecated- New extensions for
Flow
s:Flow#subscribe
Flow#subscribeSafely
Flow#subscribeSafelyWithoutExceptions
Versions
Coroutines
:1.3.9
->1.4.0
Exposed
:0.27.1
->0.28.1
Common
K/JS
- Add several extensions for
Element
objects to detect that object is on screen viewport - Add several extensions for
Element
objects to detect object visibility
- Add several extensions for
Coroutines
BroadcastStateFlow
now use different strategy for getting of state and implementsreplayCache
Repos
Common
- Several new methods
ReadOneToManyKeyValueRepo#getAll
- Several new method
WriteOneToManyKeyValueRepo#add
and several extensions - Several new method
WriteOneToManyKeyValueRepo#remove
and several extensions
- Several new methods
Pagination
Common
:- Extension
Pagination#reverse
has been added - Factory
PaginationByIndexes
- Shortcut
calculatePagesNumber
with reversed parameters - Value
emptyPagination
for emptySimplePagination
cases
- Extension
Repos
Exposed
- Now this project depend on
micro_utils.coroutines
- Typealias
ColumnAllocator
has been replaced to root exposed package - Interface
ExposedRepo
has been addedExposedCRUDRepo
now extendsExposedRepo
instead of simpleRepo
- New extension
initTable
for classes which areTable
andExposedRepo
at the same time KeyValue
:tableName
parameter- Class
AbstractExposedReadKeyValueRepo
- Renamed to
ExposedReadKeyValueRepo
- Changed incoming types to
ColumnAllocator
open
instead ofabstract
- Implements
ExposedRepo
- Renamed to
- Class
AbstractExposedKeyValueRepo
- Renamed to
ExposedKeyValueRepo
- Changed incoming types to
ColumnAllocator
open
instead ofabstract
- Renamed to
OneToMany
:tableName
parameter- Class
AbstractExposedReadOneToManyKeyValueRepo
- Renamed to
ExposedReadOneToManyKeyValueRepo
- Changed incoming arguments order
- Implements
ExposedRepo
- Renamed to
- Class
AbstractExposedOneToManyKeyValueRepo
- Renamed to
ExposedKeyValueRepo
- Changed incoming arguments order
open
instead ofabstract
- Release for every
Flow
in parent interfaces
- Renamed to
- Now this project depend on
Versions
:kotlinx.serialization
:1.0.0-RC2
->1.0.0
Pagination
Common
- Function
calculatePage
for calculating page based on size of page and index of first element - Extension
List#createPaginationResult
which use index of first element to calculate current page and other info inPaginationResult
object - Factory
emptyPaginationResult
for emptyPaginationResult
- Extensions
paginate
for creating ofPaginationResult
which use as source one of next types:Iterable
List
Set
- Function
Repos
Common
- Interfaces related to
OneToManyKeyValueRepo
were renamed with convenience toRead
/Write
modifier before name- All subclasses were renamed
- Interfaces related to
StandartKeyValueRepo
were renamed with convenience toRead
/Write
modifier before name- All subclasses were renamed
- Extensions
doForAll
andgetAll
were added for all current types of repos:ReadStandardCRUDRepo
ReadStandardKeyValueRepo
ReadOneToManyKeyValueRepo
ReadStandardKeyValueRepo
methodsvalues
andkeys
now have default value forreversed
parameterfalse
- New
Flow
's inWriteOneToManyKeyValueRepo
:onNewValue
onValueRemoved
onDataCleared
- 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"
MapCRUDRepo
class as implementation ofStandardCRUDRepo
on top ofMutableMap
has been addedMapKeyValueRepo
class as implementation ofStandardKeyValueRepo
on top ofMutableMap
has been addedMapOneToManyKeyValueRepo
class as implementation ofOneToManyKeyValueRepo
on top ofMutableMap
has been added
- Package has been created:) you can connect it via
Inited :)