@depup/typesense 3.0.3-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +31 -0
- package/changes.json +10 -0
- package/dist/typesense.js +13031 -0
- package/dist/typesense.js.map +1 -0
- package/dist/typesense.min.js +3 -0
- package/dist/typesense.min.js.LICENSE.txt +1 -0
- package/dist/typesense.min.js.map +1 -0
- package/lib/Typesense/Alias.d.ts +10 -0
- package/lib/Typesense/Alias.js +30 -0
- package/lib/Typesense/Alias.js.map +1 -0
- package/lib/Typesense/Aliases.d.ts +18 -0
- package/lib/Typesense/Aliases.js +36 -0
- package/lib/Typesense/Aliases.js.map +1 -0
- package/lib/Typesense/Analytics.d.ts +15 -0
- package/lib/Typesense/Analytics.js +40 -0
- package/lib/Typesense/Analytics.js.map +1 -0
- package/lib/Typesense/AnalyticsEvent.d.ts +5 -0
- package/lib/Typesense/AnalyticsEvent.js +3 -0
- package/lib/Typesense/AnalyticsEvent.js.map +1 -0
- package/lib/Typesense/AnalyticsEvents.d.ts +26 -0
- package/lib/Typesense/AnalyticsEvents.js +37 -0
- package/lib/Typesense/AnalyticsEvents.js.map +1 -0
- package/lib/Typesense/AnalyticsRule.d.ts +47 -0
- package/lib/Typesense/AnalyticsRule.js +30 -0
- package/lib/Typesense/AnalyticsRule.js.map +1 -0
- package/lib/Typesense/AnalyticsRuleV1.d.ts +35 -0
- package/lib/Typesense/AnalyticsRuleV1.js +30 -0
- package/lib/Typesense/AnalyticsRuleV1.js.map +1 -0
- package/lib/Typesense/AnalyticsRules.d.ts +16 -0
- package/lib/Typesense/AnalyticsRules.js +49 -0
- package/lib/Typesense/AnalyticsRules.js.map +1 -0
- package/lib/Typesense/AnalyticsRulesV1.d.ts +13 -0
- package/lib/Typesense/AnalyticsRulesV1.js +37 -0
- package/lib/Typesense/AnalyticsRulesV1.js.map +1 -0
- package/lib/Typesense/AnalyticsV1.d.ts +19 -0
- package/lib/Typesense/AnalyticsV1.js +49 -0
- package/lib/Typesense/AnalyticsV1.js.map +1 -0
- package/lib/Typesense/ApiCall.d.ts +99 -0
- package/lib/Typesense/ApiCall.js +777 -0
- package/lib/Typesense/ApiCall.js.map +1 -0
- package/lib/Typesense/Client.d.ts +79 -0
- package/lib/Typesense/Client.js +170 -0
- package/lib/Typesense/Client.js.map +1 -0
- package/lib/Typesense/Collection.d.ts +63 -0
- package/lib/Typesense/Collection.js +109 -0
- package/lib/Typesense/Collection.js.map +1 -0
- package/lib/Typesense/Collections.d.ts +42 -0
- package/lib/Typesense/Collections.js +34 -0
- package/lib/Typesense/Collections.js.map +1 -0
- package/lib/Typesense/Configuration.d.ts +143 -0
- package/lib/Typesense/Configuration.js +113 -0
- package/lib/Typesense/Configuration.js.map +1 -0
- package/lib/Typesense/Conversation.d.ts +22 -0
- package/lib/Typesense/Conversation.js +37 -0
- package/lib/Typesense/Conversation.js.map +1 -0
- package/lib/Typesense/ConversationModel.d.ts +30 -0
- package/lib/Typesense/ConversationModel.js +37 -0
- package/lib/Typesense/ConversationModel.js.map +1 -0
- package/lib/Typesense/ConversationModels.d.ts +10 -0
- package/lib/Typesense/ConversationModels.js +37 -0
- package/lib/Typesense/ConversationModels.js.map +1 -0
- package/lib/Typesense/Conversations.d.ts +17 -0
- package/lib/Typesense/Conversations.js +42 -0
- package/lib/Typesense/Conversations.js.map +1 -0
- package/lib/Typesense/CurationSet.d.ts +17 -0
- package/lib/Typesense/CurationSet.js +52 -0
- package/lib/Typesense/CurationSet.js.map +1 -0
- package/lib/Typesense/CurationSetItem.d.ts +15 -0
- package/lib/Typesense/CurationSetItem.js +38 -0
- package/lib/Typesense/CurationSetItem.js.map +1 -0
- package/lib/Typesense/CurationSetItems.d.ts +9 -0
- package/lib/Typesense/CurationSetItems.js +23 -0
- package/lib/Typesense/CurationSetItems.js.map +1 -0
- package/lib/Typesense/CurationSets.d.ts +56 -0
- package/lib/Typesense/CurationSets.js +19 -0
- package/lib/Typesense/CurationSets.js.map +1 -0
- package/lib/Typesense/Debug.d.ts +10 -0
- package/lib/Typesense/Debug.js +19 -0
- package/lib/Typesense/Debug.js.map +1 -0
- package/lib/Typesense/Document.d.ts +12 -0
- package/lib/Typesense/Document.js +41 -0
- package/lib/Typesense/Document.js.map +1 -0
- package/lib/Typesense/Documents.d.ts +196 -0
- package/lib/Typesense/Documents.js +204 -0
- package/lib/Typesense/Documents.js.map +1 -0
- package/lib/Typesense/Errors/HTTPError.d.ts +3 -0
- package/lib/Typesense/Errors/HTTPError.js +13 -0
- package/lib/Typesense/Errors/HTTPError.js.map +1 -0
- package/lib/Typesense/Errors/ImportError.d.ts +15 -0
- package/lib/Typesense/Errors/ImportError.js +16 -0
- package/lib/Typesense/Errors/ImportError.js.map +1 -0
- package/lib/Typesense/Errors/MissingConfigurationError.d.ts +3 -0
- package/lib/Typesense/Errors/MissingConfigurationError.js +13 -0
- package/lib/Typesense/Errors/MissingConfigurationError.js.map +1 -0
- package/lib/Typesense/Errors/ObjectAlreadyExists.d.ts +3 -0
- package/lib/Typesense/Errors/ObjectAlreadyExists.js +13 -0
- package/lib/Typesense/Errors/ObjectAlreadyExists.js.map +1 -0
- package/lib/Typesense/Errors/ObjectNotFound.d.ts +3 -0
- package/lib/Typesense/Errors/ObjectNotFound.js +13 -0
- package/lib/Typesense/Errors/ObjectNotFound.js.map +1 -0
- package/lib/Typesense/Errors/ObjectUnprocessable.d.ts +3 -0
- package/lib/Typesense/Errors/ObjectUnprocessable.js +13 -0
- package/lib/Typesense/Errors/ObjectUnprocessable.js.map +1 -0
- package/lib/Typesense/Errors/RequestMalformed.d.ts +3 -0
- package/lib/Typesense/Errors/RequestMalformed.js +13 -0
- package/lib/Typesense/Errors/RequestMalformed.js.map +1 -0
- package/lib/Typesense/Errors/RequestUnauthorized.d.ts +3 -0
- package/lib/Typesense/Errors/RequestUnauthorized.js +13 -0
- package/lib/Typesense/Errors/RequestUnauthorized.js.map +1 -0
- package/lib/Typesense/Errors/ServerError.d.ts +3 -0
- package/lib/Typesense/Errors/ServerError.js +13 -0
- package/lib/Typesense/Errors/ServerError.js.map +1 -0
- package/lib/Typesense/Errors/TypesenseError.d.ts +5 -0
- package/lib/Typesense/Errors/TypesenseError.js +19 -0
- package/lib/Typesense/Errors/TypesenseError.js.map +1 -0
- package/lib/Typesense/Errors/index.d.ts +11 -0
- package/lib/Typesense/Errors/index.js +25 -0
- package/lib/Typesense/Errors/index.js.map +1 -0
- package/lib/Typesense/Health.d.ts +9 -0
- package/lib/Typesense/Health.js +19 -0
- package/lib/Typesense/Health.js.map +1 -0
- package/lib/Typesense/Key.d.ts +33 -0
- package/lib/Typesense/Key.js +30 -0
- package/lib/Typesense/Key.js.map +1 -0
- package/lib/Typesense/Keys.d.ts +19 -0
- package/lib/Typesense/Keys.js +46 -0
- package/lib/Typesense/Keys.js.map +1 -0
- package/lib/Typesense/Metrics.d.ts +25 -0
- package/lib/Typesense/Metrics.js +19 -0
- package/lib/Typesense/Metrics.js.map +1 -0
- package/lib/Typesense/MultiSearch.d.ts +25 -0
- package/lib/Typesense/MultiSearch.js +63 -0
- package/lib/Typesense/MultiSearch.js.map +1 -0
- package/lib/Typesense/NLSearchModel.d.ts +16 -0
- package/lib/Typesense/NLSearchModel.js +37 -0
- package/lib/Typesense/NLSearchModel.js.map +1 -0
- package/lib/Typesense/NLSearchModels.d.ts +36 -0
- package/lib/Typesense/NLSearchModels.js +36 -0
- package/lib/Typesense/NLSearchModels.js.map +1 -0
- package/lib/Typesense/Operations.d.ts +12 -0
- package/lib/Typesense/Operations.js +27 -0
- package/lib/Typesense/Operations.js.map +1 -0
- package/lib/Typesense/Override.d.ts +17 -0
- package/lib/Typesense/Override.js +32 -0
- package/lib/Typesense/Override.js.map +1 -0
- package/lib/Typesense/Overrides.d.ts +43 -0
- package/lib/Typesense/Overrides.js +38 -0
- package/lib/Typesense/Overrides.js.map +1 -0
- package/lib/Typesense/Preset.d.ts +17 -0
- package/lib/Typesense/Preset.js +30 -0
- package/lib/Typesense/Preset.js.map +1 -0
- package/lib/Typesense/Presets.d.ts +18 -0
- package/lib/Typesense/Presets.js +49 -0
- package/lib/Typesense/Presets.js.map +1 -0
- package/lib/Typesense/RequestWithCache.d.ts +15 -0
- package/lib/Typesense/RequestWithCache.js +117 -0
- package/lib/Typesense/RequestWithCache.js.map +1 -0
- package/lib/Typesense/SearchClient.d.ts +13 -0
- package/lib/Typesense/SearchClient.js +45 -0
- package/lib/Typesense/SearchClient.js.map +1 -0
- package/lib/Typesense/SearchOnlyCollection.d.ts +11 -0
- package/lib/Typesense/SearchOnlyCollection.js +18 -0
- package/lib/Typesense/SearchOnlyCollection.js.map +1 -0
- package/lib/Typesense/SearchOnlyDocuments.d.ts +16 -0
- package/lib/Typesense/SearchOnlyDocuments.js +57 -0
- package/lib/Typesense/SearchOnlyDocuments.js.map +1 -0
- package/lib/Typesense/Stats.d.ts +24 -0
- package/lib/Typesense/Stats.js +19 -0
- package/lib/Typesense/Stats.js.map +1 -0
- package/lib/Typesense/Stemming.d.ts +12 -0
- package/lib/Typesense/Stemming.js +35 -0
- package/lib/Typesense/Stemming.js.map +1 -0
- package/lib/Typesense/StemmingDictionaries.d.ts +13 -0
- package/lib/Typesense/StemmingDictionaries.js +58 -0
- package/lib/Typesense/StemmingDictionaries.js.map +1 -0
- package/lib/Typesense/StemmingDictionary.d.ts +20 -0
- package/lib/Typesense/StemmingDictionary.js +30 -0
- package/lib/Typesense/StemmingDictionary.js.map +1 -0
- package/lib/Typesense/Stopword.d.ts +20 -0
- package/lib/Typesense/Stopword.js +30 -0
- package/lib/Typesense/Stopword.js.map +1 -0
- package/lib/Typesense/Stopwords.d.ts +17 -0
- package/lib/Typesense/Stopwords.js +36 -0
- package/lib/Typesense/Stopwords.js.map +1 -0
- package/lib/Typesense/Synonym.d.ts +21 -0
- package/lib/Typesense/Synonym.js +41 -0
- package/lib/Typesense/Synonym.js.map +1 -0
- package/lib/Typesense/SynonymSet.d.ts +21 -0
- package/lib/Typesense/SynonymSet.js +52 -0
- package/lib/Typesense/SynonymSet.js.map +1 -0
- package/lib/Typesense/SynonymSetItem.d.ts +14 -0
- package/lib/Typesense/SynonymSetItem.js +31 -0
- package/lib/Typesense/SynonymSetItem.js.map +1 -0
- package/lib/Typesense/SynonymSetItems.d.ts +10 -0
- package/lib/Typesense/SynonymSetItems.js +30 -0
- package/lib/Typesense/SynonymSetItems.js.map +1 -0
- package/lib/Typesense/SynonymSets.d.ts +23 -0
- package/lib/Typesense/SynonymSets.js +19 -0
- package/lib/Typesense/SynonymSets.js.map +1 -0
- package/lib/Typesense/Synonyms.d.ts +24 -0
- package/lib/Typesense/Synonyms.js +47 -0
- package/lib/Typesense/Synonyms.js.map +1 -0
- package/lib/Typesense/Types.d.ts +201 -0
- package/lib/Typesense/Types.js +22 -0
- package/lib/Typesense/Types.js.map +1 -0
- package/lib/Typesense/Utils.d.ts +11 -0
- package/lib/Typesense/Utils.js +50 -0
- package/lib/Typesense/Utils.js.map +1 -0
- package/lib/Typesense.d.ts +46 -0
- package/lib/Typesense.js +12 -0
- package/lib/Typesense.js.map +1 -0
- package/package.json +141 -0
- package/src/Typesense/Alias.ts +18 -0
- package/src/Typesense/Aliases.ts +41 -0
- package/src/Typesense/Analytics.ts +39 -0
- package/src/Typesense/AnalyticsEvent.ts +5 -0
- package/src/Typesense/AnalyticsEvents.ts +53 -0
- package/src/Typesense/AnalyticsRule.ts +63 -0
- package/src/Typesense/AnalyticsRuleV1.ts +52 -0
- package/src/Typesense/AnalyticsRules.ts +67 -0
- package/src/Typesense/AnalyticsRulesV1.ts +43 -0
- package/src/Typesense/AnalyticsV1.ts +52 -0
- package/src/Typesense/ApiCall.ts +1103 -0
- package/src/Typesense/Client.ts +225 -0
- package/src/Typesense/Collection.ts +179 -0
- package/src/Typesense/Collections.ts +68 -0
- package/src/Typesense/Configuration.ts +328 -0
- package/src/Typesense/Conversation.ts +45 -0
- package/src/Typesense/ConversationModel.ts +55 -0
- package/src/Typesense/ConversationModels.ts +38 -0
- package/src/Typesense/Conversations.ts +47 -0
- package/src/Typesense/CurationSet.ts +56 -0
- package/src/Typesense/CurationSetItem.ts +35 -0
- package/src/Typesense/CurationSetItems.ts +18 -0
- package/src/Typesense/CurationSets.ts +60 -0
- package/src/Typesense/Debug.ts +16 -0
- package/src/Typesense/Document.ts +34 -0
- package/src/Typesense/Documents.ts +445 -0
- package/src/Typesense/Errors/HTTPError.ts +3 -0
- package/src/Typesense/Errors/ImportError.ts +24 -0
- package/src/Typesense/Errors/MissingConfigurationError.ts +3 -0
- package/src/Typesense/Errors/ObjectAlreadyExists.ts +3 -0
- package/src/Typesense/Errors/ObjectNotFound.ts +3 -0
- package/src/Typesense/Errors/ObjectUnprocessable.ts +3 -0
- package/src/Typesense/Errors/RequestMalformed.ts +3 -0
- package/src/Typesense/Errors/RequestUnauthorized.ts +3 -0
- package/src/Typesense/Errors/ServerError.ts +3 -0
- package/src/Typesense/Errors/TypesenseError.ts +13 -0
- package/src/Typesense/Errors/index.ts +23 -0
- package/src/Typesense/Health.ts +15 -0
- package/src/Typesense/Key.ts +73 -0
- package/src/Typesense/Keys.ts +59 -0
- package/src/Typesense/Metrics.ts +31 -0
- package/src/Typesense/MultiSearch.ts +144 -0
- package/src/Typesense/NLSearchModel.ts +35 -0
- package/src/Typesense/NLSearchModels.ts +61 -0
- package/src/Typesense/Operations.ts +35 -0
- package/src/Typesense/Override.ts +31 -0
- package/src/Typesense/Overrides.ts +73 -0
- package/src/Typesense/Preset.ts +31 -0
- package/src/Typesense/Presets.ts +62 -0
- package/src/Typesense/RequestWithCache.ts +209 -0
- package/src/Typesense/SearchClient.ts +64 -0
- package/src/Typesense/SearchOnlyCollection.ts +24 -0
- package/src/Typesense/SearchOnlyDocuments.ts +87 -0
- package/src/Typesense/Stats.ts +31 -0
- package/src/Typesense/Stemming.ts +38 -0
- package/src/Typesense/StemmingDictionaries.ts +59 -0
- package/src/Typesense/StemmingDictionary.ts +37 -0
- package/src/Typesense/Stopword.ts +31 -0
- package/src/Typesense/Stopwords.ts +41 -0
- package/src/Typesense/Synonym.ts +42 -0
- package/src/Typesense/SynonymSet.ts +57 -0
- package/src/Typesense/SynonymSetItem.ts +28 -0
- package/src/Typesense/SynonymSetItems.ts +31 -0
- package/src/Typesense/SynonymSets.ts +30 -0
- package/src/Typesense/Synonyms.ts +55 -0
- package/src/Typesense/Types.ts +355 -0
- package/src/Typesense/Utils.ts +80 -0
- package/src/Typesense.ts +43 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/* eslint-disable no-dupe-class-members */
|
|
2
|
+
|
|
3
|
+
import Configuration, { ConfigurationOptions } from "./Configuration";
|
|
4
|
+
import ApiCall from "./ApiCall";
|
|
5
|
+
import Collections from "./Collections";
|
|
6
|
+
import Collection from "./Collection";
|
|
7
|
+
import Aliases from "./Aliases";
|
|
8
|
+
import Alias from "./Alias";
|
|
9
|
+
import Keys from "./Keys";
|
|
10
|
+
import Key from "./Key";
|
|
11
|
+
import Debug from "./Debug";
|
|
12
|
+
import Metrics from "./Metrics";
|
|
13
|
+
import Stats from "./Stats";
|
|
14
|
+
import Health from "./Health";
|
|
15
|
+
import Operations from "./Operations";
|
|
16
|
+
import MultiSearch from "./MultiSearch";
|
|
17
|
+
import Presets from "./Presets";
|
|
18
|
+
import Preset from "./Preset";
|
|
19
|
+
import AnalyticsV1 from "./AnalyticsV1";
|
|
20
|
+
import Analytics from "./Analytics";
|
|
21
|
+
import Stopwords from "./Stopwords";
|
|
22
|
+
import Stopword from "./Stopword";
|
|
23
|
+
import Conversations from "./Conversations";
|
|
24
|
+
import Conversation from "./Conversation";
|
|
25
|
+
import Stemming from "./Stemming";
|
|
26
|
+
import NLSearchModels from "./NLSearchModels";
|
|
27
|
+
import NLSearchModel from "./NLSearchModel";
|
|
28
|
+
import SynonymSets from "./SynonymSets";
|
|
29
|
+
import SynonymSet from "./SynonymSet";
|
|
30
|
+
import CurationSets from "./CurationSets";
|
|
31
|
+
import CurationSet from "./CurationSet";
|
|
32
|
+
export default class Client {
|
|
33
|
+
configuration: Configuration;
|
|
34
|
+
apiCall: ApiCall;
|
|
35
|
+
debug: Debug;
|
|
36
|
+
metrics: Metrics;
|
|
37
|
+
stats: Stats;
|
|
38
|
+
health: Health;
|
|
39
|
+
operations: Operations;
|
|
40
|
+
multiSearch: MultiSearch;
|
|
41
|
+
analytics: Analytics;
|
|
42
|
+
analyticsV1: AnalyticsV1;
|
|
43
|
+
stemming: Stemming;
|
|
44
|
+
private readonly _collections: Collections;
|
|
45
|
+
private readonly individualCollections: Record<string, Collection>;
|
|
46
|
+
private readonly _aliases: Aliases;
|
|
47
|
+
private readonly individualAliases: Record<string, Alias>;
|
|
48
|
+
private readonly _keys: Keys;
|
|
49
|
+
private readonly individualKeys: Record<number, Key>;
|
|
50
|
+
private readonly _presets: Presets;
|
|
51
|
+
private readonly individualPresets: Record<string, Preset>;
|
|
52
|
+
private readonly _stopwords: Stopwords;
|
|
53
|
+
private readonly individualStopwords: Record<string, Stopword>;
|
|
54
|
+
private readonly _conversations: Conversations;
|
|
55
|
+
private readonly individualConversations: Record<string, Conversation>;
|
|
56
|
+
private readonly _nlSearchModels: NLSearchModels;
|
|
57
|
+
private readonly individualNLSearchModels: Record<string, NLSearchModel>;
|
|
58
|
+
private readonly _synonymSets: SynonymSets;
|
|
59
|
+
private readonly individualSynonymSets: Record<string, SynonymSet>;
|
|
60
|
+
private readonly _curationSets: CurationSets;
|
|
61
|
+
private readonly individualCurationSets: Record<string, CurationSet>;
|
|
62
|
+
|
|
63
|
+
constructor(options: ConfigurationOptions) {
|
|
64
|
+
options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;
|
|
65
|
+
|
|
66
|
+
this.configuration = new Configuration(options);
|
|
67
|
+
this.apiCall = new ApiCall(this.configuration);
|
|
68
|
+
this.debug = new Debug(this.apiCall);
|
|
69
|
+
this.metrics = new Metrics(this.apiCall);
|
|
70
|
+
this.stats = new Stats(this.apiCall);
|
|
71
|
+
this.health = new Health(this.apiCall);
|
|
72
|
+
this.operations = new Operations(this.apiCall);
|
|
73
|
+
this.multiSearch = new MultiSearch(this.apiCall, this.configuration);
|
|
74
|
+
this._collections = new Collections(this.apiCall);
|
|
75
|
+
this.individualCollections = {};
|
|
76
|
+
this._aliases = new Aliases(this.apiCall);
|
|
77
|
+
this.individualAliases = {};
|
|
78
|
+
this._keys = new Keys(this.apiCall);
|
|
79
|
+
this.individualKeys = {};
|
|
80
|
+
this._presets = new Presets(this.apiCall);
|
|
81
|
+
this.individualPresets = {};
|
|
82
|
+
this._stopwords = new Stopwords(this.apiCall);
|
|
83
|
+
this.individualStopwords = {};
|
|
84
|
+
this.analytics = new Analytics(this.apiCall);
|
|
85
|
+
this.analyticsV1 = new AnalyticsV1(this.apiCall);
|
|
86
|
+
this.stemming = new Stemming(this.apiCall);
|
|
87
|
+
this._conversations = new Conversations(this.apiCall);
|
|
88
|
+
this.individualConversations = {};
|
|
89
|
+
this._nlSearchModels = new NLSearchModels(this.apiCall);
|
|
90
|
+
this.individualNLSearchModels = {};
|
|
91
|
+
this._synonymSets = new SynonymSets(this.apiCall);
|
|
92
|
+
this.individualSynonymSets = {};
|
|
93
|
+
this._curationSets = new CurationSets(this.apiCall);
|
|
94
|
+
this.individualCurationSets = {};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
collections(): Collections;
|
|
98
|
+
collections<T extends Record<string, any> = object>(
|
|
99
|
+
collectionName: string,
|
|
100
|
+
): Collection<T>;
|
|
101
|
+
collections(collectionName?: string): Collections | Collection {
|
|
102
|
+
if (collectionName === undefined) {
|
|
103
|
+
return this._collections;
|
|
104
|
+
} else {
|
|
105
|
+
if (this.individualCollections[collectionName] === undefined) {
|
|
106
|
+
this.individualCollections[collectionName] = new Collection(
|
|
107
|
+
collectionName,
|
|
108
|
+
this.apiCall,
|
|
109
|
+
this.configuration,
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
return this.individualCollections[collectionName];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
aliases(): Aliases;
|
|
117
|
+
aliases(aliasName: string): Alias;
|
|
118
|
+
aliases(aliasName?: string): Aliases | Alias {
|
|
119
|
+
if (aliasName === undefined) {
|
|
120
|
+
return this._aliases;
|
|
121
|
+
} else {
|
|
122
|
+
if (this.individualAliases[aliasName] === undefined) {
|
|
123
|
+
this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);
|
|
124
|
+
}
|
|
125
|
+
return this.individualAliases[aliasName];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
keys(): Keys;
|
|
130
|
+
keys(id: number): Key;
|
|
131
|
+
keys(id?: number): Keys | Key {
|
|
132
|
+
if (id === undefined) {
|
|
133
|
+
return this._keys;
|
|
134
|
+
} else {
|
|
135
|
+
if (this.individualKeys[id] === undefined) {
|
|
136
|
+
this.individualKeys[id] = new Key(id, this.apiCall);
|
|
137
|
+
}
|
|
138
|
+
return this.individualKeys[id];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
presets(): Presets;
|
|
143
|
+
presets(id: string): Preset;
|
|
144
|
+
presets(id?: string): Presets | Preset {
|
|
145
|
+
if (id === undefined) {
|
|
146
|
+
return this._presets;
|
|
147
|
+
} else {
|
|
148
|
+
if (this.individualPresets[id] === undefined) {
|
|
149
|
+
this.individualPresets[id] = new Preset(id, this.apiCall);
|
|
150
|
+
}
|
|
151
|
+
return this.individualPresets[id];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
stopwords(): Stopwords;
|
|
156
|
+
stopwords(id: string): Stopword;
|
|
157
|
+
stopwords(id?: string): Stopwords | Stopword {
|
|
158
|
+
if (id === undefined) {
|
|
159
|
+
return this._stopwords;
|
|
160
|
+
} else {
|
|
161
|
+
if (this.individualStopwords[id] === undefined) {
|
|
162
|
+
this.individualStopwords[id] = new Stopword(id, this.apiCall);
|
|
163
|
+
}
|
|
164
|
+
return this.individualStopwords[id];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
conversations(): Conversations;
|
|
169
|
+
conversations(id: string): Conversation;
|
|
170
|
+
conversations(id?: string): Conversations | Conversation {
|
|
171
|
+
if (id === undefined) {
|
|
172
|
+
return this._conversations;
|
|
173
|
+
} else {
|
|
174
|
+
if (this.individualConversations[id] === undefined) {
|
|
175
|
+
this.individualConversations[id] = new Conversation(id, this.apiCall);
|
|
176
|
+
}
|
|
177
|
+
return this.individualConversations[id];
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
nlSearchModels(): NLSearchModels;
|
|
182
|
+
nlSearchModels(id: string): NLSearchModel;
|
|
183
|
+
nlSearchModels(id?: string): NLSearchModels | NLSearchModel {
|
|
184
|
+
if (id === undefined) {
|
|
185
|
+
return this._nlSearchModels;
|
|
186
|
+
} else {
|
|
187
|
+
if (this.individualNLSearchModels[id] === undefined) {
|
|
188
|
+
this.individualNLSearchModels[id] = new NLSearchModel(id, this.apiCall);
|
|
189
|
+
}
|
|
190
|
+
return this.individualNLSearchModels[id];
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
synonymSets(): SynonymSets;
|
|
195
|
+
synonymSets(synonymSetName: string): SynonymSet;
|
|
196
|
+
synonymSets(synonymSetName?: string): SynonymSets | SynonymSet {
|
|
197
|
+
if (synonymSetName === undefined) {
|
|
198
|
+
return this._synonymSets;
|
|
199
|
+
} else {
|
|
200
|
+
if (this.individualSynonymSets[synonymSetName] === undefined) {
|
|
201
|
+
this.individualSynonymSets[synonymSetName] = new SynonymSet(
|
|
202
|
+
synonymSetName,
|
|
203
|
+
this.apiCall,
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
return this.individualSynonymSets[synonymSetName];
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
curationSets(): CurationSets;
|
|
211
|
+
curationSets(name: string): CurationSet;
|
|
212
|
+
curationSets(name?: string): CurationSets | CurationSet {
|
|
213
|
+
if (name === undefined) {
|
|
214
|
+
return this._curationSets;
|
|
215
|
+
} else {
|
|
216
|
+
if (this.individualCurationSets[name] === undefined) {
|
|
217
|
+
this.individualCurationSets[name] = new CurationSet(
|
|
218
|
+
name,
|
|
219
|
+
this.apiCall,
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
return this.individualCurationSets[name];
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import ApiCall from "./ApiCall";
|
|
2
|
+
import Collections from "./Collections";
|
|
3
|
+
import type {
|
|
4
|
+
BaseCollectionCreateSchema,
|
|
5
|
+
CollectionCreateSchema,
|
|
6
|
+
} from "./Collections";
|
|
7
|
+
import Documents, { DocumentSchema } from "./Documents";
|
|
8
|
+
import { ObjectNotFound } from "./Errors";
|
|
9
|
+
import Overrides from "./Overrides";
|
|
10
|
+
import Override from "./Override";
|
|
11
|
+
import Synonyms from "./Synonyms";
|
|
12
|
+
import Synonym from "./Synonym";
|
|
13
|
+
import { Document } from "./Document";
|
|
14
|
+
|
|
15
|
+
export type FieldType =
|
|
16
|
+
| "string"
|
|
17
|
+
| "int32"
|
|
18
|
+
| "int64"
|
|
19
|
+
| "float"
|
|
20
|
+
| "bool"
|
|
21
|
+
| "geopoint"
|
|
22
|
+
| "geopolygon"
|
|
23
|
+
| "geopoint[]"
|
|
24
|
+
| "string[]"
|
|
25
|
+
| "int32[]"
|
|
26
|
+
| "int64[]"
|
|
27
|
+
| "float[]"
|
|
28
|
+
| "bool[]"
|
|
29
|
+
| "object"
|
|
30
|
+
| "object[]"
|
|
31
|
+
| "auto"
|
|
32
|
+
| "string*"
|
|
33
|
+
| "image";
|
|
34
|
+
|
|
35
|
+
export interface CollectionFieldSchema
|
|
36
|
+
extends Partial<
|
|
37
|
+
Pick<BaseCollectionCreateSchema, "token_separators" | "symbols_to_index">
|
|
38
|
+
> {
|
|
39
|
+
name: string;
|
|
40
|
+
type: FieldType;
|
|
41
|
+
optional?: boolean;
|
|
42
|
+
facet?: boolean;
|
|
43
|
+
index?: boolean;
|
|
44
|
+
sort?: boolean;
|
|
45
|
+
locale?: string;
|
|
46
|
+
infix?: boolean;
|
|
47
|
+
stem?: boolean;
|
|
48
|
+
num_dim?: number;
|
|
49
|
+
store?: boolean;
|
|
50
|
+
range_index?: boolean;
|
|
51
|
+
[t: string]: unknown;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface CollectionSchema extends Required<CollectionCreateSchema> {
|
|
55
|
+
created_at: number;
|
|
56
|
+
num_documents: number;
|
|
57
|
+
num_memory_shards: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface CollectionDropFieldSchema {
|
|
61
|
+
name: string;
|
|
62
|
+
drop: true;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface CollectionUpdateSchema
|
|
66
|
+
extends Partial<Omit<CollectionCreateSchema, "name" | "fields">> {
|
|
67
|
+
fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];
|
|
68
|
+
synonym_sets?: string[];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface CollectionDeleteOptions {
|
|
72
|
+
compact_store?: boolean;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export default class Collection<T extends DocumentSchema = object> {
|
|
76
|
+
private readonly _documents: Documents<T>;
|
|
77
|
+
private individualDocuments: Record<string, Document<T>> = {};
|
|
78
|
+
private readonly _overrides: Overrides;
|
|
79
|
+
private individualOverrides: Record<string, Override> = {};
|
|
80
|
+
private readonly _synonyms: Synonyms;
|
|
81
|
+
private individualSynonyms: Record<string, Synonym> = {};
|
|
82
|
+
|
|
83
|
+
constructor(
|
|
84
|
+
private readonly name: string,
|
|
85
|
+
private readonly apiCall: ApiCall,
|
|
86
|
+
private readonly configuration: any,
|
|
87
|
+
) {
|
|
88
|
+
this.name = name;
|
|
89
|
+
this.apiCall = apiCall;
|
|
90
|
+
this.configuration = configuration;
|
|
91
|
+
|
|
92
|
+
this._documents = new Documents(
|
|
93
|
+
this.name,
|
|
94
|
+
this.apiCall,
|
|
95
|
+
this.configuration,
|
|
96
|
+
);
|
|
97
|
+
this._overrides = new Overrides(this.name, this.apiCall);
|
|
98
|
+
this._synonyms = new Synonyms(this.name, this.apiCall);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async retrieve(): Promise<CollectionSchema> {
|
|
102
|
+
return this.apiCall.get<CollectionSchema>(this.endpointPath());
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async update(schema: CollectionUpdateSchema): Promise<CollectionSchema> {
|
|
106
|
+
return this.apiCall.patch<CollectionSchema>(this.endpointPath(), schema);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async delete(
|
|
110
|
+
options: CollectionDeleteOptions = {},
|
|
111
|
+
): Promise<CollectionSchema> {
|
|
112
|
+
return this.apiCall.delete<CollectionSchema>(this.endpointPath(), options);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async exists(): Promise<boolean> {
|
|
116
|
+
try {
|
|
117
|
+
await this.retrieve();
|
|
118
|
+
return true;
|
|
119
|
+
} catch (e) {
|
|
120
|
+
if (e instanceof ObjectNotFound) return false;
|
|
121
|
+
throw e;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
documents(): Documents<T>;
|
|
126
|
+
documents(documentId: string): Document<T>;
|
|
127
|
+
documents(documentId?: string): Document<T> | Documents<T> {
|
|
128
|
+
if (!documentId) {
|
|
129
|
+
return this._documents;
|
|
130
|
+
} else {
|
|
131
|
+
if (this.individualDocuments[documentId] === undefined) {
|
|
132
|
+
this.individualDocuments[documentId] = new Document(
|
|
133
|
+
this.name,
|
|
134
|
+
documentId,
|
|
135
|
+
this.apiCall,
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
return this.individualDocuments[documentId];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
overrides(): Overrides;
|
|
143
|
+
overrides(overrideId: string): Override;
|
|
144
|
+
overrides(overrideId?: string): Overrides | Override {
|
|
145
|
+
if (overrideId === undefined) {
|
|
146
|
+
return this._overrides;
|
|
147
|
+
} else {
|
|
148
|
+
if (this.individualOverrides[overrideId] === undefined) {
|
|
149
|
+
this.individualOverrides[overrideId] = new Override(
|
|
150
|
+
this.name,
|
|
151
|
+
overrideId,
|
|
152
|
+
this.apiCall,
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
return this.individualOverrides[overrideId];
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
synonyms(): Synonyms;
|
|
160
|
+
synonyms(synonymId: string): Synonym;
|
|
161
|
+
synonyms(synonymId?: string): Synonyms | Synonym {
|
|
162
|
+
if (synonymId === undefined) {
|
|
163
|
+
return this._synonyms;
|
|
164
|
+
} else {
|
|
165
|
+
if (this.individualSynonyms[synonymId] === undefined) {
|
|
166
|
+
this.individualSynonyms[synonymId] = new Synonym(
|
|
167
|
+
this.name,
|
|
168
|
+
synonymId,
|
|
169
|
+
this.apiCall,
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
return this.individualSynonyms[synonymId];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
private endpointPath(): string {
|
|
177
|
+
return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import ApiCall from "./ApiCall";
|
|
2
|
+
import type { CollectionFieldSchema, CollectionSchema } from "./Collection";
|
|
3
|
+
|
|
4
|
+
export interface BaseCollectionCreateSchema {
|
|
5
|
+
name: string;
|
|
6
|
+
default_sorting_field?: string;
|
|
7
|
+
symbols_to_index?: string[];
|
|
8
|
+
token_separators?: string[];
|
|
9
|
+
enable_nested_fields?: boolean;
|
|
10
|
+
metadata?: object;
|
|
11
|
+
voice_query_model?: {
|
|
12
|
+
model_name?: string;
|
|
13
|
+
};
|
|
14
|
+
synonym_sets?: string[];
|
|
15
|
+
curation_sets?: string[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface CollectionCreateSchemaWithSrc
|
|
19
|
+
extends Pick<BaseCollectionCreateSchema, "name"> {
|
|
20
|
+
fields?: CollectionFieldSchema[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {
|
|
24
|
+
fields: CollectionFieldSchema[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Defines the schema for creating a collection in Typesense.
|
|
29
|
+
*
|
|
30
|
+
* If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.
|
|
31
|
+
* Otherwise, `fields` will be required.
|
|
32
|
+
*/
|
|
33
|
+
export type CollectionCreateSchema<
|
|
34
|
+
Options extends CollectionCreateOptions = CollectionCreateOptions,
|
|
35
|
+
> = Options["src_name"] extends string
|
|
36
|
+
? CollectionCreateSchemaWithSrc
|
|
37
|
+
: CollectionCreateSchemaWithoutSrc;
|
|
38
|
+
|
|
39
|
+
export interface CollectionCreateOptions {
|
|
40
|
+
src_name?: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface CollectionsRetrieveOptions {
|
|
44
|
+
exclude_fields?: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const RESOURCEPATH = "/collections";
|
|
48
|
+
|
|
49
|
+
export default class Collections {
|
|
50
|
+
constructor(private apiCall: ApiCall) {}
|
|
51
|
+
|
|
52
|
+
async create<const Options extends CollectionCreateOptions>(
|
|
53
|
+
schema: CollectionCreateSchema<Options>,
|
|
54
|
+
options?: Options,
|
|
55
|
+
): Promise<CollectionSchema> {
|
|
56
|
+
return this.apiCall.post<CollectionSchema>(RESOURCEPATH, schema, options);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async retrieve(
|
|
60
|
+
options: CollectionsRetrieveOptions = {},
|
|
61
|
+
): Promise<CollectionSchema[]> {
|
|
62
|
+
return this.apiCall.get<CollectionSchema[]>(RESOURCEPATH, options);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static get RESOURCEPATH() {
|
|
66
|
+
return RESOURCEPATH;
|
|
67
|
+
}
|
|
68
|
+
}
|