From 28e41beccec02381d10ec74c276dff4b525b55b4 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:03:59 +0300 Subject: [PATCH 1/7] fix(import): fix import for curation object schema to type only --- src/Typesense/CurationSet.ts | 3 ++- src/Typesense/CurationSetItem.ts | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Typesense/CurationSet.ts b/src/Typesense/CurationSet.ts index cf7a74a9..ad2849d2 100644 --- a/src/Typesense/CurationSet.ts +++ b/src/Typesense/CurationSet.ts @@ -1,5 +1,6 @@ import ApiCall from "./ApiCall"; -import CurationSets, { +import CurationSets from "./CurationSets"; +import type { CurationSetDeleteResponseSchema, CurationSetSchema, CurationSetUpsertSchema, diff --git a/src/Typesense/CurationSetItem.ts b/src/Typesense/CurationSetItem.ts index 96c916be..6c734d19 100644 --- a/src/Typesense/CurationSetItem.ts +++ b/src/Typesense/CurationSetItem.ts @@ -1,5 +1,6 @@ import ApiCall from "./ApiCall"; -import CurationSets, { CurationObjectSchema } from "./CurationSets"; +import CurationSets from "./CurationSets"; +import type { CurationObjectSchema } from "./CurationSets"; export interface CurationItemDeleteResponseSchema { id: string; @@ -32,5 +33,3 @@ export default class CurationSetItem { )}/items/${encodeURIComponent(this.itemId)}`; } } - - From b80ec51cc74e9a741aabd2e44235afd89f9ae19e Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:34:22 +0300 Subject: [PATCH 2/7] fix(curation): make curation upsert schema more strict --- src/Typesense/CurationSets.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index f913ea89..64a6f587 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -9,12 +9,15 @@ export interface CurationExcludeSchema { id: string; } -export interface CurationRuleSchema { - query?: string; - match?: "exact" | "contains"; - filter_by?: string; - tags?: string[]; -} +export type CurationRuleSchema = + | { tags: string[]; query?: never; match?: never; filter_by?: never } + | { + query: string; + match: "exact" | "contains"; + tags?: never; + filter_by?: never; + } + | { filter_by: string; tags?: never; query?: never; match?: never }; export interface CurationObjectSchema { id: string; From 355b0a56e994f4d56fc5a53bbaa8dacdd4d82dbc Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:34:38 +0300 Subject: [PATCH 3/7] fix(curation): make rule mandatory on curation object creation --- src/Typesense/CurationSets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index 64a6f587..ad00ece9 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -21,9 +21,9 @@ export type CurationRuleSchema = export interface CurationObjectSchema { id: string; - rule?: CurationRuleSchema; includes?: CurationIncludeSchema[]; excludes?: CurationExcludeSchema[]; + rule: CurationRuleSchema; filter_by?: string; sort_by?: string; replace_query?: string; From c96b443f37c6cc0d7bc564660e77c17aaad6b97c Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:35:02 +0300 Subject: [PATCH 4/7] fix(curation): make includes and excludes simpler for lsp definitions --- src/Typesense/CurationSets.ts | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index ad00ece9..ff562213 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -1,14 +1,5 @@ import ApiCall from "./ApiCall"; -export interface CurationIncludeSchema { - id: string; - position: number; -} - -export interface CurationExcludeSchema { - id: string; -} - export type CurationRuleSchema = | { tags: string[]; query?: never; match?: never; filter_by?: never } | { @@ -21,9 +12,14 @@ export type CurationRuleSchema = export interface CurationObjectSchema { id: string; - includes?: CurationIncludeSchema[]; - excludes?: CurationExcludeSchema[]; rule: CurationRuleSchema; + includes?: { + id: string; + position: number; + }[]; + excludes?: { + id: string; + }[]; filter_by?: string; sort_by?: string; replace_query?: string; From 84c2294910701a18cff6039d7dd9423ee7ad772c Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:36:38 +0300 Subject: [PATCH 5/7] fix(curation): make retrieve function def lsp definition simpler --- src/Typesense/CurationSets.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index ff562213..8a442fbd 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -42,8 +42,6 @@ export interface CurationSetsListEntrySchema { items: CurationObjectSchema[]; } -export type CurationSetsListResponseSchema = CurationSetsListEntrySchema[]; - export interface CurationSetDeleteResponseSchema { name: string; } @@ -52,8 +50,8 @@ export default class CurationSets { constructor(private apiCall: ApiCall) {} static readonly RESOURCEPATH = "/curation_sets"; - async retrieve(): Promise { - return this.apiCall.get( + async retrieve(): Promise { + return this.apiCall.get( CurationSets.RESOURCEPATH, ); } From aa75c3972f45a7f76ef98475fa9c0b186f4f7d92 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:36:55 +0300 Subject: [PATCH 6/7] fix(curation): add missing effect from and to parameters to rule type --- src/Typesense/CurationSets.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index 8a442fbd..55230ab4 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -26,6 +26,8 @@ export interface CurationObjectSchema { remove_matched_tokens?: boolean; filter_curated_hits?: boolean; stop_processing?: boolean; + effective_from_ts?: number; + effective_to_ts?: number; metadata?: Record; } From 733a8fd5b988b442df36a80089e0bcd9e21567a2 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Mon, 29 Sep 2025 20:37:03 +0300 Subject: [PATCH 7/7] chore: format --- src/Typesense/CurationSet.ts | 7 ++++--- src/Typesense/CurationSets.ts | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Typesense/CurationSet.ts b/src/Typesense/CurationSet.ts index ad2849d2..a370cbe3 100644 --- a/src/Typesense/CurationSet.ts +++ b/src/Typesense/CurationSet.ts @@ -12,7 +12,10 @@ export default class CurationSet { private readonly _items: CurationSetItems; private individualItems: Record = {}; - constructor(private name: string, private apiCall: ApiCall) { + constructor( + private name: string, + private apiCall: ApiCall, + ) { this._items = new CurationSetItems(this.name, apiCall); } @@ -51,5 +54,3 @@ export default class CurationSet { return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}`; } } - - diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index 55230ab4..841ee21e 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -58,5 +58,3 @@ export default class CurationSets { ); } } - -