@pristine-ts/opensearch 0.0.217
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 +201 -0
- package/dist/lib/cjs/clients/clients.js +18 -0
- package/dist/lib/cjs/clients/clients.js.map +1 -0
- package/dist/lib/cjs/clients/open-search.client.js +218 -0
- package/dist/lib/cjs/clients/open-search.client.js.map +1 -0
- package/dist/lib/cjs/elastic-search.module.js +30 -0
- package/dist/lib/cjs/elastic-search.module.js.map +1 -0
- package/dist/lib/cjs/elastic-search.module.keyname.js +5 -0
- package/dist/lib/cjs/elastic-search.module.keyname.js.map +1 -0
- package/dist/lib/cjs/models/aggregation.model.js +14 -0
- package/dist/lib/cjs/models/aggregation.model.js.map +1 -0
- package/dist/lib/cjs/models/models.js +23 -0
- package/dist/lib/cjs/models/models.js.map +1 -0
- package/dist/lib/cjs/models/query.model.js +23 -0
- package/dist/lib/cjs/models/query.model.js.map +1 -0
- package/dist/lib/cjs/models/range.model.js +7 -0
- package/dist/lib/cjs/models/range.model.js.map +1 -0
- package/dist/lib/cjs/models/search-result-aggregation.model.js +12 -0
- package/dist/lib/cjs/models/search-result-aggregation.model.js.map +1 -0
- package/dist/lib/cjs/models/search-result.model.js +15 -0
- package/dist/lib/cjs/models/search-result.model.js.map +1 -0
- package/dist/lib/cjs/models/sort-query.model.js +7 -0
- package/dist/lib/cjs/models/sort-query.model.js.map +1 -0
- package/dist/lib/cjs/open-search.module.js +42 -0
- package/dist/lib/cjs/open-search.module.js.map +1 -0
- package/dist/lib/cjs/open-search.module.keyname.js +5 -0
- package/dist/lib/cjs/open-search.module.keyname.js.map +1 -0
- package/dist/lib/cjs/parsers/parsers.js +18 -0
- package/dist/lib/cjs/parsers/parsers.js.map +1 -0
- package/dist/lib/cjs/parsers/request-query.parser.js +137 -0
- package/dist/lib/cjs/parsers/request-query.parser.js.map +1 -0
- package/dist/lib/esm/clients/clients.js +2 -0
- package/dist/lib/esm/clients/clients.js.map +1 -0
- package/dist/lib/esm/clients/open-search.client.js +215 -0
- package/dist/lib/esm/clients/open-search.client.js.map +1 -0
- package/dist/lib/esm/elastic-search.module.js +13 -0
- package/dist/lib/esm/elastic-search.module.js.map +1 -0
- package/dist/lib/esm/elastic-search.module.keyname.js +2 -0
- package/dist/lib/esm/elastic-search.module.keyname.js.map +1 -0
- package/dist/lib/esm/models/aggregation.model.js +10 -0
- package/dist/lib/esm/models/aggregation.model.js.map +1 -0
- package/dist/lib/esm/models/models.js +7 -0
- package/dist/lib/esm/models/models.js.map +1 -0
- package/dist/lib/esm/models/query.model.js +19 -0
- package/dist/lib/esm/models/query.model.js.map +1 -0
- package/dist/lib/esm/models/range.model.js +3 -0
- package/dist/lib/esm/models/range.model.js.map +1 -0
- package/dist/lib/esm/models/search-result-aggregation.model.js +8 -0
- package/dist/lib/esm/models/search-result-aggregation.model.js.map +1 -0
- package/dist/lib/esm/models/search-result.model.js +11 -0
- package/dist/lib/esm/models/search-result.model.js.map +1 -0
- package/dist/lib/esm/models/sort-query.model.js +3 -0
- package/dist/lib/esm/models/sort-query.model.js.map +1 -0
- package/dist/lib/esm/open-search.module.js +25 -0
- package/dist/lib/esm/open-search.module.js.map +1 -0
- package/dist/lib/esm/open-search.module.keyname.js +2 -0
- package/dist/lib/esm/open-search.module.keyname.js.map +1 -0
- package/dist/lib/esm/parsers/parsers.js +2 -0
- package/dist/lib/esm/parsers/parsers.js.map +1 -0
- package/dist/lib/esm/parsers/request-query.parser.js +134 -0
- package/dist/lib/esm/parsers/request-query.parser.js.map +1 -0
- package/dist/types/clients/clients.d.ts +1 -0
- package/dist/types/clients/open-search.client.d.ts +19 -0
- package/dist/types/elastic-search.module.d.ts +3 -0
- package/dist/types/elastic-search.module.keyname.d.ts +1 -0
- package/dist/types/models/aggregation.model.d.ts +7 -0
- package/dist/types/models/models.d.ts +6 -0
- package/dist/types/models/query.model.d.ts +41 -0
- package/dist/types/models/range.model.d.ts +3 -0
- package/dist/types/models/search-result-aggregation.model.d.ts +4 -0
- package/dist/types/models/search-result.model.d.ts +9 -0
- package/dist/types/models/sort-query.model.d.ts +3 -0
- package/dist/types/open-search.module.d.ts +6 -0
- package/dist/types/open-search.module.keyname.d.ts +1 -0
- package/dist/types/parsers/parsers.d.ts +1 -0
- package/dist/types/parsers/request-query.parser.d.ts +5 -0
- package/package.json +63 -0
- package/readme.md +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../src/parsers/parsers.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Query } from "../models/query.model";
|
|
8
|
+
import { Aggregation } from "../models/aggregation.model";
|
|
9
|
+
import { Range } from "../models/range.model";
|
|
10
|
+
import { URL } from "url";
|
|
11
|
+
import { injectable } from 'tsyringe';
|
|
12
|
+
let RequestQueryParser = class RequestQueryParser {
|
|
13
|
+
parse(request) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
const openSearchQuery = new Query();
|
|
16
|
+
const url = new URL(request.url);
|
|
17
|
+
// Page
|
|
18
|
+
const page = url.searchParams.get("page");
|
|
19
|
+
if (page) {
|
|
20
|
+
openSearchQuery.page = isNaN(+page) ? undefined : +page;
|
|
21
|
+
}
|
|
22
|
+
// Query
|
|
23
|
+
const query = url.searchParams.get("query");
|
|
24
|
+
const searchType = url.searchParams.get("search_type");
|
|
25
|
+
const searchOperator = url.searchParams.get("search_operator");
|
|
26
|
+
if (query && query != "") {
|
|
27
|
+
openSearchQuery.query = query;
|
|
28
|
+
if (searchType && (searchType === "multi_match" || searchType === "query_string")) {
|
|
29
|
+
openSearchQuery.searchType = searchType;
|
|
30
|
+
openSearchQuery.searchOperator = (_a = searchOperator) !== null && _a !== void 0 ? _a : "and";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Fields
|
|
34
|
+
const fields = url.searchParams.get("fields");
|
|
35
|
+
if (fields) {
|
|
36
|
+
openSearchQuery.fields = fields.split(",");
|
|
37
|
+
}
|
|
38
|
+
// Exclude fields from Response
|
|
39
|
+
const excludeFieldsFromResponse = url.searchParams.get("exclude_fields_from_response");
|
|
40
|
+
if (excludeFieldsFromResponse) {
|
|
41
|
+
openSearchQuery.excludeFieldsFromResponse = excludeFieldsFromResponse.split(",");
|
|
42
|
+
}
|
|
43
|
+
// Maximum number of results per page
|
|
44
|
+
const maximumNumberOfResultsPerPage = url.searchParams.get("maximum_number_of_results_per_page");
|
|
45
|
+
if (maximumNumberOfResultsPerPage) {
|
|
46
|
+
openSearchQuery.maximumNumberOfResultsPerPage = isNaN(+maximumNumberOfResultsPerPage) ? openSearchQuery.maximumNumberOfResultsPerPage : +maximumNumberOfResultsPerPage;
|
|
47
|
+
}
|
|
48
|
+
// Aggregation
|
|
49
|
+
const aggregationName = url.searchParams.get("aggregation_name");
|
|
50
|
+
const aggregationTerm = url.searchParams.get("aggregation_term");
|
|
51
|
+
const aggregationSize = url.searchParams.get("aggregation_size");
|
|
52
|
+
const aggregationSortOn = url.searchParams.get("aggregation_sort_on");
|
|
53
|
+
const aggregationSortOrder = url.searchParams.get("aggregation_sort_order");
|
|
54
|
+
if (aggregationName || aggregationTerm || aggregationSize) {
|
|
55
|
+
openSearchQuery.aggregation = new Aggregation();
|
|
56
|
+
openSearchQuery.aggregation.name = aggregationName !== null && aggregationName !== void 0 ? aggregationName : openSearchQuery.aggregation.name;
|
|
57
|
+
openSearchQuery.aggregation.term = aggregationTerm !== null && aggregationTerm !== void 0 ? aggregationTerm : openSearchQuery.aggregation.term;
|
|
58
|
+
if (aggregationSize) {
|
|
59
|
+
openSearchQuery.aggregation.size = isNaN(+aggregationSize) ? openSearchQuery.aggregation.size : +aggregationSize;
|
|
60
|
+
}
|
|
61
|
+
switch (aggregationSortOn) {
|
|
62
|
+
case 'term':
|
|
63
|
+
openSearchQuery.aggregation.sortOn = '_term';
|
|
64
|
+
break;
|
|
65
|
+
case "count":
|
|
66
|
+
openSearchQuery.aggregation.sortOn = "_count";
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
openSearchQuery.aggregation.sortOrder = (_b = aggregationSortOrder) !== null && _b !== void 0 ? _b : openSearchQuery.aggregation.sortOrder;
|
|
70
|
+
}
|
|
71
|
+
// Sort
|
|
72
|
+
const sort = url.searchParams.get("sort");
|
|
73
|
+
if (sort) {
|
|
74
|
+
openSearchQuery.sort = [];
|
|
75
|
+
const sortingPairs = sort.split(',');
|
|
76
|
+
for (const sortingPair of sortingPairs) {
|
|
77
|
+
const pair = sortingPair.split(":");
|
|
78
|
+
const term = pair[0];
|
|
79
|
+
let order = "asc";
|
|
80
|
+
if (pair[1] && (pair[1] === "desc" || pair[1] === "asc")) {
|
|
81
|
+
order = pair[1];
|
|
82
|
+
}
|
|
83
|
+
openSearchQuery.sort.push({
|
|
84
|
+
[term]: {
|
|
85
|
+
order,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Conditions
|
|
91
|
+
const conditions = url.searchParams.get("conditions");
|
|
92
|
+
if (conditions) {
|
|
93
|
+
openSearchQuery.conditions = [];
|
|
94
|
+
const parsedConditions = conditions.split(',');
|
|
95
|
+
for (const condition of parsedConditions) {
|
|
96
|
+
const pair = condition.split(":");
|
|
97
|
+
const term = pair[0];
|
|
98
|
+
if (pair[1]) {
|
|
99
|
+
openSearchQuery.conditions.push({
|
|
100
|
+
[term]: pair[1],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* range_key : {string} The property on which the filter will be applied. E.g: createdAt.
|
|
107
|
+
* range_conditions : {string} The condition(s), comma separated with no space, that will be applied. E.g: gte:5,lte:6 or gte:0.01
|
|
108
|
+
* Available Conditions : gte (greater then equal), lte (less then equal), gt (greater then), lt (less then),
|
|
109
|
+
* Followed by the value of that condition. For Date, use the Epoch number, since the date format is not in our ElasticSearch.
|
|
110
|
+
* For more information : https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html.
|
|
111
|
+
*/
|
|
112
|
+
const rangeKey = url.searchParams.get("range_key");
|
|
113
|
+
const rangeConditions = url.searchParams.get("range_conditions");
|
|
114
|
+
if (rangeKey && typeof rangeConditions === "string") {
|
|
115
|
+
openSearchQuery.range = {};
|
|
116
|
+
const range = new Range();
|
|
117
|
+
const conditions = rangeConditions.split(",");
|
|
118
|
+
for (const condition of conditions) {
|
|
119
|
+
const pair = condition.split(":");
|
|
120
|
+
const term = pair[0];
|
|
121
|
+
if (pair[1]) {
|
|
122
|
+
range[term] = isNaN(+pair[1]) ? pair[1] : +pair[1];
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
openSearchQuery.range[rangeKey] = range;
|
|
126
|
+
}
|
|
127
|
+
return openSearchQuery;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
RequestQueryParser = __decorate([
|
|
131
|
+
injectable()
|
|
132
|
+
], RequestQueryParser);
|
|
133
|
+
export { RequestQueryParser };
|
|
134
|
+
//# sourceMappingURL=request-query.parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-query.parser.js","sourceRoot":"","sources":["../../../../src/parsers/request-query.parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./open-search.client";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Query } from "../models/query.model";
|
|
2
|
+
import { LogHandlerInterface } from "@pristine-ts/logging";
|
|
3
|
+
import { SearchResult } from "../models/search-result.model";
|
|
4
|
+
import { ApiResponse, Client } from '@opensearch-project/opensearch';
|
|
5
|
+
export declare class OpenSearchClient {
|
|
6
|
+
private readonly domainUrl;
|
|
7
|
+
private readonly region;
|
|
8
|
+
private readonly logHandler;
|
|
9
|
+
constructor(domainUrl: string, region: string, logHandler: LogHandlerInterface);
|
|
10
|
+
getClient(): Client;
|
|
11
|
+
parseResponse<T>(response: ApiResponse, resultClassObject: T, currentPage?: number, maximumNumberOfResultsPerPage?: number): Promise<SearchResult<T>>;
|
|
12
|
+
search<T>(indexName: string, resultClassObject: T, query: Query): Promise<SearchResult<T>>;
|
|
13
|
+
createIndex(name: string): Promise<void>;
|
|
14
|
+
deleteIndex(name: string): Promise<void>;
|
|
15
|
+
createDocument(indexName: string, id: string, document: any): Promise<void>;
|
|
16
|
+
indexDocument(indexName: string, id: string, document: any): Promise<void>;
|
|
17
|
+
updateDocument(indexName: string, id: string, document: any): Promise<void>;
|
|
18
|
+
deleteDocument(indexName: string, id: string): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ElasticSearchModuleKeyname: string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SortQuery } from "./sort-query.model";
|
|
2
|
+
import { Aggregation } from "./aggregation.model";
|
|
3
|
+
import { Range } from "./range.model";
|
|
4
|
+
export declare class Query {
|
|
5
|
+
/**
|
|
6
|
+
* "sort": [
|
|
7
|
+
* {
|
|
8
|
+
* "priority": {
|
|
9
|
+
* "order": "asc"
|
|
10
|
+
* }
|
|
11
|
+
* }
|
|
12
|
+
* ]
|
|
13
|
+
*/
|
|
14
|
+
sort: {
|
|
15
|
+
[key: string]: SortQuery;
|
|
16
|
+
}[];
|
|
17
|
+
excludeFieldsFromResponse: string[];
|
|
18
|
+
fields: string[];
|
|
19
|
+
conditions: {
|
|
20
|
+
[key: string]: string | number | boolean;
|
|
21
|
+
}[];
|
|
22
|
+
page?: number;
|
|
23
|
+
maximumNumberOfResultsPerPage: number;
|
|
24
|
+
query?: string;
|
|
25
|
+
aggregation?: Aggregation;
|
|
26
|
+
searchType?: "multi_match" | "query_string";
|
|
27
|
+
searchOperator?: "and" | "or";
|
|
28
|
+
/**
|
|
29
|
+
* {
|
|
30
|
+
* range: {
|
|
31
|
+
* fieldName: {
|
|
32
|
+
* gte: 5,
|
|
33
|
+
* lte: 10
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
*/
|
|
38
|
+
range?: {
|
|
39
|
+
[key: string]: Range;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SearchResultAggregation } from "./search-result-aggregation.model";
|
|
2
|
+
export declare class SearchResult<T> {
|
|
3
|
+
total: number;
|
|
4
|
+
numberOfReturnedResults: number;
|
|
5
|
+
results: T[];
|
|
6
|
+
maximumNumberOfResultsPerPage: number;
|
|
7
|
+
currentPage: number;
|
|
8
|
+
aggregations: SearchResultAggregation[];
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const OpenSearchModuleKeyname: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './request-query.parser';
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pristine-ts/opensearch",
|
|
3
|
+
"version": "0.0.217",
|
|
4
|
+
"description": "",
|
|
5
|
+
"module": "dist/lib/esm/opensearch.module.js",
|
|
6
|
+
"main": "dist/lib/cjs/opensearch.module.js",
|
|
7
|
+
"types": "dist/types/opensearch.module.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
|
|
10
|
+
"prepublish": "npm run build",
|
|
11
|
+
"test": "jest",
|
|
12
|
+
"test:cov": "jest --coverage"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"author": "",
|
|
18
|
+
"license": "ISC",
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@opensearch-project/opensearch": "^2.1.0",
|
|
24
|
+
"@pristine-ts/aws": "^0.0.217",
|
|
25
|
+
"@pristine-ts/common": "^0.0.217",
|
|
26
|
+
"@pristine-ts/core": "^0.0.217"
|
|
27
|
+
},
|
|
28
|
+
"jest": {
|
|
29
|
+
"transform": {
|
|
30
|
+
".(ts|tsx)": "ts-jest"
|
|
31
|
+
},
|
|
32
|
+
"globals": {
|
|
33
|
+
"ts-jest": {
|
|
34
|
+
"tsconfig": {
|
|
35
|
+
"strictNullChecks": false
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"testEnvironment": "node",
|
|
40
|
+
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
|
|
41
|
+
"moduleFileExtensions": [
|
|
42
|
+
"ts",
|
|
43
|
+
"tsx",
|
|
44
|
+
"js"
|
|
45
|
+
],
|
|
46
|
+
"coveragePathIgnorePatterns": [
|
|
47
|
+
"/node_modules/",
|
|
48
|
+
"/test/"
|
|
49
|
+
],
|
|
50
|
+
"coverageThreshold": {
|
|
51
|
+
"global": {
|
|
52
|
+
"branches": 90,
|
|
53
|
+
"functions": 95,
|
|
54
|
+
"lines": 95,
|
|
55
|
+
"statements": 95
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"collectCoverageFrom": [
|
|
59
|
+
"src/*.{js,ts}"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"gitHead": "09d75c294b086344ec20d8226436aaee06cf2caa"
|
|
63
|
+
}
|
package/readme.md
ADDED