@elastic/elasticsearch 7.15.0 → 8.0.0-beta.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.
Files changed (344) hide show
  1. package/README.md +10 -11
  2. package/index.d.ts +4 -2971
  3. package/index.js +25 -321
  4. package/lib/api/api/async_search.d.ts +23 -0
  5. package/lib/api/api/async_search.js +130 -0
  6. package/lib/api/api/async_search.js.map +1 -0
  7. package/lib/api/api/autoscaling.d.ts +23 -0
  8. package/lib/api/api/autoscaling.js +109 -0
  9. package/lib/api/api/autoscaling.js.map +1 -0
  10. package/lib/api/api/bulk.d.ts +10 -0
  11. package/lib/api/api/bulk.js +58 -0
  12. package/lib/api/api/bulk.js.map +1 -0
  13. package/lib/api/api/cat.d.ts +86 -0
  14. package/lib/api/api/cat.js +611 -0
  15. package/lib/api/api/cat.js.map +1 -0
  16. package/lib/api/api/ccr.d.ts +50 -0
  17. package/lib/api/api/ccr.js +320 -0
  18. package/lib/api/api/ccr.js.map +1 -0
  19. package/lib/api/api/clear_scroll.d.ts +10 -0
  20. package/lib/api/api/clear_scroll.js +54 -0
  21. package/lib/api/api/clear_scroll.js.map +1 -0
  22. package/lib/api/api/close_point_in_time.d.ts +10 -0
  23. package/lib/api/api/close_point_in_time.js +53 -0
  24. package/lib/api/api/close_point_in_time.js.map +1 -0
  25. package/lib/api/api/cluster.d.ts +56 -0
  26. package/lib/api/api/cluster.js +392 -0
  27. package/lib/api/api/cluster.js.map +1 -0
  28. package/lib/api/api/count.d.ts +10 -0
  29. package/lib/api/api/count.js +62 -0
  30. package/lib/api/api/count.js.map +1 -0
  31. package/lib/api/api/create.d.ts +10 -0
  32. package/lib/api/api/create.js +46 -0
  33. package/lib/api/api/create.js.map +1 -0
  34. package/lib/api/api/dangling_indices.d.ts +20 -0
  35. package/lib/api/api/dangling_indices.js +85 -0
  36. package/lib/api/api/dangling_indices.js.map +1 -0
  37. package/lib/api/api/delete.d.ts +10 -0
  38. package/lib/api/api/delete.js +39 -0
  39. package/lib/api/api/delete.js.map +1 -0
  40. package/lib/api/api/delete_by_query.d.ts +10 -0
  41. package/lib/api/api/delete_by_query.js +53 -0
  42. package/lib/api/api/delete_by_query.js.map +1 -0
  43. package/lib/api/api/delete_by_query_rethrottle.d.ts +10 -0
  44. package/lib/api/api/delete_by_query_rethrottle.js +39 -0
  45. package/lib/api/api/delete_by_query_rethrottle.js.map +1 -0
  46. package/lib/api/api/delete_script.d.ts +10 -0
  47. package/lib/api/api/delete_script.js +39 -0
  48. package/lib/api/api/delete_script.js.map +1 -0
  49. package/lib/api/api/enrich.d.ts +26 -0
  50. package/lib/api/api/enrich.js +142 -0
  51. package/lib/api/api/enrich.js.map +1 -0
  52. package/lib/api/api/eql.d.ts +23 -0
  53. package/lib/api/api/eql.js +115 -0
  54. package/lib/api/api/eql.js.map +1 -0
  55. package/lib/api/api/exists.d.ts +10 -0
  56. package/lib/api/api/exists.js +39 -0
  57. package/lib/api/api/exists.js.map +1 -0
  58. package/lib/api/api/exists_source.d.ts +10 -0
  59. package/lib/api/api/exists_source.js +39 -0
  60. package/lib/api/api/exists_source.js.map +1 -0
  61. package/lib/api/api/explain.d.ts +10 -0
  62. package/lib/api/api/explain.js +53 -0
  63. package/lib/api/api/explain.js.map +1 -0
  64. package/lib/api/api/features.d.ts +17 -0
  65. package/lib/api/api/features.js +69 -0
  66. package/lib/api/api/features.js.map +1 -0
  67. package/lib/api/api/field_caps.d.ts +10 -0
  68. package/lib/api/api/field_caps.js +62 -0
  69. package/lib/api/api/field_caps.js.map +1 -0
  70. package/lib/api/api/fleet.d.ts +20 -0
  71. package/lib/api/api/fleet.js +92 -0
  72. package/lib/api/api/fleet.js.map +1 -0
  73. package/lib/api/api/get.d.ts +10 -0
  74. package/lib/api/api/get.js +39 -0
  75. package/lib/api/api/get.js.map +1 -0
  76. package/lib/api/api/get_script.d.ts +10 -0
  77. package/lib/api/api/get_script.js +39 -0
  78. package/lib/api/api/get_script.js.map +1 -0
  79. package/lib/api/api/get_script_context.d.ts +10 -0
  80. package/lib/api/api/get_script_context.js +40 -0
  81. package/lib/api/api/get_script_context.js.map +1 -0
  82. package/lib/api/api/get_script_languages.d.ts +10 -0
  83. package/lib/api/api/get_script_languages.js +40 -0
  84. package/lib/api/api/get_script_languages.js.map +1 -0
  85. package/lib/api/api/get_source.d.ts +10 -0
  86. package/lib/api/api/get_source.js +39 -0
  87. package/lib/api/api/get_source.js.map +1 -0
  88. package/lib/api/api/graph.d.ts +14 -0
  89. package/lib/api/api/graph.js +64 -0
  90. package/lib/api/api/graph.js.map +1 -0
  91. package/lib/api/api/ilm.d.ts +44 -0
  92. package/lib/api/api/ilm.js +260 -0
  93. package/lib/api/api/ilm.js.map +1 -0
  94. package/lib/api/api/index.d.ts +10 -0
  95. package/lib/api/api/index.js +54 -0
  96. package/lib/api/api/index.js.map +1 -0
  97. package/lib/api/api/indices.d.ts +173 -0
  98. package/lib/api/api/indices.js +1381 -0
  99. package/lib/api/api/indices.js.map +1 -0
  100. package/lib/api/api/info.d.ts +10 -0
  101. package/lib/{Serializer.d.ts → api/api/info.js} +21 -11
  102. package/lib/api/api/info.js.map +1 -0
  103. package/lib/api/api/ingest.d.ts +29 -0
  104. package/lib/api/api/ingest.js +183 -0
  105. package/lib/api/api/ingest.js.map +1 -0
  106. package/lib/api/api/knn_search.d.ts +10 -0
  107. package/lib/api/api/knn_search.js +53 -0
  108. package/lib/api/api/knn_search.js.map +1 -0
  109. package/lib/api/api/license.d.ts +32 -0
  110. package/lib/api/api/license.js +173 -0
  111. package/lib/api/api/license.js.map +1 -0
  112. package/lib/api/api/logstash.d.ts +20 -0
  113. package/lib/api/api/logstash.js +91 -0
  114. package/lib/api/api/logstash.js.map +1 -0
  115. package/lib/api/api/mget.d.ts +10 -0
  116. package/lib/api/api/mget.js +62 -0
  117. package/lib/api/api/mget.js.map +1 -0
  118. package/lib/api/api/migration.d.ts +20 -0
  119. package/lib/api/api/migration.js +93 -0
  120. package/lib/api/api/migration.js.map +1 -0
  121. package/lib/api/api/ml.d.ts +221 -0
  122. package/lib/api/api/ml.js +1818 -0
  123. package/lib/api/api/ml.js.map +1 -0
  124. package/lib/api/api/monitoring.d.ts +14 -0
  125. package/lib/api/api/monitoring.js +57 -0
  126. package/lib/api/api/monitoring.js.map +1 -0
  127. package/lib/api/api/msearch.d.ts +10 -0
  128. package/lib/api/api/msearch.js +54 -0
  129. package/lib/api/api/msearch.js.map +1 -0
  130. package/lib/api/api/msearch_template.d.ts +10 -0
  131. package/lib/api/api/msearch_template.js +54 -0
  132. package/lib/api/api/msearch_template.js.map +1 -0
  133. package/lib/api/api/mtermvectors.d.ts +10 -0
  134. package/lib/api/api/mtermvectors.js +62 -0
  135. package/lib/api/api/mtermvectors.js.map +1 -0
  136. package/lib/api/api/nodes.d.ts +32 -0
  137. package/lib/api/api/nodes.js +243 -0
  138. package/lib/api/api/nodes.js.map +1 -0
  139. package/lib/api/api/open_point_in_time.d.ts +10 -0
  140. package/lib/api/api/open_point_in_time.js +39 -0
  141. package/lib/api/api/open_point_in_time.js.map +1 -0
  142. package/lib/api/api/ping.d.ts +10 -0
  143. package/lib/api/api/ping.js +40 -0
  144. package/lib/api/api/ping.js.map +1 -0
  145. package/lib/api/api/put_script.d.ts +10 -0
  146. package/lib/api/api/put_script.js +61 -0
  147. package/lib/api/api/put_script.js.map +1 -0
  148. package/lib/api/api/rank_eval.d.ts +10 -0
  149. package/lib/api/api/rank_eval.js +61 -0
  150. package/lib/api/api/rank_eval.js.map +1 -0
  151. package/lib/api/api/reindex.d.ts +10 -0
  152. package/lib/api/api/reindex.js +54 -0
  153. package/lib/api/api/reindex.js.map +1 -0
  154. package/lib/api/api/reindex_rethrottle.d.ts +10 -0
  155. package/lib/api/api/reindex_rethrottle.js +39 -0
  156. package/lib/api/api/reindex_rethrottle.js.map +1 -0
  157. package/lib/api/api/render_search_template.d.ts +10 -0
  158. package/lib/api/api/render_search_template.js +62 -0
  159. package/lib/api/api/render_search_template.js.map +1 -0
  160. package/lib/api/api/rollup.d.ts +38 -0
  161. package/lib/api/api/rollup.js +239 -0
  162. package/lib/api/api/rollup.js.map +1 -0
  163. package/lib/api/api/scripts_painless_execute.d.ts +10 -0
  164. package/lib/api/api/scripts_painless_execute.js +54 -0
  165. package/lib/api/api/scripts_painless_execute.js.map +1 -0
  166. package/lib/api/api/scroll.d.ts +10 -0
  167. package/lib/api/api/scroll.js +53 -0
  168. package/lib/api/api/scroll.js.map +1 -0
  169. package/lib/api/api/search.d.ts +10 -0
  170. package/lib/api/api/search.js +68 -0
  171. package/lib/api/api/search.js.map +1 -0
  172. package/lib/api/api/search_mvt.d.ts +10 -0
  173. package/lib/api/api/search_mvt.js +53 -0
  174. package/lib/api/api/search_mvt.js.map +1 -0
  175. package/lib/api/api/search_shards.d.ts +10 -0
  176. package/lib/api/api/search_shards.js +48 -0
  177. package/lib/api/api/search_shards.js.map +1 -0
  178. package/lib/api/api/search_template.d.ts +10 -0
  179. package/lib/api/api/search_template.js +62 -0
  180. package/lib/api/api/search_template.js.map +1 -0
  181. package/lib/api/api/searchable_snapshots.d.ts +23 -0
  182. package/lib/api/api/searchable_snapshots.js +141 -0
  183. package/lib/api/api/searchable_snapshots.js.map +1 -0
  184. package/lib/api/api/security.d.ts +140 -0
  185. package/lib/api/api/security.js +998 -0
  186. package/lib/api/api/security.js.map +1 -0
  187. package/lib/api/api/shutdown.d.ts +20 -0
  188. package/lib/api/api/shutdown.js +93 -0
  189. package/lib/api/api/shutdown.js.map +1 -0
  190. package/lib/api/api/slm.d.ts +38 -0
  191. package/lib/api/api/slm.js +214 -0
  192. package/lib/api/api/slm.js.map +1 -0
  193. package/lib/api/api/snapshot.d.ts +47 -0
  194. package/lib/api/api/snapshot.js +315 -0
  195. package/lib/api/api/snapshot.js.map +1 -0
  196. package/lib/api/api/sql.d.ts +29 -0
  197. package/lib/api/api/sql.js +178 -0
  198. package/lib/api/api/sql.js.map +1 -0
  199. package/lib/api/api/ssl.d.ts +14 -0
  200. package/lib/api/api/ssl.js +51 -0
  201. package/lib/api/api/ssl.js.map +1 -0
  202. package/lib/api/api/tasks.d.ts +20 -0
  203. package/lib/api/api/tasks.js +94 -0
  204. package/lib/api/api/tasks.js.map +1 -0
  205. package/lib/api/api/terms_enum.d.ts +10 -0
  206. package/lib/api/api/terms_enum.js +53 -0
  207. package/lib/api/api/terms_enum.js.map +1 -0
  208. package/lib/api/api/termvectors.d.ts +10 -0
  209. package/lib/api/api/termvectors.js +61 -0
  210. package/lib/api/api/termvectors.js.map +1 -0
  211. package/lib/api/api/text_structure.d.ts +14 -0
  212. package/lib/api/api/text_structure.js +57 -0
  213. package/lib/api/api/text_structure.js.map +1 -0
  214. package/lib/api/api/transform.d.ts +38 -0
  215. package/lib/api/api/transform.js +246 -0
  216. package/lib/api/api/transform.js.map +1 -0
  217. package/lib/api/api/update.d.ts +10 -0
  218. package/lib/api/api/update.js +53 -0
  219. package/lib/api/api/update.js.map +1 -0
  220. package/lib/api/api/update_by_query.d.ts +10 -0
  221. package/lib/api/api/update_by_query.js +53 -0
  222. package/lib/api/api/update_by_query.js.map +1 -0
  223. package/lib/api/api/update_by_query_rethrottle.d.ts +10 -0
  224. package/lib/api/api/update_by_query_rethrottle.js +39 -0
  225. package/lib/api/api/update_by_query_rethrottle.js.map +1 -0
  226. package/lib/api/api/watcher.d.ts +44 -0
  227. package/lib/api/api/watcher.js +291 -0
  228. package/lib/api/api/watcher.js.map +1 -0
  229. package/lib/api/api/xpack.d.ts +17 -0
  230. package/lib/api/api/xpack.js +69 -0
  231. package/lib/api/api/xpack.js.map +1 -0
  232. package/lib/api/index.d.ts +225 -0
  233. package/lib/api/index.js +520 -0
  234. package/lib/api/index.js.map +1 -0
  235. package/lib/api/types.d.ts +13525 -0
  236. package/lib/{pool/index.js → api/types.js} +3 -12
  237. package/lib/api/types.js.map +1 -0
  238. package/lib/api/typesWithBodyKey.d.ts +13931 -0
  239. package/{index.mjs → lib/api/typesWithBodyKey.js} +3 -11
  240. package/lib/api/typesWithBodyKey.js.map +1 -0
  241. package/lib/client.d.ts +69 -0
  242. package/lib/client.js +282 -0
  243. package/lib/client.js.map +1 -0
  244. package/lib/helpers.d.ts +148 -0
  245. package/lib/helpers.js +769 -0
  246. package/lib/helpers.js.map +1 -0
  247. package/lib/sniffingTransport.d.ts +4 -0
  248. package/lib/sniffingTransport.js +56 -0
  249. package/lib/sniffingTransport.js.map +1 -0
  250. package/package.json +46 -59
  251. package/tsconfig.json +37 -0
  252. package/api/api/async_search.js +0 -141
  253. package/api/api/autoscaling.js +0 -147
  254. package/api/api/bulk.js +0 -70
  255. package/api/api/cat.js +0 -648
  256. package/api/api/ccr.js +0 -403
  257. package/api/api/clear_scroll.js +0 -55
  258. package/api/api/close_point_in_time.js +0 -50
  259. package/api/api/cluster.js +0 -420
  260. package/api/api/count.js +0 -64
  261. package/api/api/create.js +0 -69
  262. package/api/api/dangling_indices.js +0 -115
  263. package/api/api/delete.js +0 -65
  264. package/api/api/delete_by_query.js +0 -71
  265. package/api/api/delete_by_query_rethrottle.js +0 -60
  266. package/api/api/delete_script.js +0 -56
  267. package/api/api/enrich.js +0 -173
  268. package/api/api/eql.js +0 -150
  269. package/api/api/exists.js +0 -65
  270. package/api/api/exists_source.js +0 -74
  271. package/api/api/explain.js +0 -65
  272. package/api/api/features.js +0 -81
  273. package/api/api/field_caps.js +0 -55
  274. package/api/api/fleet.js +0 -65
  275. package/api/api/get.js +0 -65
  276. package/api/api/get_script.js +0 -56
  277. package/api/api/get_script_context.js +0 -50
  278. package/api/api/get_script_languages.js +0 -50
  279. package/api/api/get_source.js +0 -65
  280. package/api/api/graph.js +0 -72
  281. package/api/api/ilm.js +0 -317
  282. package/api/api/index.js +0 -71
  283. package/api/api/indices.js +0 -1753
  284. package/api/api/info.js +0 -50
  285. package/api/api/ingest.js +0 -200
  286. package/api/api/license.js +0 -188
  287. package/api/api/logstash.js +0 -125
  288. package/api/api/mget.js +0 -70
  289. package/api/api/migration.js +0 -60
  290. package/api/api/ml.js +0 -2010
  291. package/api/api/monitoring.js +0 -66
  292. package/api/api/msearch.js +0 -70
  293. package/api/api/msearch_template.js +0 -70
  294. package/api/api/mtermvectors.js +0 -64
  295. package/api/api/nodes.js +0 -268
  296. package/api/api/open_point_in_time.js +0 -56
  297. package/api/api/ping.js +0 -50
  298. package/api/api/put_script.js +0 -71
  299. package/api/api/rank_eval.js +0 -61
  300. package/api/api/reindex.js +0 -56
  301. package/api/api/reindex_rethrottle.js +0 -60
  302. package/api/api/render_search_template.js +0 -55
  303. package/api/api/rollup.js +0 -319
  304. package/api/api/scripts_painless_execute.js +0 -50
  305. package/api/api/scroll.js +0 -55
  306. package/api/api/search.js +0 -64
  307. package/api/api/search_mvt.js +0 -87
  308. package/api/api/search_shards.js +0 -55
  309. package/api/api/search_template.js +0 -70
  310. package/api/api/searchable_snapshots.js +0 -186
  311. package/api/api/security.js +0 -1261
  312. package/api/api/shutdown.js +0 -124
  313. package/api/api/slm.js +0 -256
  314. package/api/api/snapshot.js +0 -439
  315. package/api/api/sql.js +0 -203
  316. package/api/api/ssl.js +0 -55
  317. package/api/api/tasks.js +0 -108
  318. package/api/api/terms_enum.js +0 -56
  319. package/api/api/termvectors.js +0 -67
  320. package/api/api/text_structure.js +0 -65
  321. package/api/api/transform.js +0 -268
  322. package/api/api/update.js +0 -69
  323. package/api/api/update_by_query.js +0 -67
  324. package/api/api/update_by_query_rethrottle.js +0 -60
  325. package/api/api/watcher.js +0 -333
  326. package/api/api/xpack.js +0 -76
  327. package/api/index.js +0 -508
  328. package/api/new.d.ts +0 -1585
  329. package/api/requestParams.d.ts +0 -2920
  330. package/api/types.d.ts +0 -15420
  331. package/api/utils.js +0 -58
  332. package/lib/Connection.d.ts +0 -99
  333. package/lib/Connection.js +0 -392
  334. package/lib/Helpers.d.ts +0 -124
  335. package/lib/Helpers.js +0 -770
  336. package/lib/Serializer.js +0 -94
  337. package/lib/Transport.d.ts +0 -162
  338. package/lib/Transport.js +0 -689
  339. package/lib/errors.d.ts +0 -90
  340. package/lib/errors.js +0 -159
  341. package/lib/pool/BaseConnectionPool.js +0 -262
  342. package/lib/pool/CloudConnectionPool.js +0 -64
  343. package/lib/pool/ConnectionPool.js +0 -246
  344. package/lib/pool/index.d.ts +0 -220
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Licensed to Elasticsearch B.V. under one or more contributor
3
4
  * license agreements. See the NOTICE file distributed with
@@ -16,14 +17,5 @@
16
17
  * specific language governing permissions and limitations
17
18
  * under the License.
18
19
  */
19
-
20
- import mod from './index.js'
21
-
22
- export default mod
23
- export const Client = mod.Client
24
- export const Transport = mod.Transport
25
- export const ConnectionPool = mod.ConnectionPool
26
- export const Connection = mod.Connection
27
- export const Serializer = mod.Serializer
28
- export const events = mod.events
29
- export const errors = mod.errors
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"}
@@ -0,0 +1,69 @@
1
+ /// <reference types="node" />
2
+ import { ConnectionOptions as TlsConnectionOptions } from 'tls';
3
+ import { URL } from 'url';
4
+ import { Transport, Serializer, Diagnostic, BaseConnectionPool } from '@elastic/transport';
5
+ import { HttpAgentOptions, UndiciAgentOptions, agentFn, nodeFilterFn, nodeSelectorFn, generateRequestIdFn, BasicAuth, ApiKeyAuth, BearerAuth, Context } from '@elastic/transport/lib/types';
6
+ import BaseConnection from '@elastic/transport/lib/connection/BaseConnection';
7
+ import SniffingTransport from './sniffingTransport';
8
+ import Helpers from './helpers';
9
+ import API from './api';
10
+ export interface NodeOptions {
11
+ url: URL;
12
+ id?: string;
13
+ agent?: HttpAgentOptions | UndiciAgentOptions;
14
+ ssl?: TlsConnectionOptions;
15
+ headers?: Record<string, any>;
16
+ roles?: {
17
+ master: boolean;
18
+ data: boolean;
19
+ ingest: boolean;
20
+ ml: boolean;
21
+ };
22
+ }
23
+ export interface ClientOptions {
24
+ node?: string | string[] | NodeOptions | NodeOptions[];
25
+ nodes?: string | string[] | NodeOptions | NodeOptions[];
26
+ Connection?: typeof BaseConnection;
27
+ ConnectionPool?: typeof BaseConnectionPool;
28
+ Transport?: typeof Transport;
29
+ Serializer?: typeof Serializer;
30
+ maxRetries?: number;
31
+ requestTimeout?: number;
32
+ pingTimeout?: number;
33
+ sniffInterval?: number | boolean;
34
+ sniffOnStart?: boolean;
35
+ sniffEndpoint?: string;
36
+ sniffOnConnectionFault?: boolean;
37
+ resurrectStrategy?: 'ping' | 'optimistic' | 'none';
38
+ compression?: boolean;
39
+ tls?: TlsConnectionOptions;
40
+ agent?: HttpAgentOptions | UndiciAgentOptions | agentFn | false;
41
+ nodeFilter?: nodeFilterFn;
42
+ nodeSelector?: nodeSelectorFn;
43
+ headers?: Record<string, any>;
44
+ opaqueIdPrefix?: string;
45
+ generateRequestId?: generateRequestIdFn;
46
+ name?: string | symbol;
47
+ auth?: BasicAuth | ApiKeyAuth | BearerAuth;
48
+ context?: Context;
49
+ proxy?: string | URL;
50
+ enableMetaHeader?: boolean;
51
+ cloud?: {
52
+ id: string;
53
+ };
54
+ disablePrototypePoisoningProtection?: boolean | 'proto' | 'constructor';
55
+ caFingerprint?: string;
56
+ maxResponseSize?: number;
57
+ maxCompressedResponseSize?: number;
58
+ }
59
+ export default class Client extends API {
60
+ diagnostic: Diagnostic;
61
+ name: string | symbol;
62
+ connectionPool: BaseConnectionPool;
63
+ transport: SniffingTransport;
64
+ serializer: Serializer;
65
+ helpers: Helpers;
66
+ constructor(opts: ClientOptions);
67
+ child(opts: ClientOptions): Client;
68
+ close(): Promise<void>;
69
+ }
package/lib/client.js ADDED
@@ -0,0 +1,282 @@
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 = (0, 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 = (0, tslib_1.__importDefault)(require("./sniffingTransport"));
27
+ const helpers_1 = (0, tslib_1.__importDefault)(require("./helpers"));
28
+ const api_1 = (0, 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
+ });
204
+ this.helpers = new helpers_1.default({
205
+ client: this,
206
+ metaHeader: options.enableMetaHeader
207
+ ? `es=${clientVersion},js=${nodeVersion},t=${transportVersion},hc=${nodeVersion}`
208
+ : null,
209
+ maxRetries: options.maxRetries
210
+ });
211
+ }
212
+ child(opts) {
213
+ // Merge the new options with the initial ones
214
+ // @ts-expect-error kChild symbol is for internal use only
215
+ const options = Object.assign({}, this[kInitialOptions], opts);
216
+ // Pass to the child client the parent instances that cannot be overriden
217
+ // @ts-expect-error kInitialOptions symbol is for internal use only
218
+ options[kChild] = {
219
+ connectionPool: this.connectionPool,
220
+ serializer: this.serializer,
221
+ diagnostic: this.diagnostic,
222
+ initialOptions: options
223
+ };
224
+ /* istanbul ignore else */
225
+ if (options.auth !== undefined) {
226
+ options.headers = (0, BaseConnection_1.prepareHeaders)(options.headers, options.auth);
227
+ }
228
+ return new Client(options);
229
+ }
230
+ async close() {
231
+ return await this.connectionPool.empty();
232
+ }
233
+ }
234
+ exports.default = Client;
235
+ function isHttpConnection(node) {
236
+ if (Array.isArray(node)) {
237
+ return node.some((n) => (typeof n === 'string' ? new url_1.URL(n).protocol : n.url.protocol) === 'http:');
238
+ }
239
+ else {
240
+ if (node == null)
241
+ return false;
242
+ return (typeof node === 'string' ? new url_1.URL(node).protocol : node.url.protocol) === 'http:';
243
+ }
244
+ }
245
+ function getAuth(node) {
246
+ if (Array.isArray(node)) {
247
+ for (const url of node) {
248
+ const auth = getUsernameAndPassword(url);
249
+ if (auth != null && auth.username !== '' && auth.password !== '') {
250
+ return auth;
251
+ }
252
+ }
253
+ return null;
254
+ }
255
+ else {
256
+ const auth = getUsernameAndPassword(node);
257
+ if (auth != null && auth.username !== '' && auth.password !== '') {
258
+ return auth;
259
+ }
260
+ return null;
261
+ }
262
+ function getUsernameAndPassword(node) {
263
+ /* istanbul ignore else */
264
+ if (typeof node === 'string') {
265
+ const { username, password } = new url_1.URL(node);
266
+ return {
267
+ username: decodeURIComponent(username),
268
+ password: decodeURIComponent(password)
269
+ };
270
+ }
271
+ else if (node != null && node.url instanceof url_1.URL) {
272
+ return {
273
+ username: decodeURIComponent(node.url.username),
274
+ password: decodeURIComponent(node.url.password)
275
+ };
276
+ }
277
+ else {
278
+ return null;
279
+ }
280
+ }
281
+ }
282
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'stream';
3
+ import { TransportResult, TransportRequestOptions } from '@elastic/transport';
4
+ import Client from './client';
5
+ import * as T from './api/types';
6
+ export interface HelpersOptions {
7
+ client: Client;
8
+ metaHeader: string | null;
9
+ maxRetries: number;
10
+ }
11
+ export interface ScrollSearchOptions extends TransportRequestOptions {
12
+ wait?: number;
13
+ }
14
+ export interface ScrollSearchResponse<TDocument> extends TransportResult<T.SearchResponse<TDocument>, unknown> {
15
+ clear: () => Promise<void>;
16
+ documents: TDocument[];
17
+ }
18
+ export interface MsearchHelperOptions extends T.MsearchRequest {
19
+ operations?: number;
20
+ flushInterval?: number;
21
+ concurrency?: number;
22
+ retries?: number;
23
+ wait?: number;
24
+ }
25
+ export interface MsearchHelper extends Promise<void> {
26
+ stop: (error?: Error | null) => void;
27
+ search: <TDocument = unknown>(header: T.MsearchHeader, body: T.MsearchBody) => Promise<MsearchHelperResponse<TDocument>>;
28
+ }
29
+ export interface MsearchHelperResponse<TDocument> {
30
+ body: T.SearchResponse<TDocument>;
31
+ documents: TDocument[];
32
+ status: number;
33
+ responses: T.MsearchResponse;
34
+ }
35
+ export interface BulkStats {
36
+ total: number;
37
+ failed: number;
38
+ retry: number;
39
+ successful: number;
40
+ noop: number;
41
+ time: number;
42
+ bytes: number;
43
+ aborted: boolean;
44
+ }
45
+ interface IndexAction {
46
+ index: T.BulkIndexOperation;
47
+ }
48
+ interface CreateAction {
49
+ create: T.BulkCreateOperation;
50
+ }
51
+ interface UpdateActionOperation {
52
+ update: T.BulkUpdateOperation;
53
+ }
54
+ interface DeleteAction {
55
+ delete: T.BulkDeleteOperation;
56
+ }
57
+ declare type UpdateAction = [UpdateActionOperation, Record<string, any>];
58
+ declare type Action = IndexAction | CreateAction | UpdateAction | DeleteAction;
59
+ export interface OnDropDocument<TDocument = unknown> {
60
+ status: number;
61
+ operation: Action;
62
+ error: T.ErrorCause | null;
63
+ document: TDocument;
64
+ retried: boolean;
65
+ }
66
+ export interface BulkHelperOptions<TDocument = unknown> extends T.BulkRequest {
67
+ datasource: TDocument[] | Buffer | Readable | AsyncIterator<TDocument>;
68
+ onDocument: (doc: TDocument) => Action;
69
+ flushBytes?: number;
70
+ flushInterval?: number;
71
+ concurrency?: number;
72
+ retries?: number;
73
+ wait?: number;
74
+ onDrop?: (doc: OnDropDocument<TDocument>) => void;
75
+ refreshOnCompletion?: boolean | string;
76
+ }
77
+ export interface BulkHelper<T> extends Promise<BulkStats> {
78
+ abort: () => BulkHelper<T>;
79
+ readonly stats: BulkStats;
80
+ }
81
+ declare const kClient: unique symbol;
82
+ declare const kMetaHeader: unique symbol;
83
+ declare const kMaxRetries: unique symbol;
84
+ export default class Helpers {
85
+ [kClient]: Client;
86
+ [kMetaHeader]: string | null;
87
+ [kMaxRetries]: number;
88
+ constructor(opts: HelpersOptions);
89
+ /**
90
+ * Runs a search operation. The only difference between client.search and this utility,
91
+ * is that we are only returning the hits to the user and not the full ES response.
92
+ * This helper automatically adds `filter_path=hits.hits._source` to the querystring,
93
+ * as it will only need the documents source.
94
+ * @param {object} params - The Elasticsearch's search parameters.
95
+ * @param {object} options - The client optional configuration for this request.
96
+ * @return {array} The documents that matched the request.
97
+ */
98
+ search<TDocument = unknown>(params: T.SearchRequest, options?: TransportRequestOptions): Promise<TDocument[]>;
99
+ /**
100
+ * Runs a scroll search operation. This function returns an async iterator, allowing
101
+ * the user to use a for await loop to get all the results of a given search.
102
+ * ```js
103
+ * for await (const result of client.helpers.scrollSearch({ params })) {
104
+ * console.log(result)
105
+ * }
106
+ * ```
107
+ * Each result represents the entire body of a single scroll search request,
108
+ * if you just need to scroll the results, use scrollDocuments.
109
+ * This function handles automatically retries on 429 status code.
110
+ * @param {object} params - The Elasticsearch's search parameters.
111
+ * @param {object} options - The client optional configuration for this request.
112
+ * @return {iterator} the async iterator
113
+ */
114
+ scrollSearch<TDocument = unknown>(params: T.SearchRequest, options?: ScrollSearchOptions): AsyncIterable<ScrollSearchResponse<TDocument>>;
115
+ /**
116
+ * Runs a scroll search operation. This function returns an async iterator, allowing
117
+ * the user to use a for await loop to get all the documents of a given search.
118
+ * ```js
119
+ * for await (const document of client.helpers.scrollSearch({ params })) {
120
+ * console.log(document)
121
+ * }
122
+ * ```
123
+ * Each document is what you will find by running a scrollSearch and iterating on the hits array.
124
+ * This helper automatically adds `filter_path=hits.hits._source` to the querystring,
125
+ * as it will only need the documents source.
126
+ * @param {object} params - The Elasticsearch's search parameters.
127
+ * @param {object} options - The client optional configuration for this request.
128
+ * @return {iterator} the async iterator
129
+ */
130
+ scrollDocuments<TDocument = unknown>(params: T.SearchRequest, options?: ScrollSearchOptions): AsyncIterable<TDocument>;
131
+ /**
132
+ * Creates a msearch helper instance. Once you configure it, you can use the provided
133
+ * `search` method to add new searches in the queue.
134
+ * @param {object} options - The configuration of the msearch operations.
135
+ * @param {object} reqOptions - The client optional configuration for this request.
136
+ * @return {object} The possible operations to run.
137
+ */
138
+ msearch(options?: MsearchHelperOptions, reqOptions?: TransportRequestOptions): MsearchHelper;
139
+ /**
140
+ * Creates a bulk helper instance. Once you configure it, you can pick which operation
141
+ * to execute with the given dataset, index, create, update, and delete.
142
+ * @param {object} options - The configuration of the bulk operation.
143
+ * @param {object} reqOptions - The client optional configuration for this request.
144
+ * @return {object} The possible operations to run with the datasource.
145
+ */
146
+ bulk<TDocument = unknown>(options: BulkHelperOptions, reqOptions?: TransportRequestOptions): BulkHelper<TDocument>;
147
+ }
148
+ export {};