elasticlink 0.4.1-beta → 0.6.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,6 +24,8 @@ elasticlink simplifies building Elasticsearch queries and index management in Ty
24
24
 
25
25
  | elasticlink | Node.js | Elasticsearch |
26
26
  |-------------|-------------|---------------|
27
+ | 0.6.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
28
+ | 0.5.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
27
29
  | 0.4.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
28
30
  | 0.3.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
29
31
  | 0.2.0-beta | 20, 22 | 9.x (≥9.0.0) |
@@ -134,23 +136,25 @@ query(productMappings)
134
136
 
135
137
  ### Conditional Building
136
138
 
137
- Build queries dynamically based on runtime values:
139
+ Build queries dynamically based on runtime values. `.when(condition, fn)` — the chain is never broken. When the condition is falsy, the builder is returned unchanged, so no extra clauses or arrays are added. If you already called `.bool()`, that empty wrapper is preserved.
140
+
141
+ `condition` resolves as: functions are called, booleans are used as-is, and any other value uses a nullish check (`!= null`) — so numeric `0` and empty string `''` are treated as truthy.
138
142
 
139
143
  ```typescript
140
- const searchTerm = getUserInput();
141
- const minPrice = getMinPrice();
144
+ const searchTerm: string | undefined = param.searchTerm;
145
+ const minPrice: number | undefined = param.minPrice;
142
146
 
143
147
  query(productMappings)
144
148
  .bool()
145
- .must(q =>
146
- q.when(searchTerm, q => q.match('name', searchTerm)) || q.matchAll()
147
- )
148
- .filter(q =>
149
- q.when(minPrice, q => q.range('price', { gte: minPrice })) || q.matchAll()
150
- )
149
+ .when(searchTerm, q => q.must(q2 => q2.match('name', searchTerm!)))
150
+ .when(minPrice, q => q.filter(q2 => q2.range('price', { gte: minPrice! })))
151
151
  .build();
152
152
  ```
153
153
 
154
+ > **Note:** TypeScript cannot narrow closure variables inside callbacks. Even though `.when(searchTerm, fn)` guarantees the value is defined inside `fn`, you still need a non-null assertion (`!`) to satisfy the type checker.
155
+ >
156
+ > **Note:** When the condition is false, any already-introduced `.bool()` wrapper is preserved. A `.bool().when(false, fn)` chain produces `{ query: { bool: {} } }` — not an error, just an empty bool clause.
157
+
154
158
  ### Query Parameters
155
159
 
156
160
  ```typescript
@@ -602,6 +606,89 @@ Produces:
602
606
  }
603
607
  ```
604
608
 
609
+ #### Object and Nested Fields
610
+
611
+ Use `object()` for structured sub-documents queried with dot-notation — the common case for addresses, names, and similar JSON-like objects. Use `nested()` for arrays of objects where cross-field queries within the same element must be accurate.
612
+
613
+ ```typescript
614
+ import { mappings, text, keyword, float, integer, boolean, object, nested, type Infer } from 'elasticlink';
615
+
616
+ const productMappings = mappings({
617
+ name: text(),
618
+ in_stock: boolean(),
619
+
620
+ // object() — single structured value, queried with dot-notation (no wrapper needed)
621
+ address: object({
622
+ street: text(),
623
+ city: keyword(),
624
+ country: keyword(),
625
+ }),
626
+
627
+ // nested() — array of objects; cross-field queries require the .nested() wrapper
628
+ variants: nested({
629
+ sku: keyword(),
630
+ color: keyword(),
631
+ price: float(),
632
+ stock: integer(),
633
+ }),
634
+ });
635
+
636
+ // Infer<> produces the correct nested TypeScript types:
637
+ type Product = Infer<typeof productMappings>;
638
+ // {
639
+ // name: string;
640
+ // in_stock: boolean;
641
+ // address: { street: string; city: string; country: string };
642
+ // variants: Array<{ sku: string; color: string; price: number; stock: number }>;
643
+ // }
644
+
645
+ // object sub-fields — query with dot-notation directly
646
+ query(productMappings)
647
+ .bool()
648
+ .filter(q => q.term('address.country', 'US')) // ✅ 'address.country' is a keyword field
649
+ .filter(q => q.match('address.street', 'Main')) // ✅ 'address.street' is a text field
650
+ .build();
651
+
652
+ // nested sub-fields — must use .nested() wrapper; inner builder is fully typed
653
+ query(productMappings)
654
+ .nested('variants', q => q.term('color', 'black')) // ✅ 'color' is typed as keyword
655
+ .build();
656
+
657
+ query(productMappings)
658
+ .nested('variants', q => q.range('price', { lte: 150 }), { score_mode: 'min' })
659
+ .build();
660
+ ```
661
+
662
+ > **Inner field names are relative.** Inside a `.nested()` callback, you write field names relative to the nested path (e.g. `'color'`, not `'variants.color'`). The library automatically qualifies them to the correct full path in the generated DSL.
663
+
664
+ Object and nested fields can be composed to any depth. A 2-level deep mapping works the same way:
665
+
666
+ ```typescript
667
+ const orderMappings = mappings({
668
+ title: text(),
669
+ shipments: nested({
670
+ tracking: keyword(),
671
+ address: object({ // object() inside nested()
672
+ city: keyword(),
673
+ country: keyword(),
674
+ }),
675
+ }),
676
+ });
677
+
678
+ // Root-level fields are queried directly
679
+ query(orderMappings)
680
+ .term('title', 'urgent')
681
+ .build();
682
+
683
+ // Nested sub-fields use .nested(); dot-notation inside is relative to the nested path
684
+ query(orderMappings)
685
+ .nested('shipments', q => q.term('address.city', 'London')) // ✅ 'address.city' relative to 'shipments'
686
+ .build();
687
+ ```
688
+
689
+ > **Why the difference?**
690
+ > `object` fields are stored inline in the parent document — Elasticsearch flattens their sub-fields and you query them directly. `nested` fields are stored as separate hidden documents to preserve the relationship between sub-fields within each array element. Without the `.nested()` wrapper, a query like `color=black AND price<50` could incorrectly match a product where different variants have those values.
691
+
605
692
  **Field Helpers** (shorthand for common field types):
606
693
 
607
694
  ```typescript
@@ -967,20 +1054,10 @@ Produces:
967
1054
  const buildDynamicQuery = (filters: SearchFilters) => {
968
1055
  return query(productMappings)
969
1056
  .bool()
970
- .must(q =>
971
- q.when(filters.searchTerm,
972
- q => q.match('name', filters.searchTerm, { boost: 2 })
973
- ) || q.matchAll()
974
- )
975
- .filter(q =>
976
- q.when(filters.minPrice && filters.maxPrice,
977
- q => q.range('price', { gte: filters.minPrice, lte: filters.maxPrice })
978
- ) || q.matchAll()
979
- )
980
- .filter(q =>
981
- q.when(filters.category,
982
- q => q.term('category', filters.category)
983
- ) || q.matchAll()
1057
+ .when(filters.searchTerm, q => q.must(q2 => q2.match('name', filters.searchTerm!, { boost: 2 })))
1058
+ .when(filters.category, q => q.filter(q2 => q2.term('category', filters.category!)))
1059
+ .when(filters.minPrice != null && filters.maxPrice != null,
1060
+ q => q.filter(q2 => q2.range('price', { gte: filters.minPrice!, lte: filters.maxPrice! }))
984
1061
  )
985
1062
  .from(filters.offset || 0)
986
1063
  .size(filters.limit || 20)
@@ -1014,9 +1091,10 @@ const result = query(restaurantMappings)
1014
1091
 
1015
1092
  elasticlink provides mapping-aware TypeScript safety:
1016
1093
 
1017
- - **Field-Type Constraints**: `match()` only accepts text fields, `term()` only keyword fields enforced at compile time
1094
+ - **Field-Type Constraints**: enforced at compile time across all methods — `match()` only accepts text fields, `term()` only keyword/numeric fields, `sort()` only sortable fields (keyword, numeric, date, boolean, ip), `collapse()` only keyword/numeric fields, `highlight()` only text/keyword fields
1018
1095
  - **Field Autocomplete**: IntelliSense knows your field names and their types
1019
1096
  - **`Infer<S>`**: Derive TS document types from your mappings schema
1097
+ - **Exported Field Group Types**: `SortableFields<M>`, `CollapsibleFields<M>`, `HighlightableFields<M>`, `TextFields<M>`, `KeywordFields<M>`, and others are exported for use in your own typed utilities
1020
1098
 
1021
1099
  ```typescript
1022
1100
  import { query, mappings, text, keyword, integer, type Infer } from 'elasticlink';
@@ -22,127 +22,7 @@ export declare const createBulkBuilder: <T>(operations?: any[]) => BulkBuilder<T
22
22
  * .delete({ _index: 'products', _id: '4' })
23
23
  * .build(); // POST to /_bulk with Content-Type: application/x-ndjson
24
24
  */
25
- export declare const bulk: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>) => BulkBuilder<{ [K in keyof M]: M[K] extends keyof {
26
- text: string;
27
- match_only_text: string;
28
- keyword: string;
29
- constant_keyword: string;
30
- wildcard: string;
31
- long: number;
32
- integer: number;
33
- short: number;
34
- byte: number;
35
- float: number;
36
- double: number;
37
- half_float: number;
38
- scaled_float: number;
39
- date: string;
40
- boolean: boolean;
41
- binary: string;
42
- ip: string;
43
- geo_point: {
44
- lat: number;
45
- lon: number;
46
- };
47
- geo_shape: Record<string, unknown>;
48
- dense_vector: number[];
49
- completion: string;
50
- search_as_you_type: string;
51
- nested: unknown;
52
- object: unknown;
53
- flattened: Record<string, unknown>;
54
- alias: unknown;
55
- percolator: unknown;
56
- integer_range: {
57
- gte?: number;
58
- lte?: number;
59
- gt?: number;
60
- lt?: number;
61
- };
62
- float_range: {
63
- gte?: number;
64
- lte?: number;
65
- gt?: number;
66
- lt?: number;
67
- };
68
- long_range: {
69
- gte?: number;
70
- lte?: number;
71
- gt?: number;
72
- lt?: number;
73
- };
74
- double_range: {
75
- gte?: number;
76
- lte?: number;
77
- gt?: number;
78
- lt?: number;
79
- };
80
- date_range: {
81
- gte?: string;
82
- lte?: string;
83
- gt?: string;
84
- lt?: string;
85
- };
86
- } ? {
87
- text: string;
88
- match_only_text: string;
89
- keyword: string;
90
- constant_keyword: string;
91
- wildcard: string;
92
- long: number;
93
- integer: number;
94
- short: number;
95
- byte: number;
96
- float: number;
97
- double: number;
98
- half_float: number;
99
- scaled_float: number;
100
- date: string;
101
- boolean: boolean;
102
- binary: string;
103
- ip: string;
104
- geo_point: {
105
- lat: number;
106
- lon: number;
107
- };
108
- geo_shape: Record<string, unknown>;
109
- dense_vector: number[];
110
- completion: string;
111
- search_as_you_type: string;
112
- nested: unknown;
113
- object: unknown;
114
- flattened: Record<string, unknown>;
115
- alias: unknown;
116
- percolator: unknown;
117
- integer_range: {
118
- gte?: number;
119
- lte?: number;
120
- gt?: number;
121
- lt?: number;
122
- };
123
- float_range: {
124
- gte?: number;
125
- lte?: number;
126
- gt?: number;
127
- lt?: number;
128
- };
129
- long_range: {
130
- gte?: number;
131
- lte?: number;
132
- gt?: number;
133
- lt?: number;
134
- };
135
- double_range: {
136
- gte?: number;
137
- lte?: number;
138
- gt?: number;
139
- lt?: number;
140
- };
141
- date_range: {
142
- gte?: string;
143
- lte?: string;
144
- gt?: string;
145
- lt?: string;
146
- };
147
- }[M[K]] : unknown; }>;
25
+ export declare const bulk: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>) => BulkBuilder<{
26
+ [x: string]: unknown;
27
+ }>;
148
28
  //# sourceMappingURL=bulk.builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.builder.d.ts","sourceRoot":"","sources":["../src/bulk.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAEjC,aAAY,GAAG,EAAO,KACrB,WAAW,CAAC,CAAC,CAiCd,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAE6F,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAAgC,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAA+B,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAAiC,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAA+B,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAA5U,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAAgC,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAA+B,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAAiC,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAA+B,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;qBADpd,CAAC"}
1
+ {"version":3,"file":"bulk.builder.d.ts","sourceRoot":"","sources":["../src/bulk.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAEjC,aAAY,GAAG,EAAO,KACrB,WAAW,CAAC,CAAC,CAiCd,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC;;EAC3C,CAAC"}
@@ -13,7 +13,7 @@
13
13
  * embedding: denseVector({ dims: 384 }),
14
14
  * });
15
15
  */
16
- import type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, NestedFields, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions, MatchOnlyTextFieldOptions, SearchAsYouTypeFieldOptions, ConstantKeywordFieldOptions, WildcardFieldOptions, FlattenedFieldOptions, TextFieldMapping, KeywordFieldMapping, LongFieldMapping, IntegerFieldMapping, ShortFieldMapping, ByteFieldMapping, DoubleFieldMapping, FloatFieldMapping, HalfFloatFieldMapping, ScaledFloatFieldMapping, DateFieldMapping, BooleanFieldMapping, BinaryFieldMapping, IpFieldMapping, DenseVectorFieldMapping, GeoPointFieldMapping, GeoShapeFieldMapping, CompletionFieldMapping, NestedFieldMapping, ObjectFieldMapping, AliasFieldMapping, PercolatorFieldMapping, IntegerRangeFieldMapping, FloatRangeFieldMapping, LongRangeFieldMapping, DoubleRangeFieldMapping, DateRangeFieldMapping, MatchOnlyTextFieldMapping, SearchAsYouTypeFieldMapping, ConstantKeywordFieldMapping, WildcardFieldMapping, FlattenedFieldMapping } from './field.types.js';
16
+ import type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions, MatchOnlyTextFieldOptions, SearchAsYouTypeFieldOptions, ConstantKeywordFieldOptions, WildcardFieldOptions, FlattenedFieldOptions, FieldMappingWithLiteralType, TextFieldMapping, KeywordFieldMapping, LongFieldMapping, IntegerFieldMapping, ShortFieldMapping, ByteFieldMapping, DoubleFieldMapping, FloatFieldMapping, HalfFloatFieldMapping, ScaledFloatFieldMapping, DateFieldMapping, BooleanFieldMapping, BinaryFieldMapping, IpFieldMapping, DenseVectorFieldMapping, GeoPointFieldMapping, GeoShapeFieldMapping, CompletionFieldMapping, TypedNestedFieldMapping, TypedObjectFieldMapping, AliasFieldMapping, PercolatorFieldMapping, IntegerRangeFieldMapping, FloatRangeFieldMapping, LongRangeFieldMapping, DoubleRangeFieldMapping, DateRangeFieldMapping, MatchOnlyTextFieldMapping, SearchAsYouTypeFieldMapping, ConstantKeywordFieldMapping, WildcardFieldMapping, FlattenedFieldMapping } from './field.types.js';
17
17
  export declare const text: (options?: TextFieldOptions) => TextFieldMapping;
18
18
  export declare const keyword: (options?: KeywordFieldOptions) => KeywordFieldMapping;
19
19
  export declare const long: (options?: NumericFieldOptions) => LongFieldMapping;
@@ -64,8 +64,50 @@ export declare const quantizedDenseVector: (options?: DenseVectorFieldOptions) =
64
64
  export declare const geoPoint: (options?: GeoPointFieldOptions) => GeoPointFieldMapping;
65
65
  export declare const geoShape: (options?: GeoShapeFieldOptions) => GeoShapeFieldMapping;
66
66
  export declare const completion: (options?: CompletionFieldOptions) => CompletionFieldMapping;
67
- export declare const nested: (fields?: NestedFields) => NestedFieldMapping;
68
- export declare const object: (fields?: NestedFields, options?: ObjectFieldOptions) => ObjectFieldMapping;
67
+ /**
68
+ * Object field — for JSON-like structured documents where sub-fields are queried with dot-notation.
69
+ *
70
+ * The most common way to model structured data (e.g. `{ address: { city, zip } }`).
71
+ * Sub-fields are indexed inline within the parent document — no special query wrapper needed.
72
+ * Query sub-fields directly using dot-notation: `.term('address.city', 'NYC')`.
73
+ *
74
+ * Use `nested()` instead when you have **arrays of objects** and need cross-field queries
75
+ * within each element to be accurate (e.g. tags with both a label and weight).
76
+ *
77
+ * @example
78
+ * const m = mappings({
79
+ * address: object({
80
+ * street: text(),
81
+ * city: keyword(),
82
+ * zip: keyword(),
83
+ * }),
84
+ * });
85
+ * query(m).term('address.city', 'NYC').build();
86
+ */
87
+ export declare function object<F extends Record<string, FieldMappingWithLiteralType>>(fields: F, options?: ObjectFieldOptions): TypedObjectFieldMapping<F>;
88
+ /**
89
+ * Nested field — for **arrays of objects** where cross-field queries within each element must be accurate.
90
+ *
91
+ * Each nested object is stored as a separate hidden Elasticsearch document, preserving the
92
+ * relationship between sub-fields within each element. Without `nested`, Elasticsearch flattens
93
+ * array sub-fields and loses which values belong to the same element.
94
+ *
95
+ * Queries on nested fields **must** use the `.nested()` query builder method — direct dot-notation
96
+ * queries will not find nested documents.
97
+ *
98
+ * Use `object()` instead for single structured objects (addresses, names, etc.) — it is simpler,
99
+ * more efficient, and does not require a query wrapper.
100
+ *
101
+ * @example
102
+ * const m = mappings({
103
+ * tags: nested({
104
+ * label: keyword(),
105
+ * weight: float(),
106
+ * }),
107
+ * });
108
+ * query(m).nested('tags', q => q.term('label', 'sale')).build();
109
+ */
110
+ export declare function nested<F extends Record<string, FieldMappingWithLiteralType>>(fields: F): TypedNestedFieldMapping<F>;
69
111
  export declare const alias: (options: AliasFieldOptions) => AliasFieldMapping;
70
112
  export declare const percolator: () => PercolatorFieldMapping;
71
113
  export declare const integerRange: (options?: RangeFieldOptions) => IntegerRangeFieldMapping;
@@ -1 +1 @@
1
- {"version":3,"file":"field.helpers.d.ts","sourceRoot":"","sources":["../src/field.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.helpers.d.ts","sourceRoot":"","sources":["../src/field.helpers.ts"],"names":[],"mappings":"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"}
@@ -128,15 +128,56 @@ export const completion = (options) => ({
128
128
  ...options
129
129
  });
130
130
  // Structured
131
- export const nested = (fields) => ({
132
- type: 'nested',
133
- ...(fields && { properties: fields })
134
- });
135
- export const object = (fields, options) => ({
136
- type: 'object',
137
- ...(options && options),
138
- ...(fields && { properties: fields })
139
- });
131
+ /**
132
+ * Object field — for JSON-like structured documents where sub-fields are queried with dot-notation.
133
+ *
134
+ * The most common way to model structured data (e.g. `{ address: { city, zip } }`).
135
+ * Sub-fields are indexed inline within the parent document — no special query wrapper needed.
136
+ * Query sub-fields directly using dot-notation: `.term('address.city', 'NYC')`.
137
+ *
138
+ * Use `nested()` instead when you have **arrays of objects** and need cross-field queries
139
+ * within each element to be accurate (e.g. tags with both a label and weight).
140
+ *
141
+ * @example
142
+ * const m = mappings({
143
+ * address: object({
144
+ * street: text(),
145
+ * city: keyword(),
146
+ * zip: keyword(),
147
+ * }),
148
+ * });
149
+ * query(m).term('address.city', 'NYC').build();
150
+ */
151
+ export function object(fields, options) {
152
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
+ return { type: 'object', ...(options ?? {}), properties: fields };
154
+ }
155
+ /**
156
+ * Nested field — for **arrays of objects** where cross-field queries within each element must be accurate.
157
+ *
158
+ * Each nested object is stored as a separate hidden Elasticsearch document, preserving the
159
+ * relationship between sub-fields within each element. Without `nested`, Elasticsearch flattens
160
+ * array sub-fields and loses which values belong to the same element.
161
+ *
162
+ * Queries on nested fields **must** use the `.nested()` query builder method — direct dot-notation
163
+ * queries will not find nested documents.
164
+ *
165
+ * Use `object()` instead for single structured objects (addresses, names, etc.) — it is simpler,
166
+ * more efficient, and does not require a query wrapper.
167
+ *
168
+ * @example
169
+ * const m = mappings({
170
+ * tags: nested({
171
+ * label: keyword(),
172
+ * weight: float(),
173
+ * }),
174
+ * });
175
+ * query(m).nested('tags', q => q.term('label', 'sale')).build();
176
+ */
177
+ export function nested(fields) {
178
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
179
+ return { type: 'nested', properties: fields };
180
+ }
140
181
  // Alias
141
182
  export const alias = (options) => ({
142
183
  type: 'alias',
@@ -3,7 +3,7 @@
3
3
  * Each helper function returns a mapping with a literal `type` field,
4
4
  * enabling compile-time field-type inference in the query builder.
5
5
  */
6
- import type { FieldMapping } from './index-management.types.js';
6
+ import type { FieldMapping, FieldTypeString } from './index-management.types.js';
7
7
  /** Options for text fields */
8
8
  export type TextFieldOptions = {
9
9
  analyzer?: string;
@@ -184,6 +184,23 @@ export type FlattenedFieldOptions = {
184
184
  export type TypedFieldMapping<T extends string> = Omit<FieldMapping, 'type'> & {
185
185
  type: T;
186
186
  };
187
+ export type FieldMappingWithLiteralType = FieldMapping & {
188
+ type: FieldTypeString;
189
+ };
190
+ /**
191
+ * Typed variant of `NestedFieldMapping` carrying sub-field type info at compile time.
192
+ * Produced when `nested()` is called with a typed field map.
193
+ */
194
+ export type TypedNestedFieldMapping<F extends Record<string, FieldMappingWithLiteralType>> = NestedFieldMapping & Readonly<{
195
+ _subFields: F;
196
+ }>;
197
+ /**
198
+ * Typed variant of `ObjectFieldMapping` carrying sub-field type info at compile time.
199
+ * Produced when `object()` is called with a typed field map.
200
+ */
201
+ export type TypedObjectFieldMapping<F extends Record<string, FieldMappingWithLiteralType>> = ObjectFieldMapping & Readonly<{
202
+ _subFields: F;
203
+ }>;
187
204
  export type TextFieldMapping = TypedFieldMapping<'text'>;
188
205
  export type KeywordFieldMapping = TypedFieldMapping<'keyword'>;
189
206
  export type LongFieldMapping = TypedFieldMapping<'long'>;
@@ -1 +1 @@
1
- {"version":3,"file":"field.types.d.ts","sourceRoot":"","sources":["../src/field.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.types.d.ts","sourceRoot":"","sources":["../src/field.types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export type { AggregationBuilder } from './aggregation.types.js';
7
7
  export { mappings } from './mapping.builder.js';
8
8
  export { text, keyword, long, integer, short, byte, double, float, halfFloat, scaledFloat, date, boolean, binary, ip, denseVector, geoPoint, geoShape, completion, nested, object, alias, percolator, integerRange, floatRange, longRange, doubleRange, dateRange, matchOnlyText, searchAsYouType, constantKeyword, wildcardField, flattened, quantizedDenseVector } from './field.helpers.js';
9
9
  export type { MappingsSchema, Infer, FieldsOfType, TextFields, KeywordFields, NumericFields, DateFields, BooleanFields, GeoPointFields, VectorFields, IpFields } from './mapping.types.js';
10
+ export type { FieldMappingWithLiteralType, TypedNestedFieldMapping, TypedObjectFieldMapping } from './field.types.js';
10
11
  export { msearch } from './multi-search.builder.js';
11
12
  export type { MSearchBuilder } from './multi-search.types.js';
12
13
  export { bulk } from './bulk.builder.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7D,SAAS,cAAc,CAAC,CAAC,CAAC,EAC1B,eAAc,OAAc,+CAC6B,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,IAAI,EACJ,OAAO,EACP,MAAM,EACN,EAAE,EACF,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,SAAS,EACT,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7D,SAAS,cAAc,CAAC,CAAC,CAAC,EAC1B,eAAc,OAAc,+CAC6B,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,IAAI,EACJ,OAAO,EACP,MAAM,EACN,EAAE,EACF,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,SAAS,EACT,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGtH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -24,14 +24,23 @@
24
24
  * _source: { excludes: ['embedding'] },
25
25
  * });
26
26
  */
27
- import type { FieldMapping, FieldTypeString } from './index-management.types.js';
28
27
  import type { MappingOptions, MappingsSchema } from './mapping.types.js';
29
- type FieldMappingWithLiteralType = FieldMapping & {
30
- type: FieldTypeString;
31
- };
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]>;
32
37
  type ExtractFieldTypes<F extends Record<string, FieldMappingWithLiteralType>> = {
33
38
  [K in keyof F]: F[K]['type'];
34
- };
35
- export declare const mappings: <F extends Record<string, FieldMappingWithLiteralType>>(fields: F, options?: MappingOptions) => MappingsSchema<ExtractFieldTypes<F>>;
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>;
36
45
  export {};
37
46
  //# sourceMappingURL=mapping.builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.builder.d.ts","sourceRoot":"","sources":["../src/mapping.builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzE,KAAK,2BAA2B,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAE5E,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,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,CAarC,CAAC"}
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"}
@@ -32,6 +32,7 @@ export const mappings = (fields, options) => {
32
32
  };
33
33
  return {
34
34
  _fieldTypes: undefined,
35
+ _fields: undefined,
35
36
  properties,
36
37
  _mappingOptions: mappingOptions
37
38
  };
@@ -4,6 +4,7 @@
4
4
  * that maps field names to their ES type literals.
5
5
  */
6
6
  import type { FieldMapping, FieldTypeString, SourceConfig } from './index-management.types.js';
7
+ import type { FieldMappingWithLiteralType } from './field.types.js';
7
8
  /**
8
9
  * Options for `mappings()`.
9
10
  *
@@ -20,8 +21,9 @@ export type MappingOptions = {
20
21
  _source?: SourceConfig;
21
22
  _meta?: Record<string, unknown>;
22
23
  };
23
- export type MappingsSchema<M extends Record<string, FieldTypeString>> = Readonly<{
24
+ export type MappingsSchema<M extends Record<string, FieldTypeString>, F extends Record<string, FieldMappingWithLiteralType> = Record<string, FieldMappingWithLiteralType>> = Readonly<{
24
25
  _fieldTypes: M;
26
+ _fields?: F;
25
27
  properties: Record<string, FieldMapping>;
26
28
  _mappingOptions?: MappingOptions;
27
29
  }>;
@@ -87,19 +89,65 @@ type ESTypeToTS = {
87
89
  lt?: string;
88
90
  };
89
91
  };
90
- export type Infer<S> = S extends MappingsSchema<infer M> ? {
91
- [K in keyof M]: M[K] extends keyof ESTypeToTS ? ESTypeToTS[M[K]] : unknown;
92
- } : never;
92
+ type InferSubFields<F extends Record<string, FieldMappingWithLiteralType>> = {
93
+ [K in keyof F]: F[K] extends {
94
+ _subFields: infer Sub extends Record<string, FieldMappingWithLiteralType>;
95
+ } ? F[K] extends {
96
+ type: 'nested';
97
+ } ? Array<InferSubFields<Sub>> : InferSubFields<Sub> : F[K]['type'] extends keyof ESTypeToTS ? ESTypeToTS[F[K]['type']] : unknown;
98
+ };
99
+ export type Infer<S> = S extends MappingsSchema<infer _M, infer F> ? InferSubFields<F> : never;
93
100
  export type FieldsOfType<M extends Record<string, FieldTypeString>, Types extends FieldTypeString> = {
94
101
  [K in keyof M]: M[K] extends Types ? K : never;
95
102
  }[keyof M];
96
- export type TextFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'text' | 'match_only_text' | 'search_as_you_type'>;
97
- export type KeywordFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'keyword' | 'constant_keyword' | 'wildcard'>;
98
- export type NumericFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float'>;
99
- export type DateFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'date'>;
100
- export type BooleanFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'boolean'>;
101
- export type GeoPointFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'geo_point'>;
102
- export type VectorFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'dense_vector'>;
103
- export type IpFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'ip'>;
103
+ /**
104
+ * Removes keys from M that are sub-fields of a `nested` parent.
105
+ * For example, if `variants` is a nested field, `variants.color` is excluded.
106
+ * Used to prevent root-level query methods from accepting nested descendants —
107
+ * those fields must be queried inside a `.nested()` callback instead.
108
+ */
109
+ type ExcludeNestedDescendants<M extends Record<string, FieldTypeString>> = {
110
+ [K in keyof M as K extends `${FieldsOfType<M, 'nested'> & string}.${string}` ? never : K]: M[K];
111
+ };
112
+ export type TextFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'text' | 'match_only_text' | 'search_as_you_type'>;
113
+ export type KeywordFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'keyword' | 'constant_keyword' | 'wildcard'>;
114
+ export type NumericFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float'>;
115
+ export type DateFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'date'>;
116
+ export type BooleanFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'boolean'>;
117
+ export type GeoPointFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'geo_point'>;
118
+ export type VectorFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'dense_vector'>;
119
+ export type IpFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'ip'>;
120
+ /**
121
+ * Fields valid for sorting in Elasticsearch.
122
+ * Excludes `object`, `nested`, `dense_vector`, `binary`, `geo_shape`, `geo_point`, and other non-sortable types.
123
+ * Note: `geo_point` fields require the special `_geo_distance` sort syntax, not a plain field sort.
124
+ */
125
+ export type SortableFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'keyword' | 'constant_keyword' | 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float' | 'date' | 'boolean' | 'ip'>;
126
+ /**
127
+ * Fields valid for field collapsing in Elasticsearch.
128
+ * Collapse requires a keyword or numeric field.
129
+ */
130
+ export type CollapsibleFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'keyword' | 'constant_keyword' | 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float'>;
131
+ /**
132
+ * Fields valid for highlighting in Elasticsearch.
133
+ * Highlighting applies to text-like and keyword fields only.
134
+ */
135
+ export type HighlightableFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'text' | 'match_only_text' | 'search_as_you_type' | 'keyword' | 'constant_keyword' | 'wildcard'>;
136
+ /** Maps a single FieldTypeString to its TypeScript value type. Used by Val<M,K> in query constraints. */
137
+ export type FieldValueType<T extends FieldTypeString> = T extends keyof ESTypeToTS ? ESTypeToTS[T] : unknown;
138
+ /**
139
+ * Extracts field names from M that have type `'nested'`.
140
+ * Used to constrain the `path` argument of `.nested()` to valid nested field names.
141
+ */
142
+ export type NestedPathFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'nested'>;
143
+ /**
144
+ * Given a parent field path (e.g. `'tags'`), extracts the sub-fields of that path
145
+ * from the flat expanded M map. Keys like `'tags.label'` become `'label'` in the result.
146
+ *
147
+ * Used to provide a typed `ClauseBuilder` for the inner callback of `.nested()`.
148
+ */
149
+ export type SubFieldsOf<M extends Record<string, FieldTypeString>, Path extends string> = {
150
+ [K in keyof M as K extends `${Path}.${infer Rest}` ? Rest : never]: M[K] & FieldTypeString;
151
+ };
104
152
  export {};
105
153
  //# sourceMappingURL=mapping.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.types.d.ts","sourceRoot":"","sources":["../src/mapping.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAM/F;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAMF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,QAAQ,CAAC;IAC/E,WAAW,EAAE,CAAC,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC,CAAC,CAAC;AAMH,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,WAAW,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,UAAU,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,YAAY,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IACjB,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAC7B;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;CAC3E,GACD,KAAK,CAAC;AAMZ,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,KAAK,SAAS,eAAe,IAAI;KAClG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,KAAK;CAC/C,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CAC9E,CAAC,EACD,MAAM,GAAG,iBAAiB,GAAG,oBAAoB,CAClD,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CACjF,CAAC,EACD,SAAS,GAAG,kBAAkB,GAAG,UAAU,CAC5C,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CACjF,CAAC,EACD,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,CAC3F,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAE5F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAElG,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAErG,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAEtG,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"mapping.types.d.ts","sourceRoot":"","sources":["../src/mapping.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.builder.d.ts","sourceRoot":"","sources":["../src/query.builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AA6EhF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1E,QAAO,UAAU,CAAC,CAAC,CAAM,KACxB,YAAY,CAAC,CAAC,CAyMf,CAAC"}
1
+ {"version":3,"file":"query.builder.d.ts","sourceRoot":"","sources":["../src/query.builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAwFhF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1E,QAAO,UAAU,CAAC,CAAC,CAAM,KACxB,YAAY,CAAC,CAAC,CAgMf,CAAC"}
@@ -1,20 +1,21 @@
1
1
  import { createAggregationBuilder } from './aggregation.builder.js';
2
2
  import { createSuggesterBuilder } from './suggester.builder.js';
3
+ const resolveCondition = (c) => typeof c === 'function' ? resolveCondition(c()) : typeof c === 'boolean' ? c : c != null;
3
4
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
- const createClauseMethods = (wrap) => ({
5
+ const createClauseMethods = (wrap, qualifyField = (f) => f) => ({
5
6
  // eslint-disable-next-line functional/functional-parameters
6
7
  matchAll: () => wrap({ match_all: {} }),
7
- match: (field, value, options) => wrap({ match: { [field]: options ? { query: value, ...options } : value } }),
8
- multiMatch: (fields, query, options) => wrap({ multi_match: { fields, query, ...(options && options) } }),
9
- matchPhrase: (field, query) => wrap({ match_phrase: { [field]: query } }),
10
- matchPhrasePrefix: (field, value, options) => wrap({ match_phrase_prefix: { [field]: options ? { query: value, ...options } : value } }),
11
- term: (field, value) => wrap({ term: { [field]: value } }),
12
- terms: (field, value) => wrap({ terms: { [field]: value } }),
13
- range: (field, conditions) => wrap({ range: { [field]: conditions } }),
14
- exists: (field) => wrap({ exists: { field } }),
15
- prefix: (field, value) => wrap({ prefix: { [field]: value } }),
16
- wildcard: (field, value) => wrap({ wildcard: { [field]: value } }),
17
- fuzzy: (field, value, options) => wrap({ fuzzy: { [field]: options ? { value, ...options } : { value } } }),
8
+ match: (field, value, options) => wrap({ match: { [qualifyField(field)]: options ? { query: value, ...options } : value } }),
9
+ multiMatch: (fields, query, options) => wrap({ multi_match: { fields: fields.map(qualifyField), query, ...(options && options) } }),
10
+ matchPhrase: (field, query) => wrap({ match_phrase: { [qualifyField(field)]: query } }),
11
+ matchPhrasePrefix: (field, value, options) => wrap({ match_phrase_prefix: { [qualifyField(field)]: options ? { query: value, ...options } : value } }),
12
+ term: (field, value) => wrap({ term: { [qualifyField(field)]: value } }),
13
+ terms: (field, value) => wrap({ terms: { [qualifyField(field)]: value } }),
14
+ range: (field, conditions) => wrap({ range: { [qualifyField(field)]: conditions } }),
15
+ exists: (field) => wrap({ exists: { field: qualifyField(field) } }),
16
+ prefix: (field, value) => wrap({ prefix: { [qualifyField(field)]: value } }),
17
+ wildcard: (field, value) => wrap({ wildcard: { [qualifyField(field)]: value } }),
18
+ fuzzy: (field, value, options) => wrap({ fuzzy: { [qualifyField(field)]: options ? { value, ...options } : { value } } }),
18
19
  ids: (values) => wrap({ ids: { values } }),
19
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
21
  script: (options) => {
@@ -26,37 +27,45 @@ const createClauseMethods = (wrap) => ({
26
27
  }
27
28
  });
28
29
  },
29
- combinedFields: (fields, query, options) => wrap({ combined_fields: { fields, query, ...(options && options) } }),
30
+ combinedFields: (fields, query, options) => wrap({ combined_fields: { fields: fields.map(qualifyField), query, ...(options && options) } }),
30
31
  queryString: (query, options) => wrap({ query_string: { query, ...(options && options) } }),
31
32
  simpleQueryString: (query, options) => wrap({ simple_query_string: { query, ...(options && options) } }),
32
33
  moreLikeThis: (fields, like, options) => wrap({
33
34
  more_like_this: {
34
- fields,
35
+ fields: fields.map(qualifyField),
35
36
  like: Array.isArray(like) ? like : [like],
36
37
  ...(options && options)
37
38
  }
38
39
  }),
39
- matchBoolPrefix: (field, value, options) => wrap({ match_bool_prefix: { [field]: options ? { query: value, ...options } : value } })
40
- });
41
- // eslint-disable-next-line functional/functional-parameters
42
- const createClauseBuilder = () => ({
43
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
- ...createClauseMethods((dsl) => dsl),
45
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
- knn: (field, queryVector, options) => {
47
- const { k, num_candidates, ...restOptions } = options;
48
- return {
49
- knn: {
50
- field,
51
- query_vector: queryVector,
52
- k,
53
- num_candidates,
54
- ...(restOptions && restOptions)
55
- }
56
- };
57
- },
58
- when: (condition, thenFn, elseFn) => condition ? thenFn(createClauseBuilder()) : elseFn ? elseFn(createClauseBuilder()) : undefined
40
+ matchBoolPrefix: (field, value, options) => wrap({ match_bool_prefix: { [qualifyField(field)]: options ? { query: value, ...options } : value } })
59
41
  });
42
+ const createClauseBuilder = (prefix) => {
43
+ const qualifyField = prefix ? (f) => `${prefix}.${f}` : (f) => f;
44
+ return {
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
+ ...createClauseMethods((dsl) => dsl, qualifyField),
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ knn: (field, queryVector, options) => {
49
+ const { k, num_candidates, ...restOptions } = options;
50
+ return {
51
+ knn: {
52
+ field: qualifyField(field),
53
+ query_vector: queryVector,
54
+ k,
55
+ num_candidates,
56
+ ...(restOptions && restOptions)
57
+ }
58
+ };
59
+ },
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ nested: (path, fn, options) => {
62
+ const nestedPath = prefix ? `${prefix}.${path}` : path;
63
+ const nestedQuery = fn(createClauseBuilder(nestedPath));
64
+ return nestedQuery === undefined ? undefined : { nested: { path, query: nestedQuery, ...(options && options) } };
65
+ },
66
+ when: (condition, thenFn) => (resolveCondition(condition) ? thenFn(createClauseBuilder(prefix)) : undefined)
67
+ };
68
+ };
60
69
  export const createQueryBuilder = (state = {}) => ({
61
70
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
71
  ...createClauseMethods((dsl) => createQueryBuilder({ ...state, query: dsl })),
@@ -65,34 +74,30 @@ export const createQueryBuilder = (state = {}) => ({
65
74
  must: (builderFn) => {
66
75
  const clause = builderFn(createClauseBuilder());
67
76
  const existing = state.query?.bool?.must || [];
68
- return createQueryBuilder({
69
- ...state,
70
- query: { bool: { ...state.query.bool, must: [...existing, clause].filter((c) => c !== undefined) } }
71
- });
77
+ return clause === undefined
78
+ ? createQueryBuilder(state)
79
+ : createQueryBuilder({ ...state, query: { bool: { ...state.query.bool, must: [...existing, clause] } } });
72
80
  },
73
81
  mustNot: (builderFn) => {
74
82
  const clause = builderFn(createClauseBuilder());
75
83
  const existing = state.query?.bool?.must_not || [];
76
- return createQueryBuilder({
77
- ...state,
78
- query: { bool: { ...state.query.bool, must_not: [...existing, clause].filter((c) => c !== undefined) } }
79
- });
84
+ return clause === undefined
85
+ ? createQueryBuilder(state)
86
+ : createQueryBuilder({ ...state, query: { bool: { ...state.query.bool, must_not: [...existing, clause] } } });
80
87
  },
81
88
  should: (builderFn) => {
82
89
  const clause = builderFn(createClauseBuilder());
83
90
  const existing = state.query?.bool?.should || [];
84
- return createQueryBuilder({
85
- ...state,
86
- query: { bool: { ...state.query.bool, should: [...existing, clause].filter((c) => c !== undefined) } }
87
- });
91
+ return clause === undefined
92
+ ? createQueryBuilder(state)
93
+ : createQueryBuilder({ ...state, query: { bool: { ...state.query.bool, should: [...existing, clause] } } });
88
94
  },
89
95
  filter: (builderFn) => {
90
96
  const clause = builderFn(createClauseBuilder());
91
97
  const existing = state.query?.bool?.filter || [];
92
- return createQueryBuilder({
93
- ...state,
94
- query: { bool: { ...state.query.bool, filter: [...existing, clause].filter((c) => c !== undefined) } }
95
- });
98
+ return clause === undefined
99
+ ? createQueryBuilder(state)
100
+ : createQueryBuilder({ ...state, query: { bool: { ...state.query.bool, filter: [...existing, clause] } } });
96
101
  },
97
102
  minimumShouldMatch: (value) => createQueryBuilder({
98
103
  ...state,
@@ -112,21 +117,16 @@ export const createQueryBuilder = (state = {}) => ({
112
117
  });
113
118
  },
114
119
  nested: (path, fn, options) => {
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- const nestedQuery = fn(createClauseBuilder());
117
- return createQueryBuilder({
118
- ...state,
119
- query: {
120
- nested: {
121
- path,
122
- query: nestedQuery,
123
- ...(options && options)
124
- }
125
- }
126
- });
120
+ const nestedQuery = fn(createClauseBuilder(path));
121
+ return nestedQuery === undefined
122
+ ? createQueryBuilder(state)
123
+ : createQueryBuilder({
124
+ ...state,
125
+ query: { nested: { path, query: nestedQuery, ...(options && options) } }
126
+ });
127
127
  },
128
128
  scriptScore: (queryFn, script, options) => {
129
- const innerQuery = queryFn(createClauseBuilder());
129
+ const innerQuery = queryFn(createClauseBuilder()) ?? { match_all: {} };
130
130
  const { source, lang = 'painless', params } = script;
131
131
  return createQueryBuilder({
132
132
  ...state,
@@ -141,7 +141,7 @@ export const createQueryBuilder = (state = {}) => ({
141
141
  });
142
142
  },
143
143
  percolate: (options) => createQueryBuilder({ ...state, query: { percolate: { ...options } } }),
144
- when: (condition, thenFn, elseFn) => condition ? thenFn(createQueryBuilder(state)) : elseFn ? elseFn(createQueryBuilder(state)) : undefined,
144
+ when: (condition, thenFn) => resolveCondition(condition) ? thenFn(createQueryBuilder(state)) : createQueryBuilder(state),
145
145
  sort: (field, direction = 'asc') => {
146
146
  const existing = state.sort || [];
147
147
  return createQueryBuilder({
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { QueryDslMatchQuery, QueryDslMultiMatchQuery, QueryDslFuzzyQuery, QueryDslRegexpQuery, QueryDslConstantScoreQuery, QueryDslScriptQuery, QueryDslScriptScoreQuery, QueryDslPercolateQuery, QueryDslMatchPhrasePrefixQuery, QueryDslCombinedFieldsQuery, QueryDslQueryStringQuery, QueryDslSimpleQueryStringQuery, QueryDslMoreLikeThisQuery, QueryDslMatchBoolPrefixQuery, SearchHighlightBase, Script } from '@elastic/elasticsearch/lib/api/types';
7
7
  import type { FieldTypeString } from './index-management.types.js';
8
- import type { Infer, MappingsSchema, TextFields, KeywordFields, NumericFields, DateFields, BooleanFields, GeoPointFields, VectorFields, IpFields } from './mapping.types.js';
8
+ import type { TextFields, KeywordFields, NumericFields, DateFields, BooleanFields, GeoPointFields, VectorFields, IpFields, NestedPathFields, SubFieldsOf, FieldValueType, SortableFields, CollapsibleFields, HighlightableFields } from './mapping.types.js';
9
9
  import type { AggregationBuilder, AggregationState } from './aggregation.types.js';
10
10
  import type { KnnOptions } from './vector.types.js';
11
11
  import type { SuggesterBuilder, SuggesterState } from './suggester.types.js';
@@ -53,7 +53,7 @@ export type MatchBoolPrefixOptions = Omit<QueryDslMatchBoolPrefixQuery, 'query'>
53
53
  type TermableFields<M extends Record<string, FieldTypeString>> = KeywordFields<M> | NumericFields<M> | DateFields<M> | BooleanFields<M> | IpFields<M>;
54
54
  type RangeableFields<M extends Record<string, FieldTypeString>> = NumericFields<M> | DateFields<M> | KeywordFields<M> | IpFields<M>;
55
55
  type FuzzyableFields<M extends Record<string, FieldTypeString>> = TextFields<M> | KeywordFields<M>;
56
- type Val<M extends Record<string, FieldTypeString>, K extends keyof M> = Infer<MappingsSchema<M>>[K];
56
+ type Val<M extends Record<string, FieldTypeString>, K extends keyof M> = FieldValueType<M[K]>;
57
57
  export type QueryState<M extends Record<string, FieldTypeString>> = {
58
58
  _includeQuery?: boolean;
59
59
  query?: any;
@@ -128,12 +128,35 @@ export type ClauseBuilder<M extends Record<string, FieldTypeString>> = {
128
128
  combinedFields: <K extends TextFields<M> & string>(fields: K[], query: string, options?: CombinedFieldsOptions) => any;
129
129
  queryString: (query: string, options?: QueryStringOptions) => any;
130
130
  simpleQueryString: (query: string, options?: SimpleQueryStringOptions) => any;
131
- moreLikeThis: (fields: Array<string & keyof M>, like: string | Array<string | {
131
+ moreLikeThis: (fields: Array<(TextFields<M> | KeywordFields<M>) & string>, like: string | Array<string | {
132
132
  _index: string;
133
133
  _id: string;
134
134
  }>, options?: MoreLikeThisOptions) => any;
135
135
  matchBoolPrefix: <K extends TextFields<M> & string>(field: K, value: string, options?: MatchBoolPrefixOptions) => any;
136
- when: <R>(condition: any, thenFn: (q: ClauseBuilder<M>) => R, elseFn?: (q: ClauseBuilder<M>) => R) => R | undefined;
136
+ /**
137
+ * Conditionally execute a clause. Returns the clause DSL when `condition` is truthy, `undefined` otherwise.
138
+ * The parent bool method (`must`, `filter`, etc.) treats `undefined` as a no-op — no empty arrays are emitted.
139
+ *
140
+ * `condition` is resolved as follows: functions are called, booleans are used as-is,
141
+ * and any other value is checked for nullishness (`!= null`) — so `0` and `''` are truthy.
142
+ *
143
+ * **Note:** TypeScript cannot narrow closure variables inside callbacks, so values typed as `T | undefined`
144
+ * still require a non-null assertion (`!`) inside the callback even when `condition` guarantees they are defined:
145
+ * ```ts
146
+ * .must(q => q.when(searchTerm, q => q.match('name', searchTerm!)))
147
+ * ```
148
+ */
149
+ /**
150
+ * Nested query inside a clause context — use inside `must`, `filter`, `should`, or `mustNot`.
151
+ *
152
+ * ```ts
153
+ * query(m).bool().filter(q => q.nested('variants', qn => qn.term('color', 'red')))
154
+ * ```
155
+ */
156
+ nested: <K extends NestedPathFields<M> & string>(path: K, fn: (q: ClauseBuilder<SubFieldsOf<M, K>>) => any, options?: {
157
+ score_mode?: 'avg' | 'sum' | 'min' | 'max' | 'none';
158
+ }) => any;
159
+ when: (condition: unknown, thenFn: (q: ClauseBuilder<M>) => any) => any | undefined;
137
160
  };
138
161
  export type QueryBuilder<M extends Record<string, FieldTypeString>> = {
139
162
  bool: () => QueryBuilder<M>;
@@ -160,17 +183,46 @@ export type QueryBuilder<M extends Record<string, FieldTypeString>> = {
160
183
  wildcard: <K extends KeywordFields<M> & string>(field: K, value: string) => QueryBuilder<M>;
161
184
  fuzzy: <K extends FuzzyableFields<M> & string>(field: K, value: string, options?: FuzzyOptions) => QueryBuilder<M>;
162
185
  ids: (values: string[]) => QueryBuilder<M>;
163
- nested: (path: string, fn: (q: ClauseBuilder<any>) => any, options?: {
186
+ /**
187
+ * Nested query — for querying fields mapped as `nested()`.
188
+ *
189
+ * Each nested object is stored as a separate hidden document. The `.nested()` wrapper
190
+ * is required for Elasticsearch to search those hidden documents correctly. Without it,
191
+ * queries against nested sub-fields will return no results.
192
+ *
193
+ * The inner callback receives a typed `ClauseBuilder` constrained to the sub-fields of
194
+ * `path`, so field names and value types are checked at compile time.
195
+ *
196
+ * For `object()` fields, no wrapper is needed — query sub-fields directly with dot-notation
197
+ * (e.g. `.term('address.city', 'NYC')`).
198
+ */
199
+ nested: <K extends NestedPathFields<M> & string>(path: K, fn: (q: ClauseBuilder<SubFieldsOf<M, K>>) => any, options?: {
164
200
  score_mode?: 'avg' | 'sum' | 'min' | 'max' | 'none';
165
201
  }) => QueryBuilder<M>;
166
202
  knn: <K extends VectorFields<M> & string>(field: K, queryVector: number[], options: KnnOptions) => QueryBuilder<M>;
167
203
  script: (options: ScriptQueryOptions) => QueryBuilder<M>;
168
204
  scriptScore: (query: (q: ClauseBuilder<M>) => any, script: ScriptOptions, options?: ScriptScoreOptions) => QueryBuilder<M>;
169
205
  percolate: (options: PercolateOptions) => QueryBuilder<M>;
170
- when: <R>(condition: any, thenFn: (q: QueryBuilder<M>) => R, elseFn?: (q: QueryBuilder<M>) => R) => R | undefined;
206
+ /**
207
+ * Conditionally apply a branch to the query chain. Returns the result of `thenFn` when `condition` is truthy,
208
+ * otherwise returns the current builder unchanged — the chain is never broken.
209
+ *
210
+ * `condition` is resolved as follows: functions are called, booleans are used as-is,
211
+ * and any other value is checked for nullishness (`!= null`) — so `0` and `''` are truthy.
212
+ *
213
+ * **Note:** TypeScript cannot narrow closure variables inside callbacks, so values typed as `T | undefined`
214
+ * still require a non-null assertion (`!`) inside the callback even when `condition` guarantees they are defined:
215
+ * ```ts
216
+ * query(m).bool()
217
+ * .when(searchTerm, q => q.must(q2 => q2.match('name', searchTerm!)))
218
+ * .when(minPrice, q => q.filter(q2 => q2.range('price', { gte: minPrice! })))
219
+ * .build()
220
+ * ```
221
+ */
222
+ when: (condition: unknown, thenFn: (q: QueryBuilder<M>) => QueryBuilder<M>) => QueryBuilder<M>;
171
223
  aggs: (fn: (agg: AggregationBuilder<M>) => AggregationBuilder<M>) => QueryBuilder<M>;
172
224
  suggest: (fn: (s: SuggesterBuilder<M>) => SuggesterBuilder<M>) => QueryBuilder<M>;
173
- sort: (field: (string & keyof M) | '_score' | '_doc', direction: 'asc' | 'desc') => QueryBuilder<M>;
225
+ sort: (field: (SortableFields<M> & string) | '_score' | '_doc', direction: 'asc' | 'desc') => QueryBuilder<M>;
174
226
  from: (from: number) => QueryBuilder<M>;
175
227
  size: (size: number) => QueryBuilder<M>;
176
228
  _source: (fields: Array<string & keyof M>) => QueryBuilder<M>;
@@ -181,7 +233,7 @@ export type QueryBuilder<M extends Record<string, FieldTypeString>> = {
181
233
  version: (version: boolean) => QueryBuilder<M>;
182
234
  seqNoPrimaryTerm: (enabled: boolean) => QueryBuilder<M>;
183
235
  trackTotalHits: (value: boolean | number) => QueryBuilder<M>;
184
- highlight: (fields: Array<string & keyof M>, options?: HighlightOptions) => QueryBuilder<M>;
236
+ highlight: (fields: Array<HighlightableFields<M> & string>, options?: HighlightOptions) => QueryBuilder<M>;
185
237
  geoDistance: <K extends GeoPointFields<M> & string>(field: K, center: {
186
238
  lat: number;
187
239
  lon: number;
@@ -193,14 +245,14 @@ export type QueryBuilder<M extends Record<string, FieldTypeString>> = {
193
245
  combinedFields: <K extends TextFields<M> & string>(fields: K[], query: string, options?: CombinedFieldsOptions) => QueryBuilder<M>;
194
246
  queryString: (query: string, options?: QueryStringOptions) => QueryBuilder<M>;
195
247
  simpleQueryString: (query: string, options?: SimpleQueryStringOptions) => QueryBuilder<M>;
196
- moreLikeThis: (fields: Array<string & keyof M>, like: string | Array<string | {
248
+ moreLikeThis: (fields: Array<(TextFields<M> | KeywordFields<M>) & string>, like: string | Array<string | {
197
249
  _index: string;
198
250
  _id: string;
199
251
  }>, options?: MoreLikeThisOptions) => QueryBuilder<M>;
200
252
  matchBoolPrefix: <K extends TextFields<M> & string>(field: K, value: string, options?: MatchBoolPrefixOptions) => QueryBuilder<M>;
201
253
  searchAfter: (values: unknown[]) => QueryBuilder<M>;
202
254
  preference: (value: string) => QueryBuilder<M>;
203
- collapse: (field: string & keyof M, options?: {
255
+ collapse: (field: CollapsibleFields<M> & string, options?: {
204
256
  inner_hits?: any;
205
257
  max_concurrent_group_searches?: number;
206
258
  }) => QueryBuilder<M>;
@@ -1 +1 @@
1
- {"version":3,"file":"query.types.d.ts","sourceRoot":"","sources":["../src/query.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.types.d.ts","sourceRoot":"","sources":["../src/query.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elasticlink",
3
- "version": "0.4.1-beta",
3
+ "version": "0.6.0-beta",
4
4
  "description": "Type-safe, lightweight Elasticsearch query builder with fluent API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -19,9 +19,9 @@
19
19
  "scripts": {
20
20
  "build": "rm -rf dist && tsc -p tsconfig.build.json",
21
21
  "test": "vitest run",
22
- "test:integration": "vitest run --config vitest.integration.config.ts",
23
22
  "test:watch": "vitest",
24
23
  "test:coverage": "vitest run --coverage",
24
+ "test:integration": "vitest run --config vitest.integration.config.ts",
25
25
  "lint": "eslint src --ext .ts",
26
26
  "format": "prettier --write \"src/**/*.ts\"",
27
27
  "audit": "better-npm-audit audit --level=high",