@webiny/api-elasticsearch 5.17.4 → 5.18.0-beta.3

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 (68) hide show
  1. package/client.js +1 -2
  2. package/compression.d.ts +3 -3
  3. package/compression.js +8 -8
  4. package/cursors.js +1 -2
  5. package/index.js +1 -2
  6. package/limit.js +1 -2
  7. package/normalize.js +1 -2
  8. package/operators.js +1 -2
  9. package/package.json +10 -10
  10. package/plugins/GzipCompression.d.ts +0 -4
  11. package/plugins/GzipCompression.js +5 -35
  12. package/plugins/definition/CompressionPlugin.js +1 -2
  13. package/plugins/definition/ElasticsearchBodyModifierPlugin.d.ts +5 -6
  14. package/plugins/definition/ElasticsearchBodyModifierPlugin.js +1 -2
  15. package/plugins/definition/ElasticsearchFieldPlugin.js +1 -2
  16. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js +1 -2
  17. package/plugins/definition/ElasticsearchQueryModifierPlugin.d.ts +5 -6
  18. package/plugins/definition/ElasticsearchQueryModifierPlugin.js +1 -2
  19. package/plugins/definition/ElasticsearchSortModifierPlugin.d.ts +5 -6
  20. package/plugins/definition/ElasticsearchSortModifierPlugin.js +1 -2
  21. package/plugins/operator/andIn.js +1 -2
  22. package/plugins/operator/between.js +1 -2
  23. package/plugins/operator/contains.js +1 -2
  24. package/plugins/operator/equal.js +1 -2
  25. package/plugins/operator/gt.js +1 -2
  26. package/plugins/operator/gte.js +1 -2
  27. package/plugins/operator/in.js +1 -2
  28. package/plugins/operator/index.js +1 -2
  29. package/plugins/operator/lt.js +1 -2
  30. package/plugins/operator/lte.js +1 -2
  31. package/plugins/operator/not.js +1 -2
  32. package/plugins/operator/notBetween.js +1 -2
  33. package/plugins/operator/notContains.js +1 -2
  34. package/plugins/operator/notIn.js +1 -2
  35. package/sort.js +1 -2
  36. package/types.js +1 -2
  37. package/where.js +1 -2
  38. package/client.js.map +0 -1
  39. package/compression.js.map +0 -1
  40. package/cursors.js.map +0 -1
  41. package/index.js.map +0 -1
  42. package/limit.js.map +0 -1
  43. package/normalize.js.map +0 -1
  44. package/operators.js.map +0 -1
  45. package/plugins/GzipCompression.js.map +0 -1
  46. package/plugins/definition/CompressionPlugin.js.map +0 -1
  47. package/plugins/definition/ElasticsearchBodyModifierPlugin.js.map +0 -1
  48. package/plugins/definition/ElasticsearchFieldPlugin.js.map +0 -1
  49. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js.map +0 -1
  50. package/plugins/definition/ElasticsearchQueryModifierPlugin.js.map +0 -1
  51. package/plugins/definition/ElasticsearchSortModifierPlugin.js.map +0 -1
  52. package/plugins/operator/andIn.js.map +0 -1
  53. package/plugins/operator/between.js.map +0 -1
  54. package/plugins/operator/contains.js.map +0 -1
  55. package/plugins/operator/equal.js.map +0 -1
  56. package/plugins/operator/gt.js.map +0 -1
  57. package/plugins/operator/gte.js.map +0 -1
  58. package/plugins/operator/in.js.map +0 -1
  59. package/plugins/operator/index.js.map +0 -1
  60. package/plugins/operator/lt.js.map +0 -1
  61. package/plugins/operator/lte.js.map +0 -1
  62. package/plugins/operator/not.js.map +0 -1
  63. package/plugins/operator/notBetween.js.map +0 -1
  64. package/plugins/operator/notContains.js.map +0 -1
  65. package/plugins/operator/notIn.js.map +0 -1
  66. package/sort.js.map +0 -1
  67. package/types.js.map +0 -1
  68. package/where.js.map +0 -1
package/client.js CHANGED
@@ -44,5 +44,4 @@ const createElasticsearchClient = options => {
44
44
  return new _elasticsearch.Client(clientOptions);
45
45
  };
46
46
 
47
- exports.createElasticsearchClient = createElasticsearchClient;
48
- //# sourceMappingURL=client.js.map
47
+ exports.createElasticsearchClient = createElasticsearchClient;
package/compression.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { ContextInterface } from "@webiny/handler/types";
1
+ import { PluginsContainer } from "@webiny/plugins";
2
2
  /**
3
3
  * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.
4
4
  */
5
- export declare const compress: (context: ContextInterface, data: Record<string, any>) => Promise<Record<string, any>>;
6
- export declare const decompress: (context: ContextInterface, data: Record<string, any>) => Promise<Record<string, any>>;
5
+ export declare const compress: (pluginsContainer: PluginsContainer, data: Record<string, any>) => Promise<Record<string, any>>;
6
+ export declare const decompress: (pluginsContainer: PluginsContainer, data: Record<string, any>) => Promise<Record<string, any>>;
package/compression.js CHANGED
@@ -10,18 +10,19 @@ var _CompressionPlugin = require("./plugins/definition/CompressionPlugin");
10
10
  /**
11
11
  * Get the compression plugins, in reverse order, because we want to use the last one added - first.
12
12
  */
13
- const getCompressionPlugins = context => {
14
- return context.plugins.byType(_CompressionPlugin.CompressionPlugin.type).reverse();
13
+ const getCompressionPlugins = plugins => {
14
+ return plugins.byType(_CompressionPlugin.CompressionPlugin.type).reverse();
15
15
  };
16
16
  /**
17
17
  * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.
18
18
  */
19
19
 
20
20
 
21
- const compress = async (context, data) => {
22
- const plugins = getCompressionPlugins(context);
21
+ const compress = async (pluginsContainer, data) => {
22
+ const plugins = getCompressionPlugins(pluginsContainer);
23
23
 
24
24
  if (plugins.length === 0) {
25
+ console.log("No compression plugins");
25
26
  return data;
26
27
  }
27
28
 
@@ -42,8 +43,8 @@ const compress = async (context, data) => {
42
43
 
43
44
  exports.compress = compress;
44
45
 
45
- const decompress = async (context, data) => {
46
- const plugins = getCompressionPlugins(context);
46
+ const decompress = async (pluginsContainer, data) => {
47
+ const plugins = getCompressionPlugins(pluginsContainer);
47
48
 
48
49
  if (plugins.length === 0) {
49
50
  return data;
@@ -64,5 +65,4 @@ const decompress = async (context, data) => {
64
65
  return data;
65
66
  };
66
67
 
67
- exports.decompress = decompress;
68
- //# sourceMappingURL=compression.js.map
68
+ exports.decompress = decompress;
package/cursors.js CHANGED
@@ -46,5 +46,4 @@ const decodeCursor = cursor => {
46
46
  return undefined;
47
47
  };
48
48
 
49
- exports.decodeCursor = decodeCursor;
50
- //# sourceMappingURL=cursors.js.map
49
+ exports.decodeCursor = decodeCursor;
package/index.js CHANGED
@@ -35,5 +35,4 @@ var _default = params => {
35
35
  });
36
36
  };
37
37
 
38
- exports.default = _default;
39
- //# sourceMappingURL=index.js.map
38
+ exports.default = _default;
package/limit.js CHANGED
@@ -42,5 +42,4 @@ const createLimit = (limit, defaultValue = ES_LIMIT_DEFAULT) => {
42
42
  return ES_LIMIT_MAX - 1;
43
43
  };
44
44
 
45
- exports.createLimit = createLimit;
46
- //# sourceMappingURL=limit.js.map
45
+ exports.createLimit = createLimit;
package/normalize.js CHANGED
@@ -24,5 +24,4 @@ const normalizeValue = value => {
24
24
  return result ? `*${result}*` : "";
25
25
  };
26
26
 
27
- exports.normalizeValue = normalizeValue;
28
- //# sourceMappingURL=normalize.js.map
27
+ exports.normalizeValue = normalizeValue;
package/operators.js CHANGED
@@ -39,5 +39,4 @@ const operators = [new _between.ElasticsearchQueryBuilderOperatorBetweenPlugin()
39
39
 
40
40
  const getElasticsearchOperators = () => operators;
41
41
 
42
- exports.getElasticsearchOperators = getElasticsearchOperators;
43
- //# sourceMappingURL=operators.js.map
42
+ exports.getElasticsearchOperators = getElasticsearchOperators;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-elasticsearch",
3
- "version": "5.17.4",
3
+ "version": "5.18.0-beta.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/webiny/webiny-js.git",
@@ -13,18 +13,19 @@
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
15
  "@elastic/elasticsearch": "7.12.0",
16
- "@webiny/error": "5.17.4",
17
- "@webiny/handler": "5.17.4",
18
- "@webiny/plugins": "5.17.4",
16
+ "@webiny/error": "5.18.0-beta.3",
17
+ "@webiny/handler": "5.18.0-beta.3",
18
+ "@webiny/plugins": "5.18.0-beta.3",
19
+ "@webiny/utils": "5.18.0-beta.3",
19
20
  "aws-elasticsearch-connector": "9.0.3",
20
- "aws-sdk": "2.1027.0",
21
+ "aws-sdk": "2.1032.0",
21
22
  "elastic-ts": "0.7.0"
22
23
  },
23
24
  "devDependencies": {
24
25
  "@babel/cli": "^7.5.5",
25
26
  "@babel/core": "^7.5.5",
26
- "@webiny/cli": "^5.17.4",
27
- "@webiny/project-utils": "^5.17.4",
27
+ "@webiny/cli": "^5.18.0-beta.3",
28
+ "@webiny/project-utils": "^5.18.0-beta.3",
28
29
  "rimraf": "^3.0.2",
29
30
  "ttypescript": "^1.5.12",
30
31
  "typescript": "^4.1.3"
@@ -40,10 +41,9 @@
40
41
  "adio": {
41
42
  "ignore": {
42
43
  "src": [
43
- "aws-sdk",
44
- "zlib"
44
+ "aws-sdk"
45
45
  ]
46
46
  }
47
47
  },
48
- "gitHead": "bdfaa377704bf7f51d73561b4c6129f682bf24d2"
48
+ "gitHead": "9c86670476a62348ce391b091bf768e425ab6ee9"
49
49
  }
@@ -1,8 +1,4 @@
1
- /// <reference types="node" />
2
1
  import { CompressionPlugin } from "./definition/CompressionPlugin";
3
- import zlib from "zlib";
4
- export declare const gzip: (input: zlib.InputType, options?: zlib.ZlibOptions) => Promise<Buffer>;
5
- export declare const ungzip: (input: zlib.InputType, options?: zlib.ZlibOptions) => Promise<Buffer>;
6
2
  export interface CompressedData {
7
3
  compression: string;
8
4
  value: string;
@@ -1,43 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.ungzip = exports.gzip = exports.default = void 0;
6
+ exports.default = void 0;
9
7
 
10
8
  var _CompressionPlugin = require("./definition/CompressionPlugin");
11
9
 
12
- var _zlib = _interopRequireDefault(require("zlib"));
13
-
14
- const gzip = (input, options) => {
15
- return new Promise(function (resolve, reject) {
16
- _zlib.default.gzip(input, options, function (error, result) {
17
- if (!error) {
18
- resolve(result);
19
- } else {
20
- reject(error);
21
- }
22
- });
23
- });
24
- };
25
-
26
- exports.gzip = gzip;
27
-
28
- const ungzip = (input, options) => {
29
- return new Promise(function (resolve, reject) {
30
- _zlib.default.gunzip(input, options, function (error, result) {
31
- if (!error) {
32
- resolve(result);
33
- } else {
34
- reject(error);
35
- }
36
- });
37
- });
38
- };
10
+ var _gzip = require("@webiny/utils/compression/gzip");
39
11
 
40
- exports.ungzip = ungzip;
41
12
  const GZIP = "gzip";
42
13
  const TO_STORAGE_ENCODING = "base64";
43
14
  const FROM_STORAGE_ENCODING = "utf8";
@@ -67,7 +38,7 @@ class GzipCompression extends _CompressionPlugin.CompressionPlugin {
67
38
  }
68
39
 
69
40
  async compress(data) {
70
- const value = await gzip(JSON.stringify(data));
41
+ const value = await (0, _gzip.compress)(JSON.stringify(data));
71
42
  return {
72
43
  compression: GZIP,
73
44
  value: value.toString(TO_STORAGE_ENCODING)
@@ -87,7 +58,7 @@ class GzipCompression extends _CompressionPlugin.CompressionPlugin {
87
58
 
88
59
  async decompress(data) {
89
60
  try {
90
- const buf = await ungzip(convertToBuffer(data.value));
61
+ const buf = await (0, _gzip.decompress)(convertToBuffer(data.value));
91
62
  const value = buf.toString(FROM_STORAGE_ENCODING);
92
63
  return JSON.parse(value);
93
64
  } catch (ex) {
@@ -101,5 +72,4 @@ var _default = () => {
101
72
  return new GzipCompression();
102
73
  };
103
74
 
104
- exports.default = _default;
105
- //# sourceMappingURL=GzipCompression.js.map
75
+ exports.default = _default;
@@ -14,5 +14,4 @@ var _plugins = require("@webiny/plugins");
14
14
  class CompressionPlugin extends _plugins.Plugin {}
15
15
 
16
16
  exports.CompressionPlugin = CompressionPlugin;
17
- (0, _defineProperty2.default)(CompressionPlugin, "type", "elasticsearch.compression");
18
- //# sourceMappingURL=CompressionPlugin.js.map
17
+ (0, _defineProperty2.default)(CompressionPlugin, "type", "elasticsearch.compression");
@@ -3,12 +3,11 @@ import { SearchBody } from "elastic-ts";
3
3
  export interface ModifyBodyParams {
4
4
  body: SearchBody;
5
5
  }
6
- interface Callable {
7
- (params: ModifyBodyParams): void;
6
+ export interface ModifyBodyCallable<T extends ModifyBodyParams> {
7
+ (params: T): void;
8
8
  }
9
- export declare abstract class ElasticsearchBodyModifierPlugin extends Plugin {
9
+ export declare abstract class ElasticsearchBodyModifierPlugin<T extends ModifyBodyParams = ModifyBodyParams> extends Plugin {
10
10
  private readonly callable?;
11
- constructor(callable?: Callable);
12
- modifyBody(params: ModifyBodyParams): void;
11
+ constructor(callable?: ModifyBodyCallable<T>);
12
+ modifyBody(params: T): void;
13
13
  }
14
- export {};
@@ -32,5 +32,4 @@ class ElasticsearchBodyModifierPlugin extends _plugins.Plugin {
32
32
 
33
33
  }
34
34
 
35
- exports.ElasticsearchBodyModifierPlugin = ElasticsearchBodyModifierPlugin;
36
- //# sourceMappingURL=ElasticsearchBodyModifierPlugin.js.map
35
+ exports.ElasticsearchBodyModifierPlugin = ElasticsearchBodyModifierPlugin;
@@ -125,5 +125,4 @@ class ElasticsearchFieldPlugin extends _plugins.Plugin {
125
125
 
126
126
  exports.ElasticsearchFieldPlugin = ElasticsearchFieldPlugin;
127
127
  (0, _defineProperty2.default)(ElasticsearchFieldPlugin, "type", "elasticsearch.fieldDefinition");
128
- (0, _defineProperty2.default)(ElasticsearchFieldPlugin, "ALL", "*");
129
- //# sourceMappingURL=ElasticsearchFieldPlugin.js.map
128
+ (0, _defineProperty2.default)(ElasticsearchFieldPlugin, "ALL", "*");
@@ -17,5 +17,4 @@ var _plugins = require("@webiny/plugins");
17
17
  class ElasticsearchQueryBuilderOperatorPlugin extends _plugins.Plugin {}
18
18
 
19
19
  exports.ElasticsearchQueryBuilderOperatorPlugin = ElasticsearchQueryBuilderOperatorPlugin;
20
- (0, _defineProperty2.default)(ElasticsearchQueryBuilderOperatorPlugin, "type", "elasticsearch.queryBuilder.operator");
21
- //# sourceMappingURL=ElasticsearchQueryBuilderOperatorPlugin.js.map
20
+ (0, _defineProperty2.default)(ElasticsearchQueryBuilderOperatorPlugin, "type", "elasticsearch.queryBuilder.operator");
@@ -4,12 +4,11 @@ export interface ModifyQueryParams {
4
4
  query: ElasticsearchBoolQueryConfig;
5
5
  where: Record<string, any>;
6
6
  }
7
- interface Callable {
8
- (params: ModifyQueryParams): void;
7
+ export interface ModifyQueryCallable<T extends ModifyQueryParams> {
8
+ (params: T): void;
9
9
  }
10
- export declare abstract class ElasticsearchQueryModifierPlugin extends Plugin {
10
+ export declare abstract class ElasticsearchQueryModifierPlugin<T extends ModifyQueryParams = ModifyQueryParams> extends Plugin {
11
11
  private readonly callable?;
12
- constructor(callable?: Callable);
13
- modifyQuery(params: ModifyQueryParams): void;
12
+ constructor(callable?: ModifyQueryCallable<T>);
13
+ modifyQuery(params: T): void;
14
14
  }
15
- export {};
@@ -32,5 +32,4 @@ class ElasticsearchQueryModifierPlugin extends _plugins.Plugin {
32
32
 
33
33
  }
34
34
 
35
- exports.ElasticsearchQueryModifierPlugin = ElasticsearchQueryModifierPlugin;
36
- //# sourceMappingURL=ElasticsearchQueryModifierPlugin.js.map
35
+ exports.ElasticsearchQueryModifierPlugin = ElasticsearchQueryModifierPlugin;
@@ -3,12 +3,11 @@ import { Sort } from "elastic-ts";
3
3
  export interface ModifySortParams {
4
4
  sort: Sort;
5
5
  }
6
- interface Callable {
7
- (params: ModifySortParams): void;
6
+ export interface ModifySortCallable<T extends ModifySortParams> {
7
+ (params: T): void;
8
8
  }
9
- export declare abstract class ElasticsearchSortModifierPlugin extends Plugin {
9
+ export declare abstract class ElasticsearchSortModifierPlugin<T extends ModifySortParams = ModifySortParams> extends Plugin {
10
10
  private readonly callable?;
11
- constructor(callable?: Callable);
12
- modifySort(params: ModifySortParams): void;
11
+ constructor(callable?: ModifySortCallable<T>);
12
+ modifySort(params: T): void;
13
13
  }
14
- export {};
@@ -32,5 +32,4 @@ class ElasticsearchSortModifierPlugin extends _plugins.Plugin {
32
32
 
33
33
  }
34
34
 
35
- exports.ElasticsearchSortModifierPlugin = ElasticsearchSortModifierPlugin;
36
- //# sourceMappingURL=ElasticsearchSortModifierPlugin.js.map
35
+ exports.ElasticsearchSortModifierPlugin = ElasticsearchSortModifierPlugin;
@@ -53,5 +53,4 @@ class ElasticsearchQueryBuilderOperatorAndInPlugin extends _ElasticsearchQueryBu
53
53
 
54
54
  }
55
55
 
56
- exports.ElasticsearchQueryBuilderOperatorAndInPlugin = ElasticsearchQueryBuilderOperatorAndInPlugin;
57
- //# sourceMappingURL=andIn.js.map
56
+ exports.ElasticsearchQueryBuilderOperatorAndInPlugin = ElasticsearchQueryBuilderOperatorAndInPlugin;
@@ -48,5 +48,4 @@ class ElasticsearchQueryBuilderOperatorBetweenPlugin extends _ElasticsearchQuery
48
48
 
49
49
  }
50
50
 
51
- exports.ElasticsearchQueryBuilderOperatorBetweenPlugin = ElasticsearchQueryBuilderOperatorBetweenPlugin;
52
- //# sourceMappingURL=between.js.map
51
+ exports.ElasticsearchQueryBuilderOperatorBetweenPlugin = ElasticsearchQueryBuilderOperatorBetweenPlugin;
@@ -40,5 +40,4 @@ class ElasticsearchQueryBuilderOperatorContainsPlugin extends _ElasticsearchQuer
40
40
 
41
41
  }
42
42
 
43
- exports.ElasticsearchQueryBuilderOperatorContainsPlugin = ElasticsearchQueryBuilderOperatorContainsPlugin;
44
- //# sourceMappingURL=contains.js.map
43
+ exports.ElasticsearchQueryBuilderOperatorContainsPlugin = ElasticsearchQueryBuilderOperatorContainsPlugin;
@@ -42,5 +42,4 @@ class ElasticsearchQueryBuilderOperatorEqualPlugin extends _ElasticsearchQueryBu
42
42
 
43
43
  }
44
44
 
45
- exports.ElasticsearchQueryBuilderOperatorEqualPlugin = ElasticsearchQueryBuilderOperatorEqualPlugin;
46
- //# sourceMappingURL=equal.js.map
45
+ exports.ElasticsearchQueryBuilderOperatorEqualPlugin = ElasticsearchQueryBuilderOperatorEqualPlugin;
@@ -37,5 +37,4 @@ class ElasticsearchQueryBuilderOperatorGreaterThanPlugin extends _ElasticsearchQ
37
37
 
38
38
  }
39
39
 
40
- exports.ElasticsearchQueryBuilderOperatorGreaterThanPlugin = ElasticsearchQueryBuilderOperatorGreaterThanPlugin;
41
- //# sourceMappingURL=gt.js.map
40
+ exports.ElasticsearchQueryBuilderOperatorGreaterThanPlugin = ElasticsearchQueryBuilderOperatorGreaterThanPlugin;
@@ -37,5 +37,4 @@ class ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin extends _Elast
37
37
 
38
38
  }
39
39
 
40
- exports.ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin = ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin;
41
- //# sourceMappingURL=gte.js.map
40
+ exports.ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin = ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin;
@@ -51,5 +51,4 @@ class ElasticsearchQueryBuilderOperatorInPlugin extends _ElasticsearchQueryBuild
51
51
 
52
52
  }
53
53
 
54
- exports.ElasticsearchQueryBuilderOperatorInPlugin = ElasticsearchQueryBuilderOperatorInPlugin;
55
- //# sourceMappingURL=in.js.map
54
+ exports.ElasticsearchQueryBuilderOperatorInPlugin = ElasticsearchQueryBuilderOperatorInPlugin;
@@ -171,5 +171,4 @@ Object.keys(_notIn).forEach(function (key) {
171
171
  return _notIn[key];
172
172
  }
173
173
  });
174
- });
175
- //# sourceMappingURL=index.js.map
174
+ });
@@ -37,5 +37,4 @@ class ElasticsearchQueryBuilderOperatorLesserThanPlugin extends _ElasticsearchQu
37
37
 
38
38
  }
39
39
 
40
- exports.ElasticsearchQueryBuilderOperatorLesserThanPlugin = ElasticsearchQueryBuilderOperatorLesserThanPlugin;
41
- //# sourceMappingURL=lt.js.map
40
+ exports.ElasticsearchQueryBuilderOperatorLesserThanPlugin = ElasticsearchQueryBuilderOperatorLesserThanPlugin;
@@ -37,5 +37,4 @@ class ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin extends _Elasti
37
37
 
38
38
  }
39
39
 
40
- exports.ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin = ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin;
41
- //# sourceMappingURL=lte.js.map
40
+ exports.ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin = ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin;
@@ -37,5 +37,4 @@ class ElasticsearchQueryBuilderOperatorNotPlugin extends _ElasticsearchQueryBuil
37
37
 
38
38
  }
39
39
 
40
- exports.ElasticsearchQueryBuilderOperatorNotPlugin = ElasticsearchQueryBuilderOperatorNotPlugin;
41
- //# sourceMappingURL=not.js.map
40
+ exports.ElasticsearchQueryBuilderOperatorNotPlugin = ElasticsearchQueryBuilderOperatorNotPlugin;
@@ -48,5 +48,4 @@ class ElasticsearchQueryBuilderOperatorNotBetweenPlugin extends _ElasticsearchQu
48
48
 
49
49
  }
50
50
 
51
- exports.ElasticsearchQueryBuilderOperatorNotBetweenPlugin = ElasticsearchQueryBuilderOperatorNotBetweenPlugin;
52
- //# sourceMappingURL=notBetween.js.map
51
+ exports.ElasticsearchQueryBuilderOperatorNotBetweenPlugin = ElasticsearchQueryBuilderOperatorNotBetweenPlugin;
@@ -40,5 +40,4 @@ class ElasticsearchQueryBuilderOperatorNotContainsPlugin extends _ElasticsearchQ
40
40
 
41
41
  }
42
42
 
43
- exports.ElasticsearchQueryBuilderOperatorNotContainsPlugin = ElasticsearchQueryBuilderOperatorNotContainsPlugin;
44
- //# sourceMappingURL=notContains.js.map
43
+ exports.ElasticsearchQueryBuilderOperatorNotContainsPlugin = ElasticsearchQueryBuilderOperatorNotContainsPlugin;
@@ -43,5 +43,4 @@ class ElasticsearchQueryBuilderOperatorNotInPlugin extends _ElasticsearchQueryBu
43
43
 
44
44
  }
45
45
 
46
- exports.ElasticsearchQueryBuilderOperatorNotInPlugin = ElasticsearchQueryBuilderOperatorNotInPlugin;
47
- //# sourceMappingURL=notIn.js.map
46
+ exports.ElasticsearchQueryBuilderOperatorNotInPlugin = ElasticsearchQueryBuilderOperatorNotInPlugin;
package/sort.js CHANGED
@@ -64,5 +64,4 @@ const createSort = params => {
64
64
  }, {});
65
65
  };
66
66
 
67
- exports.createSort = createSort;
68
- //# sourceMappingURL=sort.js.map
67
+ exports.createSort = createSort;
package/types.js CHANGED
@@ -15,5 +15,4 @@ Object.keys(_elasticTs).forEach(function (key) {
15
15
  return _elasticTs[key];
16
16
  }
17
17
  });
18
- });
19
- //# sourceMappingURL=types.js.map
18
+ });
package/where.js CHANGED
@@ -103,5 +103,4 @@ const applyWhere = params => {
103
103
  }
104
104
  };
105
105
 
106
- exports.applyWhere = applyWhere;
107
- //# sourceMappingURL=where.js.map
106
+ exports.applyWhere = applyWhere;
package/client.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client.ts"],"names":["createElasticsearchClient","options","endpoint","node","rest","clientOptions","auth","Object","assign","AWS","config","Client"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;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,SAAO,IAAIC,qBAAJ,CAAWN,aAAX,CAAP;AACH,CAhBM","sourcesContent":["import { Client, ClientOptions } from \"@elastic/elasticsearch\";\nimport AWS from \"aws-sdk\";\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 return new Client(clientOptions);\n};\n"],"file":"client.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/compression.ts"],"names":["getCompressionPlugins","context","plugins","byType","CompressionPlugin","type","reverse","compress","data","length","plugin","canCompress","decompress","canDecompress"],"mappings":";;;;;;;AACA;;AAEA;AACA;AACA;AACA,MAAMA,qBAAqB,GAAIC,OAAD,IAAoD;AAC9E,SAAOA,OAAO,CAACC,OAAR,CAAgBC,MAAhB,CAA0CC,qCAAkBC,IAA5D,EAAkEC,OAAlE,EAAP;AACH,CAFD;AAGA;AACA;AACA;;;AACO,MAAMC,QAAQ,GAAG,OACpBN,OADoB,EAEpBO,IAFoB,KAGW;AAC/B,QAAMN,OAAO,GAAGF,qBAAqB,CAACC,OAAD,CAArC;;AACA,MAAIC,OAAO,CAACO,MAAR,KAAmB,CAAvB,EAA0B;AACtB,WAAOD,IAAP;AACH;;AACD,OAAK,MAAME,MAAX,IAAqBR,OAArB,EAA8B;AAC1B,QAAIQ,MAAM,CAACC,WAAP,CAAmBH,IAAnB,MAA6B,KAAjC,EAAwC;AACpC;AACH;;AACD,WAAO,MAAME,MAAM,CAACH,QAAP,CAAgBC,IAAhB,CAAb;AACH;AACD;AACJ;AACA;;;AACI,SAAOA,IAAP;AACH,CAlBM;;;;AAoBA,MAAMI,UAAU,GAAG,OACtBX,OADsB,EAEtBO,IAFsB,KAGS;AAC/B,QAAMN,OAAO,GAAGF,qBAAqB,CAACC,OAAD,CAArC;;AACA,MAAIC,OAAO,CAACO,MAAR,KAAmB,CAAvB,EAA0B;AACtB,WAAOD,IAAP;AACH;;AACD,OAAK,MAAME,MAAX,IAAqBR,OAArB,EAA8B;AAC1B,QAAIQ,MAAM,CAACG,aAAP,CAAqBL,IAArB,MAA+B,KAAnC,EAA0C;AACtC;AACH;;AACD,WAAO,MAAME,MAAM,CAACE,UAAP,CAAkBJ,IAAlB,CAAb;AACH;AACD;AACJ;AACA;;;AACI,SAAOA,IAAP;AACH,CAlBM","sourcesContent":["import { ContextInterface } from \"@webiny/handler/types\";\nimport { CompressionPlugin } from \"~/plugins/definition/CompressionPlugin\";\n\n/**\n * Get the compression plugins, in reverse order, because we want to use the last one added - first.\n */\nconst getCompressionPlugins = (context: ContextInterface): CompressionPlugin[] => {\n return context.plugins.byType<CompressionPlugin>(CompressionPlugin.type).reverse();\n};\n/**\n * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.\n */\nexport const compress = async (\n context: ContextInterface,\n data: Record<string, any>\n): Promise<Record<string, any>> => {\n const plugins = getCompressionPlugins(context);\n if (plugins.length === 0) {\n return data;\n }\n for (const plugin of plugins) {\n if (plugin.canCompress(data) === false) {\n continue;\n }\n return await plugin.compress(data);\n }\n /**\n * Possibly no plugins that can compress, just return the data.\n */\n return data;\n};\n\nexport const decompress = async (\n context: ContextInterface,\n data: Record<string, any>\n): Promise<Record<string, any>> => {\n const plugins = getCompressionPlugins(context);\n if (plugins.length === 0) {\n return data;\n }\n for (const plugin of plugins) {\n if (plugin.canDecompress(data) === false) {\n continue;\n }\n return await plugin.decompress(data);\n }\n /**\n * Possibly no plugins that can decompress, just return the data.\n */\n return data;\n};\n"],"file":"compression.js"}
package/cursors.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cursors.ts"],"names":["encodeCursor","cursor","undefined","Array","isArray","map","encodeURIComponent","Buffer","from","JSON","stringify","toString","ex","console","error","message","decodeCursor","value","parse","decodeURIComponent"],"mappings":";;;;;;;AAAA;AACA;AACA;AACO,MAAMA,YAAY,GAAIC,MAAD,IAAoD;AAC5E,MAAI,CAACA,MAAL,EAAa;AACT,WAAOC,SAAP;AACH;;AAEDD,EAAAA,MAAM,GAAGE,KAAK,CAACC,OAAN,CAAcH,MAAd,IAAwBA,MAAM,CAACI,GAAP,CAAWC,kBAAX,CAAxB,GAAyDA,kBAAkB,CAACL,MAAD,CAApF;;AAEA,MAAI;AACA,WAAOM,MAAM,CAACC,IAAP,CAAYC,IAAI,CAACC,SAAL,CAAeT,MAAf,CAAZ,EAAoCU,QAApC,CAA6C,QAA7C,CAAP;AACH,GAFD,CAEE,OAAOC,EAAP,EAAW;AACTC,IAAAA,OAAO,CAACC,KAAR,CAAcF,EAAE,CAACG,OAAjB;AACH;;AACD,SAAOb,SAAP;AACH,CAbM;AAcP;AACA;AACA;AACA;;;;;AACO,MAAMc,YAAY,GAAIf,MAAD,IAAoD;AAC5E,MAAI,CAACA,MAAL,EAAa;AACT,WAAOC,SAAP;AACH;;AACD,MAAI;AACA,UAAMe,KAAK,GAAGR,IAAI,CAACS,KAAL,CAAWX,MAAM,CAACC,IAAP,CAAYP,MAAZ,EAAoB,QAApB,EAA8BU,QAA9B,CAAuC,OAAvC,CAAX,CAAd;AAEA,WAAOR,KAAK,CAACC,OAAN,CAAca,KAAd,IAAuBA,KAAK,CAACZ,GAAN,CAAUc,kBAAV,CAAvB,GAAuDA,kBAAkB,CAACF,KAAD,CAAhF;AACH,GAJD,CAIE,OAAOL,EAAP,EAAW;AACTC,IAAAA,OAAO,CAACC,KAAR,CAAcF,EAAE,CAACG,OAAjB;AACH;;AACD,SAAOb,SAAP;AACH,CAZM","sourcesContent":["/**\n * Encode a received cursor value into something that can be passed on to the user.\n */\nexport const encodeCursor = (cursor?: string | string[]): string | undefined => {\n if (!cursor) {\n return undefined;\n }\n\n cursor = Array.isArray(cursor) ? cursor.map(encodeURIComponent) : encodeURIComponent(cursor);\n\n try {\n return Buffer.from(JSON.stringify(cursor)).toString(\"base64\");\n } catch (ex) {\n console.error(ex.message);\n }\n return undefined;\n};\n/**\n * Decode a received value into a Elasticsearch cursor.\n * If no value is received or is not decodable, return undefined.\n */\nexport const decodeCursor = (cursor?: string): string[] | string | undefined => {\n if (!cursor) {\n return undefined;\n }\n try {\n const value = JSON.parse(Buffer.from(cursor, \"base64\").toString(\"ascii\"));\n\n return Array.isArray(value) ? value.map(decodeURIComponent) : decodeURIComponent(value);\n } catch (ex) {\n console.error(ex.message);\n }\n return undefined;\n};\n"],"file":"cursors.js"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["params","ContextPlugin","context","elasticsearch","WebinyError","Client","plugins","register"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;AACA;AACA;eAEIA,MADW,IAE2B;AACtC,SAAO,IAAIC,4BAAJ,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 { ElasticsearchContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport WebinyError from \"@webiny/error\";\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"],"file":"index.js"}
package/limit.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/limit.ts"],"names":["ES_LIMIT_MAX","ES_LIMIT_DEFAULT","createLimit","limit","defaultValue"],"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;AACpF;AACJ;AACA;AACA;AACI,MAAI,CAACE,KAAD,IAAUA,KAAK,GAAG,CAAtB,EAAyB;AACrB,WAAOC,YAAP;AACH;AACD;AACJ;AACA;AACA;;;AACI,MAAID,KAAK,GAAGH,YAAZ,EAA0B;AACtB,WAAOG,KAAP;AACH;AACD;AACJ;AACA;AACA;;;AACI,SAAOH,YAAY,GAAG,CAAtB;AACH,CApBM","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"],"file":"limit.js"}
package/normalize.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/normalize.ts"],"names":["RESERVED_CHARACTERS","escape","normalizeValue","value","result","character","replace","RegExp"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA,MAAMA,mBAAmB,GAAG;AACxB;AACAC,EAAAA,MAAM,EAAE,CACJ,MADI,EAEJ,KAFI,EAGJ,KAHI,EAIJ,KAJI,EAKJ,KALI,EAMJ,QANI,EAOJ,QAPI,EAQJ,KARI,EASJ,KATI,EAUJ,KAVI,EAWJ,KAXI,EAYJ,KAZI,EAaJ,KAbI,EAcJ,KAdI,EAeJ,KAfI,EAgBJ,KAhBI,EAiBJ,KAjBI,EAkBJ,KAlBI,EAmBJ,KAnBI,EAoBJ,KApBI,EAqBJ,KArBI,EAsBJ,KAtBI;AAFgB,CAA5B;;AA4BO,MAAMC,cAAc,GAAIC,KAAD,IAAmB;AAC7C,MAAIC,MAAM,GAAGD,KAAb;;AACA,OAAK,MAAME,SAAX,IAAwBL,mBAAmB,CAACC,MAA5C,EAAoD;AAChDG,IAAAA,MAAM,GAAGA,MAAM,CAACE,OAAP,CAAe,IAAIC,MAAJ,CAAY,GAAEF,SAAU,EAAxB,EAA2B,GAA3B,CAAf,EAAiD,GAAjD,CAAT;AACH;;AAED,SAAOD,MAAM,GAAI,IAAGA,MAAO,GAAd,GAAmB,EAAhC;AACH,CAPM","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 RESERVED_CHARACTERS = {\n // These characters need to be escaped with backslash (\"\\\").\n escape: [\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 RESERVED_CHARACTERS.escape) {\n result = result.replace(new RegExp(`${character}`, \"g\"), ` `);\n }\n\n return result ? `*${result}*` : \"\";\n};\n"],"file":"normalize.js"}
package/operators.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/operators.ts"],"names":["operators","ElasticsearchQueryBuilderOperatorBetweenPlugin","ElasticsearchQueryBuilderOperatorNotBetweenPlugin","ElasticsearchQueryBuilderOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorNotContainsPlugin","ElasticsearchQueryBuilderOperatorEqualPlugin","ElasticsearchQueryBuilderOperatorNotPlugin","ElasticsearchQueryBuilderOperatorGreaterThanPlugin","ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorLesserThanPlugin","ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorInPlugin","ElasticsearchQueryBuilderOperatorAndInPlugin","ElasticsearchQueryBuilderOperatorNotInPlugin","getElasticsearchOperators"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAMA,SAAS,GAAG,CACd,IAAIC,uDAAJ,EADc,EAEd,IAAIC,6DAAJ,EAFc,EAGd,IAAIC,yDAAJ,EAHc,EAId,IAAIC,+DAAJ,EAJc,EAKd,IAAIC,mDAAJ,EALc,EAMd,IAAIC,+CAAJ,EANc,EAOd,IAAIC,sDAAJ,EAPc,EAQd,IAAIC,gEAAJ,EARc,EASd,IAAIC,qDAAJ,EATc,EAUd,IAAIC,+DAAJ,EAVc,EAWd,IAAIC,6CAAJ,EAXc,EAYd,IAAIC,mDAAJ,EAZc,EAad,IAAIC,mDAAJ,EAbc,CAAlB;AAeA;AACA;AACA;AACA;;AACO,MAAMC,yBAAyB,GAAG,MAAMd,SAAxC","sourcesContent":["import { ElasticsearchQueryBuilderOperatorBetweenPlugin } from \"~/plugins/operator/between\";\nimport { ElasticsearchQueryBuilderOperatorNotBetweenPlugin } from \"~/plugins/operator/notBetween\";\nimport { ElasticsearchQueryBuilderOperatorContainsPlugin } from \"~/plugins/operator/contains\";\nimport { ElasticsearchQueryBuilderOperatorNotContainsPlugin } from \"~/plugins/operator/notContains\";\nimport { ElasticsearchQueryBuilderOperatorEqualPlugin } from \"~/plugins/operator/equal\";\nimport { ElasticsearchQueryBuilderOperatorNotPlugin } from \"~/plugins/operator/not\";\nimport { ElasticsearchQueryBuilderOperatorGreaterThanPlugin } from \"~/plugins/operator/gt\";\nimport { ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin } from \"~/plugins/operator/gte\";\nimport { ElasticsearchQueryBuilderOperatorLesserThanPlugin } from \"~/plugins/operator/lt\";\nimport { ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin } from \"~/plugins/operator/lte\";\nimport { ElasticsearchQueryBuilderOperatorInPlugin } from \"~/plugins/operator/in\";\nimport { ElasticsearchQueryBuilderOperatorAndInPlugin } from \"~/plugins/operator/andIn\";\nimport { ElasticsearchQueryBuilderOperatorNotInPlugin } from \"~/plugins/operator/notIn\";\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];\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"],"file":"operators.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/GzipCompression.ts"],"names":["gzip","input","options","Promise","resolve","reject","zlib","error","result","ungzip","gunzip","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","GzipCompression","CompressionPlugin","canCompress","data","compression","console","log","compress","JSON","stringify","toString","canDecompress","decompress","buf","parse","ex"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,MAAMA,IAAI,GAAG,CAACC,KAAD,EAAwBC,OAAxB,KAAwE;AACxF,SAAO,IAAIC,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;AAC1CC,kBAAKN,IAAL,CAAUC,KAAV,EAAiBC,OAAjB,EAA0B,UAAUK,KAAV,EAAiBC,MAAjB,EAAyB;AAC/C,UAAI,CAACD,KAAL,EAAY;AACRH,QAAAA,OAAO,CAACI,MAAD,CAAP;AACH,OAFD,MAEO;AACHH,QAAAA,MAAM,CAACE,KAAD,CAAN;AACH;AACJ,KAND;AAOH,GARM,CAAP;AASH,CAVM;;;;AAWA,MAAME,MAAM,GAAG,CAACR,KAAD,EAAwBC,OAAxB,KAAwE;AAC1F,SAAO,IAAIC,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;AAC1CC,kBAAKI,MAAL,CAAYT,KAAZ,EAAmBC,OAAnB,EAA4B,UAAUK,KAAV,EAAiBC,MAAjB,EAAyB;AACjD,UAAI,CAACD,KAAL,EAAY;AACRH,QAAAA,OAAO,CAACI,MAAD,CAAP;AACH,OAFD,MAEO;AACHH,QAAAA,MAAM,CAACE,KAAD,CAAN;AACH;AACJ,KAND;AAOH,GARM,CAAP;AASH,CAVM;;;AAYP,MAAMI,IAAI,GAAG,MAAb;AACA,MAAMC,mBAAmB,GAAG,QAA5B;AACA,MAAMC,qBAAqB,GAAG,MAA9B;;AAEA,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAC7B,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC3B,WAAOC,MAAM,CAACC,IAAP,CAAYF,KAAZ,EAAmBH,mBAAnB,CAAP;AACH;;AACD,SAAOG,KAAP;AACH,CALD;;AAgBA,MAAMG,eAAN,SAA8BC,oCAA9B,CAAgD;AACrCC,EAAAA,WAAW,CAACC,IAAD,EAAqB;AACnC;AACR;AACA;AACQ,QAAIA,IAAI,CAACC,WAAT,EAAsB;AAClB,UAAID,IAAI,CAACC,WAAL,KAAqB,MAAzB,EAAiC;AAC7BC,QAAAA,OAAO,CAACC,GAAR,CAAa,oCAAmCH,IAAI,CAACC,WAAY,IAAjE;AACH;;AACD,aAAO,KAAP;AACH;;AACD,WAAO,IAAP;AACH;;AACoB,QAARG,QAAQ,CAACJ,IAAD,EAAO;AACxB,UAAMN,KAAK,GAAG,MAAMf,IAAI,CAAC0B,IAAI,CAACC,SAAL,CAAeN,IAAf,CAAD,CAAxB;AAEA,WAAO;AACHC,MAAAA,WAAW,EAAEX,IADV;AAEHI,MAAAA,KAAK,EAAEA,KAAK,CAACa,QAAN,CAAehB,mBAAf;AAFJ,KAAP;AAIH;;AAEMiB,EAAAA,aAAa,CAACR,IAAD,EAAsD;AACtE,QAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,WAAnB,EAAgC;AAC5B,aAAO,KAAP;AACH,KAFD,MAEO,IAAID,IAAI,CAACC,WAAL,KAAqBX,IAAzB,EAA+B;AAClCY,MAAAA,OAAO,CAACC,GAAR,CACK,iEAAgEb,IAAK,aAAYU,IAAI,CAACC,WAAY,IADvG;AAGA,aAAO,KAAP;AACH;;AACD,WAAO,IAAP;AACH;;AAEsB,QAAVQ,UAAU,CAACT,IAAD,EAAqD;AACxE,QAAI;AACA,YAAMU,GAAG,GAAG,MAAMtB,MAAM,CAACK,eAAe,CAACO,IAAI,CAACN,KAAN,CAAhB,CAAxB;AACA,YAAMA,KAAK,GAAGgB,GAAG,CAACH,QAAJ,CAAaf,qBAAb,CAAd;AACA,aAAOa,IAAI,CAACM,KAAL,CAAWjB,KAAX,CAAP;AACH,KAJD,CAIE,OAAOkB,EAAP,EAAW;AACT,aAAO,IAAP;AACH;AACJ;;AA1C2C;;eA6CjC,MAAM;AACjB,SAAO,IAAIf,eAAJ,EAAP;AACH,C","sourcesContent":["import { CompressionPlugin } from \"~/plugins/definition/CompressionPlugin\";\nimport zlib from \"zlib\";\n\nexport const gzip = (input: zlib.InputType, options?: zlib.ZlibOptions): Promise<Buffer> => {\n return new Promise(function (resolve, reject) {\n zlib.gzip(input, options, function (error, result) {\n if (!error) {\n resolve(result);\n } else {\n reject(error);\n }\n });\n });\n};\nexport const ungzip = (input: zlib.InputType, options?: zlib.ZlibOptions): Promise<Buffer> => {\n return new Promise(function (resolve, reject) {\n zlib.gunzip(input, options, function (error, result) {\n if (!error) {\n resolve(result);\n } else {\n reject(error);\n }\n });\n });\n};\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = value => {\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) {\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 default () => {\n return new GzipCompression();\n};\n"],"file":"GzipCompression.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/definition/CompressionPlugin.ts"],"names":["CompressionPlugin","Plugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAeA,iBAAf,SAAyCC,eAAzC,CAAgD;;;8BAAjCD,iB,UACY,2B","sourcesContent":["import { Plugin } from \"@webiny/plugins\";\n\nexport abstract class CompressionPlugin extends Plugin {\n public static readonly type = \"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"],"file":"CompressionPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/definition/ElasticsearchBodyModifierPlugin.ts"],"names":["ElasticsearchBodyModifierPlugin","Plugin","constructor","callable","modifyBody","params","WebinyError"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAWO,MAAeA,+BAAf,SAAuDC,eAAvD,CAA8D;AAG1DC,EAAAA,WAAW,CAACC,QAAD,EAAsB;AACpC;AADoC;AAEpC,SAAKA,QAAL,GAAgBA,QAAhB;AACH;;AAEMC,EAAAA,UAAU,CAACC,MAAD,EAAiC;AAC9C,QAAI,OAAO,KAAKF,QAAZ,KAAyB,UAA7B,EAAyC;AACrC,YAAM,IAAIG,cAAJ,CACD,oCADC,EAEF,2BAFE,EAGF;AACID,QAAAA;AADJ,OAHE,CAAN;AAOH;;AACD,SAAKF,QAAL,CAAcE,MAAd;AACH;;AAnBgE","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Plugin } from \"@webiny/plugins\";\nimport { SearchBody } from \"elastic-ts\";\n\nexport interface ModifyBodyParams {\n body: SearchBody;\n}\n\ninterface Callable {\n (params: ModifyBodyParams): void;\n}\n\nexport abstract class ElasticsearchBodyModifierPlugin extends Plugin {\n private readonly callable?: Callable;\n\n public constructor(callable?: Callable) {\n super();\n this.callable = callable;\n }\n\n public modifyBody(params: ModifyBodyParams): void {\n if (typeof this.callable !== \"function\") {\n throw new WebinyError(\n `Missing modification for the body.`,\n \"BODY_MODIFICATION_MISSING\",\n {\n params\n }\n );\n }\n this.callable(params);\n }\n}\n"],"file":"ElasticsearchBodyModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/definition/ElasticsearchFieldPlugin.ts"],"names":["keywordLessUnmappedType","unmappedTypeHasKeyword","type","includes","ElasticsearchFieldPlugin","Plugin","field","_field","path","_path","keyword","_keyword","unmappedType","_unmappedType","sortable","_sortable","searchable","_searchable","constructor","params","undefined","getSortOptions","order","options","unmapped_type","getPath","getBasePath","ALL","toSearchValue","value"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAKA,MAAMA,uBAAuB,GAAG,CAAC,MAAD,EAAS,MAAT,CAAhC;;AAEA,MAAMC,sBAAsB,GAAIC,IAAD,IAA2B;AACtD,MAAIF,uBAAuB,CAACG,QAAxB,CAAiCD,IAAjC,CAAJ,EAA4C;AACxC,WAAO,KAAP;AACH;;AACD,SAAO,IAAP;AACH,CALD;;AAuDO,MAAeE,wBAAf,SAAgDC,eAAhD,CAAuD;AAW1C,MAALC,KAAK,GAAW;AACvB,WAAO,KAAKC,MAAZ;AACH;;AAEc,MAAJC,IAAI,GAAW;AACtB,WAAO,KAAKC,KAAZ;AACH;;AAEiB,MAAPC,OAAO,GAAY;AAC1B,WAAO,KAAKC,QAAZ;AACH;;AAEsB,MAAZC,YAAY,GAAuB;AAC1C,WAAO,KAAKC,aAAZ;AACH;;AAEkB,MAARC,QAAQ,GAAY;AAC3B,WAAO,KAAKC,SAAZ;AACH;;AAEoB,MAAVC,UAAU,GAAY;AAC7B,WAAO,KAAKC,WAAZ;AACH;;AAEDC,EAAAA,WAAW,CAACC,MAAD,EAAiB;AACxB;AADwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAExB,SAAKZ,MAAL,GAAcY,MAAM,CAACb,KAArB;AACA,SAAKG,KAAL,GAAaU,MAAM,CAACX,IAAP,IAAeW,MAAM,CAACb,KAAnC;AACA,SAAKK,QAAL,GAAgBQ,MAAM,CAACT,OAAP,KAAmBU,SAAnB,GAA+B,IAA/B,GAAsCD,MAAM,CAACT,OAA7D;AACA,SAAKG,aAAL,GAAqBM,MAAM,CAACP,YAA5B;;AACA,QAAIX,sBAAsB,CAACkB,MAAM,CAACP,YAAR,CAAtB,KAAgD,KAApD,EAA2D;AACvD,WAAKD,QAAL,GAAgB,KAAhB;AACH;;AACD,SAAKI,SAAL,GAAiBI,MAAM,CAACL,QAAP,KAAoBM,SAApB,GAAgC,IAAhC,GAAuCD,MAAM,CAACL,QAA/D;AACA,SAAKG,WAAL,GAAmBE,MAAM,CAACH,UAAP,KAAsBI,SAAtB,GAAkC,IAAlC,GAAyCD,MAAM,CAACH,UAAnE;AACH;AACD;AACJ;AACA;;;AACWK,EAAAA,cAAc,CAACC,KAAD,EAAqC;AACtD,UAAMC,OAAO,GAAG;AACZD,MAAAA;AADY,KAAhB;;AAGA,QAAI,CAAC,KAAKT,aAAV,EAAyB;AACrB,aAAOU,OAAP;AACH;;AACD,2CACOA,OADP;AAEIC,MAAAA,aAAa,EAAE,KAAKX;AAFxB;AAIH;AACD;AACJ;AACA;AACA;;;AACWY,EAAAA,OAAO,CAACnB,KAAD,EAAwB;AAClC,WAAQ,GAAE,KAAKoB,WAAL,CAAiBpB,KAAjB,CAAwB,GAAE,KAAKK,QAAL,GAAgB,UAAhB,GAA6B,EAAG,EAApE;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACWe,EAAAA,WAAW,CAACpB,KAAD,EAAwB;AACtC,QAAI,KAAKG,KAAL,KAAgB,KAAKS,WAAN,CAA0BS,GAA7C,EAAkD;AAC9C,aAAOrB,KAAP;AACH;;AACD,WAAO,KAAKG,KAAZ;AACH;AACD;AACJ;AACA;AACA;;;AACWmB,EAAAA,aAAa,CAACT,MAAD,EAAmC;AACnD,WAAOA,MAAM,CAACU,KAAd;AACH;;AAtFyD;;;8BAAxCzB,wB,UACoB,+B;8BADpBA,wB,SAEmB,G","sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { FieldSortOptions, SortOrder } from \"elastic-ts\";\n\nexport type UnmappedTypes = \"date\" | \"long\" | string;\n\nconst keywordLessUnmappedType = [\"date\", \"long\"];\n\nconst unmappedTypeHasKeyword = (type: string): boolean => {\n if (keywordLessUnmappedType.includes(type)) {\n return false;\n }\n return true;\n};\n\nexport interface ToSearchValueParams {\n /**\n * The value to transform.\n */\n value: any;\n /**\n * When using toSearchValue() in our code we send a field.getPath() value here.\n */\n path: string;\n /**\n * When using toSearchValue() in our code we send a field.getBasePath() value here.\n */\n basePath: string;\n}\nexport interface Params {\n /**\n * Which field is this plugin for.\n */\n field: string;\n /**\n * Some specific path of a field?\n * Example: createdBy is createdBy.id\n */\n path?: string;\n /**\n * Add a .keyword at the end of the field path?\n */\n keyword?: boolean;\n /**\n * Is the field of a specific type, but possibly not mapped?\n * Happens when inserting a date in string format.\n * You need to cast it as date when running the search/sort to work correctly.\n */\n unmappedType?: UnmappedTypes;\n /**\n * Is the field sortable?\n */\n sortable?: boolean;\n /**\n * Is the field searchable?\n */\n searchable?: boolean;\n /**\n * Used to transform the input value for the search.\n */\n toSearchValue?: (params: ToSearchValueParams) => any;\n}\n\nexport abstract class ElasticsearchFieldPlugin extends Plugin {\n public static readonly type: string = \"elasticsearch.fieldDefinition\";\n public static readonly ALL: string = \"*\";\n\n private readonly _field: string;\n private readonly _path: string;\n private readonly _keyword: boolean;\n private readonly _unmappedType: string;\n private readonly _sortable: boolean;\n private readonly _searchable: boolean;\n\n public get field(): string {\n return this._field;\n }\n\n public get path(): string {\n return this._path;\n }\n\n public get keyword(): boolean {\n return this._keyword;\n }\n\n public get unmappedType(): string | undefined {\n return this._unmappedType;\n }\n\n public get sortable(): boolean {\n return this._sortable;\n }\n\n public get searchable(): boolean {\n return this._searchable;\n }\n\n constructor(params: Params) {\n super();\n this._field = params.field;\n this._path = params.path || params.field;\n this._keyword = params.keyword === undefined ? true : params.keyword;\n this._unmappedType = params.unmappedType;\n if (unmappedTypeHasKeyword(params.unmappedType) === false) {\n this._keyword = false;\n }\n this._sortable = params.sortable === undefined ? true : params.sortable;\n this._searchable = params.searchable === undefined ? true : params.searchable;\n }\n /**\n * The default sort options. Extend in your own plugin if you want to add more options.\n */\n public getSortOptions(order: SortOrder): FieldSortOptions {\n const options = {\n order\n };\n if (!this._unmappedType) {\n return options;\n }\n return {\n ...options,\n unmapped_type: this._unmappedType\n };\n }\n /**\n * The default path generator. Extend in your own plugin if you want to add more options.\n * Field parameter is here because there is a possibility that this is the ALL field plugin, so we need to know which field are we working on.\n */\n public getPath(field: string): string {\n return `${this.getBasePath(field)}${this._keyword ? \".keyword\" : \"\"}`;\n }\n /**\n * @see getPath\n *\n * This is the default base path generator. Basically it replaces ALL with given field name.\n */\n public getBasePath(field: string): string {\n if (this._path === (this.constructor as any).ALL) {\n return field;\n }\n return this._path;\n }\n /**\n * The default transformer. Just returns the value by default.\n * Override to implement what ever is required.\n */\n public toSearchValue(params: ToSearchValueParams): any {\n return params.value;\n }\n}\n"],"file":"ElasticsearchFieldPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.ts"],"names":["ElasticsearchQueryBuilderOperatorPlugin","Plugin"],"mappings":";;;;;;;;;;;AAAA;;AAGA;AACA;AACA;AACO,MAAeA,uCAAf,SAA+DC,eAA/D,CAAsE;;;8BAAvDD,uC,UACY,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 readonly type = \"elasticsearch.queryBuilder.operator\";\n\n public abstract getOperator(): string;\n\n public abstract apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void;\n}\n"],"file":"ElasticsearchQueryBuilderOperatorPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/definition/ElasticsearchQueryModifierPlugin.ts"],"names":["ElasticsearchQueryModifierPlugin","Plugin","constructor","callable","modifyQuery","params","WebinyError"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAYO,MAAeA,gCAAf,SAAwDC,eAAxD,CAA+D;AAG3DC,EAAAA,WAAW,CAACC,QAAD,EAAsB;AACpC;AADoC;AAEpC,SAAKA,QAAL,GAAgBA,QAAhB;AACH;;AAEMC,EAAAA,WAAW,CAACC,MAAD,EAAkC;AAChD,QAAI,OAAO,KAAKF,QAAZ,KAAyB,UAA7B,EAAyC;AACrC,YAAM,IAAIG,cAAJ,CACD,qCADC,EAEF,4BAFE,EAGF;AACID,QAAAA;AADJ,OAHE,CAAN;AAOH;;AACD,SAAKF,QAAL,CAAcE,MAAd;AACH;;AAnBiE","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Plugin } from \"@webiny/plugins\";\nimport { ElasticsearchBoolQueryConfig } from \"~/types\";\n\nexport interface ModifyQueryParams {\n query: ElasticsearchBoolQueryConfig;\n where: Record<string, any>;\n}\n\ninterface Callable {\n (params: ModifyQueryParams): void;\n}\n\nexport abstract class ElasticsearchQueryModifierPlugin extends Plugin {\n private readonly callable?: Callable;\n\n public constructor(callable?: Callable) {\n super();\n this.callable = callable;\n }\n\n public modifyQuery(params: ModifyQueryParams): void {\n if (typeof this.callable !== \"function\") {\n throw new WebinyError(\n `Missing modification for the query.`,\n \"QUERY_MODIFICATION_MISSING\",\n {\n params\n }\n );\n }\n this.callable(params);\n }\n}\n"],"file":"ElasticsearchQueryModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/definition/ElasticsearchSortModifierPlugin.ts"],"names":["ElasticsearchSortModifierPlugin","Plugin","constructor","callable","modifySort","params","WebinyError"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAWO,MAAeA,+BAAf,SAAuDC,eAAvD,CAA8D;AAG1DC,EAAAA,WAAW,CAACC,QAAD,EAAsB;AACpC;AADoC;AAEpC,SAAKA,QAAL,GAAgBA,QAAhB;AACH;;AAEMC,EAAAA,UAAU,CAACC,MAAD,EAAiC;AAC9C,QAAI,OAAO,KAAKF,QAAZ,KAAyB,UAA7B,EAAyC;AACrC,YAAM,IAAIG,cAAJ,CACD,oCADC,EAEF,2BAFE,EAGF;AACID,QAAAA;AADJ,OAHE,CAAN;AAOH;;AACD,SAAKF,QAAL,CAAcE,MAAd;AACH;;AAnBgE","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Plugin } from \"@webiny/plugins\";\nimport { Sort } from \"elastic-ts\";\n\nexport interface ModifySortParams {\n sort: Sort;\n}\n\ninterface Callable {\n (params: ModifySortParams): void;\n}\n\nexport abstract class ElasticsearchSortModifierPlugin extends Plugin {\n private readonly callable?: Callable;\n\n public constructor(callable?: Callable) {\n super();\n this.callable = callable;\n }\n\n public modifySort(params: ModifySortParams): void {\n if (typeof this.callable !== \"function\") {\n throw new WebinyError(\n `Missing modification for the sort.`,\n \"SORT_MODIFICATION_MISSING\",\n {\n params\n }\n );\n }\n this.callable(params);\n }\n}\n"],"file":"ElasticsearchSortModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/andIn.ts"],"names":["ElasticsearchQueryBuilderOperatorAndInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","must","push","term"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,4CAAN,SAA2DC,gFAA3D,CAAmG;AAAA;AAAA;AAAA,gDACxF,mDADwF;AAAA;;AAG/FC,EAAAA,WAAW,GAAW;AACzB,WAAO,QAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAK,EAAEC,MAAT;AAAiBC,MAAAA,IAAjB;AAAuBC,MAAAA;AAAvB,QAAoCJ,MAA1C;AACA,UAAMK,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcH,MAAd,CAAhB;;AACA,QAAIG,OAAO,KAAK,KAAZ,IAAqBH,MAAM,CAACK,MAAP,KAAkB,CAA3C,EAA8C;AAC1C,YAAM,IAAIC,KAAJ,CACD,4BAA2BL,IAAK,uDAD/B,CAAN;AAGH;;AAED,QAAIM,WAAW,GAAG,KAAlB,CATI,CAUJ;;AACA,SAAK,MAAMR,KAAX,IAAoBC,MAApB,EAA4B;AACxB,UAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;AAC3BQ,QAAAA,WAAW,GAAG,IAAd;AACA;AACH;AACJ;;AAED,SAAK,MAAMR,KAAX,IAAoBC,MAApB,EAA4B;AACxBH,MAAAA,KAAK,CAACW,IAAN,CAAWC,IAAX,CAAgB;AACZC,QAAAA,IAAI,EAAE;AACF,WAACH,WAAW,GAAGL,QAAH,GAAcD,IAA1B,GAAiCF;AAD/B;AADM,OAAhB;AAKH;AACJ;;AAnCqG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorAndInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.andIn.default\";\n\n public getOperator(): string {\n return \"and_in\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value: values, path, basePath } = params;\n const isArray = Array.isArray(values);\n if (isArray === false || values.length === 0) {\n throw new Error(\n `You cannot filter field \"${path}\" with \"in\" operator and not send an array of values.`\n );\n }\n\n let useBasePath = false;\n // Only use \".keyword\" if all of the provided values are strings.\n for (const value of values) {\n if (typeof value !== \"string\") {\n useBasePath = true;\n break;\n }\n }\n\n for (const value of values) {\n query.must.push({\n term: {\n [useBasePath ? basePath : path]: value\n }\n });\n }\n }\n}\n"],"file":"andIn.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/between.ts"],"names":["ElasticsearchQueryBuilderOperatorBetweenPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","Array","isArray","Error","length","gte","lte","must","push","range"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,8CAAN,SAA6DC,gFAA7D,CAAqG;AAAA;AAAA;AAAA,gDAC1F,qDAD0F;AAAA;;AAGjGC,EAAAA,WAAW,GAAW;AACzB,WAAO,SAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAsBF,MAA5B;;AACA,QAAIG,KAAK,CAACC,OAAN,CAAcH,KAAd,MAAyB,KAA7B,EAAoC;AAChC,YAAM,IAAII,KAAJ,CACD,iCAAgCH,QAAS,uDADxC,CAAN;AAGH,KAJD,MAIO,IAAID,KAAK,CAACK,MAAN,KAAiB,CAArB,EAAwB;AAC3B,YAAM,IAAID,KAAJ,CACD,uDAAsDH,QAAS,cAD9D,CAAN;AAGH,KAVG,CAWJ;AACA;;;AACA,UAAM,CAACK,GAAD,EAAMC,GAAN,IAAaP,KAAnB;AACAF,IAAAA,KAAK,CAACU,IAAN,CAAWC,IAAX,CAAgB;AACZC,MAAAA,KAAK,EAAE;AACH,SAACT,QAAD,GAAY;AACRM,UAAAA,GADQ;AAERD,UAAAA;AAFQ;AADT;AADK,KAAhB;AAQH;;AAhCuG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorBetweenPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.between.default\";\n\n public getOperator(): string {\n return \"between\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n if (Array.isArray(value) === false) {\n throw new Error(\n `You cannot filter field path \"${basePath}\" with between query and not send an array of values.`\n );\n } else if (value.length !== 2) {\n throw new Error(\n `You must pass 2 values in the array for field path \"${basePath}\" filtering.`\n );\n }\n // we take gte first because it should be a lesser value than lte, eg [5, 10]\n // 6 >= gte && 6 <= lte\n const [gte, lte] = value;\n query.must.push({\n range: {\n [basePath]: {\n lte,\n gte\n }\n }\n });\n }\n}\n"],"file":"between.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/contains.ts"],"names":["ElasticsearchQueryBuilderOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","query_string","allow_leading_wildcard","fields","default_operator"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAGO,MAAMA,+CAAN,SAA8DC,gFAA9D,CAAsG;AAAA;AAAA;AAAA,gDAC3F,sDAD2F;AAAA;;AAGlGC,EAAAA,WAAW,GAAW;AACzB,WAAO,UAAP;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,YAAY,EAAE;AACVC,QAAAA,sBAAsB,EAAE,IADd;AAEVC,QAAAA,MAAM,EAAE,CAACL,QAAD,CAFE;AAGVH,QAAAA,KAAK,EAAE,+BAAeE,KAAf,CAHG;AAIVO,QAAAA,gBAAgB,EAAE;AAJR;AADF,KAAhB;AAQH;;AApBwG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.contains.default\";\n\n public getOperator(): string {\n return \"contains\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: [basePath],\n query: normalizeValue(value),\n default_operator: \"and\"\n }\n });\n }\n}\n"],"file":"contains.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/equal.ts"],"names":["ElasticsearchQueryBuilderOperatorEqualPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","path","basePath","useBasePath","must","push","term"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,4CAAN,SAA2DC,gFAA3D,CAAmG;AAAA;AAAA;AAAA,gDACxF,mDADwF;AAAA;;AAG/FC,EAAAA,WAAW,GAAW;AACzB,WAAO,IAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA,IAAT;AAAeC,MAAAA;AAAf,QAA4BH,MAAlC;AACA;AACR;AACA;AACA;;AACQ,UAAMI,WAAW,GAAG,OAAOH,KAAP,KAAiB,QAArC;AACAF,IAAAA,KAAK,CAACM,IAAN,CAAWC,IAAX,CAAgB;AACZC,MAAAA,IAAI,EAAE;AACF,SAACH,WAAW,GAAGD,QAAH,GAAcD,IAA1B,GAAiCD;AAD/B;AADM,KAAhB;AAKH;;AAtBqG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorEqualPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.equal.default\";\n\n public getOperator(): string {\n return \"eq\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, path, basePath } = params;\n /**\n * In case we are searching for a string, use regular path.\n * Otherwise use base path\n */\n const useBasePath = typeof value !== \"string\";\n query.must.push({\n term: {\n [useBasePath ? basePath : path]: value\n }\n });\n }\n}\n"],"file":"equal.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/gt.ts"],"names":["ElasticsearchQueryBuilderOperatorGreaterThanPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","gt"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,kDAAN,SAAiEC,gFAAjE,CAAyG;AAAA;AAAA;AAAA,gDAC9F,yDAD8F;AAAA;;AAGrGC,EAAAA,WAAW,GAAW;AACzB,WAAO,IAAP;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,KAAK,EAAE;AACH,SAACH,QAAD,GAAY;AACRI,UAAAA,EAAE,EAAEL;AADI;AADT;AADK,KAAhB;AAOH;;AAnB2G","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorGreaterThanPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.greaterThan.default\";\n\n public getOperator(): string {\n return \"gt\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n range: {\n [basePath]: {\n gt: value\n }\n }\n });\n }\n}\n"],"file":"gt.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/gte.ts"],"names":["ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","gte"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,2DAAN,SAA0EC,gFAA1E,CAAkH;AAAA;AAAA;AAAA,gDACvG,kEADuG;AAAA;;AAG9GC,EAAAA,WAAW,GAAW;AACzB,WAAO,KAAP;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,KAAK,EAAE;AACH,SAACH,QAAD,GAAY;AACRI,UAAAA,GAAG,EAAEL;AADG;AADT;AADK,KAAhB;AAOH;;AAnBoH","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.greaterThanOrEqualTo.default\";\n\n public getOperator(): string {\n return \"gte\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n range: {\n [basePath]: {\n gte: value\n }\n }\n });\n }\n}\n"],"file":"gte.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/in.ts"],"names":["ElasticsearchQueryBuilderOperatorInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","must","push","terms"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,yCAAN,SAAwDC,gFAAxD,CAAgG;AAAA;AAAA;AAAA,gDACrF,gDADqF;AAAA;;AAG5FC,EAAAA,WAAW,GAAW;AACzB,WAAO,IAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAK,EAAEC,MAAT;AAAiBC,MAAAA,IAAjB;AAAuBC,MAAAA;AAAvB,QAAoCJ,MAA1C;AACA,UAAMK,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcH,MAAd,CAAhB;;AACA,QAAIG,OAAO,KAAK,KAAZ,IAAqBH,MAAM,CAACK,MAAP,KAAkB,CAA3C,EAA8C;AAC1C,YAAM,IAAIC,KAAJ,CACD,4BAA2BL,IAAK,uDAD/B,CAAN;AAGH;;AAED,QAAIM,WAAW,GAAG,KAAlB,CATI,CAUJ;;AACA,SAAK,MAAMR,KAAX,IAAoBC,MAApB,EAA4B;AACxB,UAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;AAC3BQ,QAAAA,WAAW,GAAG,IAAd;AACA;AACH;AACJ;;AAEDV,IAAAA,KAAK,CAACW,IAAN,CAAWC,IAAX,CAAgB;AACZC,MAAAA,KAAK,EAAE;AACH,SAACH,WAAW,GAAGL,QAAH,GAAcD,IAA1B,GAAiCD;AAD9B;AADK,KAAhB;AAKH;;AAjCkG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.in.default\";\n\n public getOperator(): string {\n return \"in\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value: values, path, basePath } = params;\n const isArray = Array.isArray(values);\n if (isArray === false || values.length === 0) {\n throw new Error(\n `You cannot filter field \"${path}\" with \"in\" operator and not send an array of values.`\n );\n }\n\n let useBasePath = false;\n // Only use \".keyword\" if all of the provided values are strings.\n for (const value of values) {\n if (typeof value !== \"string\") {\n useBasePath = true;\n break;\n }\n }\n\n query.must.push({\n terms: {\n [useBasePath ? basePath : path]: values\n }\n });\n }\n}\n"],"file":"in.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/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"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/lt.ts"],"names":["ElasticsearchQueryBuilderOperatorLesserThanPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","lt"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,iDAAN,SAAgEC,gFAAhE,CAAwG;AAAA;AAAA;AAAA,gDAC7F,wDAD6F;AAAA;;AAGpGC,EAAAA,WAAW,GAAW;AACzB,WAAO,IAAP;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,KAAK,EAAE;AACH,SAACH,QAAD,GAAY;AACRI,UAAAA,EAAE,EAAEL;AADI;AADT;AADK,KAAhB;AAOH;;AAnB0G","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorLesserThanPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.lesserThan.default\";\n\n public getOperator(): string {\n return \"lt\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n range: {\n [basePath]: {\n lt: value\n }\n }\n });\n }\n}\n"],"file":"lt.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/lte.ts"],"names":["ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","lte"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,0DAAN,SAAyEC,gFAAzE,CAAiH;AAAA;AAAA;AAAA,gDACtG,iEADsG;AAAA;;AAG7GC,EAAAA,WAAW,GAAW;AACzB,WAAO,KAAP;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,KAAK,EAAE;AACH,SAACH,QAAD,GAAY;AACRI,UAAAA,GAAG,EAAEL;AADG;AADT;AADK,KAAhB;AAOH;;AAnBmH","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.lesserThanOrEqualTo.default\";\n\n public getOperator(): string {\n return \"lte\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n range: {\n [basePath]: {\n lte: value\n }\n }\n });\n }\n}\n"],"file":"lte.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/not.ts"],"names":["ElasticsearchQueryBuilderOperatorNotPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","path","basePath","useBasePath","must_not","push","term"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,0CAAN,SAAyDC,gFAAzD,CAAiG;AAAA;AAAA;AAAA,gDACtF,iDADsF;AAAA;;AAG7FC,EAAAA,WAAW,GAAW;AACzB,WAAO,KAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA,IAAT;AAAeC,MAAAA;AAAf,QAA4BH,MAAlC;AAEA,UAAMI,WAAW,GAAG,OAAOH,KAAP,KAAiB,QAArC;AACAF,IAAAA,KAAK,CAACM,QAAN,CAAeC,IAAf,CAAoB;AAChBC,MAAAA,IAAI,EAAE;AACF,SAACH,WAAW,GAAGD,QAAH,GAAcD,IAA1B,GAAiCD;AAD/B;AADU,KAApB;AAKH;;AAnBmG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.not.default\";\n\n public getOperator(): string {\n return \"not\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, path, basePath } = params;\n\n const useBasePath = typeof value !== \"string\";\n query.must_not.push({\n term: {\n [useBasePath ? basePath : path]: value\n }\n });\n }\n}\n"],"file":"not.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/notBetween.ts"],"names":["ElasticsearchQueryBuilderOperatorNotBetweenPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","Array","isArray","Error","length","gte","lte","must_not","push","range"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,iDAAN,SAAgEC,gFAAhE,CAAwG;AAAA;AAAA;AAAA,gDAC7F,wDAD6F;AAAA;;AAGpGC,EAAAA,WAAW,GAAW;AACzB,WAAO,aAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAsBF,MAA5B;;AACA,QAAIG,KAAK,CAACC,OAAN,CAAcH,KAAd,MAAyB,KAA7B,EAAoC;AAChC,YAAM,IAAII,KAAJ,CACD,iCAAgCH,QAAS,uDADxC,CAAN;AAGH,KAJD,MAIO,IAAID,KAAK,CAACK,MAAN,KAAiB,CAArB,EAAwB;AAC3B,YAAM,IAAID,KAAJ,CACD,uDAAsDH,QAAS,cAD9D,CAAN;AAGH,KAVG,CAWJ;AACA;;;AACA,UAAM,CAACK,GAAD,EAAMC,GAAN,IAAaP,KAAnB;AACAF,IAAAA,KAAK,CAACU,QAAN,CAAeC,IAAf,CAAoB;AAChBC,MAAAA,KAAK,EAAE;AACH,SAACT,QAAD,GAAY;AACRM,UAAAA,GADQ;AAERD,UAAAA;AAFQ;AADT;AADS,KAApB;AAQH;;AAhC0G","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotBetweenPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.notBetween.default\";\n\n public getOperator(): string {\n return \"not_between\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n if (Array.isArray(value) === false) {\n throw new Error(\n `You cannot filter field path \"${basePath}\" with between query and not send an array of values.`\n );\n } else if (value.length !== 2) {\n throw new Error(\n `You must pass 2 values in the array for field path \"${basePath}\" filtering.`\n );\n }\n // we take gte first because it should be a lesser value than lte, eg [5, 10]\n // 6 >= gte && 6 <= lte === true which in this case it means that record will not match\n const [gte, lte] = value;\n query.must_not.push({\n range: {\n [basePath]: {\n lte,\n gte\n }\n }\n });\n }\n}\n"],"file":"notBetween.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/notContains.ts"],"names":["ElasticsearchQueryBuilderOperatorNotContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must_not","push","query_string","allow_leading_wildcard","fields","default_operator"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAGO,MAAMA,kDAAN,SAAiEC,gFAAjE,CAAyG;AAAA;AAAA;AAAA,gDAC9F,yDAD8F;AAAA;;AAGrGC,EAAAA,WAAW,GAAW;AACzB,WAAO,cAAP;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,YAAY,EAAE;AACVC,QAAAA,sBAAsB,EAAE,IADd;AAEVC,QAAAA,MAAM,EAAE,CAACL,QAAD,CAFE;AAGVH,QAAAA,KAAK,EAAE,+BAAeE,KAAf,CAHG;AAIVO,QAAAA,gBAAgB,EAAE;AAJR;AADE,KAApB;AAQH;;AApB2G","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.notContains.default\";\n\n public getOperator(): string {\n return \"not_contains\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must_not.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: [basePath],\n query: normalizeValue(value),\n default_operator: \"and\"\n }\n });\n }\n}\n"],"file":"notContains.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/operator/notIn.ts"],"names":["ElasticsearchQueryBuilderOperatorNotInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","some","must_not","push","terms"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,4CAAN,SAA2DC,gFAA3D,CAAmG;AAAA;AAAA;AAAA,gDACxF,mDADwF;AAAA;;AAG/FC,EAAAA,WAAW,GAAW;AACzB,WAAO,QAAP;AACH;;AAEMC,EAAAA,KAAK,CACRC,KADQ,EAERC,MAFQ,EAGJ;AACJ,UAAM;AAAEC,MAAAA,KAAK,EAAEC,MAAT;AAAiBC,MAAAA,IAAjB;AAAuBC,MAAAA;AAAvB,QAAoCJ,MAA1C;AACA,UAAMK,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcH,MAAd,CAAhB;;AACA,QAAIG,OAAO,KAAK,KAAZ,IAAqBH,MAAM,CAACK,MAAP,KAAkB,CAA3C,EAA8C;AAC1C,YAAM,IAAIC,KAAJ,CACD,iCAAgCJ,QAAS,gDADxC,CAAN;AAGH;;AAED,UAAMK,WAAW,GAAGP,MAAM,CAACQ,IAAP,CAAYT,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAAtC,CAApB;AAEAF,IAAAA,KAAK,CAACY,QAAN,CAAeC,IAAf,CAAoB;AAChBC,MAAAA,KAAK,EAAE;AACH,SAACJ,WAAW,GAAGL,QAAH,GAAcD,IAA1B,GAAiCD;AAD9B;AADS,KAApB;AAKH;;AA1BqG","sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public name = \"elasticsearch.queryBuilder.operator.notIn.default\";\n\n public getOperator(): string {\n return \"not_in\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value: values, path, basePath } = params;\n const isArray = Array.isArray(values);\n if (isArray === false || values.length === 0) {\n throw new Error(\n `You cannot filter field path \"${basePath}\" with not_in and not send an array of values.`\n );\n }\n\n const useBasePath = values.some(value => typeof value !== \"string\");\n\n query.must_not.push({\n terms: {\n [useBasePath ? basePath : path]: values\n }\n });\n }\n}\n"],"file":"notIn.js"}
package/sort.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sort.ts"],"names":["sortRegExp","RegExp","createSort","params","sort","defaults","fieldPlugins","length","field","order","unmappedType","unmapped_type","undefined","reduce","acc","value","match","WebinyError","initialOrder","toLowerCase","plugin","path","getPath","getSortOptions"],"mappings":";;;;;;;;;AAAA;;AAIA,MAAMA,UAAU,GAAG,IAAIC,MAAJ,CAAW,+BAAX,CAAnB;;AAWO,MAAMC,UAAU,GAAIC,MAAD,IAA8B;AACpD,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA;AAAlB,MAAmCH,MAAzC;;AACA,MAAI,CAACC,IAAD,IAASA,IAAI,CAACG,MAAL,KAAgB,CAA7B,EAAgC;AAC5B,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA,KAAT;AAAgBC,MAAAA;AAAhB,QAAiCL,QAAQ,IAAI,EAAnD;AACA;AACR;AACA;;AACQ,WAAO;AACH,OAACG,KAAK,IAAI,YAAV,GAAyB;AACrBC,QAAAA,KAAK,EAAEA,KAAK,IAAI,MADK;AAErBE,QAAAA,aAAa,EAAED,YAAY,IAAIE;AAFV;AADtB,KAAP;AAMH;;AAED,SAAOR,IAAI,CAACS,MAAL,CAAY,CAACC,GAAD,EAAMC,KAAN,KAAgB;AAC/B,UAAMC,KAAK,GAAGD,KAAK,CAACC,KAAN,CAAYhB,UAAZ,CAAd;;AAEA,QAAI,CAACgB,KAAL,EAAY;AACR,YAAM,IAAIC,cAAJ,CAAiB,mBAAkBF,KAAM,IAAzC,CAAN;AACH;;AAED,UAAM,GAAGP,KAAH,EAAUU,YAAV,IAA0BF,KAAhC;AACA,UAAMP,KAAgB,GAAGS,YAAY,CAACC,WAAb,OAA+B,KAA/B,GAAuC,KAAvC,GAA+C,MAAxE;AAEA,UAAMC,MAAgC,GAAGd,YAAY,CAACE,KAAD,CAAZ,IAAuBF,YAAY,CAAC,GAAD,CAA5E;;AACA,QAAI,CAACc,MAAL,EAAa;AACT,YAAM,IAAIH,cAAJ,CAAiB,iCAAgCT,KAAM,GAAvD,EAA2D,mBAA3D,EAAgF;AAClFA,QAAAA;AADkF,OAAhF,CAAN;AAGH;AACD;AACR;AACA;AACA;;;AACQ,UAAMa,IAAI,GAAGD,MAAM,CAACE,OAAP,CAAed,KAAf,CAAb;AAEAM,IAAAA,GAAG,CAACO,IAAD,CAAH,GAAYD,MAAM,CAACG,cAAP,CAAsBd,KAAtB,CAAZ;AAEA,WAAOK,GAAP;AACH,GAzBM,EAyBJ,EAzBI,CAAP;AA0BH,CAzCM","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { FieldSortOptions, SortType, SortOrder } from \"./types\";\nimport { ElasticsearchFieldPlugin } from \"./plugins/definition/ElasticsearchFieldPlugin\";\n\nconst sortRegExp = new RegExp(/^([a-zA-Z-0-9_]+)_(ASC|DESC)$/);\n\nexport interface Params {\n sort: string[];\n defaults?: {\n field?: string;\n order?: SortOrder;\n unmappedType?: string;\n };\n fieldPlugins: Record<string, ElasticsearchFieldPlugin>;\n}\nexport const createSort = (params: Params): SortType => {\n const { sort, defaults, fieldPlugins } = params;\n if (!sort || sort.length === 0) {\n const { field, order, unmappedType } = defaults || {};\n /**\n * We say that our system defaults is always id since all records we create have some kind of primary ID.\n */\n return {\n [field || \"id.keyword\"]: {\n order: order || \"desc\",\n unmapped_type: unmappedType || undefined\n }\n };\n }\n\n return sort.reduce((acc, value) => {\n const match = value.match(sortRegExp);\n\n if (!match) {\n throw new WebinyError(`Cannot sort by \"${value}\".`);\n }\n\n const [, field, initialOrder] = match;\n const order: SortOrder = initialOrder.toLowerCase() === \"asc\" ? \"asc\" : \"desc\";\n\n const plugin: ElasticsearchFieldPlugin = fieldPlugins[field] || fieldPlugins[\"*\"];\n if (!plugin) {\n throw new WebinyError(`Missing plugin for the field \"${field}\"`, \"PLUGIN_SORT_ERROR\", {\n field\n });\n }\n /**\n * In case field plugin is the global one, change the * with actual field name.\n * Custom path methods will return their own values anyway so replacing * will not matter.\n */\n const path = plugin.getPath(field);\n\n acc[path] = plugin.getSortOptions(order);\n\n return acc;\n }, {} as Record<string, FieldSortOptions>);\n};\n"],"file":"sort.js"}
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"names":[],"mappings":";;;;;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import { Client } from \"@elastic/elasticsearch\";\nimport { BoolQueryConfig as esBoolQueryConfig, Query as esQuery } from \"elastic-ts\";\nimport { ContextInterface } from \"@webiny/handler/types\";\nexport * from \"elastic-ts\";\n\nexport interface ElasticsearchContext extends ContextInterface {\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"],"file":"types.js"}
package/where.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/where.ts"],"names":["parseWhereKeyRegExp","RegExp","parseWhereKey","key","match","Error","field","operation","operator","substr","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,MAAV,CAAiB,CAAjB,CAAxB,GAA8CF,SAA/D;AAEA,SAAO;AAAED,IAAAA,KAAF;AAASE,IAAAA;AAAT,GAAP;AACH,CAhBM;;;AAkBP,MAAME,GAAG,GAAGC,mDAAyBD,GAArC;;AAEO,MAAME,UAAU,GAAIC,MAAD,IAA0B;AAChD,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 Params {\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.substr(1) : operation;\n\n return { field, operator };\n};\n\nconst ALL = ElasticsearchFieldPlugin.ALL;\n\nexport const applyWhere = (params: Params): 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"],"file":"where.js"}