Skip to content

Releases: N7ghtm4r3/Equinox

v1.0.6

10 Jan 11:04
3f4f685
Compare
Choose a tag to compare

The library now is fully KMP compliant!

In this version:

  • Adapted showSnackbarMessage to also support JsonObject.
  • Added a tutorial for the AppContextInitializer provider.
  • Made the isInputValid method in InputsValidator 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 prebuilt ViewModel.
  • Removed the @RequiresSuperCall annotation on line 203 of EquinoxItemsHelper (it was unnecessary).
  • Fixed the invokeRoutine function in LoadingItemUI.
  • Moved EquinoxRequester to the compose module.
  • In EquinoxItemsHelper, provided the index set to 1 (fixed the doc comment as well) in the prepareQuery of the BatchQuery interface.
  • Fixed the auth method (added brackets) in AuthEquinoxViewModel.
  • Added all the base parameters of the original OutlinedText and TextField fields in inputsUi.
  • 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 to BatchQuery interface in EquinoxItemsHelper to allow filtering (not mandatory, return all values if not overridden).
  • Migrated the Equinox-Compose library to an internal module named equinox-compose.
  • Implemented a TimeFormatter similar to the one in APIManager 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 accept StringResource.
  • Allowed bypassing the serverProtector usage.
  • Fixed URL_REGEX in InputsValidator to validate ip:port values.
  • Migrated sendRequest to use Json from kotlinx.
  • Integrated KMPrefs in EquinoxLocalUser.
  • Integrated the theme state into EquinoxViewModel.
  • Allowed custom onFailure lambda in EquinoxProfileViewModel.
  • Changed model package to entity package in the backend.
  • Moved EquinoxBaseEndpointsSet to the core module (network package).
  • If batchDelete in EquinoxItemsHelper 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 to RetrieveManager and replaced "fetch" text accordingly.
  • Set getContrastingColor of ChameleonText as public.
  • Made emailValidator and urlValidator instances protected instead of private in InputsValidator.
  • Modified noInternetConnectionRetryText in ManagedContent to accept StringResource.
  • Added a non-mandatory method onSync() in SyncBatchContainer of EquinoxItemsHelper to invoke after synchronization.
  • Fixed the issue with Field 'isLastPage' requiring a serial name by properly using @SerialName.
  • Made EquinoxLocalUser automatically invoke the initLocalUser method.
  • Integrated the EquinoxWindowKit.
  • Marked the launchApp in AuthEquinoxViewModel as @RequiresSuperCall.
  • Removed the unnecessary T generic type from EquinoxItemsHelper.
  • Completed the KMP migration by adding the iOS and wasmjs targets.
  • Integrated the profile picture state into EquinoxViewModel.

What's Changed

Full Changelog: 1.0.5...1.0.6

v1.0.5

20 Nov 14:22
22f7cce
Compare
Choose a tag to compare

In this version

Modularization

  • The library was split into two modules:
    1. Backend Module: Contained all utilities specific to backend operations.
    2. 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 the Requester class to:
    • Support query parameters (derived from Params in APIRequest).

3. Integrated createPaginationQuery

  • Integrated the createPaginationQuery method into the Requester to handle pagination queries effectively.

4. Integrated PaginatedResponse

  • Incorporated the PaginatedResponse class into the environment package for unified paginated data handling.

5. Added Custom Constructor to EquinoxItem

  • Created a constructor in EquinoxItem that allowed the use of a custom IDENTIFIER_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 the Requester that:
    • Worked similarly to sendRequest.
    • Automatically returned a PaginatedResponse.

8. Added RequiresSuperCall Annotation

  • Introduced a RequiresSuperCall annotation (similar to CallSuper of Android) to:
    • Warn about the necessity of invoking super in the EquinoxLocalUser class.

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.

11. Extended successResponse in EquinoxController

  • Extended the successResponse method of the EquinoxController 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

Full Changelog: 1.0.4...1.0.5

v. 1.0.3

02 Sep 14:50
dd8154c
Compare
Choose a tag to compare

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

Full Changelog: 1.0.2...1.0.3

v. 1.0.2

18 Jul 13:30
84f2331
Compare
Choose a tag to compare

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

Full Changelog: 1.0.1...1.0.2

v. 1.0.1

01 Jul 20:49
fc39497
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: 1.0.0...1.0.1

v. 1.0.0

02 May 16:27
Compare
Choose a tag to compare

First release of Equinox released!