@webiny/api-elasticsearch 6.0.0-beta.0 → 6.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/client.d.ts +2 -2
- package/client.js +11 -31
- package/client.js.map +1 -1
- package/compression.d.ts +1 -1
- package/compression.js +13 -40
- package/compression.js.map +1 -1
- package/cursors.d.ts +2 -2
- package/cursors.js +5 -13
- package/cursors.js.map +1 -1
- package/db/entity.d.ts +7 -0
- package/db/entity.js +20 -0
- package/db/entity.js.map +1 -0
- package/db/index.d.ts +3 -0
- package/db/index.js +5 -0
- package/db/index.js.map +1 -0
- package/db/table.d.ts +7 -0
- package/db/table.js +17 -0
- package/db/table.js.map +1 -0
- package/db/types.d.ts +6 -0
- package/db/types.js +3 -0
- package/db/types.js.map +1 -0
- package/index.d.ts +18 -16
- package/index.js +27 -182
- package/index.js.map +1 -1
- package/indexConfiguration/base.d.ts +1 -1
- package/indexConfiguration/base.js +3 -10
- package/indexConfiguration/base.js.map +1 -1
- package/indexConfiguration/common.d.ts +1 -1
- package/indexConfiguration/common.js +12 -8
- package/indexConfiguration/common.js.map +1 -1
- package/indexConfiguration/index.d.ts +2 -3
- package/indexConfiguration/index.js +2 -38
- package/indexConfiguration/index.js.map +1 -1
- package/indexPrefix.d.ts +1 -0
- package/indexPrefix.js +5 -0
- package/indexPrefix.js.map +1 -0
- package/indices.d.ts +2 -3
- package/indices.js +6 -16
- package/indices.js.map +1 -1
- package/limit.js +1 -8
- package/limit.js.map +1 -1
- package/normalize.js +3 -11
- package/normalize.js.map +1 -1
- package/operations/ElasticsearchCatHealth.d.ts +2 -2
- package/operations/ElasticsearchCatHealth.js +6 -13
- package/operations/ElasticsearchCatHealth.js.map +1 -1
- package/operations/ElasticsearchCatNodes.d.ts +2 -2
- package/operations/ElasticsearchCatNodes.js +6 -13
- package/operations/ElasticsearchCatNodes.js.map +1 -1
- package/operations/index.d.ts +3 -3
- package/operations/index.js +3 -38
- package/operations/index.js.map +1 -1
- package/operations/stripConnectionFromException.js +1 -8
- package/operations/stripConnectionFromException.js.map +1 -1
- package/operations/types.d.ts +1 -1
- package/operations/types.js +1 -7
- package/operations/types.js.map +1 -1
- package/operators.d.ts +2 -5
- package/operators.js +3 -41
- package/operators.js.map +1 -1
- package/package.json +14 -18
- package/plugins/definition/ElasticsearchBodyModifierPlugin.d.ts +1 -1
- package/plugins/definition/ElasticsearchBodyModifierPlugin.js +4 -12
- package/plugins/definition/ElasticsearchBodyModifierPlugin.js.map +1 -1
- package/plugins/definition/ElasticsearchFieldPlugin.d.ts +2 -2
- package/plugins/definition/ElasticsearchFieldPlugin.js +2 -9
- package/plugins/definition/ElasticsearchFieldPlugin.js.map +1 -1
- package/plugins/definition/ElasticsearchIndexPlugin.d.ts +2 -10
- package/plugins/definition/ElasticsearchIndexPlugin.js +4 -23
- package/plugins/definition/ElasticsearchIndexPlugin.js.map +1 -1
- package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.d.ts +1 -5
- package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js +2 -17
- package/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin.js.map +1 -1
- package/plugins/definition/ElasticsearchQueryModifierPlugin.d.ts +1 -1
- package/plugins/definition/ElasticsearchQueryModifierPlugin.js +4 -12
- package/plugins/definition/ElasticsearchQueryModifierPlugin.js.map +1 -1
- package/plugins/definition/ElasticsearchSortModifierPlugin.d.ts +1 -1
- package/plugins/definition/ElasticsearchSortModifierPlugin.js +4 -12
- package/plugins/definition/ElasticsearchSortModifierPlugin.js.map +1 -1
- package/plugins/definition/index.d.ts +6 -7
- package/plugins/definition/index.js +6 -82
- package/plugins/definition/index.js.map +1 -1
- package/plugins/index.d.ts +2 -2
- package/plugins/index.js +2 -27
- package/plugins/index.js.map +1 -1
- package/plugins/operator/andIn.d.ts +2 -2
- package/plugins/operator/andIn.js +2 -9
- package/plugins/operator/andIn.js.map +1 -1
- package/plugins/operator/between.d.ts +2 -2
- package/plugins/operator/between.js +2 -9
- package/plugins/operator/between.js.map +1 -1
- package/plugins/operator/contains.d.ts +2 -2
- package/plugins/operator/contains.js +4 -11
- package/plugins/operator/contains.js.map +1 -1
- package/plugins/operator/equal.d.ts +2 -2
- package/plugins/operator/equal.js +3 -10
- package/plugins/operator/equal.js.map +1 -1
- package/plugins/operator/gt.d.ts +2 -2
- package/plugins/operator/gt.js +2 -9
- package/plugins/operator/gt.js.map +1 -1
- package/plugins/operator/gte.d.ts +2 -2
- package/plugins/operator/gte.js +2 -9
- package/plugins/operator/gte.js.map +1 -1
- package/plugins/operator/in.d.ts +2 -2
- package/plugins/operator/in.js +2 -9
- package/plugins/operator/in.js.map +1 -1
- package/plugins/operator/index.d.ts +15 -16
- package/plugins/operator/index.js +15 -181
- package/plugins/operator/index.js.map +1 -1
- package/plugins/operator/lt.d.ts +2 -2
- package/plugins/operator/lt.js +2 -9
- package/plugins/operator/lt.js.map +1 -1
- package/plugins/operator/lte.d.ts +2 -2
- package/plugins/operator/lte.js +2 -9
- package/plugins/operator/lte.js.map +1 -1
- package/plugins/operator/not.d.ts +2 -2
- package/plugins/operator/not.js +3 -10
- package/plugins/operator/not.js.map +1 -1
- package/plugins/operator/notBetween.d.ts +2 -2
- package/plugins/operator/notBetween.js +2 -9
- package/plugins/operator/notBetween.js.map +1 -1
- package/plugins/operator/notContains.d.ts +2 -2
- package/plugins/operator/notContains.js +4 -11
- package/plugins/operator/notContains.js.map +1 -1
- package/plugins/operator/notIn.d.ts +2 -2
- package/plugins/operator/notIn.js +2 -9
- package/plugins/operator/notIn.js.map +1 -1
- package/plugins/operator/notStartsWith.d.ts +2 -2
- package/plugins/operator/notStartsWith.js +2 -9
- package/plugins/operator/notStartsWith.js.map +1 -1
- package/plugins/operator/startsWith.d.ts +2 -2
- package/plugins/operator/startsWith.js +2 -9
- package/plugins/operator/startsWith.js.map +1 -1
- package/sharedIndex.d.ts +1 -0
- package/sharedIndex.js +5 -0
- package/sharedIndex.js.map +1 -0
- package/sort.d.ts +2 -2
- package/sort.js +18 -17
- package/sort.js.map +1 -1
- package/types.d.ts +32 -20
- package/types.js +28 -26
- package/types.js.map +1 -1
- package/utils/createIndex.d.ts +2 -3
- package/utils/createIndex.js +7 -19
- package/utils/createIndex.js.map +1 -1
- package/utils/index.d.ts +3 -3
- package/utils/index.js +3 -27
- package/utils/index.js.map +1 -1
- package/utils/waitUntilHealthy/UnhealthyClusterError.js +2 -9
- package/utils/waitUntilHealthy/UnhealthyClusterError.js.map +1 -1
- package/utils/waitUntilHealthy/WaitUntilHealthy.d.ts +4 -4
- package/utils/waitUntilHealthy/WaitUntilHealthy.js +22 -29
- package/utils/waitUntilHealthy/WaitUntilHealthy.js.map +1 -1
- package/utils/waitUntilHealthy/WaitingHealthyClusterAbortedError.js +2 -9
- package/utils/waitUntilHealthy/WaitingHealthyClusterAbortedError.js.map +1 -1
- package/utils/waitUntilHealthy/index.d.ts +6 -6
- package/utils/waitUntilHealthy/index.js +6 -49
- package/utils/waitUntilHealthy/index.js.map +1 -1
- package/utils/waitUntilHealthy/reason/ClusterHealthReason.d.ts +2 -2
- package/utils/waitUntilHealthy/reason/ClusterHealthReason.js +2 -10
- package/utils/waitUntilHealthy/reason/ClusterHealthReason.js.map +1 -1
- package/utils/waitUntilHealthy/reason/IReason.js +1 -5
- package/utils/waitUntilHealthy/reason/MemoryReason.d.ts +1 -1
- package/utils/waitUntilHealthy/reason/MemoryReason.js +2 -10
- package/utils/waitUntilHealthy/reason/MemoryReason.js.map +1 -1
- package/utils/waitUntilHealthy/reason/ProcessorReason.d.ts +1 -1
- package/utils/waitUntilHealthy/reason/ProcessorReason.js +2 -10
- package/utils/waitUntilHealthy/reason/ProcessorReason.js.map +1 -1
- package/utils/waitUntilHealthy/reason/index.d.ts +3 -3
- package/utils/waitUntilHealthy/reason/index.js +3 -38
- package/utils/waitUntilHealthy/reason/index.js.map +1 -1
- package/where.d.ts +4 -4
- package/where.js +7 -16
- package/where.js.map +1 -1
- package/indexConfiguration/japanese.d.ts +0 -6
- package/indexConfiguration/japanese.js +0 -121
- package/indexConfiguration/japanese.js.map +0 -1
- package/plugins/GzipCompression.d.ts +0 -24
- package/plugins/GzipCompression.js +0 -70
- package/plugins/GzipCompression.js.map +0 -1
- package/plugins/definition/CompressionPlugin.d.ts +0 -20
- package/plugins/definition/CompressionPlugin.js +0 -28
- package/plugins/definition/CompressionPlugin.js.map +0 -1
- package/plugins/operator/japanese/contains.d.ts +0 -8
- package/plugins/operator/japanese/contains.js +0 -44
- 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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 =
|
|
8
|
+
const hash = crypto.createHash("sha1");
|
|
28
9
|
hash.update(key);
|
|
29
10
|
return hash.digest("hex");
|
|
30
11
|
};
|
|
31
|
-
|
|
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
|
|
41
|
+
throw new WebinyError(`Missing keys values: ${errors.join(", ")}`, "MISSING_AWS_CREDENTIALS");
|
|
60
42
|
}
|
|
61
43
|
clientOptions = {
|
|
62
44
|
...clientOptions,
|
|
63
|
-
...(
|
|
45
|
+
...createAwsElasticsearchConnector({
|
|
64
46
|
region,
|
|
65
|
-
// @ts-expect-error
|
|
66
47
|
credentials
|
|
67
48
|
})
|
|
68
49
|
};
|
|
69
50
|
}
|
|
70
51
|
try {
|
|
71
|
-
return new
|
|
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
|
|
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":["
|
|
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
package/compression.js
CHANGED
|
@@ -1,52 +1,25 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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
|
package/compression.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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: (
|
|
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 =
|
|
11
|
-
if (!
|
|
4
|
+
export const encodeCursor = input => {
|
|
5
|
+
if (!input) {
|
|
12
6
|
return undefined;
|
|
13
7
|
}
|
|
14
|
-
cursor = Array.isArray(
|
|
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
|
-
|
|
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","
|
|
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
|
package/db/entity.js.map
ADDED
|
@@ -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
package/db/index.js
ADDED
package/db/index.js.map
ADDED
|
@@ -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
|
package/db/table.js.map
ADDED
|
@@ -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
package/db/types.js.map
ADDED
|
@@ -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
|
|
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
|
*/
|