@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.
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.65.0-alpha.0";
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.0";
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: false,
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,EAK5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAQH,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAGhG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAsB9E,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"}
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
- return ServerPaging.for(async ({ offset, limit, cacheId }) => {
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":"AAUA,OAAO,KAAK,EACR,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,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;CACJ"}
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;AA8G7B;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,eAAe,EAAE,EAC7B,GAAG,EAAE,oBAAoB,GAC1B,oBAAoB,EAAE,CAOxB"}
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;AA4ND,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,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.0",
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/api-client-tiger": "11.65.0-alpha.0",
38
- "@gooddata/sdk-backend-base": "11.65.0-alpha.0",
39
- "@gooddata/sdk-backend-spi": "11.65.0-alpha.0",
40
- "@gooddata/sdk-code-convertors": "11.65.0-alpha.0",
41
- "@gooddata/sdk-model": "11.65.0-alpha.0",
42
- "@gooddata/util": "11.65.0-alpha.0"
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/eslint-config": "11.65.0-alpha.0",
68
- "@gooddata/catalog-export": "11.65.0-alpha.0",
69
- "@gooddata/reference-workspace": "11.65.0-alpha.0",
70
- "@gooddata/oxlint-config": "11.65.0-alpha.0"
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",