@gooddata/sdk-backend-tiger 11.64.0-alpha.1 → 11.64.0-alpha.3

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 (65) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.js +1 -1
  3. package/esm/backend/dataSources/files.d.ts +16 -0
  4. package/esm/backend/dataSources/files.d.ts.map +1 -0
  5. package/esm/backend/dataSources/files.js +133 -0
  6. package/esm/backend/dataSources/index.d.ts +18 -2
  7. package/esm/backend/dataSources/index.d.ts.map +1 -1
  8. package/esm/backend/dataSources/index.js +202 -2
  9. package/esm/backend/features/feature.d.ts.map +1 -1
  10. package/esm/backend/features/feature.js +1 -0
  11. package/esm/backend/localization/aggregate.d.ts +4 -1
  12. package/esm/backend/localization/aggregate.d.ts.map +1 -1
  13. package/esm/backend/localization/aggregate.js +8 -2
  14. package/esm/backend/localization/fromBackend.d.ts +12 -2
  15. package/esm/backend/localization/fromBackend.d.ts.map +1 -1
  16. package/esm/backend/localization/fromBackend.js +45 -6
  17. package/esm/backend/localization/index.d.ts +3 -0
  18. package/esm/backend/localization/index.d.ts.map +1 -1
  19. package/esm/backend/localization/index.js +52 -8
  20. package/esm/backend/settings/mapping.js +1 -0
  21. package/esm/backend/tigerSpecificFunctions.d.ts +0 -1
  22. package/esm/backend/tigerSpecificFunctions.d.ts.map +1 -1
  23. package/esm/backend/tigerSpecificFunctions.js +1 -16
  24. package/esm/backend/uiFeatures.d.ts +3 -0
  25. package/esm/backend/uiFeatures.d.ts.map +1 -1
  26. package/esm/backend/uiFeatures.js +3 -0
  27. package/esm/backend/workspace/customApplicationSettings/index.d.ts +13 -0
  28. package/esm/backend/workspace/customApplicationSettings/index.d.ts.map +1 -0
  29. package/esm/backend/workspace/customApplicationSettings/index.js +53 -0
  30. package/esm/backend/workspace/dataFilters/index.d.ts +2 -1
  31. package/esm/backend/workspace/dataFilters/index.d.ts.map +1 -1
  32. package/esm/backend/workspace/dataFilters/index.js +34 -0
  33. package/esm/backend/workspace/index.d.ts +2 -1
  34. package/esm/backend/workspace/index.d.ts.map +1 -1
  35. package/esm/backend/workspace/index.js +4 -0
  36. package/esm/backend/workspace/ldm/index.d.ts +5 -1
  37. package/esm/backend/workspace/ldm/index.d.ts.map +1 -1
  38. package/esm/backend/workspace/ldm/index.js +32 -1
  39. package/esm/backend/workspace/references/index.d.ts +1 -0
  40. package/esm/backend/workspace/references/index.d.ts.map +1 -1
  41. package/esm/backend/workspace/references/index.js +28 -11
  42. package/esm/backend/workspaces/index.d.ts +1 -1
  43. package/esm/backend/workspaces/index.d.ts.map +1 -1
  44. package/esm/backend/workspaces/index.js +9 -2
  45. package/esm/convertors/fromBackend/DeclarativeModelConverter.d.ts +4 -0
  46. package/esm/convertors/fromBackend/DeclarativeModelConverter.d.ts.map +1 -0
  47. package/esm/convertors/fromBackend/DeclarativeModelConverter.js +280 -0
  48. package/esm/convertors/fromBackend/PhysicalModelConverter.d.ts +5 -0
  49. package/esm/convertors/fromBackend/PhysicalModelConverter.d.ts.map +1 -0
  50. package/esm/convertors/fromBackend/PhysicalModelConverter.js +63 -0
  51. package/esm/convertors/fromBackend/genAIConvertor.d.ts.map +1 -1
  52. package/esm/convertors/fromBackend/genAIConvertor.js +5 -0
  53. package/esm/convertors/shared/declarativeFields.d.ts +20 -0
  54. package/esm/convertors/shared/declarativeFields.d.ts.map +1 -0
  55. package/esm/convertors/shared/declarativeFields.js +23 -0
  56. package/esm/convertors/toBackend/DeclarativeModelConverter.d.ts +4 -0
  57. package/esm/convertors/toBackend/DeclarativeModelConverter.d.ts.map +1 -0
  58. package/esm/convertors/toBackend/DeclarativeModelConverter.js +277 -0
  59. package/esm/convertors/toBackend/PhysicalModelConverter.d.ts +5 -0
  60. package/esm/convertors/toBackend/PhysicalModelConverter.d.ts.map +1 -0
  61. package/esm/convertors/toBackend/PhysicalModelConverter.js +97 -0
  62. package/esm/utils/apiProblemDetail.d.ts +3 -0
  63. package/esm/utils/apiProblemDetail.d.ts.map +1 -0
  64. package/esm/utils/apiProblemDetail.js +19 -0
  65. package/package.json +11 -11
@@ -0,0 +1,277 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { assertAllFieldsMapped, copyArray, mapArray, mapRecord, withoutUndefined, } from "../shared/declarativeFields.js";
3
+ export function convertDeclarativeLdmToBackend(ldm) {
4
+ const { calendars, datasetExtensions, datasets, dateInstances, ...unmapped } = ldm;
5
+ assertAllFieldsMapped(unmapped);
6
+ return withoutUndefined({
7
+ calendars: mapRecord(calendars, convertCalendar),
8
+ datasetExtensions: mapArray(datasetExtensions, convertDatasetExtension),
9
+ datasets: mapArray(datasets, convertDataset),
10
+ dateInstances: mapArray(dateInstances, convertDateDataset),
11
+ });
12
+ }
13
+ function convertCalendar(calendar) {
14
+ const { definition, description, enabledGranularities, name, ...unmapped } = calendar;
15
+ assertAllFieldsMapped(unmapped);
16
+ return withoutUndefined({
17
+ definition: convertCalendarDefinition(definition),
18
+ description,
19
+ enabledGranularities: enabledGranularities.map(({ granularity, prefix, ...rest }) => {
20
+ assertAllFieldsMapped(rest);
21
+ return { granularity, prefix };
22
+ }),
23
+ name,
24
+ });
25
+ }
26
+ function convertCalendarDefinition(definition) {
27
+ if (definition.type === "fiscalYear") {
28
+ const { type, monthOffset, ...unmapped } = definition;
29
+ assertAllFieldsMapped(unmapped);
30
+ return { type, monthOffset };
31
+ }
32
+ const { type, dataSourceTables, ...unmapped } = definition;
33
+ assertAllFieldsMapped(unmapped);
34
+ return {
35
+ type,
36
+ dataSourceTables: mapRecord(dataSourceTables, ({ path, version, ...rest }) => {
37
+ assertAllFieldsMapped(rest);
38
+ return { path: [...path], version };
39
+ }) ?? {},
40
+ };
41
+ }
42
+ function convertDatasetExtension(extension) {
43
+ const { id, workspaceDataFilterReferences, ...unmapped } = extension;
44
+ assertAllFieldsMapped(unmapped);
45
+ return withoutUndefined({
46
+ id,
47
+ workspaceDataFilterReferences: mapArray(workspaceDataFilterReferences, convertWorkspaceDataFilterReference),
48
+ });
49
+ }
50
+ function convertWorkspaceDataFilterReference(reference) {
51
+ const { filterColumn, filterColumnDataType, filterId, ...unmapped } = reference;
52
+ assertAllFieldsMapped(unmapped);
53
+ const { id, type, ...unmappedId } = filterId;
54
+ assertAllFieldsMapped(unmappedId);
55
+ return { filterColumn, filterColumnDataType, filterId: { id, type } };
56
+ }
57
+ function convertDataset(dataset) {
58
+ const { aggregatedFacts, attributes, dataSourceTableId, description, facts, grain, id, precedence, references, sql, tags, title, type, workspaceDataFilterColumns, workspaceDataFilterReferences, ...unmapped } = dataset;
59
+ assertAllFieldsMapped(unmapped);
60
+ return withoutUndefined({
61
+ aggregatedFacts: mapArray(aggregatedFacts, convertAggregatedFact),
62
+ attributes: mapArray(attributes, convertAttribute),
63
+ dataSourceTableId: dataSourceTableId && convertDataSourceTableId(dataSourceTableId),
64
+ description,
65
+ facts: mapArray(facts, convertFact),
66
+ grain: mapArray(grain, convertGrainIdentifier),
67
+ id,
68
+ precedence,
69
+ references: mapArray(references, convertReference),
70
+ sql: sql && convertDatasetSql(sql),
71
+ tags: copyArray(tags),
72
+ title,
73
+ type,
74
+ workspaceDataFilterColumns: mapArray(workspaceDataFilterColumns, convertWorkspaceDataFilterColumn),
75
+ workspaceDataFilterReferences: mapArray(workspaceDataFilterReferences, convertWorkspaceDataFilterReference),
76
+ });
77
+ }
78
+ function convertAggregatedFact(fact) {
79
+ const { description, id, isNullable, nullValue, sourceColumn, sourceColumnDataType, sourceFactReference, tags, ...unmapped } = fact;
80
+ assertAllFieldsMapped(unmapped);
81
+ const { operation, reference, ...unmappedReference } = sourceFactReference;
82
+ assertAllFieldsMapped(unmappedReference);
83
+ const { id: referenceId, type: referenceType, ...unmappedIdentifier } = reference;
84
+ assertAllFieldsMapped(unmappedIdentifier);
85
+ return withoutUndefined({
86
+ description,
87
+ id,
88
+ isNullable,
89
+ nullValue,
90
+ sourceColumn,
91
+ sourceColumnDataType,
92
+ sourceFactReference: { operation, reference: { id: referenceId, type: referenceType } },
93
+ tags: copyArray(tags),
94
+ });
95
+ }
96
+ function convertAttribute(attribute) {
97
+ const { conditionalFormatting, defaultView, description, id, isHidden, isNullable, labels, locale, nullValue, sortColumn, sortDirection, sourceColumn, sourceColumnDataType, tags, title, ...unmapped } = attribute;
98
+ assertAllFieldsMapped(unmapped);
99
+ return withoutUndefined({
100
+ conditionalFormatting: convertConditionalFormatting(conditionalFormatting),
101
+ defaultView: defaultView && convertLabelIdentifier(defaultView),
102
+ description,
103
+ id,
104
+ isHidden,
105
+ isNullable,
106
+ labels: mapArray(labels, convertLabel),
107
+ locale,
108
+ nullValue,
109
+ sortColumn,
110
+ sortDirection,
111
+ sourceColumn,
112
+ sourceColumnDataType,
113
+ tags: copyArray(tags),
114
+ title,
115
+ });
116
+ }
117
+ function convertLabel(label) {
118
+ const { conditionalFormatting, description, geoAreaConfig, id, isHidden, isNullable, locale, nullValue, sourceColumn, sourceColumnDataType, tags, title, translations, valueType, ...unmapped } = label;
119
+ assertAllFieldsMapped(unmapped);
120
+ return withoutUndefined({
121
+ conditionalFormatting: convertConditionalFormatting(conditionalFormatting),
122
+ description,
123
+ geoAreaConfig: geoAreaConfig && convertGeoAreaConfig(geoAreaConfig),
124
+ id,
125
+ isHidden,
126
+ isNullable,
127
+ locale,
128
+ nullValue,
129
+ sourceColumn,
130
+ sourceColumnDataType,
131
+ tags: copyArray(tags),
132
+ title,
133
+ translations: mapArray(translations, ({ locale, sourceColumn, ...rest }) => {
134
+ assertAllFieldsMapped(rest);
135
+ return { locale, sourceColumn };
136
+ }),
137
+ valueType,
138
+ });
139
+ }
140
+ function convertConditionalFormatting(conditionalFormatting) {
141
+ if (!conditionalFormatting) {
142
+ return conditionalFormatting;
143
+ }
144
+ const { conditions, enabled, ...unmapped } = conditionalFormatting;
145
+ assertAllFieldsMapped(unmapped);
146
+ return { conditions: conditions.map(convertConditionalFormattingCondition), enabled };
147
+ }
148
+ function convertConditionalFormattingCondition(condition) {
149
+ const { format, id, operator, value, ...unmapped } = condition;
150
+ assertAllFieldsMapped(unmapped);
151
+ const { backgroundColor, color, scope, ...unmappedFormat } = format;
152
+ assertAllFieldsMapped(unmappedFormat);
153
+ return withoutUndefined({
154
+ format: withoutUndefined({ backgroundColor, color, scope }),
155
+ id,
156
+ operator,
157
+ value: convertConditionalFormattingValue(value),
158
+ });
159
+ }
160
+ function convertConditionalFormattingValue(value) {
161
+ switch (value.kind) {
162
+ case "none": {
163
+ const { kind, ...unmapped } = value;
164
+ assertAllFieldsMapped(unmapped);
165
+ return { kind };
166
+ }
167
+ case "literal": {
168
+ const { kind, value: literal, ...unmapped } = value;
169
+ assertAllFieldsMapped(unmapped);
170
+ return { kind, value: literal };
171
+ }
172
+ case "literalRange": {
173
+ const { kind, from, to, ...unmapped } = value;
174
+ assertAllFieldsMapped(unmapped);
175
+ return { kind, from, to };
176
+ }
177
+ case "absoluteDate": {
178
+ const { from, to, kind, ...unmapped } = value;
179
+ assertAllFieldsMapped(unmapped);
180
+ return { from, to, kind };
181
+ }
182
+ case "relativeDate": {
183
+ const { kind, granularity, from, to, ...unmapped } = value;
184
+ assertAllFieldsMapped(unmapped);
185
+ return { kind, granularity, from, to };
186
+ }
187
+ }
188
+ }
189
+ function convertDataSourceTableId(tableId) {
190
+ const { dataSourceId, id, path, type, ...unmapped } = tableId;
191
+ assertAllFieldsMapped(unmapped);
192
+ return withoutUndefined({ dataSourceId, id, path: copyArray(path), type });
193
+ }
194
+ function convertFact(fact) {
195
+ const { description, id, isHidden, isNullable, nullValue, sourceColumn, sourceColumnDataType, tags, title, ...unmapped } = fact;
196
+ assertAllFieldsMapped(unmapped);
197
+ return withoutUndefined({
198
+ description,
199
+ id,
200
+ isHidden,
201
+ isNullable,
202
+ nullValue,
203
+ sourceColumn,
204
+ sourceColumnDataType,
205
+ tags: copyArray(tags),
206
+ title,
207
+ });
208
+ }
209
+ function convertGrainIdentifier(grain) {
210
+ const { id, type, ...unmapped } = grain;
211
+ assertAllFieldsMapped(unmapped);
212
+ return { id, type };
213
+ }
214
+ function convertReference(reference) {
215
+ const { identifier, multivalue, sourceColumnDataTypes, sourceColumns, sources, ...unmapped } = reference;
216
+ assertAllFieldsMapped(unmapped);
217
+ const { id, type, ...unmappedIdentifier } = identifier;
218
+ assertAllFieldsMapped(unmappedIdentifier);
219
+ return withoutUndefined({
220
+ identifier: { id, type },
221
+ multivalue,
222
+ sourceColumnDataTypes: copyArray(sourceColumnDataTypes),
223
+ sourceColumns: copyArray(sourceColumns),
224
+ sources: mapArray(sources, convertReferenceSource),
225
+ });
226
+ }
227
+ function convertReferenceSource(source) {
228
+ const { column, dataType, isNullable, nullValue, target, ...unmapped } = source;
229
+ assertAllFieldsMapped(unmapped);
230
+ return withoutUndefined({
231
+ column,
232
+ dataType,
233
+ isNullable,
234
+ nullValue,
235
+ target: convertGrainIdentifier(target),
236
+ });
237
+ }
238
+ function convertDatasetSql(sql) {
239
+ const { dataSourceId, statement, ...unmapped } = sql;
240
+ assertAllFieldsMapped(unmapped);
241
+ return { dataSourceId, statement };
242
+ }
243
+ function convertWorkspaceDataFilterColumn(column) {
244
+ const { dataType, name, ...unmapped } = column;
245
+ assertAllFieldsMapped(unmapped);
246
+ return { dataType, name };
247
+ }
248
+ function convertDateDataset(dateDataset) {
249
+ const { conditionalFormatting, description, granularities, granularitiesFormatting, id, tags, title, ...unmapped } = dateDataset;
250
+ assertAllFieldsMapped(unmapped);
251
+ const { titleBase, titlePattern, ...unmappedFormatting } = granularitiesFormatting;
252
+ assertAllFieldsMapped(unmappedFormatting);
253
+ return withoutUndefined({
254
+ conditionalFormatting: convertConditionalFormatting(conditionalFormatting),
255
+ description,
256
+ granularities: [...granularities],
257
+ granularitiesFormatting: { titleBase, titlePattern },
258
+ id,
259
+ tags: copyArray(tags),
260
+ title,
261
+ });
262
+ }
263
+ function convertLabelIdentifier(identifier) {
264
+ const { id, type, ...unmapped } = identifier;
265
+ assertAllFieldsMapped(unmapped);
266
+ return { id, type };
267
+ }
268
+ function convertGeoAreaConfig(config) {
269
+ const { collection, ...unmapped } = config;
270
+ assertAllFieldsMapped(unmapped);
271
+ return { collection: convertGeoCollectionIdentifier(collection) };
272
+ }
273
+ function convertGeoCollectionIdentifier(identifier) {
274
+ const { id, kind, ...unmapped } = identifier;
275
+ assertAllFieldsMapped(unmapped);
276
+ return withoutUndefined({ id, kind });
277
+ }
@@ -0,0 +1,5 @@
1
+ import { type GenerateLdmRequest, type ScanRequest } from "@gooddata/api-client-tiger";
2
+ import { type IDataSourceScanRequest, type IGenerateLogicalModelRequest } from "@gooddata/sdk-model";
3
+ export declare function convertScanRequest(request: IDataSourceScanRequest): ScanRequest;
4
+ export declare function convertGenerateLogicalModelRequest(request: IGenerateLogicalModelRequest): GenerateLdmRequest;
5
+ //# sourceMappingURL=PhysicalModelConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicalModelConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/toBackend/PhysicalModelConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EAIH,KAAK,kBAAkB,EAGvB,KAAK,WAAW,EAEnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,sBAAsB,EAG3B,KAAK,4BAA4B,EAKpC,MAAM,qBAAqB,CAAC;AAI7B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,CAW/E;AAED,wBAAgB,kCAAkC,CAC9C,OAAO,EAAE,4BAA4B,GACtC,kBAAkB,CA+CpB"}
@@ -0,0 +1,97 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { assertAllFieldsMapped, copyArray, mapArray, withoutUndefined } from "../shared/declarativeFields.js";
3
+ export function convertScanRequest(request) {
4
+ const { scanTables, scanViews, schemata, separator, tablePrefix, viewPrefix, ...unmapped } = request;
5
+ assertAllFieldsMapped(unmapped);
6
+ return withoutUndefined({
7
+ scanTables,
8
+ scanViews,
9
+ schemata: copyArray(schemata),
10
+ separator,
11
+ tablePrefix,
12
+ viewPrefix,
13
+ });
14
+ }
15
+ export function convertGenerateLogicalModelRequest(request) {
16
+ const { aggregatedFactPrefix, dateGranularities, dateReferencePrefix, denormPrefix, factPrefix, generateLongIds, grainMultivalueReferencePrefix, grainPrefix, grainReferencePrefix, multivalueReferencePrefix, pdm, primaryLabelPrefix, referencePrefix, secondaryLabelPrefix, separator, tablePrefix, translationPrefix, viewPrefix, wdfPrefix, workspaceId, ...unmapped } = request;
17
+ assertAllFieldsMapped(unmapped);
18
+ return withoutUndefined({
19
+ aggregatedFactPrefix,
20
+ dateGranularities,
21
+ dateReferencePrefix,
22
+ denormPrefix,
23
+ factPrefix,
24
+ generateLongIds,
25
+ grainMultivalueReferencePrefix,
26
+ grainPrefix,
27
+ grainReferencePrefix,
28
+ multivalueReferencePrefix,
29
+ pdm: pdm && convertPdm(pdm),
30
+ primaryLabelPrefix,
31
+ referencePrefix,
32
+ secondaryLabelPrefix,
33
+ separator,
34
+ tablePrefix,
35
+ translationPrefix,
36
+ viewPrefix,
37
+ wdfPrefix,
38
+ workspaceId,
39
+ });
40
+ }
41
+ function convertPdm(pdm) {
42
+ const { sqls, tableOverrides, tables, ...unmapped } = pdm;
43
+ assertAllFieldsMapped(unmapped);
44
+ return withoutUndefined({
45
+ sqls: mapArray(sqls, convertSql),
46
+ tableOverrides: mapArray(tableOverrides, convertTableOverride),
47
+ tables: mapArray(tables, convertTable),
48
+ });
49
+ }
50
+ function convertSql(sql) {
51
+ const { columns, statement, title, ...unmapped } = sql;
52
+ assertAllFieldsMapped(unmapped);
53
+ return withoutUndefined({
54
+ columns: mapArray(columns, ({ dataType, name, nullValue, ...rest }) => {
55
+ assertAllFieldsMapped(rest);
56
+ return withoutUndefined({ dataType, name, nullValue });
57
+ }),
58
+ statement,
59
+ title,
60
+ });
61
+ }
62
+ function convertTableOverride(override) {
63
+ const { columns, path, ...unmapped } = override;
64
+ assertAllFieldsMapped(unmapped);
65
+ return { columns: columns.map(convertColumnOverride), path: [...path] };
66
+ }
67
+ function convertColumnOverride(override) {
68
+ const { labelTargetColumn, labelType, ldmTypeOverride, name, ...unmapped } = override;
69
+ assertAllFieldsMapped(unmapped);
70
+ return withoutUndefined({ labelTargetColumn, labelType, ldmTypeOverride, name });
71
+ }
72
+ function convertTable(table) {
73
+ const { columns, id, namePrefix, path, type, ...unmapped } = table;
74
+ assertAllFieldsMapped(unmapped);
75
+ return withoutUndefined({
76
+ columns: columns.map(convertColumn),
77
+ id,
78
+ namePrefix,
79
+ path: [...path],
80
+ type,
81
+ });
82
+ }
83
+ function convertColumn(column) {
84
+ const { dataType, defaultLabelOf, description, isNullable, isPrimaryKey, name, nullValue, referencedTableColumn, referencedTableId, ...unmapped } = column;
85
+ assertAllFieldsMapped(unmapped);
86
+ return withoutUndefined({
87
+ dataType,
88
+ defaultLabelOf,
89
+ description,
90
+ isNullable,
91
+ isPrimaryKey,
92
+ name,
93
+ nullValue,
94
+ referencedTableColumn,
95
+ referencedTableId,
96
+ });
97
+ }
@@ -0,0 +1,3 @@
1
+ export declare const getApiProblemDetail: (error: unknown) => string | undefined;
2
+ export declare const getDataSourceErrorMessage: (error: unknown) => string;
3
+ //# sourceMappingURL=apiProblemDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiProblemDetail.d.ts","sourceRoot":"","sources":["../../src/utils/apiProblemDetail.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,UAAW,OAAO,KAAG,MAAM,GAAG,SAK7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAW,OAAO,KAAG,MAS1D,CAAC"}
@@ -0,0 +1,19 @@
1
+ // (C) 2026 GoodData Corporation
2
+ // An API rejection carries the actionable reason in the problem `detail` field, while the
3
+ // surrounding AxiosError message only names the status code. The authenticated call converts
4
+ // the AxiosError to a backend error and keeps the original as its cause.
5
+ export const getApiProblemDetail = (error) => {
6
+ const problemError = error;
7
+ const detail = problemError?.response?.data?.detail ?? problemError?.cause?.response?.data?.detail;
8
+ return typeof detail === "string" && detail.trim() !== "" ? detail : undefined;
9
+ };
10
+ export const getDataSourceErrorMessage = (error) => {
11
+ const detail = getApiProblemDetail(error);
12
+ if (detail !== undefined) {
13
+ return detail;
14
+ }
15
+ if (error instanceof Error) {
16
+ return error.message;
17
+ }
18
+ return String(error);
19
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-backend-tiger",
3
- "version": "11.64.0-alpha.1",
3
+ "version": "11.64.0-alpha.3",
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.64.0-alpha.1",
38
- "@gooddata/sdk-code-convertors": "11.64.0-alpha.1",
39
- "@gooddata/sdk-backend-spi": "11.64.0-alpha.1",
40
- "@gooddata/sdk-model": "11.64.0-alpha.1",
41
- "@gooddata/sdk-backend-base": "11.64.0-alpha.1",
42
- "@gooddata/util": "11.64.0-alpha.1"
37
+ "@gooddata/api-client-tiger": "11.64.0-alpha.3",
38
+ "@gooddata/sdk-backend-spi": "11.64.0-alpha.3",
39
+ "@gooddata/sdk-code-convertors": "11.64.0-alpha.3",
40
+ "@gooddata/sdk-backend-base": "11.64.0-alpha.3",
41
+ "@gooddata/sdk-model": "11.64.0-alpha.3",
42
+ "@gooddata/util": "11.64.0-alpha.3"
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.64.0-alpha.1",
68
- "@gooddata/oxlint-config": "11.64.0-alpha.1",
69
- "@gooddata/reference-workspace": "11.64.0-alpha.1",
70
- "@gooddata/catalog-export": "11.64.0-alpha.1"
67
+ "@gooddata/catalog-export": "11.64.0-alpha.3",
68
+ "@gooddata/oxlint-config": "11.64.0-alpha.3",
69
+ "@gooddata/reference-workspace": "11.64.0-alpha.3",
70
+ "@gooddata/eslint-config": "11.64.0-alpha.3"
71
71
  },
72
72
  "scripts": {
73
73
  "_phase:build": "npm run build",