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.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1157 -0
  3. package/dist/__tests__/elastic.helpers.d.ts +17 -0
  4. package/dist/__tests__/elastic.helpers.d.ts.map +1 -0
  5. package/dist/__tests__/elastic.helpers.js +46 -0
  6. package/dist/aggregation-builder.d.ts +4 -0
  7. package/dist/aggregation-builder.d.ts.map +1 -0
  8. package/dist/aggregation-builder.js +153 -0
  9. package/dist/aggregation-types.d.ts +234 -0
  10. package/dist/aggregation-types.d.ts.map +1 -0
  11. package/dist/aggregation-types.js +6 -0
  12. package/dist/bulk-types.d.ts +67 -0
  13. package/dist/bulk-types.d.ts.map +1 -0
  14. package/dist/bulk-types.js +6 -0
  15. package/dist/bulk.d.ts +22 -0
  16. package/dist/bulk.d.ts.map +1 -0
  17. package/dist/bulk.js +55 -0
  18. package/dist/index-management.d.ts +30 -0
  19. package/dist/index-management.d.ts.map +1 -0
  20. package/dist/index-management.js +48 -0
  21. package/dist/index-types.d.ts +87 -0
  22. package/dist/index-types.d.ts.map +1 -0
  23. package/dist/index-types.js +6 -0
  24. package/dist/index.d.ts +12 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +25 -0
  27. package/dist/multi-search-types.d.ts +41 -0
  28. package/dist/multi-search-types.d.ts.map +1 -0
  29. package/dist/multi-search-types.js +6 -0
  30. package/dist/multi-search.d.ts +20 -0
  31. package/dist/multi-search.d.ts.map +1 -0
  32. package/dist/multi-search.js +42 -0
  33. package/dist/query-builder.d.ts +12 -0
  34. package/dist/query-builder.d.ts.map +1 -0
  35. package/dist/query-builder.js +396 -0
  36. package/dist/suggester-types.d.ts +130 -0
  37. package/dist/suggester-types.d.ts.map +1 -0
  38. package/dist/suggester-types.js +6 -0
  39. package/dist/suggester.d.ts +21 -0
  40. package/dist/suggester.d.ts.map +1 -0
  41. package/dist/suggester.js +55 -0
  42. package/dist/types.d.ts +378 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +6 -0
  45. package/dist/vector-types.d.ts +42 -0
  46. package/dist/vector-types.d.ts.map +1 -0
  47. package/dist/vector-types.js +6 -0
  48. 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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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for Index Management
4
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for Multi-Search API
4
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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"}