elasticlink 0.2.2-beta → 0.3.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.
Files changed (47) hide show
  1. package/README.md +162 -163
  2. package/dist/aggregation.builder.d.ts +4 -2
  3. package/dist/aggregation.builder.d.ts.map +1 -1
  4. package/dist/aggregation.builder.js +1 -1
  5. package/dist/aggregation.types.d.ts +15 -14
  6. package/dist/aggregation.types.d.ts.map +1 -1
  7. package/dist/bulk.builder.d.ts +115 -1
  8. package/dist/bulk.builder.d.ts.map +1 -1
  9. package/dist/bulk.builder.js +1 -1
  10. package/dist/field.helpers.d.ts +39 -44
  11. package/dist/field.helpers.d.ts.map +1 -1
  12. package/dist/field.helpers.js +15 -19
  13. package/dist/field.types.d.ts +35 -5
  14. package/dist/field.types.d.ts.map +1 -1
  15. package/dist/field.types.js +3 -3
  16. package/dist/index-management.builder.d.ts +5 -12
  17. package/dist/index-management.builder.d.ts.map +1 -1
  18. package/dist/index-management.builder.js +10 -32
  19. package/dist/index-management.types.d.ts +10 -64
  20. package/dist/index-management.types.d.ts.map +1 -1
  21. package/dist/index-management.types.js +0 -1
  22. package/dist/index.d.ts +16 -12
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +10 -8
  25. package/dist/mapping.builder.d.ts +24 -0
  26. package/dist/mapping.builder.d.ts.map +1 -0
  27. package/dist/mapping.builder.js +23 -0
  28. package/dist/mapping.types.d.ts +82 -0
  29. package/dist/mapping.types.d.ts.map +1 -0
  30. package/dist/mapping.types.js +6 -0
  31. package/dist/multi-search.builder.d.ts +5 -3
  32. package/dist/multi-search.builder.d.ts.map +1 -1
  33. package/dist/multi-search.builder.js +2 -2
  34. package/dist/multi-search.types.d.ts +7 -6
  35. package/dist/multi-search.types.d.ts.map +1 -1
  36. package/dist/query.builder.d.ts +3 -7
  37. package/dist/query.builder.d.ts.map +1 -1
  38. package/dist/query.builder.js +29 -91
  39. package/dist/query.types.d.ts +85 -235
  40. package/dist/query.types.d.ts.map +1 -1
  41. package/dist/query.types.js +2 -1
  42. package/dist/suggester.builder.d.ts +5 -3
  43. package/dist/suggester.builder.d.ts.map +1 -1
  44. package/dist/suggester.builder.js +2 -2
  45. package/dist/suggester.types.d.ts +5 -4
  46. package/dist/suggester.types.d.ts.map +1 -1
  47. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation.types.d.ts","sourceRoot":"","sources":["../src/aggregation.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregation.types.d.ts","sourceRoot":"","sources":["../src/aggregation.types.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  * Bulk API builder
3
3
  * Enables batching multiple index/create/update/delete operations
4
4
  */
5
+ import type { FieldTypeString } from './index-management.types.js';
6
+ import type { MappingsSchema } from './mapping.types.js';
5
7
  import { BulkBuilder } from './bulk.types.js';
6
8
  /**
7
9
  * Creates a bulk operations builder
@@ -20,5 +22,117 @@ export declare const createBulkBuilder: <T>(operations?: any[]) => BulkBuilder<T
20
22
  * .delete({ _index: 'products', _id: '4' })
21
23
  * .build(); // POST to /_bulk with Content-Type: application/x-ndjson
22
24
  */
23
- export declare const bulk: <T>() => BulkBuilder<T>;
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
+ keyword: string;
28
+ long: number;
29
+ integer: number;
30
+ short: number;
31
+ byte: number;
32
+ float: number;
33
+ double: number;
34
+ half_float: number;
35
+ scaled_float: number;
36
+ date: string;
37
+ boolean: boolean;
38
+ binary: string;
39
+ ip: string;
40
+ geo_point: {
41
+ lat: number;
42
+ lon: number;
43
+ };
44
+ geo_shape: Record<string, unknown>;
45
+ dense_vector: number[];
46
+ completion: string;
47
+ nested: unknown;
48
+ object: unknown;
49
+ alias: unknown;
50
+ percolator: unknown;
51
+ integer_range: {
52
+ gte?: number;
53
+ lte?: number;
54
+ gt?: number;
55
+ lt?: number;
56
+ };
57
+ float_range: {
58
+ gte?: number;
59
+ lte?: number;
60
+ gt?: number;
61
+ lt?: number;
62
+ };
63
+ long_range: {
64
+ gte?: number;
65
+ lte?: number;
66
+ gt?: number;
67
+ lt?: number;
68
+ };
69
+ double_range: {
70
+ gte?: number;
71
+ lte?: number;
72
+ gt?: number;
73
+ lt?: number;
74
+ };
75
+ date_range: {
76
+ gte?: string;
77
+ lte?: string;
78
+ gt?: string;
79
+ lt?: string;
80
+ };
81
+ } ? {
82
+ text: string;
83
+ keyword: string;
84
+ long: number;
85
+ integer: number;
86
+ short: number;
87
+ byte: number;
88
+ float: number;
89
+ double: number;
90
+ half_float: number;
91
+ scaled_float: number;
92
+ date: string;
93
+ boolean: boolean;
94
+ binary: string;
95
+ ip: string;
96
+ geo_point: {
97
+ lat: number;
98
+ lon: number;
99
+ };
100
+ geo_shape: Record<string, unknown>;
101
+ dense_vector: number[];
102
+ completion: string;
103
+ nested: unknown;
104
+ object: unknown;
105
+ alias: unknown;
106
+ percolator: unknown;
107
+ integer_range: {
108
+ gte?: number;
109
+ lte?: number;
110
+ gt?: number;
111
+ lt?: number;
112
+ };
113
+ float_range: {
114
+ gte?: number;
115
+ lte?: number;
116
+ gt?: number;
117
+ lt?: number;
118
+ };
119
+ long_range: {
120
+ gte?: number;
121
+ lte?: number;
122
+ gt?: number;
123
+ lt?: number;
124
+ };
125
+ double_range: {
126
+ gte?: number;
127
+ lte?: number;
128
+ gt?: number;
129
+ lt?: number;
130
+ };
131
+ date_range: {
132
+ gte?: string;
133
+ lte?: string;
134
+ gt?: string;
135
+ lt?: string;
136
+ };
137
+ }[M[K]] : unknown; }>;
24
138
  //# 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,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAEjC,aAAY,GAAG,EAAO,KACrB,WAAW,CAAC,CAAC,CA8Bd,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,qBAA6B,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,CA8Bd,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC5D,SAAS,cAAc,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;WAnBiC,CAAC;WAC5D,CAAC;UAEM,CAAC;UAAY,CAAC;;;WAIP,CAAA;WAAa,CAAC;UAC7B,CAAC;UAAY,CAAC;;;WAA+B,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAC1D,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAChE,CAAC;WACE,CAAA;UAAY,CAAC;UACrB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAZ4D,CAAC;WAC5D,CAAC;UAEM,CAAC;UAAY,CAAC;;;WAIP,CAAA;WAAa,CAAC;UAC7B,CAAC;UAAY,CAAC;;;WAA+B,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAC1D,CAAC;WAAa,CAAC;UAAY,CAAC;UAAY,CAAC;;;WAChE,CAAC;WACE,CAAA;UAAY,CAAC;UACrB,CAAA;;qBAQiD,CAAC"}
@@ -49,4 +49,4 @@ operations = []) => ({
49
49
  * .delete({ _index: 'products', _id: '4' })
50
50
  * .build(); // POST to /_bulk with Content-Type: application/x-ndjson
51
51
  */
52
- export const bulk = () => createBulkBuilder();
52
+ export const bulk = (_schema) => createBulkBuilder();
@@ -1,51 +1,46 @@
1
1
  /**
2
2
  * Field type helper functions for ergonomic index mapping definitions.
3
- * Each helper returns a FieldMapping with `type` pre-filled and only accepts
4
- * options relevant to that specific field type.
3
+ * Each helper returns a narrowly-typed mapping with a literal `type` field,
4
+ * enabling compile-time field-type inference in the query builder.
5
5
  *
6
6
  * @example
7
- * import { text, keyword, denseVector } from 'elasticlink';
7
+ * import { text, keyword, denseVector, mappings } from 'elasticlink';
8
8
  *
9
- * indexBuilder<Product>()
10
- * .mappings({
11
- * name: text({ analyzer: 'standard' }),
12
- * price: 'float',
13
- * category: 'keyword',
14
- * embedding: denseVector({ dims: 384 }),
15
- * })
9
+ * const productMappings = mappings({
10
+ * name: text({ analyzer: 'standard' }),
11
+ * price: float(),
12
+ * category: keyword(),
13
+ * embedding: denseVector({ dims: 384 }),
14
+ * });
16
15
  */
17
- import type { FieldMapping, FieldMappingInput } from './index-management.types.js';
18
- import type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, NestedFields, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions } from './field.types.js';
19
- export declare const text: (options?: TextFieldOptions) => FieldMapping;
20
- export declare const keyword: (options?: KeywordFieldOptions) => FieldMapping;
21
- export declare const long: (options?: NumericFieldOptions) => FieldMapping;
22
- export declare const integer: (options?: NumericFieldOptions) => FieldMapping;
23
- export declare const short: (options?: NumericFieldOptions) => FieldMapping;
24
- export declare const byte: (options?: NumericFieldOptions) => FieldMapping;
25
- export declare const double: (options?: NumericFieldOptions) => FieldMapping;
26
- export declare const float: (options?: NumericFieldOptions) => FieldMapping;
27
- export declare const halfFloat: (options?: NumericFieldOptions) => FieldMapping;
28
- export declare const scaledFloat: (options?: ScaledFloatFieldOptions) => FieldMapping;
29
- export declare const date: (options?: DateFieldOptions) => FieldMapping;
30
- export declare const boolean: (options?: BooleanFieldOptions) => FieldMapping;
31
- export declare const binary: () => FieldMapping;
32
- export declare const ip: (options?: IpFieldOptions) => FieldMapping;
33
- export declare const denseVector: (options?: DenseVectorFieldOptions) => FieldMapping;
34
- export declare const geoPoint: (options?: GeoPointFieldOptions) => FieldMapping;
35
- export declare const geoShape: (options?: GeoShapeFieldOptions) => FieldMapping;
36
- export declare const completion: (options?: CompletionFieldOptions) => FieldMapping;
37
- export declare const nested: (fields?: NestedFields) => FieldMapping;
38
- export declare const object: (fields?: NestedFields, options?: ObjectFieldOptions) => FieldMapping;
39
- export declare const alias: (options?: AliasFieldOptions) => FieldMapping;
40
- export declare const percolator: () => FieldMapping;
41
- export declare const integerRange: (options?: RangeFieldOptions) => FieldMapping;
42
- export declare const floatRange: (options?: RangeFieldOptions) => FieldMapping;
43
- export declare const longRange: (options?: RangeFieldOptions) => FieldMapping;
44
- export declare const doubleRange: (options?: RangeFieldOptions) => FieldMapping;
45
- export declare const dateRange: (options?: RangeFieldOptions) => FieldMapping;
46
- /**
47
- * Resolves a FieldMappingInput to a FieldMapping.
48
- * Converts shorthand strings like 'text' to { type: 'text' }.
49
- */
50
- export declare const resolveField: (input: FieldMappingInput) => FieldMapping;
16
+ import type { FieldMapping } from './index-management.types.js';
17
+ import type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, NestedFields, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions, 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 } from './field.types.js';
18
+ export declare const text: (options?: TextFieldOptions) => TextFieldMapping;
19
+ export declare const keyword: (options?: KeywordFieldOptions) => KeywordFieldMapping;
20
+ export declare const long: (options?: NumericFieldOptions) => LongFieldMapping;
21
+ export declare const integer: (options?: NumericFieldOptions) => IntegerFieldMapping;
22
+ export declare const short: (options?: NumericFieldOptions) => ShortFieldMapping;
23
+ export declare const byte: (options?: NumericFieldOptions) => ByteFieldMapping;
24
+ export declare const double: (options?: NumericFieldOptions) => DoubleFieldMapping;
25
+ export declare const float: (options?: NumericFieldOptions) => FloatFieldMapping;
26
+ export declare const halfFloat: (options?: NumericFieldOptions) => HalfFloatFieldMapping;
27
+ export declare const scaledFloat: (options?: ScaledFloatFieldOptions) => ScaledFloatFieldMapping;
28
+ export declare const date: (options?: DateFieldOptions) => DateFieldMapping;
29
+ export declare const boolean: (options?: BooleanFieldOptions) => BooleanFieldMapping;
30
+ export declare const binary: () => BinaryFieldMapping;
31
+ export declare const ip: (options?: IpFieldOptions) => IpFieldMapping;
32
+ export declare const denseVector: (options?: DenseVectorFieldOptions) => DenseVectorFieldMapping;
33
+ export declare const geoPoint: (options?: GeoPointFieldOptions) => GeoPointFieldMapping;
34
+ export declare const geoShape: (options?: GeoShapeFieldOptions) => GeoShapeFieldMapping;
35
+ export declare const completion: (options?: CompletionFieldOptions) => CompletionFieldMapping;
36
+ export declare const nested: (fields?: NestedFields) => NestedFieldMapping;
37
+ export declare const object: (fields?: NestedFields, options?: ObjectFieldOptions) => ObjectFieldMapping;
38
+ export declare const alias: (options?: AliasFieldOptions) => AliasFieldMapping;
39
+ export declare const percolator: () => PercolatorFieldMapping;
40
+ export declare const integerRange: (options?: RangeFieldOptions) => IntegerRangeFieldMapping;
41
+ export declare const floatRange: (options?: RangeFieldOptions) => FloatRangeFieldMapping;
42
+ export declare const longRange: (options?: RangeFieldOptions) => LongRangeFieldMapping;
43
+ export declare const doubleRange: (options?: RangeFieldOptions) => DoubleRangeFieldMapping;
44
+ export declare const dateRange: (options?: RangeFieldOptions) => DateRangeFieldMapping;
45
+ export declare const resolveField: (input: FieldMapping) => FieldMapping;
51
46
  //# sourceMappingURL=field.helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.helpers.d.ts","sourceRoot":"","sources":["../src/field.helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,IAAI,GAAI,UAAU,gBAAgB,KAAG,YAGhD,CAAC;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,mBAAmB,KAAG,YAGtD,CAAC;AAGH,eAAO,MAAM,IAAI,GAAI,UAAU,mBAAmB,KAAG,YAGnD,CAAC;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,mBAAmB,KAAG,YAGtD,CAAC;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,mBAAmB,KAAG,YAGpD,CAAC;AACH,eAAO,MAAM,IAAI,GAAI,UAAU,mBAAmB,KAAG,YAGnD,CAAC;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,mBAAmB,KAAG,YAGrD,CAAC;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,mBAAmB,KAAG,YAGpD,CAAC;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,mBAAmB,KAAG,YAGxD,CAAC;AACH,eAAO,MAAM,WAAW,GACtB,UAAU,uBAAuB,KAChC,YAAsD,CAAC;AAG1D,eAAO,MAAM,IAAI,GAAI,UAAU,gBAAgB,KAAG,YAGhD,CAAC;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,mBAAmB,KAAG,YAGtD,CAAC;AAGH,eAAO,MAAM,MAAM,QAAO,YAAoC,CAAC;AAG/D,eAAO,MAAM,EAAE,GAAI,UAAU,cAAc,KAAG,YAG5C,CAAC;AAGH,eAAO,MAAM,WAAW,GACtB,UAAU,uBAAuB,KAChC,YAAsD,CAAC;AAG1D,eAAO,MAAM,QAAQ,GAAI,UAAU,oBAAoB,KAAG,YAGxD,CAAC;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,oBAAoB,KAAG,YAGxD,CAAC;AAGH,eAAO,MAAM,UAAU,GAAI,UAAU,sBAAsB,KAAG,YAG5D,CAAC;AAGH,eAAO,MAAM,MAAM,GAAI,SAAS,YAAY,KAAG,YAG7C,CAAC;AACH,eAAO,MAAM,MAAM,GACjB,SAAS,YAAY,EACrB,UAAU,kBAAkB,KAC3B,YAID,CAAC;AAGH,eAAO,MAAM,KAAK,GAAI,UAAU,iBAAiB,KAAG,YAGlD,CAAC;AAGH,eAAO,MAAM,UAAU,QAAO,YAAwC,CAAC;AAGvE,eAAO,MAAM,YAAY,GAAI,UAAU,iBAAiB,KAAG,YAGzD,CAAC;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,iBAAiB,KAAG,YAGvD,CAAC;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,iBAAiB,KAAG,YAGtD,CAAC;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,iBAAiB,KAAG,YAGxD,CAAC;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,iBAAiB,KAAG,YAGtD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,KAAG,YACH,CAAC"}
1
+ {"version":3,"file":"field.helpers.d.ts","sourceRoot":"","sources":["../src/field.helpers.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  /**
2
2
  * Field type helper functions for ergonomic index mapping definitions.
3
- * Each helper returns a FieldMapping with `type` pre-filled and only accepts
4
- * options relevant to that specific field type.
3
+ * Each helper returns a narrowly-typed mapping with a literal `type` field,
4
+ * enabling compile-time field-type inference in the query builder.
5
5
  *
6
6
  * @example
7
- * import { text, keyword, denseVector } from 'elasticlink';
7
+ * import { text, keyword, denseVector, mappings } from 'elasticlink';
8
8
  *
9
- * indexBuilder<Product>()
10
- * .mappings({
11
- * name: text({ analyzer: 'standard' }),
12
- * price: 'float',
13
- * category: 'keyword',
14
- * embedding: denseVector({ dims: 384 }),
15
- * })
9
+ * const productMappings = mappings({
10
+ * name: text({ analyzer: 'standard' }),
11
+ * price: float(),
12
+ * category: keyword(),
13
+ * embedding: denseVector({ dims: 384 }),
14
+ * });
16
15
  */
17
16
  // Text & keyword
18
17
  export const text = (options) => ({
@@ -88,12 +87,12 @@ export const completion = (options) => ({
88
87
  // Structured
89
88
  export const nested = (fields) => ({
90
89
  type: 'nested',
91
- ...(fields && { properties: resolveProperties(fields) })
90
+ ...(fields && { properties: fields })
92
91
  });
93
92
  export const object = (fields, options) => ({
94
93
  type: 'object',
95
94
  ...(options?.enabled !== undefined && { enabled: options.enabled }),
96
- ...(fields && { properties: resolveProperties(fields) })
95
+ ...(fields && { properties: fields })
97
96
  });
98
97
  // Alias
99
98
  export const alias = (options) => ({
@@ -101,7 +100,9 @@ export const alias = (options) => ({
101
100
  ...options
102
101
  });
103
102
  // Percolator
104
- export const percolator = () => ({ type: 'percolator' });
103
+ export const percolator = () => ({
104
+ type: 'percolator'
105
+ });
105
106
  // Range types
106
107
  export const integerRange = (options) => ({
107
108
  type: 'integer_range',
@@ -123,9 +124,4 @@ export const dateRange = (options) => ({
123
124
  type: 'date_range',
124
125
  ...options
125
126
  });
126
- /**
127
- * Resolves a FieldMappingInput to a FieldMapping.
128
- * Converts shorthand strings like 'text' to { type: 'text' }.
129
- */
130
- export const resolveField = (input) => typeof input === 'string' ? { type: input } : input;
131
- const resolveProperties = (props) => Object.fromEntries(Object.entries(props).map(([k, v]) => [k, resolveField(v)]));
127
+ export const resolveField = (input) => input;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Per-field-type option types for field helper functions.
3
- * Each type only includes options relevant to that specific field type,
4
- * providing type-safe autocomplete in helper functions.
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
5
  */
6
- import type { FieldMapping, FieldMappingInput } from './index-management.types.js';
6
+ import type { FieldMapping } from './index-management.types.js';
7
7
  /** Options for text fields */
8
8
  export type TextFieldOptions = {
9
9
  analyzer?: string;
@@ -63,7 +63,7 @@ export type DenseVectorFieldOptions = {
63
63
  similarity?: 'cosine' | 'dot_product' | 'l2_norm' | 'max_inner_product';
64
64
  };
65
65
  /** Sub-fields for nested and object field types */
66
- export type NestedFields = Record<string, FieldMappingInput>;
66
+ export type NestedFields = Record<string, FieldMapping>;
67
67
  /** Options for object fields (enabled flag only — sub-fields are the first argument) */
68
68
  export type ObjectFieldOptions = {
69
69
  enabled?: boolean;
@@ -109,4 +109,34 @@ export type RangeFieldOptions = {
109
109
  doc_values?: boolean;
110
110
  coerce?: boolean;
111
111
  };
112
+ export type TypedFieldMapping<T extends string> = Omit<FieldMapping, 'type'> & {
113
+ type: T;
114
+ };
115
+ export type TextFieldMapping = TypedFieldMapping<'text'>;
116
+ export type KeywordFieldMapping = TypedFieldMapping<'keyword'>;
117
+ export type LongFieldMapping = TypedFieldMapping<'long'>;
118
+ export type IntegerFieldMapping = TypedFieldMapping<'integer'>;
119
+ export type ShortFieldMapping = TypedFieldMapping<'short'>;
120
+ export type ByteFieldMapping = TypedFieldMapping<'byte'>;
121
+ export type DoubleFieldMapping = TypedFieldMapping<'double'>;
122
+ export type FloatFieldMapping = TypedFieldMapping<'float'>;
123
+ export type HalfFloatFieldMapping = TypedFieldMapping<'half_float'>;
124
+ export type ScaledFloatFieldMapping = TypedFieldMapping<'scaled_float'>;
125
+ export type DateFieldMapping = TypedFieldMapping<'date'>;
126
+ export type BooleanFieldMapping = TypedFieldMapping<'boolean'>;
127
+ export type BinaryFieldMapping = TypedFieldMapping<'binary'>;
128
+ export type IpFieldMapping = TypedFieldMapping<'ip'>;
129
+ export type DenseVectorFieldMapping = TypedFieldMapping<'dense_vector'>;
130
+ export type GeoPointFieldMapping = TypedFieldMapping<'geo_point'>;
131
+ export type GeoShapeFieldMapping = TypedFieldMapping<'geo_shape'>;
132
+ export type CompletionFieldMapping = TypedFieldMapping<'completion'>;
133
+ export type NestedFieldMapping = TypedFieldMapping<'nested'>;
134
+ export type ObjectFieldMapping = TypedFieldMapping<'object'>;
135
+ export type AliasFieldMapping = TypedFieldMapping<'alias'>;
136
+ export type PercolatorFieldMapping = TypedFieldMapping<'percolator'>;
137
+ export type IntegerRangeFieldMapping = TypedFieldMapping<'integer_range'>;
138
+ export type FloatRangeFieldMapping = TypedFieldMapping<'float_range'>;
139
+ export type LongRangeFieldMapping = TypedFieldMapping<'long_range'>;
140
+ export type DoubleRangeFieldMapping = TypedFieldMapping<'double_range'>;
141
+ export type DateRangeFieldMapping = TypedFieldMapping<'date_range'>;
112
142
  //# sourceMappingURL=field.types.d.ts.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Per-field-type option types for field helper functions.
3
- * Each type only includes options relevant to that specific field type,
4
- * providing type-safe autocomplete in helper functions.
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
5
  */
6
6
  export {};
@@ -7,22 +7,15 @@ import type { IndexBuilder, CreateIndexOptions } from './index-management.types.
7
7
  * Creates an index builder
8
8
  * @returns IndexBuilder instance
9
9
  */
10
- export declare const createIndexBuilder: <T>(state?: CreateIndexOptions<T>) => IndexBuilder<T>;
10
+ export declare const createIndexBuilder: (state?: CreateIndexOptions) => IndexBuilder;
11
11
  /**
12
12
  * Create a new index builder
13
13
  * @example
14
- * const indexConfig = indexBuilder<Product>()
15
- * .mappings({
16
- * name: text({ analyzer: 'standard' }),
17
- * price: 'float',
18
- * category: 'keyword',
19
- * })
20
- * .settings({
21
- * number_of_shards: 1,
22
- * number_of_replicas: 1
23
- * })
14
+ * const indexConfig = indexBuilder()
15
+ * .mappings(productMappings)
16
+ * .settings({ number_of_shards: 1, number_of_replicas: 1 })
24
17
  * .alias('products_alias')
25
18
  * .build();
26
19
  */
27
- export declare const indexBuilder: <T>() => IndexBuilder<T>;
20
+ export declare const indexBuilder: () => IndexBuilder;
28
21
  //# sourceMappingURL=index-management.builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-management.builder.d.ts","sourceRoot":"","sources":["../src/index-management.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAKnB,MAAM,6BAA6B,CAAC;AAwBrC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,QAAO,kBAAkB,CAAC,CAAC,CAAM,KAChC,YAAY,CAAC,CAAC,CAqBf,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,sBAA8B,CAAC"}
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,EACnB,MAAM,6BAA6B,CAAC;AAUrC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAO,kBAAuB,KAC7B,YAsBD,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,oBAA6B,CAAC"}
@@ -2,37 +2,22 @@
2
2
  * Index Management builder
3
3
  * Create and configure Elasticsearch indices
4
4
  */
5
- import { resolveField } from './field.helpers.js';
6
- /** Resolves MappingsInput<T> to the ES-compatible IndexMappings<T> */
7
- const resolveMappings = (input) => {
8
- const { dynamic, dynamic_templates, ...fields } = input;
9
- const properties = {};
10
- for (const [key, value] of Object.entries(fields)) {
11
- if (value !== undefined) {
12
- properties[key] = resolveField(value);
13
- }
14
- }
15
- const mappings = { properties };
16
- if (dynamic !== undefined)
17
- mappings.dynamic = dynamic;
18
- if (dynamic_templates !== undefined)
19
- mappings.dynamic_templates = dynamic_templates;
20
- return mappings;
21
- };
5
+ const isMappingsSchema = (input) => '_fieldTypes' in input;
22
6
  /**
23
7
  * Creates an index builder
24
8
  * @returns IndexBuilder instance
25
9
  */
26
10
  export const createIndexBuilder = (state = {}) => ({
27
- mappings: (mappings) => {
11
+ mappings: (schemaOrFields) => {
12
+ const properties = isMappingsSchema(schemaOrFields)
13
+ ? schemaOrFields.properties
14
+ : schemaOrFields;
28
15
  return createIndexBuilder({
29
16
  ...state,
30
- mappings: resolveMappings(mappings)
17
+ mappings: { properties }
31
18
  });
32
19
  },
33
- settings: (settings) => {
34
- return createIndexBuilder({ ...state, settings });
35
- },
20
+ settings: (settings) => createIndexBuilder({ ...state, settings }),
36
21
  alias: (name, options = {}) => {
37
22
  const aliases = state.aliases || {};
38
23
  return createIndexBuilder({
@@ -45,16 +30,9 @@ export const createIndexBuilder = (state = {}) => ({
45
30
  /**
46
31
  * Create a new index builder
47
32
  * @example
48
- * const indexConfig = indexBuilder<Product>()
49
- * .mappings({
50
- * name: text({ analyzer: 'standard' }),
51
- * price: 'float',
52
- * category: 'keyword',
53
- * })
54
- * .settings({
55
- * number_of_shards: 1,
56
- * number_of_replicas: 1
57
- * })
33
+ * const indexConfig = indexBuilder()
34
+ * .mappings(productMappings)
35
+ * .settings({ number_of_shards: 1, number_of_replicas: 1 })
58
36
  * .alias('products_alias')
59
37
  * .build();
60
38
  */