@sisense/sdk-query-client 1.12.0 → 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/interfaces.d.ts +1 -1
- package/dist/jaql/metadata/highlights.js +1 -1
- package/dist/query-api-dispatcher/query-api-dispatcher.d.ts +12 -11
- package/dist/query-api-dispatcher/query-api-dispatcher.js +13 -22
- package/dist/query-client.d.ts +4 -4
- package/dist/query-client.js +5 -5
- package/dist/query-task-manager/query-task-manager.d.ts +1 -1
- package/dist/query-task-manager/query-task-manager.js +3 -1
- package/package.json +5 -5
package/dist/interfaces.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export interface QueryClient {
|
|
|
5
5
|
executeCsvQuery(params: QueryDescription, config?: QueryExecutionConfig): ExecutingCsvQueryResult;
|
|
6
6
|
executePivotQuery(params: PivotQueryDescription, config?: QueryExecutionConfig): ExecutingPivotQueryResult;
|
|
7
7
|
getDataSourceFields(dataSource: DataSource): Promise<DataSourceField[]>;
|
|
8
|
-
getDataSourceSchema(datasourceName: string): Promise<DataSourceSchema>;
|
|
8
|
+
getDataSourceSchema(datasourceName: string): Promise<DataSourceSchema | undefined>;
|
|
9
9
|
getDataSourceList(): Promise<DataSourceMetadata[]>;
|
|
10
10
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function applyHighlightFilters(metadataItem, highlights) {
|
|
2
2
|
const filter = highlights === null || highlights === void 0 ? void 0 : highlights.find((f) => getMetadataItemId(metadataItem) === f.attribute.id);
|
|
3
|
-
if (filter) {
|
|
3
|
+
if (filter && !filter.disabled) {
|
|
4
4
|
if (filter.isScope) {
|
|
5
5
|
filter.isScope = false;
|
|
6
6
|
}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import { DataSource } from '@sisense/sdk-data';
|
|
2
2
|
import { HttpClient } from '@sisense/sdk-rest-client';
|
|
3
|
-
import {
|
|
4
|
-
type RequestSendingResult<T> = {
|
|
5
|
-
responsePromise: Promise<T>;
|
|
6
|
-
abortHttpRequest: AbortRequestFunction;
|
|
7
|
-
};
|
|
3
|
+
import { DataSourceField, JaqlResponse, JaqlQueryPayload, QueryGuid, DataSourceSchema, DataSourceMetadata } from '../types.js';
|
|
8
4
|
export declare class QueryApiDispatcher {
|
|
9
5
|
private httpClient;
|
|
10
6
|
constructor(httpClient: HttpClient);
|
|
11
|
-
getDataSourceFields(dataSource: DataSource, count?: number, offset?: number): Promise<DataSourceField[]>;
|
|
7
|
+
getDataSourceFields(dataSource: DataSource, count?: number, offset?: number): Promise<DataSourceField[] | undefined>;
|
|
12
8
|
/**
|
|
13
9
|
* Returns a list of data sources.
|
|
14
10
|
* This method works with user of viewer role or above.
|
|
15
11
|
*/
|
|
16
|
-
getDataSourceList(): Promise<DataSourceMetadata[]>;
|
|
12
|
+
getDataSourceList(): Promise<DataSourceMetadata[] | undefined>;
|
|
17
13
|
/**
|
|
18
14
|
* Returns the schema of a data source by its name.
|
|
19
15
|
*/
|
|
20
|
-
getDataSourceSchema(dataSourceName: string): Promise<DataSourceSchema>;
|
|
21
|
-
sendJaqlRequest(dataSource: DataSource, jaqlPayload: JaqlQueryPayload):
|
|
22
|
-
|
|
16
|
+
getDataSourceSchema(dataSourceName: string): Promise<DataSourceSchema | undefined>;
|
|
17
|
+
sendJaqlRequest(dataSource: DataSource, jaqlPayload: JaqlQueryPayload): {
|
|
18
|
+
responsePromise: Promise<JaqlResponse | undefined>;
|
|
19
|
+
abortHttpRequest: (reason?: string) => void;
|
|
20
|
+
};
|
|
21
|
+
sendDownloadCsvRequest(dataSource: DataSource, jaqlPayload: JaqlQueryPayload): {
|
|
22
|
+
responsePromise: Promise<ReadableStream<any> | undefined>;
|
|
23
|
+
abortHttpRequest: (reason?: string) => void;
|
|
24
|
+
};
|
|
23
25
|
/**
|
|
24
26
|
* Sends a request to cancel a JAQL query.
|
|
25
27
|
*
|
|
@@ -35,4 +37,3 @@ export declare class QueryApiDispatcher {
|
|
|
35
37
|
*/
|
|
36
38
|
sendCancelMultipleJaqlQueriesRequest(guids: QueryGuid[], dataSource: DataSource): Promise<void>;
|
|
37
39
|
}
|
|
38
|
-
export {};
|
|
@@ -15,17 +15,12 @@ export class QueryApiDispatcher {
|
|
|
15
15
|
this.httpClient = httpClient;
|
|
16
16
|
}
|
|
17
17
|
getDataSourceFields(dataSource, count = 9999, offset = 0) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return yield this.httpClient.post(url, { offset, count });
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
throw new Error(`Failed to get fields for data source "${dataSource}". Please make sure the data source exists and is accessible.`);
|
|
28
|
-
}
|
|
18
|
+
const dataSourceName = getDataSourceName(dataSource);
|
|
19
|
+
const url = `${API_DATASOURCES_BASE_PATH}/${encodeURIComponent(dataSourceName)}/fields/search`;
|
|
20
|
+
// when error is encountered, API returns only status code 400 without informative error message
|
|
21
|
+
// to remedy, catch error and throw a more informative error message
|
|
22
|
+
return this.httpClient.post(url, { offset, count }).catch(() => {
|
|
23
|
+
throw new Error(`Failed to get fields for data source "${dataSource}". Please make sure the data source exists and is accessible.`);
|
|
29
24
|
});
|
|
30
25
|
}
|
|
31
26
|
/**
|
|
@@ -33,19 +28,15 @@ export class QueryApiDispatcher {
|
|
|
33
28
|
* This method works with user of viewer role or above.
|
|
34
29
|
*/
|
|
35
30
|
getDataSourceList() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return this.httpClient.get(url);
|
|
39
|
-
});
|
|
31
|
+
const url = `${API_DATASOURCES_BASE_PATH}/?sharedWith=r,w`;
|
|
32
|
+
return this.httpClient.get(url);
|
|
40
33
|
}
|
|
41
34
|
/**
|
|
42
35
|
* Returns the schema of a data source by its name.
|
|
43
36
|
*/
|
|
44
37
|
getDataSourceSchema(dataSourceName) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return this.httpClient.get(url);
|
|
48
|
-
});
|
|
38
|
+
const url = `${API_DATAMODELS_BASE_PATH}/schema?title=${encodeURIComponent(dataSourceName)}`;
|
|
39
|
+
return this.httpClient.get(url);
|
|
49
40
|
}
|
|
50
41
|
sendJaqlRequest(dataSource, jaqlPayload) {
|
|
51
42
|
const url = getJaqlUrl(dataSource);
|
|
@@ -115,7 +106,7 @@ export class QueryApiDispatcher {
|
|
|
115
106
|
/**
|
|
116
107
|
* Returns the URL for canceling queries for a regular (non-live) datasource.
|
|
117
108
|
*
|
|
118
|
-
* @param dataSource
|
|
109
|
+
* @param dataSource - The data source of the query.
|
|
119
110
|
*/
|
|
120
111
|
function getRegularCancelQueryUrl(dataSource) {
|
|
121
112
|
const datasourcePath = encodeURIComponent(getDataSourceName(dataSource));
|
|
@@ -125,7 +116,7 @@ function getRegularCancelQueryUrl(dataSource) {
|
|
|
125
116
|
* Returns the URL for canceling queries for a live datasource.
|
|
126
117
|
* Live datasources require a different URL for canceling queries.
|
|
127
118
|
*
|
|
128
|
-
* @param dataSource
|
|
119
|
+
* @param dataSource - The data source of the query.
|
|
129
120
|
*/
|
|
130
121
|
function getLiveCancelQueryUrl(dataSource) {
|
|
131
122
|
const datasourcePath = encodeURIComponent(getDataSourceName(dataSource));
|
|
@@ -134,7 +125,7 @@ function getLiveCancelQueryUrl(dataSource) {
|
|
|
134
125
|
/**
|
|
135
126
|
* Returns the URL for sending a JAQL request.
|
|
136
127
|
*
|
|
137
|
-
* @param dataSource
|
|
128
|
+
* @param dataSource - The data source of the query.
|
|
138
129
|
*/
|
|
139
130
|
function getJaqlUrl(dataSource) {
|
|
140
131
|
const dataSourcePath = encodeURIComponent(getDataSourceName(dataSource));
|
package/dist/query-client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ExecutingCsvQueryResult, ExecutingPivotQueryResult, ExecutingQueryResult, PivotQueryDescription, QueryDescription, QueryExecutionConfig } from './types.js';
|
|
2
2
|
import { QueryClient } from './interfaces.js';
|
|
3
3
|
import { DataSource } from '@sisense/sdk-data';
|
|
4
4
|
import { HttpClient } from '@sisense/sdk-rest-client';
|
|
@@ -29,15 +29,15 @@ export declare class DimensionalQueryClient implements QueryClient {
|
|
|
29
29
|
* @throws Error if query description is invalid
|
|
30
30
|
*/
|
|
31
31
|
executePivotQuery(pivotQueryDescription: PivotQueryDescription, config?: QueryExecutionConfig): ExecutingPivotQueryResult;
|
|
32
|
-
getDataSourceFields(dataSource: DataSource, count?: number, offset?: number): Promise<DataSourceField[]>;
|
|
32
|
+
getDataSourceFields(dataSource: DataSource, count?: number, offset?: number): Promise<import("./types.js").DataSourceField[]>;
|
|
33
33
|
/**
|
|
34
34
|
* Returns the schema of a data source by its name.
|
|
35
35
|
*/
|
|
36
|
-
getDataSourceSchema(datasourceName: string): Promise<DataSourceSchema>;
|
|
36
|
+
getDataSourceSchema(datasourceName: string): Promise<import("./types.js").DataSourceSchema | undefined>;
|
|
37
37
|
/**
|
|
38
38
|
* Returns a list of data sources
|
|
39
39
|
*/
|
|
40
|
-
getDataSourceList(): Promise<DataSourceMetadata[]>;
|
|
40
|
+
getDataSourceList(): Promise<import("./types.js").DataSourceMetadata[]>;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Validates query description
|
package/dist/query-client.js
CHANGED
|
@@ -93,23 +93,23 @@ export class DimensionalQueryClient {
|
|
|
93
93
|
}
|
|
94
94
|
getDataSourceFields(dataSource, count = 9999, offset = 0) {
|
|
95
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
|
|
96
|
+
const dataSourceFields = yield this.queryApi.getDataSourceFields(dataSource, count, offset);
|
|
97
|
+
return dataSourceFields || [];
|
|
97
98
|
});
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
100
101
|
* Returns the schema of a data source by its name.
|
|
101
102
|
*/
|
|
102
103
|
getDataSourceSchema(datasourceName) {
|
|
103
|
-
return
|
|
104
|
-
return this.queryApi.getDataSourceSchema(datasourceName);
|
|
105
|
-
});
|
|
104
|
+
return this.queryApi.getDataSourceSchema(datasourceName);
|
|
106
105
|
}
|
|
107
106
|
/**
|
|
108
107
|
* Returns a list of data sources
|
|
109
108
|
*/
|
|
110
109
|
getDataSourceList() {
|
|
111
110
|
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
|
|
111
|
+
const dataSourceList = yield this.queryApi.getDataSourceList();
|
|
112
|
+
return dataSourceList || [];
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -37,4 +37,4 @@ export declare class QueryTaskManager extends AbstractTaskManager {
|
|
|
37
37
|
executeDownloadCsvSending: (passport: QueryTaskPassport) => Promise<import("@sisense/task-manager").TaskExecutionResult<Blob, EmptyObject>>;
|
|
38
38
|
executePivotQuerySending: (passport: PivotQueryTaskPassport) => Promise<import("@sisense/task-manager").TaskExecutionResult<PivotQueryResultData, EmptyObject>>;
|
|
39
39
|
}
|
|
40
|
-
export declare function validateJaqlResponse(jaqlResponse: JaqlResponse):
|
|
40
|
+
export declare function validateJaqlResponse(jaqlResponse: JaqlResponse | undefined): asserts jaqlResponse is JaqlResponse;
|
|
@@ -118,8 +118,10 @@ export class QueryTaskManager extends AbstractTaskManager {
|
|
|
118
118
|
}
|
|
119
119
|
export function validateJaqlResponse(jaqlResponse) {
|
|
120
120
|
var _a;
|
|
121
|
+
if (!jaqlResponse) {
|
|
122
|
+
throw new Error('No jaql response received from the server');
|
|
123
|
+
}
|
|
121
124
|
if (jaqlResponse.error) {
|
|
122
125
|
throw new Error(`${jaqlResponse.details} ${(_a = jaqlResponse.database) !== null && _a !== void 0 ? _a : ''} ${jaqlResponse.extraDetails ? JSON.stringify(jaqlResponse.extraDetails) : ''}`);
|
|
123
126
|
}
|
|
124
|
-
return true;
|
|
125
127
|
}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Sisense",
|
|
12
12
|
"Compose SDK"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.14.0",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": "./dist/index.js",
|
|
17
17
|
"main": "./dist/index.js",
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"author": "Sisense",
|
|
21
21
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@sisense/sdk-common": "^1.
|
|
24
|
-
"@sisense/sdk-data": "^1.
|
|
25
|
-
"@sisense/sdk-pivot-client": "^1.
|
|
26
|
-
"@sisense/sdk-rest-client": "^1.
|
|
23
|
+
"@sisense/sdk-common": "^1.14.0",
|
|
24
|
+
"@sisense/sdk-data": "^1.14.0",
|
|
25
|
+
"@sisense/sdk-pivot-client": "^1.14.0",
|
|
26
|
+
"@sisense/sdk-rest-client": "^1.14.0",
|
|
27
27
|
"@sisense/task-manager": "^0.1.0",
|
|
28
28
|
"numeral": "^2.0.6",
|
|
29
29
|
"ts-deepmerge": "6.0.2",
|