@webiny/api-elasticsearch 0.0.0-unstable.6e5425ee89 → 0.0.0-unstable.7f63ea0744

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 (44) hide show
  1. package/cursors.d.ts +2 -1
  2. package/cursors.js +5 -1
  3. package/cursors.js.map +1 -1
  4. package/normalize.js +11 -8
  5. package/normalize.js.map +1 -1
  6. package/package.json +11 -11
  7. package/plugins/operator/andIn.js +1 -1
  8. package/plugins/operator/andIn.js.map +1 -1
  9. package/plugins/operator/between.js +5 -4
  10. package/plugins/operator/between.js.map +1 -1
  11. package/plugins/operator/contains.js +1 -1
  12. package/plugins/operator/contains.js.map +1 -1
  13. package/plugins/operator/equal.js +20 -4
  14. package/plugins/operator/equal.js.map +1 -1
  15. package/plugins/operator/gt.js +1 -1
  16. package/plugins/operator/gt.js.map +1 -1
  17. package/plugins/operator/gte.js +1 -1
  18. package/plugins/operator/gte.js.map +1 -1
  19. package/plugins/operator/in.js +6 -10
  20. package/plugins/operator/in.js.map +1 -1
  21. package/plugins/operator/japanese/contains.js +2 -2
  22. package/plugins/operator/japanese/contains.js.map +1 -1
  23. package/plugins/operator/lt.js +1 -1
  24. package/plugins/operator/lt.js.map +1 -1
  25. package/plugins/operator/lte.js +1 -1
  26. package/plugins/operator/lte.js.map +1 -1
  27. package/plugins/operator/not.js +13 -3
  28. package/plugins/operator/not.js.map +1 -1
  29. package/plugins/operator/notBetween.js +4 -3
  30. package/plugins/operator/notBetween.js.map +1 -1
  31. package/plugins/operator/notContains.js +1 -1
  32. package/plugins/operator/notContains.js.map +1 -1
  33. package/plugins/operator/notIn.js +3 -2
  34. package/plugins/operator/notIn.js.map +1 -1
  35. package/plugins/operator/startsWith.js +1 -1
  36. package/plugins/operator/startsWith.js.map +1 -1
  37. package/sort.d.ts +2 -6
  38. package/sort.js +2 -3
  39. package/sort.js.map +1 -1
  40. package/types.d.ts +6 -3
  41. package/types.js +2 -2
  42. package/types.js.map +1 -1
  43. package/where.js +1 -0
  44. package/where.js.map +1 -1
package/cursors.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { PrimitiveValue } from "./types";
1
2
  /**
2
3
  * Encode a received cursor value into something that can be passed on to the user.
3
4
  */
@@ -6,4 +7,4 @@ export declare const encodeCursor: (cursor?: string | string[] | null) => string
6
7
  * Decode a received value into a Elasticsearch cursor.
7
8
  * If no value is received or is not decodable, return undefined.
8
9
  */
9
- export declare const decodeCursor: (cursor?: string | null) => string[] | string | undefined;
10
+ export declare const decodeCursor: (cursor?: string | null) => PrimitiveValue[] | undefined;
package/cursors.js CHANGED
@@ -30,7 +30,11 @@ const decodeCursor = cursor => {
30
30
  }
31
31
  try {
32
32
  const value = JSON.parse(Buffer.from(cursor, "base64").toString("ascii"));
33
- return Array.isArray(value) ? value.map(decodeURIComponent) : decodeURIComponent(value);
33
+ if (Array.isArray(value)) {
34
+ return value.map(decodeURIComponent);
35
+ }
36
+ const decoded = decodeURIComponent(value);
37
+ return decoded ? [decoded] : undefined;
34
38
  } catch (ex) {
35
39
  console.error(ex.message);
36
40
  }
package/cursors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["encodeCursor","cursor","undefined","Array","isArray","map","encodeURIComponent","Buffer","from","JSON","stringify","toString","ex","console","error","message","decodeCursor","value","parse","decodeURIComponent"],"sources":["cursors.ts"],"sourcesContent":["/**\n * Encode a received cursor value into something that can be passed on to the user.\n */\nexport const encodeCursor = (cursor?: string | string[] | null): 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 | null): 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"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,YAAY,GAAIC,MAAiC,IAAyB;EACnF,IAAI,CAACA,MAAM,EAAE;IACT,OAAOC,SAAS;EACpB;EAEAD,MAAM,GAAGE,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,CAACI,GAAG,CAACC,kBAAkB,CAAC,GAAGA,kBAAkB,CAACL,MAAM,CAAC;EAE5F,IAAI;IACA,OAAOM,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACT,MAAM,CAAC,CAAC,CAACU,QAAQ,CAAC,QAAQ,CAAC;EACjE,CAAC,CAAC,OAAOC,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOb,SAAS;AACpB,CAAC;AACD;AACA;AACA;AACA;AAHA;AAIO,MAAMc,YAAY,GAAIf,MAAsB,IAAoC;EACnF,IAAI,CAACA,MAAM,EAAE;IACT,OAAOC,SAAS;EACpB;EACA,IAAI;IACA,MAAMe,KAAK,GAAGR,IAAI,CAACS,KAAK,CAACX,MAAM,CAACC,IAAI,CAACP,MAAM,EAAE,QAAQ,CAAC,CAACU,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzE,OAAOR,KAAK,CAACC,OAAO,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACZ,GAAG,CAACc,kBAAkB,CAAC,GAAGA,kBAAkB,CAACF,KAAK,CAAC;EAC3F,CAAC,CAAC,OAAOL,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOb,SAAS;AACpB,CAAC;AAAC"}
1
+ {"version":3,"names":["encodeCursor","cursor","undefined","Array","isArray","map","encodeURIComponent","Buffer","from","JSON","stringify","toString","ex","console","error","message","decodeCursor","value","parse","decodeURIComponent","decoded"],"sources":["cursors.ts"],"sourcesContent":["import { PrimitiveValue } from \"~/types\";\n\n/**\n * Encode a received cursor value into something that can be passed on to the user.\n */\nexport const encodeCursor = (cursor?: string | string[] | null): 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 | null): PrimitiveValue[] | undefined => {\n if (!cursor) {\n return undefined;\n }\n try {\n const value = JSON.parse(Buffer.from(cursor, \"base64\").toString(\"ascii\"));\n if (Array.isArray(value)) {\n return value.map(decodeURIComponent);\n }\n const decoded = decodeURIComponent(value);\n return decoded ? [decoded] : undefined;\n } catch (ex) {\n console.error(ex.message);\n }\n return undefined;\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,YAAY,GAAIC,MAAiC,IAAyB;EACnF,IAAI,CAACA,MAAM,EAAE;IACT,OAAOC,SAAS;EACpB;EAEAD,MAAM,GAAGE,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,CAACI,GAAG,CAACC,kBAAkB,CAAC,GAAGA,kBAAkB,CAACL,MAAM,CAAC;EAE5F,IAAI;IACA,OAAOM,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACT,MAAM,CAAC,CAAC,CAACU,QAAQ,CAAC,QAAQ,CAAC;EACjE,CAAC,CAAC,OAAOC,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOb,SAAS;AACpB,CAAC;AACD;AACA;AACA;AACA;AAHA;AAIO,MAAMc,YAAY,GAAIf,MAAsB,IAAmC;EAClF,IAAI,CAACA,MAAM,EAAE;IACT,OAAOC,SAAS;EACpB;EACA,IAAI;IACA,MAAMe,KAAK,GAAGR,IAAI,CAACS,KAAK,CAACX,MAAM,CAACC,IAAI,CAACP,MAAM,EAAE,QAAQ,CAAC,CAACU,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,IAAIR,KAAK,CAACC,OAAO,CAACa,KAAK,CAAC,EAAE;MACtB,OAAOA,KAAK,CAACZ,GAAG,CAACc,kBAAkB,CAAC;IACxC;IACA,MAAMC,OAAO,GAAGD,kBAAkB,CAACF,KAAK,CAAC;IACzC,OAAOG,OAAO,GAAG,CAACA,OAAO,CAAC,GAAGlB,SAAS;EAC1C,CAAC,CAAC,OAAOU,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOb,SAAS;AACpB,CAAC;AAAC"}
package/normalize.js CHANGED
@@ -9,15 +9,18 @@ exports.normalizeValue = void 0;
9
9
  * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_reserved_characters
10
10
  */
11
11
 
12
- const RESERVED_CHARACTERS = {
13
- // These characters need to be escaped with backslash ("\").
14
- escape: ["\\\\", "\\/", "\\+", "\\-", "\\=", "\\&\\&", "\\|\\|", "\\!", "\\(", "\\)", "\\{", "\\}", "\\[", "\\]", "\\^", '\\"', "\\~", "\\*", "\\?", "\\:", "\\>", "\\<"]
15
- };
12
+ const specialCharacterToSpace = ["-"];
13
+ const specialCharacters = ["\\\\", "\\+",
14
+ // "\\-",
15
+ "\\=", "\\&\\&", "\\|\\|", ">", "<", "\\!", "\\(", "\\)", "\\{", "\\}", "\\[", "\\]", "\\^", '\\"', "\\~", "\\*", "\\?", "\\:", "\\/", "\\#"];
16
16
  const normalizeValue = value => {
17
- let result = value;
18
- for (const character of RESERVED_CHARACTERS.escape) {
19
- result = result.replace(new RegExp(`${character}`, "g"), ` `);
17
+ let result = value || "";
18
+ for (const character of specialCharacterToSpace) {
19
+ result = result.replace(new RegExp(character, "g"), " ");
20
+ }
21
+ for (const character of specialCharacters) {
22
+ result = result.replace(new RegExp(character, "g"), `\\${character}`);
20
23
  }
21
- return result ? `*${result}*` : "";
24
+ return result || "";
22
25
  };
23
26
  exports.normalizeValue = normalizeValue;
package/normalize.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["RESERVED_CHARACTERS","escape","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 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"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAEA,MAAMA,mBAAmB,GAAG;EACxB;EACAC,MAAM,EAAE,CACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK;AAEb,CAAC;AAEM,MAAMC,cAAc,GAAIC,KAAa,IAAK;EAC7C,IAAIC,MAAM,GAAGD,KAAK;EAClB,KAAK,MAAME,SAAS,IAAIL,mBAAmB,CAACC,MAAM,EAAE;IAChDG,MAAM,GAAGA,MAAM,CAACE,OAAO,CAAC,IAAIC,MAAM,CAAE,GAAEF,SAAU,EAAC,EAAE,GAAG,CAAC,EAAG,GAAE,CAAC;EACjE;EAEA,OAAOD,MAAM,GAAI,IAAGA,MAAO,GAAE,GAAG,EAAE;AACtC,CAAC;AAAC"}
1
+ {"version":3,"names":["specialCharacterToSpace","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 specialCharacterToSpace = [\"-\"];\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 specialCharacterToSpace) {\n result = result.replace(new RegExp(character, \"g\"), \" \");\n }\n\n for (const character of specialCharacters) {\n result = result.replace(new RegExp(character, \"g\"), `\\\\${character}`);\n }\n\n return result || \"\";\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAEA,MAAMA,uBAAuB,GAAG,CAAC,GAAG,CAAC;AAErC,MAAMC,iBAAiB,GAAG,CACtB,MAAM,EACN,KAAK;AACL;AACA,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,CACR;AAEM,MAAMC,cAAc,GAAIC,KAAa,IAAK;EAC7C,IAAIC,MAAM,GAAGD,KAAK,IAAI,EAAE;EACxB,KAAK,MAAME,SAAS,IAAIL,uBAAuB,EAAE;IAC7CI,MAAM,GAAGA,MAAM,CAACE,OAAO,CAAC,IAAIC,MAAM,CAACF,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;EAC5D;EAEA,KAAK,MAAMA,SAAS,IAAIJ,iBAAiB,EAAE;IACvCG,MAAM,GAAGA,MAAM,CAACE,OAAO,CAAC,IAAIC,MAAM,CAACF,SAAS,EAAE,GAAG,CAAC,EAAG,KAAIA,SAAU,EAAC,CAAC;EACzE;EAEA,OAAOD,MAAM,IAAI,EAAE;AACvB,CAAC;AAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-elasticsearch",
3
- "version": "0.0.0-unstable.6e5425ee89",
3
+ "version": "0.0.0-unstable.7f63ea0744",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/webiny/webiny-js.git",
@@ -13,19 +13,19 @@
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
15
  "@elastic/elasticsearch": "7.12.0",
16
- "@webiny/api": "0.0.0-unstable.6e5425ee89",
17
- "@webiny/error": "0.0.0-unstable.6e5425ee89",
18
- "@webiny/plugins": "0.0.0-unstable.6e5425ee89",
19
- "@webiny/utils": "0.0.0-unstable.6e5425ee89",
16
+ "@webiny/api": "0.0.0-unstable.7f63ea0744",
17
+ "@webiny/error": "0.0.0-unstable.7f63ea0744",
18
+ "@webiny/plugins": "0.0.0-unstable.7f63ea0744",
19
+ "@webiny/utils": "0.0.0-unstable.7f63ea0744",
20
20
  "aws-elasticsearch-connector": "9.2.0",
21
- "aws-sdk": "2.1261.0",
21
+ "aws-sdk": "2.1310.0",
22
22
  "elastic-ts": "0.8.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@babel/cli": "^7.19.3",
26
- "@babel/core": "^7.19.3",
27
- "@webiny/cli": "^0.0.0-unstable.6e5425ee89",
28
- "@webiny/project-utils": "^0.0.0-unstable.6e5425ee89",
25
+ "@babel/cli": "^7.16.0",
26
+ "@babel/core": "^7.16.0",
27
+ "@webiny/cli": "^0.0.0-unstable.7f63ea0744",
28
+ "@webiny/project-utils": "^0.0.0-unstable.7f63ea0744",
29
29
  "rimraf": "^3.0.2",
30
30
  "ttypescript": "^1.5.12",
31
31
  "typescript": "4.7.4"
@@ -45,5 +45,5 @@
45
45
  ]
46
46
  }
47
47
  },
48
- "gitHead": "1e49c5d4b72b2f00661572464188f53b42ed7745"
48
+ "gitHead": "7f63ea0744c9e31977e5dabb95538d22b4db585c"
49
49
  }
@@ -34,7 +34,7 @@ class ElasticsearchQueryBuilderOperatorAndInPlugin extends _ElasticsearchQueryBu
34
34
  }
35
35
  }
36
36
  for (const value of values) {
37
- query.must.push({
37
+ query.filter.push({
38
38
  term: {
39
39
  [useBasePath ? basePath : path]: value
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorAndInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","must","push","term"],"sources":["andIn.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorAndInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,4CAA4C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC/E,mDAAmD;EAAA;EAEnEC,WAAW,GAAW;IACzB,OAAO,QAAQ;EACnB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGJ,MAAM;IAChD,MAAMK,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACH,MAAM,CAAC;IACrC,IAAIG,OAAO,KAAK,KAAK,IAAIH,MAAM,CAACK,MAAM,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIC,KAAK,CACV,4BAA2BL,IAAK,uDAAsD,CAC1F;IACL;IAEA,IAAIM,WAAW,GAAG,KAAK;IACvB;IACA,KAAK,MAAMR,KAAK,IAAIC,MAAM,EAAE;MACxB,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;QAC3BQ,WAAW,GAAG,IAAI;QAClB;MACJ;IACJ;IAEA,KAAK,MAAMR,KAAK,IAAIC,MAAM,EAAE;MACxBH,KAAK,CAACW,IAAI,CAACC,IAAI,CAAC;QACZC,IAAI,EAAE;UACF,CAACH,WAAW,GAAGL,QAAQ,GAAGD,IAAI,GAAGF;QACrC;MACJ,CAAC,CAAC;IACN;EACJ;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorAndInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","filter","push","term"],"sources":["andIn.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorAndInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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.filter.push({\n term: {\n [useBasePath ? basePath : path]: value\n }\n });\n }\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,4CAA4C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC/E,mDAAmD;EAAA;EAEnEC,WAAW,GAAW;IACzB,OAAO,QAAQ;EACnB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGJ,MAAM;IAChD,MAAMK,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACH,MAAM,CAAC;IACrC,IAAIG,OAAO,KAAK,KAAK,IAAIH,MAAM,CAACK,MAAM,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIC,KAAK,CACV,4BAA2BL,IAAK,uDAAsD,CAC1F;IACL;IAEA,IAAIM,WAAW,GAAG,KAAK;IACvB;IACA,KAAK,MAAMR,KAAK,IAAIC,MAAM,EAAE;MACxB,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;QAC3BQ,WAAW,GAAG,IAAI;QAClB;MACJ;IACJ;IAEA,KAAK,MAAMR,KAAK,IAAIC,MAAM,EAAE;MACxBH,KAAK,CAACW,MAAM,CAACC,IAAI,CAAC;QACdC,IAAI,EAAE;UACF,CAACH,WAAW,GAAGL,QAAQ,GAAGD,IAAI,GAAGF;QACrC;MACJ,CAAC,CAAC;IACN;EACJ;AACJ;AAAC"}
@@ -18,17 +18,18 @@ class ElasticsearchQueryBuilderOperatorBetweenPlugin extends _ElasticsearchQuery
18
18
  apply(query, params) {
19
19
  const {
20
20
  value,
21
- basePath
21
+ basePath,
22
+ name
22
23
  } = params;
23
24
  if (Array.isArray(value) === false) {
24
- throw new Error(`You cannot filter field path "${basePath}" with between query and not send an array of values.`);
25
+ throw new Error(`You cannot filter field path "${name}" with between query and not send an array of values.`);
25
26
  } else if (value.length !== 2) {
26
- throw new Error(`You must pass 2 values in the array for field path "${basePath}" filtering.`);
27
+ throw new Error(`You must pass 2 values in the array for field path "${name}" filtering.`);
27
28
  }
28
29
  // we take gte first because it should be a lesser value than lte, eg [5, 10]
29
30
  // 6 >= gte && 6 <= lte
30
31
  const [gte, lte] = value;
31
- query.must.push({
32
+ query.filter.push({
32
33
  range: {
33
34
  [basePath]: {
34
35
  lte,
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorBetweenPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","Array","isArray","Error","length","gte","lte","must","push","range"],"sources":["between.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorBetweenPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,8CAA8C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACjF,qDAAqD;EAAA;EAErEC,WAAW,GAAW;IACzB,OAAO,SAAS;EACpB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClC,IAAIG,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,KAAK,KAAK,EAAE;MAChC,MAAM,IAAII,KAAK,CACV,iCAAgCH,QAAS,uDAAsD,CACnG;IACL,CAAC,MAAM,IAAID,KAAK,CAACK,MAAM,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAID,KAAK,CACV,uDAAsDH,QAAS,cAAa,CAChF;IACL;IACA;IACA;IACA,MAAM,CAACK,GAAG,EAAEC,GAAG,CAAC,GAAGP,KAAK;IACxBF,KAAK,CAACU,IAAI,CAACC,IAAI,CAAC;MACZC,KAAK,EAAE;QACH,CAACT,QAAQ,GAAG;UACRM,GAAG;UACHD;QACJ;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorBetweenPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","name","Array","isArray","Error","length","gte","lte","filter","push","range"],"sources":["between.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorBetweenPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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, name } = params;\n if (Array.isArray(value) === false) {\n throw new Error(\n `You cannot filter field path \"${name}\" 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 \"${name}\" 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.filter.push({\n range: {\n [basePath]: {\n lte,\n gte\n }\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,8CAA8C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACjF,qDAAqD;EAAA;EAErEC,WAAW,GAAW;IACzB,OAAO,SAAS;EACpB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAK,CAAC,GAAGH,MAAM;IACxC,IAAII,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,KAAK,KAAK,EAAE;MAChC,MAAM,IAAIK,KAAK,CACV,iCAAgCH,IAAK,uDAAsD,CAC/F;IACL,CAAC,MAAM,IAAIF,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAID,KAAK,CACV,uDAAsDH,IAAK,cAAa,CAC5E;IACL;IACA;IACA;IACA,MAAM,CAACK,GAAG,EAAEC,GAAG,CAAC,GAAGR,KAAK;IACxBF,KAAK,CAACW,MAAM,CAACC,IAAI,CAAC;MACdC,KAAK,EAAE;QACH,CAACV,QAAQ,GAAG;UACRO,GAAG;UACHD;QACJ;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -25,7 +25,7 @@ class ElasticsearchQueryBuilderOperatorContainsPlugin extends _ElasticsearchQuer
25
25
  query_string: {
26
26
  allow_leading_wildcard: true,
27
27
  fields: [basePath],
28
- query: (0, _normalize.normalizeValue)(value),
28
+ query: `*${(0, _normalize.normalizeValue)(value)}*`,
29
29
  default_operator: "and"
30
30
  }
31
31
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","query_string","allow_leading_wildcard","fields","normalizeValue","default_operator"],"sources":["contains.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AACA;AAGO,MAAMA,+CAA+C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAClF,sDAAsD;EAAA;EAEtEC,WAAW,GAAW;IACzB,OAAO,UAAU;EACrB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,YAAY,EAAE;QACVC,sBAAsB,EAAE,IAAI;QAC5BC,MAAM,EAAE,CAACL,QAAQ,CAAC;QAClBH,KAAK,EAAE,IAAAS,yBAAc,EAACP,KAAK,CAAC;QAC5BQ,gBAAgB,EAAE;MACtB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","query_string","allow_leading_wildcard","fields","normalizeValue","default_operator"],"sources":["contains.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AACA;AAGO,MAAMA,+CAA+C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAClF,sDAAsD;EAAA;EAEtEC,WAAW,GAAW;IACzB,OAAO,UAAU;EACrB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,YAAY,EAAE;QACVC,sBAAsB,EAAE,IAAI;QAC5BC,MAAM,EAAE,CAACL,QAAQ,CAAC;QAClBH,KAAK,EAAG,IAAG,IAAAS,yBAAc,EAACP,KAAK,CAAE,GAAE;QACnCQ,gBAAgB,EAAE;MACtB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -29,14 +29,30 @@ class ElasticsearchQueryBuilderOperatorEqualPlugin extends _ElasticsearchQueryBu
29
29
  });
30
30
  return;
31
31
  }
32
+ const typeOf = typeof value;
33
+ /**
34
+ * If value is a number or boolean, use filtering instead of must/term
35
+ */
36
+ if (typeOf === "number" || typeOf === "boolean") {
37
+ query.filter.push({
38
+ term: {
39
+ [basePath]: value
40
+ }
41
+ });
42
+ return;
43
+ }
32
44
  /**
33
45
  * In case we are searching for a string, use regular path.
34
- * Otherwise use base path
46
+ * Otherwise use base path.
47
+ */
48
+ const useBasePath = typeOf !== "string";
49
+ const valuePath = useBasePath ? basePath : path;
50
+ /**
51
+ * String or something else.
35
52
  */
36
- const useBasePath = typeof value !== "string";
37
- query.must.push({
53
+ query.filter.push({
38
54
  term: {
39
- [useBasePath ? basePath : path]: value
55
+ [valuePath]: value
40
56
  }
41
57
  });
42
58
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorEqualPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","path","basePath","must_not","push","exists","field","useBasePath","must","term"],"sources":["equal.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorEqualPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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 if (value === null) {\n query.must_not.push({\n exists: {\n field: path\n }\n });\n return;\n }\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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,4CAA4C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC/E,mDAAmD;EAAA;EAEnEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAExC,IAAIC,KAAK,KAAK,IAAI,EAAE;MAChBF,KAAK,CAACK,QAAQ,CAACC,IAAI,CAAC;QAChBC,MAAM,EAAE;UACJC,KAAK,EAAEL;QACX;MACJ,CAAC,CAAC;MACF;IACJ;IACA;AACR;AACA;AACA;IACQ,MAAMM,WAAW,GAAG,OAAOP,KAAK,KAAK,QAAQ;IAC7CF,KAAK,CAACU,IAAI,CAACJ,IAAI,CAAC;MACZK,IAAI,EAAE;QACF,CAACF,WAAW,GAAGL,QAAQ,GAAGD,IAAI,GAAGD;MACrC;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorEqualPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","path","basePath","must_not","push","exists","field","typeOf","filter","term","useBasePath","valuePath"],"sources":["equal.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorEqualPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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 if (value === null) {\n query.must_not.push({\n exists: {\n field: path\n }\n });\n return;\n }\n const typeOf = typeof value;\n /**\n * If value is a number or boolean, use filtering instead of must/term\n */\n if (typeOf === \"number\" || typeOf === \"boolean\") {\n query.filter.push({\n term: {\n [basePath]: value\n }\n });\n return;\n }\n /**\n * In case we are searching for a string, use regular path.\n * Otherwise use base path.\n */\n const useBasePath = typeOf !== \"string\";\n const valuePath = useBasePath ? basePath : path;\n /**\n * String or something else.\n */\n query.filter.push({\n term: {\n [valuePath]: value\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,4CAA4C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC/E,mDAAmD;EAAA;EAEnEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAExC,IAAIC,KAAK,KAAK,IAAI,EAAE;MAChBF,KAAK,CAACK,QAAQ,CAACC,IAAI,CAAC;QAChBC,MAAM,EAAE;UACJC,KAAK,EAAEL;QACX;MACJ,CAAC,CAAC;MACF;IACJ;IACA,MAAMM,MAAM,GAAG,OAAOP,KAAK;IAC3B;AACR;AACA;IACQ,IAAIO,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,SAAS,EAAE;MAC7CT,KAAK,CAACU,MAAM,CAACJ,IAAI,CAAC;QACdK,IAAI,EAAE;UACF,CAACP,QAAQ,GAAGF;QAChB;MACJ,CAAC,CAAC;MACF;IACJ;IACA;AACR;AACA;AACA;IACQ,MAAMU,WAAW,GAAGH,MAAM,KAAK,QAAQ;IACvC,MAAMI,SAAS,GAAGD,WAAW,GAAGR,QAAQ,GAAGD,IAAI;IAC/C;AACR;AACA;IACQH,KAAK,CAACU,MAAM,CAACJ,IAAI,CAAC;MACdK,IAAI,EAAE;QACF,CAACE,SAAS,GAAGX;MACjB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -20,7 +20,7 @@ class ElasticsearchQueryBuilderOperatorGreaterThanPlugin extends _ElasticsearchQ
20
20
  value,
21
21
  basePath
22
22
  } = params;
23
- query.must.push({
23
+ query.filter.push({
24
24
  range: {
25
25
  [basePath]: {
26
26
  gt: value
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorGreaterThanPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","gt"],"sources":["gt.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorGreaterThanPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,kDAAkD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACrF,yDAAyD;EAAA;EAEzEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,EAAE,EAAEL;QACR;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorGreaterThanPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","filter","push","range","gt"],"sources":["gt.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorGreaterThanPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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.filter.push({\n range: {\n [basePath]: {\n gt: value\n }\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,kDAAkD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACrF,yDAAyD;EAAA;EAEzEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,MAAM,CAACC,IAAI,CAAC;MACdC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,EAAE,EAAEL;QACR;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -20,7 +20,7 @@ class ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin extends _Elast
20
20
  value,
21
21
  basePath
22
22
  } = params;
23
- query.must.push({
23
+ query.filter.push({
24
24
  range: {
25
25
  [basePath]: {
26
26
  gte: value
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","gte"],"sources":["gte.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,2DAA2D,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC9F,kEAAkE;EAAA;EAElFC,WAAW,GAAW;IACzB,OAAO,KAAK;EAChB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,GAAG,EAAEL;QACT;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","filter","push","range","gte"],"sources":["gte.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorGreaterThanOrEqualToPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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.filter.push({\n range: {\n [basePath]: {\n gte: value\n }\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,2DAA2D,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC9F,kEAAkE;EAAA;EAElFC,WAAW,GAAW;IACzB,OAAO,KAAK;EAChB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,MAAM,CAACC,IAAI,CAAC;MACdC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,GAAG,EAAEL;QACT;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -19,21 +19,17 @@ class ElasticsearchQueryBuilderOperatorInPlugin extends _ElasticsearchQueryBuild
19
19
  const {
20
20
  value: values,
21
21
  path,
22
- basePath
22
+ basePath,
23
+ name
23
24
  } = params;
24
25
  const isArray = Array.isArray(values);
25
26
  if (isArray === false || values.length === 0) {
26
- throw new Error(`You cannot filter field "${path}" with "in" operator and not send an array of values.`);
27
+ throw new Error(`You cannot filter field "${name}" with "in" operator and not send an array of values.`);
27
28
  }
28
- let useBasePath = false;
29
+
29
30
  // Only use ".keyword" if all of the provided values are strings.
30
- for (const value of values) {
31
- if (typeof value !== "string") {
32
- useBasePath = true;
33
- break;
34
- }
35
- }
36
- query.must.push({
31
+ const useBasePath = values.some(value => typeof value !== "string");
32
+ query.filter.push({
37
33
  terms: {
38
34
  [useBasePath ? basePath : path]: values
39
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","must","push","terms"],"sources":["in.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,yCAAyC,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC5E,gDAAgD;EAAA;EAEhEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGJ,MAAM;IAChD,MAAMK,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACH,MAAM,CAAC;IACrC,IAAIG,OAAO,KAAK,KAAK,IAAIH,MAAM,CAACK,MAAM,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIC,KAAK,CACV,4BAA2BL,IAAK,uDAAsD,CAC1F;IACL;IAEA,IAAIM,WAAW,GAAG,KAAK;IACvB;IACA,KAAK,MAAMR,KAAK,IAAIC,MAAM,EAAE;MACxB,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;QAC3BQ,WAAW,GAAG,IAAI;QAClB;MACJ;IACJ;IAEAV,KAAK,CAACW,IAAI,CAACC,IAAI,CAAC;MACZC,KAAK,EAAE;QACH,CAACH,WAAW,GAAGL,QAAQ,GAAGD,IAAI,GAAGD;MACrC;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","name","isArray","Array","length","Error","useBasePath","some","filter","push","terms"],"sources":["in.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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, name } = params;\n const isArray = Array.isArray(values);\n if (isArray === false || values.length === 0) {\n throw new Error(\n `You cannot filter field \"${name}\" with \"in\" operator and not send an array of values.`\n );\n }\n\n // Only use \".keyword\" if all of the provided values are strings.\n const useBasePath = values.some(\n (value: string | number | boolean | null | undefined) => typeof value !== \"string\"\n );\n\n query.filter.push({\n terms: {\n [useBasePath ? basePath : path]: values\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,yCAAyC,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC5E,gDAAgD;EAAA;EAEhEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAEC,IAAI;MAAEC,QAAQ;MAAEC;IAAK,CAAC,GAAGL,MAAM;IACtD,MAAMM,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACJ,MAAM,CAAC;IACrC,IAAII,OAAO,KAAK,KAAK,IAAIJ,MAAM,CAACM,MAAM,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIC,KAAK,CACV,4BAA2BJ,IAAK,uDAAsD,CAC1F;IACL;;IAEA;IACA,MAAMK,WAAW,GAAGR,MAAM,CAACS,IAAI,CAC1BV,KAAmD,IAAK,OAAOA,KAAK,KAAK,QAAQ,CACrF;IAEDF,KAAK,CAACa,MAAM,CAACC,IAAI,CAAC;MACdC,KAAK,EAAE;QACH,CAACJ,WAAW,GAAGN,QAAQ,GAAGD,IAAI,GAAGD;MACrC;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -30,14 +30,14 @@ class ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin extends _Elasticse
30
30
  const value = (0, _normalize.normalizeValue)(initialValue);
31
31
  query.must.push({
32
32
  multi_match: {
33
- query: value,
33
+ query: `*${value}*`,
34
34
  type: "phrase",
35
35
  fields: [`${basePath}.ngram`]
36
36
  }
37
37
  });
38
38
  query.should.push({
39
39
  multi_match: {
40
- query: value,
40
+ query: `*${value}*`,
41
41
  type: "phrase",
42
42
  fields: [`${basePath}`]
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","isLocaleSupported","code","includes","toLowerCase","getOperator","apply","query","params","value","initialValue","basePath","normalizeValue","must","push","multi_match","type","fields","should"],"sources":["contains.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.contains.japanese\";\n\n public override isLocaleSupported(code: string): boolean {\n if (!code) {\n return false;\n }\n return [\"ja\", \"ja-jp\"].includes(code.toLowerCase());\n }\n\n public getOperator(): string {\n return \"contains\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value: initialValue, basePath } = params;\n\n const value = normalizeValue(initialValue);\n query.must.push({\n multi_match: {\n query: value,\n type: \"phrase\",\n fields: [`${basePath}.ngram`]\n }\n });\n query.should.push({\n multi_match: {\n query: value,\n type: \"phrase\",\n fields: [`${basePath}`]\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AAGO,MAAMA,uDAAuD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC1F,uDAAuD;EAAA;EAE9DC,iBAAiB,CAACC,IAAY,EAAW;IACrD,IAAI,CAACA,IAAI,EAAE;MACP,OAAO,KAAK;IAChB;IACA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,IAAI,CAACE,WAAW,EAAE,CAAC;EACvD;EAEOC,WAAW,GAAW;IACzB,OAAO,UAAU;EACrB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,YAAY;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAEhD,MAAMC,KAAK,GAAG,IAAAG,yBAAc,EAACF,YAAY,CAAC;IAC1CH,KAAK,CAACM,IAAI,CAACC,IAAI,CAAC;MACZC,WAAW,EAAE;QACTR,KAAK,EAAEE,KAAK;QACZO,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,CAAE,GAAEN,QAAS,QAAO;MAChC;IACJ,CAAC,CAAC;IACFJ,KAAK,CAACW,MAAM,CAACJ,IAAI,CAAC;MACdC,WAAW,EAAE;QACTR,KAAK,EAAEE,KAAK;QACZO,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,CAAE,GAAEN,QAAS,EAAC;MAC1B;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","isLocaleSupported","code","includes","toLowerCase","getOperator","apply","query","params","value","initialValue","basePath","normalizeValue","must","push","multi_match","type","fields","should"],"sources":["contains.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderJapaneseOperatorContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.contains.japanese\";\n\n public override isLocaleSupported(code: string): boolean {\n if (!code) {\n return false;\n }\n return [\"ja\", \"ja-jp\"].includes(code.toLowerCase());\n }\n\n public getOperator(): string {\n return \"contains\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value: initialValue, basePath } = params;\n\n const value = normalizeValue(initialValue);\n query.must.push({\n multi_match: {\n query: `*${value}*`,\n type: \"phrase\",\n fields: [`${basePath}.ngram`]\n }\n });\n query.should.push({\n multi_match: {\n query: `*${value}*`,\n type: \"phrase\",\n fields: [`${basePath}`]\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AAGO,MAAMA,uDAAuD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC1F,uDAAuD;EAAA;EAE9DC,iBAAiB,CAACC,IAAY,EAAW;IACrD,IAAI,CAACA,IAAI,EAAE;MACP,OAAO,KAAK;IAChB;IACA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,IAAI,CAACE,WAAW,EAAE,CAAC;EACvD;EAEOC,WAAW,GAAW;IACzB,OAAO,UAAU;EACrB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,YAAY;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAEhD,MAAMC,KAAK,GAAG,IAAAG,yBAAc,EAACF,YAAY,CAAC;IAC1CH,KAAK,CAACM,IAAI,CAACC,IAAI,CAAC;MACZC,WAAW,EAAE;QACTR,KAAK,EAAG,IAAGE,KAAM,GAAE;QACnBO,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,CAAE,GAAEN,QAAS,QAAO;MAChC;IACJ,CAAC,CAAC;IACFJ,KAAK,CAACW,MAAM,CAACJ,IAAI,CAAC;MACdC,WAAW,EAAE;QACTR,KAAK,EAAG,IAAGE,KAAM,GAAE;QACnBO,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,CAAE,GAAEN,QAAS,EAAC;MAC1B;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -20,7 +20,7 @@ class ElasticsearchQueryBuilderOperatorLesserThanPlugin extends _ElasticsearchQu
20
20
  value,
21
21
  basePath
22
22
  } = params;
23
- query.must.push({
23
+ query.filter.push({
24
24
  range: {
25
25
  [basePath]: {
26
26
  lt: value
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorLesserThanPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","lt"],"sources":["lt.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorLesserThanPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,iDAAiD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACpF,wDAAwD;EAAA;EAExEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,EAAE,EAAEL;QACR;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorLesserThanPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","filter","push","range","lt"],"sources":["lt.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorLesserThanPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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.filter.push({\n range: {\n [basePath]: {\n lt: value\n }\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,iDAAiD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACpF,wDAAwD;EAAA;EAExEC,WAAW,GAAW;IACzB,OAAO,IAAI;EACf;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,MAAM,CAACC,IAAI,CAAC;MACdC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,EAAE,EAAEL;QACR;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -20,7 +20,7 @@ class ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin extends _Elasti
20
20
  value,
21
21
  basePath
22
22
  } = params;
23
- query.must.push({
23
+ query.filter.push({
24
24
  range: {
25
25
  [basePath]: {
26
26
  lte: value
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","range","lte"],"sources":["lte.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,0DAA0D,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC7F,iEAAiE;EAAA;EAEjFC,WAAW,GAAW;IACzB,OAAO,KAAK;EAChB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,GAAG,EAAEL;QACT;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","filter","push","range","lte"],"sources":["lte.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorLesserThanOrEqualToPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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.filter.push({\n range: {\n [basePath]: {\n lte: value\n }\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,0DAA0D,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC7F,iEAAiE;EAAA;EAEjFC,WAAW,GAAW;IACzB,OAAO,KAAK;EAChB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,MAAM,CAACC,IAAI,CAAC;MACdC,KAAK,EAAE;QACH,CAACH,QAAQ,GAAG;UACRI,GAAG,EAAEL;QACT;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -22,17 +22,27 @@ class ElasticsearchQueryBuilderOperatorNotPlugin extends _ElasticsearchQueryBuil
22
22
  basePath
23
23
  } = params;
24
24
  if (value === null) {
25
- query.must.push({
25
+ query.filter.push({
26
26
  exists: {
27
27
  field: path
28
28
  }
29
29
  });
30
30
  return;
31
31
  }
32
- const useBasePath = typeof value !== "string";
32
+ const typeOf = typeof value;
33
+ if (typeOf === "boolean") {
34
+ query.filter.push({
35
+ term: {
36
+ [basePath]: !value
37
+ }
38
+ });
39
+ return;
40
+ }
41
+ const useBasePath = typeOf !== "string";
42
+ const valuePath = useBasePath ? basePath : path;
33
43
  query.must_not.push({
34
44
  term: {
35
- [useBasePath ? basePath : path]: value
45
+ [valuePath]: value
36
46
  }
37
47
  });
38
48
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","path","basePath","must","push","exists","field","useBasePath","must_not","term"],"sources":["not.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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 if (value === null) {\n query.must.push({\n exists: {\n field: path\n }\n });\n return;\n }\n\n const useBasePath = typeof value !== \"string\";\n query.must_not.push({\n term: {\n [useBasePath ? basePath : path]: value\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,0CAA0C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC7E,iDAAiD;EAAA;EAEjEC,WAAW,GAAW;IACzB,OAAO,KAAK;EAChB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAExC,IAAIC,KAAK,KAAK,IAAI,EAAE;MAChBF,KAAK,CAACK,IAAI,CAACC,IAAI,CAAC;QACZC,MAAM,EAAE;UACJC,KAAK,EAAEL;QACX;MACJ,CAAC,CAAC;MACF;IACJ;IAEA,MAAMM,WAAW,GAAG,OAAOP,KAAK,KAAK,QAAQ;IAC7CF,KAAK,CAACU,QAAQ,CAACJ,IAAI,CAAC;MAChBK,IAAI,EAAE;QACF,CAACF,WAAW,GAAGL,QAAQ,GAAGD,IAAI,GAAGD;MACrC;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","path","basePath","filter","push","exists","field","typeOf","term","useBasePath","valuePath","must_not"],"sources":["not.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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 if (value === null) {\n query.filter.push({\n exists: {\n field: path\n }\n });\n return;\n }\n\n const typeOf = typeof value;\n\n if (typeOf === \"boolean\") {\n query.filter.push({\n term: {\n [basePath]: !value\n }\n });\n return;\n }\n\n const useBasePath = typeOf !== \"string\";\n const valuePath = useBasePath ? basePath : path;\n query.must_not.push({\n term: {\n [valuePath]: value\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,0CAA0C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC7E,iDAAiD;EAAA;EAEjEC,WAAW,GAAW;IACzB,OAAO,KAAK;EAChB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAExC,IAAIC,KAAK,KAAK,IAAI,EAAE;MAChBF,KAAK,CAACK,MAAM,CAACC,IAAI,CAAC;QACdC,MAAM,EAAE;UACJC,KAAK,EAAEL;QACX;MACJ,CAAC,CAAC;MACF;IACJ;IAEA,MAAMM,MAAM,GAAG,OAAOP,KAAK;IAE3B,IAAIO,MAAM,KAAK,SAAS,EAAE;MACtBT,KAAK,CAACK,MAAM,CAACC,IAAI,CAAC;QACdI,IAAI,EAAE;UACF,CAACN,QAAQ,GAAG,CAACF;QACjB;MACJ,CAAC,CAAC;MACF;IACJ;IAEA,MAAMS,WAAW,GAAGF,MAAM,KAAK,QAAQ;IACvC,MAAMG,SAAS,GAAGD,WAAW,GAAGP,QAAQ,GAAGD,IAAI;IAC/CH,KAAK,CAACa,QAAQ,CAACP,IAAI,CAAC;MAChBI,IAAI,EAAE;QACF,CAACE,SAAS,GAAGV;MACjB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -18,12 +18,13 @@ class ElasticsearchQueryBuilderOperatorNotBetweenPlugin extends _ElasticsearchQu
18
18
  apply(query, params) {
19
19
  const {
20
20
  value,
21
- basePath
21
+ basePath,
22
+ name
22
23
  } = params;
23
24
  if (Array.isArray(value) === false) {
24
- throw new Error(`You cannot filter field path "${basePath}" with between query and not send an array of values.`);
25
+ throw new Error(`You cannot filter field path "${name}" with "not_between" query and not send an array of values.`);
25
26
  } else if (value.length !== 2) {
26
- throw new Error(`You must pass 2 values in the array for field path "${basePath}" filtering.`);
27
+ throw new Error(`You must pass 2 values in the array for field path "${name}" filtering.`);
27
28
  }
28
29
  // we take gte first because it should be a lesser value than lte, eg [5, 10]
29
30
  // 6 >= gte && 6 <= lte === true which in this case it means that record will not match
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotBetweenPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","Array","isArray","Error","length","gte","lte","must_not","push","range"],"sources":["notBetween.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotBetweenPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,iDAAiD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACpF,wDAAwD;EAAA;EAExEC,WAAW,GAAW;IACzB,OAAO,aAAa;EACxB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClC,IAAIG,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,KAAK,KAAK,EAAE;MAChC,MAAM,IAAII,KAAK,CACV,iCAAgCH,QAAS,uDAAsD,CACnG;IACL,CAAC,MAAM,IAAID,KAAK,CAACK,MAAM,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAID,KAAK,CACV,uDAAsDH,QAAS,cAAa,CAChF;IACL;IACA;IACA;IACA,MAAM,CAACK,GAAG,EAAEC,GAAG,CAAC,GAAGP,KAAK;IACxBF,KAAK,CAACU,QAAQ,CAACC,IAAI,CAAC;MAChBC,KAAK,EAAE;QACH,CAACT,QAAQ,GAAG;UACRM,GAAG;UACHD;QACJ;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotBetweenPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","name","Array","isArray","Error","length","gte","lte","must_not","push","range"],"sources":["notBetween.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotBetweenPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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, name } = params;\n if (Array.isArray(value) === false) {\n throw new Error(\n `You cannot filter field path \"${name}\" with \"not_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 \"${name}\" 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"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,iDAAiD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACpF,wDAAwD;EAAA;EAExEC,WAAW,GAAW;IACzB,OAAO,aAAa;EACxB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAK,CAAC,GAAGH,MAAM;IACxC,IAAII,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,KAAK,KAAK,EAAE;MAChC,MAAM,IAAIK,KAAK,CACV,iCAAgCH,IAAK,6DAA4D,CACrG;IACL,CAAC,MAAM,IAAIF,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAID,KAAK,CACV,uDAAsDH,IAAK,cAAa,CAC5E;IACL;IACA;IACA;IACA,MAAM,CAACK,GAAG,EAAEC,GAAG,CAAC,GAAGR,KAAK;IACxBF,KAAK,CAACW,QAAQ,CAACC,IAAI,CAAC;MAChBC,KAAK,EAAE;QACH,CAACV,QAAQ,GAAG;UACRO,GAAG;UACHD;QACJ;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -25,7 +25,7 @@ class ElasticsearchQueryBuilderOperatorNotContainsPlugin extends _ElasticsearchQ
25
25
  query_string: {
26
26
  allow_leading_wildcard: true,
27
27
  fields: [basePath],
28
- query: (0, _normalize.normalizeValue)(value),
28
+ query: `*${(0, _normalize.normalizeValue)(value)}*`,
29
29
  default_operator: "and"
30
30
  }
31
31
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must_not","push","query_string","allow_leading_wildcard","fields","normalizeValue","default_operator"],"sources":["notContains.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AACA;AAGO,MAAMA,kDAAkD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACrF,yDAAyD;EAAA;EAEzEC,WAAW,GAAW;IACzB,OAAO,cAAc;EACzB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,QAAQ,CAACC,IAAI,CAAC;MAChBC,YAAY,EAAE;QACVC,sBAAsB,EAAE,IAAI;QAC5BC,MAAM,EAAE,CAACL,QAAQ,CAAC;QAClBH,KAAK,EAAE,IAAAS,yBAAc,EAACP,KAAK,CAAC;QAC5BQ,gBAAgB,EAAE;MACtB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotContainsPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must_not","push","query_string","allow_leading_wildcard","fields","normalizeValue","default_operator"],"sources":["notContains.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { normalizeValue } from \"~/normalize\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotContainsPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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"],"mappings":";;;;;;;;AAAA;AACA;AAGO,MAAMA,kDAAkD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACrF,yDAAyD;EAAA;EAEzEC,WAAW,GAAW;IACzB,OAAO,cAAc;EACzB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,QAAQ,CAACC,IAAI,CAAC;MAChBC,YAAY,EAAE;QACVC,sBAAsB,EAAE,IAAI;QAC5BC,MAAM,EAAE,CAACL,QAAQ,CAAC;QAClBH,KAAK,EAAG,IAAG,IAAAS,yBAAc,EAACP,KAAK,CAAE,GAAE;QACnCQ,gBAAgB,EAAE;MACtB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -19,11 +19,12 @@ class ElasticsearchQueryBuilderOperatorNotInPlugin extends _ElasticsearchQueryBu
19
19
  const {
20
20
  value: values,
21
21
  path,
22
- basePath
22
+ basePath,
23
+ name
23
24
  } = params;
24
25
  const isArray = Array.isArray(values);
25
26
  if (isArray === false || values.length === 0) {
26
- throw new Error(`You cannot filter field path "${basePath}" with not_in and not send an array of values.`);
27
+ throw new Error(`You cannot filter field "${name}" with "not_in" operator and not send an array of values.`);
27
28
  }
28
29
  const useBasePath = values.some(value => typeof value !== "string");
29
30
  query.must_not.push({
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","isArray","Array","length","Error","useBasePath","some","must_not","push","terms"],"sources":["notIn.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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(\n (value: string | number | boolean | null | undefined) => typeof value !== \"string\"\n );\n\n query.must_not.push({\n terms: {\n [useBasePath ? basePath : path]: values\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,4CAA4C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC/E,mDAAmD;EAAA;EAEnEC,WAAW,GAAW;IACzB,OAAO,QAAQ;EACnB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGJ,MAAM;IAChD,MAAMK,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACH,MAAM,CAAC;IACrC,IAAIG,OAAO,KAAK,KAAK,IAAIH,MAAM,CAACK,MAAM,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIC,KAAK,CACV,iCAAgCJ,QAAS,gDAA+C,CAC5F;IACL;IAEA,MAAMK,WAAW,GAAGP,MAAM,CAACQ,IAAI,CAC1BT,KAAmD,IAAK,OAAOA,KAAK,KAAK,QAAQ,CACrF;IAEDF,KAAK,CAACY,QAAQ,CAACC,IAAI,CAAC;MAChBC,KAAK,EAAE;QACH,CAACJ,WAAW,GAAGL,QAAQ,GAAGD,IAAI,GAAGD;MACrC;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorNotInPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","values","path","basePath","name","isArray","Array","length","Error","useBasePath","some","must_not","push","terms"],"sources":["notIn.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorNotInPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override 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, name } = params;\n const isArray = Array.isArray(values);\n if (isArray === false || values.length === 0) {\n throw new Error(\n `You cannot filter field \"${name}\" with \"not_in\" operator and not send an array of values.`\n );\n }\n\n const useBasePath = values.some(\n (value: string | number | boolean | null | undefined) => typeof value !== \"string\"\n );\n\n query.must_not.push({\n terms: {\n [useBasePath ? basePath : path]: values\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,4CAA4C,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CAC/E,mDAAmD;EAAA;EAEnEC,WAAW,GAAW;IACzB,OAAO,QAAQ;EACnB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAEC,IAAI;MAAEC,QAAQ;MAAEC;IAAK,CAAC,GAAGL,MAAM;IACtD,MAAMM,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACJ,MAAM,CAAC;IACrC,IAAII,OAAO,KAAK,KAAK,IAAIJ,MAAM,CAACM,MAAM,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIC,KAAK,CACV,4BAA2BJ,IAAK,2DAA0D,CAC9F;IACL;IAEA,MAAMK,WAAW,GAAGR,MAAM,CAACS,IAAI,CAC1BV,KAAmD,IAAK,OAAOA,KAAK,KAAK,QAAQ,CACrF;IAEDF,KAAK,CAACa,QAAQ,CAACC,IAAI,CAAC;MAChBC,KAAK,EAAE;QACH,CAACJ,WAAW,GAAGN,QAAQ,GAAGD,IAAI,GAAGD;MACrC;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -20,7 +20,7 @@ class ElasticsearchQueryBuilderOperatorStartsWithPlugin extends _ElasticsearchQu
20
20
  value,
21
21
  basePath
22
22
  } = params;
23
- query.must.push({
23
+ query.filter.push({
24
24
  match_phrase_prefix: {
25
25
  [basePath]: value
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ElasticsearchQueryBuilderOperatorStartsWithPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","must","push","match_phrase_prefix"],"sources":["startsWith.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorStartsWithPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.startsWith.default\";\n\n public getOperator(): string {\n return \"startsWith\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.must.push({\n match_phrase_prefix: {\n [basePath]: value\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,iDAAiD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACpF,wDAAwD;EAAA;EAExEC,WAAW,GAAW;IACzB,OAAO,YAAY;EACvB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,IAAI,CAACC,IAAI,CAAC;MACZC,mBAAmB,EAAE;QACjB,CAACH,QAAQ,GAAGD;MAChB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["ElasticsearchQueryBuilderOperatorStartsWithPlugin","ElasticsearchQueryBuilderOperatorPlugin","getOperator","apply","query","params","value","basePath","filter","push","match_phrase_prefix"],"sources":["startsWith.ts"],"sourcesContent":["import { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { ElasticsearchBoolQueryConfig, ElasticsearchQueryBuilderArgsPlugin } from \"~/types\";\n\nexport class ElasticsearchQueryBuilderOperatorStartsWithPlugin extends ElasticsearchQueryBuilderOperatorPlugin {\n public override name = \"elasticsearch.queryBuilder.operator.startsWith.default\";\n\n public getOperator(): string {\n return \"startsWith\";\n }\n\n public apply(\n query: ElasticsearchBoolQueryConfig,\n params: ElasticsearchQueryBuilderArgsPlugin\n ): void {\n const { value, basePath } = params;\n query.filter.push({\n match_phrase_prefix: {\n [basePath]: value\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,iDAAiD,SAASC,gFAAuC,CAAC;EAAA;IAAA;IAAA,4CACpF,wDAAwD;EAAA;EAExEC,WAAW,GAAW;IACzB,OAAO,YAAY;EACvB;EAEOC,KAAK,CACRC,KAAmC,EACnCC,MAA2C,EACvC;IACJ,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAGF,MAAM;IAClCD,KAAK,CAACI,MAAM,CAACC,IAAI,CAAC;MACdC,mBAAmB,EAAE;QACjB,CAACH,QAAQ,GAAGD;MAChB;IACJ,CAAC,CAAC;EACN;AACJ;AAAC"}
package/sort.d.ts CHANGED
@@ -1,11 +1,7 @@
1
1
  import { SortType, SortOrder } from "./types";
2
- import { ElasticsearchFieldPlugin } from "./plugins/definition/ElasticsearchFieldPlugin";
3
- interface SortOption {
4
- path: string;
5
- order: "ASC" | "DESC" | "asc" | "desc";
6
- }
2
+ import { ElasticsearchFieldPlugin } from "./plugins";
7
3
  interface CreateSortParams {
8
- sort: string[] | SortOption[];
4
+ sort: string[];
9
5
  defaults?: {
10
6
  field?: string;
11
7
  order?: SortOrder;
package/sort.js CHANGED
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.createSort = void 0;
8
8
  var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _plugins = require("./plugins");
9
10
  const sortRegExp = new RegExp(/^([a-zA-Z-0-9_@]+)_(ASC|DESC)$/);
10
- // TODO refactor so the sort input is of SortOption type
11
11
  const createSort = params => {
12
12
  const {
13
13
  sort,
@@ -33,7 +33,6 @@ const createSort = params => {
33
33
  /**
34
34
  * Cast as string because nothing else should be allowed yet.
35
35
  */
36
- // @ts-refactor
37
36
  return sort.reduce((acc, value) => {
38
37
  if (typeof value !== "string") {
39
38
  throw new _error.default(`Sort as object is not supported..`);
@@ -44,7 +43,7 @@ const createSort = params => {
44
43
  }
45
44
  const [, field, initialOrder] = match;
46
45
  const order = initialOrder.toLowerCase() === "asc" ? "asc" : "desc";
47
- const plugin = fieldPlugins[field] || fieldPlugins["*"];
46
+ const plugin = fieldPlugins[field] || fieldPlugins[_plugins.ElasticsearchFieldPlugin.ALL];
48
47
  if (!plugin) {
49
48
  throw new _error.default(`Missing plugin for the field "${field}"`, "PLUGIN_SORT_ERROR", {
50
49
  field
package/sort.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["sortRegExp","RegExp","createSort","params","sort","defaults","fieldPlugins","length","field","order","unmappedType","unmapped_type","undefined","reduce","acc","value","WebinyError","match","initialOrder","toLowerCase","plugin","path","getPath","getSortOptions"],"sources":["sort.ts"],"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\ninterface SortOption {\n path: string;\n order: \"ASC\" | \"DESC\" | \"asc\" | \"desc\";\n}\ninterface CreateSortParams {\n sort: string[] | SortOption[];\n defaults?: {\n field?: string;\n order?: SortOrder;\n unmappedType?: string;\n };\n fieldPlugins: Record<string, ElasticsearchFieldPlugin>;\n}\n// TODO refactor so the sort input is of SortOption type\nexport const createSort = (params: CreateSortParams): 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 * Cast as string because nothing else should be allowed yet.\n */\n // @ts-refactor\n return (sort as string[]).reduce((acc, value) => {\n if (typeof value !== \"string\") {\n throw new WebinyError(`Sort as object is not supported..`);\n }\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"],"mappings":";;;;;;;AAAA;AAIA,MAAMA,UAAU,GAAG,IAAIC,MAAM,CAAC,gCAAgC,CAAC;AAe/D;AACO,MAAMC,UAAU,GAAIC,MAAwB,IAAe;EAC9D,MAAM;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAGH,MAAM;EAC/C,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACG,MAAM,KAAK,CAAC,EAAE;IAC5B,MAAM;MAAEC,KAAK;MAAEC,KAAK;MAAEC;IAAa,CAAC,GAAGL,QAAQ,IAAI,CAAC,CAAC;IACrD;AACR;AACA;IACQ,OAAO;MACH,CAACG,KAAK,IAAI,YAAY,GAAG;QACrBC,KAAK,EAAEA,KAAK,IAAI,MAAM;QACtBE,aAAa,EAAED,YAAY,IAAIE;MACnC;IACJ,CAAC;EACL;EACA;AACJ;AACA;EACI;EACA,OAAQR,IAAI,CAAcS,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC7C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC3B,MAAM,IAAIC,cAAW,CAAE,mCAAkC,CAAC;IAC9D;IACA,MAAMC,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACjB,UAAU,CAAC;IAErC,IAAI,CAACiB,KAAK,EAAE;MACR,MAAM,IAAID,cAAW,CAAE,mBAAkBD,KAAM,IAAG,CAAC;IACvD;IAEA,MAAM,GAAGP,KAAK,EAAEU,YAAY,CAAC,GAAGD,KAAK;IACrC,MAAMR,KAAgB,GAAGS,YAAY,CAACC,WAAW,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM;IAE9E,MAAMC,MAAgC,GAAGd,YAAY,CAACE,KAAK,CAAC,IAAIF,YAAY,CAAC,GAAG,CAAC;IACjF,IAAI,CAACc,MAAM,EAAE;MACT,MAAM,IAAIJ,cAAW,CAAE,iCAAgCR,KAAM,GAAE,EAAE,mBAAmB,EAAE;QAClFA;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;AACA;IACQ,MAAMa,IAAI,GAAGD,MAAM,CAACE,OAAO,CAACd,KAAK,CAAC;IAElCM,GAAG,CAACO,IAAI,CAAC,GAAGD,MAAM,CAACG,cAAc,CAACd,KAAK,CAAC;IAExC,OAAOK,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAqC;AAC9C,CAAC;AAAC"}
1
+ {"version":3,"names":["sortRegExp","RegExp","createSort","params","sort","defaults","fieldPlugins","length","field","order","unmappedType","unmapped_type","undefined","reduce","acc","value","WebinyError","match","initialOrder","toLowerCase","plugin","ElasticsearchFieldPlugin","ALL","path","getPath","getSortOptions"],"sources":["sort.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { FieldSortOptions, SortType, SortOrder } from \"~/types\";\nimport { ElasticsearchFieldPlugin } from \"~/plugins\";\n\nconst sortRegExp = new RegExp(/^([a-zA-Z-0-9_@]+)_(ASC|DESC)$/);\n\ninterface CreateSortParams {\n sort: string[];\n defaults?: {\n field?: string;\n order?: SortOrder;\n unmappedType?: string;\n };\n fieldPlugins: Record<string, ElasticsearchFieldPlugin>;\n}\n\nexport const createSort = (params: CreateSortParams): 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 * Cast as string because nothing else should be allowed yet.\n */\n return sort.reduce((acc, value) => {\n if (typeof value !== \"string\") {\n throw new WebinyError(`Sort as object is not supported..`);\n }\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 =\n fieldPlugins[field] || fieldPlugins[ElasticsearchFieldPlugin.ALL];\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"],"mappings":";;;;;;;AAAA;AAEA;AAEA,MAAMA,UAAU,GAAG,IAAIC,MAAM,CAAC,gCAAgC,CAAC;AAYxD,MAAMC,UAAU,GAAIC,MAAwB,IAAe;EAC9D,MAAM;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAGH,MAAM;EAC/C,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACG,MAAM,KAAK,CAAC,EAAE;IAC5B,MAAM;MAAEC,KAAK;MAAEC,KAAK;MAAEC;IAAa,CAAC,GAAGL,QAAQ,IAAI,CAAC,CAAC;IACrD;AACR;AACA;IACQ,OAAO;MACH,CAACG,KAAK,IAAI,YAAY,GAAG;QACrBC,KAAK,EAAEA,KAAK,IAAI,MAAM;QACtBE,aAAa,EAAED,YAAY,IAAIE;MACnC;IACJ,CAAC;EACL;EACA;AACJ;AACA;EACI,OAAOR,IAAI,CAACS,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC/B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC3B,MAAM,IAAIC,cAAW,CAAE,mCAAkC,CAAC;IAC9D;IACA,MAAMC,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACjB,UAAU,CAAC;IAErC,IAAI,CAACiB,KAAK,EAAE;MACR,MAAM,IAAID,cAAW,CAAE,mBAAkBD,KAAM,IAAG,CAAC;IACvD;IAEA,MAAM,GAAGP,KAAK,EAAEU,YAAY,CAAC,GAAGD,KAAK;IACrC,MAAMR,KAAgB,GAAGS,YAAY,CAACC,WAAW,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM;IAE9E,MAAMC,MAAgC,GAClCd,YAAY,CAACE,KAAK,CAAC,IAAIF,YAAY,CAACe,iCAAwB,CAACC,GAAG,CAAC;IACrE,IAAI,CAACF,MAAM,EAAE;MACT,MAAM,IAAIJ,cAAW,CAAE,iCAAgCR,KAAM,GAAE,EAAE,mBAAmB,EAAE;QAClFA;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;AACA;IACQ,MAAMe,IAAI,GAAGH,MAAM,CAACI,OAAO,CAAChB,KAAK,CAAC;IAElCM,GAAG,CAACS,IAAI,CAAC,GAAGH,MAAM,CAACK,cAAc,CAAChB,KAAK,CAAC;IAExC,OAAOK,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAqC;AAC9C,CAAC;AAAC"}
package/types.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Client } from "@elastic/elasticsearch";
2
- import { ApiResponse } from "@elastic/elasticsearch/lib/Transport";
1
+ import { Client, ApiResponse } from "@elastic/elasticsearch";
3
2
  import { BoolQueryConfig as esBoolQueryConfig, Query as esQuery } from "elastic-ts";
4
3
  import { Context } from "@webiny/api/types";
5
4
  /**
@@ -25,7 +24,7 @@ export interface ElasticsearchBoolQueryConfig extends esBoolQueryConfig {
25
24
  *
26
25
  * @category Elasticsearch
27
26
  */
28
- export declare type ElasticsearchQueryOperator = "eq" | "not" | "in" | "not_in" | "contains" | "not_contains" | "between" | "not_between" | "gt" | "gte" | "lt" | "lte";
27
+ export declare type ElasticsearchQueryOperator = "eq" | "not" | "in" | "not_in" | "contains" | "not_contains" | "between" | "not_between" | "gt" | "gte" | "lt" | "lte" | string;
29
28
  /**
30
29
  * Definition for arguments of the ElasticsearchQueryBuilderOperatorPlugin.apply method.
31
30
  *
@@ -35,6 +34,10 @@ export declare type ElasticsearchQueryOperator = "eq" | "not" | "in" | "not_in"
35
34
  * @category Elasticsearch
36
35
  */
37
36
  export interface ElasticsearchQueryBuilderArgsPlugin {
37
+ /**
38
+ * Name of the field.
39
+ */
40
+ name: string;
38
41
  /**
39
42
  * A full path to the field. Including the ".keyword" if it is added.
40
43
  */
package/types.js CHANGED
@@ -9,10 +9,10 @@ var _exportNames = {
9
9
  Object.defineProperty(exports, "ApiResponse", {
10
10
  enumerable: true,
11
11
  get: function () {
12
- return _Transport.ApiResponse;
12
+ return _elasticsearch.ApiResponse;
13
13
  }
14
14
  });
15
- var _Transport = require("@elastic/elasticsearch/lib/Transport");
15
+ var _elasticsearch = require("@elastic/elasticsearch");
16
16
  var _elasticTs = require("elastic-ts");
17
17
  Object.keys(_elasticTs).forEach(function (key) {
18
18
  if (key === "default" || key === "__esModule") return;
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { Client } from \"@elastic/elasticsearch\";\nimport { ApiResponse } from \"@elastic/elasticsearch/lib/Transport\";\nimport { BoolQueryConfig as esBoolQueryConfig, Query as esQuery } from \"elastic-ts\";\nimport { Context } from \"@webiny/api/types\";\n/**\n * Re-export some dep lib types.\n */\nexport * from \"elastic-ts\";\nexport { ApiResponse };\n\nexport interface ElasticsearchContext extends Context {\n elasticsearch: Client;\n}\n\n/**\n * To simplify our plugins, we say that query contains arrays of objects, not single objects.\n * And that they all are defined as empty arrays at the start.\n */\nexport interface ElasticsearchBoolQueryConfig extends esBoolQueryConfig {\n must: esQuery[];\n filter: esQuery[];\n should: esQuery[];\n must_not: esQuery[];\n}\n\n/**\n * Definitions of possible Elasticsearch operators.\n *\n * @category Elasticsearch\n */\nexport type ElasticsearchQueryOperator =\n | \"eq\"\n | \"not\"\n | \"in\"\n | \"not_in\"\n | \"contains\"\n | \"not_contains\"\n | \"between\"\n | \"not_between\"\n | \"gt\"\n | \"gte\"\n | \"lt\"\n | \"lte\";\n\n/**\n * Definition for arguments of the ElasticsearchQueryBuilderOperatorPlugin.apply method.\n *\n * @see ElasticsearchQueryBuilderOperatorPlugin.apply\n *\n * @category Plugin\n * @category Elasticsearch\n */\nexport interface ElasticsearchQueryBuilderArgsPlugin {\n /**\n * A full path to the field. Including the \".keyword\" if it is added.\n */\n path: string;\n /**\n * A path to the field, plain.\n */\n basePath: string;\n /**\n * Value to apply.\n */\n value: any;\n /**\n * Is path containing the \".keyword\"\n */\n keyword: boolean;\n}\n\n/**\n * Elasticsearch responses.\n */\nexport interface ElasticsearchSearchResponseHit<T> {\n _source: T;\n sort: string;\n}\nexport interface ElasticsearchSearchResponseAggregationBucket<T> {\n key: T;\n}\nexport interface ElasticsearchSearchResponse<T = any> {\n body: {\n hits: {\n hits: ElasticsearchSearchResponseHit<T>[];\n total: {\n value: number;\n };\n };\n aggregations: {\n [key: string]: {\n buckets: ElasticsearchSearchResponseAggregationBucket<T>[];\n };\n };\n };\n}\n\nexport interface ElasticsearchIndexRequestBodyMappingsDynamicTemplate {\n [key: string]: {\n path_match?: string;\n path_unmatch?: string;\n match_mapping_type?: string;\n match?: string;\n unmatch?: string;\n mapping?: {\n numeric_detection?: boolean;\n date_detection?: boolean;\n type?:\n | \"string\"\n | \"date\"\n | \"binary\"\n | \"boolean\"\n | \"object\"\n | \"ip\"\n | \"geo\"\n | \"long\"\n | \"integer\"\n | \"short\"\n | \"byte\"\n | \"double\"\n | \"float\"\n | \"half_float\"\n | \"scaled_float\"\n | \"unsigned_long\"\n | string;\n search_analyzer?: string;\n analyzer?: string;\n fields?: {\n [key: string]:\n | {\n type: string;\n search_analyzer?: string;\n analyzer?: string;\n ignore_above?: number;\n [key: string]: any;\n }\n | undefined;\n };\n [key: string]: any;\n };\n [key: string]: any;\n };\n}\n\ninterface ElasticsearchIndexRequestBodySettings {\n analysis?: {\n [key: string]: any;\n };\n number_of_shards?: number;\n number_of_routing_shards?: number;\n codec?: string;\n routing_partition_size?: number;\n soft_deletes?: {\n enabled?: boolean;\n retention_lease?: {\n period?: string;\n };\n };\n load_fixed_bitset_filters_eagerly?: boolean;\n shard?: {\n check_on_startup?: boolean | \"checksum\";\n };\n number_of_replicas?: number;\n auto_expand_replicas?: string | \"all\" | false;\n search?: {\n idle?: {\n after?: string;\n };\n };\n refresh_interval?: string;\n max_result_window?: number;\n max_inner_result_window?: number;\n max_rescore_window?: number;\n max_docvalue_fields_search?: number;\n max_script_fields?: number;\n max_ngram_diff?: number;\n max_shingle_diff?: number;\n max_refresh_listeners?: number;\n analyze?: {\n max_token_count?: number;\n };\n highlight?: {\n max_analyzed_offset?: number;\n };\n max_terms_count?: number;\n max_regex_length?: number;\n query?: {\n default_field?: string;\n };\n routing?: {\n allocation?: {\n enable?: \"all\" | \"primaries\" | \"new_primaries\" | \"none\";\n };\n rebalance?: {\n enable?: \"all\" | \"primaries\" | \"new_primaries\" | \"none\";\n };\n };\n gc_deletes?: string;\n default_pipeline?: string;\n final_pipeline?: string;\n hidden?: boolean;\n [key: string]: any;\n}\n\nexport interface ElasticsearchIndexRequestBody {\n settings?: {\n index?: Partial<ElasticsearchIndexRequestBodySettings>;\n };\n mappings: {\n numeric_detection?: boolean;\n dynamic_templates?: ElasticsearchIndexRequestBodyMappingsDynamicTemplate[];\n properties?: {\n [key: string]: {\n analyzer?: string;\n type?: string;\n normalizer?: string;\n index?: string;\n fields?: {\n [key: string]: {\n type: string;\n ignore_above?: number;\n search_analyzer?: string;\n analyzer?: string;\n [key: string]: any;\n };\n };\n [key: string]: any;\n };\n };\n [key: string]: any;\n };\n aliases?: {\n [key: string]: {\n filter?: {\n [key: string]: any;\n };\n index_routing?: string;\n is_hidden?: boolean;\n is_write_index?: boolean;\n routing?: string;\n search_routing?: string;\n };\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AACA;AAMA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { Client, ApiResponse } from \"@elastic/elasticsearch\";\nimport { BoolQueryConfig as esBoolQueryConfig, Query as esQuery } from \"elastic-ts\";\nimport { Context } from \"@webiny/api/types\";\n/**\n * Re-export some dep lib types.\n */\nexport * from \"elastic-ts\";\nexport { ApiResponse };\n\nexport interface ElasticsearchContext extends Context {\n elasticsearch: Client;\n}\n\n/**\n * To simplify our plugins, we say that query contains arrays of objects, not single objects.\n * And that they all are defined as empty arrays at the start.\n */\nexport interface ElasticsearchBoolQueryConfig extends esBoolQueryConfig {\n must: esQuery[];\n filter: esQuery[];\n should: esQuery[];\n must_not: esQuery[];\n}\n\n/**\n * Definitions of possible Elasticsearch operators.\n *\n * @category Elasticsearch\n */\nexport type ElasticsearchQueryOperator =\n | \"eq\"\n | \"not\"\n | \"in\"\n | \"not_in\"\n | \"contains\"\n | \"not_contains\"\n | \"between\"\n | \"not_between\"\n | \"gt\"\n | \"gte\"\n | \"lt\"\n | \"lte\"\n | string;\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 * Name of the field.\n */\n name: string;\n /**\n * A full path to the field. Including the \".keyword\" if it is added.\n */\n path: string;\n /**\n * A path to the field, plain.\n */\n basePath: string;\n /**\n * Value to apply.\n */\n value: any;\n /**\n * Is path containing the \".keyword\"\n */\n keyword: boolean;\n}\n\n/**\n * Elasticsearch responses.\n */\nexport interface ElasticsearchSearchResponseHit<T> {\n _source: T;\n sort: string;\n}\nexport interface ElasticsearchSearchResponseAggregationBucket<T> {\n key: T;\n}\nexport interface ElasticsearchSearchResponse<T = any> {\n body: {\n hits: {\n hits: ElasticsearchSearchResponseHit<T>[];\n total: {\n value: number;\n };\n };\n aggregations: {\n [key: string]: {\n buckets: ElasticsearchSearchResponseAggregationBucket<T>[];\n };\n };\n };\n}\n\nexport interface ElasticsearchIndexRequestBodyMappingsDynamicTemplate {\n [key: string]: {\n path_match?: string;\n path_unmatch?: string;\n match_mapping_type?: string;\n match?: string;\n unmatch?: string;\n mapping?: {\n numeric_detection?: boolean;\n date_detection?: boolean;\n type?:\n | \"string\"\n | \"date\"\n | \"binary\"\n | \"boolean\"\n | \"object\"\n | \"ip\"\n | \"geo\"\n | \"long\"\n | \"integer\"\n | \"short\"\n | \"byte\"\n | \"double\"\n | \"float\"\n | \"half_float\"\n | \"scaled_float\"\n | \"unsigned_long\"\n | string;\n search_analyzer?: string;\n analyzer?: string;\n fields?: {\n [key: string]:\n | {\n type: string;\n search_analyzer?: string;\n analyzer?: string;\n ignore_above?: number;\n [key: string]: any;\n }\n | undefined;\n };\n [key: string]: any;\n };\n [key: string]: any;\n };\n}\n\ninterface ElasticsearchIndexRequestBodySettings {\n analysis?: {\n [key: string]: any;\n };\n number_of_shards?: number;\n number_of_routing_shards?: number;\n codec?: string;\n routing_partition_size?: number;\n soft_deletes?: {\n enabled?: boolean;\n retention_lease?: {\n period?: string;\n };\n };\n load_fixed_bitset_filters_eagerly?: boolean;\n shard?: {\n check_on_startup?: boolean | \"checksum\";\n };\n number_of_replicas?: number;\n auto_expand_replicas?: string | \"all\" | false;\n search?: {\n idle?: {\n after?: string;\n };\n };\n refresh_interval?: string;\n max_result_window?: number;\n max_inner_result_window?: number;\n max_rescore_window?: number;\n max_docvalue_fields_search?: number;\n max_script_fields?: number;\n max_ngram_diff?: number;\n max_shingle_diff?: number;\n max_refresh_listeners?: number;\n analyze?: {\n max_token_count?: number;\n };\n highlight?: {\n max_analyzed_offset?: number;\n };\n max_terms_count?: number;\n max_regex_length?: number;\n query?: {\n default_field?: string;\n };\n routing?: {\n allocation?: {\n enable?: \"all\" | \"primaries\" | \"new_primaries\" | \"none\";\n };\n rebalance?: {\n enable?: \"all\" | \"primaries\" | \"new_primaries\" | \"none\";\n };\n };\n gc_deletes?: string;\n default_pipeline?: string;\n final_pipeline?: string;\n hidden?: boolean;\n [key: string]: any;\n}\n\nexport interface ElasticsearchIndexRequestBody {\n settings?: {\n index?: Partial<ElasticsearchIndexRequestBodySettings>;\n };\n mappings: {\n numeric_detection?: boolean;\n dynamic_templates?: ElasticsearchIndexRequestBodyMappingsDynamicTemplate[];\n properties?: {\n [key: string]: {\n analyzer?: string;\n type?: string;\n normalizer?: string;\n index?: string;\n fields?: {\n [key: string]: {\n type: string;\n ignore_above?: number;\n search_analyzer?: string;\n analyzer?: string;\n [key: string]: any;\n };\n };\n [key: string]: any;\n };\n };\n [key: string]: any;\n };\n aliases?: {\n [key: string]: {\n filter?: {\n [key: string]: any;\n };\n index_routing?: string;\n is_hidden?: boolean;\n is_write_index?: boolean;\n routing?: string;\n search_routing?: string;\n };\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAMA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
package/where.js CHANGED
@@ -75,6 +75,7 @@ const applyWhere = params => {
75
75
  basePath
76
76
  });
77
77
  operatorPlugin.apply(query, {
78
+ name: field,
78
79
  value,
79
80
  path,
80
81
  basePath,
package/where.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["parseWhereKeyRegExp","RegExp","parseWhereKey","key","match","Error","field","operation","operator","slice","ALL","ElasticsearchFieldPlugin","applyWhere","params","query","where","fields","operators","hasOwnProperty","initialValue","undefined","fieldPlugin","WebinyError","operatorPlugin","path","getPath","basePath","getBasePath","value","toSearchValue","apply","keyword"],"sources":["where.ts"],"sourcesContent":["import { ElasticsearchBoolQueryConfig } from \"~/types\";\nimport { ElasticsearchFieldPlugin } from \"~/plugins/definition/ElasticsearchFieldPlugin\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport WebinyError from \"@webiny/error\";\n\ntype Records<T> = Record<string, T>;\n\nexport interface ApplyWhereParams {\n query: ElasticsearchBoolQueryConfig;\n where: Records<any>;\n fields: Records<ElasticsearchFieldPlugin>;\n operators: Records<ElasticsearchQueryBuilderOperatorPlugin>;\n}\n\nexport interface ParseWhereKeyResult {\n field: string;\n operator: string;\n}\n\nconst parseWhereKeyRegExp = new RegExp(/^([a-zA-Z0-9]+)(_[a-zA-Z0-9_]+)?$/);\n\nexport const parseWhereKey = (key: string): ParseWhereKeyResult => {\n const match = key.match(parseWhereKeyRegExp);\n\n if (!match) {\n throw new Error(`It is not possible to search by key \"${key}\"`);\n }\n\n const [, field, operation = \"eq\"] = match;\n\n if (!field.match(/^([a-zA-Z]+)$/)) {\n throw new Error(`Cannot filter by \"${field}\".`);\n }\n\n const operator = operation.match(/^_/) ? operation.slice(1) : operation;\n\n return { field, operator };\n};\n\nconst ALL = ElasticsearchFieldPlugin.ALL;\n\nexport const applyWhere = (params: ApplyWhereParams): void => {\n const { query, where, fields, operators } = params;\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n const initialValue = where[key];\n /**\n * There is a possibility that undefined is sent as a value, so just skip it.\n */\n if (initialValue === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const fieldPlugin: ElasticsearchFieldPlugin = fields[field] || fields[ALL];\n if (!fieldPlugin) {\n throw new WebinyError(\n `Missing plugin for the field \"${field}\".`,\n \"PLUGIN_WHERE_ERROR\",\n {\n field\n }\n );\n }\n const operatorPlugin = operators[operator];\n if (!operatorPlugin) {\n throw new WebinyError(\n `Missing plugin for the operator \"${operator}\"`,\n \"PLUGIN_WHERE_ERROR\",\n {\n operator\n }\n );\n }\n\n /**\n * Get the path but in the case of * (all fields, replace * with the field.\n * Custom path would return its own value anyways.\n */\n const path = fieldPlugin.getPath(field);\n const basePath = fieldPlugin.getBasePath(field);\n /**\n * Transform the value for the search.\n */\n const value = fieldPlugin.toSearchValue({\n value: initialValue,\n path,\n basePath\n });\n\n operatorPlugin.apply(query, {\n value,\n path,\n basePath,\n keyword: fieldPlugin.keyword\n });\n }\n};\n"],"mappings":";;;;;;;AACA;AAEA;AAgBA,MAAMA,mBAAmB,GAAG,IAAIC,MAAM,CAAC,mCAAmC,CAAC;AAEpE,MAAMC,aAAa,GAAIC,GAAW,IAA0B;EAC/D,MAAMC,KAAK,GAAGD,GAAG,CAACC,KAAK,CAACJ,mBAAmB,CAAC;EAE5C,IAAI,CAACI,KAAK,EAAE;IACR,MAAM,IAAIC,KAAK,CAAE,wCAAuCF,GAAI,GAAE,CAAC;EACnE;EAEA,MAAM,GAAGG,KAAK,EAAEC,SAAS,GAAG,IAAI,CAAC,GAAGH,KAAK;EAEzC,IAAI,CAACE,KAAK,CAACF,KAAK,CAAC,eAAe,CAAC,EAAE;IAC/B,MAAM,IAAIC,KAAK,CAAE,qBAAoBC,KAAM,IAAG,CAAC;EACnD;EAEA,MAAME,QAAQ,GAAGD,SAAS,CAACH,KAAK,CAAC,IAAI,CAAC,GAAGG,SAAS,CAACE,KAAK,CAAC,CAAC,CAAC,GAAGF,SAAS;EAEvE,OAAO;IAAED,KAAK;IAAEE;EAAS,CAAC;AAC9B,CAAC;AAAC;AAEF,MAAME,GAAG,GAAGC,kDAAwB,CAACD,GAAG;AAEjC,MAAME,UAAU,GAAIC,MAAwB,IAAW;EAC1D,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAGJ,MAAM;EAElD,KAAK,MAAMV,GAAG,IAAIY,KAAK,EAAE;IACrB,IAAIA,KAAK,CAACG,cAAc,CAACf,GAAG,CAAC,KAAK,KAAK,EAAE;MACrC;IACJ;IACA,MAAMgB,YAAY,GAAGJ,KAAK,CAACZ,GAAG,CAAC;IAC/B;AACR;AACA;IACQ,IAAIgB,YAAY,KAAKC,SAAS,EAAE;MAC5B;IACJ;IACA,MAAM;MAAEd,KAAK;MAAEE;IAAS,CAAC,GAAGN,aAAa,CAACC,GAAG,CAAC;IAC9C,MAAMkB,WAAqC,GAAGL,MAAM,CAACV,KAAK,CAAC,IAAIU,MAAM,CAACN,GAAG,CAAC;IAC1E,IAAI,CAACW,WAAW,EAAE;MACd,MAAM,IAAIC,cAAW,CAChB,iCAAgChB,KAAM,IAAG,EAC1C,oBAAoB,EACpB;QACIA;MACJ,CAAC,CACJ;IACL;IACA,MAAMiB,cAAc,GAAGN,SAAS,CAACT,QAAQ,CAAC;IAC1C,IAAI,CAACe,cAAc,EAAE;MACjB,MAAM,IAAID,cAAW,CAChB,oCAAmCd,QAAS,GAAE,EAC/C,oBAAoB,EACpB;QACIA;MACJ,CAAC,CACJ;IACL;;IAEA;AACR;AACA;AACA;IACQ,MAAMgB,IAAI,GAAGH,WAAW,CAACI,OAAO,CAACnB,KAAK,CAAC;IACvC,MAAMoB,QAAQ,GAAGL,WAAW,CAACM,WAAW,CAACrB,KAAK,CAAC;IAC/C;AACR;AACA;IACQ,MAAMsB,KAAK,GAAGP,WAAW,CAACQ,aAAa,CAAC;MACpCD,KAAK,EAAET,YAAY;MACnBK,IAAI;MACJE;IACJ,CAAC,CAAC;IAEFH,cAAc,CAACO,KAAK,CAAChB,KAAK,EAAE;MACxBc,KAAK;MACLJ,IAAI;MACJE,QAAQ;MACRK,OAAO,EAAEV,WAAW,CAACU;IACzB,CAAC,CAAC;EACN;AACJ,CAAC;AAAC"}
1
+ {"version":3,"names":["parseWhereKeyRegExp","RegExp","parseWhereKey","key","match","Error","field","operation","operator","slice","ALL","ElasticsearchFieldPlugin","applyWhere","params","query","where","fields","operators","hasOwnProperty","initialValue","undefined","fieldPlugin","WebinyError","operatorPlugin","path","getPath","basePath","getBasePath","value","toSearchValue","apply","name","keyword"],"sources":["where.ts"],"sourcesContent":["import { ElasticsearchBoolQueryConfig } from \"~/types\";\nimport { ElasticsearchFieldPlugin } from \"~/plugins/definition/ElasticsearchFieldPlugin\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"~/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport WebinyError from \"@webiny/error\";\n\ntype Records<T> = Record<string, T>;\n\nexport interface ApplyWhereParams {\n query: ElasticsearchBoolQueryConfig;\n where: Records<any>;\n fields: Records<ElasticsearchFieldPlugin>;\n operators: Records<ElasticsearchQueryBuilderOperatorPlugin>;\n}\n\nexport interface ParseWhereKeyResult {\n field: string;\n operator: string;\n}\n\nconst parseWhereKeyRegExp = new RegExp(/^([a-zA-Z0-9]+)(_[a-zA-Z0-9_]+)?$/);\n\nexport const parseWhereKey = (key: string): ParseWhereKeyResult => {\n const match = key.match(parseWhereKeyRegExp);\n\n if (!match) {\n throw new Error(`It is not possible to search by key \"${key}\"`);\n }\n\n const [, field, operation = \"eq\"] = match;\n\n if (!field.match(/^([a-zA-Z]+)$/)) {\n throw new Error(`Cannot filter by \"${field}\".`);\n }\n\n const operator = operation.match(/^_/) ? operation.slice(1) : operation;\n\n return { field, operator };\n};\n\nconst ALL = ElasticsearchFieldPlugin.ALL;\n\nexport const applyWhere = (params: ApplyWhereParams): void => {\n const { query, where, fields, operators } = params;\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n const initialValue = where[key];\n /**\n * There is a possibility that undefined is sent as a value, so just skip it.\n */\n if (initialValue === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const fieldPlugin: ElasticsearchFieldPlugin = fields[field] || fields[ALL];\n if (!fieldPlugin) {\n throw new WebinyError(\n `Missing plugin for the field \"${field}\".`,\n \"PLUGIN_WHERE_ERROR\",\n {\n field\n }\n );\n }\n const operatorPlugin = operators[operator];\n if (!operatorPlugin) {\n throw new WebinyError(\n `Missing plugin for the operator \"${operator}\"`,\n \"PLUGIN_WHERE_ERROR\",\n {\n operator\n }\n );\n }\n\n /**\n * Get the path but in the case of * (all fields, replace * with the field.\n * Custom path would return its own value anyways.\n */\n const path = fieldPlugin.getPath(field);\n const basePath = fieldPlugin.getBasePath(field);\n /**\n * Transform the value for the search.\n */\n const value = fieldPlugin.toSearchValue({\n value: initialValue,\n path,\n basePath\n });\n\n operatorPlugin.apply(query, {\n name: field,\n value,\n path,\n basePath,\n keyword: fieldPlugin.keyword\n });\n }\n};\n"],"mappings":";;;;;;;AACA;AAEA;AAgBA,MAAMA,mBAAmB,GAAG,IAAIC,MAAM,CAAC,mCAAmC,CAAC;AAEpE,MAAMC,aAAa,GAAIC,GAAW,IAA0B;EAC/D,MAAMC,KAAK,GAAGD,GAAG,CAACC,KAAK,CAACJ,mBAAmB,CAAC;EAE5C,IAAI,CAACI,KAAK,EAAE;IACR,MAAM,IAAIC,KAAK,CAAE,wCAAuCF,GAAI,GAAE,CAAC;EACnE;EAEA,MAAM,GAAGG,KAAK,EAAEC,SAAS,GAAG,IAAI,CAAC,GAAGH,KAAK;EAEzC,IAAI,CAACE,KAAK,CAACF,KAAK,CAAC,eAAe,CAAC,EAAE;IAC/B,MAAM,IAAIC,KAAK,CAAE,qBAAoBC,KAAM,IAAG,CAAC;EACnD;EAEA,MAAME,QAAQ,GAAGD,SAAS,CAACH,KAAK,CAAC,IAAI,CAAC,GAAGG,SAAS,CAACE,KAAK,CAAC,CAAC,CAAC,GAAGF,SAAS;EAEvE,OAAO;IAAED,KAAK;IAAEE;EAAS,CAAC;AAC9B,CAAC;AAAC;AAEF,MAAME,GAAG,GAAGC,kDAAwB,CAACD,GAAG;AAEjC,MAAME,UAAU,GAAIC,MAAwB,IAAW;EAC1D,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAGJ,MAAM;EAElD,KAAK,MAAMV,GAAG,IAAIY,KAAK,EAAE;IACrB,IAAIA,KAAK,CAACG,cAAc,CAACf,GAAG,CAAC,KAAK,KAAK,EAAE;MACrC;IACJ;IACA,MAAMgB,YAAY,GAAGJ,KAAK,CAACZ,GAAG,CAAC;IAC/B;AACR;AACA;IACQ,IAAIgB,YAAY,KAAKC,SAAS,EAAE;MAC5B;IACJ;IACA,MAAM;MAAEd,KAAK;MAAEE;IAAS,CAAC,GAAGN,aAAa,CAACC,GAAG,CAAC;IAC9C,MAAMkB,WAAqC,GAAGL,MAAM,CAACV,KAAK,CAAC,IAAIU,MAAM,CAACN,GAAG,CAAC;IAC1E,IAAI,CAACW,WAAW,EAAE;MACd,MAAM,IAAIC,cAAW,CAChB,iCAAgChB,KAAM,IAAG,EAC1C,oBAAoB,EACpB;QACIA;MACJ,CAAC,CACJ;IACL;IACA,MAAMiB,cAAc,GAAGN,SAAS,CAACT,QAAQ,CAAC;IAC1C,IAAI,CAACe,cAAc,EAAE;MACjB,MAAM,IAAID,cAAW,CAChB,oCAAmCd,QAAS,GAAE,EAC/C,oBAAoB,EACpB;QACIA;MACJ,CAAC,CACJ;IACL;;IAEA;AACR;AACA;AACA;IACQ,MAAMgB,IAAI,GAAGH,WAAW,CAACI,OAAO,CAACnB,KAAK,CAAC;IACvC,MAAMoB,QAAQ,GAAGL,WAAW,CAACM,WAAW,CAACrB,KAAK,CAAC;IAC/C;AACR;AACA;IACQ,MAAMsB,KAAK,GAAGP,WAAW,CAACQ,aAAa,CAAC;MACpCD,KAAK,EAAET,YAAY;MACnBK,IAAI;MACJE;IACJ,CAAC,CAAC;IAEFH,cAAc,CAACO,KAAK,CAAChB,KAAK,EAAE;MACxBiB,IAAI,EAAEzB,KAAK;MACXsB,KAAK;MACLJ,IAAI;MACJE,QAAQ;MACRM,OAAO,EAAEX,WAAW,CAACW;IACzB,CAAC,CAAC;EACN;AACJ,CAAC;AAAC"}