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,95 +1,48 @@
1
1
  /**
2
2
  * Type definitions for Index Management
3
3
  * Partially derived from official @elastic/elasticsearch types.
4
- * FieldMapping and IndexMappings use custom types for ergonomic builder API.
5
4
  * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
6
5
  */
7
6
  import type { IndicesIndexSettings, IndicesAlias } from '@elastic/elasticsearch/lib/api/types';
7
+ import type { MappingsSchema } from './mapping.types.js';
8
8
  /**
9
9
  * All supported Elasticsearch field type strings.
10
10
  */
11
11
  export type FieldTypeString = 'text' | 'keyword' | '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' | 'geo_point' | 'geo_shape' | 'completion' | 'dense_vector' | 'percolator';
12
12
  /**
13
13
  * Field mapping definition.
14
- * Uses custom type rather than official MappingProperty (48+ member discriminated union)
15
- * for a simpler, more ergonomic builder API.
16
14
  */
17
15
  export type FieldMapping = {
18
16
  type: FieldTypeString;
19
- /** Multi-fields for different analyzers */
20
17
  fields?: Record<string, FieldMapping>;
21
- /** Text analyzer */
22
18
  analyzer?: string;
23
- /** Search-time analyzer */
24
19
  search_analyzer?: string;
25
- /** Field boost */
26
20
  boost?: number;
27
- /** Whether to index this field */
28
21
  index?: boolean;
29
- /** Whether to store this field */
30
22
  store?: boolean;
31
- /** Whether to use doc values */
32
23
  doc_values?: boolean;
33
- /** Similarity algorithm */
34
24
  similarity?: string;
35
- /** Dense vector dimensions */
36
25
  dims?: number;
37
- /** Dense vector index options */
38
26
  index_options?: any;
39
- /** Scaling factor for scaled_float type */
40
27
  scaling_factor?: number;
41
- /** Nested properties */
42
28
  properties?: Record<string, FieldMapping>;
43
- /** Normalizer for keyword fields */
44
29
  normalizer?: string;
45
- /** Date format */
46
30
  format?: string;
47
- /** Coerce numeric values */
48
31
  coerce?: boolean;
49
- /** Enable/disable the field */
50
32
  enabled?: boolean;
51
- /** Dense vector element type */
52
33
  element_type?: string;
53
- /** Alias field path */
54
34
  path?: string;
55
- /** Max input length for completion fields */
56
35
  max_input_length?: number;
57
- /** Preserve separators for completion fields */
58
36
  preserve_separators?: boolean;
59
- /** Preserve position increments for completion fields */
60
37
  preserve_position_increments?: boolean;
61
- /** Orientation for geo_shape fields */
62
38
  orientation?: string;
63
39
  };
64
- /**
65
- * A single field mapping input: a full FieldMapping object or a shorthand type string.
66
- */
67
- export type FieldMappingInput = FieldMapping | FieldTypeString;
68
- /**
69
- * Simplified mappings input for the builder.
70
- * Fields are defined at the top level (no `properties` wrapper needed).
71
- * Each field can be a FieldMapping object, a shorthand string, or the result of a helper function.
72
- */
73
- export type MappingsInput<T> = {
74
- [K in keyof T]?: FieldMappingInput;
75
- } & {
76
- /** Dynamic mapping behavior */
77
- dynamic?: boolean | 'strict' | 'runtime';
78
- /** Dynamic templates */
79
- dynamic_templates?: any[];
80
- };
81
40
  /**
82
41
  * Index mappings configuration.
83
- * Uses generic type constraint for type-safe property names.
84
42
  */
85
- export type IndexMappings<T> = {
86
- /** Field mappings */
87
- properties: {
88
- [K in keyof T]?: FieldMapping;
89
- };
90
- /** Dynamic mapping behavior */
43
+ export type IndexMappings = {
44
+ properties: Record<string, FieldMapping>;
91
45
  dynamic?: boolean | 'strict' | 'runtime';
92
- /** Dynamic templates */
93
46
  dynamic_templates?: any[];
94
47
  };
95
48
  /**
@@ -100,25 +53,18 @@ export type IndexSettings = IndicesIndexSettings;
100
53
  /**
101
54
  * Create index options
102
55
  */
103
- export type CreateIndexOptions<T> = {
104
- /** Index mappings */
105
- mappings?: IndexMappings<T>;
106
- /** Index settings */
56
+ export type CreateIndexOptions = {
57
+ mappings?: IndexMappings;
107
58
  settings?: IndexSettings;
108
- /** Index aliases */
109
59
  aliases?: Record<string, IndicesAlias>;
110
60
  };
111
61
  /**
112
62
  * Index builder interface
113
63
  */
114
- export type IndexBuilder<T> = {
115
- /** Configure index mappings */
116
- mappings: (mappings: MappingsInput<T>) => IndexBuilder<T>;
117
- /** Configure index settings */
118
- settings: (settings: IndexSettings) => IndexBuilder<T>;
119
- /** Add an alias */
120
- alias: (name: string, options?: IndicesAlias) => IndexBuilder<T>;
121
- /** Build the index configuration */
122
- build: () => CreateIndexOptions<T>;
64
+ export type IndexBuilder = {
65
+ mappings: (schemaOrFields: MappingsSchema<Record<string, FieldTypeString>> | Record<string, FieldMapping>) => IndexBuilder;
66
+ settings: (settings: IndexSettings) => IndexBuilder;
67
+ alias: (name: string, options?: IndicesAlias) => IndexBuilder;
68
+ build: () => CreateIndexOptions;
123
69
  };
124
70
  //# sourceMappingURL=index-management.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-management.types.d.ts","sourceRoot":"","sources":["../src/index-management.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-management.types.d.ts","sourceRoot":"","sources":["../src/index-management.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACb,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,SAAS,GACT,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,cAAc,GACd,MAAM,GACN,SAAS,GACT,QAAQ,GACR,eAAe,GACf,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,IAAI,GACJ,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,YAAY,GACZ,cAAc,GACd,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,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,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEzC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,CACR,cAAc,EACV,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,GAC/C,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAC7B,YAAY,CAAC;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,YAAY,CAAC;IACpD,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,YAAY,CAAC;IAC9D,KAAK,EAAE,MAAM,kBAAkB,CAAC;CACjC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Type definitions for Index Management
3
3
  * Partially derived from official @elastic/elasticsearch types.
4
- * FieldMapping and IndexMappings use custom types for ergonomic builder API.
5
4
  * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
6
5
  */
7
6
  export {};
package/dist/index.d.ts CHANGED
@@ -1,14 +1,18 @@
1
- export declare const query: <T>(includeQuery?: boolean) => import("./query.types.js").QueryBuilder<T>;
2
- export declare const aggregations: <T>() => import("./aggregation.types.js").AggregationBuilder<T>;
3
- export { msearch, createMSearchBuilder } from './multi-search.builder.js';
4
- export type { MSearchBuilder, MSearchRequest, MSearchHeader } from './multi-search.types.js';
5
- export { bulk, createBulkBuilder } from './bulk.builder.js';
6
- export type { BulkBuilder, BulkIndexMeta, BulkCreateMeta, BulkUpdateMeta, BulkDeleteMeta } from './bulk.types.js';
7
- export { indexBuilder, createIndexBuilder } from './index-management.builder.js';
1
+ import type { FieldTypeString } from './index-management.types.js';
2
+ import type { MappingsSchema } from './mapping.types.js';
3
+ export declare const query: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>, includeQuery?: boolean) => import("./query.types.js").QueryBuilder<M>;
4
+ export type { QueryBuilder, ClauseBuilder } from './query.types.js';
5
+ export { aggregations } from './aggregation.builder.js';
6
+ export type { AggregationBuilder } from './aggregation.types.js';
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 } from './field.helpers.js';
9
- export type { IndexBuilder, IndexMappings, IndexSettings, CreateIndexOptions, FieldMapping, FieldTypeString, FieldMappingInput, MappingsInput } from './index-management.types.js';
10
- export type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, NestedFields, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions } from './field.types.js';
11
- export { suggest, createSuggesterBuilder } from './suggester.builder.js';
12
- export type { SuggesterBuilder, SuggesterState, TermSuggesterOptions, PhraseSuggesterOptions, CompletionSuggesterOptions } from './suggester.types.js';
13
- export type { KnnOptions, DenseVectorOptions } from './vector.types.js';
9
+ export type { MappingsSchema, Infer, FieldsOfType, TextFields, KeywordFields, NumericFields, DateFields, BooleanFields, GeoPointFields, VectorFields } from './mapping.types.js';
10
+ export { msearch } from './multi-search.builder.js';
11
+ export type { MSearchBuilder } from './multi-search.types.js';
12
+ export { bulk } from './bulk.builder.js';
13
+ export type { BulkBuilder } from './bulk.types.js';
14
+ export { indexBuilder } from './index-management.builder.js';
15
+ export type { IndexBuilder } from './index-management.types.js';
16
+ export { suggest } from './suggester.builder.js';
17
+ export type { SuggesterBuilder } from './suggester.types.js';
14
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,eAAc,OAAc,+CACG,CAAC;AACzD,eAAO,MAAM,YAAY,GAAI,CAAC,6DAAoC,CAAC;AAGnE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AACvC,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,EACV,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACd,MAAM,6BAA6B,CAAC;AACrC,YAAY,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,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,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,EACV,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,EACb,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"}
package/dist/index.js CHANGED
@@ -1,14 +1,16 @@
1
1
  import { createQueryBuilder } from './query.builder.js';
2
- import { createAggregationBuilder } from './aggregation.builder.js';
3
2
  // Search API
4
- export const query = (includeQuery = true) => createQueryBuilder({ _includeQuery: includeQuery });
5
- export const aggregations = () => createAggregationBuilder();
3
+ export const query = (_schema, includeQuery = true) => createQueryBuilder({ _includeQuery: includeQuery });
4
+ // Aggregations API
5
+ export { aggregations } from './aggregation.builder.js';
6
+ // Mappings API
7
+ export { mappings } from './mapping.builder.js';
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 } from './field.helpers.js';
6
9
  // Multi-search API
7
- export { msearch, createMSearchBuilder } from './multi-search.builder.js';
10
+ export { msearch } from './multi-search.builder.js';
8
11
  // Bulk API
9
- export { bulk, createBulkBuilder } from './bulk.builder.js';
12
+ export { bulk } from './bulk.builder.js';
10
13
  // Index Management API
11
- export { indexBuilder, createIndexBuilder } from './index-management.builder.js';
12
- 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 } from './field.helpers.js';
14
+ export { indexBuilder } from './index-management.builder.js';
13
15
  // Suggester API
14
- export { suggest, createSuggesterBuilder } from './suggester.builder.js';
16
+ export { suggest } from './suggester.builder.js';
@@ -0,0 +1,24 @@
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
+ * @example
6
+ * import { mappings, text, keyword, float } from 'elasticlink';
7
+ *
8
+ * const productMappings = mappings({
9
+ * name: text({ analyzer: 'standard' }),
10
+ * category: keyword(),
11
+ * price: float(),
12
+ * });
13
+ */
14
+ import type { FieldMapping, FieldTypeString } from './index-management.types.js';
15
+ import type { MappingsSchema } from './mapping.types.js';
16
+ type FieldMappingWithLiteralType = FieldMapping & {
17
+ type: FieldTypeString;
18
+ };
19
+ type ExtractFieldTypes<F extends Record<string, FieldMappingWithLiteralType>> = {
20
+ [K in keyof F]: F[K]['type'];
21
+ };
22
+ export declare const mappings: <F extends Record<string, FieldMappingWithLiteralType>>(fields: F) => MappingsSchema<ExtractFieldTypes<F>>;
23
+ export {};
24
+ //# sourceMappingURL=mapping.builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.builder.d.ts","sourceRoot":"","sources":["../src/mapping.builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,2BAA2B,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAE5E,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAC1E;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;CAC7B,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAC5E,QAAQ,CAAC,KACR,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CASrC,CAAC"}
@@ -0,0 +1,23 @@
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
+ * @example
6
+ * import { mappings, text, keyword, float } from 'elasticlink';
7
+ *
8
+ * const productMappings = mappings({
9
+ * name: text({ analyzer: 'standard' }),
10
+ * category: keyword(),
11
+ * price: float(),
12
+ * });
13
+ */
14
+ export const mappings = (fields) => {
15
+ const properties = {};
16
+ for (const key of Object.keys(fields)) {
17
+ properties[key] = fields[key];
18
+ }
19
+ return {
20
+ _fieldTypes: undefined,
21
+ properties
22
+ };
23
+ };
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Mapping schema types for compile-time field-type safety.
3
+ * MappingsSchema carries both runtime ES properties and a phantom type M
4
+ * that maps field names to their ES type literals.
5
+ */
6
+ import type { FieldMapping, FieldTypeString } from './index-management.types.js';
7
+ export type MappingsSchema<M extends Record<string, FieldTypeString>> = {
8
+ readonly _fieldTypes: M;
9
+ readonly properties: Record<string, FieldMapping>;
10
+ };
11
+ type ESTypeToTS = {
12
+ text: string;
13
+ keyword: string;
14
+ long: number;
15
+ integer: number;
16
+ short: number;
17
+ byte: number;
18
+ float: number;
19
+ double: number;
20
+ half_float: number;
21
+ scaled_float: number;
22
+ date: string;
23
+ boolean: boolean;
24
+ binary: string;
25
+ ip: string;
26
+ geo_point: {
27
+ lat: number;
28
+ lon: number;
29
+ };
30
+ geo_shape: Record<string, unknown>;
31
+ dense_vector: number[];
32
+ completion: string;
33
+ nested: unknown;
34
+ object: unknown;
35
+ alias: unknown;
36
+ percolator: unknown;
37
+ integer_range: {
38
+ gte?: number;
39
+ lte?: number;
40
+ gt?: number;
41
+ lt?: number;
42
+ };
43
+ float_range: {
44
+ gte?: number;
45
+ lte?: number;
46
+ gt?: number;
47
+ lt?: number;
48
+ };
49
+ long_range: {
50
+ gte?: number;
51
+ lte?: number;
52
+ gt?: number;
53
+ lt?: number;
54
+ };
55
+ double_range: {
56
+ gte?: number;
57
+ lte?: number;
58
+ gt?: number;
59
+ lt?: number;
60
+ };
61
+ date_range: {
62
+ gte?: string;
63
+ lte?: string;
64
+ gt?: string;
65
+ lt?: string;
66
+ };
67
+ };
68
+ export type Infer<S> = S extends MappingsSchema<infer M> ? {
69
+ [K in keyof M]: M[K] extends keyof ESTypeToTS ? ESTypeToTS[M[K]] : unknown;
70
+ } : never;
71
+ export type FieldsOfType<M extends Record<string, FieldTypeString>, Types extends FieldTypeString> = {
72
+ [K in keyof M]: M[K] extends Types ? K : never;
73
+ }[keyof M];
74
+ export type TextFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'text'>;
75
+ export type KeywordFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'keyword'>;
76
+ export type NumericFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float'>;
77
+ export type DateFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'date'>;
78
+ export type BooleanFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'boolean'>;
79
+ export type GeoPointFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'geo_point'>;
80
+ export type VectorFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'dense_vector'>;
81
+ export {};
82
+ //# sourceMappingURL=mapping.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.types.d.ts","sourceRoot":"","sources":["../src/mapping.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Mapping schema types for compile-time field-type safety.
3
+ * MappingsSchema carries both runtime ES properties and a phantom type M
4
+ * that maps field names to their ES type literals.
5
+ */
6
+ export {};
@@ -2,19 +2,21 @@
2
2
  * Multi-Search API builder
3
3
  * Enables batching multiple search requests in a single API call
4
4
  */
5
+ import type { FieldTypeString } from './index-management.types.js';
6
+ import type { MappingsSchema } from './mapping.types.js';
5
7
  import { MSearchBuilder, MSearchRequest } from './multi-search.types.js';
6
8
  /**
7
9
  * Creates a multi-search builder
8
10
  * @returns MSearchBuilder instance
9
11
  */
10
- export declare const createMSearchBuilder: <T>(searches?: MSearchRequest<T>[]) => MSearchBuilder<T>;
12
+ export declare const createMSearchBuilder: <M extends Record<string, FieldTypeString>>(searches?: MSearchRequest<M>[]) => MSearchBuilder<M>;
11
13
  /**
12
14
  * Create a new multi-search builder
13
15
  * @example
14
- * const ms = msearch<Product>()
16
+ * const ms = msearch<typeof productMappings._fieldTypes>()
15
17
  * .addQuery(query1.build(), { index: 'products' })
16
18
  * .addQuery(query2.build(), { index: 'products' })
17
19
  * .build();
18
20
  */
19
- export declare const msearch: <T>() => MSearchBuilder<T>;
21
+ export declare const msearch: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>) => MSearchBuilder<M>;
20
22
  //# sourceMappingURL=multi-search.builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-search.builder.d.ts","sourceRoot":"","sources":["../src/multi-search.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EACpC,WAAU,cAAc,CAAC,CAAC,CAAC,EAAO,KACjC,cAAc,CAAC,CAAC,CAwBjB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,wBAAgC,CAAC"}
1
+ {"version":3,"file":"multi-search.builder.d.ts","sourceRoot":"","sources":["../src/multi-search.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC5E,WAAU,cAAc,CAAC,CAAC,CAAC,EAAO,KACjC,cAAc,CAAC,CAAC,CAwBjB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC/D,SAAS,cAAc,CAAC,CAAC,CAAC,sBACE,CAAC"}
@@ -29,9 +29,9 @@ export const createMSearchBuilder = (searches = []) => ({
29
29
  /**
30
30
  * Create a new multi-search builder
31
31
  * @example
32
- * const ms = msearch<Product>()
32
+ * const ms = msearch<typeof productMappings._fieldTypes>()
33
33
  * .addQuery(query1.build(), { index: 'products' })
34
34
  * .addQuery(query2.build(), { index: 'products' })
35
35
  * .build();
36
36
  */
37
- export const msearch = () => createMSearchBuilder();
37
+ export const msearch = (_schema) => createMSearchBuilder();
@@ -4,6 +4,7 @@
4
4
  * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
5
5
  */
6
6
  import type { MsearchMultisearchHeader } from '@elastic/elasticsearch/lib/api/types';
7
+ import type { FieldTypeString } from './index-management.types.js';
7
8
  import { QueryState } from './query.types.js';
8
9
  /**
9
10
  * Header options for each search in a multi-search request — re-exported from official @elastic/elasticsearch types
@@ -13,23 +14,23 @@ export type MSearchHeader = MsearchMultisearchHeader;
13
14
  /**
14
15
  * A single search request in a multi-search operation
15
16
  */
16
- export type MSearchRequest<T> = {
17
+ export type MSearchRequest<M extends Record<string, FieldTypeString>> = {
17
18
  /** Optional header for this search */
18
19
  header?: MSearchHeader;
19
20
  /** The query body */
20
- body: QueryState<T>;
21
+ body: QueryState<M>;
21
22
  };
22
23
  /**
23
24
  * Multi-search builder interface
24
25
  */
25
- export type MSearchBuilder<T> = {
26
+ export type MSearchBuilder<M extends Record<string, FieldTypeString>> = {
26
27
  /** Add a search request with header and body */
27
- add: (request: MSearchRequest<T>) => MSearchBuilder<T>;
28
+ add: (request: MSearchRequest<M>) => MSearchBuilder<M>;
28
29
  /** Add a search using a query builder */
29
- addQuery: (body: QueryState<T>, header?: MSearchHeader) => MSearchBuilder<T>;
30
+ addQuery: (body: QueryState<M>, header?: MSearchHeader) => MSearchBuilder<M>;
30
31
  /** Build as NDJSON string format for Elasticsearch */
31
32
  build: () => string;
32
33
  /** Build as array of objects (header, body pairs) */
33
- buildArray: () => Array<MSearchHeader | QueryState<T>>;
34
+ buildArray: () => Array<MSearchHeader | QueryState<M>>;
34
35
  };
35
36
  //# sourceMappingURL=multi-search.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-search.types.d.ts","sourceRoot":"","sources":["../src/multi-search.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,gDAAgD;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD,yCAAyC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7E,sDAAsD;IACtD,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC"}
1
+ {"version":3,"file":"multi-search.types.d.ts","sourceRoot":"","sources":["../src/multi-search.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI;IACtE,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI;IACtE,gDAAgD;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD,yCAAyC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7E,sDAAsD;IACtD,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC"}
@@ -2,11 +2,7 @@
2
2
  * Query builder implementation
3
3
  * Builds type-safe Elasticsearch queries with a fluent API
4
4
  */
5
- import { QueryState, QueryBuilder } from './query.types.js';
6
- /**
7
- * Creates a query builder with immutable state
8
- * @param state - Current query state (optional)
9
- * @returns QueryBuilder instance with fluent API
10
- */
11
- export declare const createQueryBuilder: <T>(state?: QueryState<T>) => QueryBuilder<T>;
5
+ import type { FieldTypeString } from './index-management.types.js';
6
+ import type { QueryState, QueryBuilder } from './query.types.js';
7
+ export declare const createQueryBuilder: <M extends Record<string, FieldTypeString>>(state?: QueryState<M>) => QueryBuilder<M>;
12
8
  //# sourceMappingURL=query.builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.builder.d.ts","sourceRoot":"","sources":["../src/query.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAgF3E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,QAAO,UAAU,CAAC,CAAC,CAAM,KACxB,YAAY,CAAC,CAAC,CA4Vf,CAAC"}
1
+ {"version":3,"file":"query.builder.d.ts","sourceRoot":"","sources":["../src/query.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAuEhF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1E,QAAO,UAAU,CAAC,CAAC,CAAM,KACxB,YAAY,CAAC,CAAC,CA4Sf,CAAC"}