@retter/elasticsearch 8.4.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.dockerignore +5 -0
- package/CHANGELOG.md +3 -0
- package/LICENSE +202 -0
- package/NOTICE.txt +2 -0
- package/README.md +186 -0
- package/codecov.yml +14 -0
- package/index.d.ts +27 -0
- package/index.js +55 -0
- package/lib/api/api/async_search.d.ts +23 -0
- package/lib/api/api/async_search.js +131 -0
- package/lib/api/api/async_search.js.map +1 -0
- package/lib/api/api/autoscaling.d.ts +23 -0
- package/lib/api/api/autoscaling.js +109 -0
- package/lib/api/api/autoscaling.js.map +1 -0
- package/lib/api/api/bulk.d.ts +10 -0
- package/lib/api/api/bulk.js +54 -0
- package/lib/api/api/bulk.js.map +1 -0
- package/lib/api/api/cat.d.ts +89 -0
- package/lib/api/api/cat.js +637 -0
- package/lib/api/api/cat.js.map +1 -0
- package/lib/api/api/ccr.d.ts +50 -0
- package/lib/api/api/ccr.js +320 -0
- package/lib/api/api/ccr.js.map +1 -0
- package/lib/api/api/clear_scroll.d.ts +10 -0
- package/lib/api/api/clear_scroll.js +54 -0
- package/lib/api/api/clear_scroll.js.map +1 -0
- package/lib/api/api/close_point_in_time.d.ts +10 -0
- package/lib/api/api/close_point_in_time.js +53 -0
- package/lib/api/api/close_point_in_time.js.map +1 -0
- package/lib/api/api/cluster.d.ts +56 -0
- package/lib/api/api/cluster.js +392 -0
- package/lib/api/api/cluster.js.map +1 -0
- package/lib/api/api/count.d.ts +10 -0
- package/lib/api/api/count.js +62 -0
- package/lib/api/api/count.js.map +1 -0
- package/lib/api/api/create.d.ts +10 -0
- package/lib/api/api/create.js +46 -0
- package/lib/api/api/create.js.map +1 -0
- package/lib/api/api/dangling_indices.d.ts +20 -0
- package/lib/api/api/dangling_indices.js +85 -0
- package/lib/api/api/dangling_indices.js.map +1 -0
- package/lib/api/api/delete.d.ts +10 -0
- package/lib/api/api/delete.js +39 -0
- package/lib/api/api/delete.js.map +1 -0
- package/lib/api/api/delete_by_query.d.ts +10 -0
- package/lib/api/api/delete_by_query.js +53 -0
- package/lib/api/api/delete_by_query.js.map +1 -0
- package/lib/api/api/delete_by_query_rethrottle.d.ts +10 -0
- package/lib/api/api/delete_by_query_rethrottle.js +39 -0
- package/lib/api/api/delete_by_query_rethrottle.js.map +1 -0
- package/lib/api/api/delete_script.d.ts +10 -0
- package/lib/api/api/delete_script.js +39 -0
- package/lib/api/api/delete_script.js.map +1 -0
- package/lib/api/api/enrich.d.ts +26 -0
- package/lib/api/api/enrich.js +142 -0
- package/lib/api/api/enrich.js.map +1 -0
- package/lib/api/api/eql.d.ts +23 -0
- package/lib/api/api/eql.js +115 -0
- package/lib/api/api/eql.js.map +1 -0
- package/lib/api/api/exists.d.ts +10 -0
- package/lib/api/api/exists.js +39 -0
- package/lib/api/api/exists.js.map +1 -0
- package/lib/api/api/exists_source.d.ts +10 -0
- package/lib/api/api/exists_source.js +39 -0
- package/lib/api/api/exists_source.js.map +1 -0
- package/lib/api/api/explain.d.ts +10 -0
- package/lib/api/api/explain.js +53 -0
- package/lib/api/api/explain.js.map +1 -0
- package/lib/api/api/features.d.ts +17 -0
- package/lib/api/api/features.js +69 -0
- package/lib/api/api/features.js.map +1 -0
- package/lib/api/api/field_caps.d.ts +10 -0
- package/lib/api/api/field_caps.js +61 -0
- package/lib/api/api/field_caps.js.map +1 -0
- package/lib/api/api/fleet.d.ts +20 -0
- package/lib/api/api/fleet.js +113 -0
- package/lib/api/api/fleet.js.map +1 -0
- package/lib/api/api/get.d.ts +10 -0
- package/lib/api/api/get.js +39 -0
- package/lib/api/api/get.js.map +1 -0
- package/lib/api/api/get_script.d.ts +10 -0
- package/lib/api/api/get_script.js +39 -0
- package/lib/api/api/get_script.js.map +1 -0
- package/lib/api/api/get_script_context.d.ts +10 -0
- package/lib/api/api/get_script_context.js +40 -0
- package/lib/api/api/get_script_context.js.map +1 -0
- package/lib/api/api/get_script_languages.d.ts +10 -0
- package/lib/api/api/get_script_languages.js +40 -0
- package/lib/api/api/get_script_languages.js.map +1 -0
- package/lib/api/api/get_source.d.ts +10 -0
- package/lib/api/api/get_source.js +39 -0
- package/lib/api/api/get_source.js.map +1 -0
- package/lib/api/api/graph.d.ts +14 -0
- package/lib/api/api/graph.js +64 -0
- package/lib/api/api/graph.js.map +1 -0
- package/lib/api/api/ilm.d.ts +44 -0
- package/lib/api/api/ilm.js +275 -0
- package/lib/api/api/ilm.js.map +1 -0
- package/lib/api/api/index.d.ts +10 -0
- package/lib/api/api/index.js +54 -0
- package/lib/api/api/index.js.map +1 -0
- package/lib/api/api/indices.d.ts +170 -0
- package/lib/api/api/indices.js +1378 -0
- package/lib/api/api/indices.js.map +1 -0
- package/lib/api/api/info.d.ts +10 -0
- package/lib/api/api/info.js +40 -0
- package/lib/api/api/info.js.map +1 -0
- package/lib/api/api/ingest.d.ts +29 -0
- package/lib/api/api/ingest.js +183 -0
- package/lib/api/api/ingest.js.map +1 -0
- package/lib/api/api/knn_search.d.ts +10 -0
- package/lib/api/api/knn_search.js +53 -0
- package/lib/api/api/knn_search.js.map +1 -0
- package/lib/api/api/license.d.ts +32 -0
- package/lib/api/api/license.js +172 -0
- package/lib/api/api/license.js.map +1 -0
- package/lib/api/api/logstash.d.ts +20 -0
- package/lib/api/api/logstash.js +91 -0
- package/lib/api/api/logstash.js.map +1 -0
- package/lib/api/api/mget.d.ts +10 -0
- package/lib/api/api/mget.js +62 -0
- package/lib/api/api/mget.js.map +1 -0
- package/lib/api/api/migration.d.ts +20 -0
- package/lib/api/api/migration.js +95 -0
- package/lib/api/api/migration.js.map +1 -0
- package/lib/api/api/ml.d.ts +224 -0
- package/lib/api/api/ml.js +1929 -0
- package/lib/api/api/ml.js.map +1 -0
- package/lib/api/api/monitoring.d.ts +14 -0
- package/lib/api/api/monitoring.js +57 -0
- package/lib/api/api/monitoring.js.map +1 -0
- package/lib/api/api/msearch.d.ts +10 -0
- package/lib/api/api/msearch.js +54 -0
- package/lib/api/api/msearch.js.map +1 -0
- package/lib/api/api/msearch_template.d.ts +10 -0
- package/lib/api/api/msearch_template.js +54 -0
- package/lib/api/api/msearch_template.js.map +1 -0
- package/lib/api/api/mtermvectors.d.ts +10 -0
- package/lib/api/api/mtermvectors.js +62 -0
- package/lib/api/api/mtermvectors.js.map +1 -0
- package/lib/api/api/nodes.d.ts +32 -0
- package/lib/api/api/nodes.js +243 -0
- package/lib/api/api/nodes.js.map +1 -0
- package/lib/api/api/open_point_in_time.d.ts +10 -0
- package/lib/api/api/open_point_in_time.js +39 -0
- package/lib/api/api/open_point_in_time.js.map +1 -0
- package/lib/api/api/ping.d.ts +10 -0
- package/lib/api/api/ping.js +40 -0
- package/lib/api/api/ping.js.map +1 -0
- package/lib/api/api/put_script.d.ts +10 -0
- package/lib/api/api/put_script.js +61 -0
- package/lib/api/api/put_script.js.map +1 -0
- package/lib/api/api/rank_eval.d.ts +10 -0
- package/lib/api/api/rank_eval.js +61 -0
- package/lib/api/api/rank_eval.js.map +1 -0
- package/lib/api/api/reindex.d.ts +10 -0
- package/lib/api/api/reindex.js +53 -0
- package/lib/api/api/reindex.js.map +1 -0
- package/lib/api/api/reindex_rethrottle.d.ts +10 -0
- package/lib/api/api/reindex_rethrottle.js +39 -0
- package/lib/api/api/reindex_rethrottle.js.map +1 -0
- package/lib/api/api/render_search_template.d.ts +10 -0
- package/lib/api/api/render_search_template.js +62 -0
- package/lib/api/api/render_search_template.js.map +1 -0
- package/lib/api/api/rollup.d.ts +38 -0
- package/lib/api/api/rollup.js +239 -0
- package/lib/api/api/rollup.js.map +1 -0
- package/lib/api/api/scripts_painless_execute.d.ts +10 -0
- package/lib/api/api/scripts_painless_execute.js +54 -0
- package/lib/api/api/scripts_painless_execute.js.map +1 -0
- package/lib/api/api/scroll.d.ts +10 -0
- package/lib/api/api/scroll.js +53 -0
- package/lib/api/api/scroll.js.map +1 -0
- package/lib/api/api/search.d.ts +10 -0
- package/lib/api/api/search.js +69 -0
- package/lib/api/api/search.js.map +1 -0
- package/lib/api/api/search_mvt.d.ts +10 -0
- package/lib/api/api/search_mvt.js +53 -0
- package/lib/api/api/search_mvt.js.map +1 -0
- package/lib/api/api/search_shards.d.ts +10 -0
- package/lib/api/api/search_shards.js +48 -0
- package/lib/api/api/search_shards.js.map +1 -0
- package/lib/api/api/search_template.d.ts +10 -0
- package/lib/api/api/search_template.js +62 -0
- package/lib/api/api/search_template.js.map +1 -0
- package/lib/api/api/searchable_snapshots.d.ts +23 -0
- package/lib/api/api/searchable_snapshots.js +142 -0
- package/lib/api/api/searchable_snapshots.js.map +1 -0
- package/lib/api/api/security.d.ts +173 -0
- package/lib/api/api/security.js +1344 -0
- package/lib/api/api/security.js.map +1 -0
- package/lib/api/api/shutdown.d.ts +20 -0
- package/lib/api/api/shutdown.js +107 -0
- package/lib/api/api/shutdown.js.map +1 -0
- package/lib/api/api/slm.d.ts +38 -0
- package/lib/api/api/slm.js +214 -0
- package/lib/api/api/slm.js.map +1 -0
- package/lib/api/api/snapshot.d.ts +47 -0
- package/lib/api/api/snapshot.js +315 -0
- package/lib/api/api/snapshot.js.map +1 -0
- package/lib/api/api/sql.d.ts +29 -0
- package/lib/api/api/sql.js +178 -0
- package/lib/api/api/sql.js.map +1 -0
- package/lib/api/api/ssl.d.ts +14 -0
- package/lib/api/api/ssl.js +51 -0
- package/lib/api/api/ssl.js.map +1 -0
- package/lib/api/api/tasks.d.ts +20 -0
- package/lib/api/api/tasks.js +94 -0
- package/lib/api/api/tasks.js.map +1 -0
- package/lib/api/api/terms_enum.d.ts +10 -0
- package/lib/api/api/terms_enum.js +53 -0
- package/lib/api/api/terms_enum.js.map +1 -0
- package/lib/api/api/termvectors.d.ts +10 -0
- package/lib/api/api/termvectors.js +61 -0
- package/lib/api/api/termvectors.js.map +1 -0
- package/lib/api/api/text_structure.d.ts +14 -0
- package/lib/api/api/text_structure.js +57 -0
- package/lib/api/api/text_structure.js.map +1 -0
- package/lib/api/api/transform.d.ts +41 -0
- package/lib/api/api/transform.js +264 -0
- package/lib/api/api/transform.js.map +1 -0
- package/lib/api/api/update.d.ts +10 -0
- package/lib/api/api/update.js +53 -0
- package/lib/api/api/update.js.map +1 -0
- package/lib/api/api/update_by_query.d.ts +10 -0
- package/lib/api/api/update_by_query.js +53 -0
- package/lib/api/api/update_by_query.js.map +1 -0
- package/lib/api/api/update_by_query_rethrottle.d.ts +10 -0
- package/lib/api/api/update_by_query_rethrottle.js +39 -0
- package/lib/api/api/update_by_query_rethrottle.js.map +1 -0
- package/lib/api/api/watcher.d.ts +44 -0
- package/lib/api/api/watcher.js +291 -0
- package/lib/api/api/watcher.js.map +1 -0
- package/lib/api/api/xpack.d.ts +17 -0
- package/lib/api/api/xpack.js +69 -0
- package/lib/api/api/xpack.js.map +1 -0
- package/lib/api/index.d.ts +225 -0
- package/lib/api/index.js +520 -0
- package/lib/api/index.js.map +1 -0
- package/lib/api/types.d.ts +15306 -0
- package/lib/api/types.js +21 -0
- package/lib/api/types.js.map +1 -0
- package/lib/api/typesWithBodyKey.d.ts +15718 -0
- package/lib/api/typesWithBodyKey.js +21 -0
- package/lib/api/typesWithBodyKey.js.map +1 -0
- package/lib/client.d.ts +70 -0
- package/lib/client.js +287 -0
- package/lib/client.js.map +1 -0
- package/lib/helpers.d.ts +149 -0
- package/lib/helpers.js +776 -0
- package/lib/helpers.js.map +1 -0
- package/lib/sniffingTransport.d.ts +4 -0
- package/lib/sniffingTransport.js +56 -0
- package/lib/sniffingTransport.js.map +1 -0
- package/package.json +93 -0
- package/tsconfig.json +37 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*
|
3
|
+
* Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
* license agreements. See the NOTICE file distributed with
|
5
|
+
* this work for additional information regarding copyright
|
6
|
+
* ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
* the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
* not use this file except in compliance with the License.
|
9
|
+
* You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
*
|
13
|
+
* Unless required by applicable law or agreed to in writing,
|
14
|
+
* software distributed under the License is distributed on an
|
15
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
* KIND, either express or implied. See the License for the
|
17
|
+
* specific language governing permissions and limitations
|
18
|
+
* under the License.
|
19
|
+
*/
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
21
|
+
//# sourceMappingURL=typesWithBodyKey.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"typesWithBodyKey.js","sourceRoot":"","sources":["../../src/api/typesWithBodyKey.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
package/lib/client.d.ts
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
/// <reference types="node" />
|
3
|
+
import { ConnectionOptions as TlsConnectionOptions } from 'tls';
|
4
|
+
import { URL } from 'url';
|
5
|
+
import { Transport, Serializer, Diagnostic, BaseConnectionPool } from '@elastic/transport';
|
6
|
+
import { HttpAgentOptions, UndiciAgentOptions, agentFn, nodeFilterFn, nodeSelectorFn, generateRequestIdFn, BasicAuth, ApiKeyAuth, BearerAuth, Context } from '@elastic/transport/lib/types';
|
7
|
+
import BaseConnection from '@elastic/transport/lib/connection/BaseConnection';
|
8
|
+
import SniffingTransport from './sniffingTransport';
|
9
|
+
import Helpers from './helpers';
|
10
|
+
import API from './api';
|
11
|
+
export interface NodeOptions {
|
12
|
+
url: URL;
|
13
|
+
id?: string;
|
14
|
+
agent?: HttpAgentOptions | UndiciAgentOptions;
|
15
|
+
ssl?: TlsConnectionOptions;
|
16
|
+
headers?: Record<string, any>;
|
17
|
+
roles?: {
|
18
|
+
master: boolean;
|
19
|
+
data: boolean;
|
20
|
+
ingest: boolean;
|
21
|
+
ml: boolean;
|
22
|
+
};
|
23
|
+
}
|
24
|
+
export interface ClientOptions {
|
25
|
+
node?: string | string[] | NodeOptions | NodeOptions[];
|
26
|
+
nodes?: string | string[] | NodeOptions | NodeOptions[];
|
27
|
+
Connection?: typeof BaseConnection;
|
28
|
+
ConnectionPool?: typeof BaseConnectionPool;
|
29
|
+
Transport?: typeof Transport;
|
30
|
+
Serializer?: typeof Serializer;
|
31
|
+
maxRetries?: number;
|
32
|
+
requestTimeout?: number;
|
33
|
+
pingTimeout?: number;
|
34
|
+
sniffInterval?: number | boolean;
|
35
|
+
sniffOnStart?: boolean;
|
36
|
+
sniffEndpoint?: string;
|
37
|
+
sniffOnConnectionFault?: boolean;
|
38
|
+
resurrectStrategy?: 'ping' | 'optimistic' | 'none';
|
39
|
+
compression?: boolean;
|
40
|
+
tls?: TlsConnectionOptions;
|
41
|
+
agent?: HttpAgentOptions | UndiciAgentOptions | agentFn | false;
|
42
|
+
nodeFilter?: nodeFilterFn;
|
43
|
+
nodeSelector?: nodeSelectorFn;
|
44
|
+
headers?: Record<string, any>;
|
45
|
+
opaqueIdPrefix?: string;
|
46
|
+
generateRequestId?: generateRequestIdFn;
|
47
|
+
name?: string | symbol;
|
48
|
+
auth?: BasicAuth | ApiKeyAuth | BearerAuth;
|
49
|
+
context?: Context;
|
50
|
+
proxy?: string | URL;
|
51
|
+
enableMetaHeader?: boolean;
|
52
|
+
cloud?: {
|
53
|
+
id: string;
|
54
|
+
};
|
55
|
+
disablePrototypePoisoningProtection?: boolean | 'proto' | 'constructor';
|
56
|
+
caFingerprint?: string;
|
57
|
+
maxResponseSize?: number;
|
58
|
+
maxCompressedResponseSize?: number;
|
59
|
+
}
|
60
|
+
export default class Client extends API {
|
61
|
+
diagnostic: Diagnostic;
|
62
|
+
name: string | symbol;
|
63
|
+
connectionPool: BaseConnectionPool;
|
64
|
+
transport: SniffingTransport;
|
65
|
+
serializer: Serializer;
|
66
|
+
helpers: Helpers;
|
67
|
+
constructor(opts: ClientOptions);
|
68
|
+
child(opts: ClientOptions): Client;
|
69
|
+
close(): Promise<void>;
|
70
|
+
}
|
package/lib/client.js
ADDED
@@ -0,0 +1,287 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*
|
3
|
+
* Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
* license agreements. See the NOTICE file distributed with
|
5
|
+
* this work for additional information regarding copyright
|
6
|
+
* ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
* the Apache License, Version 2.0 (the "License") you may
|
8
|
+
* not use this file except in compliance with the License.
|
9
|
+
* You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
*
|
13
|
+
* Unless required by applicable law or agreed to in writing,
|
14
|
+
* software distributed under the License is distributed on an
|
15
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
* KIND, either express or implied. See the License for the
|
17
|
+
* specific language governing permissions and limitations
|
18
|
+
* under the License.
|
19
|
+
*/
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
21
|
+
const tslib_1 = require("tslib");
|
22
|
+
const url_1 = require("url");
|
23
|
+
const buffer_1 = tslib_1.__importDefault(require("buffer"));
|
24
|
+
const transport_1 = require("@elastic/transport");
|
25
|
+
const BaseConnection_1 = require("@elastic/transport/lib/connection/BaseConnection");
|
26
|
+
const sniffingTransport_1 = tslib_1.__importDefault(require("./sniffingTransport"));
|
27
|
+
const helpers_1 = tslib_1.__importDefault(require("./helpers"));
|
28
|
+
const api_1 = tslib_1.__importDefault(require("./api"));
|
29
|
+
const kChild = Symbol('elasticsearchjs-child');
|
30
|
+
const kInitialOptions = Symbol('elasticsearchjs-initial-options');
|
31
|
+
let clientVersion = require('../package.json').version; // eslint-disable-line
|
32
|
+
/* istanbul ignore next */
|
33
|
+
if (clientVersion.includes('-')) {
|
34
|
+
// clean prerelease
|
35
|
+
clientVersion = clientVersion.slice(0, clientVersion.indexOf('-')) + 'p';
|
36
|
+
}
|
37
|
+
let transportVersion = require('@elastic/transport/package.json').version; // eslint-disable-line
|
38
|
+
/* istanbul ignore next */
|
39
|
+
if (transportVersion.includes('-')) {
|
40
|
+
// clean prerelease
|
41
|
+
transportVersion = transportVersion.slice(0, transportVersion.indexOf('-')) + 'p';
|
42
|
+
}
|
43
|
+
const nodeVersion = process.versions.node;
|
44
|
+
class Client extends api_1.default {
|
45
|
+
constructor(opts) {
|
46
|
+
var _a, _b, _c, _d;
|
47
|
+
super();
|
48
|
+
Object.defineProperty(this, "diagnostic", {
|
49
|
+
enumerable: true,
|
50
|
+
configurable: true,
|
51
|
+
writable: true,
|
52
|
+
value: void 0
|
53
|
+
});
|
54
|
+
Object.defineProperty(this, "name", {
|
55
|
+
enumerable: true,
|
56
|
+
configurable: true,
|
57
|
+
writable: true,
|
58
|
+
value: void 0
|
59
|
+
});
|
60
|
+
Object.defineProperty(this, "connectionPool", {
|
61
|
+
enumerable: true,
|
62
|
+
configurable: true,
|
63
|
+
writable: true,
|
64
|
+
value: void 0
|
65
|
+
});
|
66
|
+
Object.defineProperty(this, "transport", {
|
67
|
+
enumerable: true,
|
68
|
+
configurable: true,
|
69
|
+
writable: true,
|
70
|
+
value: void 0
|
71
|
+
});
|
72
|
+
Object.defineProperty(this, "serializer", {
|
73
|
+
enumerable: true,
|
74
|
+
configurable: true,
|
75
|
+
writable: true,
|
76
|
+
value: void 0
|
77
|
+
});
|
78
|
+
Object.defineProperty(this, "helpers", {
|
79
|
+
enumerable: true,
|
80
|
+
configurable: true,
|
81
|
+
writable: true,
|
82
|
+
value: void 0
|
83
|
+
});
|
84
|
+
// @ts-expect-error kChild symbol is for internal use only
|
85
|
+
if ((opts.cloud != null) && opts[kChild] === undefined) {
|
86
|
+
const { id } = opts.cloud;
|
87
|
+
// the cloud id is `cluster-name:base64encodedurl`
|
88
|
+
// the url is a string divided by two '$', the first is the cloud url
|
89
|
+
// the second the elasticsearch instance, the third the kibana instance
|
90
|
+
const cloudUrls = Buffer.from(id.split(':')[1], 'base64').toString().split('$');
|
91
|
+
opts.node = `https://${cloudUrls[1]}.${cloudUrls[0]}`;
|
92
|
+
// Cloud has better performances with compression enabled
|
93
|
+
// see https://github.com/elastic/elasticsearch-py/pull/704.
|
94
|
+
// So unless the user specifies otherwise, we enable compression.
|
95
|
+
if (opts.compression == null)
|
96
|
+
opts.compression = true;
|
97
|
+
if (opts.tls == null ||
|
98
|
+
(opts.tls != null && opts.tls.secureProtocol == null)) {
|
99
|
+
opts.tls = (_a = opts.tls) !== null && _a !== void 0 ? _a : {};
|
100
|
+
opts.tls.secureProtocol = 'TLSv1_2_method';
|
101
|
+
}
|
102
|
+
}
|
103
|
+
if (opts.node == null && opts.nodes == null) {
|
104
|
+
throw new transport_1.errors.ConfigurationError('Missing node(s) option');
|
105
|
+
}
|
106
|
+
// @ts-expect-error kChild symbol is for internal use only
|
107
|
+
if (opts[kChild] === undefined) {
|
108
|
+
const checkAuth = getAuth((_b = opts.node) !== null && _b !== void 0 ? _b : opts.nodes);
|
109
|
+
if ((checkAuth != null) && checkAuth.username !== '' && checkAuth.password !== '') {
|
110
|
+
opts.auth = Object.assign({}, opts.auth, { username: checkAuth.username, password: checkAuth.password });
|
111
|
+
}
|
112
|
+
}
|
113
|
+
const options = Object.assign({}, {
|
114
|
+
Connection: transport_1.UndiciConnection,
|
115
|
+
Transport: sniffingTransport_1.default,
|
116
|
+
Serializer: transport_1.Serializer,
|
117
|
+
ConnectionPool: (opts.cloud != null) ? transport_1.CloudConnectionPool : transport_1.WeightedConnectionPool,
|
118
|
+
maxRetries: 3,
|
119
|
+
requestTimeout: 30000,
|
120
|
+
pingTimeout: 3000,
|
121
|
+
sniffInterval: false,
|
122
|
+
sniffOnStart: false,
|
123
|
+
sniffEndpoint: '_nodes/_all/http',
|
124
|
+
sniffOnConnectionFault: false,
|
125
|
+
resurrectStrategy: 'ping',
|
126
|
+
compression: false,
|
127
|
+
tls: null,
|
128
|
+
caFingerprint: null,
|
129
|
+
agent: null,
|
130
|
+
headers: {},
|
131
|
+
nodeFilter: null,
|
132
|
+
generateRequestId: null,
|
133
|
+
name: 'elasticsearch-js',
|
134
|
+
auth: null,
|
135
|
+
opaqueIdPrefix: null,
|
136
|
+
context: null,
|
137
|
+
proxy: null,
|
138
|
+
enableMetaHeader: true,
|
139
|
+
maxResponseSize: null,
|
140
|
+
maxCompressedResponseSize: null
|
141
|
+
}, opts);
|
142
|
+
if (options.caFingerprint != null && isHttpConnection((_c = opts.node) !== null && _c !== void 0 ? _c : opts.nodes)) {
|
143
|
+
throw new transport_1.errors.ConfigurationError('You can\'t configure the caFingerprint with a http connection');
|
144
|
+
}
|
145
|
+
if (options.maxResponseSize != null && options.maxResponseSize > buffer_1.default.constants.MAX_STRING_LENGTH) {
|
146
|
+
throw new transport_1.errors.ConfigurationError(`The maxResponseSize cannot be bigger than ${buffer_1.default.constants.MAX_STRING_LENGTH}`);
|
147
|
+
}
|
148
|
+
if (options.maxCompressedResponseSize != null && options.maxCompressedResponseSize > buffer_1.default.constants.MAX_LENGTH) {
|
149
|
+
throw new transport_1.errors.ConfigurationError(`The maxCompressedResponseSize cannot be bigger than ${buffer_1.default.constants.MAX_LENGTH}`);
|
150
|
+
}
|
151
|
+
if (options.enableMetaHeader) {
|
152
|
+
options.headers['x-elastic-client-meta'] = `es=${clientVersion},js=${nodeVersion},t=${transportVersion},hc=${nodeVersion}`;
|
153
|
+
}
|
154
|
+
this.name = options.name;
|
155
|
+
// @ts-expect-error kInitialOptions symbol is for internal use only
|
156
|
+
this[kInitialOptions] = options;
|
157
|
+
// @ts-expect-error kChild symbol is for internal use only
|
158
|
+
if (opts[kChild] !== undefined) {
|
159
|
+
// @ts-expect-error kChild symbol is for internal use only
|
160
|
+
this.serializer = opts[kChild].serializer;
|
161
|
+
// @ts-expect-error kChild symbol is for internal use only
|
162
|
+
this.connectionPool = opts[kChild].connectionPool;
|
163
|
+
// @ts-expect-error kChild symbol is for internal use only
|
164
|
+
this.diagnostic = opts[kChild].diagnostic;
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
this.diagnostic = new transport_1.Diagnostic();
|
168
|
+
this.serializer = new options.Serializer();
|
169
|
+
this.connectionPool = new options.ConnectionPool({
|
170
|
+
pingTimeout: options.pingTimeout,
|
171
|
+
resurrectStrategy: options.resurrectStrategy,
|
172
|
+
tls: options.tls,
|
173
|
+
agent: options.agent,
|
174
|
+
proxy: options.proxy,
|
175
|
+
Connection: options.Connection,
|
176
|
+
auth: options.auth,
|
177
|
+
diagnostic: this.diagnostic,
|
178
|
+
caFingerprint: options.caFingerprint
|
179
|
+
});
|
180
|
+
this.connectionPool.addConnection((_d = options.node) !== null && _d !== void 0 ? _d : options.nodes);
|
181
|
+
}
|
182
|
+
this.transport = new options.Transport({
|
183
|
+
diagnostic: this.diagnostic,
|
184
|
+
connectionPool: this.connectionPool,
|
185
|
+
serializer: this.serializer,
|
186
|
+
maxRetries: options.maxRetries,
|
187
|
+
requestTimeout: options.requestTimeout,
|
188
|
+
sniffInterval: options.sniffInterval,
|
189
|
+
sniffOnStart: options.sniffOnStart,
|
190
|
+
sniffOnConnectionFault: options.sniffOnConnectionFault,
|
191
|
+
sniffEndpoint: options.sniffEndpoint,
|
192
|
+
compression: options.compression,
|
193
|
+
headers: options.headers,
|
194
|
+
nodeFilter: options.nodeFilter,
|
195
|
+
nodeSelector: options.nodeSelector,
|
196
|
+
generateRequestId: options.generateRequestId,
|
197
|
+
name: options.name,
|
198
|
+
opaqueIdPrefix: options.opaqueIdPrefix,
|
199
|
+
context: options.context,
|
200
|
+
productCheck: 'Elasticsearch',
|
201
|
+
maxResponseSize: options.maxResponseSize,
|
202
|
+
maxCompressedResponseSize: options.maxCompressedResponseSize,
|
203
|
+
vendoredHeaders: {
|
204
|
+
jsonContentType: 'application/vnd.elasticsearch+json; compatible-with=8',
|
205
|
+
ndjsonContentType: 'application/vnd.elasticsearch+x-ndjson; compatible-with=8',
|
206
|
+
accept: 'application/vnd.elasticsearch+json; compatible-with=8,text/plain'
|
207
|
+
}
|
208
|
+
});
|
209
|
+
this.helpers = new helpers_1.default({
|
210
|
+
client: this,
|
211
|
+
metaHeader: options.enableMetaHeader
|
212
|
+
? `es=${clientVersion},js=${nodeVersion},t=${transportVersion},hc=${nodeVersion}`
|
213
|
+
: null,
|
214
|
+
maxRetries: options.maxRetries
|
215
|
+
});
|
216
|
+
}
|
217
|
+
child(opts) {
|
218
|
+
// Merge the new options with the initial ones
|
219
|
+
// @ts-expect-error kChild symbol is for internal use only
|
220
|
+
const options = Object.assign({}, this[kInitialOptions], opts);
|
221
|
+
// Pass to the child client the parent instances that cannot be overriden
|
222
|
+
// @ts-expect-error kInitialOptions symbol is for internal use only
|
223
|
+
options[kChild] = {
|
224
|
+
connectionPool: this.connectionPool,
|
225
|
+
serializer: this.serializer,
|
226
|
+
diagnostic: this.diagnostic,
|
227
|
+
initialOptions: options
|
228
|
+
};
|
229
|
+
/* istanbul ignore else */
|
230
|
+
if (options.auth !== undefined) {
|
231
|
+
options.headers = (0, BaseConnection_1.prepareHeaders)(options.headers, options.auth);
|
232
|
+
}
|
233
|
+
return new Client(options);
|
234
|
+
}
|
235
|
+
async close() {
|
236
|
+
return await this.connectionPool.empty();
|
237
|
+
}
|
238
|
+
}
|
239
|
+
exports.default = Client;
|
240
|
+
function isHttpConnection(node) {
|
241
|
+
if (Array.isArray(node)) {
|
242
|
+
return node.some((n) => (typeof n === 'string' ? new url_1.URL(n).protocol : n.url.protocol) === 'http:');
|
243
|
+
}
|
244
|
+
else {
|
245
|
+
if (node == null)
|
246
|
+
return false;
|
247
|
+
return (typeof node === 'string' ? new url_1.URL(node).protocol : node.url.protocol) === 'http:';
|
248
|
+
}
|
249
|
+
}
|
250
|
+
function getAuth(node) {
|
251
|
+
if (Array.isArray(node)) {
|
252
|
+
for (const url of node) {
|
253
|
+
const auth = getUsernameAndPassword(url);
|
254
|
+
if (auth != null && auth.username !== '' && auth.password !== '') {
|
255
|
+
return auth;
|
256
|
+
}
|
257
|
+
}
|
258
|
+
return null;
|
259
|
+
}
|
260
|
+
else {
|
261
|
+
const auth = getUsernameAndPassword(node);
|
262
|
+
if (auth != null && auth.username !== '' && auth.password !== '') {
|
263
|
+
return auth;
|
264
|
+
}
|
265
|
+
return null;
|
266
|
+
}
|
267
|
+
function getUsernameAndPassword(node) {
|
268
|
+
/* istanbul ignore else */
|
269
|
+
if (typeof node === 'string') {
|
270
|
+
const { username, password } = new url_1.URL(node);
|
271
|
+
return {
|
272
|
+
username: decodeURIComponent(username),
|
273
|
+
password: decodeURIComponent(password)
|
274
|
+
};
|
275
|
+
}
|
276
|
+
else if (node != null && node.url instanceof url_1.URL) {
|
277
|
+
return {
|
278
|
+
username: decodeURIComponent(node.url.username),
|
279
|
+
password: decodeURIComponent(node.url.password)
|
280
|
+
};
|
281
|
+
}
|
282
|
+
else {
|
283
|
+
return null;
|
284
|
+
}
|
285
|
+
}
|
286
|
+
}
|
287
|
+
//# sourceMappingURL=client.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/helpers.d.ts
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
/// <reference types="node" />
|
3
|
+
import { Readable } from 'stream';
|
4
|
+
import { TransportResult, TransportRequestOptions } from '@elastic/transport';
|
5
|
+
import Client from './client';
|
6
|
+
import * as T from './api/types';
|
7
|
+
export interface HelpersOptions {
|
8
|
+
client: Client;
|
9
|
+
metaHeader: string | null;
|
10
|
+
maxRetries: number;
|
11
|
+
}
|
12
|
+
export interface ScrollSearchOptions extends TransportRequestOptions {
|
13
|
+
wait?: number;
|
14
|
+
}
|
15
|
+
export interface ScrollSearchResponse<TDocument, TAggregations> extends TransportResult<T.SearchResponse<TDocument, TAggregations>, unknown> {
|
16
|
+
clear: () => Promise<void>;
|
17
|
+
documents: TDocument[];
|
18
|
+
}
|
19
|
+
export interface MsearchHelperOptions extends T.MsearchRequest {
|
20
|
+
operations?: number;
|
21
|
+
flushInterval?: number;
|
22
|
+
concurrency?: number;
|
23
|
+
retries?: number;
|
24
|
+
wait?: number;
|
25
|
+
}
|
26
|
+
export interface MsearchHelper extends Promise<void> {
|
27
|
+
stop: (error?: Error | null) => void;
|
28
|
+
search: <TDocument = unknown>(header: T.MsearchMultisearchHeader, body: T.MsearchMultisearchBody) => Promise<MsearchHelperResponse<TDocument>>;
|
29
|
+
}
|
30
|
+
export interface MsearchHelperResponse<TDocument> {
|
31
|
+
body: T.SearchResponse<TDocument>;
|
32
|
+
documents: TDocument[];
|
33
|
+
status: number;
|
34
|
+
responses: T.MsearchResponse;
|
35
|
+
}
|
36
|
+
export interface BulkStats {
|
37
|
+
total: number;
|
38
|
+
failed: number;
|
39
|
+
retry: number;
|
40
|
+
successful: number;
|
41
|
+
noop: number;
|
42
|
+
time: number;
|
43
|
+
bytes: number;
|
44
|
+
aborted: boolean;
|
45
|
+
}
|
46
|
+
interface IndexAction {
|
47
|
+
index: T.BulkIndexOperation;
|
48
|
+
}
|
49
|
+
interface CreateAction {
|
50
|
+
create: T.BulkCreateOperation;
|
51
|
+
}
|
52
|
+
interface UpdateActionOperation {
|
53
|
+
update: T.BulkUpdateOperation;
|
54
|
+
}
|
55
|
+
interface DeleteAction {
|
56
|
+
delete: T.BulkDeleteOperation;
|
57
|
+
}
|
58
|
+
type UpdateAction = [UpdateActionOperation, Record<string, any>];
|
59
|
+
type Action = IndexAction | CreateAction | UpdateAction | DeleteAction;
|
60
|
+
export interface OnDropDocument<TDocument = unknown> {
|
61
|
+
status: number;
|
62
|
+
operation: Action;
|
63
|
+
error: T.ErrorCause | null;
|
64
|
+
document: TDocument;
|
65
|
+
retried: boolean;
|
66
|
+
}
|
67
|
+
export interface BulkHelperOptions<TDocument = unknown> extends T.BulkRequest {
|
68
|
+
datasource: TDocument[] | Buffer | Readable | AsyncIterator<TDocument>;
|
69
|
+
onDocument: (doc: TDocument) => Action;
|
70
|
+
flushBytes?: number;
|
71
|
+
flushInterval?: number;
|
72
|
+
concurrency?: number;
|
73
|
+
retries?: number;
|
74
|
+
wait?: number;
|
75
|
+
onDrop?: (doc: OnDropDocument<TDocument>) => void;
|
76
|
+
refreshOnCompletion?: boolean | string;
|
77
|
+
}
|
78
|
+
export interface BulkHelper<T> extends Promise<BulkStats> {
|
79
|
+
abort: () => BulkHelper<T>;
|
80
|
+
readonly stats: BulkStats;
|
81
|
+
}
|
82
|
+
declare const kClient: unique symbol;
|
83
|
+
declare const kMetaHeader: unique symbol;
|
84
|
+
declare const kMaxRetries: unique symbol;
|
85
|
+
export default class Helpers {
|
86
|
+
[kClient]: Client;
|
87
|
+
[kMetaHeader]: string | null;
|
88
|
+
[kMaxRetries]: number;
|
89
|
+
constructor(opts: HelpersOptions);
|
90
|
+
/**
|
91
|
+
* Runs a search operation. The only difference between client.search and this utility,
|
92
|
+
* is that we are only returning the hits to the user and not the full ES response.
|
93
|
+
* This helper automatically adds `filter_path=hits.hits._source` to the querystring,
|
94
|
+
* as it will only need the documents source.
|
95
|
+
* @param {object} params - The Elasticsearch's search parameters.
|
96
|
+
* @param {object} options - The client optional configuration for this request.
|
97
|
+
* @return {array} The documents that matched the request.
|
98
|
+
*/
|
99
|
+
search<TDocument = unknown>(params: T.SearchRequest, options?: TransportRequestOptions): Promise<TDocument[]>;
|
100
|
+
/**
|
101
|
+
* Runs a scroll search operation. This function returns an async iterator, allowing
|
102
|
+
* the user to use a for await loop to get all the results of a given search.
|
103
|
+
* ```js
|
104
|
+
* for await (const result of client.helpers.scrollSearch({ params })) {
|
105
|
+
* console.log(result)
|
106
|
+
* }
|
107
|
+
* ```
|
108
|
+
* Each result represents the entire body of a single scroll search request,
|
109
|
+
* if you just need to scroll the results, use scrollDocuments.
|
110
|
+
* This function handles automatically retries on 429 status code.
|
111
|
+
* @param {object} params - The Elasticsearch's search parameters.
|
112
|
+
* @param {object} options - The client optional configuration for this request.
|
113
|
+
* @return {iterator} the async iterator
|
114
|
+
*/
|
115
|
+
scrollSearch<TDocument = unknown, TAggregations = unknown>(params: T.SearchRequest, options?: ScrollSearchOptions): AsyncIterable<ScrollSearchResponse<TDocument, TAggregations>>;
|
116
|
+
/**
|
117
|
+
* Runs a scroll search operation. This function returns an async iterator, allowing
|
118
|
+
* the user to use a for await loop to get all the documents of a given search.
|
119
|
+
* ```js
|
120
|
+
* for await (const document of client.helpers.scrollSearch({ params })) {
|
121
|
+
* console.log(document)
|
122
|
+
* }
|
123
|
+
* ```
|
124
|
+
* Each document is what you will find by running a scrollSearch and iterating on the hits array.
|
125
|
+
* This helper automatically adds `filter_path=hits.hits._source` to the querystring,
|
126
|
+
* as it will only need the documents source.
|
127
|
+
* @param {object} params - The Elasticsearch's search parameters.
|
128
|
+
* @param {object} options - The client optional configuration for this request.
|
129
|
+
* @return {iterator} the async iterator
|
130
|
+
*/
|
131
|
+
scrollDocuments<TDocument = unknown>(params: T.SearchRequest, options?: ScrollSearchOptions): AsyncIterable<TDocument>;
|
132
|
+
/**
|
133
|
+
* Creates a msearch helper instance. Once you configure it, you can use the provided
|
134
|
+
* `search` method to add new searches in the queue.
|
135
|
+
* @param {object} options - The configuration of the msearch operations.
|
136
|
+
* @param {object} reqOptions - The client optional configuration for this request.
|
137
|
+
* @return {object} The possible operations to run.
|
138
|
+
*/
|
139
|
+
msearch(options?: MsearchHelperOptions, reqOptions?: TransportRequestOptions): MsearchHelper;
|
140
|
+
/**
|
141
|
+
* Creates a bulk helper instance. Once you configure it, you can pick which operation
|
142
|
+
* to execute with the given dataset, index, create, update, and delete.
|
143
|
+
* @param {object} options - The configuration of the bulk operation.
|
144
|
+
* @param {object} reqOptions - The client optional configuration for this request.
|
145
|
+
* @return {object} The possible operations to run with the datasource.
|
146
|
+
*/
|
147
|
+
bulk<TDocument = unknown>(options: BulkHelperOptions<TDocument>, reqOptions?: TransportRequestOptions): BulkHelper<TDocument>;
|
148
|
+
}
|
149
|
+
export {};
|