@retter/elasticsearch 8.4.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.
- 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 {};
|