opensearch-ts 1.2.2
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 +504 -0
- package/README.md +104 -0
- package/dist/aggInput.d.ts +31 -0
- package/dist/aggInput.js +2 -0
- package/dist/aggOutput.d.ts +285 -0
- package/dist/aggOutput.js +2 -0
- package/dist/aggs.d.ts +288 -0
- package/dist/aggs.js +2 -0
- package/dist/attributes.d.ts +25 -0
- package/dist/attributes.js +2 -0
- package/dist/exports.d.ts +8 -0
- package/dist/exports.js +2 -0
- package/dist/fields.d.ts +22 -0
- package/dist/fields.js +2 -0
- package/dist/filters.d.ts +174 -0
- package/dist/filters.js +2 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +24 -0
- package/dist/logger.d.ts +1 -0
- package/dist/logger.js +7 -0
- package/dist/match.d.ts +27 -0
- package/dist/match.js +2 -0
- package/dist/query.d.ts +6 -0
- package/dist/query.js +37 -0
- package/dist/query.test.d.ts +3 -0
- package/dist/query.test.js +360 -0
- package/dist/search.d.ts +194 -0
- package/dist/search.js +13 -0
- package/dist/testUtil.d.ts +2 -0
- package/dist/testUtil.js +20 -0
- package/dist/tests/Ecommerce.d.ts +60 -0
- package/dist/tests/Ecommerce.js +2 -0
- package/dist/tests/Flight.d.ts +33 -0
- package/dist/tests/Flight.js +2 -0
- package/dist/tests/ServerLog.d.ts +40 -0
- package/dist/tests/ServerLog.js +2 -0
- package/dist/tests/bucket.test.d.ts +1 -0
- package/dist/tests/bucket.test.js +453 -0
- package/dist/tests/ecommercetest.test.d.ts +1 -0
- package/dist/tests/ecommercetest.test.js +83 -0
- package/dist/tests/flights.test.d.ts +1 -0
- package/dist/tests/flights.test.js +48 -0
- package/dist/tests/metric.test.d.ts +1 -0
- package/dist/tests/metric.test.js +258 -0
- package/dist/tests/pipeline.test.d.ts +1 -0
- package/dist/tests/pipeline.test.js +342 -0
- package/dist/typescriptOS.d.ts +38 -0
- package/dist/typescriptOS.js +51 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.js +7 -0
- package/package.json +46 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { AggType, AggsQuery } from "./aggInput";
|
|
2
|
+
import { StatsField } from "./fields";
|
|
3
|
+
import { Hits } from "./search";
|
|
4
|
+
export type RangeString = {
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
};
|
|
8
|
+
export type RangeStringWithStringRep = RangeString & {
|
|
9
|
+
from_as_string: string;
|
|
10
|
+
to_as_string: string;
|
|
11
|
+
};
|
|
12
|
+
export type ScriptedMetricAggResp = {
|
|
13
|
+
value: {
|
|
14
|
+
other: number;
|
|
15
|
+
success: number;
|
|
16
|
+
error: number;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export type PercentilesAggResp = {
|
|
20
|
+
values: {
|
|
21
|
+
[a: string]: number;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export type PercentileRanksAggResp = {
|
|
25
|
+
values: {
|
|
26
|
+
[a: string]: number;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export type MetricStatsElement<T> = {
|
|
30
|
+
"name": StatsField<T>;
|
|
31
|
+
"count": number;
|
|
32
|
+
"mean": number;
|
|
33
|
+
"variance": number;
|
|
34
|
+
"skewness": number;
|
|
35
|
+
"kurtosis": number;
|
|
36
|
+
"covariance": {
|
|
37
|
+
"products.base_price": number;
|
|
38
|
+
"taxful_total_price": number;
|
|
39
|
+
};
|
|
40
|
+
"correlation": {
|
|
41
|
+
"products.base_price": number;
|
|
42
|
+
"taxful_total_price": number;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Metric Aggs
|
|
47
|
+
*/
|
|
48
|
+
export type MatrixStatsResp<T> = {
|
|
49
|
+
"doc_count": number;
|
|
50
|
+
"fields": MetricStatsElement<T>[];
|
|
51
|
+
};
|
|
52
|
+
export type MetricGeoBoundsAggResp = {
|
|
53
|
+
bounds: {
|
|
54
|
+
top_left: {
|
|
55
|
+
lat: number;
|
|
56
|
+
lon: number;
|
|
57
|
+
};
|
|
58
|
+
bottom_right: {
|
|
59
|
+
lat: number;
|
|
60
|
+
lon: number;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Pipeline Aggs
|
|
66
|
+
*/
|
|
67
|
+
export type BucketPipeAggResp = {
|
|
68
|
+
value: number;
|
|
69
|
+
};
|
|
70
|
+
export type StatsBucketPipeAggResp = StatsAggResp;
|
|
71
|
+
export type BucketScriptAggResp = {
|
|
72
|
+
value: number;
|
|
73
|
+
};
|
|
74
|
+
export type ExtendedStatsBucketPipeAggResp = ExtendedStatsAggResp;
|
|
75
|
+
export type AggBucket = {
|
|
76
|
+
doc_count: number;
|
|
77
|
+
key: string | number;
|
|
78
|
+
};
|
|
79
|
+
export type AggBucketWithKeyAsString = AggBucket & {
|
|
80
|
+
key_as_string: string;
|
|
81
|
+
};
|
|
82
|
+
export type AggAGG<AGG> = AggBucket & AGG;
|
|
83
|
+
export type AggBucketWithKeyAsStringAgg<AGG> = AggBucketWithKeyAsString & AGG;
|
|
84
|
+
export type AggBucketsResponse = {
|
|
85
|
+
"buckets": AggBucket[];
|
|
86
|
+
};
|
|
87
|
+
export type AggBucketsResponseAgg<AGG> = {
|
|
88
|
+
"buckets": AggAGG<AGG>[];
|
|
89
|
+
};
|
|
90
|
+
export type AggBucketsResponseWithKeyAsStringAgg<AGG> = {
|
|
91
|
+
"buckets": AggBucketWithKeyAsStringAgg<AGG>[];
|
|
92
|
+
};
|
|
93
|
+
export type DateRangeBucketsResponseWithKeyAsStringAgg<AGG> = {
|
|
94
|
+
"buckets": (AGG & RangeStringWithStringRep & AggBucket)[];
|
|
95
|
+
};
|
|
96
|
+
export type HistAggResp = AggBucketsResponse;
|
|
97
|
+
export type DateHistAggResp = {
|
|
98
|
+
"buckets": AggBucketWithKeyAsString[];
|
|
99
|
+
};
|
|
100
|
+
export type HistAggRespAgg<AGG> = AggBucketsResponseAgg<AGG>;
|
|
101
|
+
export type DateHistAggRespAgg<AGG> = AggBucketsResponseWithKeyAsStringAgg<AGG>;
|
|
102
|
+
export type DateRangeAggResp<AGG> = DateRangeBucketsResponseWithKeyAsStringAgg<AGG>;
|
|
103
|
+
export type TermsAggResp = {
|
|
104
|
+
"doc_count_error_upper_bound": number;
|
|
105
|
+
"sum_other_doc_count": number;
|
|
106
|
+
} & AggBucketsResponse;
|
|
107
|
+
export type FilterAggRespAgg<AGG> = {
|
|
108
|
+
doc_count: number;
|
|
109
|
+
} & AGG;
|
|
110
|
+
export type SamplerAggRespAgg<AGG> = {} & AGG;
|
|
111
|
+
export type DiversifiedAggRespAgg<AGG> = {
|
|
112
|
+
doc_count: number;
|
|
113
|
+
} & AGG;
|
|
114
|
+
export type SignificantTextAggResp<AGG> = {
|
|
115
|
+
doc_count: number;
|
|
116
|
+
bg_count: number;
|
|
117
|
+
buckets: ({
|
|
118
|
+
key: string;
|
|
119
|
+
doc_count: number;
|
|
120
|
+
score: number;
|
|
121
|
+
bg_count: number;
|
|
122
|
+
} & AGG)[];
|
|
123
|
+
};
|
|
124
|
+
export type SignificantTermsAggResp<AGG> = {
|
|
125
|
+
doc_count: number;
|
|
126
|
+
bg_count: number;
|
|
127
|
+
buckets: ({
|
|
128
|
+
key: string;
|
|
129
|
+
doc_count: number;
|
|
130
|
+
score: number;
|
|
131
|
+
bg_count: number;
|
|
132
|
+
} & AGG)[];
|
|
133
|
+
};
|
|
134
|
+
export type IPRangeAggResp<AGG> = {
|
|
135
|
+
buckets: ({
|
|
136
|
+
key: string;
|
|
137
|
+
from: string;
|
|
138
|
+
to: string;
|
|
139
|
+
doc_count: number;
|
|
140
|
+
} & AGG)[];
|
|
141
|
+
};
|
|
142
|
+
export type GeotileGridAggResp<AGG> = {
|
|
143
|
+
"buckets": ({
|
|
144
|
+
"key": string;
|
|
145
|
+
"doc_count": number;
|
|
146
|
+
} & AGG)[];
|
|
147
|
+
};
|
|
148
|
+
export type GeohexGridAggResp<AGG> = {
|
|
149
|
+
"buckets": ({
|
|
150
|
+
"key": string;
|
|
151
|
+
"doc_count": number;
|
|
152
|
+
} & AGG)[];
|
|
153
|
+
};
|
|
154
|
+
export type GeohashGridAggResp<AGG> = {
|
|
155
|
+
"buckets": ({
|
|
156
|
+
"key": string;
|
|
157
|
+
"doc_count": number;
|
|
158
|
+
} & AGG)[];
|
|
159
|
+
};
|
|
160
|
+
export type GeoDistanceAggResp<AGG> = {
|
|
161
|
+
"buckets": ({
|
|
162
|
+
"key": string;
|
|
163
|
+
"from": number;
|
|
164
|
+
"to": number;
|
|
165
|
+
"doc_count": number;
|
|
166
|
+
} & AGG)[];
|
|
167
|
+
};
|
|
168
|
+
export type FiltersAggRespAgg<AGG> = {
|
|
169
|
+
doc_count: number;
|
|
170
|
+
} & AGG;
|
|
171
|
+
export type TermsAggRespAgg<AGG> = {
|
|
172
|
+
"doc_count_error_upper_bound": number;
|
|
173
|
+
"sum_other_doc_count": number;
|
|
174
|
+
"buckets": ({
|
|
175
|
+
doc_count: number;
|
|
176
|
+
key: string | number;
|
|
177
|
+
} & AGG)[];
|
|
178
|
+
};
|
|
179
|
+
export type MultiTermsAggRespAgg<AGG> = {
|
|
180
|
+
"doc_count_error_upper_bound": number;
|
|
181
|
+
"sum_other_doc_count": number;
|
|
182
|
+
"buckets": ({
|
|
183
|
+
key: string[] | number[];
|
|
184
|
+
key_as_string: string;
|
|
185
|
+
doc_count: number;
|
|
186
|
+
} & AGG)[];
|
|
187
|
+
};
|
|
188
|
+
export type ValueAggResp = {
|
|
189
|
+
value: number;
|
|
190
|
+
value_as_string: string;
|
|
191
|
+
};
|
|
192
|
+
export type AvgAggResp = ValueAggResp;
|
|
193
|
+
export type SumAggResp = ValueAggResp;
|
|
194
|
+
export type MinAggResp = ValueAggResp;
|
|
195
|
+
export type MaxAggResp = ValueAggResp;
|
|
196
|
+
export type CardAggResp = ValueAggResp;
|
|
197
|
+
export type ValueCountAggResp = {
|
|
198
|
+
value: number;
|
|
199
|
+
};
|
|
200
|
+
export type StatsAggResp = {
|
|
201
|
+
count: number;
|
|
202
|
+
min: number;
|
|
203
|
+
max: number;
|
|
204
|
+
avg: number;
|
|
205
|
+
sum: number;
|
|
206
|
+
};
|
|
207
|
+
export type ExtendedStatsAggResp = {
|
|
208
|
+
"count": number;
|
|
209
|
+
"min": number;
|
|
210
|
+
"max": number;
|
|
211
|
+
"avg": number;
|
|
212
|
+
"sum": number;
|
|
213
|
+
"sum_of_squares": number;
|
|
214
|
+
"variance": number;
|
|
215
|
+
"variance_population": number;
|
|
216
|
+
"variance_sampling": number;
|
|
217
|
+
"std_deviation": number;
|
|
218
|
+
"std_deviation_population": number;
|
|
219
|
+
"std_deviation_sampling": number;
|
|
220
|
+
"std_deviation_bounds": {
|
|
221
|
+
"upper": number;
|
|
222
|
+
"lower": number;
|
|
223
|
+
"upper_population": number;
|
|
224
|
+
"lower_population": number;
|
|
225
|
+
"upper_sampling": number;
|
|
226
|
+
"lower_sampling": number;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
export type AdjacencyMatrixAggResp = {
|
|
230
|
+
buckets: AggBucket[];
|
|
231
|
+
};
|
|
232
|
+
export type RangeRespDict = {
|
|
233
|
+
[k: string]: {
|
|
234
|
+
from: number | Date;
|
|
235
|
+
to: number | Date;
|
|
236
|
+
doc_count: number;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
export type RangeRespArr = {
|
|
240
|
+
key: string;
|
|
241
|
+
from: number | Date;
|
|
242
|
+
to: number | Date;
|
|
243
|
+
doc_count: number;
|
|
244
|
+
}[];
|
|
245
|
+
export type RangeResp = {
|
|
246
|
+
buckets: RangeRespDict & RangeRespArr;
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Recursively map the aggregation types
|
|
250
|
+
*/
|
|
251
|
+
export type AggTypeResponseDictionary2<T, AT extends AggType, AGS extends AggsQuery> = AGS extends object ? (AT extends "significant_text" ? SignificantTextAggResp<{
|
|
252
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
253
|
+
}> : AT extends "significant_terms" ? SignificantTermsAggResp<{
|
|
254
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
255
|
+
}> : AT extends "ip_range" ? IPRangeAggResp<{
|
|
256
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
257
|
+
}> : AT extends "geotile_grid" ? GeotileGridAggResp<{
|
|
258
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
259
|
+
}> : AT extends "geohex_grid" ? GeohexGridAggResp<{
|
|
260
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
261
|
+
}> : AT extends "geohash_grid" ? GeohashGridAggResp<{
|
|
262
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
263
|
+
}> : AT extends "geo_distance" ? GeoDistanceAggResp<{
|
|
264
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
265
|
+
}> : AT extends "sampler" ? SamplerAggRespAgg<{
|
|
266
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
267
|
+
}> : AT extends "diversified_sampler" ? DiversifiedAggRespAgg<{
|
|
268
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
269
|
+
}> : AT extends "filters" ? FiltersAggRespAgg<{
|
|
270
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
271
|
+
}> : AT extends "filter" ? FilterAggRespAgg<{
|
|
272
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
273
|
+
}> : AT extends "terms" ? TermsAggRespAgg<{
|
|
274
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
275
|
+
}> : AT extends "multi_terms" ? MultiTermsAggRespAgg<{
|
|
276
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
277
|
+
}> : AT extends "histogram" ? HistAggRespAgg<{
|
|
278
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
279
|
+
}> : AT extends "date_histogram" ? DateHistAggRespAgg<{
|
|
280
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
281
|
+
}> : AT extends "date_range" ? DateRangeAggResp<{
|
|
282
|
+
[K in keyof AGS]: AggTypeResponseDictionary2<T, AGS[K]["agg"], AGS[K]["aggs"]>;
|
|
283
|
+
}> : never) : AT extends "significant_text" ? SignificantTextAggResp<void> : AT extends "significant_terms" ? SignificantTermsAggResp<void> : AT extends "ip_range" ? IPRangeAggResp<void> : AT extends "geotile_grid" ? GeotileGridAggResp<void> : AT extends "geohex_grid" ? GeohexGridAggResp<void> : AT extends "geohash_grid" ? GeohashGridAggResp<void> : AT extends "geo_distance" ? GeoDistanceAggResp<void> : AT extends "sampler" ? SamplerAggRespAgg<void> : AT extends "diversified_sampler" ? DiversifiedAggRespAgg<void> : AT extends "filters" ? FiltersAggRespAgg<void> : AT extends "filter" ? FilterAggRespAgg<void> : AT extends "terms" ? TermsAggRespAgg<void> : AT extends "multi_terms" ? MultiTermsAggRespAgg<void> : AT extends "histogram" ? DateHistAggRespAgg<void> : AT extends "date_histogram" ? DateHistAggRespAgg<void> : AT extends "date_range" ? DateRangeAggResp<void> : AT extends "value_count" ? ValueCountAggResp : AT extends "stats" ? StatsAggResp : AT extends "scripted_metric" ? ScriptedMetricAggResp : AT extends "percentiles" ? PercentilesAggResp : AT extends "percentile_ranks" ? PercentileRanksAggResp : AT extends "matrix_stats" ? MatrixStatsResp<T> : AT extends "geo_bounds" ? MetricGeoBoundsAggResp : AT extends "serial_diff" ? BucketPipeAggResp : AT extends "moving_avg" ? BucketPipeAggResp : AT extends "derivative" ? BucketPipeAggResp : AT extends "cumulative_sum" ? BucketPipeAggResp : AT extends "bucket_selector" ? undefined : AT extends "bucket_script" ? BucketScriptAggResp : AT extends "extended_stats_bucket" ? ExtendedStatsBucketPipeAggResp : AT extends "sum_bucket" ? BucketPipeAggResp : AT extends "stats_bucket" ? StatsBucketPipeAggResp : AT extends "min_bucket" ? BucketPipeAggResp : AT extends "max_bucket" ? BucketPipeAggResp : AT extends "avg" ? AvgAggResp : AT extends "sum" ? SumAggResp : AT extends "min" ? MinAggResp : AT extends "max" ? MaxAggResp : AT extends "extended_stats" ? ExtendedStatsAggResp : AT extends "cardinality" ? CardAggResp : AT extends "adjacency_matrix" ? AdjacencyMatrixAggResp : AT extends "top_hits" ? {
|
|
284
|
+
hits: Hits<T>;
|
|
285
|
+
} : AT extends "range" ? RangeResp : never;
|
package/dist/aggs.d.ts
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import * as fields from "./fields";
|
|
2
|
+
import * as filter from "./filters";
|
|
3
|
+
import * as a from "./attributes";
|
|
4
|
+
import { RequireAtLeastOne, RequireExactlyOne } from "type-fest";
|
|
5
|
+
export type SignificantTextAgg<T> = {
|
|
6
|
+
significant_text: {
|
|
7
|
+
min_doc_count?: number;
|
|
8
|
+
background_filter?: {
|
|
9
|
+
term: RequireExactlyOne<{
|
|
10
|
+
[key in a.StringAtt<T>]: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
} & fields.SringField<T>;
|
|
14
|
+
};
|
|
15
|
+
export type SignificantTermsAgg<T> = {
|
|
16
|
+
significant_terms: fields.AnyField<T>;
|
|
17
|
+
};
|
|
18
|
+
export type Sampler = {
|
|
19
|
+
sampler: {
|
|
20
|
+
shard_size: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export type ReverseNestedAgg = {
|
|
24
|
+
reverse_nested: {};
|
|
25
|
+
};
|
|
26
|
+
export type NestedAgg<T> = {
|
|
27
|
+
nested: {
|
|
28
|
+
path: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export type IPRangeAgg<T> = {
|
|
32
|
+
ip_range: {
|
|
33
|
+
ranges: RequireAtLeastOne<{
|
|
34
|
+
from: string;
|
|
35
|
+
to: string;
|
|
36
|
+
mask: string;
|
|
37
|
+
}>[];
|
|
38
|
+
} & fields.SringField<T>;
|
|
39
|
+
};
|
|
40
|
+
export type Global = {};
|
|
41
|
+
export type GeotileGridAgg<T> = {
|
|
42
|
+
geotile_grid: {
|
|
43
|
+
precision: number;
|
|
44
|
+
} & fields.GeoPointField<T>;
|
|
45
|
+
};
|
|
46
|
+
export type GeohexGridAgg<T> = {
|
|
47
|
+
geohex_grid: {
|
|
48
|
+
precision: number;
|
|
49
|
+
} & fields.GeoPointField<T>;
|
|
50
|
+
};
|
|
51
|
+
export type GeohashGridAgg<T> = {
|
|
52
|
+
geohash_grid: {
|
|
53
|
+
precision: number;
|
|
54
|
+
} & fields.GeoPointField<T>;
|
|
55
|
+
};
|
|
56
|
+
export type ValueCountAgg<T> = {
|
|
57
|
+
value_count: fields.AnyField<T>;
|
|
58
|
+
};
|
|
59
|
+
export type StatsAgg<T> = {
|
|
60
|
+
stats: fields.StatsField<T>;
|
|
61
|
+
};
|
|
62
|
+
export type ScriptedMetricAgg = {
|
|
63
|
+
scripted_metric: {
|
|
64
|
+
init_script: string;
|
|
65
|
+
map_script: string;
|
|
66
|
+
combine_script: string;
|
|
67
|
+
reduce_script: string;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export type PercentilesAgg<T> = {
|
|
71
|
+
percentiles: fields.AnyField<T> & {
|
|
72
|
+
percents: number[];
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export type PercentileRanksAgg<T> = {
|
|
76
|
+
"percentile_ranks": {
|
|
77
|
+
"field": a.AnyAttribute<T>;
|
|
78
|
+
"values": number[];
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
export type MatrixStats<T> = {
|
|
82
|
+
matrix_stats: {
|
|
83
|
+
fields: a.StatsAttribute<T>[];
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
export type MetricGeoBoundsAgg<T> = {
|
|
87
|
+
geo_bounds: fields.GeoPointField<T>;
|
|
88
|
+
};
|
|
89
|
+
export type BucketSerialDiffAgg = {
|
|
90
|
+
serial_diff: BucketPipePatch & {
|
|
91
|
+
lag: number | string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
export type BucketMovingAvgAgg = {
|
|
95
|
+
moving_avg: {
|
|
96
|
+
buckets_path: string;
|
|
97
|
+
predict?: number;
|
|
98
|
+
window?: number;
|
|
99
|
+
model?: "ewma" | "holt" | "holt_winters" | "linear" | "simple";
|
|
100
|
+
settings?: {
|
|
101
|
+
type?: "add" | "mult";
|
|
102
|
+
alpha?: number;
|
|
103
|
+
beta?: number;
|
|
104
|
+
gamma?: number;
|
|
105
|
+
period?: number;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
export type BucketDerivativeAgg = {
|
|
110
|
+
derivative: BucketPipePatch;
|
|
111
|
+
};
|
|
112
|
+
export type BucketCulmSumAgg = {
|
|
113
|
+
cumulative_sum: BucketPipePatch;
|
|
114
|
+
};
|
|
115
|
+
export type BucketSortAgg = {
|
|
116
|
+
bucket_sort: {
|
|
117
|
+
sort: {
|
|
118
|
+
[key: string]: {
|
|
119
|
+
order: "asc" | "desc";
|
|
120
|
+
};
|
|
121
|
+
}[];
|
|
122
|
+
size?: number;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
export type BucketSelectorAgg = {
|
|
126
|
+
bucket_selector: {
|
|
127
|
+
buckets_path?: {
|
|
128
|
+
[a: string]: string;
|
|
129
|
+
};
|
|
130
|
+
script: string;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
export type BucketScriptAgg = {
|
|
134
|
+
bucket_script: {
|
|
135
|
+
"buckets_path": {
|
|
136
|
+
[p: string]: string;
|
|
137
|
+
};
|
|
138
|
+
"script": string;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
export type BucketPipePatch = string | {
|
|
142
|
+
[a: string]: any;
|
|
143
|
+
};
|
|
144
|
+
export type SumBucketPipeAgg = {
|
|
145
|
+
sum_bucket: BucketPipePatch;
|
|
146
|
+
};
|
|
147
|
+
export type StatsBucketPipeAgg = {
|
|
148
|
+
stats_bucket: BucketPipePatch;
|
|
149
|
+
};
|
|
150
|
+
export type ExtendedStatsBucketPipeAgg = {
|
|
151
|
+
extended_stats_bucket: BucketPipePatch;
|
|
152
|
+
};
|
|
153
|
+
export type AvgBucketPipeAgg = {
|
|
154
|
+
avg_bucket: BucketPipePatch;
|
|
155
|
+
};
|
|
156
|
+
export type MinBucketPipeAgg = {
|
|
157
|
+
min_bucket: BucketPipePatch;
|
|
158
|
+
};
|
|
159
|
+
export type MaxBucketPipeAgg = {
|
|
160
|
+
max_bucket: BucketPipePatch;
|
|
161
|
+
};
|
|
162
|
+
export type TermsAgg<T> = {
|
|
163
|
+
terms: fields.AnyField<T> & {
|
|
164
|
+
size?: number;
|
|
165
|
+
missing?: number | string | Date;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
export type MultiTermsAgg<T> = {
|
|
169
|
+
multi_terms: {
|
|
170
|
+
terms: fields.AnyField<T>[];
|
|
171
|
+
order?: RequireExactlyOne<{
|
|
172
|
+
[key in a.AnyAttribute<T>]: "asc" | "desc";
|
|
173
|
+
}>;
|
|
174
|
+
size?: number;
|
|
175
|
+
doc_count?: number;
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
export type AvgAgg<T> = {
|
|
179
|
+
avg: fields.StatsField<T>;
|
|
180
|
+
};
|
|
181
|
+
export type ExtendedStatsAgg<T> = {
|
|
182
|
+
extended_stats: fields.NumberField<T> & {
|
|
183
|
+
sigma?: number;
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
export type HistAgg<T> = {
|
|
187
|
+
histogram: {
|
|
188
|
+
interval: number | string;
|
|
189
|
+
} & fields.StatsField<T>;
|
|
190
|
+
};
|
|
191
|
+
export type DateHistBucketAgg<T> = {
|
|
192
|
+
date_histogram: {
|
|
193
|
+
interval?: string | "day" | "hour" | "minute" | "quarter" | "second" | "week" | "year";
|
|
194
|
+
calendar_interval?: string;
|
|
195
|
+
} & fields.DateField<T>;
|
|
196
|
+
};
|
|
197
|
+
export type SumAgg<T> = {
|
|
198
|
+
sum: fields.NumberField<T>;
|
|
199
|
+
};
|
|
200
|
+
export type MinAgg<T> = {
|
|
201
|
+
min: fields.StatsField<T>;
|
|
202
|
+
};
|
|
203
|
+
export type MaxAgg<T> = {
|
|
204
|
+
max: fields.StatsField<T>;
|
|
205
|
+
};
|
|
206
|
+
export type CardAgg<T> = {
|
|
207
|
+
cardinality: fields.AnyField<T>;
|
|
208
|
+
};
|
|
209
|
+
export type GeoDistanceAgg<T> = {
|
|
210
|
+
geo_distance: {
|
|
211
|
+
field: string;
|
|
212
|
+
origin: {
|
|
213
|
+
lat: number;
|
|
214
|
+
lon: number;
|
|
215
|
+
};
|
|
216
|
+
ranges: RequireAtLeastOne<{
|
|
217
|
+
from: number;
|
|
218
|
+
to: number;
|
|
219
|
+
}>[];
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
export type DiversifiedAgg<T> = {
|
|
223
|
+
diversified_sampler: {
|
|
224
|
+
shard_size: number;
|
|
225
|
+
field?: a.AnyAttribute<T>;
|
|
226
|
+
max_docs_per_value?: number;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
export type DateRangeBucketAgg<T> = {
|
|
230
|
+
date_range: {
|
|
231
|
+
field: a.DateAtt<T>;
|
|
232
|
+
format: string;
|
|
233
|
+
ranges: {
|
|
234
|
+
from: string;
|
|
235
|
+
to: string;
|
|
236
|
+
}[];
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
export type AdjacencyMatrixBucketAgg<T> = {
|
|
240
|
+
adjacency_matrix: {
|
|
241
|
+
filters: {
|
|
242
|
+
[k: string]: {
|
|
243
|
+
match: RequireExactlyOne<{
|
|
244
|
+
[k in a.TextOrKeywordAtt<T>]: string;
|
|
245
|
+
}>;
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
export type TopHitsAgg<T> = {
|
|
251
|
+
top_hits: {
|
|
252
|
+
size?: number;
|
|
253
|
+
sort?: RequireAtLeastOne<{
|
|
254
|
+
[k in a.AnyAttribute<T>]: {
|
|
255
|
+
order?: "asc" | "desc";
|
|
256
|
+
};
|
|
257
|
+
}>[];
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
export type RangeArrayAgg<T> = {
|
|
261
|
+
range: {
|
|
262
|
+
field: a.StatsAttribute<T>;
|
|
263
|
+
keyed: false | undefined;
|
|
264
|
+
ranges: {
|
|
265
|
+
from: number | Date;
|
|
266
|
+
to: number | Date;
|
|
267
|
+
}[];
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
export type RangeDictAgg<T> = {
|
|
271
|
+
range: {
|
|
272
|
+
field: a.StatsAttribute<T>;
|
|
273
|
+
keyed: true;
|
|
274
|
+
ranges: {
|
|
275
|
+
from: number | Date;
|
|
276
|
+
to: number | Date;
|
|
277
|
+
}[];
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
export type FilterAgg<T> = {
|
|
281
|
+
filter: filter.FilterStatement<T>;
|
|
282
|
+
};
|
|
283
|
+
export type FiltersAgg<T> = {
|
|
284
|
+
filters: {
|
|
285
|
+
filters: filter.FilterStatement<T>[];
|
|
286
|
+
other_bucket?: boolean;
|
|
287
|
+
};
|
|
288
|
+
};
|
package/dist/aggs.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GeoPoint } from "./exports";
|
|
2
|
+
type addPrefix<TKey, TPrefix extends string> = TKey extends string ? `${TPrefix}${TKey}` : never;
|
|
3
|
+
type removePrefix<TPrefixedKey, TPrefix extends string> = TPrefixedKey extends addPrefix<infer TKey, TPrefix> ? TKey : '';
|
|
4
|
+
type addSuffix<TKey, TSuffix extends string> = TKey extends string ? `${TKey}${TSuffix}` : never;
|
|
5
|
+
type prefixedValue<TObject extends object, TPrefixedKey extends string, TPrefix extends string> = TObject extends {
|
|
6
|
+
[K in removePrefix<TPrefixedKey, TPrefix>]: infer TValue;
|
|
7
|
+
} ? TValue : never;
|
|
8
|
+
export type addPrefixToObject<TObject extends object, TPrefix extends string> = {
|
|
9
|
+
[K in addPrefix<keyof TObject, TPrefix>]: prefixedValue<TObject, K, TPrefix>;
|
|
10
|
+
};
|
|
11
|
+
type Join<T extends string, U extends string> = "" extends T ? U : "" extends U ? T : `${T}.${U}`;
|
|
12
|
+
type DeepKeysMatching<T, V> = T extends V ? "" : T extends Array<infer U> ? DeepKeysMatching<U, V> : T extends object ? {
|
|
13
|
+
[K in keyof T]: Join<string & K, DeepKeysMatching<T[K], V>>;
|
|
14
|
+
}[keyof T] : never;
|
|
15
|
+
export type HiddenSearchableAttributes = "_id";
|
|
16
|
+
export type BooleanAtt<T> = DeepKeysMatching<T, boolean>;
|
|
17
|
+
export type StringAtt<T> = DeepKeysMatching<T, string> | HiddenSearchableAttributes;
|
|
18
|
+
export type NumberAtt<T> = DeepKeysMatching<T, number>;
|
|
19
|
+
export type DateAtt<T> = DeepKeysMatching<T, Date>;
|
|
20
|
+
export type KeyWord<T> = addSuffix<StringAtt<T>, '.keyword'>;
|
|
21
|
+
export type GeoPointAtt<T> = DeepKeysMatching<T, GeoPoint>;
|
|
22
|
+
export type AnyAttribute<T> = BooleanAtt<T> | StringAtt<T> | NumberAtt<T> | DateAtt<T> | KeyWord<T> | GeoPointAtt<T> | HiddenSearchableAttributes;
|
|
23
|
+
export type StatsAttribute<T> = NumberAtt<T> | DateAtt<T>;
|
|
24
|
+
export type TextOrKeywordAtt<T> = KeyWord<T> | StringAtt<T> | HiddenSearchableAttributes;
|
|
25
|
+
export {};
|
package/dist/exports.js
ADDED
package/dist/fields.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as a from "./attributes";
|
|
2
|
+
/**
|
|
3
|
+
* Field input to an agg
|
|
4
|
+
*/
|
|
5
|
+
export type Field<T> = {
|
|
6
|
+
field: T;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Field representing a date
|
|
10
|
+
*/
|
|
11
|
+
export type TermsAggInput<T> = AnyField<T> & {
|
|
12
|
+
size?: number;
|
|
13
|
+
};
|
|
14
|
+
export type BooleanField<T> = Field<a.BooleanAtt<T>>;
|
|
15
|
+
export type SringField<T> = Field<a.StringAtt<T>>;
|
|
16
|
+
export type NumberField<T> = Field<a.NumberAtt<T>>;
|
|
17
|
+
export type DateField<T> = Field<a.DateAtt<T>>;
|
|
18
|
+
export type KeyWordField<T> = Field<a.KeyWord<T>>;
|
|
19
|
+
export type GeoPointField<T> = Field<a.GeoPointAtt<T>>;
|
|
20
|
+
export type AnyField<T> = Field<a.AnyAttribute<T>>;
|
|
21
|
+
export type StatsField<T> = Field<a.StatsAttribute<T>>;
|
|
22
|
+
export type TextOrKeywordField<T> = Field<a.TextOrKeywordAtt<T>>;
|
package/dist/fields.js
ADDED