Releases: N7ghtm4r3/Equinox
Releases · N7ghtm4r3/Equinox
v1.0.6
The library now is fully KMP
compliant!
In this version:
- Adapted
showSnackbarMessage
to also supportJsonObject
. - Added a tutorial for the
AppContextInitializer
provider. - Made the
isInputValid
method inInputsValidator
protected instead of private (as per [221]). - Fixed the issue in
EquinoxItemsHelper
at line 313 where it wasn't checking if the value was equal to the last column. - Integrated the language state into
EquinoxViewModel
. - Used the
viewModelScope
instance to handle requests in the prebuiltViewModel
. - Removed the
@RequiresSuperCall
annotation on line 203 ofEquinoxItemsHelper
(it was unnecessary). - Fixed the
invokeRoutine
function inLoadingItemUI
. - Moved
EquinoxRequester
to the compose module. - In
EquinoxItemsHelper
, provided the index set to 1 (fixed the doc comment as well) in theprepareQuery
of theBatchQuery
interface. - Fixed the
auth
method (added brackets) inAuthEquinoxViewModel
. - Added all the base parameters of the original
OutlinedText
andTextField
fields ininputsUi
. - Moved the
Requester
to the core module (network package). - Integrated the
copyToClipboard
function. - Fixed
EquinoxItemsHelper.mergeAlternativelyInColumnsValues
(line 273) by checking if the list is empty before execution. - Annotated the non-mappable data in the
PaginateResponse
utility class as@Transient
. - Added
filterValues
method toBatchQuery
interface inEquinoxItemsHelper
to allow filtering (not mandatory, return all values if not overridden). - Migrated the
Equinox-Compose
library to an internal module namedequinox-compose
. - Implemented a
TimeFormatter
similar to the one inAPIManager
with an analogous@Returner
annotation. - Fixed
colorOneSideBorder
modifier to adjust the top and bottom border color (not just half of the item). - Modified
showSnackbarMessage
to also acceptStringResource
. - Allowed bypassing the
serverProtector
usage. - Fixed
URL_REGEX
inInputsValidator
to validateip:port
values. - Migrated
sendRequest
to useJson
fromkotlinx
. - Integrated
KMPrefs
inEquinoxLocalUser
. - Integrated the theme state into
EquinoxViewModel
. - Allowed custom
onFailure
lambda inEquinoxProfileViewModel
. - Changed model package to
entity
package in the backend. - Moved
EquinoxBaseEndpointsSet
to the core module (network package). - If
batchDelete
inEquinoxItemsHelper
has only one field for deletion, provided a method that accepts just a list of values instead of a list of list values. - Renamed
FetcherManager
toRetrieveManager
and replaced "fetch" text accordingly. - Set
getContrastingColor
ofChameleonText
as public. - Made
emailValidator
andurlValidator
instances protected instead of private inInputsValidator
. - Modified
noInternetConnectionRetryText
inManagedContent
to acceptStringResource
. - Added a non-mandatory method
onSync()
inSyncBatchContainer
ofEquinoxItemsHelper
to invoke after synchronization. - Fixed the issue with
Field 'isLastPage'
requiring a serial name by properly using@SerialName
. - Made
EquinoxLocalUser
automatically invoke theinitLocalUser
method. - Integrated the
EquinoxWindowKit
. - Marked the
launchApp
inAuthEquinoxViewModel
as@RequiresSuperCall
. - Removed the unnecessary
T
generic type fromEquinoxItemsHelper
. - Completed the KMP migration by adding the iOS and wasmjs targets.
- Integrated the profile picture state into
EquinoxViewModel
.
What's Changed
- Update 1.0.6 by @N7ghtm4r3 in #6
Full Changelog: 1.0.5...1.0.6
v1.0.5
In this version
Modularization
- The library was split into two modules:
- Backend Module: Contained all utilities specific to backend operations.
- Core Module: A Kotlin Multiplatform (KMP) compliant module designed for use in both backend and frontend environments.
Breaking Release
- This release is a breaking release as it marked the beginning of the migration towards full KMP compliance.
- Migration required adjustments in existing implementations to align with the new architecture.
Changelogs
1. Added Request Interceptor
- Added the possibility to integrate an interceptor in the
Requester
.- The interceptor executed a specific action when a request was executed.
2. Added Query Parameters in Request Methods
- Enhanced the
exec
request methods and their related wrappers in theRequester
class to:- Support query parameters (derived from
Params
inAPIRequest
).
- Support query parameters (derived from
3. Integrated createPaginationQuery
- Integrated the
createPaginationQuery
method into theRequester
to handle pagination queries effectively.
4. Integrated PaginatedResponse
- Incorporated the
PaginatedResponse
class into theenvironment
package for unified paginated data handling.
5. Added Custom Constructor to EquinoxItem
- Created a constructor in
EquinoxItem
that allowed the use of a customIDENTIFIER_KEY
.- This supported cases where the column name was overridden.
6. Checked User Existence in EquinoxUsersHelper
- Added a method to
EquinoxUsersHelper
to:- Check if a user existed by their ID.
7. Added sendPaginatedRequest
Method in Requester
- Added a
sendPaginatedRequest
method in theRequester
that:- Worked similarly to
sendRequest
. - Automatically returned a
PaginatedResponse
.
- Worked similarly to
8. Added RequiresSuperCall
Annotation
- Introduced a
RequiresSuperCall
annotation (similar toCallSuper
of Android) to:- Warn about the necessity of invoking
super
in theEquinoxLocalUser
class.
- Warn about the necessity of invoking
9. Added @DTO
Annotation
- Created a
@DTO
annotation to:- Mark classes as Data Transfer Objects (DTOs).
- Add a dedicated interface for the
convertToRelatedDTO
method.
10. Made request
a Receiver of sendRequest
- Refactored the
sendRequest
method to:- Treat
request
as its receiver.
- Treat
11. Extended successResponse
in EquinoxController
- Extended the
successResponse
method of theEquinoxController
to:- Accept custom success messages.
- Create a dedicated method for handling custom messages.
12. Refactored Packages
- Refactored the package structure of:
Controller
Repository
Service
.
13. Added FilteredQuery
- Integrated a
FilteredQuery
to:- Facilitate the creation of filtering queries.
What's Changed
- Enhancement 1.0.4 by @N7ghtm4r3 in #4
- Enhancement 1.0.5 by @N7ghtm4r3 in #5
Full Changelog: 1.0.4...1.0.5
v. 1.0.3
In this version
- connectionErrorMessage in the Requester is used as key of Mantis, line 475
- EquinoxUsersHelper signInUser method returns type T and not directly the EquinoxUser
- insertNewUser method of LocalUser has been adapted to accept custom parameters like in the signIn and signUp methods of EquinoxRequester
- Optimized signUp and signIn system of EquinoxUsersController and all related helpers and repository to accept custom parameters
- Integrated the assembleCustomEndpointPath method in the EquinoxRequester
- Created a getter for the activeContext of FetcherManager
- Fixed some access modifiers from private to protected
- The resourcesProvider is now accessible outside the EquinoxController
What's Changed
- Enhancement 1.0.3 by @N7ghtm4r3 in #3
Full Changelog: 1.0.2...1.0.3
v. 1.0.2
In this version:
- The usage of the EquinoxUser and all classes related to it are now type generics to avoid the manual casting by the inerithing classes for a customization of it
- Allowed to avoid the creation of the auto-configs file by a built-in mechanism
- Now if the architecture does not use UsersRepository the auto-wiring is skipped
- Implemented a default payload value as argument in the Requesters
- Built-in method to set the request timeout programmatilly in the Requesters
- Created a default connection error message to use by the Requesters
- Fixed other smaller issues
What's Changed
- Enhancement 1.0.2 by @N7ghtm4r3 in #2
Full Changelog: 1.0.1...1.0.2
v. 1.0.1
In this version:
- Some paramaters of the Requester now are protected
- Developed a built-in method to get the user language
- Created a CORS service generator like ResourcesConfig and created a dedicated api to group the generators
toghether - When the FetcherManager is restared will be automatically launched the last executed routine before it suspension
- Implemented the ResourcesManager api
- Fixed some issues and added some utilities method to the Requester class, implemented also a
debugMode
to test it - Implemented a base InputValidator
- Created a base enviroment to create a custom backend based on Equinox system
What's Changed
- Enchantment 1.0.1 by @N7ghtm4r3 in #1
New Contributors
- @N7ghtm4r3 made their first contribution in #1
Full Changelog: 1.0.0...1.0.1