Skip to content

Commit 22a8945

Browse files
meili-bors[bot]meili-botbidoubiwa
authored
Merge #1430
1430: Changes related to the next Meilisearch release (v1.0.0) r=bidoubiwa a=meili-bot Related to this issue: meilisearch/integration-guides#230 This PR: - gathers the changes related to the next Meilisearch release (v1.0.0) so that this package is ready when the official release is out. - should pass the tests against the [latest pre-release of Meilisearch](https://github.com/meilisearch/meilisearch/releases). - might eventually contain test failures until the Meilisearch v1.0.0 is out. ⚠️ This PR should NOT be merged until the next release of Meilisearch (v1.0.0) is out. _This PR is auto-generated for the [pre-release week](https://github.com/meilisearch/integration-guides/blob/main/resources/pre-release-week.md) purpose._ Co-authored-by: meili-bot <[email protected]> Co-authored-by: cvermand <[email protected]>
2 parents a36ab09 + 19b68af commit 22a8945

File tree

5 files changed

+272
-36
lines changed

5 files changed

+272
-36
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ controller.abort()
329329

330330
## 🤖 Compatibility with Meilisearch
331331

332-
This package only guarantees the compatibility with the [version v0.30.0 of Meilisearch](https://github.com/meilisearch/meilisearch/releases/tag/v0.30.0).
332+
This package only guarantees the compatibility with the [version v1.0.0 of Meilisearch](https://github.com/meilisearch/meilisearch/releases/tag/v1.0.0).
333333

334334
## 💡 Learn more
335335

src/types/types.ts

Lines changed: 194 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,9 @@ export const enum ErrorStatusCode {
429429
/** @see https://docs.meilisearch.com/errors/#index_creation_failed */
430430
INDEX_CREATION_FAILED = 'index_creation_failed',
431431

432+
/** @see https://docs.meilisearch.com/errors/#missing_index_uid */
433+
MISSING_INDEX_UID = 'missing_index_uid',
434+
432435
/** @see https://docs.meilisearch.com/errors/#index_already_exists */
433436
INDEX_ALREADY_EXISTS = 'index_already_exists',
434437

@@ -441,6 +444,12 @@ export const enum ErrorStatusCode {
441444
/** @see https://docs.meilisearch.com/errors/#index_not_accessible */
442445
INDEX_NOT_ACCESSIBLE = 'index_not_accessible',
443446

447+
/** @see https://docs.meilisearch.com/errors/#invalid_index_offset */
448+
INVALID_INDEX_OFFSET = 'invalid_index_offset',
449+
450+
/** @see https://docs.meilisearch.com/errors/#invalid_index_limit */
451+
INVALID_INDEX_LIMIT = 'invalid_index_limit',
452+
444453
/** @see https://docs.meilisearch.com/errors/#invalid_state */
445454
INVALID_STATE = 'invalid_state',
446455

@@ -450,6 +459,9 @@ export const enum ErrorStatusCode {
450459
/** @see https://docs.meilisearch.com/errors/#index_primary_key_already_exists */
451460
INDEX_PRIMARY_KEY_ALREADY_EXISTS = 'index_primary_key_already_exists',
452461

462+
/** @see https://docs.meilisearch.com/errors/#invalid_index_primary_key */
463+
INVALID_INDEX_PRIMARY_KEY = 'invalid_index_primary_key',
464+
453465
/** @see https://docs.meilisearch.com/errors/#max_fields_limit_exceeded */
454466
DOCUMENTS_FIELDS_LIMIT_REACHED = 'document_fields_limit_reached',
455467

@@ -465,6 +477,15 @@ export const enum ErrorStatusCode {
465477
/** @see https://docs.meilisearch.com/errors/#missing_content_type */
466478
MISSING_CONTENT_TYPE = 'missing_content_type',
467479

480+
/** @see https://docs.meilisearch.com/errors/#invalid_document_fields */
481+
INVALID_DOCUMENT_FIELDS = 'invalid_document_fields',
482+
483+
/** @see https://docs.meilisearch.com/errors/#invalid_document_limit */
484+
INVALID_DOCUMENT_LIMIT = 'invalid_document_limit',
485+
486+
/** @see https://docs.meilisearch.com/errors/#invalid_document_offset */
487+
INVALID_DOCUMENT_OFFSET = 'invalid_document_offset',
488+
468489
/** @see https://docs.meilisearch.com/errors/#payload_too_large */
469490
PAYLOAD_TOO_LARGE = 'payload_too_large',
470491

@@ -486,14 +507,59 @@ export const enum ErrorStatusCode {
486507
/** @see https://docs.meilisearch.com/errors/#invalid_request */
487508
INVALID_REQUEST = 'invalid_request',
488509

489-
/** @see https://docs.meilisearch.com/errors/#invalid_filter */
490-
INVALID_FILTER = 'invalid_filter',
510+
/** @see https://docs.meilisearch.com/errors/#invalid_document_geo_field */
511+
INVALID_DOCUMENT_GEO_FIELD = 'invalid_document_geo_field',
512+
513+
/** @see https://docs.meilisearch.com/errors/#invalid_search_q */
514+
INVALID_SEARCH_Q = 'invalid_search_q',
515+
516+
/** @see https://docs.meilisearch.com/errors/#invalid_search_offset */
517+
INVALID_SEARCH_OFFSET = 'invalid_search_offset',
518+
519+
/** @see https://docs.meilisearch.com/errors/#invalid_search_limit */
520+
INVALID_SEARCH_LIMIT = 'invalid_search_limit',
521+
522+
/** @see https://docs.meilisearch.com/errors/#invalid_search_page */
523+
INVALID_SEARCH_PAGE = 'invalid_search_page',
524+
525+
/** @see https://docs.meilisearch.com/errors/#invalid_search_hits_per_page */
526+
INVALID_SEARCH_HITS_PER_PAGE = 'invalid_search_hits_per_page',
527+
528+
/** @see https://docs.meilisearch.com/errors/#invalid_search_attributes_to_retrieve */
529+
INVALID_SEARCH_ATTRIBUTES_TO_RETRIEVE = 'invalid_search_attributes_to_retrieve',
530+
531+
/** @see https://docs.meilisearch.com/errors/#invalid_search_attributes_to_crop */
532+
INVALID_SEARCH_ATTRIBUTES_TO_CROP = 'invalid_search_attributes_to_crop',
533+
534+
/** @see https://docs.meilisearch.com/errors/#invalid_search_crop_length */
535+
INVALID_SEARCH_CROP_LENGTH = 'invalid_search_crop_length',
491536

492-
/** @see https://docs.meilisearch.com/errors/#invalid_sort */
493-
INVALID_SORT = 'invalid_sort',
537+
/** @see https://docs.meilisearch.com/errors/#invalid_search_attributes_to_highlight */
538+
INVALID_SEARCH_ATTRIBUTES_TO_HIGHLIGHT = 'invalid_search_attributes_to_highlight',
494539

495-
/** @see https://docs.meilisearch.com/errors/#invalid_geo_field */
496-
INVALID_GEO_FIELD = 'invalid_geo_field',
540+
/** @see https://docs.meilisearch.com/errors/#invalid_search_show_matches_position */
541+
INVALID_SEARCH_SHOW_MATCHES_POSITION = 'invalid_search_show_matches_position',
542+
543+
/** @see https://docs.meilisearch.com/errors/#invalid_search_filter */
544+
INVALID_SEARCH_FILTER = 'invalid_search_filter',
545+
546+
/** @see https://docs.meilisearch.com/errors/#invalid_search_sort */
547+
INVALID_SEARCH_SORT = 'invalid_search_sort',
548+
549+
/** @see https://docs.meilisearch.com/errors/#invalid_search_facets */
550+
INVALID_SEARCH_FACETS = 'invalid_search_facets',
551+
552+
/** @see https://docs.meilisearch.com/errors/#invalid_search_highlight_pre_tag */
553+
INVALID_SEARCH_HIGHLIGHT_PRE_TAG = 'invalid_search_highlight_pre_tag',
554+
555+
/** @see https://docs.meilisearch.com/errors/#invalid_search_highlight_post_tag */
556+
INVALID_SEARCH_HIGHLIGHT_POST_TAG = 'invalid_search_highlight_post_tag',
557+
558+
/** @see https://docs.meilisearch.com/errors/#invalid_search_crop_marker */
559+
INVALID_SEARCH_CROP_MARKER = 'invalid_search_crop_marker',
560+
561+
/** @see https://docs.meilisearch.com/errors/#invalid_search_matching_strategy */
562+
INVALID_SEARCH_MATCHING_STRATEGY = 'invalid_search_matching_strategy',
497563

498564
/** @see https://docs.meilisearch.com/errors/#bad_request */
499565
BAD_REQUEST = 'bad_request',
@@ -522,8 +588,23 @@ export const enum ErrorStatusCode {
522588
/** @see https://docs.meilisearch.com/errors/#api_key_not_found */
523589
API_KEY_NOT_FOUND = 'api_key_not_found',
524590

525-
/** @see https://docs.meilisearch.com/errors/#missing_parameter */
526-
MISSING_PARAMETER = 'missing_parameter',
591+
/** @see https://docs.meilisearch.com/errors/#immutable_api_key_uid */
592+
IMMUTABLE_API_KEY_UID = 'immutable_api_key_uid',
593+
594+
/** @see https://docs.meilisearch.com/errors/#immutable_api_key_actions */
595+
IMMUTABLE_API_KEY_ACTIONS = 'immutable_api_key_actions',
596+
597+
/** @see https://docs.meilisearch.com/errors/#immutable_api_key_indexes */
598+
IMMUTABLE_API_KEY_INDEXES = 'immutable_api_key_indexes',
599+
600+
/** @see https://docs.meilisearch.com/errors/#immutable_api_key_expires_at */
601+
IMMUTABLE_API_KEY_EXPIRES_AT = 'immutable_api_key_expires_at',
602+
603+
/** @see https://docs.meilisearch.com/errors/#immutable_api_key_created_at */
604+
IMMUTABLE_API_KEY_CREATED_AT = 'immutable_api_key_created_at',
605+
606+
/** @see https://docs.meilisearch.com/errors/#immutable_api_key_updated_at */
607+
IMMUTABLE_API_KEY_UPDATED_AT = 'immutable_api_key_updated_at',
527608

528609
/** @see https://docs.meilisearch.com/errors/#missing_authorization_header */
529610
MISSING_AUTHORIZATION_HEADER = 'missing_authorization_header',
@@ -543,29 +624,122 @@ export const enum ErrorStatusCode {
543624
/** @see https://docs.meilisearch.com/errors/#dump_not_found */
544625
DUMP_NOT_FOUND = 'dump_not_found',
545626

546-
/** @see https://docs.meilisearch.com/errors/#duplicate_index_found */
547-
DUPLICATE_INDEX_FOUND = 'duplicate_index_found',
627+
/** @see https://docs.meilisearch.com/errors/#invalid_swap_duplicate_index_found */
628+
INVALID_SWAP_DUPLICATE_INDEX_FOUND = 'invalid_swap_duplicate_index_found',
629+
630+
/** @see https://docs.meilisearch.com/errors/#invalid_swap_indexes */
631+
INVALID_SWAP_INDEXES = 'invalid_swap_indexes',
632+
633+
/** @see https://docs.meilisearch.com/errors/#missing_swap_indexes */
634+
MISSING_SWAP_INDEXES = 'missing_swap_indexes',
548635

549636
/** @see https://docs.meilisearch.com/errors/#missing_master_key */
550637
MISSING_MASTER_KEY = 'missing_master_key',
551638

552-
/** @see http://docs.meilisearch.com/errors/#invalid_task_types_filter */
553-
INVALID_TASK_TYPES_FILTER = 'invalid_task_types_filter',
639+
/** @see http://docs.meilisearch.com/errors/#invalid_task_types */
640+
INVALID_TASK_TYPES = 'invalid_task_types',
554641

555-
/** @see http://docs.meilisearch.com/errors/#invalid_task_statuses_filter */
556-
INVALID_TASK_STATUSES_FILTER = 'invalid_task_statuses_filter',
642+
/** @see http://docs.meilisearch.com/errors/#invalid_task_uids */
643+
INVALID_TASK_UIDS = 'invalid_task_uids',
557644

558-
/** @see http://docs.meilisearch.com/errors/#invalid_task_canceled_by_filter */
559-
INVALID_TASK_CANCELED_BY_FILTER = 'invalid_task_canceled_by_filter',
645+
/** @see http://docs.meilisearch.com/errors/#invalid_task_statuses */
646+
INVALID_TASK_STATUSES = 'invalid_task_statuses',
560647

561-
/** @see http://docs.meilisearch.com/errors/#invalid_task_uids_filter */
562-
INVALID_TASK_UIDS_FILTER = 'invalid_task_uids_filter',
648+
/** @see http://docs.meilisearch.com/errors/#invalid_task_limit */
649+
INVALID_TASK_LIMIT = 'invalid_task_limit',
563650

564-
/** @see http://docs.meilisearch.com/errors/#invalid_task_date_filter */
565-
INVALID_TASK_DATE_FILTER = 'invalid_task_date_filter',
651+
/** @see http://docs.meilisearch.com/errors/#invalid_task_from */
652+
INVALID_TASK_FROM = 'invalid_task_from',
653+
654+
/** @see http://docs.meilisearch.com/errors/#invalid_task_canceled_by */
655+
INVALID_TASK_CANCELED_BY = 'invalid_task_canceled_by',
566656

567657
/** @see http://docs.meilisearch.com/errors/#missing_task_filters */
568658
MISSING_TASK_FILTERS = 'missing_task_filters',
659+
660+
/** @see http://docs.meilisearch.com/errors/#too_many_open_files */
661+
TOO_MANY_OPEN_FILES = 'too_many_open_files',
662+
663+
/** @see http://docs.meilisearch.com/errors/#io_error */
664+
IO_ERROR = 'io_error',
665+
666+
/** @see http://docs.meilisearch.com/errors/#invalid_task_index_uids */
667+
INVALID_TASK_INDEX_UIDS = 'invalid_task_index_uids',
668+
669+
/** @see http://docs.meilisearch.com/errors/#immutable_index_uid */
670+
IMMUTABLE_INDEX_UID = 'immutable_index_uid',
671+
672+
/** @see http://docs.meilisearch.com/errors/#immutable_index_created_at */
673+
IMMUTABLE_INDEX_CREATED_AT = 'immutable_index_created_at',
674+
675+
/** @see http://docs.meilisearch.com/errors/#immutable_index_updated_at */
676+
IMMUTABLE_INDEX_UPDATED_AT = 'immutable_index_updated_at',
677+
678+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_displayed_attributes */
679+
INVALID_SETTINGS_DISPLAYED_ATTRIBUTES = 'invalid_settings_displayed_attributes',
680+
681+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_searchable_attributes */
682+
INVALID_SETTINGS_SEARCHABLE_ATTRIBUTES = 'invalid_settings_searchable_attributes',
683+
684+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_filterable_attributes */
685+
INVALID_SETTINGS_FILTERABLE_ATTRIBUTES = 'invalid_settings_filterable_attributes',
686+
687+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_sortable_attributes */
688+
INVALID_SETTINGS_SORTABLE_ATTRIBUTES = 'invalid_settings_sortable_attributes',
689+
690+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_ranking_rules */
691+
INVALID_SETTINGS_RANKING_RULES = 'invalid_settings_ranking_rules',
692+
693+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_stop_words */
694+
INVALID_SETTINGS_STOP_WORDS = 'invalid_settings_stop_words',
695+
696+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_synonyms */
697+
INVALID_SETTINGS_SYNONYMS = 'invalid_settings_synonyms',
698+
699+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_distinct_attribute */
700+
INVALID_SETTINGS_DISTINCT_ATTRIBUTE = 'invalid_settings_distinct_attribute',
701+
702+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_typo_tolerance */
703+
INVALID_SETTINGS_TYPO_TOLERANCE = 'invalid_settings_typo_tolerance',
704+
705+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_faceting */
706+
INVALID_SETTINGS_FACETING = 'invalid_settings_faceting',
707+
708+
/** @see http://docs.meilisearch.com/errors/#invalid_settings_pagination */
709+
INVALID_SETTINGS_PAGINATION = 'invalid_settings_pagination',
710+
711+
/** @see http://docs.meilisearch.com/errors/#invalid_task_before_enqueued_at */
712+
INVALID_TASK_BEFORE_ENQUEUED_AT = 'invalid_task_before_enqueued_at',
713+
714+
/** @see http://docs.meilisearch.com/errors/#invalid_task_after_enqueued_at */
715+
INVALID_TASK_AFTER_ENQUEUED_AT = 'invalid_task_after_enqueued_at',
716+
717+
/** @see http://docs.meilisearch.com/errors/#invalid_task_before_started_at */
718+
INVALID_TASK_BEFORE_STARTED_AT = 'invalid_task_before_started_at',
719+
720+
/** @see http://docs.meilisearch.com/errors/#invalid_task_after_started_at */
721+
INVALID_TASK_AFTER_STARTED_AT = 'invalid_task_after_started_at',
722+
723+
/** @see http://docs.meilisearch.com/errors/#invalid_task_before_finished_at */
724+
INVALID_TASK_BEFORE_FINISHED_AT = 'invalid_task_before_finished_at',
725+
726+
/** @see http://docs.meilisearch.com/errors/#invalid_task_after_finished_at */
727+
INVALID_TASK_AFTER_FINISHED_AT = 'invalid_task_after_finished_at',
728+
729+
/** @see http://docs.meilisearch.com/errors/#missing_api_key_actions */
730+
MISSING_API_KEY_ACTIONS = 'missing_api_key_actions',
731+
732+
/** @see http://docs.meilisearch.com/errors/#missing_api_key_indexes */
733+
MISSING_API_KEY_INDEXES = 'missing_api_key_indexes',
734+
735+
/** @see http://docs.meilisearch.com/errors/#missing_api_key_expires_at */
736+
MISSING_API_KEY_EXPIRES_AT = 'missing_api_key_expires_at',
737+
738+
/** @see http://docs.meilisearch.com/errors/#invalid_api_key_limit */
739+
INVALID_API_KEY_LIMIT = 'invalid_api_key_limit',
740+
741+
/** @see http://docs.meilisearch.com/errors/#invalid_api_key_offset */
742+
INVALID_API_KEY_OFFSET = 'invalid_api_key_offset',
569743
}
570744

571745
export type TokenIndexRules = {

tests/client.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ describe.each([{ permission: 'Master' }, { permission: 'Admin' }])(
436436

437437
await expect(client.swapIndexes(swaps)).rejects.toHaveProperty(
438438
'code',
439-
ErrorStatusCode.DUPLICATE_INDEX_FOUND
439+
ErrorStatusCode.INVALID_SWAP_DUPLICATE_INDEX_FOUND
440440
)
441441
})
442442
})

tests/documents.test.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,74 @@ describe('Documents tests', () => {
319319
expect(documents.results.length).toEqual(dataset.length + 1)
320320
})
321321

322+
test(`${permission} key: Add document and infer correct "_id" primary key`, async () => {
323+
const client = await getClient(permission)
324+
325+
const doc = {
326+
title: 'hello',
327+
_id: 1,
328+
}
329+
const { taskUid: addDocTask } = await client
330+
.index(indexNoPk.uid)
331+
.addDocuments([doc])
332+
await client.index(indexNoPk.uid).waitForTask(addDocTask)
333+
334+
const index = await client.index(indexNoPk.uid).fetchInfo()
335+
336+
expect(index).toHaveProperty('primaryKey', '_id')
337+
})
338+
339+
test(`${permission} key: Add document and infer correct "findmeid" primary key`, async () => {
340+
const client = await getClient(permission)
341+
const doc = {
342+
title: 'hello',
343+
findmeid: 1,
344+
}
345+
const { taskUid: addDocTask } = await client
346+
.index(indexNoPk.uid)
347+
.addDocuments([doc])
348+
await client.index(indexNoPk.uid).waitForTask(addDocTask)
349+
350+
const index = await client.index(indexNoPk.uid).fetchInfo()
351+
352+
expect(index).toHaveProperty('primaryKey', 'findmeid')
353+
})
354+
355+
test(`${permission} key: Add document with two inferable primary key`, async () => {
356+
const client = await getClient(permission)
357+
const doc = {
358+
title: 'hello',
359+
id: 1,
360+
_id: 1,
361+
}
362+
const { taskUid: addDocTask } = await client
363+
.index(indexNoPk.uid)
364+
.addDocuments([doc])
365+
const task = await client.index(indexNoPk.uid).waitForTask(addDocTask)
366+
const index = await client.index(indexNoPk.uid).fetchInfo()
367+
368+
expect(task.error?.code).toEqual(
369+
'index_primary_key_multiple_candidates_found'
370+
)
371+
expect(index).toHaveProperty('primaryKey', null)
372+
})
373+
374+
test(`${permission} key: Add document with none inferable primary key`, async () => {
375+
const client = await getClient(permission)
376+
const doc = {
377+
title: 'hello',
378+
idfindme: 1,
379+
}
380+
const { taskUid: addDocTask } = await client
381+
.index(indexNoPk.uid)
382+
.addDocuments([doc])
383+
const task = await client.index(indexNoPk.uid).waitForTask(addDocTask)
384+
const index = await client.index(indexNoPk.uid).fetchInfo()
385+
386+
expect(task.error?.code).toEqual('index_primary_key_no_candidate_found')
387+
expect(index).toHaveProperty('primaryKey', null)
388+
})
389+
322390
test(`${permission} key: Delete a document from index that has NO primary key`, async () => {
323391
const client = await getClient(permission)
324392
const { taskUid: addDocTask } = await client

0 commit comments

Comments
 (0)