@sebspark/opensearch 3.0.0 → 3.0.2

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.
@@ -1,16 +1,12 @@
1
- import { API, Types, Client } from '@opensearch-project/opensearch';
1
+ import { API, Client, Types } from "@opensearch-project/opensearch";
2
2
 
3
- type DeepPartial<T> = {
4
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
5
- };
6
- type NestedPaths<T, Prefix extends string = ''> = T extends object ? {
7
- [K in keyof T & string]: `${Prefix}${Prefix extends '' ? '' : '.'}${K}` | NestedPaths<T[K], `${Prefix}${Prefix extends '' ? '' : '.'}${K}`>;
8
- }[keyof T & string] : never;
9
- type NestedLeafPaths<T, Prefix extends string = ''> = T extends object ? {
10
- [K in keyof T & string]: NestedLeafPaths<T[K], `${Prefix}${Prefix extends '' ? '' : '.'}${K}`>;
11
- }[keyof T & string] : Prefix;
3
+ //#region src/types/utilityTypes.d.ts
4
+ type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P] };
5
+ type NestedPaths<T, Prefix extends string = ''> = T extends object ? { [K in keyof T & string]: `${Prefix}${Prefix extends '' ? '' : '.'}${K}` | NestedPaths<T[K], `${Prefix}${Prefix extends '' ? '' : '.'}${K}`> }[keyof T & string] : never;
6
+ type NestedLeafPaths<T, Prefix extends string = ''> = T extends object ? { [K in keyof T & string]: NestedLeafPaths<T[K], `${Prefix}${Prefix extends '' ? '' : '.'}${K}`> }[keyof T & string] : Prefix;
12
7
  type Primitive = string | number | boolean;
13
-
8
+ //#endregion
9
+ //#region src/types/common.d.ts
14
10
  /**
15
11
  * Defines all possible field value types in OpenSearch.
16
12
  */
@@ -23,423 +19,423 @@ type Property = Types.Common_Mapping.Property;
23
19
  * Defines an OpenSearch index mapping.
24
20
  */
25
21
  type TypeMapping = Omit<Types.Common_Mapping.TypeMapping, 'properties'> & {
26
- properties: Record<string, Property>;
22
+ properties: Record<string, Property>;
27
23
  };
28
24
  /**
29
25
  * Defines an OpenSearch index mapping configuration.
30
26
  */
31
27
  type IndicesCreateRequestBody = Omit<API.Indices_Create_RequestBody, 'mappings'> & {
32
- mappings: TypeMapping;
28
+ mappings: TypeMapping;
33
29
  };
34
30
  /**
35
31
  * Defines an OpenSearch index with body required.
36
32
  */
37
33
  type IndexDefinition = Omit<API.Indices_Create_Request, 'body'> & {
38
- body: IndicesCreateRequestBody;
34
+ body: IndicesCreateRequestBody;
39
35
  };
40
36
  /**
41
37
  * Converts OpenSearch field definitions into TypeScript types.
42
38
  */
43
39
  type MapOpenSearchTypes<T> = T extends Property ? T['type'] extends 'keyword' | 'text' ? string : T['type'] extends 'integer' | 'long' | 'short' | 'byte' | 'float' | 'double' ? number : T['type'] extends 'boolean' ? boolean : T['type'] extends 'date' | 'date_nanos' ? Date : T['type'] extends 'object' | 'nested' ? T extends {
44
- properties: Record<string, Property>;
45
- } ? {
46
- [K in keyof T['properties']]: MapOpenSearchTypes<T['properties'][K]>;
47
- } : T extends {
48
- dynamic: 'true';
49
- } ? Record<string, unknown> : never : never : T extends Record<string, Property> ? {
50
- [K in keyof T]: MapOpenSearchTypes<T[K]>;
51
- } : never;
40
+ properties: Record<string, Property>;
41
+ } ? { [K in keyof T['properties']]: MapOpenSearchTypes<T['properties'][K]> } : T extends {
42
+ dynamic: 'true';
43
+ } ? Record<string, unknown> : never : never : T extends Record<string, Property> ? { [K in keyof T]: MapOpenSearchTypes<T[K]> } : never;
52
44
  type MapQueryProperties<T extends IndexDefinition> = T extends {
53
- body: {
54
- mappings: {
55
- properties: infer P;
56
- };
45
+ body: {
46
+ mappings: {
47
+ properties: infer P;
57
48
  };
49
+ };
58
50
  } ? MapOpenSearchTypes<P> : never;
59
51
  type Indices = Client['indices'];
60
52
  type TransportRequestOptions = Parameters<Indices['exists']>[1];
61
53
  interface TransportRequestPromise<T> extends Promise<T> {
62
- abort: () => void;
63
- finally(onFinally?: (() => void) | undefined | null): Promise<T>;
54
+ abort: () => void;
55
+ finally(onFinally?: (() => void) | undefined | null): Promise<T>;
64
56
  }
65
57
  type Sort<T> = SortOptions<T> | SortOptions<T>[];
66
58
  type SortOptions<T> = '_score' | '_doc' | {
67
- _doc?: Types.Common.ScoreSort;
68
- _geo_distance?: Types.Common.GeoDistanceSort;
69
- _score?: Types.Common.ScoreSort;
70
- _script?: Types.Common.ScriptSort;
59
+ _doc?: Types.Common.ScoreSort;
60
+ _geo_distance?: Types.Common.GeoDistanceSort;
61
+ _score?: Types.Common.ScoreSort;
62
+ _script?: Types.Common.ScriptSort;
71
63
  } | Record<NestedPaths<T>, Types.Common.FieldSort>;
72
64
  type BuiltinKeys = '_id' | '_index';
73
-
74
- type DocumentFor<T extends IndexDefinition> = {
75
- [P in keyof T['body']['mappings']['properties']]?: MapOpenSearchTypes<T['body']['mappings']['properties'][P]>;
76
- };
77
-
65
+ //#endregion
66
+ //#region src/types/documents.d.ts
67
+ type DocumentFor<T extends IndexDefinition> = { -readonly [P in keyof T['body']['mappings']['properties']]?: MapOpenSearchTypes<T['body']['mappings']['properties'][P]> };
68
+ //#endregion
69
+ //#region src/types/bulk.d.ts
78
70
  type CreateOperation<T extends IndexDefinition> = Omit<WriteOperation<T>, '_id'> & {
79
- _id: Types.Common.Id;
71
+ _id: Types.Common.Id;
80
72
  };
81
73
  type DeleteOperation<T extends IndexDefinition> = OperationBase<T>;
82
74
  type IndexOperation<T extends IndexDefinition> = WriteOperation<T>;
83
75
  type UpdateOperation<T extends IndexDefinition> = Omit<Types.Core_Bulk.UpdateOperation, '_index' | '_id'> & {
84
- _id: Types.Common.Id;
85
- _index?: T['index'];
76
+ _id: Types.Common.Id;
77
+ _index?: T['index'];
86
78
  };
87
79
  type WriteOperation<T extends IndexDefinition> = Omit<Types.Core_Bulk.WriteOperation, '_index'> & {
88
- _index?: T['index'];
80
+ _index?: T['index'];
89
81
  };
90
82
  type OperationBase<T extends IndexDefinition> = Omit<Types.Core_Bulk.OperationBase, '_index'> & {
91
- _index?: T['index'];
83
+ _index?: T['index'];
92
84
  };
93
85
  type OperationContainer<T extends IndexDefinition> = {
94
- create?: CreateOperation<T>;
95
- delete?: DeleteOperation<T>;
96
- index?: IndexOperation<T>;
97
- update?: UpdateOperation<T>;
86
+ create?: CreateOperation<T>;
87
+ delete?: DeleteOperation<T>;
88
+ index?: IndexOperation<T>;
89
+ update?: UpdateOperation<T>;
98
90
  };
99
91
  type UpdateAction<T extends IndexDefinition> = Omit<Types.Core_Bulk.UpdateAction, 'doc' | 'upsert'> & ({
100
- doc: DeepPartial<DocumentFor<T>>;
101
- upsert?: DocumentFor<T>;
92
+ doc: DeepPartial<DocumentFor<T>>;
93
+ upsert?: DocumentFor<T>;
102
94
  } | {
103
- doc?: DeepPartial<DocumentFor<T>>;
104
- upsert: DocumentFor<T>;
95
+ doc?: DeepPartial<DocumentFor<T>>;
96
+ upsert: DocumentFor<T>;
105
97
  });
106
98
  type BulkRequest<T extends IndexDefinition> = Omit<API.Bulk_Request, 'index' | 'body' | '_source_excludes' | '_source_includes'> & {
107
- index: T['index'];
108
- body: BulkRequestBody<T>;
109
- _source_excludes?: NestedLeafPaths<T> | Types.Common.Fields;
110
- _source_includes?: NestedLeafPaths<T> | Types.Common.Fields;
99
+ index: T['index'];
100
+ body: BulkRequestBody<T>;
101
+ _source_excludes?: NestedLeafPaths<T> | Types.Common.Fields;
102
+ _source_includes?: NestedLeafPaths<T> | Types.Common.Fields;
111
103
  };
112
104
  type BulkRequestBody<T extends IndexDefinition> = (OperationContainer<T> | UpdateAction<T> | DocumentFor<T>)[];
113
105
  type ResponseItem<T extends IndexDefinition> = Omit<Types.Core_Bulk.ResponseItem, '_index'> & {
114
- _index: T['index'];
106
+ _index: T['index'];
115
107
  };
116
108
  type CustomOperation = string;
117
109
  type BulkOperation = 'index' | 'update' | 'delete' | 'create' | CustomOperation;
118
110
  type BulkResponseBody<T extends IndexDefinition> = Omit<API.Bulk_ResponseBody, 'items'> & {
119
- items: Record<BulkOperation, ResponseItem<T>>[];
111
+ items: Record<BulkOperation, ResponseItem<T>>[];
120
112
  };
121
113
  type BulkResponse<T extends IndexDefinition> = Omit<API.Bulk_ResponseBody, 'body'> & {
122
- body: BulkResponseBody<T>;
114
+ body: BulkResponseBody<T>;
123
115
  };
124
-
116
+ //#endregion
117
+ //#region src/types/queries.d.ts
125
118
  type BoolQuery<T> = Omit<Types.Common_QueryDsl.BoolQuery, 'must' | 'should' | 'filter' | 'must_not'> & {
126
- must?: QueryContainer<T>[];
127
- should?: QueryContainer<T>[];
128
- filter?: QueryContainer<T>[];
129
- must_not?: QueryContainer<T>[];
119
+ must?: QueryContainer<T>[];
120
+ should?: QueryContainer<T>[];
121
+ filter?: QueryContainer<T>[];
122
+ must_not?: QueryContainer<T>[];
130
123
  };
131
124
  type BoostingQuery<T> = Omit<Types.Common_QueryDsl.BoostingQuery, 'positive' | 'negative'> & {
132
- positive: QueryContainer<T>;
133
- negative: QueryContainer<T>;
125
+ positive: QueryContainer<T>;
126
+ negative: QueryContainer<T>;
134
127
  };
135
128
  type CombinedFieldsQuery<T> = Omit<Types.Common_QueryDsl.CombinedFieldsQuery, 'fields'> & {
136
- fields: NestedPaths<T>[];
129
+ fields: NestedPaths<T>[];
137
130
  };
138
131
  type CommonTermsQuery = Types.Common_QueryDsl.CommonTermsQuery;
139
132
  type ConstantScoreQuery<T> = Omit<Types.Common_QueryDsl.ConstantScoreQuery, 'filter'> & {
140
- filter: QueryContainer<T>;
133
+ filter: QueryContainer<T>;
141
134
  };
142
135
  type DecayFunction = Types.Common_QueryDsl.DecayFunction;
143
136
  type DecayFunctionBase = Types.Common_QueryDsl.DecayFunctionBase;
144
137
  type DisMaxQuery<T> = Omit<Types.Common_QueryDsl.DisMaxQuery, 'queries'> & {
145
- queries: QueryContainer<T>[];
138
+ queries: QueryContainer<T>[];
146
139
  };
147
140
  type DistanceFeatureQuery<T> = Omit<Types.Common_QueryDsl.DistanceFeatureQuery, 'field'> & {
148
- field: NestedPaths<T>;
141
+ field: NestedPaths<T>;
149
142
  };
150
143
  type ExistsQuery<T> = Omit<Types.Common_QueryDsl.ExistsQuery, 'field'> & {
151
- field: NestedPaths<T>;
144
+ field: NestedPaths<T>;
152
145
  };
153
146
  type FieldAndFormat<T> = Omit<Types.Common_QueryDsl.FieldAndFormat, 'field'> & {
154
- field: NestedPaths<T>;
147
+ field: NestedPaths<T>;
155
148
  };
156
- type FieldQuery<T, K> = Partial<Record<NestedLeafPaths<T> | BuiltinKeys, K>>;
149
+ type FieldQuery<T, K$1> = Partial<Record<NestedLeafPaths<T> | BuiltinKeys, K$1>>;
157
150
  type FieldValueFactorScoreFunction<T> = Omit<Types.Common_QueryDsl.FieldValueFactorScoreFunction, 'field'> & {
158
- field: NestedPaths<T>;
151
+ field: NestedPaths<T>;
159
152
  };
160
153
  type FunctionBoostMode = Types.Common_QueryDsl.FunctionBoostMode;
161
154
  type FunctionScoreQuery<T> = Omit<Types.Common_QueryDsl.FunctionScoreQuery, 'query'> & {
162
- query?: QueryContainer<T> | undefined;
155
+ query?: QueryContainer<T> | undefined;
163
156
  };
164
157
  type FuzzyQuery = Types.Common_QueryDsl.FuzzyQuery;
165
158
  type GeoBoundingBoxQuery = Types.Common_QueryDsl.GeoBoundingBoxQuery;
166
159
  type GeoDistanceQuery = Types.Common_QueryDsl.GeoDistanceQuery;
167
160
  type GeoExecution = Types.Common_QueryDsl.GeoExecution;
168
161
  type GeoPolygonQuery<T> = Omit<Types.Common_QueryDsl.GeoPolygonQuery, 'field'> & {
169
- field: NestedPaths<T>;
162
+ field: NestedPaths<T>;
170
163
  };
171
164
  type GeoShapeQuery<T> = Omit<Types.Common_QueryDsl.GeoShapeQuery, 'ignore_unmapped' | 'field'> & {
172
- field: NestedPaths<T>;
165
+ field: NestedPaths<T>;
173
166
  };
174
167
  type GeoValidationMethod = Types.Common_QueryDsl.GeoValidationMethod;
175
168
  type HasChildQuery<T> = Omit<Types.Common_QueryDsl.HasChildQuery, 'query'> & {
176
- query: QueryContainer<T>;
169
+ query: QueryContainer<T>;
177
170
  };
178
171
  type HasParentQuery<T> = Omit<Types.Common_QueryDsl.HasParentQuery, 'query'> & {
179
- query: QueryContainer<T>;
172
+ query: QueryContainer<T>;
180
173
  };
181
174
  type HybridQuery<T> = Omit<Types.Common_QueryDsl.HybridQuery, 'queries'> & {
182
- queries?: QueryContainer<T>[];
175
+ queries?: QueryContainer<T>[];
183
176
  };
184
177
  type IdsQuery = Types.Common_QueryDsl.IdsQuery;
185
178
  type IntervalsQuery = Types.Common_QueryDsl.IntervalsQuery;
186
179
  type KnnQuery<T> = Omit<Types.Common_QueryDsl.KnnQuery, 'filter'> & {
187
- filter?: QueryContainer<T>[];
180
+ filter?: QueryContainer<T>[];
188
181
  };
189
182
  type Like = Types.Common_QueryDsl.Like;
190
183
  type LikeDocument = Types.Common_QueryDsl.LikeDocument;
191
184
  type MatchAllQuery = Types.Common_QueryDsl.MatchAllQuery;
192
185
  type MatchBoolPrefixQuery<T> = Omit<Types.Common_QueryDsl.MatchBoolPrefixQuery, 'query' | 'fields'> & {
193
- fields: NestedPaths<T>[];
194
- query: string;
186
+ fields: NestedPaths<T>[];
187
+ query: string;
195
188
  };
196
189
  type MatchNoneQuery = Types.Common_QueryDsl.MatchNoneQuery;
197
190
  type MatchPhrasePrefixQuery<T> = Omit<Types.Common_QueryDsl.MatchPhrasePrefixQuery, 'query' | 'field'> & {
198
- field: NestedPaths<T>;
199
- query: string;
191
+ field: NestedPaths<T>;
192
+ query: string;
200
193
  };
201
194
  type MatchPhraseQuery<T> = Omit<Types.Common_QueryDsl.MatchPhraseQuery, 'query' | 'field'> & {
202
- field: NestedPaths<T>;
203
- query: string;
195
+ field: NestedPaths<T>;
196
+ query: string;
204
197
  };
205
198
  type MatchQuery = FieldValue | Types.Common_QueryDsl.MatchQuery;
206
199
  type MoreLikeThisQuery<T> = Omit<Types.Common_QueryDsl.MoreLikeThisQuery, 'fields'> & {
207
- fields?: NestedPaths<T>[];
200
+ fields?: NestedPaths<T>[];
208
201
  };
209
202
  type MultiMatchQuery<T> = Omit<Types.Common_QueryDsl.MultiMatchQuery, 'fields'> & {
210
- fields?: NestedPaths<T>[];
203
+ fields?: NestedPaths<T>[];
211
204
  };
212
205
  type NestedQuery<T> = Omit<Types.Common_QueryDsl.NestedQuery, 'query' | 'path'> & {
213
- path: NestedPaths<T>;
214
- query: QueryContainer<T>;
206
+ path: NestedPaths<T>;
207
+ query: QueryContainer<T>;
215
208
  };
216
209
  type NeuralQuery<T> = Omit<Types.Common_QueryDsl.NeuralQuery, 'filter'> & {
217
- filter?: QueryContainer<T>;
210
+ filter?: QueryContainer<T>;
218
211
  };
219
212
  type NumberRangeQueryParameters<T> = Omit<Types.Common_QueryDsl.NumberRangeQueryParameters, 'field'> & {
220
- field: NestedPaths<T>;
213
+ field: NestedPaths<T>;
221
214
  };
222
215
  type ParentIdQuery = Types.Common_QueryDsl.ParentIdQuery;
223
216
  type PercolateQuery<T> = Omit<Types.Common_QueryDsl.PercolateQuery, 'field'> & {
224
- field: NestedPaths<T>;
217
+ field: NestedPaths<T>;
225
218
  };
226
219
  type PinnedQuery = Types.Common_QueryDsl.PinnedQuery;
227
220
  type PrefixQuery<T> = Omit<Types.Common_QueryDsl.PrefixQuery, 'value' | 'field'> & {
228
- field: NestedPaths<T>;
229
- value: MapOpenSearchTypes<T>;
221
+ field: NestedPaths<T>;
222
+ value: MapOpenSearchTypes<T>;
230
223
  };
231
224
  type QueryContainer<T> = Omit<Types.Common_QueryDsl.QueryContainer, 'bool' | 'boosting' | 'combined_fields' | 'common' | 'constant_score' | 'dis_max' | 'distance_feature' | 'exists' | 'function_score' | 'fuzzy' | 'geo_bounding_box' | 'geo_distance' | 'geo_polygon' | 'geo_shape' | 'has_child' | 'has_parent' | 'hybrid' | 'ids' | 'intervals' | 'knn' | 'match' | 'match_all' | 'match_bool_prefix' | 'match_none' | 'match_phrase' | 'match_phrase_prefix' | 'more_like_this' | 'multi_match' | 'nested' | 'neural' | 'parent_id' | 'percolate' | 'pinned' | 'prefix' | 'query_string' | 'range' | 'rank_feature' | 'regexp' | 'script' | 'script_score' | 'simple_query_string' | 'span_containing' | 'span_first' | 'span_multi' | 'span_near' | 'span_not' | 'span_or' | 'span_term' | 'span_within' | 'term' | 'terms' | 'terms_set' | 'type' | 'wildcard' | 'wrapper' | 'xy_shape'> & {
232
- bool?: BoolQuery<T>;
233
- boosting?: BoostingQuery<T>;
234
- combined_fields?: CombinedFieldsQuery<T>;
235
- common?: FieldQuery<T, Types.Common_QueryDsl.CommonTermsQuery>;
236
- constant_score?: ConstantScoreQuery<T>;
237
- dis_max?: DisMaxQuery<T>;
238
- distance_feature?: DistanceFeatureQuery<T>;
239
- exists?: ExistsQuery<T>;
240
- function_score?: FunctionScoreQuery<T>;
241
- fuzzy?: FieldQuery<T, Types.Common_QueryDsl.FuzzyQuery>;
242
- geo_bounding_box?: GeoBoundingBoxQuery;
243
- geo_distance?: GeoDistanceQuery;
244
- geo_polygon?: GeoPolygonQuery<T>;
245
- geo_shape?: GeoShapeQuery<T>;
246
- has_child?: HasChildQuery<T>;
247
- has_parent?: HasParentQuery<T>;
248
- hybrid?: HybridQuery<T>;
249
- ids?: IdsQuery;
250
- intervals?: FieldQuery<T, IntervalsQuery>;
251
- knn?: FieldQuery<T, KnnQuery<T>>;
252
- match?: FieldQuery<T, MatchQuery>;
253
- match_all?: MatchAllQuery;
254
- match_bool_prefix?: FieldQuery<T, MatchBoolPrefixQuery<T>>;
255
- match_none?: MatchNoneQuery;
256
- match_phrase?: FieldQuery<T, MatchPhraseQuery<T>>;
257
- match_phrase_prefix?: FieldQuery<T, MatchPhrasePrefixQuery<T>>;
258
- more_like_this?: MoreLikeThisQuery<T>;
259
- multi_match?: MultiMatchQuery<T>;
260
- nested?: NestedQuery<T>;
261
- neural?: FieldQuery<T, NeuralQuery<T>>;
262
- parent_id?: ParentIdQuery;
263
- percolate?: PercolateQuery<T>;
264
- pinned?: PinnedQuery;
265
- prefix?: FieldQuery<T, PrefixQuery<T>>;
266
- query_string?: QueryStringQuery;
267
- range?: FieldQuery<T, RangeQuery<T>>;
268
- rank_feature?: RankFeatureQuery;
269
- regexp?: FieldQuery<T, RegexpQuery<T>>;
270
- script?: ScriptQuery;
271
- script_score?: ScriptScoreQuery<T>;
272
- simple_query_string?: SimpleQueryStringQuery<T>;
273
- span_containing?: SpanContainingQuery<T>;
274
- span_first?: SpanFirstQuery<T>;
275
- span_multi?: SpanMultiTermQuery<T>;
276
- span_near?: SpanNearQuery<T>;
277
- span_not?: SpanNotQuery<T>;
278
- span_or?: SpanOrQuery<T>;
279
- span_term?: FieldQuery<T, SpanTermQuery<T>>;
280
- span_within?: SpanWithinQuery<T>;
281
- term?: FieldQuery<T, TermQuery<T>>;
282
- terms?: TermsQuery<T>;
283
- terms_set?: FieldQuery<T, TermsSetQuery<T>>;
284
- type?: TypeQuery;
285
- wildcard?: FieldQuery<T, WildcardQuery<T>>;
286
- wrapper?: WrapperQuery;
287
- xy_shape?: XyShapeQuery<T>;
225
+ bool?: BoolQuery<T>;
226
+ boosting?: BoostingQuery<T>;
227
+ combined_fields?: CombinedFieldsQuery<T>;
228
+ common?: FieldQuery<T, Types.Common_QueryDsl.CommonTermsQuery>;
229
+ constant_score?: ConstantScoreQuery<T>;
230
+ dis_max?: DisMaxQuery<T>;
231
+ distance_feature?: DistanceFeatureQuery<T>;
232
+ exists?: ExistsQuery<T>;
233
+ function_score?: FunctionScoreQuery<T>;
234
+ fuzzy?: FieldQuery<T, Types.Common_QueryDsl.FuzzyQuery>;
235
+ geo_bounding_box?: GeoBoundingBoxQuery;
236
+ geo_distance?: GeoDistanceQuery;
237
+ geo_polygon?: GeoPolygonQuery<T>;
238
+ geo_shape?: GeoShapeQuery<T>;
239
+ has_child?: HasChildQuery<T>;
240
+ has_parent?: HasParentQuery<T>;
241
+ hybrid?: HybridQuery<T>;
242
+ ids?: IdsQuery;
243
+ intervals?: FieldQuery<T, IntervalsQuery>;
244
+ knn?: FieldQuery<T, KnnQuery<T>>;
245
+ match?: FieldQuery<T, MatchQuery>;
246
+ match_all?: MatchAllQuery;
247
+ match_bool_prefix?: FieldQuery<T, MatchBoolPrefixQuery<T>>;
248
+ match_none?: MatchNoneQuery;
249
+ match_phrase?: FieldQuery<T, MatchPhraseQuery<T>>;
250
+ match_phrase_prefix?: FieldQuery<T, MatchPhrasePrefixQuery<T>>;
251
+ more_like_this?: MoreLikeThisQuery<T>;
252
+ multi_match?: MultiMatchQuery<T>;
253
+ nested?: NestedQuery<T>;
254
+ neural?: FieldQuery<T, NeuralQuery<T>>;
255
+ parent_id?: ParentIdQuery;
256
+ percolate?: PercolateQuery<T>;
257
+ pinned?: PinnedQuery;
258
+ prefix?: FieldQuery<T, PrefixQuery<T>>;
259
+ query_string?: QueryStringQuery;
260
+ range?: FieldQuery<T, RangeQuery<T>>;
261
+ rank_feature?: RankFeatureQuery;
262
+ regexp?: FieldQuery<T, RegexpQuery<T>>;
263
+ script?: ScriptQuery;
264
+ script_score?: ScriptScoreQuery<T>;
265
+ simple_query_string?: SimpleQueryStringQuery<T>;
266
+ span_containing?: SpanContainingQuery<T>;
267
+ span_first?: SpanFirstQuery<T>;
268
+ span_multi?: SpanMultiTermQuery<T>;
269
+ span_near?: SpanNearQuery<T>;
270
+ span_not?: SpanNotQuery<T>;
271
+ span_or?: SpanOrQuery<T>;
272
+ span_term?: FieldQuery<T, SpanTermQuery<T>>;
273
+ span_within?: SpanWithinQuery<T>;
274
+ term?: FieldQuery<T, TermQuery<T>>;
275
+ terms?: TermsQuery<T>;
276
+ terms_set?: FieldQuery<T, TermsSetQuery<T>>;
277
+ type?: TypeQuery;
278
+ wildcard?: FieldQuery<T, WildcardQuery<T>>;
279
+ wrapper?: WrapperQuery;
280
+ xy_shape?: XyShapeQuery<T>;
288
281
  };
289
282
  type QueryStringQuery = Types.Common_QueryDsl.QueryStringQuery;
290
283
  type RangeQuery<T> = Omit<Types.Common_QueryDsl.RangeQuery, 'field'> & {
291
- field: NestedPaths<T>;
284
+ field: NestedPaths<T>;
292
285
  };
293
286
  type RankFeatureQuery = Types.Common_QueryDsl.RankFeatureQuery;
294
287
  type RegexpQuery<T> = Omit<Types.Common_QueryDsl.RegexpQuery, 'value' | 'field'> & {
295
- field: NestedPaths<T>;
296
- value: MapOpenSearchTypes<T>;
288
+ field: NestedPaths<T>;
289
+ value: MapOpenSearchTypes<T>;
297
290
  };
298
291
  type ScriptQuery = Types.Common_QueryDsl.ScriptQuery;
299
292
  type ScriptScoreQuery<T> = Omit<Types.Common_QueryDsl.ScriptScoreQuery, 'query'> & {
300
- query?: QueryContainer<T>;
293
+ query?: QueryContainer<T>;
301
294
  };
302
295
  type SimpleQueryStringQuery<T> = Omit<Types.Common_QueryDsl.SimpleQueryStringQuery, 'fields'> & {
303
- fields: NestedLeafPaths<T>[];
296
+ fields: NestedLeafPaths<T>[];
304
297
  };
305
298
  type SpanQuery<T> = Omit<Types.Common_QueryDsl.SpanQuery, 'field_masking_span' | 'span_containing' | 'span_first' | 'span_multi' | 'span_near' | 'span_not' | 'span_or' | 'span_term' | 'span_within'> & {
306
- field_masking_span?: SpanFieldMaskingQuery<T>;
307
- span_containing?: SpanContainingQuery<T>;
308
- span_first?: SpanFirstQuery<T>;
309
- span_multi?: SpanMultiTermQuery<T>;
310
- span_near?: SpanNearQuery<T>;
311
- span_not?: SpanNotQuery<T>;
312
- span_or?: SpanOrQuery<T>;
313
- span_term?: Record<NestedPaths<T>, SpanTermQuery<T>>;
314
- span_within?: SpanWithinQuery<T>;
299
+ field_masking_span?: SpanFieldMaskingQuery<T>;
300
+ span_containing?: SpanContainingQuery<T>;
301
+ span_first?: SpanFirstQuery<T>;
302
+ span_multi?: SpanMultiTermQuery<T>;
303
+ span_near?: SpanNearQuery<T>;
304
+ span_not?: SpanNotQuery<T>;
305
+ span_or?: SpanOrQuery<T>;
306
+ span_term?: Record<NestedPaths<T>, SpanTermQuery<T>>;
307
+ span_within?: SpanWithinQuery<T>;
315
308
  };
316
309
  type SpanContainingQuery<T> = Omit<Types.Common_QueryDsl.SpanContainingQuery, 'big' | 'little'> & {
317
- big: SpanQuery<T>;
318
- little: SpanQuery<T>;
310
+ big: SpanQuery<T>;
311
+ little: SpanQuery<T>;
319
312
  };
320
313
  type SpanFieldMaskingQuery<T> = Omit<Types.Common_QueryDsl.SpanFieldMaskingQuery, 'field' | 'query'> & {
321
- field: NestedPaths<T>;
322
- query: SpanQuery<T>;
314
+ field: NestedPaths<T>;
315
+ query: SpanQuery<T>;
323
316
  };
324
317
  type SpanFirstQuery<T> = Omit<Types.Common_QueryDsl.SpanFirstQuery, 'match'> & {
325
- match: SpanQuery<T>;
318
+ match: SpanQuery<T>;
326
319
  };
327
320
  type SpanMultiTermQuery<T> = Omit<Types.Common_QueryDsl.SpanMultiTermQuery, 'match'> & {
328
- match: QueryContainer<T>;
321
+ match: QueryContainer<T>;
329
322
  };
330
323
  type SpanNearQuery<T> = Omit<Types.Common_QueryDsl.SpanNearQuery, 'clauses'> & {
331
- clauses: SpanQuery<T>[];
324
+ clauses: SpanQuery<T>[];
332
325
  };
333
326
  type SpanNotQuery<T> = Omit<Types.Common_QueryDsl.SpanNotQuery, 'include' | 'exclude'> & {
334
- include: SpanQuery<T>;
335
- exclude: SpanQuery<T>;
327
+ include: SpanQuery<T>;
328
+ exclude: SpanQuery<T>;
336
329
  };
337
330
  type SpanOrQuery<T> = Omit<Types.Common_QueryDsl.SpanOrQuery, 'clauses'> & {
338
- clauses: SpanQuery<T>[];
331
+ clauses: SpanQuery<T>[];
339
332
  };
340
333
  type SpanTermQuery<T> = Omit<Types.Common_QueryDsl.SpanTermQuery, 'value' | 'field'> & {
341
- field: NestedPaths<T>;
342
- value: MapOpenSearchTypes<T>;
334
+ field: NestedPaths<T>;
335
+ value: MapOpenSearchTypes<T>;
343
336
  };
344
337
  type SpanWithinQuery<T> = Omit<Types.Common_QueryDsl.SpanWithinQuery, 'big' | 'little'> & {
345
- big: SpanQuery<T>;
346
- little: SpanQuery<T>;
338
+ big: SpanQuery<T>;
339
+ little: SpanQuery<T>;
347
340
  };
348
341
  type TermQuery<T> = Omit<Types.Common_QueryDsl.TermQuery, 'value' | 'field'> & {
349
- field: NestedPaths<T>;
350
- value: MapOpenSearchTypes<T>;
342
+ field: NestedPaths<T>;
343
+ value: MapOpenSearchTypes<T>;
351
344
  };
352
345
  type TermsQuery<T> = Omit<Types.Common_QueryDsl.TermsQuery, 'terms' | 'field'> & {
353
- field: NestedPaths<T>;
354
- terms: FieldValue[];
346
+ field: NestedPaths<T>;
347
+ terms: FieldValue[];
355
348
  };
356
349
  type TermsSetQuery<T> = Omit<Types.Common_QueryDsl.TermsSetQuery, 'terms' | 'field'> & {
357
- field: NestedPaths<T>;
358
- terms: FieldValue[];
350
+ field: NestedPaths<T>;
351
+ terms: FieldValue[];
359
352
  };
360
353
  type TypeQuery = Types.Common_QueryDsl.TypeQuery;
361
354
  type WildcardQuery<T> = Omit<Types.Common_QueryDsl.WildcardQuery, 'value' | 'field'> & {
362
- field: NestedPaths<T>;
363
- value: MapOpenSearchTypes<T>;
355
+ field: NestedPaths<T>;
356
+ value: MapOpenSearchTypes<T>;
364
357
  };
365
358
  type WrapperQuery = Types.Common_QueryDsl.WrapperQuery;
366
359
  type XyShapeQuery<T> = Omit<Types.Common_QueryDsl.XyShapeQuery, 'field'> & {
367
- field: NestedPaths<T>;
360
+ field: NestedPaths<T>;
368
361
  };
369
-
362
+ //#endregion
363
+ //#region src/types/core_search.d.ts
370
364
  type FieldCollapse<T> = Omit<Types.Core_Search.FieldCollapse, 'field'> & {
371
- field: NestedPaths<T>;
365
+ field: NestedPaths<T>;
372
366
  };
373
367
  type Highlight<T> = Omit<Types.Core_Search.Highlight, 'fields'> & {
374
- fields: FieldQuery<T, Types.Core_Search.HighlightField>;
368
+ fields: FieldQuery<T, Types.Core_Search.HighlightField>;
375
369
  };
376
370
  type Hit<T extends IndexDefinition> = Omit<Types.Core_Search.Hit, '_source'> & {
377
- _source: DocumentFor<T>;
371
+ _source: DocumentFor<T>;
378
372
  };
379
373
  type HitsMetadata<T extends IndexDefinition> = Omit<Types.Core_Search.HitsMetadata, 'hits'> & {
380
- hits: Hit<T>[];
374
+ hits: Hit<T>[];
381
375
  };
382
376
  type SourceConfig<T> = boolean | SourceFilter<T>;
383
377
  type SourceFilter<T> = NestedPaths<T>[] | {
384
- excludes?: NestedPaths<T>[];
385
- includes?: NestedPaths<T>[];
378
+ excludes?: NestedPaths<T>[];
379
+ includes?: NestedPaths<T>[];
386
380
  };
387
-
381
+ //#endregion
382
+ //#region src/types/search.d.ts
388
383
  type SearchRequest<T extends IndexDefinition> = Omit<API.Search_Request, 'body' | 'index'> & {
389
- index: T['index'];
390
- body: SearchRequestBody<T>;
384
+ index: T['index'];
385
+ body: SearchRequestBody<T>;
391
386
  };
392
387
  type SearchRequestBody<T extends IndexDefinition> = Omit<API.Search_RequestBody, 'query' | 'collapse' | 'highlight' | 'sort' | '_source'> & {
393
- query?: QueryContainer<MapQueryProperties<T>>;
394
- collapse?: FieldCollapse<MapQueryProperties<T>>;
395
- highlight?: Highlight<MapQueryProperties<T>>;
396
- sort?: Sort<MapQueryProperties<T>>;
397
- _source?: SourceConfig<MapQueryProperties<T>>;
388
+ query?: QueryContainer<MapQueryProperties<T>>;
389
+ collapse?: FieldCollapse<MapQueryProperties<T>>;
390
+ highlight?: Highlight<MapQueryProperties<T>>;
391
+ sort?: Sort<MapQueryProperties<T>>;
392
+ _source?: SourceConfig<MapQueryProperties<T>>;
398
393
  };
399
394
  type SearchResponse<T extends IndexDefinition> = Omit<API.Search_Response, 'body'> & {
400
- body: SearchResponseBody<T>;
395
+ body: SearchResponseBody<T>;
401
396
  };
402
397
  type SearchResponseBody<T extends IndexDefinition> = Omit<API.Search_ResponseBody, 'hits'> & {
403
- hits: HitsMetadata<T>;
398
+ hits: HitsMetadata<T>;
404
399
  };
405
-
400
+ //#endregion
401
+ //#region src/types/indx.d.ts
406
402
  interface IndexRequest<T> extends Omit<API.Index_Request, 'body' | 'index'> {
407
- index: T extends {
408
- index: infer I;
409
- } ? I : never;
410
- body: T extends {
411
- body: {
412
- mappings: {
413
- properties: infer P;
414
- };
415
- };
416
- } ? MapOpenSearchTypes<P> : never;
417
- }
418
- interface IndexResponse extends API.Index_Response {
403
+ index: T extends {
404
+ index: infer I;
405
+ } ? I : never;
406
+ body: T extends {
407
+ body: {
408
+ mappings: {
409
+ properties: infer P;
410
+ };
411
+ };
412
+ } ? MapOpenSearchTypes<P> : never;
419
413
  }
414
+ interface IndexResponse extends API.Index_Response {}
420
415
  type IndicesExistsRequest<T extends IndexDefinition> = Omit<API.Indices_Exists_Request, 'index'> & {
421
- index: Extract<T['index'], string>;
416
+ index: Extract<T['index'], string>;
422
417
  };
423
-
418
+ //#endregion
419
+ //#region src/client.d.ts
424
420
  type TypedIndices = Omit<Indices, 'exists'> & {
425
- exists<T extends IndexDefinition>(params: IndicesExistsRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<API.Indices_Exists_Response>;
421
+ exists<T extends IndexDefinition>(params: IndicesExistsRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<API.Indices_Exists_Response>;
426
422
  };
427
- /**
428
- * ✅ Constructor type that ensures `new OpenSearchClient()` works.
429
- * - This type is necessary because `OpenSearchClient` is actually a function (not a class).
430
- */
431
- type OpenSearchClientConstructor = new (...args: ConstructorParameters<typeof Client>) => OpenSearchClient;
432
423
  /**
433
424
  * ✅ Custom interface that extends `Client`, but replaces the `search()` method signature.
434
425
  * - Uses `Omit<Client, "search">` to remove `search()` from `Client`.
435
426
  * - Defines a new `search<T>()` method with stricter type safety.
436
427
  */
437
428
  interface OpenSearchClient extends Omit<Client, 'search' | 'index' | 'bulk' | 'indices'> {
438
- search<T extends IndexDefinition>(params: SearchRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<SearchResponse<T>>;
439
- index<T extends IndexDefinition>(params: IndexRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<API.Index_Response>;
440
- bulk<T extends IndexDefinition>(params: BulkRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<BulkResponse<T>>;
441
- indices: TypedIndices;
429
+ search<T extends IndexDefinition>(params: SearchRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<SearchResponse<T>>;
430
+ index<T extends IndexDefinition>(params: IndexRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<API.Index_Response>;
431
+ bulk<T extends IndexDefinition>(params: BulkRequest<T>, options?: TransportRequestOptions): TransportRequestPromise<BulkResponse<T>>;
432
+ indices: TypedIndices;
442
433
  }
434
+ /**
435
+ * ✅ Constructor type that ensures `new OpenSearchClient()` works.
436
+ * - This type is necessary because `OpenSearchClient` is actually a function (not a class).
437
+ */
438
+ type OpenSearchClientConstructor = new (...args: ConstructorParameters<typeof Client>) => OpenSearchClient;
443
439
  /**
444
440
  * ✅ A function that behaves like a class constructor.
445
441
  * - Instantiates a new `Client` internally.
@@ -447,7 +443,8 @@ interface OpenSearchClient extends Omit<Client, 'search' | 'index' | 'bulk' | 'i
447
443
  * - The `as unknown as` trick ensures `new OpenSearchClient()` is valid.
448
444
  */
449
445
  declare const OpenSearchClient: OpenSearchClientConstructor;
450
-
446
+ //#endregion
447
+ //#region src/helpers.d.ts
451
448
  type IdFunction<T extends IndexDefinition> = (doc: DocumentFor<T>) => Types.Common.Id;
452
449
  /**
453
450
  * Constructs a bulk request payload for indexing documents.
@@ -501,5 +498,6 @@ declare function bulkUpdate<T extends IndexDefinition>(index: T['index'], update
501
498
  * @returns A BulkRequest payload for delete operations.
502
499
  */
503
500
  declare function bulkDelete<T extends IndexDefinition>(index: T['index'], ids: Types.Common.Id[]): BulkRequest<T>;
504
-
505
- export { type BoolQuery, type BoostingQuery, type BulkRequest, type BulkResponse, type CombinedFieldsQuery, type CommonTermsQuery, type ConstantScoreQuery, type DecayFunction, type DecayFunctionBase, type DeepPartial, type DisMaxQuery, type DistanceFeatureQuery, type DocumentFor, type ExistsQuery, type FieldAndFormat, type FieldQuery, type FieldValueFactorScoreFunction, type FunctionBoostMode, type FunctionScoreQuery, type FuzzyQuery, type GeoBoundingBoxQuery, type GeoDistanceQuery, type GeoExecution, type GeoPolygonQuery, type GeoShapeQuery, type GeoValidationMethod, type HasChildQuery, type HasParentQuery, type HybridQuery, type IdFunction, type IdsQuery, type IndexDefinition, type IndexRequest, type IndexResponse, type IndicesCreateRequestBody, type IntervalsQuery, type KnnQuery, type Like, type LikeDocument, type MatchAllQuery, type MatchBoolPrefixQuery, type MatchNoneQuery, type MatchPhrasePrefixQuery, type MatchPhraseQuery, type MatchQuery, type MoreLikeThisQuery, type MultiMatchQuery, type NestedQuery, type NeuralQuery, type NumberRangeQueryParameters, OpenSearchClient, type ParentIdQuery, type PercolateQuery, type PinnedQuery, type PrefixQuery, type Primitive, type Property, type QueryContainer, type QueryStringQuery, type RangeQuery, type RankFeatureQuery, type RegexpQuery, type ScriptQuery, type ScriptScoreQuery, type SearchRequest, type SearchResponse, type SimpleQueryStringQuery, type SpanContainingQuery, type SpanFieldMaskingQuery, type SpanFirstQuery, type SpanMultiTermQuery, type SpanNearQuery, type SpanNotQuery, type SpanOrQuery, type SpanQuery, type SpanTermQuery, type SpanWithinQuery, type TermQuery, type TermsQuery, type TermsSetQuery, type TypeMapping, type TypeQuery, type UpdateAction, type WildcardQuery, type WrapperQuery, type XyShapeQuery, bulkCreate, bulkDelete, bulkIndex, bulkUpdate };
501
+ //#endregion
502
+ export { BoolQuery, BoostingQuery, type BulkRequest, type BulkResponse, CombinedFieldsQuery, CommonTermsQuery, ConstantScoreQuery, DecayFunction, DecayFunctionBase, type DeepPartial, DisMaxQuery, DistanceFeatureQuery, type DocumentFor, ExistsQuery, FieldAndFormat, FieldQuery, FieldValueFactorScoreFunction, FunctionBoostMode, FunctionScoreQuery, FuzzyQuery, GeoBoundingBoxQuery, GeoDistanceQuery, GeoExecution, GeoPolygonQuery, GeoShapeQuery, GeoValidationMethod, HasChildQuery, HasParentQuery, HybridQuery, IdFunction, IdsQuery, type IndexDefinition, type IndexRequest, type IndexResponse, type IndicesCreateRequestBody, IntervalsQuery, KnnQuery, Like, LikeDocument, MatchAllQuery, MatchBoolPrefixQuery, MatchNoneQuery, MatchPhrasePrefixQuery, MatchPhraseQuery, MatchQuery, MoreLikeThisQuery, MultiMatchQuery, NestedQuery, NeuralQuery, NumberRangeQueryParameters, OpenSearchClient, ParentIdQuery, PercolateQuery, PinnedQuery, PrefixQuery, type Primitive, type Property, QueryContainer, QueryStringQuery, RangeQuery, RankFeatureQuery, RegexpQuery, ScriptQuery, ScriptScoreQuery, type SearchRequest, type SearchResponse, SimpleQueryStringQuery, SpanContainingQuery, SpanFieldMaskingQuery, SpanFirstQuery, SpanMultiTermQuery, SpanNearQuery, SpanNotQuery, SpanOrQuery, SpanQuery, SpanTermQuery, SpanWithinQuery, TermQuery, TermsQuery, TermsSetQuery, type TypeMapping, TypeQuery, type UpdateAction, WildcardQuery, WrapperQuery, XyShapeQuery, bulkCreate, bulkDelete, bulkIndex, bulkUpdate };
503
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/utilityTypes.ts","../src/types/common.ts","../src/types/documents.ts","../src/types/bulk.ts","../src/types/queries.ts","../src/types/core_search.ts","../src/types/search.ts","../src/types/indx.ts","../src/client.ts","../src/helpers.ts"],"sourcesContent":[],"mappings":"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CF9SU,CAAA;EADuB,MAAA,CAAA,EEgTpD,WFhToD,CEgTxC,CFhTwC,CAAA;EAAkB,GAAA,CAAA,EEiTzE,QFjTyE;cEkTnE,WAAW,GAAG;QACpB,WAAW,GAAG,SAAS;UACrB,WAAW,GAAG;EDlTZ,SAAA,CAAA,ECmTE,aDnTa;EAAW,iBAAA,CAAA,ECoThB,UDpTgB,CCoTL,CDpTK,ECoTF,oBDpTE,CCoTmB,CDpTnB,CAAA,CAAA;EACrB,UAAA,CAAA,ECoTF,cDpTE;EAAf,YAAA,CAAA,ECqTe,UDrTf,CCqT0B,CDrT1B,ECqT6B,gBDrT7B,CCqT8C,CDrT9C,CAAA,CAAA;EADuD,mBAAA,CAAA,ECuTjC,UDvTiC,CCuTtB,CDvTsB,ECuTnB,sBDvTmB,CCuTI,CDvTJ,CAAA,CAAA;EAIlD,cAAa,CAAA,ECoTD,iBDpTC,CCoTiB,CDpTjB,CAAA;EAAE,WAAA,CAAA,ECqTN,eDrTM,CCqTU,CDrTV,CAAA;EAEV,MAAA,CAAA,ECoTD,WDpTgB,CCoTJ,CDpTI,CAAA;EAAW,MAAA,CAAA,ECqT3B,UDrT2B,CCqThB,CDrTgB,ECqTb,WDrTa,CCqTD,CDrTC,CAAA,CAAA;EAAiC,SAAA,CAAA,ECsTzD,aDtTyD;EAAd,SAAA,CAAA,ECuT3C,cDvT2C,CCuT5B,CDvT4B,CAAA;EAAa,MAAA,CAAA,ECwT3D,WDxT2D;EAC1D,MAAA,CAAA,ECwTD,UDxTe,CCwTJ,CDxTI,ECwTD,WDxTC,CCwTW,CDxTX,CAAA,CAAA;EAAW,YAAA,CAAA,ECyTpB,gBDzToB;EAAkC,KAAA,CAAA,EC0T7D,UD1T6D,CC0TlD,CD1TkD,EC0T/C,UD1T+C,CC0TpC,CD1ToC,CAAA,CAAA;EAAf,YAAA,CAAA,EC2TvC,gBD3TuC;EAAc,MAAA,CAAA,EC4T3D,UD5T2D,CC4ThD,CD5TgD,EC4T7C,WD5T6C,CC4TjC,CD5TiC,CAAA,CAAA;EAC1D,MAAA,CAAA,EC4TD,WD5TgB;EAAW,YAAA,CAAA,EC6TrB,gBD7TqB,CC6TJ,CD7TI,CAAA;EACpC,mBAAgB,CAAA,EC6TM,sBD7TN,CC6T6B,CD7T7B,CAAA;EADuC,eAAA,CAAA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"}
package/dist/index.mjs ADDED
@@ -0,0 +1,99 @@
1
+ import { Client } from "@opensearch-project/opensearch";
2
+
3
+ //#region src/client.ts
4
+ /**
5
+ * ✅ A function that behaves like a class constructor.
6
+ * - Instantiates a new `Client` internally.
7
+ * - Casts the instance to `OpenSearchClient` so TypeScript recognizes the new `search<T>()` signature.
8
+ * - The `as unknown as` trick ensures `new OpenSearchClient()` is valid.
9
+ */
10
+ const OpenSearchClient = function(...args) {
11
+ return new Client(...args);
12
+ };
13
+
14
+ //#endregion
15
+ //#region src/helpers.ts
16
+ /**
17
+ * Constructs a bulk request payload for indexing documents.
18
+ *
19
+ * For each document in the provided array, this helper creates a two‑line bulk operation:
20
+ * 1. An action object for an index operation. If an id generator is provided, its result is used as _id.
21
+ * 2. The document itself.
22
+ *
23
+ * @param index - The name of the index.
24
+ * @param docs - An array of documents to insert.
25
+ * @param idFn - Optional function that returns an _id for a given document.
26
+ * @returns A BulkRequest payload for insert operations.
27
+ */
28
+ function bulkIndex(index, docs, idFn) {
29
+ return {
30
+ index,
31
+ body: docs.flatMap((doc) => {
32
+ return [{ index: idFn ? { _id: idFn(doc) } : {} }, doc];
33
+ })
34
+ };
35
+ }
36
+ /**
37
+ * Constructs a bulk request payload for creating documents.
38
+ *
39
+ * For each document in the provided array, this helper creates a two‑line bulk operation:
40
+ * 1. An action object for a create operation with a generated _id.
41
+ * 2. The document itself.
42
+ *
43
+ * @param index - The name of the index.
44
+ * @param docs - An array of documents to create.
45
+ * @param idFn - A function that returns a unique _id for each document.
46
+ * @returns A BulkRequest payload for create operations.
47
+ */
48
+ function bulkCreate(index, docs, idFn) {
49
+ return {
50
+ index,
51
+ body: docs.flatMap((doc) => {
52
+ return [{ create: { _id: idFn(doc) } }, doc];
53
+ })
54
+ };
55
+ }
56
+ /**
57
+ * Constructs a bulk request payload for update operations.
58
+ *
59
+ * This helper takes an array of update actions (of type UpdateAction<T>),
60
+ * splits each into its action metadata and payload (with the `doc` and/or `upsert` properties),
61
+ * and returns a BulkRequest payload formatted as a flat array.
62
+ *
63
+ * @param index - The name of the index.
64
+ * @param updates - An array of update actions.
65
+ * @param idFn - A function that returns a unique _id for each document.
66
+ * @returns A BulkRequest payload for update operations.
67
+ */
68
+ function bulkUpdate(index, updates, idFn) {
69
+ return {
70
+ index,
71
+ body: updates.flatMap((update) => {
72
+ return [{ update: { _id: idFn(update.doc || update.upsert) } }, update];
73
+ })
74
+ };
75
+ }
76
+ /**
77
+ * Constructs a bulk request payload for deleting documents.
78
+ *
79
+ * For each document in the provided array, this helper creates a single‑line bulk operation:
80
+ * { delete: { _id: <id> } }
81
+ * The provided id generator function is used to compute the _id for each document.
82
+ *
83
+ * @param index - The name of the index.
84
+ * @param docs - An array of documents to delete.
85
+ * @param idFn - A function that returns the _id for a given document.
86
+ * @returns A BulkRequest payload for delete operations.
87
+ */
88
+ function bulkDelete(index, ids) {
89
+ return {
90
+ index,
91
+ body: ids.map((_id) => {
92
+ return { delete: { _id } };
93
+ })
94
+ };
95
+ }
96
+
97
+ //#endregion
98
+ export { OpenSearchClient, bulkCreate, bulkDelete, bulkIndex, bulkUpdate };
99
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["OpenSearchClient: OpenSearchClientConstructor"],"sources":["../src/client.ts","../src/helpers.ts"],"sourcesContent":["import { type API, Client } from '@opensearch-project/opensearch'\nimport type {\n BulkRequest,\n BulkResponse,\n IndexDefinition,\n IndexRequest,\n SearchRequest,\n SearchResponse,\n} from './types'\nimport type {\n Indices,\n TransportRequestOptions,\n TransportRequestPromise,\n} from './types/common'\nimport type { IndicesExistsRequest } from './types/indx'\n\ntype TypedIndices = Omit<Indices, 'exists'> & {\n exists<T extends IndexDefinition>(\n params: IndicesExistsRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<API.Indices_Exists_Response>\n}\n\n/**\n * ✅ Custom interface that extends `Client`, but replaces the `search()` method signature.\n * - Uses `Omit<Client, \"search\">` to remove `search()` from `Client`.\n * - Defines a new `search<T>()` method with stricter type safety.\n */\nexport interface OpenSearchClient\n extends Omit<Client, 'search' | 'index' | 'bulk' | 'indices'> {\n search<T extends IndexDefinition>(\n params: SearchRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<SearchResponse<T>>\n\n index<T extends IndexDefinition>(\n params: IndexRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<API.Index_Response>\n\n bulk<T extends IndexDefinition>(\n params: BulkRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<BulkResponse<T>>\n\n indices: TypedIndices\n}\n\n/**\n * ✅ Constructor type that ensures `new OpenSearchClient()` works.\n * - This type is necessary because `OpenSearchClient` is actually a function (not a class).\n */\ntype OpenSearchClientConstructor = new (\n ...args: ConstructorParameters<typeof Client>\n) => OpenSearchClient\n\n/**\n * ✅ A function that behaves like a class constructor.\n * - Instantiates a new `Client` internally.\n * - Casts the instance to `OpenSearchClient` so TypeScript recognizes the new `search<T>()` signature.\n * - The `as unknown as` trick ensures `new OpenSearchClient()` is valid.\n */\nexport const OpenSearchClient: OpenSearchClientConstructor = function (\n this: Client,\n ...args: ConstructorParameters<typeof Client>\n) {\n const clientInstance = new Client(...args)\n return clientInstance as unknown as OpenSearchClient\n} as unknown as {\n new (...args: ConstructorParameters<typeof Client>): OpenSearchClient\n}\n","import type { Types } from '@opensearch-project/opensearch'\nimport type {\n BulkRequest,\n CreateOperation,\n DeleteOperation,\n IndexOperation,\n UpdateAction,\n UpdateOperation,\n} from './types/bulk'\nimport type { IndexDefinition } from './types/common'\nimport type { DocumentFor } from './types/documents'\n\nexport type IdFunction<T extends IndexDefinition> = (\n doc: DocumentFor<T>\n) => Types.Common.Id\n\n/**\n * Constructs a bulk request payload for indexing documents.\n *\n * For each document in the provided array, this helper creates a two‑line bulk operation:\n * 1. An action object for an index operation. If an id generator is provided, its result is used as _id.\n * 2. The document itself.\n *\n * @param index - The name of the index.\n * @param docs - An array of documents to insert.\n * @param idFn - Optional function that returns an _id for a given document.\n * @returns A BulkRequest payload for insert operations.\n */\nexport function bulkIndex<T extends IndexDefinition>(\n index: T['index'],\n docs: DocumentFor<T>[],\n idFn?: IdFunction<T>\n): BulkRequest<T> {\n const body = docs.flatMap((doc) => {\n const op: IndexOperation<T> = idFn ? { _id: idFn(doc) } : {}\n return [{ index: op }, doc]\n })\n return { index, body }\n}\n\n/**\n * Constructs a bulk request payload for creating documents.\n *\n * For each document in the provided array, this helper creates a two‑line bulk operation:\n * 1. An action object for a create operation with a generated _id.\n * 2. The document itself.\n *\n * @param index - The name of the index.\n * @param docs - An array of documents to create.\n * @param idFn - A function that returns a unique _id for each document.\n * @returns A BulkRequest payload for create operations.\n */\nexport function bulkCreate<T extends IndexDefinition>(\n index: T['index'],\n docs: DocumentFor<T>[],\n idFn: IdFunction<T>\n): BulkRequest<T> {\n const body = docs.flatMap((doc) => {\n const op: CreateOperation<T> = { _id: idFn(doc) }\n return [{ create: op }, doc]\n })\n return { index, body }\n}\n\n/**\n * Constructs a bulk request payload for update operations.\n *\n * This helper takes an array of update actions (of type UpdateAction<T>),\n * splits each into its action metadata and payload (with the `doc` and/or `upsert` properties),\n * and returns a BulkRequest payload formatted as a flat array.\n *\n * @param index - The name of the index.\n * @param updates - An array of update actions.\n * @param idFn - A function that returns a unique _id for each document.\n * @returns A BulkRequest payload for update operations.\n */\nexport function bulkUpdate<T extends IndexDefinition>(\n index: T['index'],\n updates: UpdateAction<T>[],\n idFn: IdFunction<T>\n): BulkRequest<T> {\n const body = updates.flatMap((update) => {\n const op: UpdateOperation<T> = {\n _id: idFn((update.doc as DocumentFor<T>) || update.upsert),\n }\n return [{ update: op }, update]\n })\n\n return { index, body }\n}\n\n/**\n * Constructs a bulk request payload for deleting documents.\n *\n * For each document in the provided array, this helper creates a single‑line bulk operation:\n * { delete: { _id: <id> } }\n * The provided id generator function is used to compute the _id for each document.\n *\n * @param index - The name of the index.\n * @param docs - An array of documents to delete.\n * @param idFn - A function that returns the _id for a given document.\n * @returns A BulkRequest payload for delete operations.\n */\nexport function bulkDelete<T extends IndexDefinition>(\n index: T['index'],\n ids: Types.Common.Id[]\n): BulkRequest<T> {\n const body = ids.map((_id) => {\n const op: DeleteOperation<T> = { _id }\n return { delete: op }\n })\n return { index, body }\n}\n"],"mappings":";;;;;;;;;AA8DA,MAAaA,mBAAgD,SAE3D,GAAG,MACH;AAEA,QADuB,IAAI,OAAO,GAAG,KAAK;;;;;;;;;;;;;;;;;ACtC5C,SAAgB,UACd,OACA,MACA,MACgB;AAKhB,QAAO;EAAE;EAAO,MAJH,KAAK,SAAS,QAAQ;AAEjC,UAAO,CAAC,EAAE,OADoB,OAAO,EAAE,KAAK,KAAK,IAAI,EAAE,GAAG,EAAE,EACvC,EAAE,IAAI;IAC3B;EACoB;;;;;;;;;;;;;;AAexB,SAAgB,WACd,OACA,MACA,MACgB;AAKhB,QAAO;EAAE;EAAO,MAJH,KAAK,SAAS,QAAQ;AAEjC,UAAO,CAAC,EAAE,QADqB,EAAE,KAAK,KAAK,IAAI,EAAE,EAC3B,EAAE,IAAI;IAC5B;EACoB;;;;;;;;;;;;;;AAexB,SAAgB,WACd,OACA,SACA,MACgB;AAQhB,QAAO;EAAE;EAAO,MAPH,QAAQ,SAAS,WAAW;AAIvC,UAAO,CAAC,EAAE,QAHqB,EAC7B,KAAK,KAAM,OAAO,OAA0B,OAAO,OAAO,EAC3D,EACqB,EAAE,OAAO;IAC/B;EAEoB;;;;;;;;;;;;;;AAexB,SAAgB,WACd,OACA,KACgB;AAKhB,QAAO;EAAE;EAAO,MAJH,IAAI,KAAK,QAAQ;AAE5B,UAAO,EAAE,QADsB,EAAE,KAAK,EACjB;IACrB;EACoB"}
package/package.json CHANGED
@@ -1,15 +1,21 @@
1
1
  {
2
2
  "name": "@sebspark/opensearch",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
6
+ "main": "dist/index.mjs",
7
+ "types": "dist/index.d.mts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.mts",
11
+ "import": "./dist/index.mjs"
12
+ }
13
+ },
8
14
  "files": [
9
15
  "dist"
10
16
  ],
11
17
  "scripts": {
12
- "build": "tsup src/index.ts --config ./tsup.config.ts",
18
+ "build": "spark-build src/index.ts",
13
19
  "dev": "tsc --watch --noEmit",
14
20
  "lint": "biome check .",
15
21
  "test": "vitest run --passWithNoTests --coverage",
package/dist/index.js DELETED
@@ -1,46 +0,0 @@
1
- // src/client.ts
2
- import { Client } from "@opensearch-project/opensearch";
3
- var OpenSearchClient = function(...args) {
4
- const clientInstance = new Client(...args);
5
- return clientInstance;
6
- };
7
-
8
- // src/helpers.ts
9
- function bulkIndex(index, docs, idFn) {
10
- const body = docs.flatMap((doc) => {
11
- const op = idFn ? { _id: idFn(doc) } : {};
12
- return [{ index: op }, doc];
13
- });
14
- return { index, body };
15
- }
16
- function bulkCreate(index, docs, idFn) {
17
- const body = docs.flatMap((doc) => {
18
- const op = { _id: idFn(doc) };
19
- return [{ create: op }, doc];
20
- });
21
- return { index, body };
22
- }
23
- function bulkUpdate(index, updates, idFn) {
24
- const body = updates.flatMap((update) => {
25
- const op = {
26
- _id: idFn(update.doc || update.upsert)
27
- };
28
- return [{ update: op }, update];
29
- });
30
- return { index, body };
31
- }
32
- function bulkDelete(index, ids) {
33
- const body = ids.map((_id) => {
34
- const op = { _id };
35
- return { delete: op };
36
- });
37
- return { index, body };
38
- }
39
- export {
40
- OpenSearchClient,
41
- bulkCreate,
42
- bulkDelete,
43
- bulkIndex,
44
- bulkUpdate
45
- };
46
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client.ts","../src/helpers.ts"],"sourcesContent":["import { type API, Client } from '@opensearch-project/opensearch'\nimport type {\n BulkRequest,\n BulkResponse,\n IndexDefinition,\n IndexRequest,\n SearchRequest,\n SearchResponse,\n} from './types'\nimport type {\n Indices,\n TransportRequestOptions,\n TransportRequestPromise,\n} from './types/common'\nimport type { IndicesExistsRequest } from './types/indx'\n\ntype TypedIndices = Omit<Indices, 'exists'> & {\n exists<T extends IndexDefinition>(\n params: IndicesExistsRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<API.Indices_Exists_Response>\n}\n\n/**\n * ✅ Custom interface that extends `Client`, but replaces the `search()` method signature.\n * - Uses `Omit<Client, \"search\">` to remove `search()` from `Client`.\n * - Defines a new `search<T>()` method with stricter type safety.\n */\nexport interface OpenSearchClient\n extends Omit<Client, 'search' | 'index' | 'bulk' | 'indices'> {\n search<T extends IndexDefinition>(\n params: SearchRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<SearchResponse<T>>\n\n index<T extends IndexDefinition>(\n params: IndexRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<API.Index_Response>\n\n bulk<T extends IndexDefinition>(\n params: BulkRequest<T>,\n options?: TransportRequestOptions\n ): TransportRequestPromise<BulkResponse<T>>\n\n indices: TypedIndices\n}\n\n/**\n * ✅ Constructor type that ensures `new OpenSearchClient()` works.\n * - This type is necessary because `OpenSearchClient` is actually a function (not a class).\n */\ntype OpenSearchClientConstructor = new (\n ...args: ConstructorParameters<typeof Client>\n) => OpenSearchClient\n\n/**\n * ✅ A function that behaves like a class constructor.\n * - Instantiates a new `Client` internally.\n * - Casts the instance to `OpenSearchClient` so TypeScript recognizes the new `search<T>()` signature.\n * - The `as unknown as` trick ensures `new OpenSearchClient()` is valid.\n */\nexport const OpenSearchClient: OpenSearchClientConstructor = function (\n this: Client,\n ...args: ConstructorParameters<typeof Client>\n) {\n const clientInstance = new Client(...args)\n return clientInstance as unknown as OpenSearchClient\n} as unknown as {\n new (...args: ConstructorParameters<typeof Client>): OpenSearchClient\n}\n","import type { Types } from '@opensearch-project/opensearch'\nimport type {\n BulkRequest,\n CreateOperation,\n DeleteOperation,\n IndexOperation,\n UpdateAction,\n UpdateOperation,\n} from './types/bulk'\nimport type { IndexDefinition } from './types/common'\nimport type { DocumentFor } from './types/documents'\n\nexport type IdFunction<T extends IndexDefinition> = (\n doc: DocumentFor<T>\n) => Types.Common.Id\n\n/**\n * Constructs a bulk request payload for indexing documents.\n *\n * For each document in the provided array, this helper creates a two‑line bulk operation:\n * 1. An action object for an index operation. If an id generator is provided, its result is used as _id.\n * 2. The document itself.\n *\n * @param index - The name of the index.\n * @param docs - An array of documents to insert.\n * @param idFn - Optional function that returns an _id for a given document.\n * @returns A BulkRequest payload for insert operations.\n */\nexport function bulkIndex<T extends IndexDefinition>(\n index: T['index'],\n docs: DocumentFor<T>[],\n idFn?: IdFunction<T>\n): BulkRequest<T> {\n const body = docs.flatMap((doc) => {\n const op: IndexOperation<T> = idFn ? { _id: idFn(doc) } : {}\n return [{ index: op }, doc]\n })\n return { index, body }\n}\n\n/**\n * Constructs a bulk request payload for creating documents.\n *\n * For each document in the provided array, this helper creates a two‑line bulk operation:\n * 1. An action object for a create operation with a generated _id.\n * 2. The document itself.\n *\n * @param index - The name of the index.\n * @param docs - An array of documents to create.\n * @param idFn - A function that returns a unique _id for each document.\n * @returns A BulkRequest payload for create operations.\n */\nexport function bulkCreate<T extends IndexDefinition>(\n index: T['index'],\n docs: DocumentFor<T>[],\n idFn: IdFunction<T>\n): BulkRequest<T> {\n const body = docs.flatMap((doc) => {\n const op: CreateOperation<T> = { _id: idFn(doc) }\n return [{ create: op }, doc]\n })\n return { index, body }\n}\n\n/**\n * Constructs a bulk request payload for update operations.\n *\n * This helper takes an array of update actions (of type UpdateAction<T>),\n * splits each into its action metadata and payload (with the `doc` and/or `upsert` properties),\n * and returns a BulkRequest payload formatted as a flat array.\n *\n * @param index - The name of the index.\n * @param updates - An array of update actions.\n * @param idFn - A function that returns a unique _id for each document.\n * @returns A BulkRequest payload for update operations.\n */\nexport function bulkUpdate<T extends IndexDefinition>(\n index: T['index'],\n updates: UpdateAction<T>[],\n idFn: IdFunction<T>\n): BulkRequest<T> {\n const body = updates.flatMap((update) => {\n const op: UpdateOperation<T> = {\n _id: idFn((update.doc as DocumentFor<T>) || update.upsert),\n }\n return [{ update: op }, update]\n })\n\n return { index, body }\n}\n\n/**\n * Constructs a bulk request payload for deleting documents.\n *\n * For each document in the provided array, this helper creates a single‑line bulk operation:\n * { delete: { _id: <id> } }\n * The provided id generator function is used to compute the _id for each document.\n *\n * @param index - The name of the index.\n * @param docs - An array of documents to delete.\n * @param idFn - A function that returns the _id for a given document.\n * @returns A BulkRequest payload for delete operations.\n */\nexport function bulkDelete<T extends IndexDefinition>(\n index: T['index'],\n ids: Types.Common.Id[]\n): BulkRequest<T> {\n const body = ids.map((_id) => {\n const op: DeleteOperation<T> = { _id }\n return { delete: op }\n })\n return { index, body }\n}\n"],"mappings":";AAAA,SAAmB,cAAc;AA8D1B,IAAM,mBAAgD,YAExD,MACH;AACA,QAAM,iBAAiB,IAAI,OAAO,GAAG,IAAI;AACzC,SAAO;AACT;;;ACxCO,SAAS,UACd,OACA,MACA,MACgB;AAChB,QAAM,OAAO,KAAK,QAAQ,CAAC,QAAQ;AACjC,UAAM,KAAwB,OAAO,EAAE,KAAK,KAAK,GAAG,EAAE,IAAI,CAAC;AAC3D,WAAO,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG;AAAA,EAC5B,CAAC;AACD,SAAO,EAAE,OAAO,KAAK;AACvB;AAcO,SAAS,WACd,OACA,MACA,MACgB;AAChB,QAAM,OAAO,KAAK,QAAQ,CAAC,QAAQ;AACjC,UAAM,KAAyB,EAAE,KAAK,KAAK,GAAG,EAAE;AAChD,WAAO,CAAC,EAAE,QAAQ,GAAG,GAAG,GAAG;AAAA,EAC7B,CAAC;AACD,SAAO,EAAE,OAAO,KAAK;AACvB;AAcO,SAAS,WACd,OACA,SACA,MACgB;AAChB,QAAM,OAAO,QAAQ,QAAQ,CAAC,WAAW;AACvC,UAAM,KAAyB;AAAA,MAC7B,KAAK,KAAM,OAAO,OAA0B,OAAO,MAAM;AAAA,IAC3D;AACA,WAAO,CAAC,EAAE,QAAQ,GAAG,GAAG,MAAM;AAAA,EAChC,CAAC;AAED,SAAO,EAAE,OAAO,KAAK;AACvB;AAcO,SAAS,WACd,OACA,KACgB;AAChB,QAAM,OAAO,IAAI,IAAI,CAAC,QAAQ;AAC5B,UAAM,KAAyB,EAAE,IAAI;AACrC,WAAO,EAAE,QAAQ,GAAG;AAAA,EACtB,CAAC;AACD,SAAO,EAAE,OAAO,KAAK;AACvB;","names":[]}