@gooddata/sdk-backend-tiger 11.54.0-alpha.6 → 11.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.54.0-alpha.6";
1
+ export declare const LIB_VERSION = "11.54.0";
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
@@ -1 +1 @@
1
- {"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,eAAO,MAAM,eAAe,2EAA2E,CAAC;AAExG,eAAO,MAAM,QAAQ,gCAAgC,CAAC"}
1
+ {"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,eAAe,2EAA2E,CAAC;AAExG,eAAO,MAAM,QAAQ,gCAAgC,CAAC"}
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.54.0-alpha.6";
3
+ export const LIB_VERSION = "11.54.0";
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";
@@ -1,4 +1,4 @@
1
- import type { IGetComputedAttributeOptions, IMeasureExpressionToken, IWorkspaceComputedAttributesService } from "@gooddata/sdk-backend-spi";
1
+ import type { IComputedAttributeReferencing, IGetComputedAttributeOptions, IMeasureExpressionToken, IWorkspaceComputedAttributesService } from "@gooddata/sdk-backend-spi";
2
2
  import { type IComputedAttributeMetadataObject, type IComputedAttributeMetadataObjectDefinition, type IMetadataObjectBase, type IMetadataObjectIdentity, type ObjRef } from "@gooddata/sdk-model";
3
3
  import { type TigerAuthenticatedCallGuard } from "../../../types/index.js";
4
4
  import { ComputedAttributesQuery } from "./computedAttributesQuery.js";
@@ -12,6 +12,7 @@ export declare class TigerWorkspaceComputedAttributes implements IWorkspaceCompu
12
12
  deleteComputedAttribute(ref: ObjRef): Promise<void>;
13
13
  getComputedAttribute(ref: ObjRef, options?: IGetComputedAttributeOptions): Promise<IComputedAttributeMetadataObject>;
14
14
  getComputedAttributeExpressionTokens(ref: ObjRef): Promise<IMeasureExpressionToken[]>;
15
+ getComputedAttributeReferencingObjects(ref: ObjRef): Promise<IComputedAttributeReferencing>;
15
16
  getComputedAttributesQuery(): ComputedAttributesQuery;
16
17
  }
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/computedAttributes/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACR,4BAA4B,EAC5B,uBAAuB,EACvB,mCAAmC,EACtC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,0CAA0C,EAC/C,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,MAAM,EAEd,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,qBAAa,gCAAiC,YAAW,mCAAmC;IAEpF,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,MAAM;IAFrC,YACqB,QAAQ,EAAE,2BAA2B,EACtC,SAAS,EAAE,MAAM,EACjC;IAEE,uBAAuB,CACzB,iBAAiB,EAAE,0CAA0C,GAC9D,OAAO,CAAC,gCAAgC,CAAC,CAgB3C;IAEK,uBAAuB,CACzB,iBAAiB,EAAE,gCAAgC,GACpD,OAAO,CAAC,gCAAgC,CAAC,CAkB3C;IAEK,2BAA2B,CAC7B,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,uBAAuB,GAC1E,OAAO,CAAC,gCAAgC,CAAC,CA4B3C;IAEK,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASxD;IAEY,oBAAoB,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,4BAAiC,GAC3C,OAAO,CAAC,gCAAgC,CAAC,CAW3C;IAEY,oCAAoC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA2BjG;IAEM,0BAA0B,IAAI,uBAAuB,CAE3D;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/computedAttributes/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACR,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,mCAAmC,EACtC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,0CAA0C,EAC/C,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,MAAM,EAEd,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,qBAAa,gCAAiC,YAAW,mCAAmC;IAEpF,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,MAAM;IAFrC,YACqB,QAAQ,EAAE,2BAA2B,EACtC,SAAS,EAAE,MAAM,EACjC;IAEE,uBAAuB,CACzB,iBAAiB,EAAE,0CAA0C,GAC9D,OAAO,CAAC,gCAAgC,CAAC,CAgB3C;IAEK,uBAAuB,CACzB,iBAAiB,EAAE,gCAAgC,GACpD,OAAO,CAAC,gCAAgC,CAAC,CAkB3C;IAEK,2BAA2B,CAC7B,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,uBAAuB,GAC1E,OAAO,CAAC,gCAAgC,CAAC,CA4B3C;IAEK,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASxD;IAEY,oBAAoB,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,4BAAiC,GAC3C,OAAO,CAAC,gCAAgC,CAAC,CAW3C;IAEY,oCAAoC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA2BjG;IAEY,sCAAsC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAkCvG;IAEM,0BAA0B,IAAI,uBAAuB,CAE3D;CACJ"}
@@ -1,7 +1,10 @@
1
1
  // (C) 2026 GoodData Corporation
2
- import { EntitiesApi_CreateEntityComputedAttributes, EntitiesApi_DeleteEntityComputedAttributes, EntitiesApi_GetEntityComputedAttributes, EntitiesApi_PatchEntityComputedAttributes, EntitiesApi_UpdateEntityComputedAttributes, } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
2
+ import { MetadataUtilities } from "@gooddata/api-client-tiger";
3
+ import { EntitiesApi_CreateEntityComputedAttributes, EntitiesApi_DeleteEntityComputedAttributes, EntitiesApi_GetAllEntitiesMetrics, EntitiesApi_GetAllEntitiesVisualizationObjects, EntitiesApi_GetEntityComputedAttributes, EntitiesApi_PatchEntityComputedAttributes, EntitiesApi_UpdateEntityComputedAttributes, } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
3
4
  import { isIdentifierRef, } from "@gooddata/sdk-model";
4
5
  import { convertComputedAttributeFromBackend } from "../../../convertors/fromBackend/ComputedAttributeConverter.js";
6
+ import { visualizationObjectsItemToInsight } from "../../../convertors/fromBackend/InsightConverter.js";
7
+ import { convertMetricFromBackend } from "../../../convertors/fromBackend/MetricConverter.js";
5
8
  import { convertComputedAttributeToBackend } from "../../../convertors/toBackend/ComputedAttributeConverter.js";
6
9
  import { objRefToIdentifier } from "../../../utils/api.js";
7
10
  import { resolveExpressionToken, tokenizeExpression } from "../measures/measureExpressionTokens.js";
@@ -114,6 +117,28 @@ export class TigerWorkspaceComputedAttributes {
114
117
  const maql = computedAttribute.data.attributes.content.maql || "";
115
118
  return tokenizeExpression(maql).map((regexToken) => resolveExpressionToken(regexToken, computedAttribute.included ?? [], computedAttribute.data.id));
116
119
  }
120
+ async getComputedAttributeReferencingObjects(ref) {
121
+ const id = objRefToIdentifier(ref, this.authCall);
122
+ // A visualization grouping by a computed attribute is the referent that exists today. The
123
+ // backend allows the delete; the catalog refuses it and lists these titles instead.
124
+ const insights = this.authCall((client) => MetadataUtilities.getAllPagesOf(client, EntitiesApi_GetAllEntitiesVisualizationObjects, {
125
+ workspaceId: this.workspace,
126
+ // return only visualizationObjects that have a link to the given computed attribute
127
+ filter: `computedAttributes.id==${id}`,
128
+ })
129
+ .then(MetadataUtilities.mergeEntitiesResults)
130
+ .then((visualizationObjects) => visualizationObjects.data.map((visualizationObject) => visualizationObjectsItemToInsight(visualizationObject, visualizationObjects.included))));
131
+ // Reports nothing until a metric can reference a computed attribute (pending backend support).
132
+ const measures = this.authCall((client) => MetadataUtilities.getAllPagesOf(client, EntitiesApi_GetAllEntitiesMetrics, {
133
+ workspaceId: this.workspace,
134
+ include: ["computedAttributes"],
135
+ filter: `computedAttributes.id==${id}`,
136
+ })
137
+ .then(MetadataUtilities.mergeEntitiesResults)
138
+ .then((metrics) => metrics.data.map((metric) => convertMetricFromBackend(metric, metrics.included))));
139
+ const [insightList, measureList] = await Promise.all([insights, measures]);
140
+ return { insights: insightList, measures: measureList };
141
+ }
117
142
  getComputedAttributesQuery() {
118
143
  return new ComputedAttributesQuery(this.authCall, { workspaceId: this.workspace });
119
144
  }
@@ -1,4 +1,4 @@
1
- import { type IAnalyticalWorkspace, type IAttributeHierarchiesService, type IDataFiltersService, type IDateFilterConfigsQuery, type IExecutionFactory, type IGenAIService, type IReferencesService, type IWorkspaceAccessControlService, type IWorkspaceAgentsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceComputedAttributesService, type IWorkspaceDashboardsService, type IWorkspaceDatasetsService, type IWorkspaceDescriptor, type IWorkspaceDescriptorUpdate, type IWorkspaceExportDefinitionsService, type IWorkspaceExportTemplatesService, type IWorkspaceFactsService, type IWorkspaceInsightsService, type IWorkspaceKeyDriverAnalysisService, type IWorkspaceLogicalModelService, type IWorkspaceMeasuresService, type IWorkspaceObjectPermissionsService, type IWorkspaceParametersService, type IWorkspacePermissionsService, type IWorkspaceSettingsService, type IWorkspaceStylingService, type IWorkspaceUserGroupsQuery, type IWorkspaceUsersQuery } from "@gooddata/sdk-backend-spi";
1
+ import { type IAnalyticalWorkspace, type IAttributeHierarchiesService, type IDataFiltersService, type IDateFilterConfigsQuery, type IExecutionFactory, type IGenAIService, type IReferencesService, type IWorkspaceAccessControlService, type IWorkspaceAgentsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceComputedAttributesService, type IWorkspaceDashboardsService, type IWorkspaceDatasetsService, type IWorkspaceDescriptor, type IWorkspaceDescriptorUpdate, type IWorkspaceExportDefinitionsService, type IWorkspaceExportTemplatesService, type IWorkspaceFactsService, type IWorkspaceInsightsService, type IWorkspaceKeyDriverAnalysisService, type IWorkspaceLogicalModelService, type IWorkspaceMeasuresService, type IWorkspaceObjectPermissionsService, type IWorkspaceParametersService, type IWorkspacePermissionsService, type IWorkspaceReportsService, type IWorkspaceSettingsService, type IWorkspaceStylingService, type IWorkspaceUserGroupsQuery, type IWorkspaceUsersQuery } from "@gooddata/sdk-backend-spi";
2
2
  import { type DateFormatter, type DateNormalizer, type DateStringifier } from "../../convertors/fromBackend/dateFormatting/types.js";
3
3
  import { type TigerAuthenticatedCallGuard } from "../../types/index.js";
4
4
  export declare class TigerWorkspace implements IAnalyticalWorkspace {
@@ -40,5 +40,6 @@ export declare class TigerWorkspace implements IAnalyticalWorkspace {
40
40
  genAI(): IGenAIService;
41
41
  references(): IReferencesService;
42
42
  exportTemplates(): IWorkspaceExportTemplatesService;
43
+ reports(): IWorkspaceReportsService;
43
44
  }
44
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/workspace/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/workspace/index.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ import { TigerWorkspaceObjectPermissionsService } from "./objectPermissions/inde
29
29
  import { TigerWorkspaceParameters } from "./parameters/index.js";
30
30
  import { TigerWorkspacePermissionsFactory } from "./permissions/index.js";
31
31
  import { TigerReferencesService } from "./references/index.js";
32
+ import { getTigerWorkspaceReportsService } from "./reports.js";
32
33
  import { TigerWorkspaceSettings } from "./settings/index.js";
33
34
  import { TigerWorkspaceStyling } from "./styling/index.js";
34
35
  import { TigerWorkspaceUsersQuery } from "./users/index.js";
@@ -166,4 +167,7 @@ export class TigerWorkspace {
166
167
  exportTemplates() {
167
168
  return new WorkspaceExportTemplatesService(this.authCall, this.workspace);
168
169
  }
170
+ reports() {
171
+ return getTigerWorkspaceReportsService(this.workspace);
172
+ }
169
173
  }
@@ -0,0 +1,12 @@
1
+ import { InMemoryWorkspaceReportsService } from "@gooddata/sdk-backend-base";
2
+ /**
3
+ * Temporary implementation used until the backend entities (reportPageLayout, reportTemplate,
4
+ * report) exist: serves the built-in report page layouts and persists created objects to
5
+ * localStorage, scoped per workspace, so a UI built on the SPI works across page reloads.
6
+ * Falls back to plain in-memory state where localStorage is unavailable.
7
+ */
8
+ export declare class TigerWorkspaceReportsService extends InMemoryWorkspaceReportsService {
9
+ constructor(workspace: string);
10
+ }
11
+ export declare function getTigerWorkspaceReportsService(workspace: string): TigerWorkspaceReportsService;
12
+ //# sourceMappingURL=reports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../src/backend/workspace/reports.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,+BAA+B,EAClC,MAAM,4BAA4B,CAAC;AAsBpC;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,+BAA+B;IAC7E,YAAY,SAAS,EAAE,MAAM,EAE5B;CACJ;AAQD,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAO/F"}
@@ -0,0 +1,45 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { InMemoryWorkspaceReportsService, } from "@gooddata/sdk-backend-base";
3
+ function localStoragePersistence(workspace) {
4
+ // Reading the accessor itself throws a SecurityError in opaque-origin sandboxed
5
+ // frames and under storage-blocking privacy settings, so the probe is guarded too.
6
+ let storage;
7
+ try {
8
+ if (typeof localStorage === "undefined") {
9
+ return undefined;
10
+ }
11
+ storage = localStorage;
12
+ }
13
+ catch {
14
+ return undefined;
15
+ }
16
+ const key = `gd.reports.${workspace}`;
17
+ return {
18
+ load: () => storage.getItem(key),
19
+ save: (value) => storage.setItem(key, value),
20
+ };
21
+ }
22
+ /**
23
+ * Temporary implementation used until the backend entities (reportPageLayout, reportTemplate,
24
+ * report) exist: serves the built-in report page layouts and persists created objects to
25
+ * localStorage, scoped per workspace, so a UI built on the SPI works across page reloads.
26
+ * Falls back to plain in-memory state where localStorage is unavailable.
27
+ */
28
+ export class TigerWorkspaceReportsService extends InMemoryWorkspaceReportsService {
29
+ constructor(workspace) {
30
+ super(localStoragePersistence(workspace));
31
+ }
32
+ }
33
+ // One service instance per workspace for the process lifetime. With localStorage the
34
+ // service reads persisted state through on every operation, so instances converge even
35
+ // across tabs; the cache only matters where no storage exists (node), and there the
36
+ // state is per-process scratch data for development, not tenant data.
37
+ const servicesByWorkspace = new Map();
38
+ export function getTigerWorkspaceReportsService(workspace) {
39
+ let service = servicesByWorkspace.get(workspace);
40
+ if (!service) {
41
+ service = new TigerWorkspaceReportsService(workspace);
42
+ servicesByWorkspace.set(workspace, service);
43
+ }
44
+ return service;
45
+ }
@@ -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;
@@ -564,6 +564,9 @@ export declare const convertVisualizationContentToInsight: (content: object, met
564
564
  memoryItem: TigerObjectType;
565
565
  notificationChannel: TigerObjectType;
566
566
  parameter: TigerObjectType;
567
+ report: TigerObjectType;
568
+ reportPageLayout: TigerObjectType;
569
+ reportTemplate: TigerObjectType;
567
570
  theme: TigerObjectType;
568
571
  user: TigerObjectType;
569
572
  userDataFilter: TigerObjectType;
@@ -38,6 +38,9 @@ export declare const objectTypeToTigerIdType: {
38
38
  memoryItem: TigerObjectType;
39
39
  notificationChannel: TigerObjectType;
40
40
  parameter: TigerObjectType;
41
+ report: TigerObjectType;
42
+ reportPageLayout: TigerObjectType;
43
+ reportTemplate: TigerObjectType;
41
44
  theme: TigerObjectType;
42
45
  user: TigerObjectType;
43
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,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-backend-tiger",
3
- "version": "11.54.0-alpha.6",
3
+ "version": "11.54.0",
4
4
  "description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -34,19 +34,19 @@
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.54.0-alpha.6",
38
- "@gooddata/sdk-backend-spi": "11.54.0-alpha.6",
39
- "@gooddata/sdk-backend-base": "11.54.0-alpha.6",
40
- "@gooddata/sdk-code-convertors": "11.54.0-alpha.6",
41
- "@gooddata/sdk-model": "11.54.0-alpha.6",
42
- "@gooddata/util": "11.54.0-alpha.6"
37
+ "@gooddata/api-client-tiger": "11.54.0",
38
+ "@gooddata/sdk-backend-base": "11.54.0",
39
+ "@gooddata/sdk-backend-spi": "11.54.0",
40
+ "@gooddata/sdk-model": "11.54.0",
41
+ "@gooddata/sdk-code-convertors": "11.54.0",
42
+ "@gooddata/util": "11.54.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@gooddata/fixtures": "3.7.0",
46
- "@microsoft/api-documenter": "^7.17.0",
46
+ "@microsoft/api-documenter": "7.30.10",
47
47
  "@microsoft/api-extractor": "^7.55.2",
48
48
  "@types/lodash-es": "^4.17.12",
49
- "@types/spark-md5": "^3.0.1",
49
+ "@types/spark-md5": "3.0.5",
50
50
  "@typescript-eslint/eslint-plugin": "8.58.0",
51
51
  "@typescript-eslint/parser": "8.58.0",
52
52
  "@typescript/native-preview": "7.0.0-dev.20260202.1",
@@ -66,10 +66,10 @@
66
66
  "oxlint-tsgolint": "0.15.0",
67
67
  "typescript": "5.9.3",
68
68
  "vitest": "4.1.8",
69
- "@gooddata/eslint-config": "11.54.0-alpha.6",
70
- "@gooddata/oxlint-config": "11.54.0-alpha.6",
71
- "@gooddata/reference-workspace": "11.54.0-alpha.6",
72
- "@gooddata/catalog-export": "11.54.0-alpha.6"
69
+ "@gooddata/catalog-export": "11.54.0",
70
+ "@gooddata/eslint-config": "11.54.0",
71
+ "@gooddata/oxlint-config": "11.54.0",
72
+ "@gooddata/reference-workspace": "11.54.0"
73
73
  },
74
74
  "scripts": {
75
75
  "_phase:build": "npm run build",