Releases: meilisearch/meilisearch-swift
0.16.0 🕊
⚠️ Breaking changes
🚀 Enhancements
- Add support for
attributesToSearchOn
in search API (#414) @Sherlouk - Add support for facetStats in search response (#415) @Sherlouk
- Add typo-tolerance APIs (#411) @Sherlouk
- Add async overload for search API (#410) @Sherlouk
- Generate Async Overloads for All Public Functions (#427) @Sherlouk
- Allow Custom Headers (#431) @Sherlouk
- Add Sync Indexes API (#430) @Sherlouk
⚙️ Maintenance/misc
Thanks again to @Sherlouk, @berwyn, @brunoocasali, @curquiza, @dependabot, @dependabot[bot], @meili-bors[bot] ! 🎉
0.15.0 🕊
This version makes this package compatible with Meilisearch v1.0.0 🎉
Check out the changelog of Meilisearch v1.0.0 for more information on the changes.
⚠️ Breaking changes
search<T>
returns aSearchable<T>
insteadSearchResult<T>
directly. Now theSearchResult
contains the implementation handler of a request with estimated pagination (limit/offset), andFiniteSearchResult
contains the implementation for finite paginationpage
/hitsPerPage
. (#369) @brunoocasali- This is the list of the accepted parameters for
getTasks
(TasksQuery
) (#365) @brunoocasali:
limit: Int?
from: Int?
next: Int?
statuses: [String]?
types: [String]?
indexUids: [String]?
uids: [Int]?
canceledBy: [Int]?
beforeEnqueuedAt: Date?
afterEnqueuedAt: Date?
afterFinishedAt: Date?
beforeStartedAt: Date?
afterStartedAt: Date?
beforeFinishedAt: Date?
🚀 Enhancements
- Fix batch delete for string document ids. (#330) (#331) @aronbudinszky
- Renamed all the occurrence of MEILISEARCH_HOST to MEILISEARCH_URL (#340) @zt4ff
- Replace variable name from
'query'
to'path'
where the query was defined as a full path (#259) (#349) @Dishant10 - Add finite pagination support (#369) @brunoocasali
- Fix typo in README.md (#351) @Dishant10
🐛 Bug Fixes
Thanks again to @Dishant10, @aronbudinszky, @bidoubiwa, @brunoocasali, @curquiza, @mannuch, @meili-bors[bot], and @zt4ff! 🎉
0.14.1 🕊
🎉 This release adds support to Linux environments. Let us know if there is something not working ;)
🚀 Enhancements
- Improve Docker configuration in the package (#304) @brunoocasali
- Add Linux support (#245) (#292) @bidoubiwa co-authored by @brunoocasali
💅 Misc
- Added the
try
keyword in front ofMeiliSearch()
constructor in the code samples (#325) @mgregoire254
Thanks again to @aronbudinszky, @bidoubiwa, @brunoocasali, and @mgregoire254! 🎉
0.14.0 🕊
This version makes this package compatible with Meilisearch v0.28.0 🎉
Check out the changelog of Meilisearch v0.28.0 for more information on the changes.
💥 Breaking Changes
MeiliSearch#getKeys
now returns aKeysResults
. (#319, #321, #313) @brunoocasaliMeiliSearch#getIndexes
now returns aIndexesResults
(#319, #321, #314) @brunoocasaliMeiliSearch#createDump
now responds with aResult<TaskInfo, Swift.Error>
object. (#319, #321, #311) @brunoocasaliMeiliSearch#getDumpStatus
was removed. Use theMeiliSearch#getTasks
orMeiliSearch#getTask
instead. (#311) @brunoocasali- Add
TaskInfo
type to handle enqueued tasks. (#310) @brunoocasali Dump
type was removed (#311) @brunoocasali.SearchParameters
changes (#317) @brunoocasali- Renamed
facetsDistribution
field tofacets
. - Renamed
matches
field toshowMatchesPosition
.
- Renamed
SearchResult<T>
changes (#317) @brunoocasali- Renamed
nbHits
field toestimatedTotalHits
. - Removed
exhaustiveFacetsCount
field. - Removed
exhaustiveNbHits
field.
- Renamed
Index#getDocuments<T>
now returns an objectDocumentsResults<T>
(#319, #321, #312) @brunoocasaliMeiliSearch#getTasks
andIndex#getTasks
now returns an objectTasksResults
(#319, #321, #310, #315) @brunoocasaliaddDocuments<T>
,createDump
,updateSettings
and other methods that "creates" a new task, now responds with aResult<TaskInfo, Swift.Error>
and therefore they have ataskUid
instead ofuid
(#310) @brunoocasaliMeiliSearch#updateKey
method to update keys now receive a new objectKeyUpdateParams
(#313, #319) @brunoocasali
🚀 Enhancements
MeiliSearch#getIndexes
now accepts an object with paginationIndexesQuery
. (#314) @brunoocasaliMeiliSearch#getDocuments<T>
now accepts an object with paginationDocumentsQuery
. (#312) @brunoocasaliMeiliSearch#getDocument<T>
now accepts a param calledfields
which takes an array of strings to remap the response. (#312) @brunoocasali
⚠️ Be careful with this option sinceT
should be able to handle the missing fields.MeiliSearch#createKey
andMeiliSearch#deleteKey
accepts bothapi key
orapi key uid
. (#319, #313) @brunoocasaliMeiliSearch#createKey
can optionally specify auid:
to generate deterministic API keys. (#319, #313) @brunoocasali- Refactor the request function to use a simple request builder (#283) @ppamorim
- Add a new step into the linter action to validate Podspec (#298) @brunoocasali
- Remove all the types from the code samples to make them simpler (#306) @brunoocasali
- Replace all print(error) with dump(error) in the tests (#301) @nicolasvienot
Thanks again to @bidoubiwa, @brunoocasali, @meili-bors[bot], @nicolasvienot and @ppamorim! 🎉
0.13.2 🕊
This version makes this package compatible with Meilisearch v0.27.0 🎉
Check out the changelog of Meilisearch v0.27.0 for more information on the changes.
🚀 Enhancements
- Add new search parameters highlightPreTag, highlightPostTag and cropMarker (#288) @bidoubiwa
- Ensure nested fields support (#287)
@bidoubiwa
Thanks again to @bidoubiwa 🎉
0.13.1 🕊
This version makes this package compatible with Meilisearch v0.26.0 🎉
Check out the changelog of Meilisearch v0.26.0 for more information on the changes.
🚀 Enhancements
- DRY up the shared models between tests (#274) @brunoocasali
- Feature/Add Qualified version (#276) @brunoocasali
- Fix releaser script (#295) @brunoocasali
- Add User-Agent header to have analytics in every HTTP request (#277) @brunoocasali
Analytics is enabled by default in the server, but you can disable them by following this guide
Also, of course, every analytics data we collect are ANONYMOUS read the guide for more information.
Thanks again to @bidoubiwa, @brunoocasali! 🎉
0.13.0 🕊
This package version is compatible with MeiliSearch v0.25.0 🎉
⚠️ Breaking changes
-
Update api to task api (#248) @bidoubiwa
- Task structure introduced
- all actions on Indexes except
get
now return a Task :updateIndex
createIndex
deleteIndex
waitForPendingUpdate
is removed andwaitForTask
is introduced as replacementgetStatusUpdate
andgetAllStatusUpdates
are removed.getTask
andgetTasks
andwaitForTask
are introduced onIndexes
andClient
instances.- All routes returning an
Update
return now aTask
-
Update keys api (#252) @bidoubiwa
- New
Key
structure client.getkeys
now returns aResults<Key>
object see specificationclient.getKey
returns aKey
object of a specific keyclient.createKey
returns aKey
object created with aKeyParams
objectclient.updateKey
returns aKey
object with the updated keyclient.deleteKey
returns void as the chosen key has been deleted
- New
-
Remove GetOrCreateIndex and DeleteIfExistsIndex (#256) @bidoubiwa
getOrCreateIndex
no longer exists.deleteIfExistsIndex
no longer exists. Because deleting an index is now an asynchronous task it will either delete the index or the task will fail. But it will not block any other action.
Thanks again to @alallema, @aronbudinszky, @bidoubiwa, @brunoocasali, @curquiza, @dichotommy, @fatihyildizhan ! 🎉
0.12.0 🕊
This package version is compatible with MeiliSearch v0.24.0 🎉
⚠️ Breaking changes
- Changes related to the next MeiliSearch release (v0.24.0) (#224)
Errors API changes
MeiliSearchApiError
interface receives an update in the fields naming. Error fields are replaced by the following:
errorCode
->code
errorLink
->link
errorType
->type
struct MSErrorResponse: Decodable, Encodable, Equatable {
public let message: String
public let code: String
public let type: String
public let link: String?
}
When an update fails, previously the error fields in the update body were also namederrorCode
, errorLink
, ...
Now error fields are moved inside the error
with the same MSErrorResponse
type.
/// Result type for the Update.
public struct Result: Codable, Equatable {
/// ...
/// Error information in case of failed update.
public let error: MeiliSearch.MSErrorResponse?
}
Thanks everyone!
0.11.1 🕊
🚀 Enhancements
- Add a new function deleteIfExists (#232) @brunoocasali
Thanks again to @Ethenyl, @Hard-Coder05, @IgorChernyshov, @bidoubiwa, @brunoocasali, @curquiza, @edinapap ! 🎉