@gooddata/sdk-backend-tiger 11.54.0-alpha.5 → 11.54.0-alpha.7
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/features/feature.d.ts.map +1 -1
- package/esm/backend/features/feature.js +2 -0
- package/esm/backend/uiFeatures.d.ts +7 -1
- package/esm/backend/uiFeatures.d.ts.map +1 -1
- package/esm/backend/uiFeatures.js +6 -0
- package/esm/backend/workspace/catalog/availableItemsFactory.d.ts +7 -0
- package/esm/backend/workspace/catalog/availableItemsFactory.d.ts.map +1 -1
- package/esm/backend/workspace/catalog/availableItemsFactory.js +36 -6
- package/esm/backend/workspace/catalog/catalog.d.ts +2 -1
- package/esm/backend/workspace/catalog/catalog.d.ts.map +1 -1
- package/esm/backend/workspace/catalog/catalog.js +4 -1
- package/esm/backend/workspace/catalog/catalogWithAvailableItems.d.ts +3 -1
- package/esm/backend/workspace/catalog/catalogWithAvailableItems.d.ts.map +1 -1
- package/esm/backend/workspace/catalog/catalogWithAvailableItems.js +8 -2
- package/esm/backend/workspace/catalog/factory.d.ts +1 -0
- package/esm/backend/workspace/catalog/factory.d.ts.map +1 -1
- package/esm/backend/workspace/catalog/factory.js +20 -3
- package/esm/backend/workspace/computedAttributes/computedAttributesQuery.d.ts +27 -0
- package/esm/backend/workspace/computedAttributes/computedAttributesQuery.d.ts.map +1 -0
- package/esm/backend/workspace/computedAttributes/computedAttributesQuery.js +104 -0
- package/esm/backend/workspace/computedAttributes/index.d.ts +18 -0
- package/esm/backend/workspace/computedAttributes/index.d.ts.map +1 -0
- package/esm/backend/workspace/computedAttributes/index.js +145 -0
- package/esm/backend/workspace/genAI/ChatConversations.d.ts +1 -1
- package/esm/backend/workspace/genAI/ChatConversations.d.ts.map +1 -1
- package/esm/backend/workspace/genAI/ChatConversations.js +6 -4
- package/esm/backend/workspace/index.d.ts +3 -1
- package/esm/backend/workspace/index.d.ts.map +1 -1
- package/esm/backend/workspace/index.js +8 -0
- package/esm/backend/workspace/measures/index.d.ts +0 -2
- package/esm/backend/workspace/measures/index.d.ts.map +1 -1
- package/esm/backend/workspace/measures/index.js +12 -44
- package/esm/backend/workspace/measures/measureExpressionTokens.d.ts +14 -1
- package/esm/backend/workspace/measures/measureExpressionTokens.d.ts.map +1 -1
- package/esm/backend/workspace/measures/measureExpressionTokens.js +60 -0
- package/esm/backend/workspace/reports.d.ts +12 -0
- package/esm/backend/workspace/reports.d.ts.map +1 -0
- package/esm/backend/workspace/reports.js +45 -0
- package/esm/convertors/fromBackend/CatalogConverter.d.ts +3 -2
- package/esm/convertors/fromBackend/CatalogConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/CatalogConverter.js +10 -1
- package/esm/convertors/fromBackend/ComputedAttributeConverter.d.ts +13 -0
- package/esm/convertors/fromBackend/ComputedAttributeConverter.d.ts.map +1 -0
- package/esm/convertors/fromBackend/ComputedAttributeConverter.js +71 -0
- package/esm/convertors/fromBackend/MetadataConverter.d.ts +2 -2
- package/esm/convertors/fromBackend/MetadataConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/genAIConvertor.d.ts +1 -1
- package/esm/convertors/fromBackend/genAIConvertor.d.ts.map +1 -1
- package/esm/convertors/fromBackend/genAIConvertor.js +85 -8
- package/esm/convertors/toBackend/ComputedAttributeConverter.d.ts +4 -0
- package/esm/convertors/toBackend/ComputedAttributeConverter.d.ts.map +1 -0
- package/esm/convertors/toBackend/ComputedAttributeConverter.js +20 -0
- package/esm/convertors/toBackend/ExportDefinitionsConverter.d.ts.map +1 -1
- package/esm/convertors/toBackend/ExportDefinitionsConverter.js +1 -2
- package/esm/sdk-backend-tiger.d.ts +5 -1
- package/esm/types/index.d.ts +1 -1
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/refTypeMapping.d.ts +5 -1
- package/esm/types/refTypeMapping.d.ts.map +1 -1
- package/esm/types/refTypeMapping.js +3 -0
- package/package.json +14 -13
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { idRef, } from "@gooddata/sdk-model";
|
|
3
|
+
import { convertCertificationFromBackend } from "./CertificationConverter.js";
|
|
4
|
+
import { isInheritedObject } from "./ObjectInheritance.js";
|
|
5
|
+
import { convertUserIdentifier } from "./UsersConverter.js";
|
|
6
|
+
/**
|
|
7
|
+
* Fabricates the single display form of a computed attribute.
|
|
8
|
+
*
|
|
9
|
+
* A computed attribute has no real labels on the backend. To mimic the structure of a normal
|
|
10
|
+
* attribute (and thus be usable in the same UI places), exactly one display form is fabricated
|
|
11
|
+
* client-side: it shares the id and title with the computed attribute itself.
|
|
12
|
+
*/
|
|
13
|
+
export function fabricateComputedAttributeDisplayForm(id, title, description) {
|
|
14
|
+
return {
|
|
15
|
+
type: "displayForm",
|
|
16
|
+
// The ref carries the COMPUTED ATTRIBUTE type, not "displayForm": this ref is what ends up
|
|
17
|
+
// in the insight and what the AFM converter turns into an object qualifier, and the backend
|
|
18
|
+
// expects an attribute item to reference a computed attribute by its own type rather than as
|
|
19
|
+
// a label (a computed attribute has no real labels).
|
|
20
|
+
ref: idRef(id, "computedAttribute"),
|
|
21
|
+
id,
|
|
22
|
+
uri: id,
|
|
23
|
+
title,
|
|
24
|
+
description,
|
|
25
|
+
production: true,
|
|
26
|
+
deprecated: false,
|
|
27
|
+
unlisted: false,
|
|
28
|
+
attribute: idRef(id, "computedAttribute"),
|
|
29
|
+
isDefault: true,
|
|
30
|
+
isPrimary: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function isJsonApiComputedAttributeOutDocument(obj) {
|
|
34
|
+
return obj.data !== undefined;
|
|
35
|
+
}
|
|
36
|
+
export function convertComputedAttributeFromBackend(data, included = []) {
|
|
37
|
+
const object = isJsonApiComputedAttributeOutDocument(data) ? data.data : data;
|
|
38
|
+
const { id, attributes, relationships } = object;
|
|
39
|
+
const title = attributes.title ?? "";
|
|
40
|
+
const description = attributes.description ?? "";
|
|
41
|
+
return {
|
|
42
|
+
type: "computedAttribute",
|
|
43
|
+
ref: idRef(id, "computedAttribute"),
|
|
44
|
+
id,
|
|
45
|
+
uri: id,
|
|
46
|
+
title,
|
|
47
|
+
description,
|
|
48
|
+
tags: attributes.tags ?? [],
|
|
49
|
+
production: true,
|
|
50
|
+
deprecated: false,
|
|
51
|
+
unlisted: false,
|
|
52
|
+
isHidden: attributes.isHidden,
|
|
53
|
+
isLocked: isInheritedObject(object),
|
|
54
|
+
expression: attributes.content.maql,
|
|
55
|
+
format: attributes.content.format ?? undefined,
|
|
56
|
+
metricType: attributes.content.metricType,
|
|
57
|
+
dataType: attributes.dataType,
|
|
58
|
+
isNullable: attributes.isNullable,
|
|
59
|
+
nullValue: attributes.nullValue,
|
|
60
|
+
locale: attributes.locale,
|
|
61
|
+
displayForms: [fabricateComputedAttributeDisplayForm(id, title, description)],
|
|
62
|
+
created: attributes.createdAt ?? undefined,
|
|
63
|
+
createdBy: convertUserIdentifier(relationships?.createdBy, included),
|
|
64
|
+
updated: attributes.modifiedAt ?? undefined,
|
|
65
|
+
updatedBy: convertUserIdentifier(relationships?.modifiedBy, included),
|
|
66
|
+
certification: convertCertificationFromBackend(attributes, convertUserIdentifier(relationships?.certifiedBy, included)),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function convertComputedAttributesWithLinks(list) {
|
|
70
|
+
return list.data.map((item) => convertComputedAttributeFromBackend(item, list.included));
|
|
71
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type JsonApiAnalyticalDashboardOutWithLinks, type JsonApiAttributeOut, type JsonApiAttributeOutDocument, type JsonApiAttributeOutList, type JsonApiAttributeOutWithLinks, type JsonApiDatasetOutWithLinks, type JsonApiFactOutDocument, type JsonApiFactOutList, type JsonApiFactOutWithLinks, type JsonApiLabelOutWithLinks, type JsonApiMetricOutList, type JsonApiMetricOutWithLinks } from "@gooddata/api-client-tiger";
|
|
1
|
+
import { type JsonApiAnalyticalDashboardOutWithLinks, type JsonApiAttributeOut, type JsonApiAttributeOutDocument, type JsonApiAttributeOutList, type JsonApiAttributeOutWithLinks, type JsonApiComputedAttributeOutWithLinks, type JsonApiDatasetOutWithLinks, type JsonApiFactOutDocument, type JsonApiFactOutList, type JsonApiFactOutWithLinks, type JsonApiLabelOutWithLinks, type JsonApiMetricOutList, type JsonApiMetricOutWithLinks } from "@gooddata/api-client-tiger";
|
|
2
2
|
import { type IMetadataObjectBuilder } from "@gooddata/sdk-backend-base";
|
|
3
3
|
import { type IAttributeDisplayFormMetadataObject, type IAttributeMetadataObject, type IDashboardMetadataObject, type IDataSetMetadataObject, type IFactMetadataObject, type IMeasureMetadataObject } from "@gooddata/sdk-model";
|
|
4
|
-
export type MetadataObjectFromApi = JsonApiAttributeOutWithLinks | JsonApiFactOutWithLinks | JsonApiMetricOutWithLinks | JsonApiLabelOutWithLinks | JsonApiDatasetOutWithLinks | JsonApiAnalyticalDashboardOutWithLinks;
|
|
4
|
+
export type MetadataObjectFromApi = JsonApiAttributeOutWithLinks | JsonApiComputedAttributeOutWithLinks | JsonApiFactOutWithLinks | JsonApiMetricOutWithLinks | JsonApiLabelOutWithLinks | JsonApiDatasetOutWithLinks | JsonApiAnalyticalDashboardOutWithLinks;
|
|
5
5
|
export declare const commonMetadataObjectModifications: <TItem extends MetadataObjectFromApi, T extends IMetadataObjectBuilder<import("@gooddata/sdk-model").IMetadataObject>>(item: TItem) => (builder: T) => T;
|
|
6
6
|
export declare function createLabelMap(included: JsonApiAttributeOutDocument["included"] | undefined): Record<string, JsonApiLabelOutWithLinks>;
|
|
7
7
|
export declare function createDataSetMap(included: JsonApiAttributeOutDocument["included"] | undefined): Record<string, JsonApiDatasetOutWithLinks>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/MetadataConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,sCAAsC,EAC3C,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAGjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,sBAAsB,EAM9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE9B,MAAM,qBAAqB,CAAC;AAM7B,MAAM,MAAM,qBAAqB,GAC3B,4BAA4B,GAC5B,uBAAuB,GACvB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,sCAAsC,CAAC;AAE7C,eAAO,MAAM,iCAAiC,GACzC,KAAK,gCAAgC,CAAC,iHAWtC,CAAC;AAEN,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAQ1C;AAED,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAQ5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,mBAAmB,GAAG,4BAA4B,EAC7D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACpD,mCAAmC,EAAE,CAmBvC;AA8ED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAChD,SAAS,EAAE,2BAA2B,GACvC,wBAAwB,CAK1B;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,uBAAuB,GACpC,wBAAwB,EAAE,CAW5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAWtF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAehF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB,EAAE,CAE/F;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CAInG;AAyBD;;;;GAIG;AACH,wBAAgB,mCAAmC,CAC/C,SAAS,EAAE,sCAAsC,GAClD,wBAAwB,CAI1B"}
|
|
1
|
+
{"version":3,"file":"MetadataConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/MetadataConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,sCAAsC,EAC3C,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,oCAAoC,EACzC,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAGjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,sBAAsB,EAM9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE9B,MAAM,qBAAqB,CAAC;AAM7B,MAAM,MAAM,qBAAqB,GAC3B,4BAA4B,GAC5B,oCAAoC,GACpC,uBAAuB,GACvB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,sCAAsC,CAAC;AAE7C,eAAO,MAAM,iCAAiC,GACzC,KAAK,gCAAgC,CAAC,iHAWtC,CAAC;AAEN,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAQ1C;AAED,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAQ5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,mBAAmB,GAAG,4BAA4B,EAC7D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACpD,mCAAmC,EAAE,CAmBvC;AA8ED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAChD,SAAS,EAAE,2BAA2B,GACvC,wBAAwB,CAK1B;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,uBAAuB,GACpC,wBAAwB,EAAE,CAW5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAWtF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAehF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB,EAAE,CAE/F;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CAInG;AAyBD;;;;GAIG;AACH,wBAAgB,mCAAmC,CAC/C,SAAS,EAAE,sCAAsC,GAClD,wBAAwB,CAI1B"}
|
|
@@ -3,7 +3,7 @@ import { type IChatConversation, type IChatConversationError, type IChatConversa
|
|
|
3
3
|
import type { FormattingLocale } from "./dateFormatting/defaultDateFormatter.js";
|
|
4
4
|
import { type DateNormalizer } from "./dateFormatting/types.js";
|
|
5
5
|
export declare function convertChatConversationFromBackend(conversation: AiConversationResponse): IChatConversation;
|
|
6
|
-
export declare function convertChatConversationItemFromBackend(item: AiConversationItemResponse, responses: AiConversationResponseList["responses"] | undefined, dateNormalizer: DateNormalizer, locale?: FormattingLocale, timezone?: string): IChatConversationItem | undefined;
|
|
6
|
+
export declare function convertChatConversationItemFromBackend(item: AiConversationItemResponse, responses: AiConversationResponseList["responses"] | undefined, history: IChatConversationItem[], dateNormalizer: DateNormalizer, locale?: FormattingLocale, timezone?: string): IChatConversationItem | undefined;
|
|
7
7
|
export declare function convertChatConversationItemsFromBackend(items: AiConversationItemResponse[], responses: AiConversationResponseList["responses"] | undefined, dateNormalizer: DateNormalizer, locale?: FormattingLocale, timezone?: string): IChatConversationItem[];
|
|
8
8
|
export declare function convertChatConversationErrorFromBackend(item: Partial<{
|
|
9
9
|
statusCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genAIConvertor.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/genAIConvertor.ts"],"names":[],"mappings":"
|
|
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,EAG/B,KAAK,yBAAyB,EAI9B,KAAK,aAAa,EAQrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAGtB,KAAK,sBAAsB,EAE3B,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAGhC,KAAK,gBAAgB,EAExB,MAAM,2BAA2B,CAAC;AAkCnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,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;AA8KD,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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
|
+
import fastJsonPatch from "fast-json-patch";
|
|
2
3
|
import { v4 as uuidv4 } from "uuid";
|
|
3
4
|
import { yamlDashboardToDeclarative, yamlFiltersToDeclarative, yamlVisualisationToMetadataObject, } from "@gooddata/sdk-code-convertors";
|
|
4
|
-
import { assertNever, } from "@gooddata/sdk-model";
|
|
5
|
+
import { areObjRefsEqual, assertNever, } from "@gooddata/sdk-model";
|
|
5
6
|
import { getFormatByGranularity } from "../../utils/dateUtils.js";
|
|
6
7
|
import { convertMeasure } from "./afm/MeasureConverter.js";
|
|
7
8
|
import { convertDashboard, convertFilterContextFromBackend, } from "./analyticalDashboards/AnalyticalDashboardConverter.js";
|
|
@@ -19,8 +20,8 @@ export function convertChatConversationFromBackend(conversation) {
|
|
|
19
20
|
agentId: conversation.agentId ?? undefined,
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
|
-
export function convertChatConversationItemFromBackend(item, responses, dateNormalizer, locale, timezone) {
|
|
23
|
-
const content = convertChatConversationContentFromBackend(item.content, dateNormalizer, locale, timezone);
|
|
23
|
+
export function convertChatConversationItemFromBackend(item, responses, history, dateNormalizer, locale, timezone) {
|
|
24
|
+
const content = convertChatConversationContentFromBackend(item.content, history, dateNormalizer, locale, timezone);
|
|
24
25
|
if (!content) {
|
|
25
26
|
return undefined;
|
|
26
27
|
}
|
|
@@ -42,8 +43,15 @@ export function convertChatConversationItemFromBackend(item, responses, dateNorm
|
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
45
|
export function convertChatConversationItemsFromBackend(items, responses, dateNormalizer, locale, timezone) {
|
|
46
|
+
const history = [];
|
|
45
47
|
return items
|
|
46
|
-
.map((
|
|
48
|
+
.map((itm) => {
|
|
49
|
+
const item = convertChatConversationItemFromBackend(itm, responses, history, dateNormalizer, locale, timezone);
|
|
50
|
+
if (item) {
|
|
51
|
+
history.push(item);
|
|
52
|
+
}
|
|
53
|
+
return item;
|
|
54
|
+
})
|
|
47
55
|
.filter((item) => item !== undefined);
|
|
48
56
|
}
|
|
49
57
|
function convertChatConversationFeedbackFromBackend(response) {
|
|
@@ -58,7 +66,7 @@ function convertChatConversationFeedbackFromBackend(response) {
|
|
|
58
66
|
updatedAt: new Date(response.updatedAt).getTime(),
|
|
59
67
|
};
|
|
60
68
|
}
|
|
61
|
-
function convertChatConversationContentFromBackend(content, dateNormalizer, locale, timezone) {
|
|
69
|
+
function convertChatConversationContentFromBackend(content, history, dateNormalizer, locale, timezone) {
|
|
62
70
|
switch (content.type) {
|
|
63
71
|
case "text":
|
|
64
72
|
return {
|
|
@@ -108,16 +116,22 @@ function convertChatConversationContentFromBackend(content, dateNormalizer, loca
|
|
|
108
116
|
const dashboard = data
|
|
109
117
|
? convertDashboard(buildDashboardWrapper(data.dashboard, data.tabFilterContexts, part.saved_dashboard_id), filters)
|
|
110
118
|
: null;
|
|
111
|
-
const saved = !!part.saved_dashboard_id;
|
|
112
119
|
return {
|
|
113
120
|
type: "dashboard",
|
|
114
|
-
saved,
|
|
115
121
|
insights,
|
|
122
|
+
base: part.dashboard,
|
|
123
|
+
saved: part.saved_dashboard_id,
|
|
116
124
|
dashboard: convertToTemporaryFilterContexts(dashboard),
|
|
117
125
|
};
|
|
118
126
|
}
|
|
119
127
|
case "dashboardPatch": {
|
|
120
|
-
|
|
128
|
+
if (!part.patch) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
type: "dashboard",
|
|
133
|
+
...applyDashboardPatch(history, part.patch),
|
|
134
|
+
};
|
|
121
135
|
}
|
|
122
136
|
case "kda":
|
|
123
137
|
return {
|
|
@@ -472,3 +486,66 @@ function asNonPersistedFilterContext(fc) {
|
|
|
472
486
|
},
|
|
473
487
|
};
|
|
474
488
|
}
|
|
489
|
+
// Apply dashboard patch to the items
|
|
490
|
+
function applyDashboardPatch(items, patch) {
|
|
491
|
+
if (!patch?.dashboard_id) {
|
|
492
|
+
return {
|
|
493
|
+
dashboard: null,
|
|
494
|
+
insights: null,
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
const related = collectRelatedItems(items, {
|
|
498
|
+
identifier: patch.dashboard_id,
|
|
499
|
+
type: "analyticalDashboard",
|
|
500
|
+
});
|
|
501
|
+
const last = related[related.length - 1];
|
|
502
|
+
const base = last?.base;
|
|
503
|
+
const saved = last?.saved;
|
|
504
|
+
const previousInsights = last?.insights ?? [];
|
|
505
|
+
if (!base) {
|
|
506
|
+
return {
|
|
507
|
+
dashboard: null,
|
|
508
|
+
insights: null,
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
let newDocument = null;
|
|
512
|
+
try {
|
|
513
|
+
const patchResult = fastJsonPatch.applyPatch(base, patch.operations, undefined, false);
|
|
514
|
+
newDocument = patchResult.newDocument;
|
|
515
|
+
}
|
|
516
|
+
catch (e) {
|
|
517
|
+
console.error(e);
|
|
518
|
+
return {
|
|
519
|
+
dashboard: null,
|
|
520
|
+
insights: null,
|
|
521
|
+
patchError: e,
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
const data = newDocument ? yamlDashboardToDeclarative([], newDocument) : null;
|
|
525
|
+
const filters = data?.filterContext
|
|
526
|
+
? convertFilterContextFromBackend(buildFilterContextWrapper(data.filterContext))
|
|
527
|
+
: undefined;
|
|
528
|
+
const insights = patch.references?.visualizations.map((vis) => {
|
|
529
|
+
return visualizationObjectsItemToInsight(yamlVisualisationToMetadataObject([], vis));
|
|
530
|
+
}) ?? [];
|
|
531
|
+
const dashboard = data
|
|
532
|
+
? convertDashboard(buildDashboardWrapper(data.dashboard, data.tabFilterContexts, saved), filters)
|
|
533
|
+
: null;
|
|
534
|
+
return {
|
|
535
|
+
dashboard: convertToTemporaryFilterContexts(dashboard),
|
|
536
|
+
insights: [...previousInsights, ...insights],
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
function collectRelatedItems(items, ref) {
|
|
540
|
+
const related = [];
|
|
541
|
+
items.forEach((item) => {
|
|
542
|
+
if (item.content.type === "multipart") {
|
|
543
|
+
item.content.parts.forEach((part) => {
|
|
544
|
+
if (part.type === "dashboard" && part.dashboard && areObjRefsEqual(part.dashboard.ref, ref)) {
|
|
545
|
+
related.push(part);
|
|
546
|
+
}
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
return related;
|
|
551
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type JsonApiComputedAttributeInAttributes } from "@gooddata/api-client-tiger";
|
|
2
|
+
import { type IComputedAttributeMetadataObjectDefinition } from "@gooddata/sdk-model";
|
|
3
|
+
export declare function convertComputedAttributeToBackend(computedAttribute: IComputedAttributeMetadataObjectDefinition): JsonApiComputedAttributeInAttributes;
|
|
4
|
+
//# sourceMappingURL=ComputedAttributeConverter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComputedAttributeConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/toBackend/ComputedAttributeConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,KAAK,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAEtF,wBAAgB,iCAAiC,CAC7C,iBAAiB,EAAE,0CAA0C,GAC9D,oCAAoC,CAkBtC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
export function convertComputedAttributeToBackend(computedAttribute) {
|
|
3
|
+
return {
|
|
4
|
+
title: computedAttribute.title,
|
|
5
|
+
description: computedAttribute.description,
|
|
6
|
+
content: {
|
|
7
|
+
maql: computedAttribute.expression,
|
|
8
|
+
format: computedAttribute.format,
|
|
9
|
+
...(typeof computedAttribute.metricType === "undefined"
|
|
10
|
+
? {}
|
|
11
|
+
: { metricType: computedAttribute.metricType }),
|
|
12
|
+
},
|
|
13
|
+
tags: computedAttribute.tags,
|
|
14
|
+
isHidden: computedAttribute.isHidden,
|
|
15
|
+
dataType: computedAttribute.dataType,
|
|
16
|
+
isNullable: computedAttribute.isNullable,
|
|
17
|
+
nullValue: computedAttribute.nullValue,
|
|
18
|
+
locale: computedAttribute.locale,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportDefinitionsConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/toBackend/ExportDefinitionsConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,oCAAoC,EACzC,KAAK,+BAA+B,EAEpC,KAAK,kBAAkB,EACvB,KAAK,iCAAiC,EACtC,KAAK,6CAA6C,EAClD,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAE3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,yBAAyB,EAAmB,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,EAC9C,KAAK,+BAA+B,EACpC,KAAK,kDAAkD,EAG1D,MAAM,qBAAqB,CAAC;AA8B7B,eAAO,MAAM,yCAAyC,gHAgBrD,CAAC;AAEF,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ExportDefinitionsConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/toBackend/ExportDefinitionsConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,oCAAoC,EACzC,KAAK,+BAA+B,EAEpC,KAAK,kBAAkB,EACvB,KAAK,iCAAiC,EACtC,KAAK,6CAA6C,EAClD,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAE3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,yBAAyB,EAAmB,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,EAC9C,KAAK,+BAA+B,EACpC,KAAK,kDAAkD,EAG1D,MAAM,qBAAqB,CAAC;AA8B7B,eAAO,MAAM,yCAAyC,gHAgBrD,CAAC;AAEF,eAAO,MAAM,yBAAyB,oNAkFrC,CAAC;AAEF,eAAO,MAAM,2BAA2B,uHAuCvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,qGA0ExC,CAAC;AAEF,eAAO,MAAM,4BAA4B,8GAyCxC,CAAC;AAEF,eAAO,MAAM,sCAAsC,8FA8ClD,CAAC;AAEF,eAAO,MAAM,6BAA6B,sGAiDzC,CAAC;AAEF,eAAO,MAAM,mDAAmD,wGAyC/D,CAAC;AAEF,eAAO,MAAM,qCAAqC,4HA6EjD,CAAC;AAEF,eAAO,MAAM,+BAA+B,wHAY3C,CAAC"}
|
|
@@ -86,8 +86,7 @@ export const convertToRawExportRequest = (exportRequest, widgetExecution, overri
|
|
|
86
86
|
// Round-trip storage only; the backend applies parameters from execution.parameters above.
|
|
87
87
|
parametersByTab: exportRequest.content.parametersByTab,
|
|
88
88
|
}, (value) => value === undefined || (Array.isArray(value) && value.length === 0));
|
|
89
|
-
|
|
90
|
-
const timezone = settings.timezone ?? exportRequest.timezoneId;
|
|
89
|
+
const timezone = exportRequest.timezoneId;
|
|
91
90
|
const settingsWithTimezone = { ...settings, ...(timezone ? { timezone } : {}) };
|
|
92
91
|
const executionSettings = isEmpty(settingsWithTimezone) ? undefined : settingsWithTimezone;
|
|
93
92
|
const delimiter = exportRequest.settings?.delimiter;
|
|
@@ -549,6 +549,7 @@ export declare const convertVisualizationContentToInsight: (content: object, met
|
|
|
549
549
|
attributeHierarchy: TigerObjectType;
|
|
550
550
|
automation: TigerObjectType;
|
|
551
551
|
colorPalette: TigerObjectType;
|
|
552
|
+
computedAttribute: TigerObjectType;
|
|
552
553
|
dashboardPlugin: TigerObjectType;
|
|
553
554
|
dataSet: TigerObjectType;
|
|
554
555
|
dateAttributeHierarchy: TigerObjectType;
|
|
@@ -563,6 +564,9 @@ export declare const convertVisualizationContentToInsight: (content: object, met
|
|
|
563
564
|
memoryItem: TigerObjectType;
|
|
564
565
|
notificationChannel: TigerObjectType;
|
|
565
566
|
parameter: TigerObjectType;
|
|
567
|
+
report: TigerObjectType;
|
|
568
|
+
reportPageLayout: TigerObjectType;
|
|
569
|
+
reportTemplate: TigerObjectType;
|
|
566
570
|
theme: TigerObjectType;
|
|
567
571
|
user: TigerObjectType;
|
|
568
572
|
userDataFilter: TigerObjectType;
|
|
@@ -637,7 +641,7 @@ export declare const convertVisualizationContentToInsight: (content: object, met
|
|
|
637
641
|
*
|
|
638
642
|
* @public
|
|
639
643
|
*/
|
|
640
|
-
export declare type TigerAfmType = "label" | "metric" | "dataset" | "fact" | "attribute" | "prompt";
|
|
644
|
+
export declare type TigerAfmType = "label" | "metric" | "dataset" | "fact" | "attribute" | "computedAttribute" | "prompt";
|
|
641
645
|
|
|
642
646
|
/**
|
|
643
647
|
* Base for other IAuthenticationProvider implementations.
|
package/esm/types/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export type TigerAuthenticatedCallGuard = AuthenticatedCallGuard<ITigerClientBas
|
|
|
12
12
|
*
|
|
13
13
|
* @public
|
|
14
14
|
*/
|
|
15
|
-
export type TigerAfmType = "label" | "metric" | "dataset" | "fact" | "attribute" | "prompt";
|
|
15
|
+
export type TigerAfmType = "label" | "metric" | "dataset" | "fact" | "attribute" | "computedAttribute" | "prompt";
|
|
16
16
|
/**
|
|
17
17
|
* Tiger metadata types
|
|
18
18
|
*
|
package/esm/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,8CAA8C,EACtD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAE7F;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,8CAA8C,EACtD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAE7F;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAClB,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,mBAAmB,GACnB,QAAQ,CAAC;AAEf;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,eAAe,GACf,iBAAiB,GACjB,WAAW,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAAG,8CAA8C,CAAC"}
|
|
@@ -7,7 +7,7 @@ export type TigerCompatibleObjectType = Exclude<ObjectType, "tag">;
|
|
|
7
7
|
/**
|
|
8
8
|
* @alpha
|
|
9
9
|
*/
|
|
10
|
-
export type TigerAfmCompatibleObjectType = Extract<TigerCompatibleObjectType, "attribute" | "measure" | "displayForm" | "dataSet" | "fact" | "variable">;
|
|
10
|
+
export type TigerAfmCompatibleObjectType = Extract<TigerCompatibleObjectType, "attribute" | "computedAttribute" | "measure" | "displayForm" | "dataSet" | "fact" | "variable">;
|
|
11
11
|
/**
|
|
12
12
|
* @alpha
|
|
13
13
|
*/
|
|
@@ -23,6 +23,7 @@ export declare const objectTypeToTigerIdType: {
|
|
|
23
23
|
attributeHierarchy: TigerObjectType;
|
|
24
24
|
automation: TigerObjectType;
|
|
25
25
|
colorPalette: TigerObjectType;
|
|
26
|
+
computedAttribute: TigerObjectType;
|
|
26
27
|
dashboardPlugin: TigerObjectType;
|
|
27
28
|
dataSet: TigerObjectType;
|
|
28
29
|
dateAttributeHierarchy: TigerObjectType;
|
|
@@ -37,6 +38,9 @@ export declare const objectTypeToTigerIdType: {
|
|
|
37
38
|
memoryItem: TigerObjectType;
|
|
38
39
|
notificationChannel: TigerObjectType;
|
|
39
40
|
parameter: TigerObjectType;
|
|
41
|
+
report: TigerObjectType;
|
|
42
|
+
reportPageLayout: TigerObjectType;
|
|
43
|
+
reportTemplate: TigerObjectType;
|
|
40
44
|
theme: TigerObjectType;
|
|
41
45
|
user: TigerObjectType;
|
|
42
46
|
userDataFilter: TigerObjectType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refTypeMapping.d.ts","sourceRoot":"","sources":["../../src/types/refTypeMapping.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAC9C,yBAAyB,EACzB,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"refTypeMapping.d.ts","sourceRoot":"","sources":["../../src/types/refTypeMapping.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAC9C,yBAAyB,EACzB,WAAW,GAAG,mBAAmB,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAClG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE;KACjC,SAAS,IAAI,eAAe,GAAG,yBAAyB;CAc5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,4BAA4B,EAAE,YAAY,CASvF,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,qBAAqB,0CAEjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,uDAEpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,0CAEvB,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { invert, isEmpty } from "lodash-es";
|
|
|
5
5
|
*/
|
|
6
6
|
export const tigerIdTypeToObjectType = {
|
|
7
7
|
attribute: "attribute",
|
|
8
|
+
computedAttribute: "computedAttribute",
|
|
8
9
|
metric: "measure",
|
|
9
10
|
label: "displayForm",
|
|
10
11
|
dataset: "dataSet",
|
|
@@ -25,6 +26,8 @@ export const objectTypeToTigerIdType = invert(tigerIdTypeToObjectType);
|
|
|
25
26
|
*/
|
|
26
27
|
export const objectTypeToTigerAfmType = {
|
|
27
28
|
attribute: "attribute",
|
|
29
|
+
// a computed attribute is referenced by its own type, not as a label - it has no real labels
|
|
30
|
+
computedAttribute: "computedAttribute",
|
|
28
31
|
measure: "metric",
|
|
29
32
|
displayForm: "label",
|
|
30
33
|
dataSet: "dataset",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-backend-tiger",
|
|
3
|
-
"version": "11.54.0-alpha.
|
|
3
|
+
"version": "11.54.0-alpha.7",
|
|
4
4
|
"description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData",
|
|
@@ -27,25 +27,26 @@
|
|
|
27
27
|
"date-fns-tz": "^3.2.0",
|
|
28
28
|
"eventsource-parser": "~3.0.0",
|
|
29
29
|
"exponential-backoff": "^3.1.1",
|
|
30
|
+
"fast-json-patch": "^3.1.1",
|
|
30
31
|
"lodash-es": "^4.17.23",
|
|
31
32
|
"lru-cache": "11.1.0",
|
|
32
33
|
"spark-md5": "^3.0.0",
|
|
33
34
|
"ts-invariant": "0.10.3",
|
|
34
35
|
"tslib": "2.8.1",
|
|
35
36
|
"uuid": "11.1.1",
|
|
36
|
-
"@gooddata/api-client-tiger": "11.54.0-alpha.
|
|
37
|
-
"@gooddata/sdk-
|
|
38
|
-
"@gooddata/sdk-backend-
|
|
39
|
-
"@gooddata/sdk-
|
|
40
|
-
"@gooddata/sdk-model": "11.54.0-alpha.
|
|
41
|
-
"@gooddata/util": "11.54.0-alpha.
|
|
37
|
+
"@gooddata/api-client-tiger": "11.54.0-alpha.7",
|
|
38
|
+
"@gooddata/sdk-backend-base": "11.54.0-alpha.7",
|
|
39
|
+
"@gooddata/sdk-backend-spi": "11.54.0-alpha.7",
|
|
40
|
+
"@gooddata/sdk-code-convertors": "11.54.0-alpha.7",
|
|
41
|
+
"@gooddata/sdk-model": "11.54.0-alpha.7",
|
|
42
|
+
"@gooddata/util": "11.54.0-alpha.7"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
45
|
"@gooddata/fixtures": "3.7.0",
|
|
45
|
-
"@microsoft/api-documenter": "
|
|
46
|
+
"@microsoft/api-documenter": "7.30.10",
|
|
46
47
|
"@microsoft/api-extractor": "^7.55.2",
|
|
47
48
|
"@types/lodash-es": "^4.17.12",
|
|
48
|
-
"@types/spark-md5": "
|
|
49
|
+
"@types/spark-md5": "3.0.5",
|
|
49
50
|
"@typescript-eslint/eslint-plugin": "8.58.0",
|
|
50
51
|
"@typescript-eslint/parser": "8.58.0",
|
|
51
52
|
"@typescript/native-preview": "7.0.0-dev.20260202.1",
|
|
@@ -65,10 +66,10 @@
|
|
|
65
66
|
"oxlint-tsgolint": "0.15.0",
|
|
66
67
|
"typescript": "5.9.3",
|
|
67
68
|
"vitest": "4.1.8",
|
|
68
|
-
"@gooddata/catalog-export": "11.54.0-alpha.
|
|
69
|
-
"@gooddata/
|
|
70
|
-
"@gooddata/
|
|
71
|
-
"@gooddata/reference-workspace": "11.54.0-alpha.
|
|
69
|
+
"@gooddata/catalog-export": "11.54.0-alpha.7",
|
|
70
|
+
"@gooddata/eslint-config": "11.54.0-alpha.7",
|
|
71
|
+
"@gooddata/oxlint-config": "11.54.0-alpha.7",
|
|
72
|
+
"@gooddata/reference-workspace": "11.54.0-alpha.7"
|
|
72
73
|
},
|
|
73
74
|
"scripts": {
|
|
74
75
|
"_phase:build": "npm run build",
|