@clickhouse/client 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -150,27 +150,28 @@ See also:
150
150
 
151
151
  ## Supported formats
152
152
 
153
- | Format | Input (array) | Input (stream) | Output (JSON) | Output (text) |
154
- | ------------------------------------------ | ------------- | -------------- | ------------- | ------------- |
155
- | JSON | ❌ | ❌ | ✔️ | ✔️ |
156
- | JSONEachRow | ✔️ | ✔️ | ✔️ | ✔️ |
157
- | JSONStringsEachRow | ✔️ | ✔️ | ✔️ | ✔️ |
158
- | JSONCompactEachRow | ✔️ | ✔️ | ✔️ | ✔️ |
159
- | JSONCompactStringsEachRow | ✔️ | ✔️ | ✔️ | ✔️ |
160
- | JSONCompactEachRowWithNames | ✔️ | ✔️ | ✔️ | ✔️ |
161
- | JSONCompactEachRowWithNamesAndTypes | ✔️ | ✔️ | ✔️ | ✔️ |
162
- | JSONCompactStringsEachRowWithNames | ✔️ | ✔️ | ✔️ | ✔️ |
163
- | JSONCompactStringsEachRowWithNamesAndTypes | ✔️ | ✔️ | ✔️ | ✔️ |
164
- | CSV | | ✔️ | | ✔️ |
165
- | CSVWithNames | ❌ | ✔️ | ❌ | ✔️ |
166
- | CSVWithNamesAndTypes | ❌ | ✔️ | ❌ | ✔️ |
167
- | TabSeparated | ❌ | ✔️ | ❌ | ✔️ |
168
- | TabSeparatedRaw | ❌ | ✔️ | ❌ | ✔️ |
169
- | TabSeparatedWithNames | ❌ | ✔️ | ❌ | ✔️ |
170
- | TabSeparatedWithNamesAndTypes | ❌ | ✔️ | ❌ | ✔️ |
171
- | CustomSeparated | ❌ | ✔️ | ❌ | ✔️ |
172
- | CustomSeparatedWithNames | ❌ | ✔️ | ❌ | ✔️ |
173
- | CustomSeparatedWithNamesAndTypes | ❌ | ✔️ | ❌ | ✔️ |
153
+ | Format | Input (array) | Input (stream) | Input (object) | Output (JSON) | Output (text) |
154
+ | ------------------------------------------ | ------------- | -------------- | -------------- | ------------- | ------------- |
155
+ | JSON | ❌ | ❌ | ✔️ | ✔️ | ✔️ |
156
+ | JSONObjectEachRow | | ❌ | ✔️ | ✔️ | ✔️ |
157
+ | JSONEachRow | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
158
+ | JSONStringsEachRow | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
159
+ | JSONCompactEachRow | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
160
+ | JSONCompactStringsEachRow | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
161
+ | JSONCompactEachRowWithNames | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
162
+ | JSONCompactEachRowWithNamesAndTypes | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
163
+ | JSONCompactStringsEachRowWithNames | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
164
+ | JSONCompactStringsEachRowWithNamesAndTypes | ✔️ | ✔️ | ❌️ | ✔️ | ✔️ |
165
+ | CSV | ❌ | ✔️ | ❌ | ❌ | ✔️ |
166
+ | CSVWithNames | ❌ | ✔️ | ❌ | ❌ | ✔️ |
167
+ | CSVWithNamesAndTypes | ❌ | ✔️ | ❌ | ❌ | ✔️ |
168
+ | TabSeparated | ❌ | ✔️ | ❌ | ❌ | ✔️ |
169
+ | TabSeparatedRaw | ❌ | ✔️ | ❌ | ❌ | ✔️ |
170
+ | TabSeparatedWithNames | ❌ | ✔️ | ❌ | ❌ | ✔️ |
171
+ | TabSeparatedWithNamesAndTypes | ❌ | ✔️ | ❌ | ❌ | ✔️ |
172
+ | CustomSeparated | ❌ | ✔️ | ❌ | ❌ | ✔️ |
173
+ | CustomSeparatedWithNames | ❌ | ✔️ | ❌ | ❌ | ✔️ |
174
+ | CustomSeparatedWithNamesAndTypes | ❌ | ✔️ | ❌ | ❌ | ✔️ |
174
175
 
175
176
  The entire list of ClickHouse input and output formats is available [here](https://clickhouse.com/docs/en/interfaces/formats).
176
177
 
@@ -1,4 +1,3 @@
1
- export declare type DataType = 'UInt8' | 'UInt16' | 'UInt32' | 'UInt64' | 'UInt128' | 'UInt256' | 'Int8' | 'Int16' | 'Int32' | 'Int64' | 'Int128' | 'Int256' | 'Float32' | 'Float64';
2
1
  export interface ResponseJSON<T = unknown> {
3
2
  data: Array<T>;
4
3
  query_id?: string;
@@ -6,7 +5,7 @@ export interface ResponseJSON<T = unknown> {
6
5
  extremes?: Record<string, any>;
7
6
  meta?: Array<{
8
7
  name: string;
9
- type: DataType;
8
+ type: string;
10
9
  }>;
11
10
  statistics?: {
12
11
  elapsed: number;
@@ -15,3 +14,11 @@ export interface ResponseJSON<T = unknown> {
15
14
  };
16
15
  rows?: number;
17
16
  }
17
+ export interface InputJSON<T = unknown> {
18
+ meta: {
19
+ name: string;
20
+ type: string;
21
+ }[];
22
+ data: T[];
23
+ }
24
+ export declare type InputJSONObjectEachRow<T = unknown> = Record<string, T>;
package/dist/client.d.ts CHANGED
@@ -4,10 +4,11 @@ import { Logger } from './logger';
4
4
  import { type DataFormat } from './data_formatter';
5
5
  import { ResultSet } from './result';
6
6
  import type { ClickHouseSettings } from './settings';
7
+ import type { InputJSON, InputJSONObjectEachRow } from './clickhouse_types';
7
8
  export interface ClickHouseClientConfigOptions {
8
9
  /** A ClickHouse instance URL. Default value: `http://localhost:8123`. */
9
10
  host?: string;
10
- /** The timeout to setup a connection in milliseconds. Default value: `10_000`. */
11
+ /** The timeout to set up a connection in milliseconds. Default value: `10_000`. */
11
12
  connect_timeout?: number;
12
13
  /** The request timeout in milliseconds. Default value: `30_000`. */
13
14
  request_timeout?: number;
@@ -54,11 +55,12 @@ export interface ExecParams extends BaseParams {
54
55
  /** Statement to execute. */
55
56
  query: string;
56
57
  }
58
+ declare type InsertValues<T> = ReadonlyArray<T> | Stream.Readable | InputJSON<T> | InputJSONObjectEachRow<T>;
57
59
  export interface InsertParams<T = unknown> extends BaseParams {
58
60
  /** Name of a table to insert into. */
59
61
  table: string;
60
62
  /** A dataset to insert. */
61
- values: ReadonlyArray<T> | Stream.Readable;
63
+ values: InsertValues<T>;
62
64
  /** Format of the dataset to insert. */
63
65
  format?: DataFormat;
64
66
  }
@@ -74,5 +76,16 @@ export declare class ClickHouseClient {
74
76
  ping(): Promise<boolean>;
75
77
  close(): Promise<void>;
76
78
  }
77
- export declare function validateInsertValues(values: ReadonlyArray<any> | Stream.Readable, format: DataFormat): void;
79
+ export declare function validateInsertValues<T>(values: InsertValues<T>, format: DataFormat): void;
80
+ /**
81
+ * A function encodes an array or a stream of JSON objects to a format compatible with ClickHouse.
82
+ * If values are provided as an array of JSON objects, the function encodes it in place.
83
+ * If values are provided as a stream of JSON objects, the function sets up the encoding of each chunk.
84
+ * If values are provided as a raw non-object stream, the function does nothing.
85
+ *
86
+ * @param values a set of values to send to ClickHouse.
87
+ * @param format a format to encode value to.
88
+ */
89
+ export declare function encodeValues<T>(values: InsertValues<T>, format: DataFormat): string | Stream.Readable;
78
90
  export declare function createClient(config?: ClickHouseClientConfigOptions): ClickHouseClient;
91
+ export {};
package/dist/client.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createClient = exports.validateInsertValues = exports.ClickHouseClient = void 0;
6
+ exports.createClient = exports.encodeValues = exports.validateInsertValues = exports.ClickHouseClient = void 0;
7
7
  const stream_1 = __importDefault(require("stream"));
8
8
  const connection_1 = require("./connection");
9
9
  const logger_1 = require("./logger");
@@ -95,7 +95,7 @@ class ClickHouseClient {
95
95
  return new result_1.ResultSet(stream, format);
96
96
  }
97
97
  exec(params) {
98
- const query = removeSemi(params.query.trim());
98
+ const query = removeTrailingSemi(params.query.trim());
99
99
  return this.connection.exec({
100
100
  query,
101
101
  ...this.getBaseParams(params),
@@ -121,19 +121,28 @@ class ClickHouseClient {
121
121
  exports.ClickHouseClient = ClickHouseClient;
122
122
  function formatQuery(query, format) {
123
123
  query = query.trim();
124
- query = removeSemi(query);
124
+ query = removeTrailingSemi(query);
125
125
  return query + ' \nFORMAT ' + format;
126
126
  }
127
- function removeSemi(query) {
128
- const idx = query.indexOf(';');
129
- if (idx !== -1) {
130
- return query.slice(0, idx);
127
+ function removeTrailingSemi(query) {
128
+ let lastNonSemiIdx = query.length;
129
+ for (let i = lastNonSemiIdx; i > 0; i--) {
130
+ if (query[i - 1] !== ';') {
131
+ lastNonSemiIdx = i;
132
+ break;
133
+ }
134
+ }
135
+ if (lastNonSemiIdx !== query.length) {
136
+ return query.slice(0, lastNonSemiIdx);
131
137
  }
132
138
  return query;
133
139
  }
134
140
  function validateInsertValues(values, format) {
135
- if (Array.isArray(values) === false && (0, utils_1.isStream)(values) === false) {
136
- throw new Error('Insert expected "values" to be an array or a stream of values.');
141
+ if (!Array.isArray(values) &&
142
+ !(0, utils_1.isStream)(values) &&
143
+ typeof values !== 'object') {
144
+ throw new Error('Insert expected "values" to be an array, a stream of values or a JSON object, ' +
145
+ `got: ${typeof values}`);
137
146
  }
138
147
  if ((0, utils_1.isStream)(values)) {
139
148
  if ((0, data_formatter_1.isSupportedRawFormat)(format)) {
@@ -166,8 +175,16 @@ function encodeValues(values, format) {
166
175
  return stream_1.default.pipeline(values, (0, utils_1.mapStream)((value) => (0, data_formatter_1.encodeJSON)(value, format)), pipelineCb);
167
176
  }
168
177
  // JSON* arrays
169
- return values.map((value) => (0, data_formatter_1.encodeJSON)(value, format)).join('');
178
+ if (Array.isArray(values)) {
179
+ return values.map((value) => (0, data_formatter_1.encodeJSON)(value, format)).join('');
180
+ }
181
+ // JSON & JSONObjectEachRow format input
182
+ if (typeof values === 'object') {
183
+ return (0, data_formatter_1.encodeJSON)(values, format);
184
+ }
185
+ throw new Error(`Cannot encode values of type ${typeof values} with ${format} format`);
170
186
  }
187
+ exports.encodeValues = encodeValues;
171
188
  function createClient(config) {
172
189
  return new ClickHouseClient(config);
173
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare const supportedJSONFormats: readonly ["JSON", "JSONEachRow", "JSONStringsEachRow", "JSONCompactEachRow", "JSONCompactStringsEachRow", "JSONCompactEachRowWithNames", "JSONCompactEachRowWithNamesAndTypes", "JSONCompactStringsEachRowWithNames", "JSONCompactStringsEachRowWithNamesAndTypes"];
1
+ declare const supportedJSONFormats: readonly ["JSON", "JSONObjectEachRow", "JSONEachRow", "JSONStringsEachRow", "JSONCompactEachRow", "JSONCompactStringsEachRow", "JSONCompactEachRowWithNames", "JSONCompactEachRowWithNamesAndTypes", "JSONCompactStringsEachRowWithNames", "JSONCompactStringsEachRowWithNamesAndTypes"];
2
2
  declare const supportedRawFormats: readonly ["CSV", "CSVWithNames", "CSVWithNamesAndTypes", "TabSeparated", "TabSeparatedRaw", "TabSeparatedWithNames", "TabSeparatedWithNamesAndTypes", "CustomSeparated", "CustomSeparatedWithNames", "CustomSeparatedWithNamesAndTypes"];
3
3
  export declare type JSONDataFormat = typeof supportedJSONFormats[number];
4
4
  export declare type RawDataFormat = typeof supportedRawFormats[number];
@@ -11,7 +11,11 @@ const streamableJSONFormats = [
11
11
  'JSONCompactStringsEachRowWithNames',
12
12
  'JSONCompactStringsEachRowWithNamesAndTypes',
13
13
  ];
14
- const supportedJSONFormats = ['JSON', ...streamableJSONFormats];
14
+ const supportedJSONFormats = [
15
+ 'JSON',
16
+ 'JSONObjectEachRow',
17
+ ...streamableJSONFormats,
18
+ ];
15
19
  const supportedRawFormats = [
16
20
  'CSV',
17
21
  'CSVWithNames',
@@ -60,7 +64,7 @@ function decode(text, format) {
60
64
  .map((l) => decode(l, 'JSON'));
61
65
  }
62
66
  if (isSupportedRawFormat(format)) {
63
- throw new Error(`cannot decode ${format} to JSON`);
67
+ throw new Error(`Cannot decode ${format} to JSON`);
64
68
  }
65
69
  throw new Error(`The client does not support [${format}] format decoding.`);
66
70
  }
@@ -72,7 +76,7 @@ exports.decode = decode;
72
76
  * @returns string
73
77
  */
74
78
  function encodeJSON(value, format) {
75
- if (streamableJSONFormats.includes(format)) {
79
+ if (supportedJSONFormats.includes(format)) {
76
80
  return JSON.stringify(value) + '\n';
77
81
  }
78
82
  throw new Error(`The client does not support JSON encoding in [${format}] format.`);
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/data_formatter/formatter.ts"],"names":[],"mappings":";;;AAAA,MAAM,qBAAqB,GAAG;IAC5B,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,2BAA2B;IAC3B,6BAA6B;IAC7B,qCAAqC;IACrC,oCAAoC;IACpC,4CAA4C;CACpC,CAAA;AACV,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,GAAG,qBAAqB,CAAU,CAAA;AACxE,MAAM,mBAAmB,GAAG;IAC1B,KAAK;IACL,cAAc;IACd,sBAAsB;IACtB,cAAc;IACd,iBAAiB;IACjB,uBAAuB;IACvB,+BAA+B;IAC/B,iBAAiB;IACjB,0BAA0B;IAC1B,kCAAkC;CAC1B,CAAA;AAQV,0BAA0B;AAC1B,MAAM,gBAAgB,GAAG;IACvB,GAAG,qBAAqB;IACxB,GAAG,mBAAmB;CACd,CAAA;AAGV,SAAS,sBAAsB,CAC7B,MAAkB;IAElB,mEAAmE;IACnE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAsB;IACzD,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AACxE,CAAC;AAFD,oDAEC;AAED,SAAgB,oBAAoB,CAClC,MAAW;IAEX,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,kDAAkD,gBAAgB,CAAC,IAAI,CAC9E,GAAG,CACJ,EAAE,CACJ,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAXD,oDAWC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,MAAkB;IACrD,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;KACxB;IACD,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE;QAClC,OAAO,IAAI;aACR,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;KACjC;IACD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,UAAU,CAAC,CAAA;KACnD;IACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,oBAAoB,CAAC,CAAA;AAC7E,CAAC;AAdD,wBAcC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,KAAU,EAAE,MAAkB;IACvD,IAAK,qBAA2C,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;KACpC;IACD,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,WAAW,CACnE,CAAA;AACH,CAAC;AAPD,gCAOC"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/data_formatter/formatter.ts"],"names":[],"mappings":";;;AAAA,MAAM,qBAAqB,GAAG;IAC5B,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,2BAA2B;IAC3B,6BAA6B;IAC7B,qCAAqC;IACrC,oCAAoC;IACpC,4CAA4C;CACpC,CAAA;AACV,MAAM,oBAAoB,GAAG;IAC3B,MAAM;IACN,mBAAmB;IACnB,GAAG,qBAAqB;CAChB,CAAA;AACV,MAAM,mBAAmB,GAAG;IAC1B,KAAK;IACL,cAAc;IACd,sBAAsB;IACtB,cAAc;IACd,iBAAiB;IACjB,uBAAuB;IACvB,+BAA+B;IAC/B,iBAAiB;IACjB,0BAA0B;IAC1B,kCAAkC;CAC1B,CAAA;AAQV,0BAA0B;AAC1B,MAAM,gBAAgB,GAAG;IACvB,GAAG,qBAAqB;IACxB,GAAG,mBAAmB;CACd,CAAA;AAGV,SAAS,sBAAsB,CAC7B,MAAkB;IAElB,mEAAmE;IACnE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAsB;IACzD,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AACxE,CAAC;AAFD,oDAEC;AAED,SAAgB,oBAAoB,CAClC,MAAW;IAEX,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,kDAAkD,gBAAgB,CAAC,IAAI,CAC9E,GAAG,CACJ,EAAE,CACJ,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAXD,oDAWC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,MAAkB;IACrD,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;KACxB;IACD,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE;QAClC,OAAO,IAAI;aACR,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;KACjC;IACD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,UAAU,CAAC,CAAA;KACnD;IACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,oBAAoB,CAAC,CAAA;AAC7E,CAAC;AAdD,wBAcC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,KAAU,EAAE,MAAkB;IACvD,IAAK,oBAA0C,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;KACpC;IACD,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,WAAW,CACnE,CAAA;AACH,CAAC;AAPD,gCAOC"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,6 @@ export type { Connection } from './connection';
10
10
  export type { DataFormat } from './data_formatter';
11
11
  export type { ClickHouseError } from './error';
12
12
  export type { Logger } from './logger';
13
- export type { ResponseJSON, DataType } from './clickhouse_types';
13
+ export type { ResponseJSON, InputJSON, InputJSONObjectEachRow, } from './clickhouse_types';
14
14
  export type { ClickHouseSettings } from './settings';
15
15
  export { SettingsMap } from './settings';
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;AAWD,mCAAyC;AAA3B,mGAAA,SAAS,OAAA;AAQvB,uCAAwC;AAA/B,uGAAA,WAAW,OAAA"}
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;AAWD,mCAAyC;AAA3B,mGAAA,SAAS,OAAA;AAYvB,uCAAwC;AAA/B,uGAAA,WAAW,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickhouse/client",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "Official JS client for ClickHouse DB",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [