mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2024-11-16 13:23:49 +00:00
24 KiB
24 KiB
Changelog
0.7.1
FSM
:Common
- New manager
DefaultStatesManager
withDefaultStatesManagerRepo
for abstraction of manager and storing of data info
- New manager
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 :)