@webiny/api-elasticsearch 0.0.0-ee-vpcs.549378cf03

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/client.d.ts +5 -0
  4. package/client.js +55 -0
  5. package/client.js.map +1 -0
  6. package/compression.d.ts +6 -0
  7. package/compression.js +68 -0
  8. package/compression.js.map +1 -0
  9. package/cursors.d.ts +10 -0
  10. package/cursors.js +55 -0
  11. package/cursors.js.map +1 -0
  12. package/index.d.ts +21 -0
  13. package/index.js +203 -0
  14. package/index.js.map +1 -0
  15. package/indexConfiguration/base.d.ts +6 -0
  16. package/indexConfiguration/base.js +45 -0
  17. package/indexConfiguration/base.js.map +1 -0
  18. package/indexConfiguration/common.d.ts +9 -0
  19. package/indexConfiguration/common.js +45 -0
  20. package/indexConfiguration/common.js.map +1 -0
  21. package/indexConfiguration/index.d.ts +3 -0
  22. package/indexConfiguration/index.js +44 -0
  23. package/indexConfiguration/index.js.map +1 -0
  24. package/indexConfiguration/japanese.d.ts +6 -0
  25. package/indexConfiguration/japanese.js +124 -0
  26. package/indexConfiguration/japanese.js.map +1 -0
  27. package/indices.d.ts +9 -0
  28. package/indices.js +35 -0
  29. package/indices.js.map +1 -0
  30. package/limit.d.ts +1 -0
  31. package/limit.js +45 -0
  32. package/limit.js.map +1 -0
  33. package/normalize.d.ts +5 -0
  34. package/normalize.js +24 -0
  35. package/normalize.js.map +1 -0
  36. package/operators.d.ts +9 -0
  37. package/operators.js +56 -0
  38. package/operators.js.map +1 -0
  39. package/package.json +49 -0
  40. package/plugins/GzipCompression.d.ts +24 -0
  41. package/plugins/GzipCompression.js +86 -0
  42. package/plugins/GzipCompression.js.map +1 -0
  43. package/plugins/definition/CompressionPlugin.d.ts +20 -0
  44. package/plugins/definition/CompressionPlugin.js +17 -0
  45. package/plugins/definition/CompressionPlugin.js.map +1 -0
  46. package/plugins/definition/ElasticsearchBodyModifierPlugin.d.ts +13 -0
  47. package/plugins/definition/ElasticsearchBodyModifierPlugin.js +35 -0
  48. package/plugins/definition/ElasticsearchBodyModifierPlugin.js.map +1 -0
  49. package/plugins/definition/ElasticsearchFieldPlugin.d.ts +81 -0
  50. package/plugins/definition/ElasticsearchFieldPlugin.js +104 -0
  51. package/plugins/definition/ElasticsearchFieldPlugin.js.map +1 -0
  52. package/plugins/definition/ElasticsearchIndexPlugin.d.ts +18 -0
  53. package/plugins/definition/ElasticsearchIndexPlugin.js +46 -0
  54. package/plugins/definition/ElasticsearchIndexPlugin.js.map +1 -0
  55. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.d.ts +14 -0
  56. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js +29 -0
  57. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js.map +1 -0
  58. package/plugins/definition/ElasticsearchQueryModifierPlugin.d.ts +14 -0
  59. package/plugins/definition/ElasticsearchQueryModifierPlugin.js +35 -0
  60. package/plugins/definition/ElasticsearchQueryModifierPlugin.js.map +1 -0
  61. package/plugins/definition/ElasticsearchSortModifierPlugin.d.ts +13 -0
  62. package/plugins/definition/ElasticsearchSortModifierPlugin.js +35 -0
  63. package/plugins/definition/ElasticsearchSortModifierPlugin.js.map +1 -0
  64. package/plugins/definition/index.d.ts +7 -0
  65. package/plugins/definition/index.js +96 -0
  66. package/plugins/definition/index.js.map +1 -0
  67. package/plugins/index.d.ts +2 -0
  68. package/plugins/index.js +31 -0
  69. package/plugins/index.js.map +1 -0
  70. package/plugins/operator/andIn.d.ts +7 -0
  71. package/plugins/operator/andIn.js +56 -0
  72. package/plugins/operator/andIn.js.map +1 -0
  73. package/plugins/operator/between.d.ts +7 -0
  74. package/plugins/operator/between.js +52 -0
  75. package/plugins/operator/between.js.map +1 -0
  76. package/plugins/operator/contains.d.ts +7 -0
  77. package/plugins/operator/contains.js +43 -0
  78. package/plugins/operator/contains.js.map +1 -0
  79. package/plugins/operator/equal.d.ts +7 -0
  80. package/plugins/operator/equal.js +74 -0
  81. package/plugins/operator/equal.js.map +1 -0
  82. package/plugins/operator/gt.d.ts +7 -0
  83. package/plugins/operator/gt.js +40 -0
  84. package/plugins/operator/gt.js.map +1 -0
  85. package/plugins/operator/gte.d.ts +7 -0
  86. package/plugins/operator/gte.js +40 -0
  87. package/plugins/operator/gte.js.map +1 -0
  88. package/plugins/operator/in.d.ts +7 -0
  89. package/plugins/operator/in.js +48 -0
  90. package/plugins/operator/in.js.map +1 -0
  91. package/plugins/operator/index.d.ts +16 -0
  92. package/plugins/operator/index.js +213 -0
  93. package/plugins/operator/index.js.map +1 -0
  94. package/plugins/operator/japanese/contains.d.ts +8 -0
  95. package/plugins/operator/japanese/contains.js +58 -0
  96. package/plugins/operator/japanese/contains.js.map +1 -0
  97. package/plugins/operator/lt.d.ts +7 -0
  98. package/plugins/operator/lt.js +40 -0
  99. package/plugins/operator/lt.js.map +1 -0
  100. package/plugins/operator/lte.d.ts +7 -0
  101. package/plugins/operator/lte.js +40 -0
  102. package/plugins/operator/lte.js.map +1 -0
  103. package/plugins/operator/not.d.ts +7 -0
  104. package/plugins/operator/not.js +62 -0
  105. package/plugins/operator/not.js.map +1 -0
  106. package/plugins/operator/notBetween.d.ts +7 -0
  107. package/plugins/operator/notBetween.js +52 -0
  108. package/plugins/operator/notBetween.js.map +1 -0
  109. package/plugins/operator/notContains.d.ts +7 -0
  110. package/plugins/operator/notContains.js +43 -0
  111. package/plugins/operator/notContains.js.map +1 -0
  112. package/plugins/operator/notIn.d.ts +7 -0
  113. package/plugins/operator/notIn.js +47 -0
  114. package/plugins/operator/notIn.js.map +1 -0
  115. package/plugins/operator/notStartsWith.d.ts +7 -0
  116. package/plugins/operator/notStartsWith.js +38 -0
  117. package/plugins/operator/notStartsWith.js.map +1 -0
  118. package/plugins/operator/startsWith.d.ts +7 -0
  119. package/plugins/operator/startsWith.js +38 -0
  120. package/plugins/operator/startsWith.js.map +1 -0
  121. package/sort.d.ts +13 -0
  122. package/sort.js +75 -0
  123. package/sort.js.map +1 -0
  124. package/types.d.ts +208 -0
  125. package/types.js +30 -0
  126. package/types.js.map +1 -0
  127. package/where.d.ts +17 -0
  128. package/where.js +107 -0
  129. package/where.js.map +1 -0
@@ -0,0 +1,6 @@
1
+ import { ElasticsearchIndexRequestBody } from "../types";
2
+ interface Modifier {
3
+ (config: ElasticsearchIndexRequestBody): ElasticsearchIndexRequestBody;
4
+ }
5
+ export declare const getJapaneseConfiguration: (modifier?: Modifier) => ElasticsearchIndexRequestBody;
6
+ export {};
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getJapaneseConfiguration = void 0;
7
+
8
+ var _common = require("./common");
9
+
10
+ const config = {
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
+ numeric_detection: true,
84
+ dynamic_templates: (0, _common.getCommonMappings)(mappings => {
85
+ return mappings.concat([{
86
+ strings: {
87
+ match_mapping_type: "string",
88
+ mapping: {
89
+ type: "text",
90
+ search_analyzer: "ja_kuromoji_search_analyzer",
91
+ analyzer: "ja_kuromoji_index_analyzer",
92
+ fields: {
93
+ ngram: {
94
+ type: "text",
95
+ search_analyzer: "ja_ngram_search_analyzer",
96
+ analyzer: "ja_ngram_index_analyzer"
97
+ },
98
+ keyword: {
99
+ ignore_above: 256,
100
+ type: "keyword"
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }]);
106
+ }),
107
+ properties: {
108
+ rawValues: {
109
+ type: "object",
110
+ enabled: false
111
+ }
112
+ }
113
+ }
114
+ };
115
+
116
+ const getJapaneseConfiguration = modifier => {
117
+ if (!modifier) {
118
+ return config;
119
+ }
120
+
121
+ return modifier(config);
122
+ };
123
+
124
+ exports.getJapaneseConfiguration = getJapaneseConfiguration;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["config","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","numeric_detection","dynamic_templates","getCommonMappings","concat","strings","match_mapping_type","mapping","search_analyzer","fields","ngram","keyword","ignore_above","properties","rawValues","enabled","getJapaneseConfiguration","modifier"],"sources":["japanese.ts"],"sourcesContent":["import { ElasticsearchIndexRequestBody } from \"~/types\";\nimport { getCommonMappings } from \"./common\";\n\nconst config: 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 numeric_detection: true,\n dynamic_templates: getCommonMappings(mappings => {\n return mappings.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 }),\n properties: {\n rawValues: {\n type: \"object\",\n enabled: false\n }\n }\n }\n};\n\ninterface Modifier {\n (config: ElasticsearchIndexRequestBody): ElasticsearchIndexRequestBody;\n}\nexport const getJapaneseConfiguration = (modifier?: Modifier) => {\n if (!modifier) {\n return config;\n }\n return modifier(config);\n};\n"],"mappings":";;;;;;;AACA;;AAEA,MAAMA,MAAqC,GAAG;EAC1CC,QAAQ,EAAE;IACNC,KAAK,EAAE;MACHC,QAAQ,EAAE;QACNC,WAAW,EAAE;UACTC,SAAS,EAAE;YACPC,IAAI,EAAE,gBADC;YAEPC,IAAI,EAAE,MAFC;YAGPC,IAAI,EAAE;UAHC;QADF,CADP;QAQNC,SAAS,EAAE;UACPC,qBAAqB,EAAE;YACnBF,IAAI,EAAE,QADa;YAEnBF,IAAI,EAAE,oBAFa;YAGnBK,sBAAsB,EAAE,MAHL;YAInBC,qBAAqB,EAAE,CACnB,wCADmB;UAJJ,CADhB;UASPC,kBAAkB,EAAE;YAChBP,IAAI,EAAE,OADU;YAEhBQ,QAAQ,EAAE,GAFM;YAGhBC,QAAQ,EAAE,GAHM;YAIhBC,WAAW,EAAE,CAAC,QAAD,EAAW,OAAX;UAJG;QATb,CARL;QAwBNC,MAAM,EAAE;UACJC,gBAAgB,EAAE;YACdZ,IAAI,EAAE,SADQ;YAEda,OAAO,EAAE,OAFK;YAGdC,QAAQ,EAAE;UAHI,CADd;UAMJC,iBAAiB,EAAE;YACff,IAAI,EAAE,eADS;YAEfa,OAAO,EAAE,OAFM;YAGfC,QAAQ,EAAE,CAAC,UAAD,EAAa,UAAb;UAHK;QANf,CAxBF;QAoCNE,QAAQ,EAAE;UACNC,0BAA0B,EAAE;YACxBjB,IAAI,EAAE,QADkB;YAExBF,WAAW,EAAE,CAAC,WAAD,CAFW;YAGxBK,SAAS,EAAE,uBAHa;YAIxBQ,MAAM,EAAE,CACJ,mBADI,EAEJ,yBAFI,EAGJ,kBAHI,EAIJ,WAJI,EAKJ,SALI,EAMJ,kBANI,EAOJ,WAPI;UAJgB,CADtB;UAeNO,2BAA2B,EAAE;YACzBlB,IAAI,EAAE,QADmB;YAEzBF,WAAW,EAAE,CAAC,WAAD,CAFY;YAGzBK,SAAS,EAAE,uBAHc;YAIzBQ,MAAM,EAAE,CACJ,mBADI,EAEJ,yBAFI,EAGJ,mBAHI,EAIJ,WAJI,EAKJ,SALI,EAMJ,kBANI,EAOJ,WAPI;UAJiB,CAfvB;UA6BNQ,uBAAuB,EAAE;YACrBnB,IAAI,EAAE,QADe;YAErBF,WAAW,EAAE,CAAC,WAAD,CAFQ;YAGrBK,SAAS,EAAE,oBAHU;YAIrBQ,MAAM,EAAE,CAAC,WAAD;UAJa,CA7BnB;UAmCNS,wBAAwB,EAAE;YACtBpB,IAAI,EAAE,QADgB;YAEtBF,WAAW,EAAE,CAAC,WAAD,CAFS;YAGtBK,SAAS,EAAE,oBAHW;YAItBQ,MAAM,EAAE,CAAC,mBAAD,EAAsB,WAAtB;UAJc;QAnCpB,CApCJ;QA8ENU,OAAO,EAAE;UACLrB,IAAI,EAAE;QADD,CA9EH;QAiFNsB,cAAc,EAAE;UACZtB,IAAI,EAAE;QADM;MAjFV;IADP;EADD,CADgC;EA0F1CuB,QAAQ,EAAE;IACNC,iBAAiB,EAAE,IADb;IAENC,iBAAiB,EAAE,IAAAC,yBAAA,EAAkBH,QAAQ,IAAI;MAC7C,OAAOA,QAAQ,CAACI,MAAT,CAAgB,CACnB;QACIC,OAAO,EAAE;UACLC,kBAAkB,EAAE,QADf;UAELC,OAAO,EAAE;YACL9B,IAAI,EAAE,MADD;YAEL+B,eAAe,EAAE,6BAFZ;YAGLf,QAAQ,EAAE,4BAHL;YAILgB,MAAM,EAAE;cACJC,KAAK,EAAE;gBACHjC,IAAI,EAAE,MADH;gBAEH+B,eAAe,EAAE,0BAFd;gBAGHf,QAAQ,EAAE;cAHP,CADH;cAMJkB,OAAO,EAAE;gBACLC,YAAY,EAAE,GADT;gBAELnC,IAAI,EAAE;cAFD;YANL;UAJH;QAFJ;MADb,CADmB,CAAhB,CAAP;IAuBH,CAxBkB,CAFb;IA2BNoC,UAAU,EAAE;MACRC,SAAS,EAAE;QACPrC,IAAI,EAAE,QADC;QAEPsC,OAAO,EAAE;MAFF;IADH;EA3BN;AA1FgC,CAA9C;;AAiIO,MAAMC,wBAAwB,GAAIC,QAAD,IAAyB;EAC7D,IAAI,CAACA,QAAL,EAAe;IACX,OAAO9C,MAAP;EACH;;EACD,OAAO8C,QAAQ,CAAC9C,MAAD,CAAf;AACH,CALM"}
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").default;
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,"names":["listIndicesPlugins","container","type","locale","byType","filter","plugin","canUse","getLastAddedIndexPlugin","params","plugins","length","WebinyError","pop"],"sources":["indices.ts"],"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"],"mappings":";;;;;;;;;AAEA;;AAOA,MAAMA,kBAAkB,GAAG,CAAqC;EAC5DC,SAD4D;EAE5DC,IAF4D;EAG5DC;AAH4D,CAArC,KAIM;EAC7B,OAAOF,SAAS,CAACG,MAAV,CAAoBF,IAApB,EAA0BG,MAA1B,CAAiCC,MAAM,IAAI;IAC9C,OAAOA,MAAM,CAACC,MAAP,CAAcJ,MAAd,CAAP;EACH,CAFM,CAAP;AAGH,CARD;;AAUO,MAAMK,uBAAuB,GAChCC,MADmC,IAE/B;EACJ,MAAMC,OAAO,GAAGV,kBAAkB,CAAIS,MAAJ,CAAlC;;EACA,IAAIC,OAAO,CAACC,MAAR,KAAmB,CAAvB,EAA0B;IACtB,MAAM,IAAIC,cAAJ,CACD,6DAA4DH,MAAM,CAACP,IAAK,IADvE,EAEF,oCAFE,EAGF;MACIA,IAAI,EAAEO,MAAM,CAACP,IADjB;MAEIC,MAAM,EAAEM,MAAM,CAACN;IAFnB,CAHE,CAAN;EAQH;;EAED,OAAOO,OAAO,CAACG,GAAR,EAAP;AACH,CAhBM"}
package/limit.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const createLimit: (limit?: number, defaultValue?: number) => number;
package/limit.js ADDED
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createLimit = void 0;
7
+
8
+ /**
9
+ * This is the max limit of the Elasticsearch.
10
+ * Change here if it changes (and if it is necessary).
11
+ */
12
+ const ES_LIMIT_MAX = 10000;
13
+ /**
14
+ * Our system default limit.
15
+ */
16
+
17
+ const ES_LIMIT_DEFAULT = 50;
18
+
19
+ const createLimit = (limit, defaultValue = ES_LIMIT_DEFAULT) => {
20
+ /**
21
+ * Limit can possibly be null/undefined or less than 1.
22
+ * In that case return the defaults.
23
+ */
24
+ if (!limit || limit < 1) {
25
+ return defaultValue;
26
+ }
27
+ /**
28
+ * Users input limit cannot be greater than the Elasticsearch one.
29
+ * Elasticsearch query breaks because of that.
30
+ */
31
+
32
+
33
+ if (limit < ES_LIMIT_MAX) {
34
+ return limit;
35
+ }
36
+ /**
37
+ * Always reduce by 1 because we check if there are more items by adding 1 to the limit
38
+ * and then remove that last one loaded.
39
+ */
40
+
41
+
42
+ return ES_LIMIT_MAX - 1;
43
+ };
44
+
45
+ exports.createLimit = createLimit;
package/limit.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ES_LIMIT_MAX","ES_LIMIT_DEFAULT","createLimit","limit","defaultValue"],"sources":["limit.ts"],"sourcesContent":["/**\n * This is the max limit of the Elasticsearch.\n * Change here if it changes (and if it is necessary).\n */\nconst ES_LIMIT_MAX = 10000;\n/**\n * Our system default limit.\n */\nconst ES_LIMIT_DEFAULT = 50;\n\nexport const createLimit = (limit?: number, defaultValue = ES_LIMIT_DEFAULT): number => {\n /**\n * Limit can possibly be null/undefined or less than 1.\n * In that case return the defaults.\n */\n if (!limit || limit < 1) {\n return defaultValue;\n }\n /**\n * Users input limit cannot be greater than the Elasticsearch one.\n * Elasticsearch query breaks because of that.\n */\n if (limit < ES_LIMIT_MAX) {\n return limit;\n }\n /**\n * Always reduce by 1 because we check if there are more items by adding 1 to the limit\n * and then remove that last one loaded.\n */\n return ES_LIMIT_MAX - 1;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,KAArB;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,EAAzB;;AAEO,MAAMC,WAAW,GAAG,CAACC,KAAD,EAAiBC,YAAY,GAAGH,gBAAhC,KAA6D;EACpF;AACJ;AACA;AACA;EACI,IAAI,CAACE,KAAD,IAAUA,KAAK,GAAG,CAAtB,EAAyB;IACrB,OAAOC,YAAP;EACH;EACD;AACJ;AACA;AACA;;;EACI,IAAID,KAAK,GAAGH,YAAZ,EAA0B;IACtB,OAAOG,KAAP;EACH;EACD;AACJ;AACA;AACA;;;EACI,OAAOH,YAAY,GAAG,CAAtB;AACH,CApBM"}
package/normalize.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Before performing the query, we need to escape all special characters.
3
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_reserved_characters
4
+ */
5
+ export declare const normalizeValue: (value: string) => string;
package/normalize.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizeValue = void 0;
7
+
8
+ /**
9
+ * Before performing the query, we need to escape all special characters.
10
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_reserved_characters
11
+ */
12
+ const specialCharacters = ["\\+", "\\-", "\\=", "\\&\\&", "\\|\\|", ">", "<", "\\!", "\\(", "\\)", "\\{", "\\}", "\\[", "\\]", "\\^", '\\"', "\\~", "\\*", "\\?", "\\:", "\\\\", "\\/", "\\#"];
13
+
14
+ const normalizeValue = value => {
15
+ let result = value;
16
+
17
+ for (const character of specialCharacters) {
18
+ result = result.replace(new RegExp(character, "g"), `\\${character}`);
19
+ }
20
+
21
+ return result ? `*${result}*` : "";
22
+ };
23
+
24
+ exports.normalizeValue = normalizeValue;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["specialCharacters","normalizeValue","value","result","character","replace","RegExp"],"sources":["normalize.ts"],"sourcesContent":["/**\n * Before performing the query, we need to escape all special characters.\n * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_reserved_characters\n */\n\nconst specialCharacters = [\n \"\\\\+\",\n \"\\\\-\",\n \"\\\\=\",\n \"\\\\&\\\\&\",\n \"\\\\|\\\\|\",\n \">\",\n \"<\",\n \"\\\\!\",\n \"\\\\(\",\n \"\\\\)\",\n \"\\\\{\",\n \"\\\\}\",\n \"\\\\[\",\n \"\\\\]\",\n \"\\\\^\",\n '\\\\\"',\n \"\\\\~\",\n \"\\\\*\",\n \"\\\\?\",\n \"\\\\:\",\n \"\\\\\\\\\",\n \"\\\\/\",\n \"\\\\#\"\n];\n\nexport const normalizeValue = (value: string) => {\n let result = value;\n for (const character of specialCharacters) {\n result = result.replace(new RegExp(character, \"g\"), `\\\\${character}`);\n }\n\n return result ? `*${result}*` : \"\";\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA,MAAMA,iBAAiB,GAAG,CACtB,KADsB,EAEtB,KAFsB,EAGtB,KAHsB,EAItB,QAJsB,EAKtB,QALsB,EAMtB,GANsB,EAOtB,GAPsB,EAQtB,KARsB,EAStB,KATsB,EAUtB,KAVsB,EAWtB,KAXsB,EAYtB,KAZsB,EAatB,KAbsB,EActB,KAdsB,EAetB,KAfsB,EAgBtB,KAhBsB,EAiBtB,KAjBsB,EAkBtB,KAlBsB,EAmBtB,KAnBsB,EAoBtB,KApBsB,EAqBtB,MArBsB,EAsBtB,KAtBsB,EAuBtB,KAvBsB,CAA1B;;AA0BO,MAAMC,cAAc,GAAIC,KAAD,IAAmB;EAC7C,IAAIC,MAAM,GAAGD,KAAb;;EACA,KAAK,MAAME,SAAX,IAAwBJ,iBAAxB,EAA2C;IACvCG,MAAM,GAAGA,MAAM,CAACE,OAAP,CAAe,IAAIC,MAAJ,CAAWF,SAAX,EAAsB,GAAtB,CAAf,EAA4C,KAAIA,SAAU,EAA1D,CAAT;EACH;;EAED,OAAOD,MAAM,GAAI,IAAGA,MAAO,GAAd,GAAmB,EAAhC;AACH,CAPM"}
package/operators.d.ts ADDED
@@ -0,0 +1,9 @@
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";
4
+ /**
5
+ * We export as a function because there might be something to be sent to the operators at some point.
6
+ * This way, we make it easier to upgrade.
7
+ */
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 ADDED
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getElasticsearchOperators = exports.getElasticsearchOperatorPluginsByLocale = void 0;
7
+
8
+ var _operator = require("./plugins/operator");
9
+
10
+ var _ElasticsearchQueryBuilderOperatorPlugin = require("./plugins/definition/ElasticsearchQueryBuilderOperatorPlugin");
11
+
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()];
17
+ /**
18
+ * We export as a function because there might be something to be sent to the operators at some point.
19
+ * This way, we make it easier to upgrade.
20
+ */
21
+
22
+ const getElasticsearchOperators = () => operators;
23
+
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;
@@ -0,0 +1 @@
1
+ {"version":3,"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"],"sources":["operators.ts"],"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\";\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"],"mappings":";;;;;;;AAAA;;AAmBA;;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;EAC1D;AACJ;AACA;AACA;EACI,OAAOD,OAAO,CACTE,MADE,CAECC,gFAAA,CAAwCC,IAFzC,EAIFC,MAJE,CAIK,CAACC,GAAD,EAAMC,MAAN,KAAiB;IACrB,MAAMC,EAAE,GAAGD,MAAM,CAACE,WAAP,EAAX;IACA;AACZ;AACA;AACA;;IACY,IAAIF,MAAM,CAACG,iBAAP,CAAyBT,MAAzB,MAAqC,KAAzC,EAAgD;MAC5C,OAAOK,GAAP;IACH;IACD;AACZ;AACA;AACA;;;IACY,IAAI,CAAC,CAACA,GAAG,CAACE,EAAD,CAAL,IAAa,CAACD,MAAM,CAACI,IAAP,IAAe,EAAhB,EAAoBC,KAApB,CAA0B,YAA1B,CAAjB,EAA0D;MACtD,OAAON,GAAP;IACH;;IACDA,GAAG,CAACE,EAAD,CAAH,GAAUD,MAAV;IACA,OAAOD,GAAP;EACH,CAtBE,EAsBA,EAtBA,CAAP;AAuBH,CA/BM"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@webiny/api-elasticsearch",
3
+ "version": "0.0.0-ee-vpcs.549378cf03",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/webiny/webiny-js.git",
7
+ "directory": "packages/api-elasticsearch"
8
+ },
9
+ "description": "A set of plugins to work with Elasticsearch.",
10
+ "contributors": [
11
+ "Pavel Denisjuk <pavel@webiny.com>"
12
+ ],
13
+ "license": "MIT",
14
+ "dependencies": {
15
+ "@elastic/elasticsearch": "7.12.0",
16
+ "@webiny/api": "0.0.0-ee-vpcs.549378cf03",
17
+ "@webiny/error": "0.0.0-ee-vpcs.549378cf03",
18
+ "@webiny/plugins": "0.0.0-ee-vpcs.549378cf03",
19
+ "@webiny/utils": "0.0.0-ee-vpcs.549378cf03",
20
+ "aws-elasticsearch-connector": "9.2.0",
21
+ "aws-sdk": "2.1230.0",
22
+ "elastic-ts": "0.8.0"
23
+ },
24
+ "devDependencies": {
25
+ "@babel/cli": "^7.16.0",
26
+ "@babel/core": "^7.16.0",
27
+ "@webiny/cli": "^0.0.0-ee-vpcs.549378cf03",
28
+ "@webiny/project-utils": "^0.0.0-ee-vpcs.549378cf03",
29
+ "rimraf": "^3.0.2",
30
+ "ttypescript": "^1.5.12",
31
+ "typescript": "4.7.4"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public",
35
+ "directory": "dist"
36
+ },
37
+ "scripts": {
38
+ "build": "yarn webiny run build",
39
+ "watch": "yarn webiny run watch"
40
+ },
41
+ "adio": {
42
+ "ignore": {
43
+ "src": [
44
+ "aws-sdk"
45
+ ]
46
+ }
47
+ },
48
+ "gitHead": "549378cf03fcd27845fc3fa23d1dc6b32896f630"
49
+ }
@@ -0,0 +1,24 @@
1
+ import { CompressionPlugin } from "./definition/CompressionPlugin";
2
+ export interface CompressedData {
3
+ compression: string;
4
+ value: string;
5
+ }
6
+ interface OriginalData {
7
+ [key: string]: any;
8
+ }
9
+ declare class GzipCompression extends CompressionPlugin {
10
+ canCompress(data: any): boolean;
11
+ compress(data: any): Promise<{
12
+ compression: string;
13
+ value: string;
14
+ }>;
15
+ canDecompress(data: CompressedData | Record<string, any>): boolean;
16
+ decompress(data: CompressedData): Promise<OriginalData | null>;
17
+ }
18
+ export declare const createGzipCompression: () => GzipCompression;
19
+ /**
20
+ * Left due to backward compatibility with older systems.
21
+ * Remove when upgraded the system to run from @webiny/api-serverless-cms-aws
22
+ */
23
+ declare const _default: () => GzipCompression;
24
+ export default _default;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.createGzipCompression = void 0;
7
+
8
+ var _CompressionPlugin = require("./definition/CompressionPlugin");
9
+
10
+ var _gzip = require("@webiny/utils/compression/gzip");
11
+
12
+ const GZIP = "gzip";
13
+ const TO_STORAGE_ENCODING = "base64";
14
+ const FROM_STORAGE_ENCODING = "utf8";
15
+
16
+ const convertToBuffer = value => {
17
+ if (typeof value === "string") {
18
+ return Buffer.from(value, TO_STORAGE_ENCODING);
19
+ }
20
+
21
+ return value;
22
+ };
23
+
24
+ class GzipCompression extends _CompressionPlugin.CompressionPlugin {
25
+ canCompress(data) {
26
+ /**
27
+ * If already compressed, skip this.
28
+ */
29
+ if (data.compression) {
30
+ if (data.compression !== "GZIP") {
31
+ console.log(`Data is already compressed with "${data.compression}".`);
32
+ }
33
+
34
+ return false;
35
+ }
36
+
37
+ return true;
38
+ }
39
+
40
+ async compress(data) {
41
+ const value = await (0, _gzip.compress)(JSON.stringify(data));
42
+ return {
43
+ compression: GZIP,
44
+ value: value.toString(TO_STORAGE_ENCODING)
45
+ };
46
+ }
47
+
48
+ canDecompress(data) {
49
+ if (!data || !data.compression) {
50
+ return false;
51
+ } else if (data.compression !== GZIP) {
52
+ console.log(`Could not decompress given data since its compression is not "${GZIP}". It is "${data.compression}".`);
53
+ return false;
54
+ }
55
+
56
+ return true;
57
+ }
58
+
59
+ async decompress(data) {
60
+ try {
61
+ const buf = await (0, _gzip.decompress)(convertToBuffer(data.value));
62
+ const value = buf.toString(FROM_STORAGE_ENCODING);
63
+ return JSON.parse(value);
64
+ } catch (ex) {
65
+ return null;
66
+ }
67
+ }
68
+
69
+ }
70
+
71
+ const createGzipCompression = () => {
72
+ return new GzipCompression();
73
+ };
74
+ /**
75
+ * Left due to backward compatibility with older systems.
76
+ * Remove when upgraded the system to run from @webiny/api-serverless-cms-aws
77
+ */
78
+
79
+
80
+ exports.createGzipCompression = createGzipCompression;
81
+
82
+ var _default = () => {
83
+ return createGzipCompression();
84
+ };
85
+
86
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","GzipCompression","CompressionPlugin","canCompress","data","compression","console","log","compress","gzip","JSON","stringify","toString","canDecompress","decompress","buf","ungzip","parse","ex","createGzipCompression"],"sources":["GzipCompression.ts"],"sourcesContent":["import { CompressionPlugin } from \"~/plugins/definition/CompressionPlugin\";\nimport { compress as gzip, decompress as ungzip } from \"@webiny/utils/compression/gzip\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport interface CompressedData {\n compression: string;\n value: string;\n}\n\ninterface OriginalData {\n [key: string]: any;\n}\n\nclass GzipCompression extends CompressionPlugin {\n public canCompress(data: any): boolean {\n /**\n * If already compressed, skip this.\n */\n if (data.compression) {\n if (data.compression !== \"GZIP\") {\n console.log(`Data is already compressed with \"${data.compression}\".`);\n }\n return false;\n }\n return true;\n }\n public async compress(data: any) {\n const value = await gzip(JSON.stringify(data));\n\n return {\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n };\n }\n\n public canDecompress(data: CompressedData | Record<string, any>): boolean {\n if (!data || !data.compression) {\n return false;\n } else if (data.compression !== GZIP) {\n console.log(\n `Could not decompress given data since its compression is not \"${GZIP}\". It is \"${data.compression}\".`\n );\n return false;\n }\n return true;\n }\n\n public async decompress(data: CompressedData): Promise<OriginalData | null> {\n try {\n const buf = await ungzip(convertToBuffer(data.value));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return JSON.parse(value);\n } catch (ex) {\n return null;\n }\n }\n}\n\nexport const createGzipCompression = () => {\n return new GzipCompression();\n};\n/**\n * Left due to backward compatibility with older systems.\n * Remove when upgraded the system to run from @webiny/api-serverless-cms-aws\n */\nexport default () => {\n return createGzipCompression();\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA,MAAMA,IAAI,GAAG,MAAb;AACA,MAAMC,mBAAmB,GAAG,QAA5B;AACA,MAAMC,qBAAqB,GAAG,MAA9B;;AAEA,MAAMC,eAAe,GAAIC,KAAD,IAA4B;EAChD,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC3B,OAAOC,MAAM,CAACC,IAAP,CAAYF,KAAZ,EAAmBH,mBAAnB,CAAP;EACH;;EACD,OAAOG,KAAP;AACH,CALD;;AAgBA,MAAMG,eAAN,SAA8BC,oCAA9B,CAAgD;EACrCC,WAAW,CAACC,IAAD,EAAqB;IACnC;AACR;AACA;IACQ,IAAIA,IAAI,CAACC,WAAT,EAAsB;MAClB,IAAID,IAAI,CAACC,WAAL,KAAqB,MAAzB,EAAiC;QAC7BC,OAAO,CAACC,GAAR,CAAa,oCAAmCH,IAAI,CAACC,WAAY,IAAjE;MACH;;MACD,OAAO,KAAP;IACH;;IACD,OAAO,IAAP;EACH;;EACoB,MAARG,QAAQ,CAACJ,IAAD,EAAY;IAC7B,MAAMN,KAAK,GAAG,MAAM,IAAAW,cAAA,EAAKC,IAAI,CAACC,SAAL,CAAeP,IAAf,CAAL,CAApB;IAEA,OAAO;MACHC,WAAW,EAAEX,IADV;MAEHI,KAAK,EAAEA,KAAK,CAACc,QAAN,CAAejB,mBAAf;IAFJ,CAAP;EAIH;;EAEMkB,aAAa,CAACT,IAAD,EAAsD;IACtE,IAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,WAAnB,EAAgC;MAC5B,OAAO,KAAP;IACH,CAFD,MAEO,IAAID,IAAI,CAACC,WAAL,KAAqBX,IAAzB,EAA+B;MAClCY,OAAO,CAACC,GAAR,CACK,iEAAgEb,IAAK,aAAYU,IAAI,CAACC,WAAY,IADvG;MAGA,OAAO,KAAP;IACH;;IACD,OAAO,IAAP;EACH;;EAEsB,MAAVS,UAAU,CAACV,IAAD,EAAqD;IACxE,IAAI;MACA,MAAMW,GAAG,GAAG,MAAM,IAAAC,gBAAA,EAAOnB,eAAe,CAACO,IAAI,CAACN,KAAN,CAAtB,CAAlB;MACA,MAAMA,KAAK,GAAGiB,GAAG,CAACH,QAAJ,CAAahB,qBAAb,CAAd;MACA,OAAOc,IAAI,CAACO,KAAL,CAAWnB,KAAX,CAAP;IACH,CAJD,CAIE,OAAOoB,EAAP,EAAW;MACT,OAAO,IAAP;IACH;EACJ;;AA1C2C;;AA6CzC,MAAMC,qBAAqB,GAAG,MAAM;EACvC,OAAO,IAAIlB,eAAJ,EAAP;AACH,CAFM;AAGP;AACA;AACA;AACA;;;;;eACe,MAAM;EACjB,OAAOkB,qBAAqB,EAA5B;AACH,C"}
@@ -0,0 +1,20 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ export declare abstract class CompressionPlugin extends Plugin {
3
+ static readonly type: string;
4
+ /**
5
+ * Check if data can be compressed.
6
+ */
7
+ abstract canCompress(data: any): boolean;
8
+ /**
9
+ * Pass the data to get the compressed one back.
10
+ */
11
+ abstract compress(data: any): Promise<any>;
12
+ /**
13
+ * Check if data can be decompressed.
14
+ */
15
+ abstract canDecompress(data: any): boolean;
16
+ /**
17
+ * Passed the compressed data to get the original data back.
18
+ */
19
+ abstract decompress(data: any): Promise<any>;
20
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CompressionPlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _plugins = require("@webiny/plugins");
13
+
14
+ class CompressionPlugin extends _plugins.Plugin {}
15
+
16
+ exports.CompressionPlugin = CompressionPlugin;
17
+ (0, _defineProperty2.default)(CompressionPlugin, "type", "elasticsearch.compression");
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CompressionPlugin","Plugin"],"sources":["CompressionPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\n\nexport abstract class CompressionPlugin extends Plugin {\n public static override readonly type: string = \"elasticsearch.compression\";\n /**\n * Check if data can be compressed.\n */\n public abstract canCompress(data: any): boolean;\n /**\n * Pass the data to get the compressed one back.\n */\n public abstract compress(data: any): Promise<any>;\n /**\n * Check if data can be decompressed.\n */\n public abstract canDecompress(data: any): boolean;\n /**\n * Passed the compressed data to get the original data back.\n */\n public abstract decompress(data: any): Promise<any>;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAeA,iBAAf,SAAyCC,eAAzC,CAAgD;;;8BAAjCD,iB,UAC6B,2B"}
@@ -0,0 +1,13 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { SearchBody } from "elastic-ts";
3
+ export interface ModifyBodyParams {
4
+ body: SearchBody;
5
+ }
6
+ export interface ModifyBodyCallable<T extends ModifyBodyParams> {
7
+ (params: T): void;
8
+ }
9
+ export declare abstract class ElasticsearchBodyModifierPlugin<T extends ModifyBodyParams = ModifyBodyParams> extends Plugin {
10
+ private readonly callable?;
11
+ constructor(callable?: ModifyBodyCallable<T>);
12
+ modifyBody(params: T): void;
13
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ElasticsearchBodyModifierPlugin = 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
+ class ElasticsearchBodyModifierPlugin extends _plugins.Plugin {
17
+ constructor(callable) {
18
+ super();
19
+ (0, _defineProperty2.default)(this, "callable", void 0);
20
+ this.callable = callable;
21
+ }
22
+
23
+ modifyBody(params) {
24
+ if (typeof this.callable !== "function") {
25
+ throw new _error.default(`Missing modification for the body.`, "BODY_MODIFICATION_MISSING", {
26
+ params
27
+ });
28
+ }
29
+
30
+ this.callable(params);
31
+ }
32
+
33
+ }
34
+
35
+ exports.ElasticsearchBodyModifierPlugin = ElasticsearchBodyModifierPlugin;