@webiny/api-elasticsearch 6.0.0-beta.0 → 6.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +10 -0
  2. package/client.d.ts +2 -2
  3. package/client.js +11 -31
  4. package/client.js.map +1 -1
  5. package/compression.d.ts +1 -1
  6. package/compression.js +13 -40
  7. package/compression.js.map +1 -1
  8. package/cursors.d.ts +2 -2
  9. package/cursors.js +5 -13
  10. package/cursors.js.map +1 -1
  11. package/db/entity.d.ts +7 -0
  12. package/db/entity.js +20 -0
  13. package/db/entity.js.map +1 -0
  14. package/db/index.d.ts +3 -0
  15. package/db/index.js +5 -0
  16. package/db/index.js.map +1 -0
  17. package/db/table.d.ts +7 -0
  18. package/db/table.js +17 -0
  19. package/db/table.js.map +1 -0
  20. package/db/types.d.ts +6 -0
  21. package/db/types.js +3 -0
  22. package/db/types.js.map +1 -0
  23. package/index.d.ts +18 -16
  24. package/index.js +27 -182
  25. package/index.js.map +1 -1
  26. package/indexConfiguration/base.d.ts +1 -1
  27. package/indexConfiguration/base.js +3 -10
  28. package/indexConfiguration/base.js.map +1 -1
  29. package/indexConfiguration/common.d.ts +1 -1
  30. package/indexConfiguration/common.js +12 -8
  31. package/indexConfiguration/common.js.map +1 -1
  32. package/indexConfiguration/index.d.ts +2 -3
  33. package/indexConfiguration/index.js +2 -38
  34. package/indexConfiguration/index.js.map +1 -1
  35. package/indexPrefix.d.ts +1 -0
  36. package/indexPrefix.js +5 -0
  37. package/indexPrefix.js.map +1 -0
  38. package/indices.d.ts +2 -3
  39. package/indices.js +6 -16
  40. package/indices.js.map +1 -1
  41. package/limit.js +1 -8
  42. package/limit.js.map +1 -1
  43. package/normalize.js +3 -11
  44. package/normalize.js.map +1 -1
  45. package/operations/ElasticsearchCatHealth.d.ts +2 -2
  46. package/operations/ElasticsearchCatHealth.js +6 -13
  47. package/operations/ElasticsearchCatHealth.js.map +1 -1
  48. package/operations/ElasticsearchCatNodes.d.ts +2 -2
  49. package/operations/ElasticsearchCatNodes.js +6 -13
  50. package/operations/ElasticsearchCatNodes.js.map +1 -1
  51. package/operations/index.d.ts +3 -3
  52. package/operations/index.js +3 -38
  53. package/operations/index.js.map +1 -1
  54. package/operations/stripConnectionFromException.js +1 -8
  55. package/operations/stripConnectionFromException.js.map +1 -1
  56. package/operations/types.d.ts +1 -1
  57. package/operations/types.js +1 -7
  58. package/operations/types.js.map +1 -1
  59. package/operators.d.ts +2 -5
  60. package/operators.js +3 -41
  61. package/operators.js.map +1 -1
  62. package/package.json +14 -18
  63. package/plugins/definition/ElasticsearchBodyModifierPlugin.d.ts +1 -1
  64. package/plugins/definition/ElasticsearchBodyModifierPlugin.js +4 -12
  65. package/plugins/definition/ElasticsearchBodyModifierPlugin.js.map +1 -1
  66. package/plugins/definition/ElasticsearchFieldPlugin.d.ts +2 -2
  67. package/plugins/definition/ElasticsearchFieldPlugin.js +2 -9
  68. package/plugins/definition/ElasticsearchFieldPlugin.js.map +1 -1
  69. package/plugins/definition/ElasticsearchIndexPlugin.d.ts +2 -10
  70. package/plugins/definition/ElasticsearchIndexPlugin.js +4 -23
  71. package/plugins/definition/ElasticsearchIndexPlugin.js.map +1 -1
  72. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.d.ts +1 -5
  73. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js +2 -17
  74. package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js.map +1 -1
  75. package/plugins/definition/ElasticsearchQueryModifierPlugin.d.ts +1 -1
  76. package/plugins/definition/ElasticsearchQueryModifierPlugin.js +4 -12
  77. package/plugins/definition/ElasticsearchQueryModifierPlugin.js.map +1 -1
  78. package/plugins/definition/ElasticsearchSortModifierPlugin.d.ts +1 -1
  79. package/plugins/definition/ElasticsearchSortModifierPlugin.js +4 -12
  80. package/plugins/definition/ElasticsearchSortModifierPlugin.js.map +1 -1
  81. package/plugins/definition/index.d.ts +6 -7
  82. package/plugins/definition/index.js +6 -82
  83. package/plugins/definition/index.js.map +1 -1
  84. package/plugins/index.d.ts +2 -2
  85. package/plugins/index.js +2 -27
  86. package/plugins/index.js.map +1 -1
  87. package/plugins/operator/andIn.d.ts +2 -2
  88. package/plugins/operator/andIn.js +2 -9
  89. package/plugins/operator/andIn.js.map +1 -1
  90. package/plugins/operator/between.d.ts +2 -2
  91. package/plugins/operator/between.js +2 -9
  92. package/plugins/operator/between.js.map +1 -1
  93. package/plugins/operator/contains.d.ts +2 -2
  94. package/plugins/operator/contains.js +4 -11
  95. package/plugins/operator/contains.js.map +1 -1
  96. package/plugins/operator/equal.d.ts +2 -2
  97. package/plugins/operator/equal.js +3 -10
  98. package/plugins/operator/equal.js.map +1 -1
  99. package/plugins/operator/gt.d.ts +2 -2
  100. package/plugins/operator/gt.js +2 -9
  101. package/plugins/operator/gt.js.map +1 -1
  102. package/plugins/operator/gte.d.ts +2 -2
  103. package/plugins/operator/gte.js +2 -9
  104. package/plugins/operator/gte.js.map +1 -1
  105. package/plugins/operator/in.d.ts +2 -2
  106. package/plugins/operator/in.js +2 -9
  107. package/plugins/operator/in.js.map +1 -1
  108. package/plugins/operator/index.d.ts +15 -16
  109. package/plugins/operator/index.js +15 -181
  110. package/plugins/operator/index.js.map +1 -1
  111. package/plugins/operator/lt.d.ts +2 -2
  112. package/plugins/operator/lt.js +2 -9
  113. package/plugins/operator/lt.js.map +1 -1
  114. package/plugins/operator/lte.d.ts +2 -2
  115. package/plugins/operator/lte.js +2 -9
  116. package/plugins/operator/lte.js.map +1 -1
  117. package/plugins/operator/not.d.ts +2 -2
  118. package/plugins/operator/not.js +3 -10
  119. package/plugins/operator/not.js.map +1 -1
  120. package/plugins/operator/notBetween.d.ts +2 -2
  121. package/plugins/operator/notBetween.js +2 -9
  122. package/plugins/operator/notBetween.js.map +1 -1
  123. package/plugins/operator/notContains.d.ts +2 -2
  124. package/plugins/operator/notContains.js +4 -11
  125. package/plugins/operator/notContains.js.map +1 -1
  126. package/plugins/operator/notIn.d.ts +2 -2
  127. package/plugins/operator/notIn.js +2 -9
  128. package/plugins/operator/notIn.js.map +1 -1
  129. package/plugins/operator/notStartsWith.d.ts +2 -2
  130. package/plugins/operator/notStartsWith.js +2 -9
  131. package/plugins/operator/notStartsWith.js.map +1 -1
  132. package/plugins/operator/startsWith.d.ts +2 -2
  133. package/plugins/operator/startsWith.js +2 -9
  134. package/plugins/operator/startsWith.js.map +1 -1
  135. package/sharedIndex.d.ts +1 -0
  136. package/sharedIndex.js +5 -0
  137. package/sharedIndex.js.map +1 -0
  138. package/sort.d.ts +2 -2
  139. package/sort.js +18 -17
  140. package/sort.js.map +1 -1
  141. package/types.d.ts +32 -20
  142. package/types.js +28 -26
  143. package/types.js.map +1 -1
  144. package/utils/createIndex.d.ts +2 -3
  145. package/utils/createIndex.js +7 -19
  146. package/utils/createIndex.js.map +1 -1
  147. package/utils/index.d.ts +3 -3
  148. package/utils/index.js +3 -27
  149. package/utils/index.js.map +1 -1
  150. package/utils/waitUntilHealthy/UnhealthyClusterError.js +2 -9
  151. package/utils/waitUntilHealthy/UnhealthyClusterError.js.map +1 -1
  152. package/utils/waitUntilHealthy/WaitUntilHealthy.d.ts +4 -4
  153. package/utils/waitUntilHealthy/WaitUntilHealthy.js +22 -29
  154. package/utils/waitUntilHealthy/WaitUntilHealthy.js.map +1 -1
  155. package/utils/waitUntilHealthy/WaitingHealthyClusterAbortedError.js +2 -9
  156. package/utils/waitUntilHealthy/WaitingHealthyClusterAbortedError.js.map +1 -1
  157. package/utils/waitUntilHealthy/index.d.ts +6 -6
  158. package/utils/waitUntilHealthy/index.js +6 -49
  159. package/utils/waitUntilHealthy/index.js.map +1 -1
  160. package/utils/waitUntilHealthy/reason/ClusterHealthReason.d.ts +2 -2
  161. package/utils/waitUntilHealthy/reason/ClusterHealthReason.js +2 -10
  162. package/utils/waitUntilHealthy/reason/ClusterHealthReason.js.map +1 -1
  163. package/utils/waitUntilHealthy/reason/IReason.js +1 -5
  164. package/utils/waitUntilHealthy/reason/MemoryReason.d.ts +1 -1
  165. package/utils/waitUntilHealthy/reason/MemoryReason.js +2 -10
  166. package/utils/waitUntilHealthy/reason/MemoryReason.js.map +1 -1
  167. package/utils/waitUntilHealthy/reason/ProcessorReason.d.ts +1 -1
  168. package/utils/waitUntilHealthy/reason/ProcessorReason.js +2 -10
  169. package/utils/waitUntilHealthy/reason/ProcessorReason.js.map +1 -1
  170. package/utils/waitUntilHealthy/reason/index.d.ts +3 -3
  171. package/utils/waitUntilHealthy/reason/index.js +3 -38
  172. package/utils/waitUntilHealthy/reason/index.js.map +1 -1
  173. package/where.d.ts +4 -4
  174. package/where.js +7 -16
  175. package/where.js.map +1 -1
  176. package/indexConfiguration/japanese.d.ts +0 -6
  177. package/indexConfiguration/japanese.js +0 -121
  178. package/indexConfiguration/japanese.js.map +0 -1
  179. package/plugins/GzipCompression.d.ts +0 -24
  180. package/plugins/GzipCompression.js +0 -70
  181. package/plugins/GzipCompression.js.map +0 -1
  182. package/plugins/definition/CompressionPlugin.d.ts +0 -20
  183. package/plugins/definition/CompressionPlugin.js +0 -28
  184. package/plugins/definition/CompressionPlugin.js.map +0 -1
  185. package/plugins/operator/japanese/contains.d.ts +0 -8
  186. package/plugins/operator/japanese/contains.js +0 -44
  187. package/plugins/operator/japanese/contains.js.map +0 -1
package/README.md CHANGED
@@ -1 +1,11 @@
1
1
  # @webiny/api-elasticsearch
2
+
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
6
+
7
+ 📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
8
+
9
+ ---
10
+
11
+ _This README file is automatically generated during the publish process._
package/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Client, ClientOptions } from "@elastic/elasticsearch";
1
+ import { Client, type ClientOptions } from "@elastic/elasticsearch";
2
2
  export interface ElasticsearchClientOptions extends ClientOptions {
3
3
  endpoint?: string;
4
4
  }
5
- export { Client, ClientOptions };
5
+ export { Client, type ClientOptions };
6
6
  export declare const createElasticsearchClient: (options: ElasticsearchClientOptions) => Client;
package/client.js CHANGED
@@ -1,34 +1,16 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "Client", {
8
- enumerable: true,
9
- get: function () {
10
- return _elasticsearch.Client;
11
- }
12
- });
13
- Object.defineProperty(exports, "ClientOptions", {
14
- enumerable: true,
15
- get: function () {
16
- return _elasticsearch.ClientOptions;
17
- }
18
- });
19
- exports.createElasticsearchClient = void 0;
20
- var _awsElasticsearchConnector = _interopRequireDefault(require("aws-elasticsearch-connector"));
21
- var _crypto = _interopRequireDefault(require("crypto"));
22
- var _error = _interopRequireDefault(require("@webiny/error"));
23
- var _elasticsearch = require("@elastic/elasticsearch");
1
+ import createAwsElasticsearchConnector from "aws-elasticsearch-connector";
2
+ import crypto from "crypto";
3
+ import WebinyError from "@webiny/error";
4
+ import { Client } from "@elastic/elasticsearch";
24
5
  const clients = new Map();
25
6
  const createClientKey = options => {
26
7
  const key = JSON.stringify(options);
27
- const hash = _crypto.default.createHash("sha1");
8
+ const hash = crypto.createHash("sha1");
28
9
  hash.update(key);
29
10
  return hash.digest("hex");
30
11
  };
31
- const createElasticsearchClient = options => {
12
+ export { Client };
13
+ export const createElasticsearchClient = options => {
32
14
  const key = createClientKey(options);
33
15
  const existing = clients.get(key);
34
16
  if (existing) {
@@ -56,19 +38,18 @@ const createElasticsearchClient = options => {
56
38
  return !value;
57
39
  });
58
40
  if (errors.length > 0) {
59
- throw new _error.default(`Missing keys values: ${errors.join(", ")}`, "MISSING_AWS_CREDENTIALS");
41
+ throw new WebinyError(`Missing keys values: ${errors.join(", ")}`, "MISSING_AWS_CREDENTIALS");
60
42
  }
61
43
  clientOptions = {
62
44
  ...clientOptions,
63
- ...(0, _awsElasticsearchConnector.default)({
45
+ ...createAwsElasticsearchConnector({
64
46
  region,
65
- // @ts-expect-error
66
47
  credentials
67
48
  })
68
49
  };
69
50
  }
70
51
  try {
71
- return new _elasticsearch.Client(clientOptions);
52
+ return new Client(clientOptions);
72
53
  } catch (ex) {
73
54
  const data = {
74
55
  error: ex,
@@ -79,13 +60,12 @@ const createElasticsearchClient = options => {
79
60
  console.error({
80
61
  ...data
81
62
  });
82
- throw new _error.default("Could not connect to Elasticsearch.", "ELASTICSEARCH_CLIENT_ERROR", data);
63
+ throw new WebinyError("Could not connect to Elasticsearch.", "OPENSEARCH_CLIENT_ERROR", data);
83
64
  }
84
65
  };
85
66
  const client = cached();
86
67
  clients.set(key, client);
87
68
  return client;
88
69
  };
89
- exports.createElasticsearchClient = createElasticsearchClient;
90
70
 
91
71
  //# sourceMappingURL=client.js.map
package/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_awsElasticsearchConnector","_interopRequireDefault","require","_crypto","_error","_elasticsearch","clients","Map","createClientKey","options","key","JSON","stringify","hash","crypto","createHash","update","digest","createElasticsearchClient","existing","get","cached","endpoint","node","rest","clientOptions","auth","region","String","process","env","AWS_REGION","credentials","accessKeyId","AWS_ACCESS_KEY_ID","secretAccessKey","AWS_SECRET_ACCESS_KEY","sessionToken","AWS_SESSION_TOKEN","errors","Object","keys","filter","value","length","WebinyError","join","createAwsElasticsearchConnector","Client","ex","data","error","undefined","console","client","set","exports"],"sources":["client.ts"],"sourcesContent":["import createAwsElasticsearchConnector from \"aws-elasticsearch-connector\";\nimport crypto from \"crypto\";\nimport WebinyError from \"@webiny/error\";\nimport { Client, ClientOptions } from \"@elastic/elasticsearch\";\n\nexport interface ElasticsearchClientOptions extends ClientOptions {\n endpoint?: string;\n}\n\nconst clients = new Map<string, Client>();\n\nconst createClientKey = (options: ElasticsearchClientOptions) => {\n const key = JSON.stringify(options);\n const hash = crypto.createHash(\"sha1\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n\nexport { Client, ClientOptions };\n\nexport const createElasticsearchClient = (options: ElasticsearchClientOptions): Client => {\n const key = createClientKey(options);\n const existing = clients.get(key);\n if (existing) {\n return existing;\n }\n\n const cached = (): Client => {\n const { endpoint, node, ...rest } = options;\n\n let clientOptions: ClientOptions = {\n node: endpoint || node,\n ...rest\n };\n\n if (!clientOptions.auth) {\n const region = String(process.env.AWS_REGION);\n\n const credentials = {\n accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n sessionToken: process.env.AWS_SESSION_TOKEN\n };\n\n const errors = Object.keys(credentials).filter(key => {\n const value = credentials[key as keyof typeof credentials];\n return !value;\n });\n if (errors.length > 0) {\n throw new WebinyError(\n `Missing keys values: ${errors.join(\", \")}`,\n \"MISSING_AWS_CREDENTIALS\"\n );\n }\n\n clientOptions = {\n ...clientOptions,\n ...createAwsElasticsearchConnector({\n region,\n // @ts-expect-error\n credentials\n })\n };\n }\n\n try {\n return new Client(clientOptions);\n } catch (ex) {\n const data = {\n error: ex,\n node: endpoint || node,\n ...rest,\n auth: undefined\n };\n console.error({\n ...data\n });\n throw new WebinyError(\n \"Could not connect to Elasticsearch.\",\n \"ELASTICSEARCH_CLIENT_ERROR\",\n data\n );\n }\n };\n\n const client = cached();\n\n clients.set(key, client);\n return client;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAMA,MAAMI,OAAO,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAEzC,MAAMC,eAAe,GAAIC,OAAmC,IAAK;EAC7D,MAAMC,GAAG,GAAGC,IAAI,CAACC,SAAS,CAACH,OAAO,CAAC;EACnC,MAAMI,IAAI,GAAGC,eAAM,CAACC,UAAU,CAAC,MAAM,CAAC;EACtCF,IAAI,CAACG,MAAM,CAACN,GAAG,CAAC;EAChB,OAAOG,IAAI,CAACI,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC;AAIM,MAAMC,yBAAyB,GAAIT,OAAmC,IAAa;EACtF,MAAMC,GAAG,GAAGF,eAAe,CAACC,OAAO,CAAC;EACpC,MAAMU,QAAQ,GAAGb,OAAO,CAACc,GAAG,CAACV,GAAG,CAAC;EACjC,IAAIS,QAAQ,EAAE;IACV,OAAOA,QAAQ;EACnB;EAEA,MAAME,MAAM,GAAGA,CAAA,KAAc;IACzB,MAAM;MAAEC,QAAQ;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGf,OAAO;IAE3C,IAAIgB,aAA4B,GAAG;MAC/BF,IAAI,EAAED,QAAQ,IAAIC,IAAI;MACtB,GAAGC;IACP,CAAC;IAED,IAAI,CAACC,aAAa,CAACC,IAAI,EAAE;MACrB,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,UAAU,CAAC;MAE7C,MAAMC,WAAW,GAAG;QAChBC,WAAW,EAAEJ,OAAO,CAACC,GAAG,CAACI,iBAAiB;QAC1CC,eAAe,EAAEN,OAAO,CAACC,GAAG,CAACM,qBAAqB;QAClDC,YAAY,EAAER,OAAO,CAACC,GAAG,CAACQ;MAC9B,CAAC;MAED,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACT,WAAW,CAAC,CAACU,MAAM,CAAChC,GAAG,IAAI;QAClD,MAAMiC,KAAK,GAAGX,WAAW,CAACtB,GAAG,CAA6B;QAC1D,OAAO,CAACiC,KAAK;MACjB,CAAC,CAAC;MACF,IAAIJ,MAAM,CAACK,MAAM,GAAG,CAAC,EAAE;QACnB,MAAM,IAAIC,cAAW,CAChB,wBAAuBN,MAAM,CAACO,IAAI,CAAC,IAAI,CAAE,EAAC,EAC3C,yBACJ,CAAC;MACL;MAEArB,aAAa,GAAG;QACZ,GAAGA,aAAa;QAChB,GAAG,IAAAsB,kCAA+B,EAAC;UAC/BpB,MAAM;UACN;UACAK;QACJ,CAAC;MACL,CAAC;IACL;IAEA,IAAI;MACA,OAAO,IAAIgB,qBAAM,CAACvB,aAAa,CAAC;IACpC,CAAC,CAAC,OAAOwB,EAAE,EAAE;MACT,MAAMC,IAAI,GAAG;QACTC,KAAK,EAAEF,EAAE;QACT1B,IAAI,EAAED,QAAQ,IAAIC,IAAI;QACtB,GAAGC,IAAI;QACPE,IAAI,EAAE0B;MACV,CAAC;MACDC,OAAO,CAACF,KAAK,CAAC;QACV,GAAGD;MACP,CAAC,CAAC;MACF,MAAM,IAAIL,cAAW,CACjB,qCAAqC,EACrC,4BAA4B,EAC5BK,IACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMI,MAAM,GAAGjC,MAAM,CAAC,CAAC;EAEvBf,OAAO,CAACiD,GAAG,CAAC7C,GAAG,EAAE4C,MAAM,CAAC;EACxB,OAAOA,MAAM;AACjB,CAAC;AAACE,OAAA,CAAAtC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createAwsElasticsearchConnector","crypto","WebinyError","Client","clients","Map","createClientKey","options","key","JSON","stringify","hash","createHash","update","digest","createElasticsearchClient","existing","get","cached","endpoint","node","rest","clientOptions","auth","region","String","process","env","AWS_REGION","credentials","accessKeyId","AWS_ACCESS_KEY_ID","secretAccessKey","AWS_SECRET_ACCESS_KEY","sessionToken","AWS_SESSION_TOKEN","errors","Object","keys","filter","value","length","join","ex","data","error","undefined","console","client","set"],"sources":["client.ts"],"sourcesContent":["import createAwsElasticsearchConnector from \"aws-elasticsearch-connector\";\nimport crypto from \"crypto\";\nimport WebinyError from \"@webiny/error\";\nimport { Client, type ClientOptions } from \"@elastic/elasticsearch\";\n\nexport interface ElasticsearchClientOptions extends ClientOptions {\n endpoint?: string;\n}\n\nconst clients = new Map<string, Client>();\n\nconst createClientKey = (options: ElasticsearchClientOptions) => {\n const key = JSON.stringify(options);\n const hash = crypto.createHash(\"sha1\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n\nexport { Client, type ClientOptions };\n\nexport const createElasticsearchClient = (options: ElasticsearchClientOptions): Client => {\n const key = createClientKey(options);\n const existing = clients.get(key);\n if (existing) {\n return existing;\n }\n\n const cached = (): Client => {\n const { endpoint, node, ...rest } = options;\n\n let clientOptions: ClientOptions = {\n node: endpoint || node,\n ...rest\n };\n\n if (!clientOptions.auth) {\n const region = String(process.env.AWS_REGION);\n\n const credentials = {\n accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n sessionToken: process.env.AWS_SESSION_TOKEN\n };\n\n const errors = Object.keys(credentials).filter(key => {\n const value = credentials[key as keyof typeof credentials];\n return !value;\n });\n if (errors.length > 0) {\n throw new WebinyError(\n `Missing keys values: ${errors.join(\", \")}`,\n \"MISSING_AWS_CREDENTIALS\"\n );\n }\n\n clientOptions = {\n ...clientOptions,\n ...createAwsElasticsearchConnector({\n region,\n credentials\n })\n };\n }\n\n try {\n return new Client(clientOptions);\n } catch (ex) {\n const data = {\n error: ex,\n node: endpoint || node,\n ...rest,\n auth: undefined\n };\n console.error({\n ...data\n });\n throw new WebinyError(\n \"Could not connect to Elasticsearch.\",\n \"OPENSEARCH_CLIENT_ERROR\",\n data\n );\n }\n };\n\n const client = cached();\n\n clients.set(key, client);\n return client;\n};\n"],"mappings":"AAAA,OAAOA,+BAA+B,MAAM,6BAA6B;AACzE,OAAOC,MAAM,MAAM,QAAQ;AAC3B,OAAOC,WAAW,MAAM,eAAe;AACvC,SAASC,MAAM,QAA4B,wBAAwB;AAMnE,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAEzC,MAAMC,eAAe,GAAIC,OAAmC,IAAK;EAC7D,MAAMC,GAAG,GAAGC,IAAI,CAACC,SAAS,CAACH,OAAO,CAAC;EACnC,MAAMI,IAAI,GAAGV,MAAM,CAACW,UAAU,CAAC,MAAM,CAAC;EACtCD,IAAI,CAACE,MAAM,CAACL,GAAG,CAAC;EAChB,OAAOG,IAAI,CAACG,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC;AAED,SAASX,MAAM;AAEf,OAAO,MAAMY,yBAAyB,GAAIR,OAAmC,IAAa;EACtF,MAAMC,GAAG,GAAGF,eAAe,CAACC,OAAO,CAAC;EACpC,MAAMS,QAAQ,GAAGZ,OAAO,CAACa,GAAG,CAACT,GAAG,CAAC;EACjC,IAAIQ,QAAQ,EAAE;IACV,OAAOA,QAAQ;EACnB;EAEA,MAAME,MAAM,GAAGA,CAAA,KAAc;IACzB,MAAM;MAAEC,QAAQ;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGd,OAAO;IAE3C,IAAIe,aAA4B,GAAG;MAC/BF,IAAI,EAAED,QAAQ,IAAIC,IAAI;MACtB,GAAGC;IACP,CAAC;IAED,IAAI,CAACC,aAAa,CAACC,IAAI,EAAE;MACrB,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,UAAU,CAAC;MAE7C,MAAMC,WAAW,GAAG;QAChBC,WAAW,EAAEJ,OAAO,CAACC,GAAG,CAACI,iBAAiB;QAC1CC,eAAe,EAAEN,OAAO,CAACC,GAAG,CAACM,qBAAqB;QAClDC,YAAY,EAAER,OAAO,CAACC,GAAG,CAACQ;MAC9B,CAAC;MAED,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACT,WAAW,CAAC,CAACU,MAAM,CAAC/B,GAAG,IAAI;QAClD,MAAMgC,KAAK,GAAGX,WAAW,CAACrB,GAAG,CAA6B;QAC1D,OAAO,CAACgC,KAAK;MACjB,CAAC,CAAC;MACF,IAAIJ,MAAM,CAACK,MAAM,GAAG,CAAC,EAAE;QACnB,MAAM,IAAIvC,WAAW,CACjB,wBAAwBkC,MAAM,CAACM,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,yBACJ,CAAC;MACL;MAEApB,aAAa,GAAG;QACZ,GAAGA,aAAa;QAChB,GAAGtB,+BAA+B,CAAC;UAC/BwB,MAAM;UACNK;QACJ,CAAC;MACL,CAAC;IACL;IAEA,IAAI;MACA,OAAO,IAAI1B,MAAM,CAACmB,aAAa,CAAC;IACpC,CAAC,CAAC,OAAOqB,EAAE,EAAE;MACT,MAAMC,IAAI,GAAG;QACTC,KAAK,EAAEF,EAAE;QACTvB,IAAI,EAAED,QAAQ,IAAIC,IAAI;QACtB,GAAGC,IAAI;QACPE,IAAI,EAAEuB;MACV,CAAC;MACDC,OAAO,CAACF,KAAK,CAAC;QACV,GAAGD;MACP,CAAC,CAAC;MACF,MAAM,IAAI1C,WAAW,CACjB,qCAAqC,EACrC,yBAAyB,EACzB0C,IACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMI,MAAM,GAAG9B,MAAM,CAAC,CAAC;EAEvBd,OAAO,CAAC6C,GAAG,CAACzC,GAAG,EAAEwC,MAAM,CAAC;EACxB,OAAOA,MAAM;AACjB,CAAC","ignoreList":[]}
package/compression.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PluginsContainer } from "@webiny/plugins";
1
+ import type { PluginsContainer } from "@webiny/plugins";
2
2
  /**
3
3
  * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.
4
4
  */
package/compression.js CHANGED
@@ -1,52 +1,25 @@
1
- "use strict";
1
+ import { CompressorPlugin } from "@webiny/api";
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.decompress = exports.compress = void 0;
7
- var _CompressionPlugin = require("./plugins/definition/CompressionPlugin");
8
- /**
9
- * Get the compression plugins, in reverse order, because we want to use the last one added - first.
10
- */
11
- const getCompressionPlugins = plugins => {
12
- return plugins.byType(_CompressionPlugin.CompressionPlugin.type).reverse();
13
- };
14
3
  /**
15
4
  * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.
16
5
  */
17
- const compress = async (pluginsContainer, data) => {
18
- const plugins = getCompressionPlugins(pluginsContainer);
19
- if (plugins.length === 0) {
6
+ export const compress = async (pluginsContainer, data) => {
7
+ let plugin;
8
+ try {
9
+ plugin = pluginsContainer.oneByType(CompressorPlugin.type);
10
+ } catch {
20
11
  return data;
21
12
  }
22
- for (const plugin of plugins) {
23
- if (plugin.canCompress(data) === false) {
24
- continue;
25
- }
26
- return await plugin.compress(data);
27
- }
28
- /**
29
- * Possibly no plugins that can compress, just return the data.
30
- */
31
- return data;
13
+ return plugin.getCompressor().compress(data);
32
14
  };
33
- exports.compress = compress;
34
- const decompress = async (pluginsContainer, data) => {
35
- const plugins = getCompressionPlugins(pluginsContainer);
36
- if (plugins.length === 0) {
15
+ export const decompress = async (pluginsContainer, data) => {
16
+ let plugin;
17
+ try {
18
+ plugin = pluginsContainer.oneByType(CompressorPlugin.type);
19
+ } catch {
37
20
  return data;
38
21
  }
39
- for (const plugin of plugins) {
40
- if (plugin.canDecompress(data) === false) {
41
- continue;
42
- }
43
- return await plugin.decompress(data);
44
- }
45
- /**
46
- * Possibly no plugins that can decompress, just return the data.
47
- */
48
- return data;
22
+ return plugin.getCompressor().decompress(data);
49
23
  };
50
- exports.decompress = decompress;
51
24
 
52
25
  //# sourceMappingURL=compression.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_CompressionPlugin","require","getCompressionPlugins","plugins","byType","CompressionPlugin","type","reverse","compress","pluginsContainer","data","length","plugin","canCompress","exports","decompress","canDecompress"],"sources":["compression.ts"],"sourcesContent":["import { CompressionPlugin } from \"~/plugins/definition/CompressionPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\n/**\n * Get the compression plugins, in reverse order, because we want to use the last one added - first.\n */\nconst getCompressionPlugins = (plugins: PluginsContainer): CompressionPlugin[] => {\n return plugins.byType<CompressionPlugin>(CompressionPlugin.type).reverse();\n};\n/**\n * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.\n */\nexport const compress = async (\n pluginsContainer: PluginsContainer,\n data: Record<string, any>\n): Promise<Record<string, any>> => {\n const plugins = getCompressionPlugins(pluginsContainer);\n if (plugins.length === 0) {\n return data;\n }\n for (const plugin of plugins) {\n if (plugin.canCompress(data) === false) {\n continue;\n }\n return await plugin.compress(data);\n }\n /**\n * Possibly no plugins that can compress, just return the data.\n */\n return data;\n};\n\nexport const decompress = async (\n pluginsContainer: PluginsContainer,\n data: Record<string, any>\n): Promise<Record<string, any>> => {\n const plugins = getCompressionPlugins(pluginsContainer);\n if (plugins.length === 0) {\n return data;\n }\n for (const plugin of plugins) {\n if (plugin.canDecompress(data) === false) {\n continue;\n }\n return await plugin.decompress(data);\n }\n /**\n * Possibly no plugins that can decompress, just return the data.\n */\n return data;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA,MAAMC,qBAAqB,GAAIC,OAAyB,IAA0B;EAC9E,OAAOA,OAAO,CAACC,MAAM,CAAoBC,oCAAiB,CAACC,IAAI,CAAC,CAACC,OAAO,CAAC,CAAC;AAC9E,CAAC;AACD;AACA;AACA;AACO,MAAMC,QAAQ,GAAG,MAAAA,CACpBC,gBAAkC,EAClCC,IAAyB,KACM;EAC/B,MAAMP,OAAO,GAAGD,qBAAqB,CAACO,gBAAgB,CAAC;EACvD,IAAIN,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IACtB,OAAOD,IAAI;EACf;EACA,KAAK,MAAME,MAAM,IAAIT,OAAO,EAAE;IAC1B,IAAIS,MAAM,CAACC,WAAW,CAACH,IAAI,CAAC,KAAK,KAAK,EAAE;MACpC;IACJ;IACA,OAAO,MAAME,MAAM,CAACJ,QAAQ,CAACE,IAAI,CAAC;EACtC;EACA;AACJ;AACA;EACI,OAAOA,IAAI;AACf,CAAC;AAACI,OAAA,CAAAN,QAAA,GAAAA,QAAA;AAEK,MAAMO,UAAU,GAAG,MAAAA,CACtBN,gBAAkC,EAClCC,IAAyB,KACM;EAC/B,MAAMP,OAAO,GAAGD,qBAAqB,CAACO,gBAAgB,CAAC;EACvD,IAAIN,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IACtB,OAAOD,IAAI;EACf;EACA,KAAK,MAAME,MAAM,IAAIT,OAAO,EAAE;IAC1B,IAAIS,MAAM,CAACI,aAAa,CAACN,IAAI,CAAC,KAAK,KAAK,EAAE;MACtC;IACJ;IACA,OAAO,MAAME,MAAM,CAACG,UAAU,CAACL,IAAI,CAAC;EACxC;EACA;AACJ;AACA;EACI,OAAOA,IAAI;AACf,CAAC;AAACI,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["CompressorPlugin","compress","pluginsContainer","data","plugin","oneByType","type","getCompressor","decompress"],"sources":["compression.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport { CompressorPlugin } from \"@webiny/api\";\n\n/**\n * Method to compress the elasticsearch data that is going to be stored into the DynamoDB table that is meant for elasticsearch.\n */\nexport const compress = async (\n pluginsContainer: PluginsContainer,\n data: Record<string, any>\n): Promise<Record<string, any>> => {\n let plugin: CompressorPlugin;\n try {\n plugin = pluginsContainer.oneByType<CompressorPlugin>(CompressorPlugin.type);\n } catch {\n return data;\n }\n return plugin.getCompressor().compress(data);\n};\n\nexport const decompress = async (\n pluginsContainer: PluginsContainer,\n data: Record<string, any>\n): Promise<Record<string, any>> => {\n let plugin: CompressorPlugin;\n try {\n plugin = pluginsContainer.oneByType<CompressorPlugin>(CompressorPlugin.type);\n } catch {\n return data;\n }\n return plugin.getCompressor().decompress(data);\n};\n"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,aAAa;;AAE9C;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,GAAG,MAAAA,CACpBC,gBAAkC,EAClCC,IAAyB,KACM;EAC/B,IAAIC,MAAwB;EAC5B,IAAI;IACAA,MAAM,GAAGF,gBAAgB,CAACG,SAAS,CAAmBL,gBAAgB,CAACM,IAAI,CAAC;EAChF,CAAC,CAAC,MAAM;IACJ,OAAOH,IAAI;EACf;EACA,OAAOC,MAAM,CAACG,aAAa,CAAC,CAAC,CAACN,QAAQ,CAACE,IAAI,CAAC;AAChD,CAAC;AAED,OAAO,MAAMK,UAAU,GAAG,MAAAA,CACtBN,gBAAkC,EAClCC,IAAyB,KACM;EAC/B,IAAIC,MAAwB;EAC5B,IAAI;IACAA,MAAM,GAAGF,gBAAgB,CAACG,SAAS,CAAmBL,gBAAgB,CAACM,IAAI,CAAC;EAChF,CAAC,CAAC,MAAM;IACJ,OAAOH,IAAI;EACf;EACA,OAAOC,MAAM,CAACG,aAAa,CAAC,CAAC,CAACC,UAAU,CAACL,IAAI,CAAC;AAClD,CAAC","ignoreList":[]}
package/cursors.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { PrimitiveValue } from "./types";
1
+ import type { PrimitiveValue } from "./types.js";
2
2
  /**
3
3
  * Encode a received cursor value into something that can be passed on to the user.
4
4
  */
5
- export declare const encodeCursor: (cursor?: string | string[] | null) => string | undefined;
5
+ export declare const encodeCursor: (input?: PrimitiveValue[]) => string | undefined;
6
6
  /**
7
7
  * Decode a received value into a Elasticsearch cursor.
8
8
  * If no value is received or is not decodable, return undefined.
package/cursors.js CHANGED
@@ -1,17 +1,11 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.encodeCursor = exports.decodeCursor = void 0;
7
1
  /**
8
2
  * Encode a received cursor value into something that can be passed on to the user.
9
3
  */
10
- const encodeCursor = cursor => {
11
- if (!cursor) {
4
+ export const encodeCursor = input => {
5
+ if (!input) {
12
6
  return undefined;
13
7
  }
14
- cursor = Array.isArray(cursor) ? cursor.map(encodeURIComponent) : encodeURIComponent(cursor);
8
+ const cursor = Array.isArray(input) ? input.filter(item => item !== null).map(item => encodeURIComponent(item)) : encodeURIComponent(input);
15
9
  try {
16
10
  return Buffer.from(JSON.stringify(cursor)).toString("base64");
17
11
  } catch (ex) {
@@ -23,15 +17,14 @@ const encodeCursor = cursor => {
23
17
  * Decode a received value into a Elasticsearch cursor.
24
18
  * If no value is received or is not decodable, return undefined.
25
19
  */
26
- exports.encodeCursor = encodeCursor;
27
- const decodeCursor = cursor => {
20
+ export const decodeCursor = cursor => {
28
21
  if (!cursor) {
29
22
  return undefined;
30
23
  }
31
24
  try {
32
25
  const value = JSON.parse(Buffer.from(cursor, "base64").toString("ascii"));
33
26
  if (Array.isArray(value)) {
34
- return value.map(decodeURIComponent);
27
+ return value.filter(item => item !== null).map(decodeURIComponent);
35
28
  }
36
29
  const decoded = decodeURIComponent(value);
37
30
  return decoded ? [decoded] : undefined;
@@ -40,6 +33,5 @@ const decodeCursor = cursor => {
40
33
  }
41
34
  return undefined;
42
35
  };
43
- exports.decodeCursor = decodeCursor;
44
36
 
45
37
  //# sourceMappingURL=cursors.js.map
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","exports","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;AAHAc,OAAA,CAAAhB,YAAA,GAAAA,YAAA;AAIO,MAAMiB,YAAY,GAAIhB,MAAsB,IAAmC;EAClF,IAAI,CAACA,MAAM,EAAE;IACT,OAAOC,SAAS;EACpB;EACA,IAAI;IACA,MAAMgB,KAAK,GAAGT,IAAI,CAACU,KAAK,CAACZ,MAAM,CAACC,IAAI,CAACP,MAAM,EAAE,QAAQ,CAAC,CAACU,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,IAAIR,KAAK,CAACC,OAAO,CAACc,KAAK,CAAC,EAAE;MACtB,OAAOA,KAAK,CAACb,GAAG,CAACe,kBAAkB,CAAC;IACxC;IACA,MAAMC,OAAO,GAAGD,kBAAkB,CAACF,KAAK,CAAC;IACzC,OAAOG,OAAO,GAAG,CAACA,OAAO,CAAC,GAAGnB,SAAS;EAC1C,CAAC,CAAC,OAAOU,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOb,SAAS;AACpB,CAAC;AAACc,OAAA,CAAAC,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["encodeCursor","input","undefined","cursor","Array","isArray","filter","item","map","encodeURIComponent","Buffer","from","JSON","stringify","toString","ex","console","error","message","decodeCursor","value","parse","decodeURIComponent","decoded"],"sources":["cursors.ts"],"sourcesContent":["import type { PrimitiveValue } from \"~/types.js\";\n\n/**\n * Encode a received cursor value into something that can be passed on to the user.\n */\nexport const encodeCursor = (input?: PrimitiveValue[]): string | undefined => {\n if (!input) {\n return undefined;\n }\n\n const cursor = Array.isArray(input)\n ? input\n .filter((item: PrimitiveValue): item is string | number | boolean => item !== null)\n .map(item => encodeURIComponent(item))\n : encodeURIComponent(input);\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.filter(item => item !== null).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;AACA,OAAO,MAAMA,YAAY,GAAIC,KAAwB,IAAyB;EAC1E,IAAI,CAACA,KAAK,EAAE;IACR,OAAOC,SAAS;EACpB;EAEA,MAAMC,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAC7BA,KAAK,CACAK,MAAM,CAAEC,IAAoB,IAAwCA,IAAI,KAAK,IAAI,CAAC,CAClFC,GAAG,CAACD,IAAI,IAAIE,kBAAkB,CAACF,IAAI,CAAC,CAAC,GAC1CE,kBAAkB,CAACR,KAAK,CAAC;EAE/B,IAAI;IACA,OAAOS,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACV,MAAM,CAAC,CAAC,CAACW,QAAQ,CAAC,QAAQ,CAAC;EACjE,CAAC,CAAC,OAAOC,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOhB,SAAS;AACpB,CAAC;AACD;AACA;AACA;AACA;AACA,OAAO,MAAMiB,YAAY,GAAIhB,MAAsB,IAAmC;EAClF,IAAI,CAACA,MAAM,EAAE;IACT,OAAOD,SAAS;EACpB;EACA,IAAI;IACA,MAAMkB,KAAK,GAAGR,IAAI,CAACS,KAAK,CAACX,MAAM,CAACC,IAAI,CAACR,MAAM,EAAE,QAAQ,CAAC,CAACW,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,IAAIV,KAAK,CAACC,OAAO,CAACe,KAAK,CAAC,EAAE;MACtB,OAAOA,KAAK,CAACd,MAAM,CAACC,IAAI,IAAIA,IAAI,KAAK,IAAI,CAAC,CAACC,GAAG,CAACc,kBAAkB,CAAC;IACtE;IACA,MAAMC,OAAO,GAAGD,kBAAkB,CAACF,KAAK,CAAC;IACzC,OAAOG,OAAO,GAAG,CAACA,OAAO,CAAC,GAAGrB,SAAS;EAC1C,CAAC,CAAC,OAAOa,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;EAC7B;EACA,OAAOhB,SAAS;AACpB,CAAC","ignoreList":[]}
package/db/entity.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { type ITable } from "@webiny/db-dynamodb";
2
+ import type { IElasticsearchEntity } from "../db/types.js";
3
+ export interface ICreateElasticsearchEntityParams {
4
+ table: ITable;
5
+ entityName: string;
6
+ }
7
+ export declare const createElasticsearchEntity: (params: ICreateElasticsearchEntityParams) => IElasticsearchEntity;
package/db/entity.js ADDED
@@ -0,0 +1,20 @@
1
+ import { createEntity, standardEntityAttributes } from "@webiny/db-dynamodb";
2
+ export const createElasticsearchEntity = params => {
3
+ const {
4
+ table,
5
+ entityName
6
+ } = params;
7
+ return createEntity({
8
+ name: entityName,
9
+ table: table.table,
10
+ attributes: {
11
+ ...standardEntityAttributes,
12
+ index: {
13
+ type: "string",
14
+ required: true
15
+ }
16
+ }
17
+ });
18
+ };
19
+
20
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEntity","standardEntityAttributes","createElasticsearchEntity","params","table","entityName","name","attributes","index","type","required"],"sources":["entity.ts"],"sourcesContent":["import { createEntity, type ITable, standardEntityAttributes } from \"@webiny/db-dynamodb\";\nimport type { IElasticsearchEntity, IElasticsearchEntityAttributes } from \"~/db/types.js\";\n\nexport interface ICreateElasticsearchEntityParams {\n table: ITable;\n entityName: string;\n}\n\nexport const createElasticsearchEntity = (\n params: ICreateElasticsearchEntityParams\n): IElasticsearchEntity => {\n const { table, entityName } = params;\n return createEntity<IElasticsearchEntityAttributes>({\n name: entityName,\n table: table.table,\n attributes: {\n ...standardEntityAttributes,\n index: {\n type: \"string\",\n required: true\n }\n }\n });\n};\n"],"mappings":"AAAA,SAASA,YAAY,EAAeC,wBAAwB,QAAQ,qBAAqB;AAQzF,OAAO,MAAMC,yBAAyB,GAClCC,MAAwC,IACjB;EACvB,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGF,MAAM;EACpC,OAAOH,YAAY,CAAiC;IAChDM,IAAI,EAAED,UAAU;IAChBD,KAAK,EAAEA,KAAK,CAACA,KAAK;IAClBG,UAAU,EAAE;MACR,GAAGN,wBAAwB;MAC3BO,KAAK,EAAE;QACHC,IAAI,EAAE,QAAQ;QACdC,QAAQ,EAAE;MACd;IACJ;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
package/db/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./table.js";
2
+ export * from "./entity.js";
3
+ export * from "./types.js";
package/db/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from "./table.js";
2
+ export * from "./entity.js";
3
+ export * from "./types.js";
4
+
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./table.js\";\nexport * from \"./entity.js\";\nexport * from \"./types.js\";\n"],"mappings":"AAAA;AACA;AACA","ignoreList":[]}
package/db/table.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
2
+ import { type ITable } from "@webiny/db-dynamodb";
3
+ export interface ICreateElasticsearchTableParams {
4
+ name?: string;
5
+ documentClient: DynamoDBDocument;
6
+ }
7
+ export declare const createElasticsearchTable: ({ name, documentClient }: ICreateElasticsearchTableParams) => ITable;
package/db/table.js ADDED
@@ -0,0 +1,17 @@
1
+ import { createTable } from "@webiny/db-dynamodb";
2
+ export const createElasticsearchTable = ({
3
+ name,
4
+ documentClient
5
+ }) => {
6
+ return createTable({
7
+ name: name || process.env.DB_TABLE_OPENSEARCH,
8
+ indexes: {
9
+ GSI_TENANT: {
10
+ partitionKey: "GSI_TENANT"
11
+ }
12
+ },
13
+ documentClient
14
+ });
15
+ };
16
+
17
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTable","createElasticsearchTable","name","documentClient","process","env","DB_TABLE_OPENSEARCH","indexes","GSI_TENANT","partitionKey"],"sources":["table.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { createTable, type ITable } from \"@webiny/db-dynamodb\";\n\nexport interface ICreateElasticsearchTableParams {\n name?: string;\n documentClient: DynamoDBDocument;\n}\n\nexport const createElasticsearchTable = ({\n name,\n documentClient\n}: ICreateElasticsearchTableParams): ITable => {\n return createTable({\n name: name || (process.env.DB_TABLE_OPENSEARCH as string),\n indexes: {\n GSI_TENANT: {\n partitionKey: \"GSI_TENANT\"\n }\n },\n documentClient\n });\n};\n"],"mappings":"AACA,SAASA,WAAW,QAAqB,qBAAqB;AAO9D,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EACrCC,IAAI;EACJC;AAC6B,CAAC,KAAa;EAC3C,OAAOH,WAAW,CAAC;IACfE,IAAI,EAAEA,IAAI,IAAKE,OAAO,CAACC,GAAG,CAACC,mBAA8B;IACzDC,OAAO,EAAE;MACLC,UAAU,EAAE;QACRC,YAAY,EAAE;MAClB;IACJ,CAAC;IACDN;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
package/db/types.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import type { IEntity, IStandardEntityAttributes } from "@webiny/db-dynamodb";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
+ export interface IElasticsearchEntityAttributes extends IStandardEntityAttributes<GenericRecord> {
4
+ index: string;
5
+ }
6
+ export type IElasticsearchEntity = IEntity<IElasticsearchEntityAttributes>;
package/db/types.js ADDED
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IEntity, IStandardEntityAttributes } from \"@webiny/db-dynamodb\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface IElasticsearchEntityAttributes extends IStandardEntityAttributes<GenericRecord> {\n index: string;\n}\n\nexport type IElasticsearchEntity = IEntity<IElasticsearchEntityAttributes>;\n"],"mappings":"","ignoreList":[]}
package/index.d.ts CHANGED
@@ -1,21 +1,23 @@
1
- import { ElasticsearchContext } from "./types";
1
+ import type { ElasticsearchContext } from "./types.js";
2
2
  import { ContextPlugin } from "@webiny/api";
3
- import { ElasticsearchClientOptions } from "./client";
3
+ import type { ElasticsearchClientOptions } from "./client.js";
4
4
  import { Client } from "@elastic/elasticsearch";
5
- export * from "./indexConfiguration";
6
- export * from "./plugins";
7
- export * from "./sort";
8
- export * from "./indices";
9
- export * from "./where";
10
- export * from "./limit";
11
- export * from "./normalize";
12
- export * from "./compression";
13
- export * from "./operators";
14
- export * from "./cursors";
15
- export * from "./client";
16
- export * from "./utils";
17
- export * from "./operations";
18
- export { createGzipCompression } from "./plugins/GzipCompression";
5
+ export * from "./indexConfiguration/index.js";
6
+ export * from "./plugins/index.js";
7
+ export * from "./sort.js";
8
+ export * from "./indices.js";
9
+ export * from "./where.js";
10
+ export * from "./limit.js";
11
+ export * from "./normalize.js";
12
+ export * from "./compression.js";
13
+ export * from "./operators.js";
14
+ export * from "./cursors.js";
15
+ export * from "./client.js";
16
+ export * from "./utils/index.js";
17
+ export * from "./operations/index.js";
18
+ export * from "./sharedIndex.js";
19
+ export * from "./indexPrefix.js";
20
+ export * from "./db/index.js";
19
21
  /**
20
22
  * We must accept either Elasticsearch client or options that create the client.
21
23
  */