@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.
Files changed (63) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.js +1 -1
  3. package/esm/backend/features/feature.d.ts.map +1 -1
  4. package/esm/backend/features/feature.js +2 -0
  5. package/esm/backend/uiFeatures.d.ts +7 -1
  6. package/esm/backend/uiFeatures.d.ts.map +1 -1
  7. package/esm/backend/uiFeatures.js +6 -0
  8. package/esm/backend/workspace/catalog/availableItemsFactory.d.ts +7 -0
  9. package/esm/backend/workspace/catalog/availableItemsFactory.d.ts.map +1 -1
  10. package/esm/backend/workspace/catalog/availableItemsFactory.js +36 -6
  11. package/esm/backend/workspace/catalog/catalog.d.ts +2 -1
  12. package/esm/backend/workspace/catalog/catalog.d.ts.map +1 -1
  13. package/esm/backend/workspace/catalog/catalog.js +4 -1
  14. package/esm/backend/workspace/catalog/catalogWithAvailableItems.d.ts +3 -1
  15. package/esm/backend/workspace/catalog/catalogWithAvailableItems.d.ts.map +1 -1
  16. package/esm/backend/workspace/catalog/catalogWithAvailableItems.js +8 -2
  17. package/esm/backend/workspace/catalog/factory.d.ts +1 -0
  18. package/esm/backend/workspace/catalog/factory.d.ts.map +1 -1
  19. package/esm/backend/workspace/catalog/factory.js +20 -3
  20. package/esm/backend/workspace/computedAttributes/computedAttributesQuery.d.ts +27 -0
  21. package/esm/backend/workspace/computedAttributes/computedAttributesQuery.d.ts.map +1 -0
  22. package/esm/backend/workspace/computedAttributes/computedAttributesQuery.js +104 -0
  23. package/esm/backend/workspace/computedAttributes/index.d.ts +18 -0
  24. package/esm/backend/workspace/computedAttributes/index.d.ts.map +1 -0
  25. package/esm/backend/workspace/computedAttributes/index.js +145 -0
  26. package/esm/backend/workspace/genAI/ChatConversations.d.ts +1 -1
  27. package/esm/backend/workspace/genAI/ChatConversations.d.ts.map +1 -1
  28. package/esm/backend/workspace/genAI/ChatConversations.js +6 -4
  29. package/esm/backend/workspace/index.d.ts +3 -1
  30. package/esm/backend/workspace/index.d.ts.map +1 -1
  31. package/esm/backend/workspace/index.js +8 -0
  32. package/esm/backend/workspace/measures/index.d.ts +0 -2
  33. package/esm/backend/workspace/measures/index.d.ts.map +1 -1
  34. package/esm/backend/workspace/measures/index.js +12 -44
  35. package/esm/backend/workspace/measures/measureExpressionTokens.d.ts +14 -1
  36. package/esm/backend/workspace/measures/measureExpressionTokens.d.ts.map +1 -1
  37. package/esm/backend/workspace/measures/measureExpressionTokens.js +60 -0
  38. package/esm/backend/workspace/reports.d.ts +12 -0
  39. package/esm/backend/workspace/reports.d.ts.map +1 -0
  40. package/esm/backend/workspace/reports.js +45 -0
  41. package/esm/convertors/fromBackend/CatalogConverter.d.ts +3 -2
  42. package/esm/convertors/fromBackend/CatalogConverter.d.ts.map +1 -1
  43. package/esm/convertors/fromBackend/CatalogConverter.js +10 -1
  44. package/esm/convertors/fromBackend/ComputedAttributeConverter.d.ts +13 -0
  45. package/esm/convertors/fromBackend/ComputedAttributeConverter.d.ts.map +1 -0
  46. package/esm/convertors/fromBackend/ComputedAttributeConverter.js +71 -0
  47. package/esm/convertors/fromBackend/MetadataConverter.d.ts +2 -2
  48. package/esm/convertors/fromBackend/MetadataConverter.d.ts.map +1 -1
  49. package/esm/convertors/fromBackend/genAIConvertor.d.ts +1 -1
  50. package/esm/convertors/fromBackend/genAIConvertor.d.ts.map +1 -1
  51. package/esm/convertors/fromBackend/genAIConvertor.js +85 -8
  52. package/esm/convertors/toBackend/ComputedAttributeConverter.d.ts +4 -0
  53. package/esm/convertors/toBackend/ComputedAttributeConverter.d.ts.map +1 -0
  54. package/esm/convertors/toBackend/ComputedAttributeConverter.js +20 -0
  55. package/esm/convertors/toBackend/ExportDefinitionsConverter.d.ts.map +1 -1
  56. package/esm/convertors/toBackend/ExportDefinitionsConverter.js +1 -2
  57. package/esm/sdk-backend-tiger.d.ts +5 -1
  58. package/esm/types/index.d.ts +1 -1
  59. package/esm/types/index.d.ts.map +1 -1
  60. package/esm/types/refTypeMapping.d.ts +5 -1
  61. package/esm/types/refTypeMapping.d.ts.map +1 -1
  62. package/esm/types/refTypeMapping.js +3 -0
  63. 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":"AAIA,OAAO,EAGH,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAE/B,KAAK,yBAAyB,EAI9B,KAAK,aAAa,EAQrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAE3B,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAGhC,KAAK,gBAAgB,EAExB,MAAM,2BAA2B,CAAC;AAgCnC,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,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,GAAG,SAAS,CAuBnC;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,CAMzB;AAuKD,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
+ {"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((item) => convertChatConversationItemFromBackend(item, responses, dateNormalizer, locale, timezone))
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
- return undefined;
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,oNAmFrC,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"}
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
- // The execution-config timezone (already the effective dashboard timezone) wins over the stored override.
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.
@@ -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
  *
@@ -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,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5F;;;;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"}
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,CAC5E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE;KACjC,SAAS,IAAI,eAAe,GAAG,yBAAyB;CAa5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,4BAA4B,EAAE,YAAY,CAOvF,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,qBAAqB,0CAEjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,uDAEpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,0CAEvB,CAAC"}
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.5",
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.5",
37
- "@gooddata/sdk-code-convertors": "11.54.0-alpha.5",
38
- "@gooddata/sdk-backend-base": "11.54.0-alpha.5",
39
- "@gooddata/sdk-backend-spi": "11.54.0-alpha.5",
40
- "@gooddata/sdk-model": "11.54.0-alpha.5",
41
- "@gooddata/util": "11.54.0-alpha.5"
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": "^7.17.0",
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": "^3.0.1",
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.5",
69
- "@gooddata/oxlint-config": "11.54.0-alpha.5",
70
- "@gooddata/eslint-config": "11.54.0-alpha.5",
71
- "@gooddata/reference-workspace": "11.54.0-alpha.5"
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",