@cubejs-client/core 1.3.52 → 1.3.53
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/cubejs-client-core.cjs.js +624 -50
- package/dist/cubejs-client-core.cjs.js.map +1 -1
- package/dist/cubejs-client-core.umd.js +579 -38
- package/dist/cubejs-client-core.umd.js.map +1 -1
- package/dist/src/HttpTransport.d.ts +15 -2
- package/dist/src/HttpTransport.d.ts.map +1 -1
- package/dist/src/HttpTransport.js +88 -12
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +140 -1
- package/dist/src/streaming.d.ts +2 -0
- package/dist/src/streaming.d.ts.map +1 -0
- package/dist/src/streaming.js +34 -0
- package/package.json +3 -3
|
@@ -30,8 +30,20 @@ export interface ITransportResponse<R> {
|
|
|
30
30
|
subscribe: <CBResult>(cb: (result: R | ErrorResponse, resubscribe: () => Promise<CBResult>) => CBResult) => Promise<CBResult>;
|
|
31
31
|
unsubscribe?: () => Promise<void>;
|
|
32
32
|
}
|
|
33
|
+
export interface ITransportStreamResponse {
|
|
34
|
+
stream(): Promise<AsyncIterable<Uint8Array>>;
|
|
35
|
+
unsubscribe?: () => Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export interface ITransportStreamParams<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
38
|
+
method?: 'GET' | 'POST' | 'PUT' | 'PATCH';
|
|
39
|
+
fetchTimeout?: number;
|
|
40
|
+
baseRequestId?: string;
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
params?: T;
|
|
43
|
+
}
|
|
33
44
|
export interface ITransport<R> {
|
|
34
45
|
request(method: string, params: Record<string, unknown>): ITransportResponse<R>;
|
|
46
|
+
requestStream?<T extends Record<string, unknown> = Record<string, unknown>>(method: string, params: ITransportStreamParams<T>): ITransportStreamResponse;
|
|
35
47
|
authorization: TransportOptions['authorization'];
|
|
36
48
|
}
|
|
37
49
|
/**
|
|
@@ -45,10 +57,11 @@ export declare class HttpTransport implements ITransport<Response> {
|
|
|
45
57
|
protected credentials: TransportOptions['credentials'];
|
|
46
58
|
protected fetchTimeout: number | undefined;
|
|
47
59
|
private readonly signal;
|
|
48
|
-
constructor({ authorization, apiUrl, method, headers, credentials, fetchTimeout, signal }: Omit<TransportOptions, 'headers'> & {
|
|
60
|
+
constructor({ authorization, apiUrl, method, headers, credentials, fetchTimeout, signal, }: Omit<TransportOptions, 'headers'> & {
|
|
49
61
|
headers?: TransportOptions['headers'];
|
|
50
62
|
});
|
|
51
|
-
request(
|
|
63
|
+
request(apiMethod: string, { method, fetchTimeout, baseRequestId, signal, ...params }: any): ITransportResponse<Response>;
|
|
64
|
+
requestStream<T extends Record<string, unknown> = Record<string, unknown>>(apiMethod: string, { method, fetchTimeout, baseRequestId, signal, params }: ITransportStreamParams<T>): ITransportStreamResponse;
|
|
52
65
|
}
|
|
53
66
|
export default HttpTransport;
|
|
54
67
|
//# sourceMappingURL=HttpTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../src/HttpTransport.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../src/HttpTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import fetch from 'cross-fetch';
|
|
2
2
|
import 'url-search-params-polyfill';
|
|
3
|
+
import { responseChunks } from './streaming';
|
|
3
4
|
/**
|
|
4
5
|
* Default transport implementation.
|
|
5
6
|
*/
|
|
6
7
|
export class HttpTransport {
|
|
7
|
-
constructor({ authorization, apiUrl, method, headers = {}, credentials, fetchTimeout, signal }) {
|
|
8
|
+
constructor({ authorization, apiUrl, method, headers = {}, credentials, fetchTimeout, signal, }) {
|
|
8
9
|
this.authorization = authorization;
|
|
9
10
|
this.apiUrl = apiUrl;
|
|
10
11
|
this.method = method;
|
|
@@ -13,17 +14,28 @@ export class HttpTransport {
|
|
|
13
14
|
this.fetchTimeout = fetchTimeout;
|
|
14
15
|
this.signal = signal;
|
|
15
16
|
}
|
|
16
|
-
request(
|
|
17
|
+
request(apiMethod, { method, fetchTimeout, baseRequestId, signal, ...params }) {
|
|
17
18
|
let spanCounter = 1;
|
|
18
|
-
const searchParams = new URLSearchParams(params &&
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
const searchParams = new URLSearchParams(params &&
|
|
20
|
+
Object.keys(params)
|
|
21
|
+
.map((k) => ({
|
|
22
|
+
[k]: typeof params[k] === 'object'
|
|
23
|
+
? JSON.stringify(params[k])
|
|
24
|
+
: params[k],
|
|
25
|
+
}))
|
|
26
|
+
.reduce((a, b) => ({ ...a, ...b }), {}));
|
|
27
|
+
let url = `${this.apiUrl}/${apiMethod}${searchParams.toString().length ? `?${searchParams}` : ''}`;
|
|
28
|
+
const requestMethod = method ?? this.method ?? (url.length < 2000 ? 'GET' : 'POST');
|
|
23
29
|
if (requestMethod === 'POST') {
|
|
24
|
-
url = `${this.apiUrl}/${
|
|
30
|
+
url = `${this.apiUrl}/${apiMethod}`;
|
|
25
31
|
this.headers['Content-Type'] = 'application/json';
|
|
26
32
|
}
|
|
33
|
+
const effectiveFetchTimeout = fetchTimeout ?? this.fetchTimeout;
|
|
34
|
+
const actualSignal = signal ||
|
|
35
|
+
this.signal ||
|
|
36
|
+
(effectiveFetchTimeout
|
|
37
|
+
? AbortSignal.timeout(effectiveFetchTimeout)
|
|
38
|
+
: undefined);
|
|
27
39
|
// Currently, all methods make GET requests. If a method makes a request with a body payload,
|
|
28
40
|
// remember to add {'Content-Type': 'application/json'} to the header.
|
|
29
41
|
const runRequest = () => fetch(url, {
|
|
@@ -31,11 +43,11 @@ export class HttpTransport {
|
|
|
31
43
|
headers: {
|
|
32
44
|
Authorization: this.authorization,
|
|
33
45
|
'x-request-id': baseRequestId && `${baseRequestId}-span-${spanCounter++}`,
|
|
34
|
-
...this.headers
|
|
46
|
+
...this.headers,
|
|
35
47
|
},
|
|
36
48
|
credentials: this.credentials,
|
|
37
49
|
body: requestMethod === 'POST' ? JSON.stringify(params) : null,
|
|
38
|
-
signal:
|
|
50
|
+
signal: actualSignal,
|
|
39
51
|
});
|
|
40
52
|
return {
|
|
41
53
|
/* eslint no-unsafe-finally: off */
|
|
@@ -45,10 +57,74 @@ export class HttpTransport {
|
|
|
45
57
|
return callback(result, () => this.subscribe(callback));
|
|
46
58
|
}
|
|
47
59
|
catch (e) {
|
|
48
|
-
|
|
60
|
+
let errorMessage = 'network Error';
|
|
61
|
+
if (e.name === 'AbortError') {
|
|
62
|
+
if (actualSignal?.reason === 'TimeoutError' ||
|
|
63
|
+
actualSignal?.reason?.name === 'TimeoutError') {
|
|
64
|
+
errorMessage = 'timeout';
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
errorMessage = 'aborted';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const result = { error: errorMessage };
|
|
49
71
|
return callback(result, () => this.subscribe(callback));
|
|
50
72
|
}
|
|
51
|
-
}
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
requestStream(apiMethod, { method, fetchTimeout, baseRequestId, signal, params }) {
|
|
77
|
+
const processedParams = {};
|
|
78
|
+
// Handle the generic params object
|
|
79
|
+
if (params) {
|
|
80
|
+
Object.keys(params).forEach((k) => {
|
|
81
|
+
const value = params[k];
|
|
82
|
+
if (value !== undefined) {
|
|
83
|
+
processedParams[k] = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const searchParams = new URLSearchParams(processedParams);
|
|
88
|
+
let url = `${this.apiUrl}/${apiMethod}${searchParams.toString().length ? `?${searchParams}` : ''}`;
|
|
89
|
+
const requestMethod = method ?? this.method ?? 'POST';
|
|
90
|
+
if (requestMethod === 'POST') {
|
|
91
|
+
url = `${this.apiUrl}/${apiMethod}`;
|
|
92
|
+
this.headers['Content-Type'] = 'application/json';
|
|
93
|
+
}
|
|
94
|
+
const effectiveFetchTimeout = fetchTimeout ?? this.fetchTimeout;
|
|
95
|
+
let controller;
|
|
96
|
+
let actualSignal = signal || this.signal;
|
|
97
|
+
if (!actualSignal && effectiveFetchTimeout) {
|
|
98
|
+
controller = new AbortController();
|
|
99
|
+
actualSignal = controller.signal;
|
|
100
|
+
setTimeout(() => controller?.abort(), effectiveFetchTimeout);
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
stream: async () => {
|
|
104
|
+
const response = await fetch(url, {
|
|
105
|
+
method: requestMethod,
|
|
106
|
+
headers: {
|
|
107
|
+
Authorization: this.authorization,
|
|
108
|
+
'x-request-id': baseRequestId || 'stream-request',
|
|
109
|
+
...this.headers,
|
|
110
|
+
},
|
|
111
|
+
credentials: this.credentials,
|
|
112
|
+
body: requestMethod === 'POST' ? JSON.stringify(params || {}) : null,
|
|
113
|
+
signal: actualSignal,
|
|
114
|
+
});
|
|
115
|
+
if (!response.ok) {
|
|
116
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
117
|
+
}
|
|
118
|
+
if (!response.body) {
|
|
119
|
+
throw new Error('No response body available for streaming');
|
|
120
|
+
}
|
|
121
|
+
return responseChunks(response);
|
|
122
|
+
},
|
|
123
|
+
unsubscribe: async () => {
|
|
124
|
+
if (controller) {
|
|
125
|
+
controller.abort();
|
|
126
|
+
}
|
|
127
|
+
},
|
|
52
128
|
};
|
|
53
129
|
}
|
|
54
130
|
}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -80,6 +80,30 @@ export type DryRunResponse = {
|
|
|
80
80
|
}>;
|
|
81
81
|
transformedQueries: TransformedQuery[];
|
|
82
82
|
};
|
|
83
|
+
export type CubeSqlOptions = LoadMethodOptions & {
|
|
84
|
+
/**
|
|
85
|
+
* Query timeout in milliseconds
|
|
86
|
+
*/
|
|
87
|
+
timeout?: number;
|
|
88
|
+
};
|
|
89
|
+
export type CubeSqlSchemaColumn = {
|
|
90
|
+
name: string;
|
|
91
|
+
columnType: string;
|
|
92
|
+
};
|
|
93
|
+
export type CubeSqlResult = {
|
|
94
|
+
schema: CubeSqlSchemaColumn[];
|
|
95
|
+
data: (string | number | boolean | null)[][];
|
|
96
|
+
};
|
|
97
|
+
export type CubeSqlStreamChunk = {
|
|
98
|
+
type: 'schema';
|
|
99
|
+
schema: CubeSqlSchemaColumn[];
|
|
100
|
+
} | {
|
|
101
|
+
type: 'data';
|
|
102
|
+
data: (string | number | boolean | null)[];
|
|
103
|
+
} | {
|
|
104
|
+
type: 'error';
|
|
105
|
+
error: string;
|
|
106
|
+
};
|
|
83
107
|
export type ResponseFormat = 'compact' | 'default' | undefined;
|
|
84
108
|
export type CubeApiOptions = {
|
|
85
109
|
/**
|
|
@@ -178,6 +202,13 @@ declare class CubeApi {
|
|
|
178
202
|
meta(options?: LoadMethodOptions, callback?: LoadMethodCallback<Meta>): UnsubscribeObj;
|
|
179
203
|
dryRun(query: DeeplyReadonly<Query | Query[]>, options?: LoadMethodOptions): Promise<DryRunResponse>;
|
|
180
204
|
dryRun(query: DeeplyReadonly<Query | Query[]>, options: LoadMethodOptions, callback?: LoadMethodCallback<DryRunResponse>): UnsubscribeObj;
|
|
205
|
+
cubeSql(sqlQuery: string, options?: CubeSqlOptions): Promise<CubeSqlResult>;
|
|
206
|
+
cubeSql(sqlQuery: string, options?: CubeSqlOptions, callback?: LoadMethodCallback<CubeSqlResult>): UnsubscribeObj;
|
|
207
|
+
/**
|
|
208
|
+
* Execute a Cube SQL query against Cube SQL interface and return streaming results as an async generator.
|
|
209
|
+
* The server returns JSONL (JSON Lines) format with schema first, then data rows.
|
|
210
|
+
*/
|
|
211
|
+
cubeSqlStream(sqlQuery: string, options?: CubeSqlOptions): AsyncGenerator<CubeSqlStreamChunk>;
|
|
181
212
|
}
|
|
182
213
|
declare const _default: (apiToken: string | (() => Promise<string>), options: CubeApiOptions) => CubeApi;
|
|
183
214
|
export default _default;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -160,7 +160,7 @@ class CubeApi {
|
|
|
160
160
|
if (!options?.subscribe && requestInstance.unsubscribe) {
|
|
161
161
|
await requestInstance.unsubscribe();
|
|
162
162
|
}
|
|
163
|
-
const error = new RequestError(body.error || '', body, response.status);
|
|
163
|
+
const error = new RequestError(body.error || response.error || '', body, response.status);
|
|
164
164
|
if (callback) {
|
|
165
165
|
callback(error);
|
|
166
166
|
}
|
|
@@ -397,6 +397,145 @@ class CubeApi {
|
|
|
397
397
|
signal: options?.signal
|
|
398
398
|
}), (response) => response, options, callback);
|
|
399
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Execute a Cube SQL query against Cube SQL interface and return the results.
|
|
402
|
+
*/
|
|
403
|
+
cubeSql(sqlQuery, options, callback) {
|
|
404
|
+
return this.loadMethod(() => {
|
|
405
|
+
const request = this.request('cubesql', {
|
|
406
|
+
query: sqlQuery,
|
|
407
|
+
method: 'POST',
|
|
408
|
+
signal: options?.signal,
|
|
409
|
+
fetchTimeout: options?.timeout
|
|
410
|
+
});
|
|
411
|
+
return request;
|
|
412
|
+
}, (response) => {
|
|
413
|
+
// TODO: The response is sending both errors and successful results as `error`
|
|
414
|
+
if (!response || !response.error) {
|
|
415
|
+
throw new Error('Invalid response format');
|
|
416
|
+
}
|
|
417
|
+
// Check if this is a timeout or abort error from transport
|
|
418
|
+
if (response.error === 'timeout') {
|
|
419
|
+
const timeoutMs = options?.timeout || 5 * 60 * 1000;
|
|
420
|
+
throw new Error(`CubeSQL query timed out after ${timeoutMs}ms`);
|
|
421
|
+
}
|
|
422
|
+
if (response.error === 'aborted') {
|
|
423
|
+
throw new Error('CubeSQL query was aborted');
|
|
424
|
+
}
|
|
425
|
+
const [schema, ...data] = response.error.split('\n');
|
|
426
|
+
try {
|
|
427
|
+
return {
|
|
428
|
+
schema: JSON.parse(schema).schema,
|
|
429
|
+
data: data
|
|
430
|
+
.filter((d) => d.trim().length)
|
|
431
|
+
.map((d) => JSON.parse(d).data)
|
|
432
|
+
.reduce((a, b) => a.concat(b), []),
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
catch (err) {
|
|
436
|
+
throw new Error(response.error);
|
|
437
|
+
}
|
|
438
|
+
}, options, callback);
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Execute a Cube SQL query against Cube SQL interface and return streaming results as an async generator.
|
|
442
|
+
* The server returns JSONL (JSON Lines) format with schema first, then data rows.
|
|
443
|
+
*/
|
|
444
|
+
async *cubeSqlStream(sqlQuery, options) {
|
|
445
|
+
if (!this.transport.requestStream) {
|
|
446
|
+
throw new Error('Transport does not support streaming');
|
|
447
|
+
}
|
|
448
|
+
const streamResponse = this.transport.requestStream('cubesql', {
|
|
449
|
+
method: 'POST',
|
|
450
|
+
signal: options?.signal,
|
|
451
|
+
fetchTimeout: options?.timeout,
|
|
452
|
+
baseRequestId: uuidv4(),
|
|
453
|
+
params: {
|
|
454
|
+
query: sqlQuery
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
const decoder = new TextDecoder();
|
|
458
|
+
let buffer = '';
|
|
459
|
+
try {
|
|
460
|
+
const stream = await streamResponse.stream();
|
|
461
|
+
for await (const chunk of stream) {
|
|
462
|
+
buffer += decoder.decode(chunk, { stream: true });
|
|
463
|
+
const lines = buffer.split('\n');
|
|
464
|
+
buffer = lines.pop() || '';
|
|
465
|
+
for (const line of lines) {
|
|
466
|
+
if (line.trim()) {
|
|
467
|
+
try {
|
|
468
|
+
const parsed = JSON.parse(line);
|
|
469
|
+
if (parsed.schema) {
|
|
470
|
+
yield {
|
|
471
|
+
type: 'schema',
|
|
472
|
+
schema: parsed.schema
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
else if (parsed.data) {
|
|
476
|
+
yield {
|
|
477
|
+
type: 'data',
|
|
478
|
+
data: parsed.data
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
else if (parsed.error) {
|
|
482
|
+
yield {
|
|
483
|
+
type: 'error',
|
|
484
|
+
error: parsed.error
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
catch (parseError) {
|
|
489
|
+
yield {
|
|
490
|
+
type: 'error',
|
|
491
|
+
error: `Failed to parse JSON line: ${line}`
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
if (buffer.trim()) {
|
|
498
|
+
try {
|
|
499
|
+
const parsed = JSON.parse(buffer);
|
|
500
|
+
if (parsed.schema) {
|
|
501
|
+
yield {
|
|
502
|
+
type: 'schema',
|
|
503
|
+
schema: parsed.schema
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
else if (parsed.data) {
|
|
507
|
+
yield {
|
|
508
|
+
type: 'data',
|
|
509
|
+
data: parsed.data
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
else if (parsed.error) {
|
|
513
|
+
yield {
|
|
514
|
+
type: 'error',
|
|
515
|
+
error: parsed.error
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
catch (parseError) {
|
|
520
|
+
yield {
|
|
521
|
+
type: 'error',
|
|
522
|
+
error: `Failed to parse remaining JSON: ${buffer}`
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
catch (error) {
|
|
528
|
+
if (error.name === 'AbortError') {
|
|
529
|
+
throw new Error('aborted');
|
|
530
|
+
}
|
|
531
|
+
throw error;
|
|
532
|
+
}
|
|
533
|
+
finally {
|
|
534
|
+
if (streamResponse.unsubscribe) {
|
|
535
|
+
await streamResponse.unsubscribe();
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
400
539
|
}
|
|
401
540
|
export default (apiToken, options) => new CubeApi(apiToken, options);
|
|
402
541
|
export { CubeApi };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"AAAA,wBAAuB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAgC9E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export async function* responseChunks(res) {
|
|
2
|
+
// eslint-disable-next-line prefer-destructuring
|
|
3
|
+
const body = res.body;
|
|
4
|
+
if (body && typeof body.getReader === 'function') {
|
|
5
|
+
const reader = body.getReader(); // Browser / Node native fetch
|
|
6
|
+
try {
|
|
7
|
+
while (true) {
|
|
8
|
+
const { done, value } = await reader.read();
|
|
9
|
+
if (done)
|
|
10
|
+
break;
|
|
11
|
+
if (value)
|
|
12
|
+
yield value; // Uint8Array
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
reader.releaseLock?.();
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// Node.js Readable (node-fetch v2 via cross-fetch)
|
|
21
|
+
if (body && Symbol.asyncIterator in body) {
|
|
22
|
+
for await (const chunk of body) {
|
|
23
|
+
if (typeof chunk === 'string') {
|
|
24
|
+
// Convert string chunks to bytes (rare, but safe)
|
|
25
|
+
yield new TextEncoder().encode(chunk);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
yield new Uint8Array(chunk);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
throw new Error('Unsupported response body type for streaming');
|
|
34
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-client/core",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.53",
|
|
4
4
|
"engines": {},
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
],
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@cubejs-backend/linter": "1.3.
|
|
41
|
+
"@cubejs-backend/linter": "1.3.53",
|
|
42
42
|
"@types/jest": "^29",
|
|
43
43
|
"@types/moment-range": "^4.0.0",
|
|
44
44
|
"@types/ramda": "^0.27.34",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"eslintConfig": {
|
|
51
51
|
"extends": "../cubejs-linter"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "90c583872936a1526637a8a9d54cc88d2cc5ab10"
|
|
54
54
|
}
|