elasticlink 0.8.0-beta → 1.0.0-beta.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.
Files changed (64) hide show
  1. package/README.md +631 -819
  2. package/dist/index.cjs +1528 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1890 -0
  5. package/dist/index.d.cts.map +1 -0
  6. package/dist/index.d.ts +1889 -19
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1474 -18
  9. package/dist/index.js.map +1 -0
  10. package/package.json +25 -19
  11. package/dist/aggregation.builder.d.ts +0 -6
  12. package/dist/aggregation.builder.d.ts.map +0 -1
  13. package/dist/aggregation.builder.js +0 -64
  14. package/dist/aggregation.types.d.ts +0 -173
  15. package/dist/aggregation.types.d.ts.map +0 -1
  16. package/dist/aggregation.types.js +0 -6
  17. package/dist/bulk.builder.d.ts +0 -28
  18. package/dist/bulk.builder.d.ts.map +0 -1
  19. package/dist/bulk.builder.js +0 -51
  20. package/dist/bulk.types.d.ts +0 -46
  21. package/dist/bulk.types.d.ts.map +0 -1
  22. package/dist/bulk.types.js +0 -6
  23. package/dist/field.helpers.d.ts +0 -167
  24. package/dist/field.helpers.d.ts.map +0 -1
  25. package/dist/field.helpers.js +0 -282
  26. package/dist/field.types.d.ts +0 -255
  27. package/dist/field.types.d.ts.map +0 -1
  28. package/dist/field.types.js +0 -6
  29. package/dist/index-management.builder.d.ts +0 -33
  30. package/dist/index-management.builder.d.ts.map +0 -1
  31. package/dist/index-management.builder.js +0 -64
  32. package/dist/index-management.types.d.ts +0 -126
  33. package/dist/index-management.types.d.ts.map +0 -1
  34. package/dist/index-management.types.js +0 -6
  35. package/dist/mapping.builder.d.ts +0 -46
  36. package/dist/mapping.builder.d.ts.map +0 -1
  37. package/dist/mapping.builder.js +0 -39
  38. package/dist/mapping.types.d.ts +0 -160
  39. package/dist/mapping.types.d.ts.map +0 -1
  40. package/dist/mapping.types.js +0 -6
  41. package/dist/multi-search.builder.d.ts +0 -22
  42. package/dist/multi-search.builder.d.ts.map +0 -1
  43. package/dist/multi-search.builder.js +0 -39
  44. package/dist/multi-search.types.d.ts +0 -36
  45. package/dist/multi-search.types.d.ts.map +0 -1
  46. package/dist/multi-search.types.js +0 -6
  47. package/dist/query.builder.d.ts +0 -4
  48. package/dist/query.builder.d.ts.map +0 -1
  49. package/dist/query.builder.js +0 -264
  50. package/dist/query.types.d.ts +0 -324
  51. package/dist/query.types.d.ts.map +0 -1
  52. package/dist/query.types.js +0 -7
  53. package/dist/settings.presets.d.ts +0 -98
  54. package/dist/settings.presets.d.ts.map +0 -1
  55. package/dist/settings.presets.js +0 -115
  56. package/dist/suggester.builder.d.ts +0 -23
  57. package/dist/suggester.builder.d.ts.map +0 -1
  58. package/dist/suggester.builder.js +0 -51
  59. package/dist/suggester.types.d.ts +0 -50
  60. package/dist/suggester.types.d.ts.map +0 -1
  61. package/dist/suggester.types.js +0 -6
  62. package/dist/vector.types.d.ts +0 -17
  63. package/dist/vector.types.d.ts.map +0 -1
  64. package/dist/vector.types.js +0 -6
@@ -1,255 +0,0 @@
1
- /**
2
- * Per-field-type option types and narrowly-typed mapping return types.
3
- * Each helper function returns a mapping with a literal `type` field,
4
- * enabling compile-time field-type inference in the query builder.
5
- */
6
- import type { FieldMapping, FieldTypeString } from './index-management.types.js';
7
- /** Options for text fields */
8
- export type TextFieldOptions = {
9
- analyzer?: string;
10
- search_analyzer?: string;
11
- boost?: number;
12
- index?: boolean;
13
- store?: boolean;
14
- doc_values?: boolean;
15
- similarity?: string;
16
- fields?: Record<string, FieldMapping>;
17
- copy_to?: string | string[];
18
- index_prefixes?: {
19
- min_chars?: number;
20
- max_chars?: number;
21
- };
22
- index_phrases?: boolean;
23
- eager_global_ordinals?: boolean;
24
- term_vector?: 'no' | 'yes' | 'with_positions' | 'with_offsets' | 'with_positions_offsets' | 'with_positions_payloads' | 'with_positions_offsets_payloads';
25
- };
26
- /** Options for keyword fields */
27
- export type KeywordFieldOptions = {
28
- boost?: number;
29
- index?: boolean;
30
- store?: boolean;
31
- doc_values?: boolean;
32
- similarity?: string;
33
- normalizer?: string;
34
- fields?: Record<string, FieldMapping>;
35
- copy_to?: string | string[];
36
- null_value?: string;
37
- eager_global_ordinals?: boolean;
38
- ignore_above?: number;
39
- };
40
- /** Options shared by numeric field types (long, integer, short, byte, double, float, half_float) */
41
- export type NumericFieldOptions = {
42
- boost?: number;
43
- index?: boolean;
44
- store?: boolean;
45
- doc_values?: boolean;
46
- coerce?: boolean;
47
- fields?: Record<string, FieldMapping>;
48
- copy_to?: string | string[];
49
- null_value?: number;
50
- ignore_malformed?: boolean;
51
- };
52
- /** Options for scaled_float (extends numeric with scaling_factor) */
53
- export type ScaledFloatFieldOptions = NumericFieldOptions & {
54
- scaling_factor?: number;
55
- };
56
- /** Options for unsigned_long fields — null_value accepts string or number for >MAX_SAFE_INTEGER precision */
57
- export type UnsignedLongFieldOptions = Omit<NumericFieldOptions, 'null_value'> & {
58
- null_value?: string | number;
59
- };
60
- /** Options for date fields */
61
- export type DateFieldOptions = {
62
- boost?: number;
63
- format?: string;
64
- index?: boolean;
65
- store?: boolean;
66
- doc_values?: boolean;
67
- fields?: Record<string, FieldMapping>;
68
- copy_to?: string | string[];
69
- null_value?: string;
70
- ignore_malformed?: boolean;
71
- };
72
- /** Options for boolean fields */
73
- export type BooleanFieldOptions = {
74
- boost?: number;
75
- index?: boolean;
76
- store?: boolean;
77
- doc_values?: boolean;
78
- null_value?: boolean;
79
- };
80
- /** Options for dense_vector fields */
81
- export type DenseVectorFieldOptions = {
82
- dims?: number;
83
- element_type?: 'float' | 'byte' | 'bit';
84
- index?: boolean;
85
- index_options?: any;
86
- similarity?: 'cosine' | 'dot_product' | 'l2_norm' | 'max_inner_product';
87
- };
88
- /**
89
- * Options for semantic_text fields (ES 9.x — ML-powered text field for semantic/hybrid search).
90
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/semantic-text.html
91
- */
92
- export type SemanticTextFieldOptions = {
93
- inference_id?: string;
94
- search_inference_id?: string;
95
- model_settings?: {
96
- task_type?: string;
97
- [key: string]: unknown;
98
- };
99
- };
100
- /** Sub-fields for nested and object field types */
101
- export type NestedFields = Record<string, FieldMapping>;
102
- /** Options for object fields (enabled flag only — sub-fields are the first argument) */
103
- export type ObjectFieldOptions = {
104
- enabled?: boolean;
105
- };
106
- /** Options for completion fields */
107
- export type CompletionFieldOptions = {
108
- analyzer?: string;
109
- search_analyzer?: string;
110
- max_input_length?: number;
111
- preserve_separators?: boolean;
112
- preserve_position_increments?: boolean;
113
- };
114
- /** Options for geo_point fields */
115
- export type GeoPointFieldOptions = {
116
- index?: boolean;
117
- store?: boolean;
118
- doc_values?: boolean;
119
- ignore_malformed?: boolean;
120
- };
121
- /** Options for geo_shape fields */
122
- export type GeoShapeFieldOptions = {
123
- index?: boolean;
124
- store?: boolean;
125
- doc_values?: boolean;
126
- orientation?: string;
127
- ignore_malformed?: boolean;
128
- };
129
- /** Options for alias fields */
130
- export type AliasFieldOptions = {
131
- path: string;
132
- };
133
- /** Options for ip fields */
134
- export type IpFieldOptions = {
135
- boost?: number;
136
- index?: boolean;
137
- store?: boolean;
138
- doc_values?: boolean;
139
- null_value?: string;
140
- ignore_malformed?: boolean;
141
- };
142
- /** Options for range fields (integer_range, float_range, long_range, double_range, date_range) */
143
- export type RangeFieldOptions = {
144
- boost?: number;
145
- index?: boolean;
146
- store?: boolean;
147
- doc_values?: boolean;
148
- coerce?: boolean;
149
- };
150
- /**
151
- * Options for match_only_text fields.
152
- * Use when you only need filter/match but not relevance scoring — faster and uses less disk.
153
- */
154
- export type MatchOnlyTextFieldOptions = {
155
- fields?: Record<string, FieldMapping>;
156
- copy_to?: string | string[];
157
- meta?: Record<string, string>;
158
- };
159
- /**
160
- * Options for search_as_you_type fields.
161
- * Provides out-of-the-box autocomplete / typeahead capabilities.
162
- */
163
- export type SearchAsYouTypeFieldOptions = {
164
- analyzer?: string;
165
- search_analyzer?: string;
166
- max_shingle_size?: number;
167
- index?: boolean;
168
- similarity?: string;
169
- };
170
- /**
171
- * Options for constant_keyword fields.
172
- * Every document in the index has the same value for this field.
173
- * Useful for multi-index queries to identify the index type.
174
- */
175
- export type ConstantKeywordFieldOptions = {
176
- value?: string;
177
- };
178
- /**
179
- * Options for wildcard fields.
180
- * Optimized for grep-like wildcard/regexp queries on high-cardinality or large fields.
181
- * Use instead of keyword when leading wildcards (`*foo`) are needed.
182
- */
183
- export type WildcardFieldOptions = {
184
- null_value?: string;
185
- ignore_above?: number;
186
- };
187
- /**
188
- * Options for flattened fields.
189
- * Flattens complex/dynamic objects into a single field. Faster than nested,
190
- * but only supports keyword-level queries on inner values.
191
- */
192
- export type FlattenedFieldOptions = {
193
- depth_limit?: number;
194
- doc_values?: boolean;
195
- index?: boolean;
196
- null_value?: string;
197
- similarity?: string;
198
- eager_global_ordinals?: boolean;
199
- };
200
- export type TypedFieldMapping<T extends string> = Omit<FieldMapping, 'type'> & {
201
- type: T;
202
- };
203
- export type FieldMappingWithLiteralType = FieldMapping & {
204
- type: FieldTypeString;
205
- };
206
- /**
207
- * Typed variant of `NestedFieldMapping` carrying sub-field type info at compile time.
208
- * Produced when `nested()` is called with a typed field map.
209
- */
210
- export type TypedNestedFieldMapping<F extends Record<string, FieldMappingWithLiteralType>> = NestedFieldMapping & Readonly<{
211
- _subFields: F;
212
- }>;
213
- /**
214
- * Typed variant of `ObjectFieldMapping` carrying sub-field type info at compile time.
215
- * Produced when `object()` is called with a typed field map.
216
- */
217
- export type TypedObjectFieldMapping<F extends Record<string, FieldMappingWithLiteralType>> = ObjectFieldMapping & Readonly<{
218
- _subFields: F;
219
- }>;
220
- export type TextFieldMapping = TypedFieldMapping<'text'>;
221
- export type KeywordFieldMapping = TypedFieldMapping<'keyword'>;
222
- export type LongFieldMapping = TypedFieldMapping<'long'>;
223
- export type IntegerFieldMapping = TypedFieldMapping<'integer'>;
224
- export type ShortFieldMapping = TypedFieldMapping<'short'>;
225
- export type ByteFieldMapping = TypedFieldMapping<'byte'>;
226
- export type DoubleFieldMapping = TypedFieldMapping<'double'>;
227
- export type FloatFieldMapping = TypedFieldMapping<'float'>;
228
- export type HalfFloatFieldMapping = TypedFieldMapping<'half_float'>;
229
- export type ScaledFloatFieldMapping = TypedFieldMapping<'scaled_float'>;
230
- export type DateFieldMapping = TypedFieldMapping<'date'>;
231
- export type BooleanFieldMapping = TypedFieldMapping<'boolean'>;
232
- export type BinaryFieldMapping = TypedFieldMapping<'binary'>;
233
- export type IpFieldMapping = TypedFieldMapping<'ip'>;
234
- export type DenseVectorFieldMapping = TypedFieldMapping<'dense_vector'>;
235
- export type SparseVectorFieldMapping = TypedFieldMapping<'sparse_vector'>;
236
- export type SemanticTextFieldMapping = TypedFieldMapping<'semantic_text'>;
237
- export type UnsignedLongFieldMapping = TypedFieldMapping<'unsigned_long'>;
238
- export type GeoPointFieldMapping = TypedFieldMapping<'geo_point'>;
239
- export type GeoShapeFieldMapping = TypedFieldMapping<'geo_shape'>;
240
- export type CompletionFieldMapping = TypedFieldMapping<'completion'>;
241
- export type NestedFieldMapping = TypedFieldMapping<'nested'>;
242
- export type ObjectFieldMapping = TypedFieldMapping<'object'>;
243
- export type AliasFieldMapping = TypedFieldMapping<'alias'>;
244
- export type PercolatorFieldMapping = TypedFieldMapping<'percolator'>;
245
- export type IntegerRangeFieldMapping = TypedFieldMapping<'integer_range'>;
246
- export type FloatRangeFieldMapping = TypedFieldMapping<'float_range'>;
247
- export type LongRangeFieldMapping = TypedFieldMapping<'long_range'>;
248
- export type DoubleRangeFieldMapping = TypedFieldMapping<'double_range'>;
249
- export type DateRangeFieldMapping = TypedFieldMapping<'date_range'>;
250
- export type MatchOnlyTextFieldMapping = TypedFieldMapping<'match_only_text'>;
251
- export type SearchAsYouTypeFieldMapping = TypedFieldMapping<'search_as_you_type'>;
252
- export type ConstantKeywordFieldMapping = TypedFieldMapping<'constant_keyword'>;
253
- export type WildcardFieldMapping = TypedFieldMapping<'wildcard'>;
254
- export type FlattenedFieldMapping = TypedFieldMapping<'flattened'>;
255
- //# sourceMappingURL=field.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field.types.d.ts","sourceRoot":"","sources":["../src/field.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEjF,8BAA8B;AAC9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EACR,IAAI,GACJ,KAAK,GACL,gBAAgB,GAChB,cAAc,GACd,wBAAwB,GACxB,yBAAyB,GACzB,iCAAiC,CAAC;CACvC,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,oGAAoG;AACpG,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,GAAG;IAC/E,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,UAAU,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,mBAAmB,CAAC;CACzE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACjE,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAExD,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,4BAA4B;AAC5B,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,kGAAkG;AAClG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAMF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAOF,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAUnF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,kBAAkB,GAC7G,QAAQ,CAAC;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,kBAAkB,GAC7G,QAAQ,CAAC;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE9B,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrD,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxE,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACrE,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACtE,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAC7E,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAClF,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAChF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACjE,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Per-field-type option types and narrowly-typed mapping return types.
3
- * Each helper function returns a mapping with a literal `type` field,
4
- * enabling compile-time field-type inference in the query builder.
5
- */
6
- export {};
@@ -1,33 +0,0 @@
1
- /**
2
- * Index Management builder
3
- * Create and configure Elasticsearch indices
4
- */
5
- import type { IndexBuilder, CreateIndexOptions } from './index-management.types.js';
6
- /**
7
- * Creates an index builder
8
- * @returns IndexBuilder instance
9
- */
10
- export declare const createIndexBuilder: (state?: CreateIndexOptions) => IndexBuilder;
11
- /**
12
- * Create a new index builder for Elasticsearch index configuration.
13
- *
14
- * Typical lifecycle:
15
- * 1. **Create index:** `indexBuilder().mappings(schema).settings(productionSearchSettings()).build()`
16
- * 2. **Bulk ingest:** Apply `fastIngestSettings()` via ES `_settings` API → bulk index →
17
- * apply `productionSearchSettings()` → `POST /index/_refresh`
18
- * 3. **Normal operations:** Query, update individual docs via `_update` API
19
- * 4. **Migration with mapping changes:** Create new index with new mappings → `POST _reindex`
20
- * from old → atomically swap alias via `POST _aliases` → delete old index
21
- *
22
- * After bulk loading, remember to refresh the index with `POST /index/_refresh`
23
- * to make all documents searchable.
24
- *
25
- * @example
26
- * const indexConfig = indexBuilder()
27
- * .mappings(productMappings)
28
- * .settings(productionSearchSettings())
29
- * .alias('products')
30
- * .build();
31
- */
32
- export declare const indexBuilder: () => IndexBuilder;
33
- //# sourceMappingURL=index-management.builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-management.builder.d.ts","sourceRoot":"","sources":["../src/index-management.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAGV,YAAY,EACZ,kBAAkB,EAGnB,MAAM,6BAA6B,CAAC;AAOrC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAO,kBAAuB,KAAG,YAoClE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,YAAY,oBAA6B,CAAC"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Index Management builder
3
- * Create and configure Elasticsearch indices
4
- */
5
- const isMappingsSchema = (input) => '_fieldTypes' in input;
6
- /**
7
- * Creates an index builder
8
- * @returns IndexBuilder instance
9
- */
10
- export const createIndexBuilder = (state = {}) => ({
11
- mappings: (schemaOrFields, inlineOptions) => {
12
- const rawProperties = isMappingsSchema(schemaOrFields) ? schemaOrFields.properties : schemaOrFields;
13
- const properties = Object.fromEntries(Object.entries(rawProperties).filter(([, v]) => v !== undefined));
14
- const schemaOptions = isMappingsSchema(schemaOrFields) ? schemaOrFields._mappingOptions : undefined;
15
- const mappingOptions = {
16
- dynamic: 'strict',
17
- ...schemaOptions,
18
- ...inlineOptions
19
- };
20
- return createIndexBuilder({
21
- ...state,
22
- mappings: {
23
- properties,
24
- ...(mappingOptions.dynamic !== undefined && { dynamic: mappingOptions.dynamic }),
25
- ...(mappingOptions._source !== undefined && { _source: mappingOptions._source }),
26
- ...(mappingOptions._meta && { _meta: mappingOptions._meta })
27
- }
28
- });
29
- },
30
- settings: (settings) => createIndexBuilder({ ...state, settings }),
31
- analysis: (config) => createIndexBuilder({ ...state, settings: { ...state.settings, analysis: config } }),
32
- alias: (name, options = {}) => {
33
- const aliases = state.aliases || {};
34
- return createIndexBuilder({
35
- ...state,
36
- aliases: { ...aliases, [name]: options }
37
- });
38
- },
39
- // eslint-disable-next-line functional/functional-parameters
40
- build: () => state
41
- });
42
- /**
43
- * Create a new index builder for Elasticsearch index configuration.
44
- *
45
- * Typical lifecycle:
46
- * 1. **Create index:** `indexBuilder().mappings(schema).settings(productionSearchSettings()).build()`
47
- * 2. **Bulk ingest:** Apply `fastIngestSettings()` via ES `_settings` API → bulk index →
48
- * apply `productionSearchSettings()` → `POST /index/_refresh`
49
- * 3. **Normal operations:** Query, update individual docs via `_update` API
50
- * 4. **Migration with mapping changes:** Create new index with new mappings → `POST _reindex`
51
- * from old → atomically swap alias via `POST _aliases` → delete old index
52
- *
53
- * After bulk loading, remember to refresh the index with `POST /index/_refresh`
54
- * to make all documents searchable.
55
- *
56
- * @example
57
- * const indexConfig = indexBuilder()
58
- * .mappings(productMappings)
59
- * .settings(productionSearchSettings())
60
- * .alias('products')
61
- * .build();
62
- */
63
- // eslint-disable-next-line functional/functional-parameters
64
- export const indexBuilder = () => createIndexBuilder();
@@ -1,126 +0,0 @@
1
- /**
2
- * Type definitions for Index Management
3
- * Partially derived from official @elastic/elasticsearch types.
4
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
5
- */
6
- import type { IndicesIndexSettings, IndicesAlias } from '@elastic/elasticsearch/lib/api/types';
7
- import type { MappingsSchema, MappingOptions } from './mapping.types.js';
8
- /**
9
- * All supported Elasticsearch field type strings.
10
- */
11
- export type FieldTypeString = 'text' | 'match_only_text' | 'keyword' | 'constant_keyword' | 'wildcard' | 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float' | 'date' | 'boolean' | 'binary' | 'integer_range' | 'float_range' | 'long_range' | 'double_range' | 'date_range' | 'ip' | 'alias' | 'object' | 'nested' | 'flattened' | 'geo_point' | 'geo_shape' | 'completion' | 'search_as_you_type' | 'dense_vector' | 'sparse_vector' | 'semantic_text' | 'unsigned_long' | 'percolator';
12
- /**
13
- * Field mapping definition.
14
- */
15
- export type FieldMapping = {
16
- type: FieldTypeString;
17
- fields?: Record<string, FieldMapping>;
18
- analyzer?: string;
19
- search_analyzer?: string;
20
- boost?: number;
21
- index?: boolean;
22
- store?: boolean;
23
- doc_values?: boolean;
24
- similarity?: string;
25
- dims?: number;
26
- index_options?: any;
27
- scaling_factor?: number;
28
- properties?: Record<string, FieldMapping>;
29
- normalizer?: string;
30
- format?: string;
31
- coerce?: boolean;
32
- enabled?: boolean;
33
- element_type?: string;
34
- path?: string;
35
- max_input_length?: number;
36
- preserve_separators?: boolean;
37
- preserve_position_increments?: boolean;
38
- orientation?: string;
39
- copy_to?: string | string[];
40
- index_prefixes?: {
41
- min_chars?: number;
42
- max_chars?: number;
43
- };
44
- index_phrases?: boolean;
45
- ignore_malformed?: boolean;
46
- null_value?: string | number | boolean;
47
- eager_global_ordinals?: boolean;
48
- term_vector?: string;
49
- ignore_above?: number;
50
- max_shingle_size?: number;
51
- value?: string;
52
- depth_limit?: number;
53
- inference_id?: string;
54
- search_inference_id?: string;
55
- };
56
- /**
57
- * _source field configuration for index mappings.
58
- */
59
- export type SourceConfig = {
60
- enabled?: boolean;
61
- includes?: string[];
62
- excludes?: string[];
63
- };
64
- /**
65
- * Index mappings configuration.
66
- */
67
- export type IndexMappings = {
68
- properties: Record<string, FieldMapping>;
69
- dynamic?: boolean | 'strict' | 'runtime';
70
- dynamic_templates?: any[];
71
- _source?: SourceConfig;
72
- _meta?: Record<string, unknown>;
73
- };
74
- /**
75
- * Index settings configuration — re-exported from official @elastic/elasticsearch types
76
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html
77
- */
78
- export type IndexSettings = IndicesIndexSettings;
79
- /**
80
- * Create index options
81
- */
82
- export type CreateIndexOptions = {
83
- mappings?: IndexMappings;
84
- settings?: IndexSettings;
85
- aliases?: Record<string, IndicesAlias>;
86
- };
87
- /**
88
- * Custom analyzer definition for index analysis settings.
89
- */
90
- export type AnalysisAnalyzerConfig = {
91
- type?: string;
92
- tokenizer?: string;
93
- filter?: string[];
94
- char_filter?: string[];
95
- [key: string]: unknown;
96
- };
97
- /**
98
- * Token filter, char filter, and tokenizer configuration — open record to support all ES built-in and plugin types.
99
- */
100
- export type AnalysisComponentConfig = {
101
- type: string;
102
- [key: string]: unknown;
103
- };
104
- /**
105
- * Analysis settings for an index — configures custom analyzers, tokenizers, token filters, and char filters.
106
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html
107
- */
108
- export type AnalysisConfig = {
109
- analyzer?: Record<string, AnalysisAnalyzerConfig>;
110
- tokenizer?: Record<string, AnalysisComponentConfig>;
111
- filter?: Record<string, AnalysisComponentConfig>;
112
- char_filter?: Record<string, AnalysisComponentConfig>;
113
- normalizer?: Record<string, AnalysisComponentConfig>;
114
- };
115
- /**
116
- * Index builder interface
117
- */
118
- export type IndexBuilder = {
119
- mappings: (schemaOrFields: MappingsSchema<Record<string, FieldTypeString>> | Record<string, FieldMapping>, options?: MappingOptions) => IndexBuilder;
120
- settings: (settings: IndexSettings) => IndexBuilder;
121
- /** Configure custom analyzers, tokenizers, token filters, and char filters for this index. */
122
- analysis: (config: AnalysisConfig) => IndexBuilder;
123
- alias: (name: string, options?: IndicesAlias) => IndexBuilder;
124
- build: () => CreateIndexOptions;
125
- };
126
- //# sourceMappingURL=index-management.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-management.types.d.ts","sourceRoot":"","sources":["../src/index-management.types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Type definitions for Index Management
3
- * Partially derived from official @elastic/elasticsearch types.
4
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
5
- */
6
- export {};
@@ -1,46 +0,0 @@
1
- /**
2
- * Mappings builder — creates a MappingsSchema artifact from field helper functions.
3
- * The schema carries field-type info at compile time and ES-compatible properties at runtime.
4
- *
5
- * Defaults to `dynamic: 'strict'` to prevent unmapped fields from being silently
6
- * indexed. Override with `mappings(fields, { dynamic: true })` if needed.
7
- *
8
- * @example
9
- * import { mappings, text, keyword, float, denseVector } from 'elasticlink';
10
- *
11
- * const productMappings = mappings({
12
- * name: text({ analyzer: 'standard' }),
13
- * category: keyword(),
14
- * price: float(),
15
- * });
16
- * // dynamic: 'strict' by default — unknown fields cause an indexing error
17
- *
18
- * @example
19
- * // Exclude dense_vector fields from _source to reduce response size
20
- * const searchMappings = mappings({
21
- * title: text(),
22
- * embedding: denseVector({ dims: 768 }),
23
- * }, {
24
- * _source: { excludes: ['embedding'] },
25
- * });
26
- */
27
- import type { MappingOptions, MappingsSchema } from './mapping.types.js';
28
- import type { FieldMappingWithLiteralType } from './field.types.js';
29
- type UnionToIntersection<U> = (U extends unknown ? (x: U) => never : never) extends (x: infer I) => never ? I : never;
30
- type FlattenSubFields<Prefix extends string, F extends Record<string, FieldMappingWithLiteralType>> = UnionToIntersection<{
31
- [K in keyof F & string]: {
32
- [Key in `${Prefix}.${K}`]: F[K]['type'];
33
- } & (F[K] extends {
34
- _subFields: infer Sub extends Record<string, FieldMappingWithLiteralType>;
35
- } ? FlattenSubFields<`${Prefix}.${K}`, Sub> : Record<never, never>);
36
- }[keyof F & string]>;
37
- type ExtractFieldTypes<F extends Record<string, FieldMappingWithLiteralType>> = {
38
- [K in keyof F]: F[K]['type'];
39
- } & UnionToIntersection<{
40
- [K in keyof F & string]: F[K] extends {
41
- _subFields: infer Sub extends Record<string, FieldMappingWithLiteralType>;
42
- } ? FlattenSubFields<K, Sub> : Record<never, never>;
43
- }[keyof F & string]>;
44
- export declare const mappings: <F extends Record<string, FieldMappingWithLiteralType>>(fields: F, options?: MappingOptions) => MappingsSchema<ExtractFieldTypes<F>, F>;
45
- export {};
46
- //# sourceMappingURL=mapping.builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapping.builder.d.ts","sourceRoot":"","sources":["../src/mapping.builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAEpE,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtH,KAAK,gBAAgB,CACnB,MAAM,SAAS,MAAM,EACrB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IACnD,mBAAmB,CACrB;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG;SAAG,GAAG,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACnF,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;KAC3E,GACG,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACvC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CAC1B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CACpB,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI;KAC7E,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;CAC7B,GAAG,mBAAmB,CACrB;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QACpC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;KAC3E,GACG,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,GACxB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAC5E,QAAQ,CAAC,EACT,UAAU,cAAc,KACvB,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAcxC,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Mappings builder — creates a MappingsSchema artifact from field helper functions.
3
- * The schema carries field-type info at compile time and ES-compatible properties at runtime.
4
- *
5
- * Defaults to `dynamic: 'strict'` to prevent unmapped fields from being silently
6
- * indexed. Override with `mappings(fields, { dynamic: true })` if needed.
7
- *
8
- * @example
9
- * import { mappings, text, keyword, float, denseVector } from 'elasticlink';
10
- *
11
- * const productMappings = mappings({
12
- * name: text({ analyzer: 'standard' }),
13
- * category: keyword(),
14
- * price: float(),
15
- * });
16
- * // dynamic: 'strict' by default — unknown fields cause an indexing error
17
- *
18
- * @example
19
- * // Exclude dense_vector fields from _source to reduce response size
20
- * const searchMappings = mappings({
21
- * title: text(),
22
- * embedding: denseVector({ dims: 768 }),
23
- * }, {
24
- * _source: { excludes: ['embedding'] },
25
- * });
26
- */
27
- export const mappings = (fields, options) => {
28
- const properties = { ...fields };
29
- const mappingOptions = {
30
- dynamic: 'strict',
31
- ...options
32
- };
33
- return {
34
- _fieldTypes: undefined,
35
- _fields: undefined,
36
- properties,
37
- _mappingOptions: mappingOptions
38
- };
39
- };