mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2024-11-27 04:28:46 +00:00
44 KiB
44 KiB
Changelog
0.16.4
Coroutines
:- Create
launchInCurrentThread
- Create
0.16.3
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
0.16.2
Versions
:Compose
:1.2.1
->1.2.2
Startup
:- Module become available on
JS
target
- Module become available on
0.16.1
Coroutines
:- New
runCatchingSafely
/safelyWithResult
with receivers
- New
SafeWrapper
:- Module inited
0.16.0
Versions
:Ktor
:2.1.3
->2.2.1
Android 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
: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
0.14.4
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
0.14.3
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
0.14.2
Versions
:Exposed
:0.40.1
->0.41.1
0.14.1
Versions
:Klock
:3.3.1
->3.4.0
UUID
:0.5.0
->0.6.0
0.14.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
0.13.2
Versions
:Klock
:3.1.0
->3.3.0
Ktor
:2.1.2
->2.1.3
0.13.1
Repos
:Exposed
:AbstractExposedWriteCRUDRepo#createAndInsertId
now 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
: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
0.12.17
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
0.12.16
Coroutines
:Android
:- Add class
FlowOnHierarchyChangeListener
- Add
ViewGroup#setOnHierarchyChangeListenerRecursively(OnHierarchyChangeListener)
- Add class
0.12.15
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
0.12.14
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
0.12.13
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
0.12.12
Common
:Compose
:JS
:- Add
SkeletonAnimation
stylesheet
- Add
0.12.11
Repos
:Cache
:- Override
KeyValue
cache 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.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
0.12.7
Repos
:Cache
:- Force
WriteCRUDCacheRepo
to 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
paginate
extensions
- Fixes in
0.12.4
Versions
:Kotlin
:1.7.0
->1.7.10
Compose
:1.2.0-alpha01-dev755
->1.2.0-alpha01-dev764
0.12.3
Repos
:Exposed
:- Add abstract exposed variants of
KeyValue
andKeyValues
repos - Add new extension
Query#selectPaginated
- Add abstract exposed variants of
0.12.2
Versions
:Serialization
:1.4.0-RC
->1.4.0
Compose
: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)
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
0.11.14
Pagination
:PaginationResult
got new fieldobjectsNumber
which by default is a times betweenpagesNumber
andsize
0.11.13
Versions
:Coroutines
:1.6.3
->1.6.4
Compose
:1.2.0-alpha01-dev629
->1.2.0-alpha01-dev731
0.11.12
Repos
:Common
:JVM
:- Fixes in
ReadFileKeyValueRepo
methods (values
/keys
)
- Fixes in
0.11.11
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
0.11.10
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
0.11.9
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
0.11.8
Repos
:Common
:- Fixes in
FileKeyValueRepo
- Fixes in
0.11.7
Common
:- New abstractions
SimpleMapper
andSimpleSuspendableMapper
- 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#asMutableComposeListState
andStateFlow#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
WebSockets
has been improvedClient
:- New extensions:
HttpClient#openBaseWebSocketFlow
,HttpClient#openWebSocketFlow
,HttpClient#openSecureWebSocketFlow
- New extensions:
- Support of
0.11.2
Ktor
:- Support of
WebSockets
has been improved and added fixes inside of clients
- Support of
0.11.1
Repos
Ktor
- In
configureReadKeyValueRepoRoutes
andconfigureReadKeyValuesRepoRoutes
configurators fixed requiring ofreversed
property
- In
0.11.0
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
0.10.8
Common
- Add
Element.isOverflow*
extension properties
- Add
0.10.7
Pagination
:- Now it is possible to use
doForAll*
andgetForAll
functions in non suspend places
- Now it is possible to use
0.10.6
Versions
Ktor
:2.0.1
->2.0.2
Common
JS
:- Add
ResizeObserver
functionality
- Add
0.10.5
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
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.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
0.9.24
Ktor
:Common
:- New extension fun
MPPFile#input
- New extension fun
0.9.23
Repos
:Exposed
:- New property
ExposedRepo#selectAll
to retrieve all the rows in the table
- New property
0.9.22
Ktor
:Server
:- Now
createKtorServer
fun 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#onActionOutside
andElement#onClickOutside
- New extensions for
0.9.17
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
0.9.16
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
0.9.15
FSM
:- Rename
DefaultUpdatableStatesMachine#compare
toDefaultUpdatableStatesMachine#shouldReplaceJob
DefaultStatesManager
now is extendableDefaultStatesMachine
will stop all jobs of states which was removed fromstatesManager
- Rename
0.9.14
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)
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
: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
0.9.11
Versions
:Klock
:2.6.1
->2.6.2
Coroutines
:Compose
:- Created :)
- New extensions and function:
Composition#linkWithJob
Composition#linkWithContext
renderComposableAndLinkToContext
0.9.10
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:
0.9.9
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 -
0.9.8
Versions
:Exposed
:0.37.2
->0.37.3
Klock
:2.4.13
->2.5.1
AppCompat
:1.4.0
->1.4.1
0.9.7
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
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
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
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:
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:
0.9.0
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
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
:DefaultStatesMachine
now is extendable- New type
UpdatableStatesMachine
with default realizationDefaultUpdatableStatesMachine
0.8.7
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
0.8.6
Common
:Either
extensionsonFirst
andonSecond
now accept notcrossinline
callbacks- All
joinTo
now accept notcrossinline
callbacks
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
:Pagination
now extendsClosedRange<Int>
Pagination
intersection functionality
0.8.2
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
0.8.1
Versions
:Exposed
:0.36.1
->0.36.2
Core KTX
:1.6.0
->1.7.0
0.8.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:
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
):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
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.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
0.7.0
THIS VERSION HAS MIGRATED FROM KOTLINX DATETIME TO KORLIBS KLOCK. CAREFUL
Versions
kotlinx.datetime
->Klock
0.6.0 DO NOT RECOMMENDED
THIS VERSION HAS MIGRATED FROM KORLIBS KLOCK TO KOTLINX DATETIME. CAREFUL ALL DEPRECATION HAVE BEEN REMOVED
Versions
Klock
->kotlinx.datetime
0.5.31
Versions
:Klock
:2.4.2
->2.4.3
Ktor
: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.31
Klock
:2.4.1
->2.4.2
0.5.27
Versions
:Exposed
:0.34.1
->0.34.2
0.5.26
Repos
:InMemory
:MapCRUDRepo
s andMapKeyValueRepo
s gotprotected
methods and properties instead of private
0.5.25
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
0.5.24
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
0.5.23
Versions
:Exposed
:0.33.1
->0.34.1
Common
:- New extensions
Iterable#joinTo
andArray#joinTo
- New extensions
0.5.22
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
0.5.21
Versions
Klock
:2.3.1
->2.3.2
Serialization
Typed Serializer
:TypedSerializer
Descriptor serial name has been fixed
0.5.20
Repos
:Common
Android
:*OrNull
analogs ofCursor.get*(String)
extensions have been added- Extensions
Cursor.getFloat
andCursor.getFloatOrNull
have been added
0.5.19
LanguageCode
:IetfLanguageCode
became as sealed classIetfLanguageCode
now overridetoString
and returns its code
0.5.18
Versions
Kotlin 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
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
0.5.16
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
0.5.15 HOTFIX FOR 0.5.14
Coroutines
- Fixes in
subscribeAsync
- Fixes in
0.5.14 NOT RECOMMENDED
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
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#changeVisibility
has been fixed
- Extension
Android
RecyclerView
- Default adapter got
dataCountFlow
property - 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
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
0.5.9
Repos
Common
OneToManyAndroidRepo
got new primary constructor
0.5.8
Common
:- New extension
Iterable#firstNotNull
- New extension
Coroutines
- New extension
Flow#firstNotNull
- New extensions
CoroutineContext#LinkedSupervisorJob
,CoroutineScope#LinkedSupervisorJob
andCoroutineScope#LinkedSupervisorScope
- New extension
0.5.7
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
0.5.6
Versions
Exposed
:0.31.1
->0.32.1
Coroutines
JVM
launchSynchronously
and subsequent functions got improved mechanism
- New method
safelyWithResult
0.5.5
Versions
Ktor
: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
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
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.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
0.4.36
- All
Android
targets 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
:AbstractExposedCRUDRepo
now implementsStandardCRUDRepo
AbstractMutableAndroidCRUDRepo
now implementsStandardCRUDRepo
0.4.33
Versions
:Ktor
:1.5.2
->1.5.3
Coroutines
- Add
WeakJob
workaround:CoroutineScope#weakLaunch
CoroutineScope#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.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
0.4.30
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
0.4.29
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
0.4.28
Versions
:Kotlin
:1.4.30
->1.4.31
Ktor
:1.5.1
->1.5.2
Coroutines
- Add
createActionsActor
/createSafeActionsActor
anddoWithSuspending
- Add
0.4.27
Repos
Exposed
- 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.30
Klock
: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
Serialization
Base64
- New serializer
Base64BytesToFromStringSerializer
has been added
- New serializer
0.4.22
Versions
:Exposed
:0.28.1
->0.29.1
Klock
:2.0.2
->2.0.4
0.4.21
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
0.4.20
Serialization
Encapsulator
:- Has been created
0.4.19
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
0.4.18
Coroutines
:- New extension
Iterable<Deferred>#awaitFirst
has been added
- New extension
Serialization
Base 64
- New
Base64ByteArraySerializer
has been added
- New
0.4.17
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
0.4.16
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
0.4.15
Coroutines
:safely
:SafelyExceptionHandlerKey
has been deprecatedSafelyExceptionHandler
has been deprecatedContextSafelyExceptionHandlerKey
has been addedContextSafelyExceptionHandler
has been addedsafelyWithContextExceptionHandler
has been added
0.4.14
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
0.4.13
Common
Android
- Add expand/collapse functionality for horizontal expand/collapse
0.4.12
Coroutines
JVM
- Update
launchSynchronously
signature
- Update
Selector
- Project created
0.4.11
Common
- Add
clamp
function
- Add
0.4.10
Versions
:Klock
:2.0.0
->2.0.1
Repo
- Repo
WriteStandardKeyValueRepo
got new methodunsetWithValues
- Repo
0.4.9
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
0.4.8
Versions
:Coroutines
:1.4.1
->1.4.2
UUID
:0.2.2
->0.2.3
Pagination
- Add
PaginatedIterable
andPaginatedIterator
- Add
0.4.7
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
0.4.6
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
0.4.5
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
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
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
0.4.3
Versions
:Kotlin
:1.4.10
->1.4.20
Common
:- Two new extensions for Android:
Resources#getSp
Resources#getDp
- Two new extensions for Android:
0.4.2
Repos
:- Add
WriteOneToManyKeyValueRepo#set
function and extensions
- Add
0.4.1
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
0.4.0
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
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
mapper
for simplier creating ofMapperRepo
objects - Extensions
withMapper
for 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
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
0.3.0
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
0.2.7
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
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
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
0.2.3
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
0.2.2
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
0.2.1
Pagination
Common
:- Extension
Pagination#reverse
has been added - Factory
PaginationByIndexes
- Shortcut
calculatePagesNumber
with reversed parameters - Value
emptyPagination
for emptySimplePagination
cases
- Extension
0.2.0
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
0.1.1
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
0.1.0
Inited :)