@gooddata/sdk-backend-tiger 11.65.0-alpha.0 → 11.65.0-alpha.2
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/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/backend/uiFeatures.js +1 -1
- package/esm/backend/workspace/attributes/elements/index.d.ts.map +1 -1
- package/esm/backend/workspace/attributes/elements/index.js +39 -2
- package/esm/backend/workspace/genAI/index.d.ts +4 -1
- package/esm/backend/workspace/genAI/index.d.ts.map +1 -1
- package/esm/backend/workspace/genAI/index.js +35 -1
- package/esm/convertors/fromBackend/afm/dimensions.d.ts.map +1 -1
- package/esm/convertors/fromBackend/afm/dimensions.js +3 -0
- package/esm/convertors/fromBackend/attributeNumberFormat.d.ts +16 -0
- package/esm/convertors/fromBackend/attributeNumberFormat.d.ts.map +1 -0
- package/esm/convertors/fromBackend/attributeNumberFormat.js +26 -0
- package/esm/convertors/fromBackend/genAIConvertor.d.ts.map +1 -1
- package/esm/convertors/fromBackend/genAIConvertor.js +3 -0
- package/package.json +11 -11
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.65.0-alpha.
|
|
1
|
+
export declare const LIB_VERSION = "11.65.0-alpha.2";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-backend-tiger";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.65.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.65.0-alpha.2";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-backend-tiger";
|
|
@@ -270,7 +270,7 @@ export const DefaultFeatureFlags = {
|
|
|
270
270
|
enableGenAiReportTakeaways: false,
|
|
271
271
|
enableEmbeddingWriteCommands: false,
|
|
272
272
|
enableLocalizationOverview: false,
|
|
273
|
-
enableUserLanguageChange:
|
|
273
|
+
enableUserLanguageChange: true,
|
|
274
274
|
};
|
|
275
275
|
export const FeatureFlagsValues = {
|
|
276
276
|
enableMetricSqlAndDataExplain: [true, false],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/backend/workspace/attributes/elements/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEnB,KAAK,qBAAqB,EAG1B,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/backend/workspace/attributes/elements/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEnB,KAAK,qBAAqB,EAG1B,KAAK,oBAAoB,EAM5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAQH,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAGhG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AA4D9E,qBAAa,sBAAuB,YAAW,qBAAqB;IAE5D,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHlC,YACqB,QAAQ,EAAE,2BAA2B,EACtC,SAAS,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC7C;IAEG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAEjD;IAEM,SAAS,CAAC,MAAM,EAAE,4BAA4B,GAAG,oBAAoB,CAE3E;CACJ"}
|
|
@@ -5,6 +5,7 @@ import { InMemoryPaging, ServerPaging } from "@gooddata/sdk-backend-base";
|
|
|
5
5
|
import { NotSupported, UnexpectedError, isElementsQueryOptionsElementsByValue, isValueBasedElementsQueryOptionsElements, } from "@gooddata/sdk-backend-spi";
|
|
6
6
|
import { filterAttributeElements, filterIsEmpty, filterObjRef, isArbitraryAttributeFilter, isAttributeElementsByRef, isAttributeFilter, isAttributeFilterWithSelection, isIdentifierRef, isMatchAttributeFilter, isNegativeAttributeFilter, objRefToString, } from "@gooddata/sdk-model";
|
|
7
7
|
import { TigerCancellationConverter } from "../../../../cancelation/index.js";
|
|
8
|
+
import { attributeNumberFormat } from "../../../../convertors/fromBackend/attributeNumberFormat.js";
|
|
8
9
|
import { createDateValueFormatter } from "../../../../convertors/fromBackend/dateFormatting/dateValueFormatter.js";
|
|
9
10
|
import { createDateValueNormalizer } from "../../../../convertors/fromBackend/dateFormatting/dateValueNormalizer.js";
|
|
10
11
|
import { toSdkGranularity } from "../../../../convertors/fromBackend/dateGranularityConversions.js";
|
|
@@ -26,6 +27,36 @@ const MATCH_OPERATOR_TO_TIGER = {
|
|
|
26
27
|
function toElementsLabelType(ref) {
|
|
27
28
|
return isIdentifierRef(ref) && ref.type === "computedAttribute" ? "computedAttribute" : undefined;
|
|
28
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Elements query result that carries the number format of the element values on every page.
|
|
32
|
+
*/
|
|
33
|
+
class TigerElementsQueryResult {
|
|
34
|
+
page;
|
|
35
|
+
numberFormat;
|
|
36
|
+
constructor(page, numberFormat) {
|
|
37
|
+
this.page = page;
|
|
38
|
+
this.numberFormat = numberFormat;
|
|
39
|
+
}
|
|
40
|
+
get items() {
|
|
41
|
+
return this.page.items;
|
|
42
|
+
}
|
|
43
|
+
get limit() {
|
|
44
|
+
return this.page.limit;
|
|
45
|
+
}
|
|
46
|
+
get offset() {
|
|
47
|
+
return this.page.offset;
|
|
48
|
+
}
|
|
49
|
+
get totalCount() {
|
|
50
|
+
return this.page.totalCount;
|
|
51
|
+
}
|
|
52
|
+
get cacheId() {
|
|
53
|
+
return this.page.cacheId;
|
|
54
|
+
}
|
|
55
|
+
next = async () => new TigerElementsQueryResult(await this.page.next(), this.numberFormat);
|
|
56
|
+
goTo = async (pageIndex) => new TigerElementsQueryResult(await this.page.goTo(pageIndex), this.numberFormat);
|
|
57
|
+
all = () => this.page.all();
|
|
58
|
+
allSorted = (compareFn) => this.page.allSorted(compareFn);
|
|
59
|
+
}
|
|
29
60
|
export class TigerWorkspaceElements {
|
|
30
61
|
authCall;
|
|
31
62
|
workspace;
|
|
@@ -222,7 +253,9 @@ class TigerWorkspaceElementsQuery {
|
|
|
222
253
|
if (!isIdentifierRef(ref)) {
|
|
223
254
|
throw new UnexpectedError("Tiger backend does not allow referencing objects by URI");
|
|
224
255
|
}
|
|
225
|
-
|
|
256
|
+
// resolved from the first response; the same for every page of the query
|
|
257
|
+
let numberFormat;
|
|
258
|
+
const paging = await ServerPaging.for(async ({ offset, limit, cacheId }) => {
|
|
226
259
|
const elementsRequest = this.buildElementsRequest(options, ref.identifier, cacheId);
|
|
227
260
|
const response = await this.authCall((client) => {
|
|
228
261
|
return ActionsApi_ComputeLabelElementsPost(client.axios, "", {
|
|
@@ -234,7 +267,8 @@ class TigerWorkspaceElementsQuery {
|
|
|
234
267
|
...new TigerCancellationConverter(this.signal).forAxios(),
|
|
235
268
|
});
|
|
236
269
|
});
|
|
237
|
-
const { paging, elements, format, granularity, cacheId: responseCacheId } = response.data;
|
|
270
|
+
const { paging, elements, format, granularity, cacheId: responseCacheId, numberFormat: responseNumberFormat, dataType, } = response.data;
|
|
271
|
+
numberFormat = attributeNumberFormat(responseNumberFormat, dataType);
|
|
238
272
|
// Only date attributes carry a granularity; for the rest it is absent, so convert only when
|
|
239
273
|
// present (passing undefined into the strict converter is what previously threw).
|
|
240
274
|
const sdkGranularity = granularity
|
|
@@ -251,6 +285,9 @@ class TigerWorkspaceElementsQuery {
|
|
|
251
285
|
cacheId: responseCacheId,
|
|
252
286
|
};
|
|
253
287
|
}, this.limit, this.offset, this.options?.cacheId);
|
|
288
|
+
// Only results that have a number format to carry get the elements-specific page object; every other
|
|
289
|
+
// result stays the plain server paging, the same as the results of every other query service.
|
|
290
|
+
return numberFormat === undefined ? paging : new TigerElementsQueryResult(paging, numberFormat);
|
|
254
291
|
}
|
|
255
292
|
mapValidationItems(item) {
|
|
256
293
|
return toObjQualifier(item).identifier;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IAnalyticsCatalogService, IChatConversations, IDashboardSummary, IDashboardSummaryRequest, IGenAIService, IKnowledgeDocumentsService, IMemoryItemsService, ISemanticQualityService, ISemanticSearchQuery, IVisualizationsSummaryRequest } from "@gooddata/sdk-backend-spi";
|
|
1
|
+
import type { IAnalyticsCatalogService, IChatConversations, IDashboardSummary, IDashboardSummaryRequest, IGenAIService, IKnowledgeDocumentsService, IMemoryItemsService, ISemanticQualityService, ISemanticSearchQuery, ITakeawayRequest, ITakeawayResult, IVisualizationsSummaryRequest } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
import { type DateNormalizer } from "../../../convertors/fromBackend/dateFormatting/types.js";
|
|
3
3
|
import { type TigerAuthenticatedCallGuard } from "../../../types/index.js";
|
|
4
4
|
export declare class GenAIService implements IGenAIService {
|
|
@@ -21,5 +21,8 @@ export declare class GenAIService implements IGenAIService {
|
|
|
21
21
|
summarizeVisualizations(request: IVisualizationsSummaryRequest, options?: {
|
|
22
22
|
signal?: AbortSignal;
|
|
23
23
|
}): Promise<IDashboardSummary>;
|
|
24
|
+
generateTakeaway(request: ITakeawayRequest, options?: {
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
}): Promise<ITakeawayResult>;
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/genAI/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/genAI/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAE9F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAS3E,qBAAa,YAAa,YAAW,aAAa;IAE1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAHnC,YACqB,QAAQ,EAAE,2BAA2B,EACrC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC/C;IAEJ,oBAAoB,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,kBAAkB,CAE1E;IAED,sBAAsB,IAAI,oBAAoB,CAE7C;IAEK,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAOzC;IAED,qBAAqB,IAAI,0BAA0B,CAElD;IAED,cAAc,IAAI,mBAAmB,CAEpC;IAED,mBAAmB,IAAI,wBAAwB,CAE9C;IAED,kBAAkB,IAAI,uBAAuB,CAE5C;IAEK,kBAAkB,CACpB,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAkC5B;IAEK,uBAAuB,CACzB,OAAO,EAAE,6BAA6B,EACtC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC,iBAAiB,CAAC,CA6B5B;IAEK,gBAAgB,CAClB,OAAO,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC,eAAe,CAAC,CAiC1B;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import { SmartFunctionsAi_ResolveLlmProviders } from "@gooddata/api-client-tiger";
|
|
3
|
-
import { GenAiApi_SummarizeDashboard, GenAiApi_SummarizeVisualizations, } from "@gooddata/api-client-tiger/endpoints/genAI";
|
|
3
|
+
import { GenAiApi_GenerateTakeaway, GenAiApi_SummarizeDashboard, GenAiApi_SummarizeVisualizations, } from "@gooddata/api-client-tiger/endpoints/genAI";
|
|
4
4
|
import { convertFilter } from "../../../convertors/toBackend/afm/FilterConverter.js";
|
|
5
5
|
import { AnalyticsCatalogService } from "./AnalyticsCatalogService.js";
|
|
6
6
|
import { ChatConversationsService } from "./ChatConversations.js";
|
|
@@ -86,6 +86,31 @@ export class GenAIService {
|
|
|
86
86
|
}, { signal: options?.signal }));
|
|
87
87
|
return convertSummaryResponse(response.data);
|
|
88
88
|
}
|
|
89
|
+
async generateTakeaway(request, options) {
|
|
90
|
+
const aiTakeawayRequest = {
|
|
91
|
+
data: {
|
|
92
|
+
visualizations: request.visualizations.map((placement) => ({
|
|
93
|
+
visualizationId: placement.visualizationId,
|
|
94
|
+
filters: convertSummaryFilters(placement.filters),
|
|
95
|
+
})),
|
|
96
|
+
filterContext: convertSummaryFilters(request.filters),
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
if (request.instructions !== undefined) {
|
|
100
|
+
aiTakeawayRequest.instructions = request.instructions;
|
|
101
|
+
}
|
|
102
|
+
if (request.maxCharacters !== undefined) {
|
|
103
|
+
aiTakeawayRequest.maxCharacters = request.maxCharacters;
|
|
104
|
+
}
|
|
105
|
+
if (request.agentId !== undefined) {
|
|
106
|
+
aiTakeawayRequest.agentId = request.agentId;
|
|
107
|
+
}
|
|
108
|
+
const response = await this.authCall((client) => GenAiApi_GenerateTakeaway(client.axios, client.basePath, {
|
|
109
|
+
workspaceId: this.workspaceId,
|
|
110
|
+
aiTakeawayRequest,
|
|
111
|
+
}, { signal: options?.signal }));
|
|
112
|
+
return convertTakeawayResponse(response.data);
|
|
113
|
+
}
|
|
89
114
|
}
|
|
90
115
|
// Cast bridges the AFM filter definitions to the generated union type of the AI API.
|
|
91
116
|
function convertSummaryFilters(filters) {
|
|
@@ -110,3 +135,12 @@ function convertSummaryResponse(data) {
|
|
|
110
135
|
tabId: data.tabId ?? undefined,
|
|
111
136
|
};
|
|
112
137
|
}
|
|
138
|
+
function convertTakeawayResponse(data) {
|
|
139
|
+
return {
|
|
140
|
+
takeaway: data.takeaway,
|
|
141
|
+
noData: data.noData,
|
|
142
|
+
generatedAt: data.generatedAt,
|
|
143
|
+
agentId: data.agentId,
|
|
144
|
+
contextOmitted: data.contextOmitted,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../../src/convertors/fromBackend/afm/dimensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,eAAe,EAAqB,MAAM,4BAA4B,CAAC;AAC7G,OAAO,EAEH,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAS5B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../../src/convertors/fromBackend/afm/dimensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,eAAe,EAAqB,MAAM,4BAA4B,CAAC;AAC7G,OAAO,EAEH,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAS5B,MAAM,qBAAqB,CAAC;AAoH7B;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,eAAe,EAAE,EAC7B,GAAG,EAAE,oBAAoB,GAC1B,oBAAoB,EAAE,CAOxB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { groupBy, keyBy, mapValues, uniqBy } from "lodash-es";
|
|
3
3
|
import { isAttributeHeader } from "@gooddata/api-client-tiger";
|
|
4
4
|
import { idRef, isIdentifierRef, isSimpleMeasure, measureItem, measureLocalId, } from "@gooddata/sdk-model";
|
|
5
|
+
import { attributeNumberFormat } from "../attributeNumberFormat.js";
|
|
5
6
|
import { convertLabelType } from "../LabelTypeConverter.js";
|
|
6
7
|
const DEFAULT_FORMAT = "#,#.##";
|
|
7
8
|
function isComputedAttributeIdentifier(identifier) {
|
|
@@ -25,6 +26,7 @@ function transformDimension(dim, simpleMeasureRefs, attrTotals) {
|
|
|
25
26
|
// them through the computedAttributes service instead of labels. The backend states
|
|
26
27
|
// the type on the header identifiers.
|
|
27
28
|
const isComputedAttributeHeader = isComputedAttributeIdentifier(h.attributeHeader.label);
|
|
29
|
+
const numberFormat = attributeNumberFormat(h.attributeHeader.numberFormat, h.attributeHeader.dataType);
|
|
28
30
|
const labelRefType = isComputedAttributeHeader ? "computedAttribute" : "displayForm";
|
|
29
31
|
const attributeRefType = isComputedAttributeHeader ? "computedAttribute" : "attribute";
|
|
30
32
|
return {
|
|
@@ -48,6 +50,7 @@ function transformDimension(dim, simpleMeasureRefs, attrTotals) {
|
|
|
48
50
|
labelType: convertLabelType(h.attributeHeader.valueType),
|
|
49
51
|
primaryLabel: idRef(h.attributeHeader.primaryLabel.id, labelRefType),
|
|
50
52
|
geoAreaConfig,
|
|
53
|
+
...(numberFormat ? { numberFormat } : {}),
|
|
51
54
|
},
|
|
52
55
|
};
|
|
53
56
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ComputedAttributeDataType } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* Number format of the attribute's element values, as stated by the backend for the attribute header
|
|
4
|
+
* of an execution result or for an elements response.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Only numeric attributes (`INT` or `NUMERIC` data type, i.e. numeric computed attributes) are formatted:
|
|
8
|
+
* with their own format or, when they have none, with the attribute default. Everything else yields
|
|
9
|
+
* undefined and stays unformatted, even with a format, because formatting would mangle text values.
|
|
10
|
+
*
|
|
11
|
+
* @param numberFormat - format the backend states for the values
|
|
12
|
+
* @param dataType - data type of the values
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function attributeNumberFormat(numberFormat: string | undefined, dataType: ComputedAttributeDataType | undefined): string | undefined;
|
|
16
|
+
//# sourceMappingURL=attributeNumberFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributeNumberFormat.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/attributeNumberFormat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAUrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,yBAAyB,GAAG,SAAS,GAChD,MAAM,GAAG,SAAS,CAMpB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
const NUMERIC_DATA_TYPES = ["INT", "NUMERIC"];
|
|
3
|
+
/**
|
|
4
|
+
* Format applied to numeric attribute values without a format of their own. Unlike the measure default,
|
|
5
|
+
* it keeps a leading digit, so a zero element reads "0" and not an empty label.
|
|
6
|
+
*/
|
|
7
|
+
const DEFAULT_ATTRIBUTE_NUMBER_FORMAT = "#,##0.##";
|
|
8
|
+
/**
|
|
9
|
+
* Number format of the attribute's element values, as stated by the backend for the attribute header
|
|
10
|
+
* of an execution result or for an elements response.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* Only numeric attributes (`INT` or `NUMERIC` data type, i.e. numeric computed attributes) are formatted:
|
|
14
|
+
* with their own format or, when they have none, with the attribute default. Everything else yields
|
|
15
|
+
* undefined and stays unformatted, even with a format, because formatting would mangle text values.
|
|
16
|
+
*
|
|
17
|
+
* @param numberFormat - format the backend states for the values
|
|
18
|
+
* @param dataType - data type of the values
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export function attributeNumberFormat(numberFormat, dataType) {
|
|
22
|
+
if (dataType === undefined || !NUMERIC_DATA_TYPES.includes(dataType)) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return numberFormat || DEFAULT_ATTRIBUTE_NUMBER_FORMAT;
|
|
26
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genAIConvertor.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/genAIConvertor.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAK/B,KAAK,yBAAyB,EAM9B,KAAK,aAAa,EAUrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAGtB,KAAK,sBAAsB,EAE3B,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAIhC,KAAK,gBAAgB,EAExB,MAAM,2BAA2B,CAAC;AAyCnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG,iBAAiB,CAS1G;AAED,wBAAgB,sCAAsC,CAClD,IAAI,EAAE,0BAA0B,EAChC,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,GAAG,SAAS,EAC9D,OAAO,EAAE,qBAAqB,EAAE,EAChC,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,GAAG,SAAS,CA6BnC;AAED,wBAAgB,uCAAuC,CACnD,KAAK,EAAE,0BAA0B,EAAE,EACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,GAAG,SAAS,EAC9D,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,EAAE,CAkBzB;
|
|
1
|
+
{"version":3,"file":"genAIConvertor.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/genAIConvertor.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAK/B,KAAK,yBAAyB,EAM9B,KAAK,aAAa,EAUrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAGtB,KAAK,sBAAsB,EAE3B,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAIhC,KAAK,gBAAgB,EAExB,MAAM,2BAA2B,CAAC;AAyCnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG,iBAAiB,CAS1G;AAED,wBAAgB,sCAAsC,CAClD,IAAI,EAAE,0BAA0B,EAChC,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,GAAG,SAAS,EAC9D,OAAO,EAAE,qBAAqB,EAAE,EAChC,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,GAAG,SAAS,CA6BnC;AAED,wBAAgB,uCAAuC,CACnD,KAAK,EAAE,0BAA0B,EAAE,EACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,GAAG,SAAS,EAC9D,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,EAAE,CAkBzB;AA+ND,wBAAgB,uCAAuC,CACnD,IAAI,EAAE,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,OAAO,CAAC,EAAE,MAAM,GACjB,sBAAsB,CAQxB;AAED;;;GAGG;AACH,wBAAgB,iDAAiD,CAC7D,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,MAAM,GACjB,gCAAgC,CAgBlC;AAED;;;;GAIG;AACH,wBAAgB,4CAA4C,CACxD,MAAM,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,GAC5D,2BAA2B,GAAG,SAAS,CAgEzC;AA2FD,wBAAgB,oCAAoC,CAChD,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACvC,gBAAgB,CAQlB"}
|
|
@@ -187,6 +187,9 @@ function convertMultipartPart(part, history, siblings, dateNormalizer, locale, t
|
|
|
187
187
|
}
|
|
188
188
|
case "report":
|
|
189
189
|
return convertPublisherDocumentPart(part);
|
|
190
|
+
case "document":
|
|
191
|
+
// A Publisher v2 document has no chat rendering yet: drop it, as before it had a type.
|
|
192
|
+
return undefined;
|
|
190
193
|
case "kda":
|
|
191
194
|
if (!part.kda) {
|
|
192
195
|
return undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-backend-tiger",
|
|
3
|
-
"version": "11.65.0-alpha.
|
|
3
|
+
"version": "11.65.0-alpha.2",
|
|
4
4
|
"description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"ts-invariant": "0.10.3",
|
|
35
35
|
"tslib": "2.8.1",
|
|
36
36
|
"uuid": "11.1.1",
|
|
37
|
-
"@gooddata/
|
|
38
|
-
"@gooddata/sdk-
|
|
39
|
-
"@gooddata/sdk-
|
|
40
|
-
"@gooddata/sdk-
|
|
41
|
-
"@gooddata/
|
|
42
|
-
"@gooddata/
|
|
37
|
+
"@gooddata/sdk-backend-base": "11.65.0-alpha.2",
|
|
38
|
+
"@gooddata/sdk-model": "11.65.0-alpha.2",
|
|
39
|
+
"@gooddata/sdk-code-convertors": "11.65.0-alpha.2",
|
|
40
|
+
"@gooddata/sdk-backend-spi": "11.65.0-alpha.2",
|
|
41
|
+
"@gooddata/util": "11.65.0-alpha.2",
|
|
42
|
+
"@gooddata/api-client-tiger": "11.65.0-alpha.2"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@gooddata/fixtures": "3.7.0",
|
|
@@ -64,10 +64,10 @@
|
|
|
64
64
|
"oxlint-tsgolint": "7.0.2001",
|
|
65
65
|
"typescript": "7.0.2",
|
|
66
66
|
"vitest": "5.0.4",
|
|
67
|
-
"@gooddata/
|
|
68
|
-
"@gooddata/
|
|
69
|
-
"@gooddata/
|
|
70
|
-
"@gooddata/
|
|
67
|
+
"@gooddata/catalog-export": "11.65.0-alpha.2",
|
|
68
|
+
"@gooddata/eslint-config": "11.65.0-alpha.2",
|
|
69
|
+
"@gooddata/oxlint-config": "11.65.0-alpha.2",
|
|
70
|
+
"@gooddata/reference-workspace": "11.65.0-alpha.2"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"_phase:build": "npm run build",
|