Releases: meilisearch/meilisearch-swift
0.17.0 🕊
0.16.0 🕊
⚠️ Breaking changes
🚀 Enhancements
- Add support for
attributesToSearchOnin 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 theSearchResultcontains the implementation handler of a request with estimated pagination (limit/offset), andFiniteSearchResultcontains 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
trykeyword 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#getKeysnow returns aKeysResults. (#319, #321, #313) @brunoocasaliMeiliSearch#getIndexesnow returns aIndexesResults(#319, #321, #314) @brunoocasaliMeiliSearch#createDumpnow responds with aResult<TaskInfo, Swift.Error>object. (#319, #321, #311) @brunoocasaliMeiliSearch#getDumpStatuswas removed. Use theMeiliSearch#getTasksorMeiliSearch#getTaskinstead. (#311) @brunoocasali- Add
TaskInfotype to handle enqueued tasks. (#310) @brunoocasali Dumptype was removed (#311) @brunoocasali.SearchParameterschanges (#317) @brunoocasali- Renamed
facetsDistributionfield tofacets. - Renamed
matchesfield toshowMatchesPosition.
- Renamed
SearchResult<T>changes (#317) @brunoocasali- Renamed
nbHitsfield toestimatedTotalHits. - Removed
exhaustiveFacetsCountfield. - Removed
exhaustiveNbHitsfield.
- Renamed
Index#getDocuments<T>now returns an objectDocumentsResults<T>(#319, #321, #312) @brunoocasaliMeiliSearch#getTasksandIndex#getTasksnow returns an objectTasksResults(#319, #321, #310, #315) @brunoocasaliaddDocuments<T>,createDump,updateSettingsand other methods that "creates" a new task, now responds with aResult<TaskInfo, Swift.Error>and therefore they have ataskUidinstead ofuid(#310) @brunoocasaliMeiliSearch#updateKeymethod to update keys now receive a new objectKeyUpdateParams(#313, #319) @brunoocasali
🚀 Enhancements
MeiliSearch#getIndexesnow accepts an object with paginationIndexesQuery. (#314) @brunoocasaliMeiliSearch#getDocuments<T>now accepts an object with paginationDocumentsQuery. (#312) @brunoocasaliMeiliSearch#getDocument<T>now accepts a param calledfieldswhich takes an array of strings to remap the response. (#312) @brunoocasali
⚠️ Be careful with this option sinceTshould be able to handle the missing fields.MeiliSearch#createKeyandMeiliSearch#deleteKeyaccepts bothapi keyorapi key uid. (#319, #313) @brunoocasaliMeiliSearch#createKeycan 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
getnow return a Task :updateIndexcreateIndexdeleteIndex
waitForPendingUpdateis removed andwaitForTaskis introduced as replacementgetStatusUpdateandgetAllStatusUpdatesare removed.getTaskandgetTasksandwaitForTaskare introduced onIndexesandClientinstances.- All routes returning an
Updatereturn now aTask
-
Update keys api (#252) @bidoubiwa
- New
Keystructure client.getkeysnow returns aResults<Key>object see specificationclient.getKeyreturns aKeyobject of a specific keyclient.createKeyreturns aKeyobject created with aKeyParamsobjectclient.updateKeyreturns aKeyobject with the updated keyclient.deleteKeyreturns void as the chosen key has been deleted
- New
-
Remove GetOrCreateIndex and DeleteIfExistsIndex (#256) @bidoubiwa
getOrCreateIndexno longer exists.deleteIfExistsIndexno 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->codeerrorLink->linkerrorType->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 ! 🎉