elastiq-ts 0.1.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/LICENSE +21 -0
- package/README.md +1157 -0
- package/dist/__tests__/elastic.helpers.d.ts +17 -0
- package/dist/__tests__/elastic.helpers.d.ts.map +1 -0
- package/dist/__tests__/elastic.helpers.js +46 -0
- package/dist/aggregation-builder.d.ts +4 -0
- package/dist/aggregation-builder.d.ts.map +1 -0
- package/dist/aggregation-builder.js +153 -0
- package/dist/aggregation-types.d.ts +234 -0
- package/dist/aggregation-types.d.ts.map +1 -0
- package/dist/aggregation-types.js +6 -0
- package/dist/bulk-types.d.ts +67 -0
- package/dist/bulk-types.d.ts.map +1 -0
- package/dist/bulk-types.js +6 -0
- package/dist/bulk.d.ts +22 -0
- package/dist/bulk.d.ts.map +1 -0
- package/dist/bulk.js +55 -0
- package/dist/index-management.d.ts +30 -0
- package/dist/index-management.d.ts.map +1 -0
- package/dist/index-management.js +48 -0
- package/dist/index-types.d.ts +87 -0
- package/dist/index-types.d.ts.map +1 -0
- package/dist/index-types.js +6 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/multi-search-types.d.ts +41 -0
- package/dist/multi-search-types.d.ts.map +1 -0
- package/dist/multi-search-types.js +6 -0
- package/dist/multi-search.d.ts +20 -0
- package/dist/multi-search.d.ts.map +1 -0
- package/dist/multi-search.js +42 -0
- package/dist/query-builder.d.ts +12 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +396 -0
- package/dist/suggester-types.d.ts +130 -0
- package/dist/suggester-types.d.ts.map +1 -0
- package/dist/suggester-types.js +6 -0
- package/dist/suggester.d.ts +21 -0
- package/dist/suggester.d.ts.map +1 -0
- package/dist/suggester.js +55 -0
- package/dist/types.d.ts +378 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/vector-types.d.ts +42 -0
- package/dist/vector-types.d.ts.map +1 -0
- package/dist/vector-types.js +6 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-management.d.ts","sourceRoot":"","sources":["../src/index-management.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,QAAO,kBAAkB,CAAC,CAAC,CAAM,KAChC,YAAY,CAAC,CAAC,CAkBf,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,sBAA8B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Index Management builder
|
|
4
|
+
* Create and configure Elasticsearch indices
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.indexBuilder = exports.createIndexBuilder = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Creates an index builder
|
|
10
|
+
* @returns IndexBuilder instance
|
|
11
|
+
*/
|
|
12
|
+
const createIndexBuilder = (state = {}) => ({
|
|
13
|
+
mappings: (mappings) => {
|
|
14
|
+
return (0, exports.createIndexBuilder)({ ...state, mappings });
|
|
15
|
+
},
|
|
16
|
+
settings: (settings) => {
|
|
17
|
+
return (0, exports.createIndexBuilder)({ ...state, settings });
|
|
18
|
+
},
|
|
19
|
+
alias: (name, options = {}) => {
|
|
20
|
+
const aliases = state.aliases || {};
|
|
21
|
+
return (0, exports.createIndexBuilder)({
|
|
22
|
+
...state,
|
|
23
|
+
aliases: { ...aliases, [name]: options }
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
build: () => state
|
|
27
|
+
});
|
|
28
|
+
exports.createIndexBuilder = createIndexBuilder;
|
|
29
|
+
/**
|
|
30
|
+
* Create a new index builder
|
|
31
|
+
* @example
|
|
32
|
+
* const indexConfig = indexBuilder<Product>()
|
|
33
|
+
* .mappings({
|
|
34
|
+
* properties: {
|
|
35
|
+
* name: { type: 'text' },
|
|
36
|
+
* price: { type: 'float' },
|
|
37
|
+
* category: { type: 'keyword' }
|
|
38
|
+
* }
|
|
39
|
+
* })
|
|
40
|
+
* .settings({
|
|
41
|
+
* number_of_shards: 1,
|
|
42
|
+
* number_of_replicas: 1
|
|
43
|
+
* })
|
|
44
|
+
* .alias('products_alias')
|
|
45
|
+
* .build();
|
|
46
|
+
*/
|
|
47
|
+
const indexBuilder = () => (0, exports.createIndexBuilder)();
|
|
48
|
+
exports.indexBuilder = indexBuilder;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Index Management
|
|
3
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Field mapping definition
|
|
7
|
+
*/
|
|
8
|
+
export type FieldMapping = {
|
|
9
|
+
type: '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';
|
|
10
|
+
/** Multi-fields for different analyzers */
|
|
11
|
+
fields?: Record<string, FieldMapping>;
|
|
12
|
+
/** Text analyzer */
|
|
13
|
+
analyzer?: string;
|
|
14
|
+
/** Search-time analyzer */
|
|
15
|
+
search_analyzer?: string;
|
|
16
|
+
/** Field boost */
|
|
17
|
+
boost?: number;
|
|
18
|
+
/** Whether to index this field */
|
|
19
|
+
index?: boolean;
|
|
20
|
+
/** Whether to store this field */
|
|
21
|
+
store?: boolean;
|
|
22
|
+
/** Whether to use doc values */
|
|
23
|
+
doc_values?: boolean;
|
|
24
|
+
/** Similarity algorithm */
|
|
25
|
+
similarity?: string;
|
|
26
|
+
/** Dense vector dimensions */
|
|
27
|
+
dims?: number;
|
|
28
|
+
/** Dense vector index options */
|
|
29
|
+
index_options?: any;
|
|
30
|
+
/** Scaling factor for scaled_float type */
|
|
31
|
+
scaling_factor?: number;
|
|
32
|
+
/** Nested properties */
|
|
33
|
+
properties?: Record<string, FieldMapping>;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Index mappings configuration
|
|
37
|
+
*/
|
|
38
|
+
export type IndexMappings<T> = {
|
|
39
|
+
/** Field mappings */
|
|
40
|
+
properties: {
|
|
41
|
+
[K in keyof T]?: FieldMapping;
|
|
42
|
+
};
|
|
43
|
+
/** Dynamic mapping behavior */
|
|
44
|
+
dynamic?: boolean | 'strict' | 'runtime';
|
|
45
|
+
/** Dynamic templates */
|
|
46
|
+
dynamic_templates?: any[];
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Index settings configuration
|
|
50
|
+
*/
|
|
51
|
+
export type IndexSettings = {
|
|
52
|
+
/** Number of primary shards */
|
|
53
|
+
number_of_shards?: number;
|
|
54
|
+
/** Number of replica shards */
|
|
55
|
+
number_of_replicas?: number;
|
|
56
|
+
/** Refresh interval */
|
|
57
|
+
refresh_interval?: string;
|
|
58
|
+
/** Maximum result window */
|
|
59
|
+
max_result_window?: number;
|
|
60
|
+
/** Analysis settings */
|
|
61
|
+
analysis?: any;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Create index options
|
|
65
|
+
*/
|
|
66
|
+
export type CreateIndexOptions<T> = {
|
|
67
|
+
/** Index mappings */
|
|
68
|
+
mappings?: IndexMappings<T>;
|
|
69
|
+
/** Index settings */
|
|
70
|
+
settings?: IndexSettings;
|
|
71
|
+
/** Index aliases */
|
|
72
|
+
aliases?: Record<string, any>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Index builder interface
|
|
76
|
+
*/
|
|
77
|
+
export type IndexBuilder<T> = {
|
|
78
|
+
/** Configure index mappings */
|
|
79
|
+
mappings: (mappings: IndexMappings<T>) => IndexBuilder<T>;
|
|
80
|
+
/** Configure index settings */
|
|
81
|
+
settings: (settings: IndexSettings) => IndexBuilder<T>;
|
|
82
|
+
/** Add an alias */
|
|
83
|
+
alias: (name: string, options?: any) => IndexBuilder<T>;
|
|
84
|
+
/** Build the index configuration */
|
|
85
|
+
build: () => CreateIndexOptions<T>;
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=index-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-types.d.ts","sourceRoot":"","sources":["../src/index-types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const query: <T>(includeQuery?: boolean) => import("./types").QueryBuilder<T>;
|
|
2
|
+
export declare const aggregations: <T>() => import("./aggregation-types").AggregationBuilder<T>;
|
|
3
|
+
export { msearch, createMSearchBuilder } from './multi-search';
|
|
4
|
+
export type { MSearchBuilder, MSearchRequest, MSearchHeader } from './multi-search-types';
|
|
5
|
+
export { bulk, createBulkBuilder } from './bulk';
|
|
6
|
+
export type { BulkBuilder, BulkIndexMeta, BulkCreateMeta, BulkUpdateMeta, BulkDeleteMeta } from './bulk-types';
|
|
7
|
+
export { indexBuilder, createIndexBuilder } from './index-management';
|
|
8
|
+
export type { IndexBuilder, IndexMappings, IndexSettings, CreateIndexOptions, FieldMapping } from './index-types';
|
|
9
|
+
export { suggest, createSuggesterBuilder } from './suggester';
|
|
10
|
+
export type { SuggesterBuilder, SuggesterState, TermSuggesterOptions, PhraseSuggesterOptions, CompletionSuggesterOptions } from './suggester-types';
|
|
11
|
+
export type { KnnOptions, DenseVectorOptions } from './vector-types';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,eAAc,OAAc,sCACG,CAAC;AACzD,eAAO,MAAM,YAAY,GAAI,CAAC,0DAAoC,CAAC;AAGnE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACjD,YAAY,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSuggesterBuilder = exports.suggest = exports.createIndexBuilder = exports.indexBuilder = exports.createBulkBuilder = exports.bulk = exports.createMSearchBuilder = exports.msearch = exports.aggregations = exports.query = void 0;
|
|
4
|
+
const query_builder_1 = require("./query-builder");
|
|
5
|
+
const aggregation_builder_1 = require("./aggregation-builder");
|
|
6
|
+
const query = (includeQuery = true) => (0, query_builder_1.createQueryBuilder)({ _includeQuery: includeQuery });
|
|
7
|
+
exports.query = query;
|
|
8
|
+
const aggregations = () => (0, aggregation_builder_1.createAggregationBuilder)();
|
|
9
|
+
exports.aggregations = aggregations;
|
|
10
|
+
// Multi-search API
|
|
11
|
+
var multi_search_1 = require("./multi-search");
|
|
12
|
+
Object.defineProperty(exports, "msearch", { enumerable: true, get: function () { return multi_search_1.msearch; } });
|
|
13
|
+
Object.defineProperty(exports, "createMSearchBuilder", { enumerable: true, get: function () { return multi_search_1.createMSearchBuilder; } });
|
|
14
|
+
// Bulk API
|
|
15
|
+
var bulk_1 = require("./bulk");
|
|
16
|
+
Object.defineProperty(exports, "bulk", { enumerable: true, get: function () { return bulk_1.bulk; } });
|
|
17
|
+
Object.defineProperty(exports, "createBulkBuilder", { enumerable: true, get: function () { return bulk_1.createBulkBuilder; } });
|
|
18
|
+
// Index Management
|
|
19
|
+
var index_management_1 = require("./index-management");
|
|
20
|
+
Object.defineProperty(exports, "indexBuilder", { enumerable: true, get: function () { return index_management_1.indexBuilder; } });
|
|
21
|
+
Object.defineProperty(exports, "createIndexBuilder", { enumerable: true, get: function () { return index_management_1.createIndexBuilder; } });
|
|
22
|
+
// Suggester API
|
|
23
|
+
var suggester_1 = require("./suggester");
|
|
24
|
+
Object.defineProperty(exports, "suggest", { enumerable: true, get: function () { return suggester_1.suggest; } });
|
|
25
|
+
Object.defineProperty(exports, "createSuggesterBuilder", { enumerable: true, get: function () { return suggester_1.createSuggesterBuilder; } });
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Multi-Search API
|
|
3
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
|
|
4
|
+
*/
|
|
5
|
+
import { QueryState } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Header options for each search in a multi-search request
|
|
8
|
+
*/
|
|
9
|
+
export type MSearchHeader = {
|
|
10
|
+
/** Index name(s) to search */
|
|
11
|
+
index?: string | string[];
|
|
12
|
+
/** Search preference (e.g., '_local', '_primary') */
|
|
13
|
+
preference?: string;
|
|
14
|
+
/** Routing value */
|
|
15
|
+
routing?: string;
|
|
16
|
+
/** Search type */
|
|
17
|
+
search_type?: 'query_then_fetch' | 'dfs_query_then_fetch';
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* A single search request in a multi-search operation
|
|
21
|
+
*/
|
|
22
|
+
export type MSearchRequest<T> = {
|
|
23
|
+
/** Optional header for this search */
|
|
24
|
+
header?: MSearchHeader;
|
|
25
|
+
/** The query body */
|
|
26
|
+
body: QueryState<T>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Multi-search builder interface
|
|
30
|
+
*/
|
|
31
|
+
export type MSearchBuilder<T> = {
|
|
32
|
+
/** Add a search request with header and body */
|
|
33
|
+
add: (request: MSearchRequest<T>) => MSearchBuilder<T>;
|
|
34
|
+
/** Add a search using a query builder */
|
|
35
|
+
addQuery: (body: QueryState<T>, header?: MSearchHeader) => MSearchBuilder<T>;
|
|
36
|
+
/** Build as NDJSON string format for Elasticsearch */
|
|
37
|
+
build: () => string;
|
|
38
|
+
/** Build as array of objects (header, body pairs) */
|
|
39
|
+
buildArray: () => Array<MSearchHeader | QueryState<T>>;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=multi-search-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-search-types.d.ts","sourceRoot":"","sources":["../src/multi-search-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,WAAW,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,CAAC;CAC3D,CAAC;AAEF;;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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Search API builder
|
|
3
|
+
* Enables batching multiple search requests in a single API call
|
|
4
|
+
*/
|
|
5
|
+
import { MSearchBuilder, MSearchRequest } from './multi-search-types';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a multi-search builder
|
|
8
|
+
* @returns MSearchBuilder instance
|
|
9
|
+
*/
|
|
10
|
+
export declare const createMSearchBuilder: <T>(searches?: MSearchRequest<T>[]) => MSearchBuilder<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new multi-search builder
|
|
13
|
+
* @example
|
|
14
|
+
* const ms = msearch<Product>()
|
|
15
|
+
* .addQuery(query1.build(), { index: 'products' })
|
|
16
|
+
* .addQuery(query2.build(), { index: 'products' })
|
|
17
|
+
* .build();
|
|
18
|
+
*/
|
|
19
|
+
export declare const msearch: <T>() => MSearchBuilder<T>;
|
|
20
|
+
//# sourceMappingURL=multi-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-search.d.ts","sourceRoot":"","sources":["../src/multi-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtE;;;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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Multi-Search API builder
|
|
4
|
+
* Enables batching multiple search requests in a single API call
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.msearch = exports.createMSearchBuilder = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a multi-search builder
|
|
10
|
+
* @returns MSearchBuilder instance
|
|
11
|
+
*/
|
|
12
|
+
const createMSearchBuilder = (searches = []) => ({
|
|
13
|
+
add: (request) => {
|
|
14
|
+
return (0, exports.createMSearchBuilder)([...searches, request]);
|
|
15
|
+
},
|
|
16
|
+
addQuery: (body, header = {}) => {
|
|
17
|
+
return (0, exports.createMSearchBuilder)([...searches, { header, body }]);
|
|
18
|
+
},
|
|
19
|
+
build: () => {
|
|
20
|
+
return (searches
|
|
21
|
+
.map(({ header, body }) => {
|
|
22
|
+
const headerLine = JSON.stringify(header || {});
|
|
23
|
+
const bodyLine = JSON.stringify(body);
|
|
24
|
+
return `${headerLine}\n${bodyLine}`;
|
|
25
|
+
})
|
|
26
|
+
.join('\n') + '\n');
|
|
27
|
+
},
|
|
28
|
+
buildArray: () => {
|
|
29
|
+
return searches.flatMap(({ header, body }) => [header || {}, body]);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
exports.createMSearchBuilder = createMSearchBuilder;
|
|
33
|
+
/**
|
|
34
|
+
* Create a new multi-search builder
|
|
35
|
+
* @example
|
|
36
|
+
* const ms = msearch<Product>()
|
|
37
|
+
* .addQuery(query1.build(), { index: 'products' })
|
|
38
|
+
* .addQuery(query2.build(), { index: 'products' })
|
|
39
|
+
* .build();
|
|
40
|
+
*/
|
|
41
|
+
const msearch = () => (0, exports.createMSearchBuilder)();
|
|
42
|
+
exports.msearch = msearch;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query builder implementation
|
|
3
|
+
* Builds type-safe Elasticsearch queries with a fluent API
|
|
4
|
+
*/
|
|
5
|
+
import { QueryState, QueryBuilder } from './types';
|
|
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>;
|
|
12
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +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,SAAS,CAAC;AAgFlE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,QAAO,UAAU,CAAC,CAAC,CAAM,KACxB,YAAY,CAAC,CAAC,CA2Vf,CAAC"}
|