@clickhouse/client 0.1.1 → 0.2.0-beta1

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 (119) hide show
  1. package/README.md +10 -6
  2. package/dist/client.d.ts +12 -141
  3. package/dist/client.js +39 -229
  4. package/dist/client.js.map +1 -1
  5. package/dist/connection/index.d.ts +3 -1
  6. package/dist/connection/index.js +3 -1
  7. package/dist/connection/index.js.map +1 -1
  8. package/dist/connection/node_base_connection.d.ts +50 -0
  9. package/dist/connection/{adapter/base_http_adapter.js → node_base_connection.js} +65 -111
  10. package/dist/connection/node_base_connection.js.map +1 -0
  11. package/dist/connection/node_http_connection.d.ts +11 -0
  12. package/dist/connection/node_http_connection.js +32 -0
  13. package/dist/connection/node_http_connection.js.map +1 -0
  14. package/dist/connection/node_https_connection.d.ts +12 -0
  15. package/dist/connection/node_https_connection.js +53 -0
  16. package/dist/connection/node_https_connection.js.map +1 -0
  17. package/dist/index.d.ts +4 -15
  18. package/dist/index.js +11 -9
  19. package/dist/index.js.map +1 -1
  20. package/dist/result_set.d.ts +13 -0
  21. package/dist/{result.js → result_set.js} +5 -32
  22. package/dist/result_set.js.map +1 -0
  23. package/dist/utils/encoder.d.ts +7 -0
  24. package/dist/utils/encoder.js +55 -0
  25. package/dist/utils/encoder.js.map +1 -0
  26. package/dist/utils/index.d.ts +3 -1
  27. package/dist/utils/index.js +3 -1
  28. package/dist/utils/index.js.map +1 -1
  29. package/dist/utils/process.js.map +1 -1
  30. package/dist/utils/stream.d.ts +1 -1
  31. package/dist/utils/stream.js.map +1 -1
  32. package/dist/utils/user_agent.js +1 -2
  33. package/dist/utils/user_agent.js.map +1 -1
  34. package/dist/version.d.ts +2 -2
  35. package/dist/version.js +2 -1
  36. package/dist/version.js.map +1 -1
  37. package/package.json +7 -48
  38. package/dist/clickhouse_types.d.ts +0 -24
  39. package/dist/clickhouse_types.js +0 -3
  40. package/dist/clickhouse_types.js.map +0 -1
  41. package/dist/connection/adapter/base_http_adapter.d.ts +0 -38
  42. package/dist/connection/adapter/base_http_adapter.js.map +0 -1
  43. package/dist/connection/adapter/http_adapter.d.ts +0 -10
  44. package/dist/connection/adapter/http_adapter.js +0 -27
  45. package/dist/connection/adapter/http_adapter.js.map +0 -1
  46. package/dist/connection/adapter/http_search_params.d.ts +0 -11
  47. package/dist/connection/adapter/http_search_params.js +0 -42
  48. package/dist/connection/adapter/http_search_params.js.map +0 -1
  49. package/dist/connection/adapter/https_adapter.d.ts +0 -11
  50. package/dist/connection/adapter/https_adapter.js +0 -48
  51. package/dist/connection/adapter/https_adapter.js.map +0 -1
  52. package/dist/connection/adapter/index.d.ts +0 -2
  53. package/dist/connection/adapter/index.js +0 -8
  54. package/dist/connection/adapter/index.js.map +0 -1
  55. package/dist/connection/adapter/transform_url.d.ts +0 -5
  56. package/dist/connection/adapter/transform_url.js +0 -15
  57. package/dist/connection/adapter/transform_url.js.map +0 -1
  58. package/dist/connection/connection.d.ts +0 -63
  59. package/dist/connection/connection.js +0 -17
  60. package/dist/connection/connection.js.map +0 -1
  61. package/dist/data_formatter/format_query_params.d.ts +0 -1
  62. package/dist/data_formatter/format_query_params.js +0 -61
  63. package/dist/data_formatter/format_query_params.js.map +0 -1
  64. package/dist/data_formatter/format_query_settings.d.ts +0 -2
  65. package/dist/data_formatter/format_query_settings.js +0 -21
  66. package/dist/data_formatter/format_query_settings.js.map +0 -1
  67. package/dist/data_formatter/formatter.d.ts +0 -23
  68. package/dist/data_formatter/formatter.js +0 -96
  69. package/dist/data_formatter/formatter.js.map +0 -1
  70. package/dist/data_formatter/index.d.ts +0 -3
  71. package/dist/data_formatter/index.js +0 -23
  72. package/dist/data_formatter/index.js.map +0 -1
  73. package/dist/error/index.d.ts +0 -1
  74. package/dist/error/index.js +0 -18
  75. package/dist/error/index.js.map +0 -1
  76. package/dist/error/parse_error.d.ts +0 -12
  77. package/dist/error/parse_error.js +0 -39
  78. package/dist/error/parse_error.js.map +0 -1
  79. package/dist/logger.d.ts +0 -33
  80. package/dist/logger.js +0 -108
  81. package/dist/logger.js.map +0 -1
  82. package/dist/result.d.ts +0 -52
  83. package/dist/result.js.map +0 -1
  84. package/dist/schema/common.d.ts +0 -8
  85. package/dist/schema/common.js +0 -3
  86. package/dist/schema/common.js.map +0 -1
  87. package/dist/schema/engines.d.ts +0 -40
  88. package/dist/schema/engines.js +0 -61
  89. package/dist/schema/engines.js.map +0 -1
  90. package/dist/schema/index.d.ts +0 -7
  91. package/dist/schema/index.js +0 -24
  92. package/dist/schema/index.js.map +0 -1
  93. package/dist/schema/query_formatter.d.ts +0 -9
  94. package/dist/schema/query_formatter.js +0 -48
  95. package/dist/schema/query_formatter.js.map +0 -1
  96. package/dist/schema/result.d.ts +0 -13
  97. package/dist/schema/result.js +0 -3
  98. package/dist/schema/result.js.map +0 -1
  99. package/dist/schema/schema.d.ts +0 -6
  100. package/dist/schema/schema.js +0 -20
  101. package/dist/schema/schema.js.map +0 -1
  102. package/dist/schema/stream.d.ts +0 -11
  103. package/dist/schema/stream.js +0 -25
  104. package/dist/schema/stream.js.map +0 -1
  105. package/dist/schema/table.d.ts +0 -44
  106. package/dist/schema/table.js +0 -73
  107. package/dist/schema/table.js.map +0 -1
  108. package/dist/schema/types.d.ts +0 -201
  109. package/dist/schema/types.js +0 -268
  110. package/dist/schema/types.js.map +0 -1
  111. package/dist/schema/where.d.ts +0 -8
  112. package/dist/schema/where.js +0 -43
  113. package/dist/schema/where.js.map +0 -1
  114. package/dist/settings.d.ts +0 -1453
  115. package/dist/settings.js +0 -28
  116. package/dist/settings.js.map +0 -1
  117. package/dist/utils/string.d.ts +0 -1
  118. package/dist/utils/string.js +0 -9
  119. package/dist/utils/string.js.map +0 -1
@@ -1,96 +1,36 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.BaseHttpAdapter = void 0;
6
+ exports.NodeBaseConnection = void 0;
7
+ const client_common_1 = require("@clickhouse/client-common");
8
+ const crypto_1 = __importDefault(require("crypto"));
30
9
  const stream_1 = __importDefault(require("stream"));
31
10
  const zlib_1 = __importDefault(require("zlib"));
32
- const error_1 = require("../../error");
33
- const http_search_params_1 = require("./http_search_params");
34
- const transform_url_1 = require("./transform_url");
35
- const utils_1 = require("../../utils");
36
- const user_agent_1 = require("../../utils/user_agent");
37
- const uuid = __importStar(require("uuid"));
38
- function isSuccessfulResponse(statusCode) {
39
- return Boolean(statusCode && 200 <= statusCode && statusCode < 300);
40
- }
41
- function withHttpSettings(clickhouse_settings, compression) {
42
- return {
43
- ...(compression
44
- ? {
45
- enable_http_compression: 1,
46
- }
47
- : {}),
48
- ...clickhouse_settings,
49
- };
50
- }
51
- function decompressResponse(response) {
52
- const encoding = response.headers['content-encoding'];
53
- if (encoding === 'gzip') {
54
- return {
55
- response: stream_1.default.pipeline(response, zlib_1.default.createGunzip(), function pipelineCb(err) {
56
- if (err) {
57
- console.error(err);
58
- }
59
- }),
60
- };
61
- }
62
- else if (encoding !== undefined) {
63
- return {
64
- error: new Error(`Unexpected encoding: ${encoding}`),
65
- };
66
- }
67
- return { response };
68
- }
69
- function isDecompressionError(result) {
70
- return result.error !== undefined;
71
- }
11
+ const utils_1 = require("../utils");
72
12
  const expiredSocketMessage = 'expired socket';
73
- class BaseHttpAdapter {
74
- constructor(config, logger, agent) {
75
- Object.defineProperty(this, "config", {
13
+ class NodeBaseConnection {
14
+ constructor(params, agent) {
15
+ Object.defineProperty(this, "params", {
76
16
  enumerable: true,
77
17
  configurable: true,
78
18
  writable: true,
79
- value: config
19
+ value: params
80
20
  });
81
- Object.defineProperty(this, "logger", {
21
+ Object.defineProperty(this, "agent", {
82
22
  enumerable: true,
83
23
  configurable: true,
84
24
  writable: true,
85
- value: logger
25
+ value: agent
86
26
  });
87
- Object.defineProperty(this, "agent", {
27
+ Object.defineProperty(this, "headers", {
88
28
  enumerable: true,
89
29
  configurable: true,
90
30
  writable: true,
91
- value: agent
31
+ value: void 0
92
32
  });
93
- Object.defineProperty(this, "headers", {
33
+ Object.defineProperty(this, "logger", {
94
34
  enumerable: true,
95
35
  configurable: true,
96
36
  writable: true,
@@ -108,15 +48,15 @@ class BaseHttpAdapter {
108
48
  writable: true,
109
49
  value: new WeakMap()
110
50
  });
111
- this.headers = this.buildDefaultHeaders(config.username, config.password);
51
+ this.logger = params.logWriter;
112
52
  this.retry_expired_sockets =
113
- this.config.keep_alive.enabled &&
114
- this.config.keep_alive.retry_on_expired_socket;
53
+ params.keep_alive.enabled && params.keep_alive.retry_on_expired_socket;
54
+ this.headers = this.buildDefaultHeaders(params.username, params.password);
115
55
  }
116
56
  buildDefaultHeaders(username, password) {
117
57
  return {
118
58
  Authorization: `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`,
119
- 'User-Agent': (0, user_agent_1.getUserAgent)(this.config.application_id),
59
+ 'User-Agent': (0, utils_1.getUserAgent)(this.params.application_id),
120
60
  };
121
61
  }
122
62
  async request(params, retryCount = 0) {
@@ -142,7 +82,7 @@ class BaseHttpAdapter {
142
82
  async _request(params) {
143
83
  return new Promise((resolve, reject) => {
144
84
  const start = Date.now();
145
- const request = this.createClientRequest(params, params.abort_signal);
85
+ const request = this.createClientRequest(params);
146
86
  function onError(err) {
147
87
  removeRequestListeners();
148
88
  reject(err);
@@ -153,11 +93,11 @@ class BaseHttpAdapter {
153
93
  if (isDecompressionError(decompressionResult)) {
154
94
  return reject(decompressionResult.error);
155
95
  }
156
- if (isSuccessfulResponse(_response.statusCode)) {
96
+ if ((0, client_common_1.isSuccessfulResponse)(_response.statusCode)) {
157
97
  return resolve(decompressionResult.response);
158
98
  }
159
99
  else {
160
- reject((0, error_1.parseError)(await (0, utils_1.getAsText)(decompressionResult.response)));
100
+ reject((0, client_common_1.parseError)(await (0, utils_1.getAsText)(decompressionResult.response)));
161
101
  }
162
102
  };
163
103
  function onAbort() {
@@ -170,7 +110,7 @@ class BaseHttpAdapter {
170
110
  * see the full sequence of events https://nodejs.org/api/http.html#httprequesturl-options-callback
171
111
  * */
172
112
  });
173
- reject(new Error('The request was aborted.'));
113
+ reject(new Error('The user aborted a request.'));
174
114
  }
175
115
  function onClose() {
176
116
  // Adapter uses 'close' event to clean up listeners after the successful response.
@@ -211,7 +151,7 @@ class BaseHttpAdapter {
211
151
  // if a socket was reused at an unfortunate time,
212
152
  // and is likely about to expire
213
153
  const isPossiblyExpired = Date.now() - socketInfo.last_used_time >
214
- this.config.keep_alive.socket_ttl;
154
+ this.params.keep_alive.socket_ttl;
215
155
  if (isPossiblyExpired) {
216
156
  this.logger.trace({
217
157
  module: 'Connection',
@@ -235,7 +175,7 @@ class BaseHttpAdapter {
235
175
  }
236
176
  }
237
177
  else {
238
- const socketId = uuid.v4();
178
+ const socketId = crypto_1.default.randomUUID();
239
179
  this.logger.trace({
240
180
  module: 'Connection',
241
181
  message: `Using a new socket ${socketId}`,
@@ -256,12 +196,12 @@ class BaseHttpAdapter {
256
196
  // The socket won't be actually destroyed,
257
197
  // and it will be returned to the pool.
258
198
  // TODO: investigate if can actually remove the idle sockets properly
259
- socket.setTimeout(this.config.request_timeout, onTimeout);
199
+ socket.setTimeout(this.params.request_timeout, onTimeout);
260
200
  };
261
201
  function onTimeout() {
262
202
  removeRequestListeners();
263
203
  request.destroy();
264
- reject(new Error('Timeout error'));
204
+ reject(new Error('Timeout error.'));
265
205
  }
266
206
  function removeRequestListeners() {
267
207
  if (request.socket !== null) {
@@ -291,16 +231,16 @@ class BaseHttpAdapter {
291
231
  // TODO add status code check
292
232
  const stream = await this.request({
293
233
  method: 'GET',
294
- url: (0, transform_url_1.transformUrl)({ url: this.config.url, pathname: '/ping' }),
234
+ url: (0, client_common_1.transformUrl)({ url: this.params.url, pathname: '/ping' }),
295
235
  });
296
236
  stream.destroy();
297
237
  return true;
298
238
  }
299
239
  async query(params) {
300
- const query_id = this.getQueryId(params);
301
- const clickhouse_settings = withHttpSettings(params.clickhouse_settings, this.config.compression.decompress_response);
302
- const searchParams = (0, http_search_params_1.toSearchParams)({
303
- database: this.config.database,
240
+ const query_id = getQueryId(params.query_id);
241
+ const clickhouse_settings = (0, client_common_1.withHttpSettings)(params.clickhouse_settings, this.params.compression.decompress_response);
242
+ const searchParams = (0, client_common_1.toSearchParams)({
243
+ database: this.params.database,
304
244
  clickhouse_settings,
305
245
  query_params: params.query_params,
306
246
  session_id: params.session_id,
@@ -308,7 +248,7 @@ class BaseHttpAdapter {
308
248
  });
309
249
  const stream = await this.request({
310
250
  method: 'POST',
311
- url: (0, transform_url_1.transformUrl)({ url: this.config.url, pathname: '/', searchParams }),
251
+ url: (0, client_common_1.transformUrl)({ url: this.params.url, pathname: '/', searchParams }),
312
252
  body: params.query,
313
253
  abort_signal: params.abort_signal,
314
254
  decompress_response: clickhouse_settings.enable_http_compression === 1,
@@ -319,9 +259,9 @@ class BaseHttpAdapter {
319
259
  };
320
260
  }
321
261
  async exec(params) {
322
- const query_id = this.getQueryId(params);
323
- const searchParams = (0, http_search_params_1.toSearchParams)({
324
- database: this.config.database,
262
+ const query_id = getQueryId(params.query_id);
263
+ const searchParams = (0, client_common_1.toSearchParams)({
264
+ database: this.params.database,
325
265
  clickhouse_settings: params.clickhouse_settings,
326
266
  query_params: params.query_params,
327
267
  session_id: params.session_id,
@@ -329,7 +269,7 @@ class BaseHttpAdapter {
329
269
  });
330
270
  const stream = await this.request({
331
271
  method: 'POST',
332
- url: (0, transform_url_1.transformUrl)({ url: this.config.url, pathname: '/', searchParams }),
272
+ url: (0, client_common_1.transformUrl)({ url: this.params.url, pathname: '/', searchParams }),
333
273
  body: params.query,
334
274
  abort_signal: params.abort_signal,
335
275
  });
@@ -339,9 +279,9 @@ class BaseHttpAdapter {
339
279
  };
340
280
  }
341
281
  async insert(params) {
342
- const query_id = this.getQueryId(params);
343
- const searchParams = (0, http_search_params_1.toSearchParams)({
344
- database: this.config.database,
282
+ const query_id = getQueryId(params.query_id);
283
+ const searchParams = (0, client_common_1.toSearchParams)({
284
+ database: this.params.database,
345
285
  clickhouse_settings: params.clickhouse_settings,
346
286
  query_params: params.query_params,
347
287
  query: params.query,
@@ -350,10 +290,10 @@ class BaseHttpAdapter {
350
290
  });
351
291
  const stream = await this.request({
352
292
  method: 'POST',
353
- url: (0, transform_url_1.transformUrl)({ url: this.config.url, pathname: '/', searchParams }),
293
+ url: (0, client_common_1.transformUrl)({ url: this.params.url, pathname: '/', searchParams }),
354
294
  body: params.values,
355
295
  abort_signal: params.abort_signal,
356
- compress_request: this.config.compression.compress_request,
296
+ compress_request: this.params.compression.compress_request,
357
297
  });
358
298
  stream.destroy();
359
299
  return { query_id };
@@ -363,15 +303,12 @@ class BaseHttpAdapter {
363
303
  this.agent.destroy();
364
304
  }
365
305
  }
366
- getQueryId(params) {
367
- return params.query_id || uuid.v4();
368
- }
369
306
  logResponse(request, params, response, startTimestamp) {
370
307
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
371
308
  const { authorization, host, ...headers } = request.getHeaders();
372
309
  const duration = Date.now() - startTimestamp;
373
- this.logger.debug({
374
- module: 'Connection',
310
+ this.params.logWriter.debug({
311
+ module: 'HTTP Adapter',
375
312
  message: 'Got a response from ClickHouse',
376
313
  args: {
377
314
  request_method: params.method,
@@ -384,13 +321,30 @@ class BaseHttpAdapter {
384
321
  },
385
322
  });
386
323
  }
387
- getHeaders(params) {
324
+ }
325
+ exports.NodeBaseConnection = NodeBaseConnection;
326
+ function decompressResponse(response) {
327
+ const encoding = response.headers['content-encoding'];
328
+ if (encoding === 'gzip') {
388
329
  return {
389
- ...this.headers,
390
- ...(params.decompress_response ? { 'Accept-Encoding': 'gzip' } : {}),
391
- ...(params.compress_request ? { 'Content-Encoding': 'gzip' } : {}),
330
+ response: stream_1.default.pipeline(response, zlib_1.default.createGunzip(), function pipelineCb(err) {
331
+ if (err) {
332
+ console.error(err);
333
+ }
334
+ }),
392
335
  };
393
336
  }
337
+ else if (encoding !== undefined) {
338
+ return {
339
+ error: new Error(`Unexpected encoding: ${encoding}`),
340
+ };
341
+ }
342
+ return { response };
343
+ }
344
+ function isDecompressionError(result) {
345
+ return result.error !== undefined;
346
+ }
347
+ function getQueryId(query_id) {
348
+ return query_id || crypto_1.default.randomUUID();
394
349
  }
395
- exports.BaseHttpAdapter = BaseHttpAdapter;
396
- //# sourceMappingURL=base_http_adapter.js.map
350
+ //# sourceMappingURL=node_base_connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_base_connection.js","sourceRoot":"","sources":["../../../../packages/client-node/src/connection/node_base_connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import type { Connection } from '@clickhouse/client-common';
4
+ import Http from 'http';
5
+ import type Stream from 'stream';
6
+ import type { NodeConnectionParams, RequestParams } from './node_base_connection';
7
+ import { NodeBaseConnection } from './node_base_connection';
8
+ export declare class NodeHttpConnection extends NodeBaseConnection implements Connection<Stream.Readable> {
9
+ constructor(params: NodeConnectionParams);
10
+ protected createClientRequest(params: RequestParams): Http.ClientRequest;
11
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NodeHttpConnection = void 0;
7
+ const client_common_1 = require("@clickhouse/client-common");
8
+ const http_1 = __importDefault(require("http"));
9
+ const node_base_connection_1 = require("./node_base_connection");
10
+ class NodeHttpConnection extends node_base_connection_1.NodeBaseConnection {
11
+ constructor(params) {
12
+ const agent = new http_1.default.Agent({
13
+ keepAlive: params.keep_alive.enabled,
14
+ maxSockets: params.max_open_connections,
15
+ });
16
+ super(params, agent);
17
+ }
18
+ createClientRequest(params) {
19
+ return http_1.default.request(params.url, {
20
+ method: params.method,
21
+ agent: this.agent,
22
+ headers: (0, client_common_1.withCompressionHeaders)({
23
+ headers: this.headers,
24
+ compress_request: params.compress_request,
25
+ decompress_response: params.decompress_response,
26
+ }),
27
+ signal: params.abort_signal,
28
+ });
29
+ }
30
+ }
31
+ exports.NodeHttpConnection = NodeHttpConnection;
32
+ //# sourceMappingURL=node_http_connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_http_connection.js","sourceRoot":"","sources":["../../../../packages/client-node/src/connection/node_http_connection.ts"],"names":[],"mappings":";;;;;;AACA,6DAAkE;AAClE,gDAAuB;AAMvB,iEAA2D;AAE3D,MAAa,kBACX,SAAQ,yCAAkB;IAG1B,YAAY,MAA4B;QACtC,MAAM,KAAK,GAAG,IAAI,cAAI,CAAC,KAAK,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;YACpC,UAAU,EAAE,MAAM,CAAC,oBAAoB;SACxC,CAAC,CAAA;QACF,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACtB,CAAC;IAES,mBAAmB,CAAC,MAAqB;QACjD,OAAO,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAA,sCAAsB,EAAC;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;aAChD,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,YAAY;SAC5B,CAAC,CAAA;IACJ,CAAC;CACF;AAxBD,gDAwBC"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import type { Connection } from '@clickhouse/client-common';
4
+ import type Http from 'http';
5
+ import type Stream from 'stream';
6
+ import type { NodeConnectionParams, RequestParams } from './node_base_connection';
7
+ import { NodeBaseConnection } from './node_base_connection';
8
+ export declare class NodeHttpsConnection extends NodeBaseConnection implements Connection<Stream.Readable> {
9
+ constructor(params: NodeConnectionParams);
10
+ protected buildDefaultHeaders(username: string, password: string): Http.OutgoingHttpHeaders;
11
+ protected createClientRequest(params: RequestParams): Http.ClientRequest;
12
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NodeHttpsConnection = void 0;
7
+ const client_common_1 = require("@clickhouse/client-common");
8
+ const https_1 = __importDefault(require("https"));
9
+ const node_base_connection_1 = require("./node_base_connection");
10
+ class NodeHttpsConnection extends node_base_connection_1.NodeBaseConnection {
11
+ constructor(params) {
12
+ var _a, _b, _c;
13
+ const agent = new https_1.default.Agent({
14
+ keepAlive: params.keep_alive.enabled,
15
+ maxSockets: params.max_open_connections,
16
+ ca: (_a = params.tls) === null || _a === void 0 ? void 0 : _a.ca_cert,
17
+ key: ((_b = params.tls) === null || _b === void 0 ? void 0 : _b.type) === 'Mutual' ? params.tls.key : undefined,
18
+ cert: ((_c = params.tls) === null || _c === void 0 ? void 0 : _c.type) === 'Mutual' ? params.tls.cert : undefined,
19
+ });
20
+ super(params, agent);
21
+ }
22
+ buildDefaultHeaders(username, password) {
23
+ var _a, _b;
24
+ if (((_a = this.params.tls) === null || _a === void 0 ? void 0 : _a.type) === 'Mutual') {
25
+ return {
26
+ 'X-ClickHouse-User': username,
27
+ 'X-ClickHouse-Key': password,
28
+ 'X-ClickHouse-SSL-Certificate-Auth': 'on',
29
+ };
30
+ }
31
+ if (((_b = this.params.tls) === null || _b === void 0 ? void 0 : _b.type) === 'Basic') {
32
+ return {
33
+ 'X-ClickHouse-User': username,
34
+ 'X-ClickHouse-Key': password,
35
+ };
36
+ }
37
+ return super.buildDefaultHeaders(username, password);
38
+ }
39
+ createClientRequest(params) {
40
+ return https_1.default.request(params.url, {
41
+ method: params.method,
42
+ agent: this.agent,
43
+ headers: (0, client_common_1.withCompressionHeaders)({
44
+ headers: this.headers,
45
+ compress_request: params.compress_request,
46
+ decompress_response: params.decompress_response,
47
+ }),
48
+ signal: params.abort_signal,
49
+ });
50
+ }
51
+ }
52
+ exports.NodeHttpsConnection = NodeHttpsConnection;
53
+ //# sourceMappingURL=node_https_connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_https_connection.js","sourceRoot":"","sources":["../../../../packages/client-node/src/connection/node_https_connection.ts"],"names":[],"mappings":";;;;;;AACA,6DAAkE;AAElE,kDAAyB;AAMzB,iEAA2D;AAE3D,MAAa,mBACX,SAAQ,yCAAkB;IAG1B,YAAY,MAA4B;;QACtC,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC;YAC5B,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;YACpC,UAAU,EAAE,MAAM,CAAC,oBAAoB;YACvC,EAAE,EAAE,MAAA,MAAM,CAAC,GAAG,0CAAE,OAAO;YACvB,GAAG,EAAE,CAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,IAAI,MAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YAC/D,IAAI,EAAE,CAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,IAAI,MAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC,CAAA;QACF,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACtB,CAAC;IAEkB,mBAAmB,CACpC,QAAgB,EAChB,QAAgB;;QAEhB,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,IAAI,MAAK,QAAQ,EAAE;YACtC,OAAO;gBACL,mBAAmB,EAAE,QAAQ;gBAC7B,kBAAkB,EAAE,QAAQ;gBAC5B,mCAAmC,EAAE,IAAI;aAC1C,CAAA;SACF;QACD,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,IAAI,MAAK,OAAO,EAAE;YACrC,OAAO;gBACL,mBAAmB,EAAE,QAAQ;gBAC7B,kBAAkB,EAAE,QAAQ;aAC7B,CAAA;SACF;QACD,OAAO,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAES,mBAAmB,CAAC,MAAqB;QACjD,OAAO,eAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAA,sCAAsB,EAAC;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;aAChD,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,YAAY;SAC5B,CAAC,CAAA;IACJ,CAAC;CACF;AA/CD,kDA+CC"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,4 @@
1
- import { createClient } from './client';
2
- export { createClient };
3
- declare const _default: {
4
- createClient: typeof createClient;
5
- };
6
- export default _default;
7
- export { type ClickHouseClientConfigOptions, type ClickHouseClient, type BaseParams, type QueryParams, type ExecParams, type InsertParams, type CommandParams, type CommandResult, } from './client';
8
- export { Row, ResultSet } from './result';
9
- export type { Connection, ExecResult, InsertResult } from './connection';
10
- export type { DataFormat } from './data_formatter';
11
- export type { ClickHouseError } from './error';
12
- export type { Logger } from './logger';
13
- export type { ResponseJSON, InputJSON, InputJSONObjectEachRow, } from './clickhouse_types';
14
- export type { ClickHouseSettings } from './settings';
15
- export { SettingsMap } from './settings';
1
+ export { createConnection, createClient } from './client';
2
+ export { ResultSet } from './result_set';
3
+ /** Re-export @clickhouse/client-common types */
4
+ export { type BaseClickHouseClientConfigOptions, type ClickHouseClientConfigOptions, type BaseQueryParams, type QueryParams, type ExecParams, type InsertParams, type InsertValues, type CommandParams, type CommandResult, type ExecResult, type InsertResult, type DataFormat, type ErrorLogParams, type Logger, type LogParams, type ClickHouseSettings, type MergeTreeSettings, type Row, type ResponseJSON, type InputJSON, type InputJSONObjectEachRow, type BaseResultSet, ClickHouseError, ClickHouseLogLevel, ClickHouseClient, SettingsMap, } from '@clickhouse/client-common';
package/dist/index.js CHANGED
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SettingsMap = exports.ResultSet = exports.createClient = void 0;
4
- const client_1 = require("./client");
3
+ exports.SettingsMap = exports.ClickHouseClient = exports.ClickHouseLogLevel = exports.ClickHouseError = exports.ResultSet = exports.createClient = exports.createConnection = void 0;
4
+ var client_1 = require("./client");
5
+ Object.defineProperty(exports, "createConnection", { enumerable: true, get: function () { return client_1.createConnection; } });
5
6
  Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return client_1.createClient; } });
6
- exports.default = {
7
- createClient: client_1.createClient,
8
- };
9
- var result_1 = require("./result");
10
- Object.defineProperty(exports, "ResultSet", { enumerable: true, get: function () { return result_1.ResultSet; } });
11
- var settings_1 = require("./settings");
12
- Object.defineProperty(exports, "SettingsMap", { enumerable: true, get: function () { return settings_1.SettingsMap; } });
7
+ var result_set_1 = require("./result_set");
8
+ Object.defineProperty(exports, "ResultSet", { enumerable: true, get: function () { return result_set_1.ResultSet; } });
9
+ /** Re-export @clickhouse/client-common types */
10
+ var client_common_1 = require("@clickhouse/client-common");
11
+ Object.defineProperty(exports, "ClickHouseError", { enumerable: true, get: function () { return client_common_1.ClickHouseError; } });
12
+ Object.defineProperty(exports, "ClickHouseLogLevel", { enumerable: true, get: function () { return client_common_1.ClickHouseLogLevel; } });
13
+ Object.defineProperty(exports, "ClickHouseClient", { enumerable: true, get: function () { return client_common_1.ClickHouseClient; } });
14
+ Object.defineProperty(exports, "SettingsMap", { enumerable: true, get: function () { return client_common_1.SettingsMap; } });
13
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAE9B,6FAFA,qBAAY,OAEA;AACrB,kBAAe;IACb,YAAY,EAAZ,qBAAY;CACb,CAAA;AAaD,mCAAyC;AAA3B,mGAAA,SAAS,OAAA;AAavB,uCAAwC;AAA/B,uGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/client-node/src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,0GAAA,gBAAgB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACvC,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAElB,gDAAgD;AAChD,2DA2BkC;AAJhC,gHAAA,eAAe,OAAA;AACf,mHAAA,kBAAkB,OAAA;AAClB,iHAAA,gBAAgB,OAAA;AAChB,4GAAA,WAAW,OAAA"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ import type { BaseResultSet, DataFormat } from '@clickhouse/client-common';
3
+ import Stream from 'stream';
4
+ export declare class ResultSet implements BaseResultSet<Stream.Readable> {
5
+ private _stream;
6
+ private readonly format;
7
+ readonly query_id: string;
8
+ constructor(_stream: Stream.Readable, format: DataFormat, query_id: string);
9
+ text(): Promise<string>;
10
+ json<T>(): Promise<T>;
11
+ stream(): Stream.Readable;
12
+ close(): void;
13
+ }
@@ -24,9 +24,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ResultSet = void 0;
27
+ const client_common_1 = require("@clickhouse/client-common");
27
28
  const stream_1 = __importStar(require("stream"));
28
29
  const utils_1 = require("./utils");
29
- const data_formatter_1 = require("./data_formatter");
30
30
  class ResultSet {
31
31
  constructor(_stream, format, query_id) {
32
32
  Object.defineProperty(this, "_stream", {
@@ -48,45 +48,18 @@ class ResultSet {
48
48
  value: query_id
49
49
  });
50
50
  }
51
- /**
52
- * The method waits for all the rows to be fully loaded
53
- * and returns the result as a string.
54
- *
55
- * The method will throw if the underlying stream was already consumed
56
- * by calling the other methods.
57
- */
58
51
  async text() {
59
52
  if (this._stream.readableEnded) {
60
53
  throw Error(streamAlreadyConsumedMessage);
61
54
  }
62
55
  return (await (0, utils_1.getAsText)(this._stream)).toString();
63
56
  }
64
- /**
65
- * The method waits for the all the rows to be fully loaded.
66
- * When the response is received in full, it will be decoded to return JSON.
67
- *
68
- * The method will throw if the underlying stream was already consumed
69
- * by calling the other methods.
70
- */
71
57
  async json() {
72
58
  if (this._stream.readableEnded) {
73
59
  throw Error(streamAlreadyConsumedMessage);
74
60
  }
75
- return (0, data_formatter_1.decode)(await this.text(), this.format);
61
+ return (0, client_common_1.decode)(await this.text(), this.format);
76
62
  }
77
- /**
78
- * Returns a readable stream for responses that can be streamed
79
- * (i.e. all except JSON).
80
- *
81
- * Every iteration provides an array of {@link Row} instances
82
- * for {@link StreamableDataFormat} format.
83
- *
84
- * Should be called only once.
85
- *
86
- * The method will throw if called on a response in non-streamable format,
87
- * and if the underlying stream was already consumed
88
- * by calling the other methods.
89
- */
90
63
  stream() {
91
64
  // If the underlying stream has already ended by calling `text` or `json`,
92
65
  // Stream.pipeline will create a new empty stream
@@ -94,7 +67,7 @@ class ResultSet {
94
67
  if (this._stream.readableEnded) {
95
68
  throw Error(streamAlreadyConsumedMessage);
96
69
  }
97
- (0, data_formatter_1.validateStreamFormat)(this.format);
70
+ (0, client_common_1.validateStreamFormat)(this.format);
98
71
  let decodedChunk = '';
99
72
  const toRows = new stream_1.Transform({
100
73
  transform(chunk, encoding, callback) {
@@ -109,7 +82,7 @@ class ResultSet {
109
82
  rows.push({
110
83
  text,
111
84
  json() {
112
- return (0, data_formatter_1.decode)(text, 'JSON');
85
+ return (0, client_common_1.decode)(text, 'JSON');
113
86
  },
114
87
  });
115
88
  }
@@ -137,4 +110,4 @@ class ResultSet {
137
110
  }
138
111
  exports.ResultSet = ResultSet;
139
112
  const streamAlreadyConsumedMessage = 'Stream has been already consumed';
140
- //# sourceMappingURL=result.js.map
113
+ //# sourceMappingURL=result_set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result_set.js","sourceRoot":"","sources":["../../../packages/client-node/src/result_set.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6DAAwE;AAExE,iDAA0C;AAC1C,mCAAmC;AAEnC,MAAa,SAAS;IACpB,YACU,OAAwB,EACf,MAAkB,EACnB,QAAgB;;;;;mBAFxB;;;;;;mBACS;;;;;;mBACD;;IACf,CAAC;IAEJ,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,MAAM,IAAA,iBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,IAAA,sBAAM,EAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM;QACJ,0EAA0E;QAC1E,iDAAiD;QACjD,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QAED,IAAA,oCAAoB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjC,IAAI,YAAY,GAAG,EAAE,CAAA;QACrB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;YAC3B,SAAS,CACP,KAAa,EACb,QAAwB,EACxB,QAA2B;gBAE3B,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,IAAI,GAAU,EAAE,CAAA;gBACtB,iDAAiD;gBACjD,OAAO,IAAI,EAAE;oBACX,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;wBACd,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;wBACvC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;wBAC1C,IAAI,CAAC,IAAI,CAAC;4BACR,IAAI;4BACJ,IAAI;gCACF,OAAO,IAAA,sBAAM,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;4BAC7B,CAAC;yBACF,CAAC,CAAA;qBACH;yBAAM;wBACL,IAAI,IAAI,CAAC,MAAM,EAAE;4BACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;yBAChB;wBACD,MAAK;qBACN;iBACF;gBACD,QAAQ,EAAE,CAAA;YACZ,CAAC;YACD,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,OAAO,gBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,UAAU,CAAC,GAAG;YAClE,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;CACF;AA3ED,8BA2EC;AAED,MAAM,4BAA4B,GAAG,kCAAkC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import type { DataFormat, InsertValues, ValuesEncoder } from '@clickhouse/client-common';
3
+ import Stream from 'stream';
4
+ export declare class NodeValuesEncoder implements ValuesEncoder<Stream.Readable> {
5
+ encodeValues<T>(values: InsertValues<Stream.Readable, T>, format: DataFormat): string | Stream.Readable;
6
+ validateInsertValues<T>(values: InsertValues<Stream.Readable, T>, format: DataFormat): void;
7
+ }