@clickhouse/client-web 1.12.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.js CHANGED
@@ -10,6 +10,6 @@ exports.WebImpl = {
10
10
  fetch: config.fetch,
11
11
  }),
12
12
  make_result_set: ((stream, format, query_id, _log_error, response_headers) => new result_set_1.ResultSet(stream, format, query_id, response_headers)),
13
- values_encoder: new utils_1.WebValuesEncoder(),
13
+ values_encoder: (jsonHandling) => new utils_1.WebValuesEncoder(jsonHandling),
14
14
  };
15
15
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../packages/client-web/src/config.ts"],"names":[],"mappings":";;;AAOA,6CAA4C;AAC5C,6CAAwC;AACxC,mCAA0C;AAS7B,QAAA,OAAO,GAAkD;IACpE,eAAe,EAAE,CACf,MAAwC,EACxC,MAAwB,EACxB,EAAE,CACF,IAAI,0BAAa,CAAC;QAChB,GAAG,MAAM;QACT,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IACJ,eAAe,EAAE,CAAC,CAChB,MAAsB,EACtB,MAAkB,EAClB,QAAgB,EAChB,UAAgC,EAChC,gBAAiC,EACjC,EAAE,CAAC,IAAI,sBAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAQ;IACtE,cAAc,EAAE,IAAI,wBAAgB,EAAE;CACvC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../packages/client-web/src/config.ts"],"names":[],"mappings":";;;AAQA,6CAA4C;AAC5C,6CAAwC;AACxC,mCAA0C;AAS7B,QAAA,OAAO,GAAkD;IACpE,eAAe,EAAE,CACf,MAAwC,EACxC,MAAwB,EACxB,EAAE,CACF,IAAI,0BAAa,CAAC;QAChB,GAAG,MAAM;QACT,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IACJ,eAAe,EAAE,CAAC,CAChB,MAAsB,EACtB,MAAkB,EAClB,QAAgB,EAChB,UAAgC,EAChC,gBAAiC,EACjC,EAAE,CAAC,IAAI,sBAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAQ;IACtE,cAAc,EAAE,CAAC,YAA0B,EAAE,EAAE,CAC7C,IAAI,wBAAgB,CAAC,YAAY,CAAC;CACrC,CAAA"}
@@ -1,11 +1,13 @@
1
- import type { BaseResultSet, DataFormat, ResponseHeaders, ResultJSONType, ResultStream, Row } from '@clickhouse/client-common';
1
+ import type { BaseResultSet, DataFormat, JSONHandling, ResponseHeaders, ResultJSONType, ResultStream, Row } from '@clickhouse/client-common';
2
2
  export declare class ResultSet<Format extends DataFormat | unknown> implements BaseResultSet<ReadableStream<Row[]>, Format> {
3
3
  private _stream;
4
4
  private readonly format;
5
5
  readonly query_id: string;
6
6
  readonly response_headers: ResponseHeaders;
7
+ private readonly exceptionTag;
7
8
  private isAlreadyConsumed;
8
- constructor(_stream: ReadableStream, format: Format, query_id: string, _response_headers?: ResponseHeaders);
9
+ private readonly jsonHandling;
10
+ constructor(_stream: ReadableStream, format: Format, query_id: string, _response_headers?: ResponseHeaders, jsonHandling?: JSONHandling);
9
11
  /** See {@link BaseResultSet.text} */
10
12
  text(): Promise<string>;
11
13
  /** See {@link BaseResultSet.json} */
@@ -2,10 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResultSet = void 0;
4
4
  const client_common_1 = require("@clickhouse/client-common");
5
+ const client_common_2 = require("@clickhouse/client-common");
5
6
  const utils_1 = require("./utils");
6
7
  const NEWLINE = 0x0a;
7
8
  class ResultSet {
8
- constructor(_stream, format, query_id, _response_headers) {
9
+ constructor(_stream, format, query_id, _response_headers, jsonHandling = {
10
+ parse: JSON.parse,
11
+ stringify: JSON.stringify,
12
+ }) {
9
13
  Object.defineProperty(this, "_stream", {
10
14
  enumerable: true,
11
15
  configurable: true,
@@ -30,14 +34,28 @@ class ResultSet {
30
34
  writable: true,
31
35
  value: void 0
32
36
  });
37
+ Object.defineProperty(this, "exceptionTag", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: undefined
42
+ });
33
43
  Object.defineProperty(this, "isAlreadyConsumed", {
34
44
  enumerable: true,
35
45
  configurable: true,
36
46
  writable: true,
37
47
  value: false
38
48
  });
49
+ Object.defineProperty(this, "jsonHandling", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: void 0
54
+ });
39
55
  this.response_headers =
40
56
  _response_headers !== undefined ? Object.freeze(_response_headers) : {};
57
+ this.exceptionTag = this.response_headers['x-clickhouse-exception-tag'];
58
+ this.jsonHandling = jsonHandling;
41
59
  }
42
60
  /** See {@link BaseResultSet.text} */
43
61
  async text() {
@@ -47,10 +65,9 @@ class ResultSet {
47
65
  /** See {@link BaseResultSet.json} */
48
66
  async json() {
49
67
  // JSONEachRow, etc.
50
- if ((0, client_common_1.isStreamableJSONFamily)(this.format)) {
68
+ if ((0, client_common_2.isStreamableJSONFamily)(this.format)) {
51
69
  const result = [];
52
70
  const reader = this.stream().getReader();
53
- // eslint-disable-next-line no-constant-condition
54
71
  while (true) {
55
72
  const { done, value } = await reader.read();
56
73
  if (done) {
@@ -63,9 +80,9 @@ class ResultSet {
63
80
  return result;
64
81
  }
65
82
  // JSON, JSONObjectEachRow, etc.
66
- if ((0, client_common_1.isNotStreamableJSONFamily)(this.format)) {
83
+ if ((0, client_common_2.isNotStreamableJSONFamily)(this.format)) {
67
84
  const text = await (0, utils_1.getAsText)(this._stream);
68
- return JSON.parse(text);
85
+ return this.jsonHandling.parse(text);
69
86
  }
70
87
  // should not be called for CSV, etc.
71
88
  throw new Error(`Cannot decode ${this.format} as JSON`);
@@ -73,9 +90,11 @@ class ResultSet {
73
90
  /** See {@link BaseResultSet.stream} */
74
91
  stream() {
75
92
  this.markAsConsumed();
76
- (0, client_common_1.validateStreamFormat)(this.format);
93
+ (0, client_common_2.validateStreamFormat)(this.format);
77
94
  let incompleteChunks = [];
78
95
  let totalIncompleteLength = 0;
96
+ const exceptionTag = this.exceptionTag;
97
+ const jsonHandling = this.jsonHandling;
79
98
  const decoder = new TextDecoder('utf-8');
80
99
  const transform = new TransformStream({
81
100
  start() {
@@ -89,24 +108,18 @@ class ResultSet {
89
108
  let idx;
90
109
  let lastIdx = 0;
91
110
  do {
92
- // an unescaped newline character denotes the end of a row
111
+ // an unescaped newline character denotes the end of a row,
112
+ // or at least the beginning of the exception marker
93
113
  idx = chunk.indexOf(NEWLINE, lastIdx);
94
- // there is no complete row in the rest of the current chunk
95
- if (idx === -1) {
96
- // to be processed during the next transform iteration
97
- const incompleteChunk = chunk.slice(lastIdx);
98
- incompleteChunks.push(incompleteChunk);
99
- totalIncompleteLength += incompleteChunk.length;
100
- // send the extracted rows to the consumer, if any
101
- if (rows.length > 0) {
102
- controller.enqueue(rows);
114
+ if (idx !== -1) {
115
+ let bytesToDecode;
116
+ const maybeErr = (0, client_common_1.checkErrorInChunkAtIndex)(chunk, idx, exceptionTag);
117
+ if (maybeErr) {
118
+ controller.error(maybeErr);
103
119
  }
104
- }
105
- else {
106
- let text;
120
+ // using the incomplete chunks from the previous iterations
107
121
  if (incompleteChunks.length > 0) {
108
122
  const completeRowBytes = new Uint8Array(totalIncompleteLength + idx);
109
- // using the incomplete chunks from the previous iterations
110
123
  let offset = 0;
111
124
  incompleteChunks.forEach((incompleteChunk) => {
112
125
  completeRowBytes.set(incompleteChunk, offset);
@@ -118,19 +131,31 @@ class ResultSet {
118
131
  // reset the incomplete chunks
119
132
  incompleteChunks = [];
120
133
  totalIncompleteLength = 0;
121
- text = decoder.decode(completeRowBytes);
134
+ bytesToDecode = completeRowBytes;
122
135
  }
123
136
  else {
124
- text = decoder.decode(chunk.slice(lastIdx, idx));
137
+ bytesToDecode = chunk.slice(lastIdx, idx);
125
138
  }
139
+ const text = decoder.decode(bytesToDecode);
126
140
  rows.push({
127
141
  text,
128
142
  json() {
129
- return JSON.parse(text);
143
+ return jsonHandling.parse(text);
130
144
  },
131
145
  });
132
146
  lastIdx = idx + 1; // skipping newline character
133
147
  }
148
+ else {
149
+ // there is no complete row in the rest of the current chunk
150
+ // to be processed during the next transform iteration
151
+ const incompleteChunk = chunk.slice(lastIdx);
152
+ incompleteChunks.push(incompleteChunk);
153
+ totalIncompleteLength += incompleteChunk.length;
154
+ // send the extracted rows to the consumer, if any
155
+ if (rows.length > 0) {
156
+ controller.enqueue(rows);
157
+ }
158
+ }
134
159
  } while (idx !== -1);
135
160
  },
136
161
  });
@@ -1 +1 @@
1
- {"version":3,"file":"result_set.js","sourceRoot":"","sources":["../../../packages/client-web/src/result_set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result_set.js","sourceRoot":"","sources":["../../../packages/client-web/src/result_set.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import type { DataFormat, InsertValues, ValuesEncoder } from '@clickhouse/client-common';
2
+ import { type JSONHandling } from '@clickhouse/client-common';
2
3
  export declare class WebValuesEncoder implements ValuesEncoder<ReadableStream> {
4
+ private readonly json;
5
+ constructor(jsonHandling?: JSONHandling);
3
6
  encodeValues<T = unknown>(values: InsertValues<T>, format: DataFormat): string | ReadableStream;
4
7
  validateInsertValues<T = unknown>(values: InsertValues<T>): void;
5
8
  }
@@ -4,15 +4,29 @@ exports.WebValuesEncoder = void 0;
4
4
  const client_common_1 = require("@clickhouse/client-common");
5
5
  const stream_1 = require("./stream");
6
6
  class WebValuesEncoder {
7
+ constructor(jsonHandling = {
8
+ parse: JSON.parse,
9
+ stringify: JSON.stringify,
10
+ }) {
11
+ Object.defineProperty(this, "json", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ this.json = jsonHandling;
18
+ }
7
19
  encodeValues(values, format) {
8
20
  throwIfStream(values);
9
21
  // JSON* arrays
10
22
  if (Array.isArray(values)) {
11
- return values.map((value) => (0, client_common_1.encodeJSON)(value, format)).join('');
23
+ return values
24
+ .map((value) => (0, client_common_1.encodeJSON)(value, format, this.json.stringify))
25
+ .join('');
12
26
  }
13
27
  // JSON & JSONObjectEachRow format input
14
28
  if (typeof values === 'object') {
15
- return (0, client_common_1.encodeJSON)(values, format);
29
+ return (0, client_common_1.encodeJSON)(values, format, this.json.stringify);
16
30
  }
17
31
  throw new Error(`Cannot encode values of type ${typeof values} with ${format} format`);
18
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../../packages/client-web/src/utils/encoder.ts"],"names":[],"mappings":";;;AAKA,6DAAsD;AACtD,qCAAmC;AAEnC,MAAa,gBAAgB;IAC3B,YAAY,CACV,MAAuB,EACvB,MAAkB;QAElB,aAAa,CAAC,MAAM,CAAC,CAAA;QACrB,eAAe;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClE,CAAC;QACD,wCAAwC;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAA,0BAAU,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,MAAM,SAAS,MAAM,SAAS,CACtE,CAAA;IACH,CAAC;IAED,oBAAoB,CAAc,MAAuB;QACvD,aAAa,CAAC,MAAM,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,4DAA4D;gBAC1D,QAAQ,OAAO,MAAM,EAAE,CAC1B,CAAA;QACH,CAAC;IACH,CAAC;CACF;AA5BD,4CA4BC;AAED,SAAS,aAAa,CAAC,MAAe;IACpC,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../../packages/client-web/src/utils/encoder.ts"],"names":[],"mappings":";;;AAKA,6DAAyE;AACzE,qCAAmC;AAEnC,MAAa,gBAAgB;IAG3B,YACE,eAA6B;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B;QANc;;;;;WAAkB;QAQjC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;IAED,YAAY,CACV,MAAuB,EACvB,MAAkB;QAElB,aAAa,CAAC,MAAM,CAAC,CAAA;QACrB,eAAe;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM;iBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC9D,IAAI,CAAC,EAAE,CAAC,CAAA;QACb,CAAC;QACD,wCAAwC;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAA,0BAAU,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,MAAM,SAAS,MAAM,SAAS,CACtE,CAAA;IACH,CAAC;IAED,oBAAoB,CAAc,MAAuB;QACvD,aAAa,CAAC,MAAM,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,4DAA4D;gBAC1D,QAAQ,OAAO,MAAM,EAAE,CAC1B,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAzCD,4CAyCC;AAED,SAAS,aAAa,CAAC,MAAe;IACpC,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAA;IACH,CAAC;AACH,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "1.12.1";
1
+ declare const _default: "1.14.0";
2
2
  export default _default;
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '1.12.1';
3
+ exports.default = '1.14.0';
4
4
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@clickhouse/client-web",
3
3
  "description": "Official JS client for ClickHouse DB - Web API implementation",
4
4
  "homepage": "https://clickhouse.com",
5
- "version": "1.12.1",
5
+ "version": "1.14.0",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
8
8
  "clickhouse",
@@ -20,6 +20,6 @@
20
20
  "dist"
21
21
  ],
22
22
  "dependencies": {
23
- "@clickhouse/client-common": "1.12.1"
23
+ "@clickhouse/client-common": "1.14.0"
24
24
  }
25
25
  }