@webiny/api-elasticsearch 5.25.0-beta.5 → 5.25.1-beta.0
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/client.js +15 -1
- package/client.js.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/indexConfiguration/base.d.ts +2 -0
- package/indexConfiguration/base.js +34 -0
- package/indexConfiguration/base.js.map +1 -0
- package/indexConfiguration/common.d.ts +5 -0
- package/indexConfiguration/common.js +19 -0
- package/indexConfiguration/common.js.map +1 -0
- package/indexConfiguration/japanese.d.ts +2 -0
- package/indexConfiguration/japanese.js +112 -0
- package/indexConfiguration/japanese.js.map +1 -0
- package/indices.d.ts +9 -0
- package/indices.js +35 -0
- package/indices.js.map +1 -0
- package/operators.d.ts +5 -14
- package/operators.js +41 -27
- package/operators.js.map +1 -1
- package/package.json +9 -9
- package/plugins/definition/ElasticsearchIndexPlugin.d.ts +18 -0
- package/plugins/definition/ElasticsearchIndexPlugin.js +48 -0
- package/plugins/definition/ElasticsearchIndexPlugin.js.map +1 -0
- package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.d.ts +4 -0
- package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js +10 -1
- package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js.map +1 -1
- package/plugins/operator/index.d.ts +3 -0
- package/plugins/operator/index.js +39 -0
- package/plugins/operator/index.js.map +1 -1
- package/plugins/operator/japanese/contains.d.ts +8 -0
- package/plugins/operator/japanese/contains.js +58 -0
- package/plugins/operator/japanese/contains.js.map +1 -0
- package/plugins/operator/notStartsWith.d.ts +7 -0
- package/plugins/operator/notStartsWith.js +38 -0
- package/plugins/operator/notStartsWith.js.map +1 -0
- package/plugins/operator/startsWith.d.ts +7 -0
- package/plugins/operator/startsWith.js +38 -0
- package/plugins/operator/startsWith.js.map +1 -0
- package/types.d.ts +121 -0
- package/types.js.map +1 -1
- package/where.js +1 -1
- package/where.js.map +1 -1
package/client.js
CHANGED
|
@@ -15,6 +15,8 @@ var _elasticsearch = require("@elastic/elasticsearch");
|
|
|
15
15
|
|
|
16
16
|
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
17
17
|
|
|
18
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
19
|
+
|
|
18
20
|
var _awsElasticsearchConnector = _interopRequireDefault(require("aws-elasticsearch-connector"));
|
|
19
21
|
|
|
20
22
|
const _excluded = ["endpoint", "node"];
|
|
@@ -41,7 +43,19 @@ const createElasticsearchClient = options => {
|
|
|
41
43
|
Object.assign(clientOptions, (0, _awsElasticsearchConnector.default)(_awsSdk.default.config));
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
|
|
46
|
+
try {
|
|
47
|
+
return new _elasticsearch.Client(clientOptions);
|
|
48
|
+
} catch (ex) {
|
|
49
|
+
const data = _objectSpread(_objectSpread({
|
|
50
|
+
error: ex,
|
|
51
|
+
node: endpoint || node
|
|
52
|
+
}, rest), {}, {
|
|
53
|
+
auth: undefined
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
console.log(_objectSpread({}, data));
|
|
57
|
+
throw new _error.default("Could not connect to Elasticsearch.", "ELASTICSEARCH_CLIENT_ERROR", data);
|
|
58
|
+
}
|
|
45
59
|
};
|
|
46
60
|
|
|
47
61
|
exports.createElasticsearchClient = createElasticsearchClient;
|
package/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["client.ts"],"names":["createElasticsearchClient","options","endpoint","node","rest","clientOptions","auth","Object","assign","AWS","config","Client"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAKA;;;;;;;;AAMO,MAAMA,yBAAyB,GAAIC,OAAD,IAAyC;AAC9E,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA8BF,OAApC;AAAA,QAA2BG,IAA3B,0CAAoCH,OAApC;;AAEA,QAAMI,aAA4B;AAC9BF,IAAAA,IAAI,EAAED,QAAQ,IAAIC;AADY,KAE3BC,IAF2B,CAAlC;;AAKA,MAAI,CAACC,aAAa,CAACC,IAAnB,EAAyB;AACrB;AACR;AACA;AACQC,IAAAA,MAAM,CAACC,MAAP,CAAcH,aAAd,EAA6B,wCAAgCI,gBAAIC,MAApC,CAA7B;AACH;;AAED,
|
|
1
|
+
{"version":3,"sources":["client.ts"],"names":["createElasticsearchClient","options","endpoint","node","rest","clientOptions","auth","Object","assign","AWS","config","Client","ex","data","error","undefined","console","log","WebinyError"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAKA;;;;;;;;AAMO,MAAMA,yBAAyB,GAAIC,OAAD,IAAyC;AAC9E,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA8BF,OAApC;AAAA,QAA2BG,IAA3B,0CAAoCH,OAApC;;AAEA,QAAMI,aAA4B;AAC9BF,IAAAA,IAAI,EAAED,QAAQ,IAAIC;AADY,KAE3BC,IAF2B,CAAlC;;AAKA,MAAI,CAACC,aAAa,CAACC,IAAnB,EAAyB;AACrB;AACR;AACA;AACQC,IAAAA,MAAM,CAACC,MAAP,CAAcH,aAAd,EAA6B,wCAAgCI,gBAAIC,MAApC,CAA7B;AACH;;AAED,MAAI;AACA,WAAO,IAAIC,qBAAJ,CAAWN,aAAX,CAAP;AACH,GAFD,CAEE,OAAOO,EAAP,EAAW;AACT,UAAMC,IAAI;AACNC,MAAAA,KAAK,EAAEF,EADD;AAENT,MAAAA,IAAI,EAAED,QAAQ,IAAIC;AAFZ,OAGHC,IAHG;AAINE,MAAAA,IAAI,EAAES;AAJA,MAAV;;AAMAC,IAAAA,OAAO,CAACC,GAAR,mBACOJ,IADP;AAGA,UAAM,IAAIK,cAAJ,CACF,qCADE,EAEF,4BAFE,EAGFL,IAHE,CAAN;AAKH;AACJ,CAjCM","sourcesContent":["import { Client, ClientOptions } from \"@elastic/elasticsearch\";\nimport AWS from \"aws-sdk\";\nimport WebinyError from \"@webiny/error\";\n/**\n * Package aws-elasticsearch-connector does not have types.\n */\n// @ts-ignore\nimport createAwsElasticsearchConnector from \"aws-elasticsearch-connector\";\n\nexport interface ElasticsearchClientOptions extends ClientOptions {\n endpoint?: string;\n}\n\nexport const createElasticsearchClient = (options: ElasticsearchClientOptions) => {\n const { endpoint, node, ...rest } = options;\n\n const clientOptions: ClientOptions = {\n node: endpoint || node,\n ...rest\n };\n\n if (!clientOptions.auth) {\n /**\n * If no `auth` configuration is present, we setup AWS connector.\n */\n Object.assign(clientOptions, createAwsElasticsearchConnector(AWS.config));\n }\n\n try {\n return new Client(clientOptions);\n } catch (ex) {\n const data = {\n error: ex,\n node: endpoint || node,\n ...rest,\n auth: undefined\n };\n console.log({\n ...data\n });\n throw new WebinyError(\n \"Could not connect to Elasticsearch.\",\n \"ELASTICSEARCH_CLIENT_ERROR\",\n data\n );\n }\n};\n"]}
|
package/index.js
CHANGED
|
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _handler = require("@webiny/handler");
|
|
11
|
-
|
|
12
10
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
11
|
|
|
12
|
+
var _handler = require("@webiny/handler");
|
|
13
|
+
|
|
14
14
|
var _client = require("./client");
|
|
15
15
|
|
|
16
16
|
var _operators = require("./operators");
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["params","ContextPlugin","context","elasticsearch","WebinyError","Client","plugins","register"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["params","ContextPlugin","context","elasticsearch","WebinyError","Client","plugins","register"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEA;AACA;AACA;eAEIA,MADW,IAE2B;AACtC,SAAO,IAAIC,sBAAJ,CAAwCC,OAAO,IAAI;AACtD,QAAIA,OAAO,CAACC,aAAZ,EAA2B;AACvB,YAAM,IAAIC,cAAJ,CACF,yHADE,EAEF,mCAFE,CAAN;AAIH;AACD;AACR;AACA;;;AACQF,IAAAA,OAAO,CAACC,aAAR,GACIH,MAAM,YAAYK,qBAAlB,GAA2BL,MAA3B,GAAoC,uCAA0BA,MAA1B,CADxC;AAGAE,IAAAA,OAAO,CAACI,OAAR,CAAgBC,QAAhB,CAAyB,2CAAzB;AACH,GAdM,CAAP;AAeH,C","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ElasticsearchContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport { createElasticsearchClient, ElasticsearchClientOptions } from \"~/client\";\nimport { getElasticsearchOperators } from \"~/operators\";\nimport { Client } from \"@elastic/elasticsearch\";\n\n/**\n * We must accept either Elasticsearch client or options that create the client.\n */\nexport default (\n params: ElasticsearchClientOptions | Client\n): ContextPlugin<ElasticsearchContext> => {\n return new ContextPlugin<ElasticsearchContext>(context => {\n if (context.elasticsearch) {\n throw new WebinyError(\n \"Elasticsearch client is already initialized, no need to define it again. Check your code for duplicate initializations.\",\n \"ELASTICSEARCH_ALREADY_INITIALIZED\"\n );\n }\n /**\n * Initialize the Elasticsearch client.\n */\n context.elasticsearch =\n params instanceof Client ? params : createElasticsearchClient(params);\n\n context.plugins.register(getElasticsearchOperators());\n });\n};\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.base = void 0;
|
|
7
|
+
|
|
8
|
+
var _common = require("./common");
|
|
9
|
+
|
|
10
|
+
const base = {
|
|
11
|
+
mappings: {
|
|
12
|
+
dynamic_templates: _common.dynamicTemplateDates.concat([{
|
|
13
|
+
strings: {
|
|
14
|
+
match_mapping_type: "string",
|
|
15
|
+
mapping: {
|
|
16
|
+
type: "text",
|
|
17
|
+
fields: {
|
|
18
|
+
keyword: {
|
|
19
|
+
type: "keyword",
|
|
20
|
+
ignore_above: 256
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}]),
|
|
26
|
+
properties: {
|
|
27
|
+
rawValues: {
|
|
28
|
+
type: "object",
|
|
29
|
+
enabled: false
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.base = base;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["base.ts"],"names":["base","mappings","dynamic_templates","dynamicTemplateDates","concat","strings","match_mapping_type","mapping","type","fields","keyword","ignore_above","properties","rawValues","enabled"],"mappings":";;;;;;;AACA;;AAEO,MAAMA,IAAmC,GAAG;AAC/CC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,iBAAiB,EAAEC,6BAAqBC,MAArB,CAA4B,CAC3C;AACIC,MAAAA,OAAO,EAAE;AACLC,QAAAA,kBAAkB,EAAE,QADf;AAELC,QAAAA,OAAO,EAAE;AACLC,UAAAA,IAAI,EAAE,MADD;AAELC,UAAAA,MAAM,EAAE;AACJC,YAAAA,OAAO,EAAE;AACLF,cAAAA,IAAI,EAAE,SADD;AAELG,cAAAA,YAAY,EAAE;AAFT;AADL;AAFH;AAFJ;AADb,KAD2C,CAA5B,CADb;AAiBNC,IAAAA,UAAU,EAAE;AACRC,MAAAA,SAAS,EAAE;AACPL,QAAAA,IAAI,EAAE,QADC;AAEPM,QAAAA,OAAO,EAAE;AAFF;AADH;AAjBN;AADqC,CAA5C","sourcesContent":["import { ElasticsearchIndexRequestBody } from \"~/types\";\nimport { dynamicTemplateDates } from \"./common\";\n\nexport const base: ElasticsearchIndexRequestBody = {\n mappings: {\n dynamic_templates: dynamicTemplateDates.concat([\n {\n strings: {\n match_mapping_type: \"string\",\n mapping: {\n type: \"text\",\n fields: {\n keyword: {\n type: \"keyword\",\n ignore_above: 256\n }\n }\n }\n }\n }\n ]),\n properties: {\n rawValues: {\n type: \"object\",\n enabled: false\n }\n }\n }\n};\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.dynamicTemplateDates = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const dynamicTemplateDates = [{
|
|
12
|
+
dates: {
|
|
13
|
+
match: "^createdOn|savedOn|publishedOn$",
|
|
14
|
+
mapping: {
|
|
15
|
+
type: "date"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}];
|
|
19
|
+
exports.dynamicTemplateDates = dynamicTemplateDates;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["common.ts"],"names":["dynamicTemplateDates","dates","match","mapping","type"],"mappings":";;;;;;;AAEA;AACA;AACA;AACO,MAAMA,oBAA4E,GAAG,CACxF;AACIC,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE,iCADJ;AAEHC,IAAAA,OAAO,EAAE;AACLC,MAAAA,IAAI,EAAE;AADD;AAFN;AADX,CADwF,CAArF","sourcesContent":["import { ElasticsearchIndexRequestBodyMappingsDynamicTemplate } from \"~/types\";\n\n/**\n * @internal\n */\nexport const dynamicTemplateDates: ElasticsearchIndexRequestBodyMappingsDynamicTemplate[] = [\n {\n dates: {\n match: \"^createdOn|savedOn|publishedOn$\",\n mapping: {\n type: \"date\"\n }\n }\n }\n];\n"]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.japanese = void 0;
|
|
7
|
+
|
|
8
|
+
var _common = require("./common");
|
|
9
|
+
|
|
10
|
+
const japanese = {
|
|
11
|
+
settings: {
|
|
12
|
+
index: {
|
|
13
|
+
analysis: {
|
|
14
|
+
char_filter: {
|
|
15
|
+
normalize: {
|
|
16
|
+
type: "icu_normalizer",
|
|
17
|
+
name: "nfkc",
|
|
18
|
+
mode: "compose"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
tokenizer: {
|
|
22
|
+
ja_kuromoji_tokenizer: {
|
|
23
|
+
mode: "search",
|
|
24
|
+
type: "kuromoji_tokenizer",
|
|
25
|
+
discard_compound_token: "true",
|
|
26
|
+
user_dictionary_rules: ["東京スカイツリー,東京 スカイツリー,トウキョウ スカイツリー,カスタム名詞"]
|
|
27
|
+
},
|
|
28
|
+
ja_ngram_tokenizer: {
|
|
29
|
+
type: "ngram",
|
|
30
|
+
min_gram: "2",
|
|
31
|
+
max_gram: "2",
|
|
32
|
+
token_chars: ["letter", "digit"]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
filter: {
|
|
36
|
+
ja_index_synonym: {
|
|
37
|
+
type: "synonym",
|
|
38
|
+
lenient: "false",
|
|
39
|
+
synonyms: []
|
|
40
|
+
},
|
|
41
|
+
ja_search_synonym: {
|
|
42
|
+
type: "synonym_graph",
|
|
43
|
+
lenient: "false",
|
|
44
|
+
synonyms: ["米国, アメリカ", "東京大学, 東大"]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
analyzer: {
|
|
48
|
+
ja_kuromoji_index_analyzer: {
|
|
49
|
+
type: "custom",
|
|
50
|
+
char_filter: ["normalize"],
|
|
51
|
+
tokenizer: "ja_kuromoji_tokenizer",
|
|
52
|
+
filter: ["kuromoji_baseform", "kuromoji_part_of_speech", "ja_index_synonym", "cjk_width", "ja_stop", "kuromoji_stemmer", "lowercase"]
|
|
53
|
+
},
|
|
54
|
+
ja_kuromoji_search_analyzer: {
|
|
55
|
+
type: "custom",
|
|
56
|
+
char_filter: ["normalize"],
|
|
57
|
+
tokenizer: "ja_kuromoji_tokenizer",
|
|
58
|
+
filter: ["kuromoji_baseform", "kuromoji_part_of_speech", "ja_search_synonym", "cjk_width", "ja_stop", "kuromoji_stemmer", "lowercase"]
|
|
59
|
+
},
|
|
60
|
+
ja_ngram_index_analyzer: {
|
|
61
|
+
type: "custom",
|
|
62
|
+
char_filter: ["normalize"],
|
|
63
|
+
tokenizer: "ja_ngram_tokenizer",
|
|
64
|
+
filter: ["lowercase"]
|
|
65
|
+
},
|
|
66
|
+
ja_ngram_search_analyzer: {
|
|
67
|
+
type: "custom",
|
|
68
|
+
char_filter: ["normalize"],
|
|
69
|
+
tokenizer: "ja_ngram_tokenizer",
|
|
70
|
+
filter: ["ja_search_synonym", "lowercase"]
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
default: {
|
|
74
|
+
type: "ja_kuromoji_index_analyzer"
|
|
75
|
+
},
|
|
76
|
+
default_search: {
|
|
77
|
+
type: "ja_kuromoji_search_analyzer"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
mappings: {
|
|
83
|
+
dynamic_templates: _common.dynamicTemplateDates.concat([{
|
|
84
|
+
strings: {
|
|
85
|
+
match_mapping_type: "string",
|
|
86
|
+
mapping: {
|
|
87
|
+
type: "text",
|
|
88
|
+
search_analyzer: "ja_kuromoji_search_analyzer",
|
|
89
|
+
analyzer: "ja_kuromoji_index_analyzer",
|
|
90
|
+
fields: {
|
|
91
|
+
ngram: {
|
|
92
|
+
type: "text",
|
|
93
|
+
search_analyzer: "ja_ngram_search_analyzer",
|
|
94
|
+
analyzer: "ja_ngram_index_analyzer"
|
|
95
|
+
},
|
|
96
|
+
keyword: {
|
|
97
|
+
ignore_above: 256,
|
|
98
|
+
type: "keyword"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}]),
|
|
104
|
+
properties: {
|
|
105
|
+
rawValues: {
|
|
106
|
+
type: "object",
|
|
107
|
+
enabled: false
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
exports.japanese = japanese;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["japanese.ts"],"names":["japanese","settings","index","analysis","char_filter","normalize","type","name","mode","tokenizer","ja_kuromoji_tokenizer","discard_compound_token","user_dictionary_rules","ja_ngram_tokenizer","min_gram","max_gram","token_chars","filter","ja_index_synonym","lenient","synonyms","ja_search_synonym","analyzer","ja_kuromoji_index_analyzer","ja_kuromoji_search_analyzer","ja_ngram_index_analyzer","ja_ngram_search_analyzer","default","default_search","mappings","dynamic_templates","dynamicTemplateDates","concat","strings","match_mapping_type","mapping","search_analyzer","fields","ngram","keyword","ignore_above","properties","rawValues","enabled"],"mappings":";;;;;;;AACA;;AAEO,MAAMA,QAAuC,GAAG;AACnDC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,KAAK,EAAE;AACHC,MAAAA,QAAQ,EAAE;AACNC,QAAAA,WAAW,EAAE;AACTC,UAAAA,SAAS,EAAE;AACPC,YAAAA,IAAI,EAAE,gBADC;AAEPC,YAAAA,IAAI,EAAE,MAFC;AAGPC,YAAAA,IAAI,EAAE;AAHC;AADF,SADP;AAQNC,QAAAA,SAAS,EAAE;AACPC,UAAAA,qBAAqB,EAAE;AACnBF,YAAAA,IAAI,EAAE,QADa;AAEnBF,YAAAA,IAAI,EAAE,oBAFa;AAGnBK,YAAAA,sBAAsB,EAAE,MAHL;AAInBC,YAAAA,qBAAqB,EAAE,CACnB,wCADmB;AAJJ,WADhB;AASPC,UAAAA,kBAAkB,EAAE;AAChBP,YAAAA,IAAI,EAAE,OADU;AAEhBQ,YAAAA,QAAQ,EAAE,GAFM;AAGhBC,YAAAA,QAAQ,EAAE,GAHM;AAIhBC,YAAAA,WAAW,EAAE,CAAC,QAAD,EAAW,OAAX;AAJG;AATb,SARL;AAwBNC,QAAAA,MAAM,EAAE;AACJC,UAAAA,gBAAgB,EAAE;AACdZ,YAAAA,IAAI,EAAE,SADQ;AAEda,YAAAA,OAAO,EAAE,OAFK;AAGdC,YAAAA,QAAQ,EAAE;AAHI,WADd;AAMJC,UAAAA,iBAAiB,EAAE;AACff,YAAAA,IAAI,EAAE,eADS;AAEfa,YAAAA,OAAO,EAAE,OAFM;AAGfC,YAAAA,QAAQ,EAAE,CAAC,UAAD,EAAa,UAAb;AAHK;AANf,SAxBF;AAoCNE,QAAAA,QAAQ,EAAE;AACNC,UAAAA,0BAA0B,EAAE;AACxBjB,YAAAA,IAAI,EAAE,QADkB;AAExBF,YAAAA,WAAW,EAAE,CAAC,WAAD,CAFW;AAGxBK,YAAAA,SAAS,EAAE,uBAHa;AAIxBQ,YAAAA,MAAM,EAAE,CACJ,mBADI,EAEJ,yBAFI,EAGJ,kBAHI,EAIJ,WAJI,EAKJ,SALI,EAMJ,kBANI,EAOJ,WAPI;AAJgB,WADtB;AAeNO,UAAAA,2BAA2B,EAAE;AACzBlB,YAAAA,IAAI,EAAE,QADmB;AAEzBF,YAAAA,WAAW,EAAE,CAAC,WAAD,CAFY;AAGzBK,YAAAA,SAAS,EAAE,uBAHc;AAIzBQ,YAAAA,MAAM,EAAE,CACJ,mBADI,EAEJ,yBAFI,EAGJ,mBAHI,EAIJ,WAJI,EAKJ,SALI,EAMJ,kBANI,EAOJ,WAPI;AAJiB,WAfvB;AA6BNQ,UAAAA,uBAAuB,EAAE;AACrBnB,YAAAA,IAAI,EAAE,QADe;AAErBF,YAAAA,WAAW,EAAE,CAAC,WAAD,CAFQ;AAGrBK,YAAAA,SAAS,EAAE,oBAHU;AAIrBQ,YAAAA,MAAM,EAAE,CAAC,WAAD;AAJa,WA7BnB;AAmCNS,UAAAA,wBAAwB,EAAE;AACtBpB,YAAAA,IAAI,EAAE,QADgB;AAEtBF,YAAAA,WAAW,EAAE,CAAC,WAAD,CAFS;AAGtBK,YAAAA,SAAS,EAAE,oBAHW;AAItBQ,YAAAA,MAAM,EAAE,CAAC,mBAAD,EAAsB,WAAtB;AAJc;AAnCpB,SApCJ;AA8ENU,QAAAA,OAAO,EAAE;AACLrB,UAAAA,IAAI,EAAE;AADD,SA9EH;AAiFNsB,QAAAA,cAAc,EAAE;AACZtB,UAAAA,IAAI,EAAE;AADM;AAjFV;AADP;AADD,GADyC;AA0FnDuB,EAAAA,QAAQ,EAAE;AACNC,IAAAA,iBAAiB,EAAEC,6BAAqBC,MAArB,CAA4B,CAC3C;AACIC,MAAAA,OAAO,EAAE;AACLC,QAAAA,kBAAkB,EAAE,QADf;AAELC,QAAAA,OAAO,EAAE;AACL7B,UAAAA,IAAI,EAAE,MADD;AAEL8B,UAAAA,eAAe,EAAE,6BAFZ;AAGLd,UAAAA,QAAQ,EAAE,4BAHL;AAILe,UAAAA,MAAM,EAAE;AACJC,YAAAA,KAAK,EAAE;AACHhC,cAAAA,IAAI,EAAE,MADH;AAEH8B,cAAAA,eAAe,EAAE,0BAFd;AAGHd,cAAAA,QAAQ,EAAE;AAHP,aADH;AAMJiB,YAAAA,OAAO,EAAE;AACLC,cAAAA,YAAY,EAAE,GADT;AAELlC,cAAAA,IAAI,EAAE;AAFD;AANL;AAJH;AAFJ;AADb,KAD2C,CAA5B,CADb;AAwBNmC,IAAAA,UAAU,EAAE;AACRC,MAAAA,SAAS,EAAE;AACPpC,QAAAA,IAAI,EAAE,QADC;AAEPqC,QAAAA,OAAO,EAAE;AAFF;AADH;AAxBN;AA1FyC,CAAhD","sourcesContent":["import { ElasticsearchIndexRequestBody } from \"~/types\";\nimport { dynamicTemplateDates } from \"./common\";\n\nexport const japanese: ElasticsearchIndexRequestBody = {\n settings: {\n index: {\n analysis: {\n char_filter: {\n normalize: {\n type: \"icu_normalizer\",\n name: \"nfkc\",\n mode: \"compose\"\n }\n },\n tokenizer: {\n ja_kuromoji_tokenizer: {\n mode: \"search\",\n type: \"kuromoji_tokenizer\",\n discard_compound_token: \"true\",\n user_dictionary_rules: [\n \"東京スカイツリー,東京 スカイツリー,トウキョウ スカイツリー,カスタム名詞\"\n ]\n },\n ja_ngram_tokenizer: {\n type: \"ngram\",\n min_gram: \"2\",\n max_gram: \"2\",\n token_chars: [\"letter\", \"digit\"]\n }\n },\n filter: {\n ja_index_synonym: {\n type: \"synonym\",\n lenient: \"false\",\n synonyms: []\n },\n ja_search_synonym: {\n type: \"synonym_graph\",\n lenient: \"false\",\n synonyms: [\"米国, アメリカ\", \"東京大学, 東大\"]\n }\n },\n analyzer: {\n ja_kuromoji_index_analyzer: {\n type: \"custom\",\n char_filter: [\"normalize\"],\n tokenizer: \"ja_kuromoji_tokenizer\",\n filter: [\n \"kuromoji_baseform\",\n \"kuromoji_part_of_speech\",\n \"ja_index_synonym\",\n \"cjk_width\",\n \"ja_stop\",\n \"kuromoji_stemmer\",\n \"lowercase\"\n ]\n },\n ja_kuromoji_search_analyzer: {\n type: \"custom\",\n char_filter: [\"normalize\"],\n tokenizer: \"ja_kuromoji_tokenizer\",\n filter: [\n \"kuromoji_baseform\",\n \"kuromoji_part_of_speech\",\n \"ja_search_synonym\",\n \"cjk_width\",\n \"ja_stop\",\n \"kuromoji_stemmer\",\n \"lowercase\"\n ]\n },\n ja_ngram_index_analyzer: {\n type: \"custom\",\n char_filter: [\"normalize\"],\n tokenizer: \"ja_ngram_tokenizer\",\n filter: [\"lowercase\"]\n },\n ja_ngram_search_analyzer: {\n type: \"custom\",\n char_filter: [\"normalize\"],\n tokenizer: \"ja_ngram_tokenizer\",\n filter: [\"ja_search_synonym\", \"lowercase\"]\n }\n },\n default: {\n type: \"ja_kuromoji_index_analyzer\"\n },\n default_search: {\n type: \"ja_kuromoji_search_analyzer\"\n }\n }\n }\n },\n mappings: {\n dynamic_templates: dynamicTemplateDates.concat([\n {\n strings: {\n match_mapping_type: \"string\",\n mapping: {\n type: \"text\",\n search_analyzer: \"ja_kuromoji_search_analyzer\",\n analyzer: \"ja_kuromoji_index_analyzer\",\n fields: {\n ngram: {\n type: \"text\",\n search_analyzer: \"ja_ngram_search_analyzer\",\n analyzer: \"ja_ngram_index_analyzer\"\n },\n keyword: {\n ignore_above: 256,\n type: \"keyword\"\n }\n }\n }\n }\n }\n ]),\n properties: {\n rawValues: {\n type: \"object\",\n enabled: false\n }\n }\n }\n};\n"]}
|
package/indices.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ElasticsearchIndexPlugin } from "./plugins/definition/ElasticsearchIndexPlugin";
|
|
2
|
+
import { PluginsContainer } from "@webiny/plugins";
|
|
3
|
+
interface IndicesPluginsParams {
|
|
4
|
+
container: PluginsContainer;
|
|
5
|
+
type: string;
|
|
6
|
+
locale: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const getLastAddedIndexPlugin: <T extends ElasticsearchIndexPlugin>(params: IndicesPluginsParams) => T;
|
|
9
|
+
export {};
|
package/indices.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getLastAddedIndexPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
|
+
|
|
12
|
+
const listIndicesPlugins = ({
|
|
13
|
+
container,
|
|
14
|
+
type,
|
|
15
|
+
locale
|
|
16
|
+
}) => {
|
|
17
|
+
return container.byType(type).filter(plugin => {
|
|
18
|
+
return plugin.canUse(locale);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const getLastAddedIndexPlugin = params => {
|
|
23
|
+
const plugins = listIndicesPlugins(params);
|
|
24
|
+
|
|
25
|
+
if (plugins.length === 0) {
|
|
26
|
+
throw new _error.default(`Could not find a single ElasticsearchIndexPlugin of type "${params.type}".`, "ELASTICSEARCH_INDEX_TEMPLATE_ERROR", {
|
|
27
|
+
type: params.type,
|
|
28
|
+
locale: params.locale
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return plugins.pop();
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports.getLastAddedIndexPlugin = getLastAddedIndexPlugin;
|
package/indices.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["indices.ts"],"names":["listIndicesPlugins","container","type","locale","byType","filter","plugin","canUse","getLastAddedIndexPlugin","params","plugins","length","WebinyError","pop"],"mappings":";;;;;;;;;AAEA;;AAOA,MAAMA,kBAAkB,GAAG,CAAqC;AAC5DC,EAAAA,SAD4D;AAE5DC,EAAAA,IAF4D;AAG5DC,EAAAA;AAH4D,CAArC,KAIM;AAC7B,SAAOF,SAAS,CAACG,MAAV,CAAoBF,IAApB,EAA0BG,MAA1B,CAAiCC,MAAM,IAAI;AAC9C,WAAOA,MAAM,CAACC,MAAP,CAAcJ,MAAd,CAAP;AACH,GAFM,CAAP;AAGH,CARD;;AAUO,MAAMK,uBAAuB,GAChCC,MADmC,IAE/B;AACJ,QAAMC,OAAO,GAAGV,kBAAkB,CAAIS,MAAJ,CAAlC;;AACA,MAAIC,OAAO,CAACC,MAAR,KAAmB,CAAvB,EAA0B;AACtB,UAAM,IAAIC,cAAJ,CACD,6DAA4DH,MAAM,CAACP,IAAK,IADvE,EAEF,oCAFE,EAGF;AACIA,MAAAA,IAAI,EAAEO,MAAM,CAACP,IADjB;AAEIC,MAAAA,MAAM,EAAEM,MAAM,CAACN;AAFnB,KAHE,CAAN;AAQH;;AAED,SAAOO,OAAO,CAACG,GAAR,EAAP;AACH,CAhBM","sourcesContent":["import { ElasticsearchIndexPlugin } from \"~/plugins/definition/ElasticsearchIndexPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\n\ninterface IndicesPluginsParams {\n container: PluginsContainer;\n type: string;\n locale: string;\n}\nconst listIndicesPlugins = <T extends ElasticsearchIndexPlugin>({\n container,\n type,\n locale\n}: IndicesPluginsParams): T[] => {\n return container.byType<T>(type).filter(plugin => {\n return plugin.canUse(locale);\n });\n};\n\nexport const getLastAddedIndexPlugin = <T extends ElasticsearchIndexPlugin>(\n params: IndicesPluginsParams\n): T => {\n const plugins = listIndicesPlugins<T>(params);\n if (plugins.length === 0) {\n throw new WebinyError(\n `Could not find a single ElasticsearchIndexPlugin of type \"${params.type}\".`,\n \"ELASTICSEARCH_INDEX_TEMPLATE_ERROR\",\n {\n type: params.type,\n locale: params.locale\n }\n );\n }\n\n return plugins.pop() as T;\n};\n"]}
|
package/operators.d.ts
CHANGED
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
import { ElasticsearchQueryBuilderOperatorBetweenPlugin } from "./plugins/operator
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { ElasticsearchQueryBuilderOperatorNotContainsPlugin } from "./plugins/operator/notContains";
|
|
5
|
-
import { ElasticsearchQueryBuilderOperatorEqualPlugin } from "./plugins/operator/equal";
|
|
6
|
-
import { ElasticsearchQueryBuilderOperatorNotPlugin } from "./plugins/operator/not";
|
|
7
|
-
import { ElasticsearchQueryBuilderOperatorGreaterThanPlugin } from "./plugins/operator/gt";
|
|
8
|
-
import { ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin } from "./plugins/operator/gte";
|
|
9
|
-
import { ElasticsearchQueryBuilderOperatorLesserThanPlugin } from "./plugins/operator/lt";
|
|
10
|
-
import { ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin } from "./plugins/operator/lte";
|
|
11
|
-
import { ElasticsearchQueryBuilderOperatorInPlugin } from "./plugins/operator/in";
|
|
12
|
-
import { ElasticsearchQueryBuilderOperatorAndInPlugin } from "./plugins/operator/andIn";
|
|
13
|
-
import { ElasticsearchQueryBuilderOperatorNotInPlugin } from "./plugins/operator/notIn";
|
|
1
|
+
import { ElasticsearchQueryBuilderOperatorBetweenPlugin, ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin, ElasticsearchQueryBuilderOperatorAndInPlugin, ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin, ElasticsearchQueryBuilderOperatorGreaterThanPlugin, ElasticsearchQueryBuilderOperatorContainsPlugin, ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin, ElasticsearchQueryBuilderOperatorInPlugin, ElasticsearchQueryBuilderOperatorLesserThanPlugin, ElasticsearchQueryBuilderOperatorNotBetweenPlugin, ElasticsearchQueryBuilderOperatorNotContainsPlugin, ElasticsearchQueryBuilderOperatorNotPlugin, ElasticsearchQueryBuilderOperatorNotInPlugin, ElasticsearchQueryBuilderOperatorEqualPlugin, ElasticsearchQueryBuilderOperatorStartsWithPlugin, ElasticsearchQueryBuilderOperatorNotStartsWithPlugin } from "./plugins/operator";
|
|
2
|
+
import { PluginsContainer } from "@webiny/plugins";
|
|
3
|
+
import { ElasticsearchQueryBuilderOperatorPlugin } from "./plugins/definition/ElasticsearchQueryBuilderOperatorPlugin";
|
|
14
4
|
/**
|
|
15
5
|
* We export as a function because there might be something to be sent to the operators at some point.
|
|
16
6
|
* This way, we make it easier to upgrade.
|
|
17
7
|
*/
|
|
18
|
-
export declare const getElasticsearchOperators: () => (ElasticsearchQueryBuilderOperatorBetweenPlugin |
|
|
8
|
+
export declare const getElasticsearchOperators: () => (ElasticsearchQueryBuilderOperatorBetweenPlugin | ElasticsearchQueryBuilderOperatorContainsPlugin | ElasticsearchQueryBuilderOperatorEqualPlugin | ElasticsearchQueryBuilderOperatorGreaterThanPlugin | ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin | ElasticsearchQueryBuilderOperatorAndInPlugin | ElasticsearchQueryBuilderOperatorInPlugin | ElasticsearchQueryBuilderOperatorLesserThanPlugin | ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin | ElasticsearchQueryBuilderOperatorNotPlugin | ElasticsearchQueryBuilderOperatorNotBetweenPlugin | ElasticsearchQueryBuilderOperatorNotContainsPlugin | ElasticsearchQueryBuilderOperatorNotInPlugin | ElasticsearchQueryBuilderOperatorStartsWithPlugin | ElasticsearchQueryBuilderOperatorNotStartsWithPlugin | ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin)[];
|
|
9
|
+
export declare const getElasticsearchOperatorPluginsByLocale: (plugins: PluginsContainer, locale: string) => Record<string, ElasticsearchQueryBuilderOperatorPlugin>;
|
package/operators.js
CHANGED
|
@@ -3,35 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getElasticsearchOperators = void 0;
|
|
6
|
+
exports.getElasticsearchOperators = exports.getElasticsearchOperatorPluginsByLocale = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _operator = require("./plugins/operator");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _ElasticsearchQueryBuilderOperatorPlugin = require("./plugins/definition/ElasticsearchQueryBuilderOperatorPlugin");
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var _not = require("./plugins/operator/not");
|
|
19
|
-
|
|
20
|
-
var _gt = require("./plugins/operator/gt");
|
|
21
|
-
|
|
22
|
-
var _gte = require("./plugins/operator/gte");
|
|
23
|
-
|
|
24
|
-
var _lt = require("./plugins/operator/lt");
|
|
25
|
-
|
|
26
|
-
var _lte = require("./plugins/operator/lte");
|
|
27
|
-
|
|
28
|
-
var _in = require("./plugins/operator/in");
|
|
29
|
-
|
|
30
|
-
var _andIn = require("./plugins/operator/andIn");
|
|
31
|
-
|
|
32
|
-
var _notIn = require("./plugins/operator/notIn");
|
|
33
|
-
|
|
34
|
-
const operators = [new _between.ElasticsearchQueryBuilderOperatorBetweenPlugin(), new _notBetween.ElasticsearchQueryBuilderOperatorNotBetweenPlugin(), new _contains.ElasticsearchQueryBuilderOperatorContainsPlugin(), new _notContains.ElasticsearchQueryBuilderOperatorNotContainsPlugin(), new _equal.ElasticsearchQueryBuilderOperatorEqualPlugin(), new _not.ElasticsearchQueryBuilderOperatorNotPlugin(), new _gt.ElasticsearchQueryBuilderOperatorGreaterThanPlugin(), new _gte.ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin(), new _lt.ElasticsearchQueryBuilderOperatorLesserThanPlugin(), new _lte.ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin(), new _in.ElasticsearchQueryBuilderOperatorInPlugin(), new _andIn.ElasticsearchQueryBuilderOperatorAndInPlugin(), new _notIn.ElasticsearchQueryBuilderOperatorNotInPlugin()];
|
|
12
|
+
const operators = [new _operator.ElasticsearchQueryBuilderOperatorBetweenPlugin(), new _operator.ElasticsearchQueryBuilderOperatorNotBetweenPlugin(), new _operator.ElasticsearchQueryBuilderOperatorContainsPlugin(), new _operator.ElasticsearchQueryBuilderOperatorNotContainsPlugin(), new _operator.ElasticsearchQueryBuilderOperatorEqualPlugin(), new _operator.ElasticsearchQueryBuilderOperatorNotPlugin(), new _operator.ElasticsearchQueryBuilderOperatorGreaterThanPlugin(), new _operator.ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin(), new _operator.ElasticsearchQueryBuilderOperatorLesserThanPlugin(), new _operator.ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin(), new _operator.ElasticsearchQueryBuilderOperatorInPlugin(), new _operator.ElasticsearchQueryBuilderOperatorAndInPlugin(), new _operator.ElasticsearchQueryBuilderOperatorNotInPlugin(), new _operator.ElasticsearchQueryBuilderOperatorStartsWithPlugin(), new _operator.ElasticsearchQueryBuilderOperatorNotStartsWithPlugin(),
|
|
13
|
+
/**
|
|
14
|
+
* Japanese
|
|
15
|
+
*/
|
|
16
|
+
new _operator.ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin()];
|
|
35
17
|
/**
|
|
36
18
|
* We export as a function because there might be something to be sent to the operators at some point.
|
|
37
19
|
* This way, we make it easier to upgrade.
|
|
@@ -39,4 +21,36 @@ const operators = [new _between.ElasticsearchQueryBuilderOperatorBetweenPlugin()
|
|
|
39
21
|
|
|
40
22
|
const getElasticsearchOperators = () => operators;
|
|
41
23
|
|
|
42
|
-
exports.getElasticsearchOperators = getElasticsearchOperators;
|
|
24
|
+
exports.getElasticsearchOperators = getElasticsearchOperators;
|
|
25
|
+
|
|
26
|
+
const getElasticsearchOperatorPluginsByLocale = (plugins, locale) => {
|
|
27
|
+
/**
|
|
28
|
+
* We always set the last one operator plugin added.
|
|
29
|
+
* This way user can override the plugins.
|
|
30
|
+
*/
|
|
31
|
+
return plugins.byType(_ElasticsearchQueryBuilderOperatorPlugin.ElasticsearchQueryBuilderOperatorPlugin.type).reduce((acc, plugin) => {
|
|
32
|
+
const op = plugin.getOperator();
|
|
33
|
+
/**
|
|
34
|
+
* We only allow the plugins which can pass the locale test.
|
|
35
|
+
* The default plugins always return true.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
if (plugin.isLocaleSupported(locale) === false) {
|
|
39
|
+
return acc;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* We also only allow the override of the plugins if the new plugin is NOT a default one.
|
|
43
|
+
* If a user names the plugin with .default, we cannot do anything about it.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if (!!acc[op] && (plugin.name || "").match(/\.default$/)) {
|
|
48
|
+
return acc;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
acc[op] = plugin;
|
|
52
|
+
return acc;
|
|
53
|
+
}, {});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.getElasticsearchOperatorPluginsByLocale = getElasticsearchOperatorPluginsByLocale;
|
package/operators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["operators.ts"],"names":["operators","ElasticsearchQueryBuilderOperatorBetweenPlugin","ElasticsearchQueryBuilderOperatorNotBetweenPlugin","ElasticsearchQueryBuilderOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorNotContainsPlugin","ElasticsearchQueryBuilderOperatorEqualPlugin","ElasticsearchQueryBuilderOperatorNotPlugin","ElasticsearchQueryBuilderOperatorGreaterThanPlugin","ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorLesserThanPlugin","ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorInPlugin","ElasticsearchQueryBuilderOperatorAndInPlugin","ElasticsearchQueryBuilderOperatorNotInPlugin","getElasticsearchOperators"],"mappings":";;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["operators.ts"],"names":["operators","ElasticsearchQueryBuilderOperatorBetweenPlugin","ElasticsearchQueryBuilderOperatorNotBetweenPlugin","ElasticsearchQueryBuilderOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorNotContainsPlugin","ElasticsearchQueryBuilderOperatorEqualPlugin","ElasticsearchQueryBuilderOperatorNotPlugin","ElasticsearchQueryBuilderOperatorGreaterThanPlugin","ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorLesserThanPlugin","ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorInPlugin","ElasticsearchQueryBuilderOperatorAndInPlugin","ElasticsearchQueryBuilderOperatorNotInPlugin","ElasticsearchQueryBuilderOperatorStartsWithPlugin","ElasticsearchQueryBuilderOperatorNotStartsWithPlugin","ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin","getElasticsearchOperators","getElasticsearchOperatorPluginsByLocale","plugins","locale","byType","ElasticsearchQueryBuilderOperatorPlugin","type","reduce","acc","plugin","op","getOperator","isLocaleSupported","name","match"],"mappings":";;;;;;;AAAA;;AA+BA;;AAEA,MAAMA,SAAS,GAAG,CACd,IAAIC,wDAAJ,EADc,EAEd,IAAIC,2DAAJ,EAFc,EAGd,IAAIC,yDAAJ,EAHc,EAId,IAAIC,4DAAJ,EAJc,EAKd,IAAIC,sDAAJ,EALc,EAMd,IAAIC,oDAAJ,EANc,EAOd,IAAIC,4DAAJ,EAPc,EAQd,IAAIC,qEAAJ,EARc,EASd,IAAIC,2DAAJ,EATc,EAUd,IAAIC,oEAAJ,EAVc,EAWd,IAAIC,mDAAJ,EAXc,EAYd,IAAIC,sDAAJ,EAZc,EAad,IAAIC,sDAAJ,EAbc,EAcd,IAAIC,2DAAJ,EAdc,EAed,IAAIC,8DAAJ,EAfc;AAgBd;AACJ;AACA;AACI,IAAIC,iEAAJ,EAnBc,CAAlB;AAqBA;AACA;AACA;AACA;;AACO,MAAMC,yBAAyB,GAAG,MAAMjB,SAAxC;;;;AAEA,MAAMkB,uCAAuC,GAAG,CACnDC,OADmD,EAEnDC,MAFmD,KAGO;AAC1D;AACJ;AACA;AACA;AACI,SAAOD,OAAO,CACTE,MADE,CAECC,iFAAwCC,IAFzC,EAIFC,MAJE,CAIK,CAACC,GAAD,EAAMC,MAAN,KAAiB;AACrB,UAAMC,EAAE,GAAGD,MAAM,CAACE,WAAP,EAAX;AACA;AACZ;AACA;AACA;;AACY,QAAIF,MAAM,CAACG,iBAAP,CAAyBT,MAAzB,MAAqC,KAAzC,EAAgD;AAC5C,aAAOK,GAAP;AACH;AACD;AACZ;AACA;AACA;;;AACY,QAAI,CAAC,CAACA,GAAG,CAACE,EAAD,CAAL,IAAa,CAACD,MAAM,CAACI,IAAP,IAAe,EAAhB,EAAoBC,KAApB,CAA0B,YAA1B,CAAjB,EAA0D;AACtD,aAAON,GAAP;AACH;;AACDA,IAAAA,GAAG,CAACE,EAAD,CAAH,GAAUD,MAAV;AACA,WAAOD,GAAP;AACH,GAtBE,EAsBA,EAtBA,CAAP;AAuBH,CA/BM","sourcesContent":["import {\n ElasticsearchQueryBuilderOperatorBetweenPlugin,\n ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin,\n ElasticsearchQueryBuilderOperatorAndInPlugin,\n ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin,\n ElasticsearchQueryBuilderOperatorGreaterThanPlugin,\n ElasticsearchQueryBuilderOperatorContainsPlugin,\n ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin,\n ElasticsearchQueryBuilderOperatorInPlugin,\n ElasticsearchQueryBuilderOperatorLesserThanPlugin,\n ElasticsearchQueryBuilderOperatorNotBetweenPlugin,\n ElasticsearchQueryBuilderOperatorNotContainsPlugin,\n ElasticsearchQueryBuilderOperatorNotPlugin,\n ElasticsearchQueryBuilderOperatorNotInPlugin,\n ElasticsearchQueryBuilderOperatorEqualPlugin,\n ElasticsearchQueryBuilderOperatorStartsWithPlugin,\n ElasticsearchQueryBuilderOperatorNotStartsWithPlugin\n} from \"~/plugins/operator\";\n// import { ElasticsearchQueryBuilderOperatorNotBetweenPlugin } from \"~/plugins/operator/notBetween\";\n// import { ElasticsearchQueryBuilderOperatorContainsPlugin } from \"~/plugins/operator/contains\";\n// import { ElasticsearchQueryBuilderOperatorNotContainsPlugin } from \"~/plugins/operator/notContains\";\n// import { ElasticsearchQueryBuilderOperatorEqualPlugin } from \"~/plugins/operator/equal\";\n// import { ElasticsearchQueryBuilderOperatorNotPlugin } from \"~/plugins/operator/not\";\n// import { ElasticsearchQueryBuilderOperatorGreaterThanPlugin } from \"~/plugins/operator/gt\";\n// import { ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin } from \"~/plugins/operator/gte\";\n// import { ElasticsearchQueryBuilderOperatorLesserThanPlugin } from \"~/plugins/operator/lt\";\n// import { ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin } from \"~/plugins/operator/lte\";\n// import { ElasticsearchQueryBuilderOperatorInPlugin } from \"~/plugins/operator/in\";\n// import { ElasticsearchQueryBuilderOperatorAndInPlugin } from \"~/plugins/operator/andIn\";\n// import { ElasticsearchQueryBuilderOperatorNotInPlugin } from \"~/plugins/operator/notIn\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\n\nconst operators = [\n new ElasticsearchQueryBuilderOperatorBetweenPlugin(),\n new ElasticsearchQueryBuilderOperatorNotBetweenPlugin(),\n new ElasticsearchQueryBuilderOperatorContainsPlugin(),\n new ElasticsearchQueryBuilderOperatorNotContainsPlugin(),\n new ElasticsearchQueryBuilderOperatorEqualPlugin(),\n new ElasticsearchQueryBuilderOperatorNotPlugin(),\n new ElasticsearchQueryBuilderOperatorGreaterThanPlugin(),\n new ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin(),\n new ElasticsearchQueryBuilderOperatorLesserThanPlugin(),\n new ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin(),\n new ElasticsearchQueryBuilderOperatorInPlugin(),\n new ElasticsearchQueryBuilderOperatorAndInPlugin(),\n new ElasticsearchQueryBuilderOperatorNotInPlugin(),\n new ElasticsearchQueryBuilderOperatorStartsWithPlugin(),\n new ElasticsearchQueryBuilderOperatorNotStartsWithPlugin(),\n /**\n * Japanese\n */\n new ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin()\n];\n/**\n * We export as a function because there might be something to be sent to the operators at some point.\n * This way, we make it easier to upgrade.\n */\nexport const getElasticsearchOperators = () => operators;\n\nexport const getElasticsearchOperatorPluginsByLocale = (\n plugins: PluginsContainer,\n locale: string\n): Record<string, ElasticsearchQueryBuilderOperatorPlugin> => {\n /**\n * We always set the last one operator plugin added.\n * This way user can override the plugins.\n */\n return plugins\n .byType<ElasticsearchQueryBuilderOperatorPlugin>(\n ElasticsearchQueryBuilderOperatorPlugin.type\n )\n .reduce((acc, plugin) => {\n const op = plugin.getOperator();\n /**\n * We only allow the plugins which can pass the locale test.\n * The default plugins always return true.\n */\n if (plugin.isLocaleSupported(locale) === false) {\n return acc;\n }\n /**\n * We also only allow the override of the plugins if the new plugin is NOT a default one.\n * If a user names the plugin with .default, we cannot do anything about it.\n */\n if (!!acc[op] && (plugin.name || \"\").match(/\\.default$/)) {\n return acc;\n }\n acc[op] = plugin;\n return acc;\n }, {} as Record<string, ElasticsearchQueryBuilderOperatorPlugin>);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-elasticsearch",
|
|
3
|
-
"version": "5.25.
|
|
3
|
+
"version": "5.25.1-beta.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/webiny/webiny-js.git",
|
|
@@ -13,19 +13,19 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@elastic/elasticsearch": "7.12.0",
|
|
16
|
-
"@webiny/error": "5.25.
|
|
17
|
-
"@webiny/handler": "5.25.
|
|
18
|
-
"@webiny/plugins": "5.25.
|
|
19
|
-
"@webiny/utils": "5.25.
|
|
16
|
+
"@webiny/error": "5.25.1-beta.0",
|
|
17
|
+
"@webiny/handler": "5.25.1-beta.0",
|
|
18
|
+
"@webiny/plugins": "5.25.1-beta.0",
|
|
19
|
+
"@webiny/utils": "5.25.1-beta.0",
|
|
20
20
|
"aws-elasticsearch-connector": "9.0.3",
|
|
21
|
-
"aws-sdk": "2.
|
|
21
|
+
"aws-sdk": "2.1066.0",
|
|
22
22
|
"elastic-ts": "0.7.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@babel/cli": "^7.16.0",
|
|
26
26
|
"@babel/core": "^7.16.0",
|
|
27
|
-
"@webiny/cli": "^5.25.
|
|
28
|
-
"@webiny/project-utils": "^5.25.
|
|
27
|
+
"@webiny/cli": "^5.25.1-beta.0",
|
|
28
|
+
"@webiny/project-utils": "^5.25.1-beta.0",
|
|
29
29
|
"rimraf": "^3.0.2",
|
|
30
30
|
"ttypescript": "^1.5.12",
|
|
31
31
|
"typescript": "4.5.5"
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
]
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "887c9678ec12921eb00edb033e9f2c1a13e35fa5"
|
|
49
49
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import { ElasticsearchIndexRequestBody } from "../../types";
|
|
3
|
+
export interface ElasticsearchIndexPluginParams {
|
|
4
|
+
/**
|
|
5
|
+
* For which locales are we applying this plugin.
|
|
6
|
+
* Options:
|
|
7
|
+
* - locale codes to target specific locale
|
|
8
|
+
* - null for all
|
|
9
|
+
*/
|
|
10
|
+
locales?: string[];
|
|
11
|
+
body: ElasticsearchIndexRequestBody;
|
|
12
|
+
}
|
|
13
|
+
export declare abstract class ElasticsearchIndexPlugin extends Plugin {
|
|
14
|
+
readonly body: ElasticsearchIndexRequestBody;
|
|
15
|
+
private readonly locales;
|
|
16
|
+
constructor(params: ElasticsearchIndexPluginParams);
|
|
17
|
+
canUse(locale: string): boolean;
|
|
18
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ElasticsearchIndexPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
+
|
|
14
|
+
var _plugins = require("@webiny/plugins");
|
|
15
|
+
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
+
|
|
20
|
+
class ElasticsearchIndexPlugin extends _plugins.Plugin {
|
|
21
|
+
constructor(params) {
|
|
22
|
+
super();
|
|
23
|
+
(0, _defineProperty2.default)(this, "body", void 0);
|
|
24
|
+
(0, _defineProperty2.default)(this, "locales", void 0);
|
|
25
|
+
const {
|
|
26
|
+
locales,
|
|
27
|
+
body
|
|
28
|
+
} = params;
|
|
29
|
+
this.body = _objectSpread({}, body);
|
|
30
|
+
this.locales = locales ? locales.map(locale => locale.toLowerCase()) : undefined;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
canUse(locale) {
|
|
34
|
+
if (!this.locales) {
|
|
35
|
+
return true;
|
|
36
|
+
} else if (this.locales.length === 0) {
|
|
37
|
+
throw new _error.default("Cannot have Elasticsearch Index Template plugin with no locales defined.", "LOCALES_ERROR", {
|
|
38
|
+
body: this.body,
|
|
39
|
+
locales: this.locales
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return this.locales.includes(locale.toLowerCase());
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
exports.ElasticsearchIndexPlugin = ElasticsearchIndexPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["ElasticsearchIndexPlugin.ts"],"names":["ElasticsearchIndexPlugin","Plugin","constructor","params","locales","body","map","locale","toLowerCase","undefined","canUse","length","WebinyError","includes"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;AAcO,MAAeA,wBAAf,SAAgDC,eAAhD,CAAuD;AAInDC,EAAAA,WAAW,CAACC,MAAD,EAAyC;AACvD;AADuD;AAAA;AAEvD,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAoBF,MAA1B;AACA,SAAKE,IAAL,qBACOA,IADP;AAGA,SAAKD,OAAL,GAAeA,OAAO,GAAGA,OAAO,CAACE,GAAR,CAAYC,MAAM,IAAIA,MAAM,CAACC,WAAP,EAAtB,CAAH,GAAiDC,SAAvE;AACH;;AAEMC,EAAAA,MAAM,CAACH,MAAD,EAA0B;AACnC,QAAI,CAAC,KAAKH,OAAV,EAAmB;AACf,aAAO,IAAP;AACH,KAFD,MAEO,IAAI,KAAKA,OAAL,CAAaO,MAAb,KAAwB,CAA5B,EAA+B;AAClC,YAAM,IAAIC,cAAJ,CACF,0EADE,EAEF,eAFE,EAGF;AACIP,QAAAA,IAAI,EAAE,KAAKA,IADf;AAEID,QAAAA,OAAO,EAAE,KAAKA;AAFlB,OAHE,CAAN;AAQH;;AACD,WAAO,KAAKA,OAAL,CAAaS,QAAb,CAAsBN,MAAM,CAACC,WAAP,EAAtB,CAAP;AACH;;AA3ByD","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Plugin } from \"@webiny/plugins\";\nimport { ElasticsearchIndexRequestBody } from \"~/types\";\n\nexport interface ElasticsearchIndexPluginParams {\n /**\n * For which locales are we applying this plugin.\n * Options:\n * - locale codes to target specific locale\n * - null for all\n */\n locales?: string[];\n body: ElasticsearchIndexRequestBody;\n}\n\nexport abstract class ElasticsearchIndexPlugin extends Plugin {\n public readonly body: ElasticsearchIndexRequestBody;\n private readonly locales: string[] | undefined;\n\n public constructor(params: ElasticsearchIndexPluginParams) {\n super();\n const { locales, body } = params;\n this.body = {\n ...body\n };\n this.locales = locales ? locales.map(locale => locale.toLowerCase()) : undefined;\n }\n\n public canUse(locale: string): boolean {\n if (!this.locales) {\n return true;\n } else if (this.locales.length === 0) {\n throw new WebinyError(\n \"Cannot have Elasticsearch Index Template plugin with no locales defined.\",\n \"LOCALES_ERROR\",\n {\n body: this.body,\n locales: this.locales\n }\n );\n }\n return this.locales.includes(locale.toLowerCase());\n }\n}\n"]}
|
|
@@ -5,6 +5,10 @@ import { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } fro
|
|
|
5
5
|
*/
|
|
6
6
|
export declare abstract class ElasticsearchQueryBuilderOperatorPlugin extends Plugin {
|
|
7
7
|
static readonly type: string;
|
|
8
|
+
/**
|
|
9
|
+
* Check if current locale is supported by this plugin.
|
|
10
|
+
*/
|
|
11
|
+
isLocaleSupported(_: string): boolean;
|
|
8
12
|
abstract getOperator(): string;
|
|
9
13
|
abstract apply(query: ElasticsearchBoolQueryConfig, params: ElasticsearchQueryBuilderArgsPlugin): void;
|
|
10
14
|
}
|
|
@@ -14,7 +14,16 @@ var _plugins = require("@webiny/plugins");
|
|
|
14
14
|
/**
|
|
15
15
|
* Built-in operators name ends with .default because user can override the operator, just write a name without the .default keyword.
|
|
16
16
|
*/
|
|
17
|
-
class ElasticsearchQueryBuilderOperatorPlugin extends _plugins.Plugin {
|
|
17
|
+
class ElasticsearchQueryBuilderOperatorPlugin extends _plugins.Plugin {
|
|
18
|
+
/**
|
|
19
|
+
* Check if current locale is supported by this plugin.
|
|
20
|
+
*/
|
|
21
|
+
// eslint-disable-next-line
|
|
22
|
+
isLocaleSupported(_) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
}
|
|
18
27
|
|
|
19
28
|
exports.ElasticsearchQueryBuilderOperatorPlugin = ElasticsearchQueryBuilderOperatorPlugin;
|
|
20
29
|
(0, _defineProperty2.default)(ElasticsearchQueryBuilderOperatorPlugin, "type", "elasticsearch.queryBuilder.operator");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ElasticsearchQueryBuilderOperatorPlugin.ts"],"names":["ElasticsearchQueryBuilderOperatorPlugin","Plugin"],"mappings":";;;;;;;;;;;AAAA;;AAGA;AACA;AACA;AACO,MAAeA,uCAAf,SAA+DC,eAA/D,CAAsE;;;
|
|
1
|
+
{"version":3,"sources":["ElasticsearchQueryBuilderOperatorPlugin.ts"],"names":["ElasticsearchQueryBuilderOperatorPlugin","Plugin","isLocaleSupported","_"],"mappings":";;;;;;;;;;;AAAA;;AAGA;AACA;AACA;AACO,MAAeA,uCAAf,SAA+DC,eAA/D,CAAsE;AAGzE;AACJ;AACA;AACI;AACOC,EAAAA,iBAAiB,CAACC,CAAD,EAAqB;AACzC,WAAO,IAAP;AACH;;AATwE;;;8BAAvDH,uC,UAC6B,qC","sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\n/**\n * Built-in operators name ends with .default because user can override the operator, just write a name without the .default keyword.\n */\nexport abstract class ElasticsearchQueryBuilderOperatorPlugin extends Plugin {\n public static override readonly type: string = \"elasticsearch.queryBuilder.operator\";\n\n /**\n * Check if current locale is supported by this plugin.\n */\n // eslint-disable-next-line\n public isLocaleSupported(_: string): boolean {\n return true;\n }\n\n public abstract getOperator(): string;\n\n public abstract apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void;\n}\n"]}
|
|
@@ -171,4 +171,43 @@ Object.keys(_notIn).forEach(function (key) {
|
|
|
171
171
|
return _notIn[key];
|
|
172
172
|
}
|
|
173
173
|
});
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
var _startsWith = require("./startsWith");
|
|
177
|
+
|
|
178
|
+
Object.keys(_startsWith).forEach(function (key) {
|
|
179
|
+
if (key === "default" || key === "__esModule") return;
|
|
180
|
+
if (key in exports && exports[key] === _startsWith[key]) return;
|
|
181
|
+
Object.defineProperty(exports, key, {
|
|
182
|
+
enumerable: true,
|
|
183
|
+
get: function () {
|
|
184
|
+
return _startsWith[key];
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
var _notStartsWith = require("./notStartsWith");
|
|
190
|
+
|
|
191
|
+
Object.keys(_notStartsWith).forEach(function (key) {
|
|
192
|
+
if (key === "default" || key === "__esModule") return;
|
|
193
|
+
if (key in exports && exports[key] === _notStartsWith[key]) return;
|
|
194
|
+
Object.defineProperty(exports, key, {
|
|
195
|
+
enumerable: true,
|
|
196
|
+
get: function () {
|
|
197
|
+
return _notStartsWith[key];
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
var _contains2 = require("./japanese/contains");
|
|
203
|
+
|
|
204
|
+
Object.keys(_contains2).forEach(function (key) {
|
|
205
|
+
if (key === "default" || key === "__esModule") return;
|
|
206
|
+
if (key in exports && exports[key] === _contains2[key]) return;
|
|
207
|
+
Object.defineProperty(exports, key, {
|
|
208
|
+
enumerable: true,
|
|
209
|
+
get: function () {
|
|
210
|
+
return _contains2[key];
|
|
211
|
+
}
|
|
212
|
+
});
|
|
174
213
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from \"./between\";\nexport * from \"./contains\";\nexport * from \"./equal\";\nexport * from \"./gt\";\nexport * from \"./gte\";\nexport * from \"./andIn\";\nexport * from \"./in\";\nexport * from \"./lt\";\nexport * from \"./lte\";\nexport * from \"./not\";\nexport * from \"./notBetween\";\nexport * from \"./notContains\";\nexport * from \"./notIn\";\n"]}
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from \"./between\";\nexport * from \"./contains\";\nexport * from \"./equal\";\nexport * from \"./gt\";\nexport * from \"./gte\";\nexport * from \"./andIn\";\nexport * from \"./in\";\nexport * from \"./lt\";\nexport * from \"./lte\";\nexport * from \"./not\";\nexport * from \"./notBetween\";\nexport * from \"./notContains\";\nexport * from \"./notIn\";\nexport * from \"./startsWith\";\nexport * from \"./notStartsWith\";\nexport * from \"./japanese/contains\";\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ElasticsearchQueryBuilderOperatorPlugin } from "../../definition/ElasticsearchQueryBuilderOperatorPlugin";
|
|
2
|
+
import { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from "../../../types";
|
|
3
|
+
export declare class ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
isLocaleSupported(code: string): boolean;
|
|
6
|
+
getOperator(): string;
|
|
7
|
+
apply(query: ElasticsearchBoolQueryConfig, params: ElasticsearchQueryBuilderArgsPlugin): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _ElasticsearchQueryBuilderOperatorPlugin = require("../../definition/ElasticsearchQueryBuilderOperatorPlugin");
|
|
13
|
+
|
|
14
|
+
var _normalize = require("../../../normalize");
|
|
15
|
+
|
|
16
|
+
class ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin extends _ElasticsearchQueryBuilderOperatorPlugin.ElasticsearchQueryBuilderOperatorPlugin {
|
|
17
|
+
constructor(...args) {
|
|
18
|
+
super(...args);
|
|
19
|
+
(0, _defineProperty2.default)(this, "name", "elasticsearch.queryBuilder.operator.contains.japanese");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
isLocaleSupported(code) {
|
|
23
|
+
if (!code) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return ["ja", "ja-jp"].includes(code.toLowerCase());
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getOperator() {
|
|
31
|
+
return "contains";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
apply(query, params) {
|
|
35
|
+
const {
|
|
36
|
+
value: initialValue,
|
|
37
|
+
basePath
|
|
38
|
+
} = params;
|
|
39
|
+
const value = (0, _normalize.normalizeValue)(initialValue);
|
|
40
|
+
query.must.push({
|
|
41
|
+
multi_match: {
|
|
42
|
+
query: value,
|
|
43
|
+
type: "phrase",
|
|
44
|
+
fields: [`${basePath}.ngram`]
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
query.should.push({
|
|
48
|
+
multi_match: {
|
|
49
|
+
query: value,
|
|
50
|
+
type: "phrase",
|
|
51
|
+
fields: [`${basePath}`]
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin = ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["contains.ts"],"names":["ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","isLocaleSupported","code","includes","toLowerCase","getOperator","apply","query","params","value","initialValue","basePath","must","push","multi_match","type","fields","should"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAGO,MAAMA,uDAAN,SAAsEC,gFAAtE,CAA8G;AAAA;AAAA;AAAA,gDAC1F,uDAD0F;AAAA;;AAGjGC,EAAAA,iBAAiB,CAACC,IAAD,EAAwB;AACrD,QAAI,CAACA,IAAL,EAAW;AACP,aAAO,KAAP;AACH;;AACD,WAAO,CAAC,IAAD,EAAO,OAAP,EAAgBC,QAAhB,CAAyBD,IAAI,CAACE,WAAL,EAAzB,CAAP;AACH;;AAEMC,EAAAA,WAAW,GAAW;AACzB,WAAO,UAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAK,EAAEC,YAAT;AAAuBC,MAAAA;AAAvB,QAAoCH,MAA1C;AAEA,UAAMC,KAAK,GAAG,+BAAeC,YAAf,CAAd;AACAH,IAAAA,KAAK,CAACK,IAAN,CAAWC,IAAX,CAAgB;AACZC,MAAAA,WAAW,EAAE;AACTP,QAAAA,KAAK,EAAEE,KADE;AAETM,QAAAA,IAAI,EAAE,QAFG;AAGTC,QAAAA,MAAM,EAAE,CAAE,GAAEL,QAAS,QAAb;AAHC;AADD,KAAhB;AAOAJ,IAAAA,KAAK,CAACU,MAAN,CAAaJ,IAAb,CAAkB;AACdC,MAAAA,WAAW,EAAE;AACTP,QAAAA,KAAK,EAAEE,KADE;AAETM,QAAAA,IAAI,EAAE,QAFG;AAGTC,QAAAA,MAAM,EAAE,CAAE,GAAEL,QAAS,EAAb;AAHC;AADC,KAAlB;AAOH;;AAnCgH","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.contains.japanese\";\n\n public override isLocaleSupported(code: string): boolean {\n if (!code) {\n return false;\n }\n return [\"ja\", \"ja-jp\"].includes(code.toLowerCase());\n }\n\n public getOperator(): string {\n return \"contains\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value: initialValue, basePath } = params;\n\n const value = normalizeValue(initialValue);\n query.must.push({\n multi_match: {\n query: value,\n type: \"phrase\",\n fields: [`${basePath}.ngram`]\n }\n });\n query.should.push({\n multi_match: {\n query: value,\n type: \"phrase\",\n fields: [`${basePath}`]\n }\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ElasticsearchQueryBuilderOperatorPlugin } from "../definition/ElasticsearchQueryBuilderOperatorPlugin";
|
|
2
|
+
import { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from "../../types";
|
|
3
|
+
export declare class ElasticsearchQueryBuilderOperatorNotStartsWithPlugin extends ElasticsearchQueryBuilderOperatorPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
getOperator(): string;
|
|
6
|
+
apply(query: ElasticsearchBoolQueryConfig, params: ElasticsearchQueryBuilderArgsPlugin): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ElasticsearchQueryBuilderOperatorNotStartsWithPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _ElasticsearchQueryBuilderOperatorPlugin = require("../definition/ElasticsearchQueryBuilderOperatorPlugin");
|
|
13
|
+
|
|
14
|
+
class ElasticsearchQueryBuilderOperatorNotStartsWithPlugin extends _ElasticsearchQueryBuilderOperatorPlugin.ElasticsearchQueryBuilderOperatorPlugin {
|
|
15
|
+
constructor(...args) {
|
|
16
|
+
super(...args);
|
|
17
|
+
(0, _defineProperty2.default)(this, "name", "elasticsearch.queryBuilder.operator.notStartsWith.default");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getOperator() {
|
|
21
|
+
return "not_startsWith";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
apply(query, params) {
|
|
25
|
+
const {
|
|
26
|
+
value,
|
|
27
|
+
basePath
|
|
28
|
+
} = params;
|
|
29
|
+
query.must_not.push({
|
|
30
|
+
match_phrase_prefix: {
|
|
31
|
+
[basePath]: value
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.ElasticsearchQueryBuilderOperatorNotStartsWithPlugin = ElasticsearchQueryBuilderOperatorNotStartsWithPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["notStartsWith.ts"],"names":["ElasticsearchQueryBuilderOperatorNotStartsWithPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must_not","push","match_phrase_prefix"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,oDAAN,SAAmEC,gFAAnE,CAA2G;AAAA;AAAA;AAAA,gDACvF,2DADuF;AAAA;;AAGvGC,EAAAA,WAAW,GAAW;AACzB,WAAO,gBAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAsBF,MAA5B;AACAD,IAAAA,KAAK,CAACI,QAAN,CAAeC,IAAf,CAAoB;AAChBC,MAAAA,mBAAmB,EAAE;AACjB,SAACH,QAAD,GAAYD;AADK;AADL,KAApB;AAKH;;AAjB6G","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotStartsWithPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.notStartsWith.default\";\n\n public getOperator(): string {\n return \"not_startsWith\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must_not.push({\n match_phrase_prefix: {\n [basePath]: value\n }\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ElasticsearchQueryBuilderOperatorPlugin } from "../definition/ElasticsearchQueryBuilderOperatorPlugin";
|
|
2
|
+
import { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from "../../types";
|
|
3
|
+
export declare class ElasticsearchQueryBuilderOperatorStartsWithPlugin extends ElasticsearchQueryBuilderOperatorPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
getOperator(): string;
|
|
6
|
+
apply(query: ElasticsearchBoolQueryConfig, params: ElasticsearchQueryBuilderArgsPlugin): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ElasticsearchQueryBuilderOperatorStartsWithPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _ElasticsearchQueryBuilderOperatorPlugin = require("../definition/ElasticsearchQueryBuilderOperatorPlugin");
|
|
13
|
+
|
|
14
|
+
class ElasticsearchQueryBuilderOperatorStartsWithPlugin extends _ElasticsearchQueryBuilderOperatorPlugin.ElasticsearchQueryBuilderOperatorPlugin {
|
|
15
|
+
constructor(...args) {
|
|
16
|
+
super(...args);
|
|
17
|
+
(0, _defineProperty2.default)(this, "name", "elasticsearch.queryBuilder.operator.startsWith.default");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getOperator() {
|
|
21
|
+
return "startsWith";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
apply(query, params) {
|
|
25
|
+
const {
|
|
26
|
+
value,
|
|
27
|
+
basePath
|
|
28
|
+
} = params;
|
|
29
|
+
query.must.push({
|
|
30
|
+
match_phrase_prefix: {
|
|
31
|
+
[basePath]: value
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.ElasticsearchQueryBuilderOperatorStartsWithPlugin = ElasticsearchQueryBuilderOperatorStartsWithPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["startsWith.ts"],"names":["ElasticsearchQueryBuilderOperatorStartsWithPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","match_phrase_prefix"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,iDAAN,SAAgEC,gFAAhE,CAAwG;AAAA;AAAA;AAAA,gDACpF,wDADoF;AAAA;;AAGpGC,EAAAA,WAAW,GAAW;AACzB,WAAO,YAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAsBF,MAA5B;AACAD,IAAAA,KAAK,CAACI,IAAN,CAAWC,IAAX,CAAgB;AACZC,MAAAA,mBAAmB,EAAE;AACjB,SAACH,QAAD,GAAYD;AADK;AADT,KAAhB;AAKH;;AAjB0G","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorStartsWithPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.startsWith.default\";\n\n public getOperator(): string {\n return \"startsWith\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n match_phrase_prefix: {\n [basePath]: value\n }\n });\n }\n}\n"]}
|
package/types.d.ts
CHANGED
|
@@ -77,3 +77,124 @@ export interface ElasticsearchSearchResponse<T = any> {
|
|
|
77
77
|
};
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
+
export interface ElasticsearchIndexRequestBodyMappingsDynamicTemplate {
|
|
81
|
+
[key: string]: {
|
|
82
|
+
match_mapping_type?: string;
|
|
83
|
+
match?: string;
|
|
84
|
+
unmatch?: string;
|
|
85
|
+
mapping?: {
|
|
86
|
+
type?: "text" | "date" | "binary" | "boolean" | "object" | "ip" | "geo" | string;
|
|
87
|
+
search_analyzer?: string;
|
|
88
|
+
analyzer?: string;
|
|
89
|
+
fields?: {
|
|
90
|
+
[key: string]: {
|
|
91
|
+
type: string;
|
|
92
|
+
search_analyzer?: string;
|
|
93
|
+
analyzer?: string;
|
|
94
|
+
ignore_above?: number;
|
|
95
|
+
[key: string]: any;
|
|
96
|
+
} | undefined;
|
|
97
|
+
};
|
|
98
|
+
[key: string]: any;
|
|
99
|
+
};
|
|
100
|
+
[key: string]: any;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
interface ElasticsearchIndexRequestBodySettings {
|
|
104
|
+
analysis?: {
|
|
105
|
+
[key: string]: any;
|
|
106
|
+
};
|
|
107
|
+
number_of_shards?: number;
|
|
108
|
+
number_of_routing_shards?: number;
|
|
109
|
+
codec?: string;
|
|
110
|
+
routing_partition_size?: number;
|
|
111
|
+
soft_deletes?: {
|
|
112
|
+
enabled?: boolean;
|
|
113
|
+
retention_lease?: {
|
|
114
|
+
period?: string;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
load_fixed_bitset_filters_eagerly?: boolean;
|
|
118
|
+
shard?: {
|
|
119
|
+
check_on_startup?: boolean | "checksum";
|
|
120
|
+
};
|
|
121
|
+
number_of_replicas?: number;
|
|
122
|
+
auto_expand_replicas?: string | "all" | false;
|
|
123
|
+
search?: {
|
|
124
|
+
idle?: {
|
|
125
|
+
after?: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
refresh_interval?: string;
|
|
129
|
+
max_result_window?: number;
|
|
130
|
+
max_inner_result_window?: number;
|
|
131
|
+
max_rescore_window?: number;
|
|
132
|
+
max_docvalue_fields_search?: number;
|
|
133
|
+
max_script_fields?: number;
|
|
134
|
+
max_ngram_diff?: number;
|
|
135
|
+
max_shingle_diff?: number;
|
|
136
|
+
max_refresh_listeners?: number;
|
|
137
|
+
analyze?: {
|
|
138
|
+
max_token_count?: number;
|
|
139
|
+
};
|
|
140
|
+
highlight?: {
|
|
141
|
+
max_analyzed_offset?: number;
|
|
142
|
+
};
|
|
143
|
+
max_terms_count?: number;
|
|
144
|
+
max_regex_length?: number;
|
|
145
|
+
query?: {
|
|
146
|
+
default_field?: string;
|
|
147
|
+
};
|
|
148
|
+
routing?: {
|
|
149
|
+
allocation?: {
|
|
150
|
+
enable?: "all" | "primaries" | "new_primaries" | "none";
|
|
151
|
+
};
|
|
152
|
+
rebalance?: {
|
|
153
|
+
enable?: "all" | "primaries" | "new_primaries" | "none";
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
gc_deletes?: string;
|
|
157
|
+
default_pipeline?: string;
|
|
158
|
+
final_pipeline?: string;
|
|
159
|
+
hidden?: boolean;
|
|
160
|
+
[key: string]: any;
|
|
161
|
+
}
|
|
162
|
+
export interface ElasticsearchIndexRequestBody {
|
|
163
|
+
settings?: {
|
|
164
|
+
index?: Partial<ElasticsearchIndexRequestBodySettings>;
|
|
165
|
+
};
|
|
166
|
+
mappings: {
|
|
167
|
+
dynamic_templates?: ElasticsearchIndexRequestBodyMappingsDynamicTemplate[];
|
|
168
|
+
properties?: {
|
|
169
|
+
[key: string]: {
|
|
170
|
+
analyzer?: string;
|
|
171
|
+
type?: string;
|
|
172
|
+
normalizer?: string;
|
|
173
|
+
index?: string;
|
|
174
|
+
fields?: {
|
|
175
|
+
[key: string]: {
|
|
176
|
+
type: string;
|
|
177
|
+
ignore_above?: number;
|
|
178
|
+
search_analyzer?: string;
|
|
179
|
+
analyzer?: string;
|
|
180
|
+
[key: string]: any;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
[key: string]: any;
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
[key: string]: any;
|
|
187
|
+
};
|
|
188
|
+
aliases?: {
|
|
189
|
+
[key: string]: {
|
|
190
|
+
filter?: {
|
|
191
|
+
[key: string]: any;
|
|
192
|
+
};
|
|
193
|
+
index_routing?: string;
|
|
194
|
+
is_hidden?: boolean;
|
|
195
|
+
is_write_index?: boolean;
|
|
196
|
+
routing?: string;
|
|
197
|
+
search_routing?: string;
|
|
198
|
+
};
|
|
199
|
+
};
|
|
200
|
+
}
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA;;AAMA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import { Client } from \"@elastic/elasticsearch\";\nimport { ApiResponse } from \"@elastic/elasticsearch/lib/Transport\";\nimport { BoolQueryConfig as esBoolQueryConfig, Query as esQuery } from \"elastic-ts\";\nimport { Context } from \"@webiny/handler/types\";\n/**\n * Re-export some dep lib types.\n */\nexport * from \"elastic-ts\";\nexport { ApiResponse };\n\nexport interface ElasticsearchContext extends Context {\n elasticsearch: Client;\n}\n\n/**\n * To simplify our plugins, we say that query contains arrays of objects, not single objects.\n * And that they all are defined as empty arrays at the start.\n */\nexport interface ElasticsearchBoolQueryConfig extends esBoolQueryConfig {\n must: esQuery[];\n filter: esQuery[];\n should: esQuery[];\n must_not: esQuery[];\n}\n\n/**\n * Definitions of possible Elasticsearch operators.\n *\n * @category Elasticsearch\n */\nexport type ElasticsearchQueryOperator =\n | \"eq\"\n | \"not\"\n | \"in\"\n | \"not_in\"\n | \"contains\"\n | \"not_contains\"\n | \"between\"\n | \"not_between\"\n | \"gt\"\n | \"gte\"\n | \"lt\"\n | \"lte\";\n\n/**\n * Definition for arguments of the ElasticsearchQueryBuilderOperatorPlugin.apply method.\n *\n * @see ElasticsearchQueryBuilderOperatorPlugin.apply\n *\n * @category Plugin\n * @category Elasticsearch\n */\nexport interface ElasticsearchQueryBuilderArgsPlugin {\n /**\n * A full path to the field. Including the \".keyword\" if it is added.\n */\n path: string;\n /**\n * A path to the field, plain.\n */\n basePath: string;\n /**\n * Value to apply.\n */\n value: any;\n /**\n * Is path containing the \".keyword\"\n */\n keyword: boolean;\n}\n\n/**\n * Elasticsearch responses.\n */\nexport interface ElasticsearchSearchResponseHit<T> {\n _source: T;\n sort: string;\n}\nexport interface ElasticsearchSearchResponseAggregationBucket<T> {\n key: T;\n}\nexport interface ElasticsearchSearchResponse<T = any> {\n body: {\n hits: {\n hits: ElasticsearchSearchResponseHit<T>[];\n total: {\n value: number;\n };\n };\n aggregations: {\n [key: string]: {\n buckets: ElasticsearchSearchResponseAggregationBucket<T>[];\n };\n };\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA;;AAMA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import { Client } from \"@elastic/elasticsearch\";\nimport { ApiResponse } from \"@elastic/elasticsearch/lib/Transport\";\nimport { BoolQueryConfig as esBoolQueryConfig, Query as esQuery } from \"elastic-ts\";\nimport { Context } from \"@webiny/handler/types\";\n/**\n * Re-export some dep lib types.\n */\nexport * from \"elastic-ts\";\nexport { ApiResponse };\n\nexport interface ElasticsearchContext extends Context {\n elasticsearch: Client;\n}\n\n/**\n * To simplify our plugins, we say that query contains arrays of objects, not single objects.\n * And that they all are defined as empty arrays at the start.\n */\nexport interface ElasticsearchBoolQueryConfig extends esBoolQueryConfig {\n must: esQuery[];\n filter: esQuery[];\n should: esQuery[];\n must_not: esQuery[];\n}\n\n/**\n * Definitions of possible Elasticsearch operators.\n *\n * @category Elasticsearch\n */\nexport type ElasticsearchQueryOperator =\n | \"eq\"\n | \"not\"\n | \"in\"\n | \"not_in\"\n | \"contains\"\n | \"not_contains\"\n | \"between\"\n | \"not_between\"\n | \"gt\"\n | \"gte\"\n | \"lt\"\n | \"lte\";\n\n/**\n * Definition for arguments of the ElasticsearchQueryBuilderOperatorPlugin.apply method.\n *\n * @see ElasticsearchQueryBuilderOperatorPlugin.apply\n *\n * @category Plugin\n * @category Elasticsearch\n */\nexport interface ElasticsearchQueryBuilderArgsPlugin {\n /**\n * A full path to the field. Including the \".keyword\" if it is added.\n */\n path: string;\n /**\n * A path to the field, plain.\n */\n basePath: string;\n /**\n * Value to apply.\n */\n value: any;\n /**\n * Is path containing the \".keyword\"\n */\n keyword: boolean;\n}\n\n/**\n * Elasticsearch responses.\n */\nexport interface ElasticsearchSearchResponseHit<T> {\n _source: T;\n sort: string;\n}\nexport interface ElasticsearchSearchResponseAggregationBucket<T> {\n key: T;\n}\nexport interface ElasticsearchSearchResponse<T = any> {\n body: {\n hits: {\n hits: ElasticsearchSearchResponseHit<T>[];\n total: {\n value: number;\n };\n };\n aggregations: {\n [key: string]: {\n buckets: ElasticsearchSearchResponseAggregationBucket<T>[];\n };\n };\n };\n}\n\nexport interface ElasticsearchIndexRequestBodyMappingsDynamicTemplate {\n [key: string]: {\n match_mapping_type?: string;\n match?: string;\n unmatch?: string;\n mapping?: {\n type?: \"text\" | \"date\" | \"binary\" | \"boolean\" | \"object\" | \"ip\" | \"geo\" | string;\n search_analyzer?: string;\n analyzer?: string;\n fields?: {\n [key: string]:\n | {\n type: string;\n search_analyzer?: string;\n analyzer?: string;\n ignore_above?: number;\n [key: string]: any;\n }\n | undefined;\n };\n [key: string]: any;\n };\n [key: string]: any;\n };\n}\n\ninterface ElasticsearchIndexRequestBodySettings {\n analysis?: {\n [key: string]: any;\n };\n number_of_shards?: number;\n number_of_routing_shards?: number;\n codec?: string;\n routing_partition_size?: number;\n soft_deletes?: {\n enabled?: boolean;\n retention_lease?: {\n period?: string;\n };\n };\n load_fixed_bitset_filters_eagerly?: boolean;\n shard?: {\n check_on_startup?: boolean | \"checksum\";\n };\n number_of_replicas?: number;\n auto_expand_replicas?: string | \"all\" | false;\n search?: {\n idle?: {\n after?: string;\n };\n };\n refresh_interval?: string;\n max_result_window?: number;\n max_inner_result_window?: number;\n max_rescore_window?: number;\n max_docvalue_fields_search?: number;\n max_script_fields?: number;\n max_ngram_diff?: number;\n max_shingle_diff?: number;\n max_refresh_listeners?: number;\n analyze?: {\n max_token_count?: number;\n };\n highlight?: {\n max_analyzed_offset?: number;\n };\n max_terms_count?: number;\n max_regex_length?: number;\n query?: {\n default_field?: string;\n };\n routing?: {\n allocation?: {\n enable?: \"all\" | \"primaries\" | \"new_primaries\" | \"none\";\n };\n rebalance?: {\n enable?: \"all\" | \"primaries\" | \"new_primaries\" | \"none\";\n };\n };\n gc_deletes?: string;\n default_pipeline?: string;\n final_pipeline?: string;\n hidden?: boolean;\n [key: string]: any;\n}\n\nexport interface ElasticsearchIndexRequestBody {\n settings?: {\n index?: Partial<ElasticsearchIndexRequestBodySettings>;\n };\n mappings: {\n dynamic_templates?: ElasticsearchIndexRequestBodyMappingsDynamicTemplate[];\n properties?: {\n [key: string]: {\n analyzer?: string;\n type?: string;\n normalizer?: string;\n index?: string;\n fields?: {\n [key: string]: {\n type: string;\n ignore_above?: number;\n search_analyzer?: string;\n analyzer?: string;\n [key: string]: any;\n };\n };\n [key: string]: any;\n };\n };\n [key: string]: any;\n };\n aliases?: {\n [key: string]: {\n filter?: {\n [key: string]: any;\n };\n index_routing?: string;\n is_hidden?: boolean;\n is_write_index?: boolean;\n routing?: string;\n search_routing?: string;\n };\n };\n}\n"]}
|
package/where.js
CHANGED
|
@@ -26,7 +26,7 @@ const parseWhereKey = key => {
|
|
|
26
26
|
throw new Error(`Cannot filter by "${field}".`);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const operator = operation.match(/^_/) ? operation.
|
|
29
|
+
const operator = operation.match(/^_/) ? operation.slice(1) : operation;
|
|
30
30
|
return {
|
|
31
31
|
field,
|
|
32
32
|
operator
|
package/where.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["where.ts"],"names":["parseWhereKeyRegExp","RegExp","parseWhereKey","key","match","Error","field","operation","operator","
|
|
1
|
+
{"version":3,"sources":["where.ts"],"names":["parseWhereKeyRegExp","RegExp","parseWhereKey","key","match","Error","field","operation","operator","slice","ALL","ElasticsearchFieldPlugin","applyWhere","params","query","where","fields","operators","hasOwnProperty","initialValue","undefined","fieldPlugin","WebinyError","operatorPlugin","path","getPath","basePath","getBasePath","value","toSearchValue","apply","keyword"],"mappings":";;;;;;;;;AACA;;AAEA;;AAgBA,MAAMA,mBAAmB,GAAG,IAAIC,MAAJ,CAAW,mCAAX,CAA5B;;AAEO,MAAMC,aAAa,GAAIC,GAAD,IAAsC;AAC/D,QAAMC,KAAK,GAAGD,GAAG,CAACC,KAAJ,CAAUJ,mBAAV,CAAd;;AAEA,MAAI,CAACI,KAAL,EAAY;AACR,UAAM,IAAIC,KAAJ,CAAW,wCAAuCF,GAAI,GAAtD,CAAN;AACH;;AAED,QAAM,GAAGG,KAAH,EAAUC,SAAS,GAAG,IAAtB,IAA8BH,KAApC;;AAEA,MAAI,CAACE,KAAK,CAACF,KAAN,CAAY,eAAZ,CAAL,EAAmC;AAC/B,UAAM,IAAIC,KAAJ,CAAW,qBAAoBC,KAAM,IAArC,CAAN;AACH;;AAED,QAAME,QAAQ,GAAGD,SAAS,CAACH,KAAV,CAAgB,IAAhB,IAAwBG,SAAS,CAACE,KAAV,CAAgB,CAAhB,CAAxB,GAA6CF,SAA9D;AAEA,SAAO;AAAED,IAAAA,KAAF;AAASE,IAAAA;AAAT,GAAP;AACH,CAhBM;;;AAkBP,MAAME,GAAG,GAAGC,mDAAyBD,GAArC;;AAEO,MAAME,UAAU,GAAIC,MAAD,IAAoC;AAC1D,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,KAAT;AAAgBC,IAAAA,MAAhB;AAAwBC,IAAAA;AAAxB,MAAsCJ,MAA5C;;AAEA,OAAK,MAAMV,GAAX,IAAkBY,KAAlB,EAAyB;AACrB,QAAIA,KAAK,CAACG,cAAN,CAAqBf,GAArB,MAA8B,KAAlC,EAAyC;AACrC;AACH;;AACD,UAAMgB,YAAY,GAAGJ,KAAK,CAACZ,GAAD,CAA1B;AACA;AACR;AACA;;AACQ,QAAIgB,YAAY,KAAKC,SAArB,EAAgC;AAC5B;AACH;;AACD,UAAM;AAAEd,MAAAA,KAAF;AAASE,MAAAA;AAAT,QAAsBN,aAAa,CAACC,GAAD,CAAzC;AACA,UAAMkB,WAAqC,GAAGL,MAAM,CAACV,KAAD,CAAN,IAAiBU,MAAM,CAACN,GAAD,CAArE;;AACA,QAAI,CAACW,WAAL,EAAkB;AACd,YAAM,IAAIC,cAAJ,CACD,iCAAgChB,KAAM,IADrC,EAEF,oBAFE,EAGF;AACIA,QAAAA;AADJ,OAHE,CAAN;AAOH;;AACD,UAAMiB,cAAc,GAAGN,SAAS,CAACT,QAAD,CAAhC;;AACA,QAAI,CAACe,cAAL,EAAqB;AACjB,YAAM,IAAID,cAAJ,CACD,oCAAmCd,QAAS,GAD3C,EAEF,oBAFE,EAGF;AACIA,QAAAA;AADJ,OAHE,CAAN;AAOH;AAED;AACR;AACA;AACA;;;AACQ,UAAMgB,IAAI,GAAGH,WAAW,CAACI,OAAZ,CAAoBnB,KAApB,CAAb;AACA,UAAMoB,QAAQ,GAAGL,WAAW,CAACM,WAAZ,CAAwBrB,KAAxB,CAAjB;AACA;AACR;AACA;;AACQ,UAAMsB,KAAK,GAAGP,WAAW,CAACQ,aAAZ,CAA0B;AACpCD,MAAAA,KAAK,EAAET,YAD6B;AAEpCK,MAAAA,IAFoC;AAGpCE,MAAAA;AAHoC,KAA1B,CAAd;AAMAH,IAAAA,cAAc,CAACO,KAAf,CAAqBhB,KAArB,EAA4B;AACxBc,MAAAA,KADwB;AAExBJ,MAAAA,IAFwB;AAGxBE,MAAAA,QAHwB;AAIxBK,MAAAA,OAAO,EAAEV,WAAW,CAACU;AAJG,KAA5B;AAMH;AACJ,CA1DM","sourcesContent":["import { ElasticsearchBoolQueryConfig } from \"~/types\";\nimport { ElasticsearchFieldPlugin } from \"~/plugins/definition/ElasticsearchFieldPlugin\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport WebinyError from \"@webiny/error\";\n\ntype Records<T> = Record<string, T>;\n\nexport interface ApplyWhereParams {\n query: ElasticsearchBoolQueryConfig;\n where: Records<any>;\n fields: Records<ElasticsearchFieldPlugin>;\n operators: Records<ElasticsearchQueryBuilderOperatorPlugin>;\n}\n\nexport interface ParseWhereKeyResult {\n field: string;\n operator: string;\n}\n\nconst parseWhereKeyRegExp = new RegExp(/^([a-zA-Z0-9]+)(_[a-zA-Z0-9_]+)?$/);\n\nexport const parseWhereKey = (key: string): ParseWhereKeyResult => {\n const match = key.match(parseWhereKeyRegExp);\n\n if (!match) {\n throw new Error(`It is not possible to search by key \"${key}\"`);\n }\n\n const [, field, operation = \"eq\"] = match;\n\n if (!field.match(/^([a-zA-Z]+)$/)) {\n throw new Error(`Cannot filter by \"${field}\".`);\n }\n\n const operator = operation.match(/^_/) ? operation.slice(1) : operation;\n\n return { field, operator };\n};\n\nconst ALL = ElasticsearchFieldPlugin.ALL;\n\nexport const applyWhere = (params: ApplyWhereParams): void => {\n const { query, where, fields, operators } = params;\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n const initialValue = where[key];\n /**\n * There is a possibility that undefined is sent as a value, so just skip it.\n */\n if (initialValue === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const fieldPlugin: ElasticsearchFieldPlugin = fields[field] || fields[ALL];\n if (!fieldPlugin) {\n throw new WebinyError(\n `Missing plugin for the field \"${field}\".`,\n \"PLUGIN_WHERE_ERROR\",\n {\n field\n }\n );\n }\n const operatorPlugin = operators[operator];\n if (!operatorPlugin) {\n throw new WebinyError(\n `Missing plugin for the operator \"${operator}\"`,\n \"PLUGIN_WHERE_ERROR\",\n {\n operator\n }\n );\n }\n\n /**\n * Get the path but in the case of * (all fields, replace * with the field.\n * Custom path would return its own value anyways.\n */\n const path = fieldPlugin.getPath(field);\n const basePath = fieldPlugin.getBasePath(field);\n /**\n * Transform the value for the search.\n */\n const value = fieldPlugin.toSearchValue({\n value: initialValue,\n path,\n basePath\n });\n\n operatorPlugin.apply(query, {\n value,\n path,\n basePath,\n keyword: fieldPlugin.keyword\n });\n }\n};\n"]}
|