@cubejs-client/core 1.3.51 → 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.
@@ -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(method: string, { baseRequestId, signal, ...params }: any): ITransportResponse<Response>;
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;AAEpC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9H,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAChF,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,UAAU,CAAC,QAAQ,CAAC;IACjD,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAExD,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE7C,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE7C,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE/C,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEvD,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAE9B,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;KAAE;IAU7K,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;CA2CxG;AAED,eAAe,aAAa,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(method, { baseRequestId, signal, ...params }) {
17
+ request(apiMethod, { method, fetchTimeout, baseRequestId, signal, ...params }) {
17
18
  let spanCounter = 1;
18
- const searchParams = new URLSearchParams(params && Object.keys(params)
19
- .map(k => ({ [k]: typeof params[k] === 'object' ? JSON.stringify(params[k]) : params[k] }))
20
- .reduce((a, b) => ({ ...a, ...b }), {}));
21
- let url = `${this.apiUrl}/${method}${searchParams.toString().length ? `?${searchParams}` : ''}`;
22
- const requestMethod = this.method || (url.length < 2000 ? 'GET' : 'POST');
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}/${method}`;
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: signal || this.signal || (this.fetchTimeout ? AbortSignal.timeout(this.fetchTimeout) : undefined),
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
- const result = { error: 'network Error' };
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
  }
@@ -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;
@@ -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,2 @@
1
+ export declare function responseChunks(res: Response): AsyncIterable<Uint8Array>;
2
+ //# sourceMappingURL=streaming.d.ts.map
@@ -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.51",
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.51",
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": "26e477bc8c430d29e727dec0d084e9f28b9c2a59"
53
+ "gitHead": "90c583872936a1526637a8a9d54cc88d2cc5ab10"
54
54
  }