@gooddata/sdk-backend-base 9.0.0-alpha.9 → 9.0.0-beta.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.
- package/esm/cachingBackend/index.js +14 -14
- package/esm/cachingBackend/index.js.map +1 -1
- package/esm/customBackend/config.d.ts +2 -2
- package/esm/customBackend/config.d.ts.map +1 -1
- package/esm/customBackend/execution.d.ts +2 -2
- package/esm/customBackend/execution.d.ts.map +1 -1
- package/esm/customBackend/execution.js +2 -2
- package/esm/customBackend/execution.js.map +1 -1
- package/esm/customBackend/index.d.ts +3 -3
- package/esm/customBackend/index.d.ts.map +1 -1
- package/esm/customBackend/index.js +2 -2
- package/esm/customBackend/index.js.map +1 -1
- package/esm/customBackend/workspace.d.ts +1 -1
- package/esm/customBackend/workspace.d.ts.map +1 -1
- package/esm/customBackend/workspace.js +1 -1
- package/esm/customBackend/workspace.js.map +1 -1
- package/esm/decoratedBackend/catalog.js +1 -1
- package/esm/decoratedBackend/catalog.js.map +1 -1
- package/esm/decoratedBackend/execution.js +1 -1
- package/esm/decoratedBackend/execution.js.map +1 -1
- package/esm/decoratedBackend/index.js +1 -1
- package/esm/decoratedBackend/index.js.map +1 -1
- package/esm/dummyBackend/index.js +3 -3
- package/esm/dummyBackend/index.js.map +1 -1
- package/esm/eventingBackend/index.js +3 -3
- package/esm/eventingBackend/index.js.map +1 -1
- package/esm/index.d.ts +37 -37
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +35 -35
- package/esm/index.js.map +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.d.ts +4 -4
- package/esm/ldmFactories/catalog/attributeFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.js +5 -5
- package/esm/ldmFactories/catalog/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/dateDatasetFactory.d.ts +4 -4
- package/esm/ldmFactories/catalog/dateDatasetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/dateDatasetFactory.js +5 -5
- package/esm/ldmFactories/catalog/dateDatasetFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/factFactory.d.ts +3 -3
- package/esm/ldmFactories/catalog/factFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/factFactory.js +4 -4
- package/esm/ldmFactories/catalog/factFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/groupFactory.d.ts +1 -1
- package/esm/ldmFactories/catalog/groupFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/groupFactory.js +2 -2
- package/esm/ldmFactories/catalog/groupFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/measureFactory.d.ts +3 -3
- package/esm/ldmFactories/catalog/measureFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/measureFactory.js +4 -4
- package/esm/ldmFactories/catalog/measureFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/insightWidgetFactory.d.ts +2 -2
- package/esm/ldmFactories/dashboard/insightWidgetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js +2 -2
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.d.ts +2 -2
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js +3 -3
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.d.ts +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.js +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/attributeFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/attributeFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/attributeFactory.js +3 -3
- package/esm/ldmFactories/metadata/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/dashboardFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/dashboardFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/dashboardFactory.js +3 -3
- package/esm/ldmFactories/metadata/dashboardFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/dataSetFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/dataSetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/dataSetFactory.js +3 -3
- package/esm/ldmFactories/metadata/dataSetFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/displayFormFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/displayFormFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/displayFormFactory.js +3 -3
- package/esm/ldmFactories/metadata/displayFormFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/factFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/factFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/factFactory.js +3 -3
- package/esm/ldmFactories/metadata/factFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/factory.d.ts +1 -1
- package/esm/ldmFactories/metadata/factory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/factory.js +1 -1
- package/esm/ldmFactories/metadata/factory.js.map +1 -1
- package/esm/ldmFactories/metadata/measureFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/measureFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/measureFactory.js +3 -3
- package/esm/ldmFactories/metadata/measureFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/variableFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/variableFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/variableFactory.js +3 -3
- package/esm/ldmFactories/metadata/variableFactory.js.map +1 -1
- package/esm/normalizingBackend/index.d.ts +1 -1
- package/esm/normalizingBackend/index.d.ts.map +1 -1
- package/esm/normalizingBackend/index.js +4 -4
- package/esm/normalizingBackend/index.js.map +1 -1
- package/esm/normalizingBackend/normalizer.d.ts +2 -0
- package/esm/normalizingBackend/normalizer.d.ts.map +1 -1
- package/esm/normalizingBackend/normalizer.js +18 -4
- package/esm/normalizingBackend/normalizer.js.map +1 -1
- package/{dist → esm}/sdk-backend-base.d.ts +2 -0
- package/esm/toolkit/execution.d.ts +1 -1
- package/esm/toolkit/execution.d.ts.map +1 -1
- package/esm/toolkit/execution.js +1 -1
- package/esm/toolkit/execution.js.map +1 -1
- package/esm/toolkit/paging.js +4 -4
- package/esm/toolkit/paging.js.map +1 -1
- package/esm/tsdoc-metadata.json +1 -1
- package/esm/workspaceSettingsBackend/index.js +3 -3
- package/esm/workspaceSettingsBackend/index.js.map +1 -1
- package/package.json +25 -35
- package/dist/cachingBackend/index.d.ts +0 -230
- package/dist/cachingBackend/index.d.ts.map +0 -1
- package/dist/cachingBackend/index.js +0 -579
- package/dist/cachingBackend/index.js.map +0 -1
- package/dist/convertors/fromBackend/afm/result.d.ts +0 -18
- package/dist/convertors/fromBackend/afm/result.d.ts.map +0 -1
- package/dist/convertors/fromBackend/afm/result.js +0 -28
- package/dist/convertors/fromBackend/afm/result.js.map +0 -1
- package/dist/customBackend/config.d.ts +0 -151
- package/dist/customBackend/config.d.ts.map +0 -1
- package/dist/customBackend/config.js +0 -3
- package/dist/customBackend/config.js.map +0 -1
- package/dist/customBackend/execution.d.ts +0 -14
- package/dist/customBackend/execution.d.ts.map +0 -1
- package/dist/customBackend/execution.js +0 -139
- package/dist/customBackend/execution.js.map +0 -1
- package/dist/customBackend/index.d.ts +0 -47
- package/dist/customBackend/index.d.ts.map +0 -1
- package/dist/customBackend/index.js +0 -150
- package/dist/customBackend/index.js.map +0 -1
- package/dist/customBackend/workspace.d.ts +0 -29
- package/dist/customBackend/workspace.d.ts.map +0 -1
- package/dist/customBackend/workspace.js +0 -78
- package/dist/customBackend/workspace.js.map +0 -1
- package/dist/decoratedBackend/attributes.d.ts +0 -19
- package/dist/decoratedBackend/attributes.d.ts.map +0 -1
- package/dist/decoratedBackend/attributes.js +0 -41
- package/dist/decoratedBackend/attributes.js.map +0 -1
- package/dist/decoratedBackend/catalog.d.ts +0 -46
- package/dist/decoratedBackend/catalog.d.ts.map +0 -1
- package/dist/decoratedBackend/catalog.js +0 -70
- package/dist/decoratedBackend/catalog.js.map +0 -1
- package/dist/decoratedBackend/dashboards.d.ts +0 -40
- package/dist/decoratedBackend/dashboards.d.ts.map +0 -1
- package/dist/decoratedBackend/dashboards.js +0 -101
- package/dist/decoratedBackend/dashboards.js.map +0 -1
- package/dist/decoratedBackend/elements.d.ts +0 -66
- package/dist/decoratedBackend/elements.d.ts.map +0 -1
- package/dist/decoratedBackend/elements.js +0 -81
- package/dist/decoratedBackend/elements.js.map +0 -1
- package/dist/decoratedBackend/execution.d.ts +0 -107
- package/dist/decoratedBackend/execution.d.ts.map +0 -1
- package/dist/decoratedBackend/execution.js +0 -152
- package/dist/decoratedBackend/execution.js.map +0 -1
- package/dist/decoratedBackend/index.d.ts +0 -54
- package/dist/decoratedBackend/index.d.ts.map +0 -1
- package/dist/decoratedBackend/index.js +0 -181
- package/dist/decoratedBackend/index.js.map +0 -1
- package/dist/decoratedBackend/securitySettings.d.ts +0 -12
- package/dist/decoratedBackend/securitySettings.d.ts.map +0 -1
- package/dist/decoratedBackend/securitySettings.js +0 -21
- package/dist/decoratedBackend/securitySettings.js.map +0 -1
- package/dist/decoratedBackend/workspaceSettings.d.ts +0 -12
- package/dist/decoratedBackend/workspaceSettings.d.ts.map +0 -1
- package/dist/decoratedBackend/workspaceSettings.js +0 -22
- package/dist/decoratedBackend/workspaceSettings.js.map +0 -1
- package/dist/dummyBackend/index.d.ts +0 -62
- package/dist/dummyBackend/index.d.ts.map +0 -1
- package/dist/dummyBackend/index.js +0 -729
- package/dist/dummyBackend/index.js.map +0 -1
- package/dist/eventingBackend/index.d.ts +0 -74
- package/dist/eventingBackend/index.d.ts.map +0 -1
- package/dist/eventingBackend/index.js +0 -84
- package/dist/eventingBackend/index.js.map +0 -1
- package/dist/index.d.ts +0 -48
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -117
- package/dist/index.js.map +0 -1
- package/dist/ldmFactories/builder.d.ts +0 -75
- package/dist/ldmFactories/builder.d.ts.map +0 -1
- package/dist/ldmFactories/builder.js +0 -59
- package/dist/ldmFactories/builder.js.map +0 -1
- package/dist/ldmFactories/catalog/attributeFactory.d.ts +0 -27
- package/dist/ldmFactories/catalog/attributeFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/attributeFactory.js +0 -63
- package/dist/ldmFactories/catalog/attributeFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/dateDatasetFactory.d.ts +0 -44
- package/dist/ldmFactories/catalog/dateDatasetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/dateDatasetFactory.js +0 -87
- package/dist/ldmFactories/catalog/dateDatasetFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/factFactory.d.ts +0 -22
- package/dist/ldmFactories/catalog/factFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/factFactory.js +0 -38
- package/dist/ldmFactories/catalog/factFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/groupFactory.d.ts +0 -38
- package/dist/ldmFactories/catalog/groupFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/groupFactory.js +0 -47
- package/dist/ldmFactories/catalog/groupFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/measureFactory.d.ts +0 -23
- package/dist/ldmFactories/catalog/measureFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/measureFactory.js +0 -45
- package/dist/ldmFactories/catalog/measureFactory.js.map +0 -1
- package/dist/ldmFactories/dashboard/insightWidgetFactory.d.ts +0 -31
- package/dist/ldmFactories/dashboard/insightWidgetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/dashboard/insightWidgetFactory.js +0 -45
- package/dist/ldmFactories/dashboard/insightWidgetFactory.js.map +0 -1
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.d.ts +0 -34
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.js +0 -55
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.js.map +0 -1
- package/dist/ldmFactories/dashboard/widgetFactory.d.ts +0 -31
- package/dist/ldmFactories/dashboard/widgetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/dashboard/widgetFactory.js +0 -29
- package/dist/ldmFactories/dashboard/widgetFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/attributeFactory.d.ts +0 -24
- package/dist/ldmFactories/metadata/attributeFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/attributeFactory.js +0 -44
- package/dist/ldmFactories/metadata/attributeFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/dashboardFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/dashboardFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/dashboardFactory.js +0 -28
- package/dist/ldmFactories/metadata/dashboardFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/dataSetFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/dataSetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/dataSetFactory.js +0 -28
- package/dist/ldmFactories/metadata/dataSetFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/displayFormFactory.d.ts +0 -24
- package/dist/ldmFactories/metadata/displayFormFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/displayFormFactory.js +0 -40
- package/dist/ldmFactories/metadata/displayFormFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/factFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/factFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/factFactory.js +0 -28
- package/dist/ldmFactories/metadata/factFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/factory.d.ts +0 -74
- package/dist/ldmFactories/metadata/factory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/factory.js +0 -43
- package/dist/ldmFactories/metadata/factory.js.map +0 -1
- package/dist/ldmFactories/metadata/measureFactory.d.ts +0 -24
- package/dist/ldmFactories/metadata/measureFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/measureFactory.js +0 -40
- package/dist/ldmFactories/metadata/measureFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/variableFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/variableFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/variableFactory.js +0 -28
- package/dist/ldmFactories/metadata/variableFactory.js.map +0 -1
- package/dist/normalizingBackend/index.d.ts +0 -46
- package/dist/normalizingBackend/index.d.ts.map +0 -1
- package/dist/normalizingBackend/index.js +0 -174
- package/dist/normalizingBackend/index.js.map +0 -1
- package/dist/normalizingBackend/normalizer.d.ts +0 -131
- package/dist/normalizingBackend/normalizer.d.ts.map +0 -1
- package/dist/normalizingBackend/normalizer.js +0 -352
- package/dist/normalizingBackend/normalizer.js.map +0 -1
- package/dist/toolkit/auth.d.ts +0 -83
- package/dist/toolkit/auth.d.ts.map +0 -1
- package/dist/toolkit/auth.js +0 -106
- package/dist/toolkit/auth.js.map +0 -1
- package/dist/toolkit/backend.d.ts +0 -8
- package/dist/toolkit/backend.d.ts.map +0 -1
- package/dist/toolkit/backend.js +0 -3
- package/dist/toolkit/backend.js.map +0 -1
- package/dist/toolkit/execution.d.ts +0 -54
- package/dist/toolkit/execution.d.ts.map +0 -1
- package/dist/toolkit/execution.js +0 -88
- package/dist/toolkit/execution.js.map +0 -1
- package/dist/toolkit/paging.d.ts +0 -52
- package/dist/toolkit/paging.d.ts.map +0 -1
- package/dist/toolkit/paging.js +0 -109
- package/dist/toolkit/paging.js.map +0 -1
- package/dist/toolkit/pluginUrlValidation.d.ts +0 -9
- package/dist/toolkit/pluginUrlValidation.d.ts.map +0 -1
- package/dist/toolkit/pluginUrlValidation.js +0 -50
- package/dist/toolkit/pluginUrlValidation.js.map +0 -1
- package/dist/workspaceSettingsBackend/index.d.ts +0 -53
- package/dist/workspaceSettingsBackend/index.d.ts.map +0 -1
- package/dist/workspaceSettingsBackend/index.js +0 -42
- package/dist/workspaceSettingsBackend/index.js.map +0 -1
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Normalizer = exports.Denormalizer = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
// (C) 2007-2023 GoodData Corporation
|
|
6
|
-
const sdk_model_1 = require("@gooddata/sdk-model");
|
|
7
|
-
const ts_invariant_1 = tslib_1.__importDefault(require("ts-invariant"));
|
|
8
|
-
const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
|
|
9
|
-
const cloneDeepWith_1 = tslib_1.__importDefault(require("lodash/cloneDeepWith"));
|
|
10
|
-
const keyBy_1 = tslib_1.__importDefault(require("lodash/keyBy"));
|
|
11
|
-
/**
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
class Denormalizer {
|
|
15
|
-
static from(state) {
|
|
16
|
-
return new Denormalizer(state);
|
|
17
|
-
}
|
|
18
|
-
constructor(state) {
|
|
19
|
-
this.state = state;
|
|
20
|
-
/**
|
|
21
|
-
* Given the current normalization state, this method transforms the dimension descriptors of the
|
|
22
|
-
* normalized execution, so that all the customization of the original execution definition is restored
|
|
23
|
-
* into them:
|
|
24
|
-
*
|
|
25
|
-
* - Reverse lookup of local identifiers happens
|
|
26
|
-
* - Attribute / Measure name is set according to the defined alias
|
|
27
|
-
* - Measure format is set according to the format in definition
|
|
28
|
-
*
|
|
29
|
-
* @param normalizedDims - normalized dimension descriptors
|
|
30
|
-
* @returns new descriptors
|
|
31
|
-
*/
|
|
32
|
-
this.denormalizeDimDescriptors = (normalizedDims) => {
|
|
33
|
-
var _a;
|
|
34
|
-
const measureGroup = (_a = normalizedDims
|
|
35
|
-
.find((normalizedDim) => normalizedDim.headers.find((header) => (0, sdk_model_1.isMeasureGroupDescriptor)(header)))) === null || _a === void 0 ? void 0 : _a.headers.find((header) => (0, sdk_model_1.isMeasureGroupDescriptor)(header));
|
|
36
|
-
return (0, cloneDeepWith_1.default)(normalizedDims, (value) => {
|
|
37
|
-
var _a;
|
|
38
|
-
if ((0, sdk_model_1.isAttributeDescriptor)(value)) {
|
|
39
|
-
const localIdentifier = this.originalLocalId(value.attributeHeader.localIdentifier);
|
|
40
|
-
const attribute = this.originalAttributes[localIdentifier];
|
|
41
|
-
const name = (0, sdk_model_1.attributeAlias)(attribute) || value.attributeHeader.formOf.name;
|
|
42
|
-
return {
|
|
43
|
-
attributeHeader: Object.assign(Object.assign({}, value.attributeHeader), { localIdentifier, formOf: Object.assign(Object.assign({}, value.attributeHeader.formOf), { name }) }),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
else if ((0, sdk_model_1.isMeasureDescriptor)(value)) {
|
|
47
|
-
const localIdentifier = this.originalLocalId(value.measureHeaderItem.localIdentifier);
|
|
48
|
-
const measure = this.originalMeasures[localIdentifier];
|
|
49
|
-
const masterMeasureId = (0, sdk_model_1.measureMasterIdentifier)(measure);
|
|
50
|
-
const masterMeasureInheritFormat = (0, sdk_model_1.isMeasureGroupDescriptor)(measureGroup) &&
|
|
51
|
-
((_a = measureGroup.measureGroupHeader.items.find((item) => this.originalLocalId(item.measureHeaderItem.localIdentifier) === masterMeasureId)) === null || _a === void 0 ? void 0 : _a.measureHeaderItem.format);
|
|
52
|
-
/**
|
|
53
|
-
* Measure format is taken by priority from:
|
|
54
|
-
* 1) the chosen format of the measure (undefined for inherited format and derived measures)
|
|
55
|
-
* 2) the chosen format of the master measure (undefined for inherited format and master)
|
|
56
|
-
* 3) the inherited format of master measure (undefined for master)
|
|
57
|
-
* 4) the inherited format for master measure or default "#,#.##" for derived
|
|
58
|
-
*/
|
|
59
|
-
const format = (0, sdk_model_1.measureFormat)(measure) ||
|
|
60
|
-
(masterMeasureId && (0, sdk_model_1.measureFormat)(this.originalMeasures[masterMeasureId])) ||
|
|
61
|
-
masterMeasureInheritFormat ||
|
|
62
|
-
value.measureHeaderItem.format;
|
|
63
|
-
const name = this.originalMeasureTitle(measure, value.measureHeaderItem.name);
|
|
64
|
-
return {
|
|
65
|
-
measureHeaderItem: Object.assign(Object.assign({}, value.measureHeaderItem), { localIdentifier,
|
|
66
|
-
format,
|
|
67
|
-
name }),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
// let the default logic handle this
|
|
71
|
-
return undefined;
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Derived measures or arithmetic measures have the 'name' in result header defaulted to measure
|
|
76
|
-
* localId. This method deals with it. It creates a copy of headers with the measure headers denormalized,
|
|
77
|
-
* values replaced with the contents of alias or title (whichever comes first).
|
|
78
|
-
*
|
|
79
|
-
* @param headerItems - headers to denormalize, copy will be done
|
|
80
|
-
* @returns new headers
|
|
81
|
-
*/
|
|
82
|
-
this.denormalizeHeaders = (headerItems) => {
|
|
83
|
-
return (0, cloneDeepWith_1.default)(headerItems, (value) => {
|
|
84
|
-
if ((0, sdk_model_1.isResultMeasureHeader)(value)) {
|
|
85
|
-
return {
|
|
86
|
-
measureHeaderItem: {
|
|
87
|
-
name: this.fillOriginalMeasureTitle(value.measureHeaderItem.name),
|
|
88
|
-
order: value.measureHeaderItem.order,
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
// let the default logic handle this
|
|
93
|
-
return undefined;
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
this.originalLocalId = (normalized) => {
|
|
97
|
-
const value = this.state.n2oMap[normalized];
|
|
98
|
-
(0, ts_invariant_1.default)(value, `mapping from normalized to real localId does not exist. Normalized: ${normalized}`);
|
|
99
|
-
return value;
|
|
100
|
-
};
|
|
101
|
-
this.fillOriginalMeasureTitle = (name) => {
|
|
102
|
-
const originalLocalId = this.state.n2oMap[name];
|
|
103
|
-
if (!originalLocalId) {
|
|
104
|
-
return name;
|
|
105
|
-
}
|
|
106
|
-
const measure = this.originalMeasures[originalLocalId];
|
|
107
|
-
if (!measure) {
|
|
108
|
-
return name;
|
|
109
|
-
}
|
|
110
|
-
return this.originalMeasureTitle(measure, name);
|
|
111
|
-
};
|
|
112
|
-
this.originalMeasureTitle = (originalDef, nameFromBackend) => {
|
|
113
|
-
return (0, sdk_model_1.measureAlias)(originalDef) || (0, sdk_model_1.measureTitle)(originalDef) || nameFromBackend;
|
|
114
|
-
};
|
|
115
|
-
this.originalAttributes = (0, keyBy_1.default)(state.original.attributes, sdk_model_1.attributeLocalId);
|
|
116
|
-
this.originalMeasures = (0, keyBy_1.default)(state.original.measures, sdk_model_1.measureLocalId);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
exports.Denormalizer = Denormalizer;
|
|
120
|
-
/**
|
|
121
|
-
* The normalization of execution definition means stripping away all the detail that is unnecessary for the
|
|
122
|
-
* backend:
|
|
123
|
-
*
|
|
124
|
-
* - attribute / measure alias
|
|
125
|
-
* - measure title
|
|
126
|
-
* - measure format
|
|
127
|
-
* - custom-crafted local IDs
|
|
128
|
-
*
|
|
129
|
-
* The code does the job by _mutating_ a clone of the original definition. The mutation approach, while not
|
|
130
|
-
* backed by functionality in sdk-model and therefore somewhat hacky, is a simpler one for this task.
|
|
131
|
-
*
|
|
132
|
-
* The main reason behind that is the occurrence of attribute and measure objects in multiple parts of the
|
|
133
|
-
* execution definition: same attributes and measures are referenced from both buckets and the attributes and measures
|
|
134
|
-
* props of the execution definition. Mutating values means that after normalizing values the execution definition
|
|
135
|
-
* is fully normalized.
|
|
136
|
-
*
|
|
137
|
-
* @internal
|
|
138
|
-
*/
|
|
139
|
-
class Normalizer {
|
|
140
|
-
static normalize(def, options) {
|
|
141
|
-
const n = new Normalizer(def, options);
|
|
142
|
-
return n.normalize();
|
|
143
|
-
}
|
|
144
|
-
constructor(original, options = {}) {
|
|
145
|
-
this.original = original;
|
|
146
|
-
this.options = options;
|
|
147
|
-
/**
|
|
148
|
-
* original to normalized local id map
|
|
149
|
-
*/
|
|
150
|
-
this.o2nMap = {};
|
|
151
|
-
/**
|
|
152
|
-
* normalized to original local id map
|
|
153
|
-
*/
|
|
154
|
-
this.n2oMap = {};
|
|
155
|
-
this.originalMeasures = new Map();
|
|
156
|
-
this.alreadyNormalized = [];
|
|
157
|
-
/**
|
|
158
|
-
* Creates a new mapping between original local ID and the proposed normalized local ID. This method
|
|
159
|
-
* ensures uniqueness of the normalized local ID. If the proposed normalized local ID is taken, it will
|
|
160
|
-
* append a suffix to make a unique local ID.
|
|
161
|
-
*
|
|
162
|
-
* This can happen if the original execution definition contains same measure / attribute multiple times,
|
|
163
|
-
* each time using different local ID.
|
|
164
|
-
*/
|
|
165
|
-
this.createUniqueMapping = (original, normalized) => {
|
|
166
|
-
(0, ts_invariant_1.default)(!this.o2nMap[original], `duplicate localId used in execution definition: ${original}`);
|
|
167
|
-
let uniqueNormalized = normalized;
|
|
168
|
-
let attempt = 1;
|
|
169
|
-
while (this.n2oMap[uniqueNormalized]) {
|
|
170
|
-
uniqueNormalized = `${normalized}_${attempt}`;
|
|
171
|
-
attempt += 1;
|
|
172
|
-
}
|
|
173
|
-
this.o2nMap[original] = uniqueNormalized;
|
|
174
|
-
this.n2oMap[uniqueNormalized] = original;
|
|
175
|
-
return uniqueNormalized;
|
|
176
|
-
};
|
|
177
|
-
this.normalizedLocalId = (original) => {
|
|
178
|
-
const value = this.o2nMap[original];
|
|
179
|
-
(0, ts_invariant_1.default)(value, `dangling localId reference. Target: ${original}`);
|
|
180
|
-
return value;
|
|
181
|
-
};
|
|
182
|
-
this.maybeNormalizedLocalId = (original) => {
|
|
183
|
-
return this.o2nMap[original];
|
|
184
|
-
};
|
|
185
|
-
this.normalizeAttributes = () => {
|
|
186
|
-
this.normalized.attributes.forEach((attr) => {
|
|
187
|
-
if (!this.options.keepRemovableProperties) {
|
|
188
|
-
delete attr.attribute.alias;
|
|
189
|
-
}
|
|
190
|
-
const originalLocalId = (0, sdk_model_1.attributeLocalId)(attr);
|
|
191
|
-
const normalizedLocalId = (0, sdk_model_1.attributeLocalId)((0, sdk_model_1.modifyAttribute)(attr, (m) => m.noAlias().defaultLocalId()));
|
|
192
|
-
attr.attribute.localIdentifier = this.createUniqueMapping(originalLocalId, normalizedLocalId);
|
|
193
|
-
});
|
|
194
|
-
};
|
|
195
|
-
/**
|
|
196
|
-
* Simple measure normalization will toss away noop filters. There is nothing else to do.
|
|
197
|
-
*/
|
|
198
|
-
this.normalizeSimple = (def) => {
|
|
199
|
-
var _a;
|
|
200
|
-
if (!def.measureDefinition.filters) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
def.measureDefinition.filters = (_a = def.measureDefinition.filters) === null || _a === void 0 ? void 0 : _a.filter((filter) => {
|
|
204
|
-
return !(0, sdk_model_1.isNegativeAttributeFilter)(filter) || !(0, sdk_model_1.filterIsEmpty)(filter);
|
|
205
|
-
});
|
|
206
|
-
};
|
|
207
|
-
this.normalizePoP = (def, path) => {
|
|
208
|
-
const masterMeasure = def.popMeasureDefinition.measureIdentifier;
|
|
209
|
-
const normalizedId = this.maybeNormalizedLocalId(masterMeasure) || this.normalizeMeasureByLocalId(masterMeasure, path);
|
|
210
|
-
def.popMeasureDefinition.measureIdentifier = normalizedId;
|
|
211
|
-
};
|
|
212
|
-
this.normalizePreviousPeriod = (def, path) => {
|
|
213
|
-
const masterMeasure = def.previousPeriodMeasure.measureIdentifier;
|
|
214
|
-
const normalizedId = this.maybeNormalizedLocalId(masterMeasure) || this.normalizeMeasureByLocalId(masterMeasure, path);
|
|
215
|
-
def.previousPeriodMeasure.measureIdentifier = normalizedId;
|
|
216
|
-
};
|
|
217
|
-
this.normalizeArithmetic = (def, path) => {
|
|
218
|
-
const normalizedIds = def.arithmeticMeasure.measureIdentifiers.map((operand) => {
|
|
219
|
-
return this.maybeNormalizedLocalId(operand) || this.normalizeMeasureByLocalId(operand, path);
|
|
220
|
-
});
|
|
221
|
-
def.arithmeticMeasure.measureIdentifiers = normalizedIds;
|
|
222
|
-
};
|
|
223
|
-
this.normalizeMeasure = (measure, path = new Set()) => {
|
|
224
|
-
const localId = (0, sdk_model_1.measureLocalId)(measure);
|
|
225
|
-
const definition = measure.measure.definition;
|
|
226
|
-
/*
|
|
227
|
-
* don't do anything if the measure is already normalized;
|
|
228
|
-
*
|
|
229
|
-
* this can happen as master / derived / arithmetic measures can be mixed in the measures array
|
|
230
|
-
* in any order & the recursive algorithm goes after the leaves first and then gets to the measure
|
|
231
|
-
* once again as it walks the array
|
|
232
|
-
*/
|
|
233
|
-
if (this.alreadyNormalized.find((m) => m === measure)) {
|
|
234
|
-
// if already normalized, the measure has been mutated and the localId is the normalized one
|
|
235
|
-
return localId;
|
|
236
|
-
}
|
|
237
|
-
/*
|
|
238
|
-
* circular dependency detection and bail-out.
|
|
239
|
-
*/
|
|
240
|
-
(0, ts_invariant_1.default)(!path.has(localId), `circular dependency on measure with localId ${localId}`);
|
|
241
|
-
path.add(localId);
|
|
242
|
-
if ((0, sdk_model_1.isPoPMeasureDefinition)(definition)) {
|
|
243
|
-
this.normalizePoP(definition, path);
|
|
244
|
-
}
|
|
245
|
-
else if ((0, sdk_model_1.isPreviousPeriodMeasureDefinition)(definition)) {
|
|
246
|
-
this.normalizePreviousPeriod(definition, path);
|
|
247
|
-
}
|
|
248
|
-
else if ((0, sdk_model_1.isArithmeticMeasureDefinition)(definition)) {
|
|
249
|
-
this.normalizeArithmetic(definition, path);
|
|
250
|
-
}
|
|
251
|
-
else if ((0, sdk_model_1.isMeasureDefinition)(definition)) {
|
|
252
|
-
this.normalizeSimple(definition);
|
|
253
|
-
}
|
|
254
|
-
if (!this.options.keepRemovableProperties) {
|
|
255
|
-
delete measure.measure.alias;
|
|
256
|
-
delete measure.measure.title;
|
|
257
|
-
delete measure.measure.format;
|
|
258
|
-
}
|
|
259
|
-
const newLocalId = (0, sdk_model_1.measureLocalId)((0, sdk_model_1.modifyMeasure)(measure, (m) => m.noAlias().noTitle().defaultFormat().defaultLocalId()));
|
|
260
|
-
const newUniqueLocalId = this.createUniqueMapping(localId, newLocalId);
|
|
261
|
-
measure.measure.localIdentifier = newUniqueLocalId;
|
|
262
|
-
this.alreadyNormalized.push(measure);
|
|
263
|
-
return newUniqueLocalId;
|
|
264
|
-
};
|
|
265
|
-
this.normalizeMeasureByLocalId = (localId, path) => {
|
|
266
|
-
const measure = this.originalMeasures.get(localId);
|
|
267
|
-
(0, ts_invariant_1.default)(measure, `measure with localId ${localId} could not be found`);
|
|
268
|
-
return this.normalizeMeasure(measure, path);
|
|
269
|
-
};
|
|
270
|
-
this.normalizeMeasures = () => {
|
|
271
|
-
this.normalized.measures.forEach((measure) => this.normalizeMeasure(measure));
|
|
272
|
-
};
|
|
273
|
-
this.normalizeFilters = () => {
|
|
274
|
-
this.normalized.filters.forEach((filter) => {
|
|
275
|
-
if ((0, sdk_model_1.isMeasureValueFilter)(filter)) {
|
|
276
|
-
const ref = filter.measureValueFilter.measure;
|
|
277
|
-
if ((0, sdk_model_1.isLocalIdRef)(ref)) {
|
|
278
|
-
ref.localIdentifier = this.normalizedLocalId(ref.localIdentifier);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
if ((0, sdk_model_1.isRankingFilter)(filter)) {
|
|
282
|
-
const { measure, attributes = [] } = filter.rankingFilter;
|
|
283
|
-
[...attributes, measure].filter(sdk_model_1.isLocalIdRef).forEach((ref) => {
|
|
284
|
-
ref.localIdentifier = this.normalizedLocalId(ref.localIdentifier);
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
};
|
|
289
|
-
this.normalizeSorts = () => {
|
|
290
|
-
this.normalized.sortBy.forEach((sort) => {
|
|
291
|
-
if ((0, sdk_model_1.isAttributeSort)(sort)) {
|
|
292
|
-
sort.attributeSortItem.attributeIdentifier = this.normalizedLocalId(sort.attributeSortItem.attributeIdentifier);
|
|
293
|
-
}
|
|
294
|
-
else if ((0, sdk_model_1.isMeasureSort)(sort)) {
|
|
295
|
-
sort.measureSortItem.locators.forEach((locator) => {
|
|
296
|
-
if ((0, sdk_model_1.isAttributeLocator)(locator)) {
|
|
297
|
-
locator.attributeLocatorItem.attributeIdentifier = this.normalizedLocalId(locator.attributeLocatorItem.attributeIdentifier);
|
|
298
|
-
}
|
|
299
|
-
else if ((0, sdk_model_1.isMeasureLocator)(locator)) {
|
|
300
|
-
locator.measureLocatorItem.measureIdentifier = this.normalizedLocalId(locator.measureLocatorItem.measureIdentifier);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
};
|
|
306
|
-
this.normalizeDimensions = () => {
|
|
307
|
-
this.normalized.dimensions.forEach((dim) => {
|
|
308
|
-
dim.itemIdentifiers = dim.itemIdentifiers.map((item) => {
|
|
309
|
-
if (item === sdk_model_1.MeasureGroupIdentifier) {
|
|
310
|
-
return item;
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
return this.normalizedLocalId(item);
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
if (dim.totals) {
|
|
317
|
-
dim.totals.forEach((total) => {
|
|
318
|
-
total.attributeIdentifier = this.normalizedLocalId(total.attributeIdentifier);
|
|
319
|
-
total.measureIdentifier = this.normalizedLocalId(total.measureIdentifier);
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
};
|
|
324
|
-
this.normalize = () => {
|
|
325
|
-
this.normalizeAttributes();
|
|
326
|
-
this.normalizeMeasures();
|
|
327
|
-
this.normalizeFilters();
|
|
328
|
-
this.normalizeSorts();
|
|
329
|
-
this.normalizeDimensions();
|
|
330
|
-
return {
|
|
331
|
-
normalized: this.normalized,
|
|
332
|
-
original: this.original,
|
|
333
|
-
n2oMap: this.n2oMap,
|
|
334
|
-
};
|
|
335
|
-
};
|
|
336
|
-
const copy = (0, cloneDeep_1.default)(this.original);
|
|
337
|
-
// throw away noop filters
|
|
338
|
-
const filters = copy.filters.filter((f) => {
|
|
339
|
-
if ((0, sdk_model_1.isAttributeFilter)(f)) {
|
|
340
|
-
return !(0, sdk_model_1.filterIsEmpty)(f) || (0, sdk_model_1.isPositiveAttributeFilter)(f);
|
|
341
|
-
}
|
|
342
|
-
else if ((0, sdk_model_1.isMeasureValueFilter)(f)) {
|
|
343
|
-
return (0, sdk_model_1.measureValueFilterCondition)(f) !== undefined;
|
|
344
|
-
}
|
|
345
|
-
return true;
|
|
346
|
-
});
|
|
347
|
-
this.normalized = Object.assign(Object.assign({}, copy), { filters });
|
|
348
|
-
copy.measures.forEach((measure) => this.originalMeasures.set((0, sdk_model_1.measureLocalId)(measure), measure));
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
exports.Normalizer = Normalizer;
|
|
352
|
-
//# sourceMappingURL=normalizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/normalizingBackend/normalizer.ts"],"names":[],"mappings":"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"}
|
package/dist/toolkit/auth.d.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { IAuthenticatedPrincipal, IAuthenticationContext, ErrorConverter, IAuthenticationProvider, NotAuthenticated } from "@gooddata/sdk-backend-spi";
|
|
2
|
-
/**
|
|
3
|
-
* Authenticated async call context
|
|
4
|
-
*
|
|
5
|
-
* @beta
|
|
6
|
-
*/
|
|
7
|
-
export interface IAuthenticatedAsyncCallContext {
|
|
8
|
-
/**
|
|
9
|
-
* Returns the currently authenticated principal.
|
|
10
|
-
* Calling this function MAY trigger the authentication flow in case the current session
|
|
11
|
-
* is not yet authenticated and the principal is unknown.
|
|
12
|
-
* If the authentication flow fails, the NotAuthenticated error is thrown.
|
|
13
|
-
*/
|
|
14
|
-
getPrincipal(): Promise<IAuthenticatedPrincipal>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Authenticated async call
|
|
18
|
-
*
|
|
19
|
-
* @beta
|
|
20
|
-
*/
|
|
21
|
-
export type AuthenticatedAsyncCall<TSdk, TReturn> = (sdk: TSdk, context: IAuthenticatedAsyncCallContext) => Promise<TReturn>;
|
|
22
|
-
/**
|
|
23
|
-
* Authenticated call guard
|
|
24
|
-
*
|
|
25
|
-
* @beta
|
|
26
|
-
*/
|
|
27
|
-
export type AuthenticatedCallGuard<TSdk = any> = <TReturn>(call: AuthenticatedAsyncCall<TSdk, TReturn>, errorConverter?: ErrorConverter) => Promise<TReturn>;
|
|
28
|
-
/**
|
|
29
|
-
* see AuthProviderCallGuard
|
|
30
|
-
* @public
|
|
31
|
-
*/
|
|
32
|
-
export interface IAuthProviderCallGuard extends IAuthenticationProvider {
|
|
33
|
-
reset(): void;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* This implementation of auth provider ensures, that the auth provider is called exactly once in the happy path
|
|
37
|
-
* execution where provider successfully authenticates a principal.
|
|
38
|
-
*
|
|
39
|
-
* If underlying provider fails, subsequent calls that need authentication will land in the provider.
|
|
40
|
-
*
|
|
41
|
-
* This class encapsulates the stateful nature of interaction of the provider across multiple different instances
|
|
42
|
-
* of the bear backend, all of which are set with the same provider. All instances of the backend should be
|
|
43
|
-
* subject to the same authentication flow AND the call to the authentication provider should be synchronized
|
|
44
|
-
* through this scoped instance.
|
|
45
|
-
*
|
|
46
|
-
* @internal
|
|
47
|
-
*/
|
|
48
|
-
export declare class AuthProviderCallGuard implements IAuthProviderCallGuard {
|
|
49
|
-
private readonly realProvider;
|
|
50
|
-
private inflightRequest;
|
|
51
|
-
private principal;
|
|
52
|
-
constructor(realProvider: IAuthenticationProvider);
|
|
53
|
-
reset: () => void;
|
|
54
|
-
initializeClient: (client: any) => void;
|
|
55
|
-
onNotAuthenticated: (context: IAuthenticationContext, error: NotAuthenticated) => void;
|
|
56
|
-
authenticate: (context: IAuthenticationContext) => Promise<IAuthenticatedPrincipal>;
|
|
57
|
-
getCurrentPrincipal(context: IAuthenticationContext): Promise<IAuthenticatedPrincipal | null>;
|
|
58
|
-
deauthenticate(context: IAuthenticationContext): Promise<void>;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* This implementation serves as a Null object for IAuthProviderCallGuard.
|
|
62
|
-
*
|
|
63
|
-
* @internal
|
|
64
|
-
*/
|
|
65
|
-
export declare class NoopAuthProvider implements IAuthProviderCallGuard {
|
|
66
|
-
authenticate(_context: IAuthenticationContext): Promise<IAuthenticatedPrincipal>;
|
|
67
|
-
getCurrentPrincipal(_context: IAuthenticationContext): Promise<IAuthenticatedPrincipal | null>;
|
|
68
|
-
deauthenticate(_context: IAuthenticationContext): Promise<void>;
|
|
69
|
-
reset(): void;
|
|
70
|
-
}
|
|
71
|
-
export declare const AnonymousUser: IAuthenticatedPrincipal;
|
|
72
|
-
/**
|
|
73
|
-
* This is a noop implementation of authentication provider - it does nothing and assumes anonymous user.
|
|
74
|
-
*
|
|
75
|
-
* @public
|
|
76
|
-
*/
|
|
77
|
-
export declare class AnonymousAuthProvider implements IAuthProviderCallGuard {
|
|
78
|
-
authenticate(_context: IAuthenticationContext): Promise<IAuthenticatedPrincipal>;
|
|
79
|
-
getCurrentPrincipal(_context: IAuthenticationContext): Promise<IAuthenticatedPrincipal | null>;
|
|
80
|
-
deauthenticate(_context: IAuthenticationContext): Promise<void>;
|
|
81
|
-
reset(): void;
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/toolkit/auth.ts"],"names":[],"mappings":"AACA,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EAEvB,gBAAgB,EACnB,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC3C;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACpD;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,IAAI,CAChD,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,8BAA8B,KACtC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EACrD,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,EAC3C,cAAc,CAAC,EAAE,cAAc,KAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACnE,KAAK,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IAIpD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAHzC,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,SAAS,CAAsC;gBAE1B,YAAY,EAAE,uBAAuB;IAE3D,KAAK,QAAO,IAAI,CAErB;IAGK,gBAAgB,WAAY,GAAG,KAAG,IAAI,CAE3C;IAEK,kBAAkB,YAAa,sBAAsB,SAAS,gBAAgB,KAAG,IAAI,CAE1F;IAEK,YAAY,YAAa,sBAAsB,KAAG,QAAQ,uBAAuB,CAAC,CAwBvF;IAEK,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAIvF,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9E;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,sBAAsB;IACpD,YAAY,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIhF,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAI9F,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,KAAK,IAAI,IAAI;CAGvB;AAED,eAAO,MAAM,aAAa,EAAE,uBAE3B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IACzD,YAAY,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIhF,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAI9F,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,KAAK,IAAI,IAAI;CAGvB"}
|
package/dist/toolkit/auth.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnonymousAuthProvider = exports.AnonymousUser = exports.NoopAuthProvider = exports.AuthProviderCallGuard = void 0;
|
|
4
|
-
// (C) 2019-2021 GoodData Corporation
|
|
5
|
-
const sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi");
|
|
6
|
-
/**
|
|
7
|
-
* This implementation of auth provider ensures, that the auth provider is called exactly once in the happy path
|
|
8
|
-
* execution where provider successfully authenticates a principal.
|
|
9
|
-
*
|
|
10
|
-
* If underlying provider fails, subsequent calls that need authentication will land in the provider.
|
|
11
|
-
*
|
|
12
|
-
* This class encapsulates the stateful nature of interaction of the provider across multiple different instances
|
|
13
|
-
* of the bear backend, all of which are set with the same provider. All instances of the backend should be
|
|
14
|
-
* subject to the same authentication flow AND the call to the authentication provider should be synchronized
|
|
15
|
-
* through this scoped instance.
|
|
16
|
-
*
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
class AuthProviderCallGuard {
|
|
20
|
-
constructor(realProvider) {
|
|
21
|
-
this.realProvider = realProvider;
|
|
22
|
-
this.reset = () => {
|
|
23
|
-
this.principal = undefined;
|
|
24
|
-
};
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
26
|
-
this.initializeClient = (client) => {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
(_b = (_a = this.realProvider).initializeClient) === null || _b === void 0 ? void 0 : _b.call(_a, client);
|
|
29
|
-
};
|
|
30
|
-
this.onNotAuthenticated = (context, error) => {
|
|
31
|
-
var _a, _b;
|
|
32
|
-
(_b = (_a = this.realProvider).onNotAuthenticated) === null || _b === void 0 ? void 0 : _b.call(_a, context, error);
|
|
33
|
-
};
|
|
34
|
-
this.authenticate = (context) => {
|
|
35
|
-
if (this.principal) {
|
|
36
|
-
return Promise.resolve(this.principal);
|
|
37
|
-
}
|
|
38
|
-
if (this.inflightRequest) {
|
|
39
|
-
return this.inflightRequest;
|
|
40
|
-
}
|
|
41
|
-
this.inflightRequest = this.realProvider
|
|
42
|
-
.authenticate(context)
|
|
43
|
-
.then((res) => {
|
|
44
|
-
this.principal = res;
|
|
45
|
-
this.inflightRequest = undefined;
|
|
46
|
-
return res;
|
|
47
|
-
})
|
|
48
|
-
.catch((err) => {
|
|
49
|
-
this.inflightRequest = undefined;
|
|
50
|
-
throw err;
|
|
51
|
-
});
|
|
52
|
-
return this.inflightRequest;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
getCurrentPrincipal(context) {
|
|
56
|
-
return this.realProvider.getCurrentPrincipal(context);
|
|
57
|
-
}
|
|
58
|
-
async deauthenticate(context) {
|
|
59
|
-
return this.realProvider.deauthenticate(context);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.AuthProviderCallGuard = AuthProviderCallGuard;
|
|
63
|
-
/**
|
|
64
|
-
* This implementation serves as a Null object for IAuthProviderCallGuard.
|
|
65
|
-
*
|
|
66
|
-
* @internal
|
|
67
|
-
*/
|
|
68
|
-
class NoopAuthProvider {
|
|
69
|
-
authenticate(_context) {
|
|
70
|
-
throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support authenticate");
|
|
71
|
-
}
|
|
72
|
-
getCurrentPrincipal(_context) {
|
|
73
|
-
throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support getCurrentPrincipal");
|
|
74
|
-
}
|
|
75
|
-
deauthenticate(_context) {
|
|
76
|
-
throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support deauthenticate");
|
|
77
|
-
}
|
|
78
|
-
reset() {
|
|
79
|
-
throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support reset");
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
exports.NoopAuthProvider = NoopAuthProvider;
|
|
83
|
-
exports.AnonymousUser = {
|
|
84
|
-
userId: "anonymous",
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* This is a noop implementation of authentication provider - it does nothing and assumes anonymous user.
|
|
88
|
-
*
|
|
89
|
-
* @public
|
|
90
|
-
*/
|
|
91
|
-
class AnonymousAuthProvider {
|
|
92
|
-
authenticate(_context) {
|
|
93
|
-
return Promise.resolve(exports.AnonymousUser);
|
|
94
|
-
}
|
|
95
|
-
getCurrentPrincipal(_context) {
|
|
96
|
-
return Promise.resolve(exports.AnonymousUser);
|
|
97
|
-
}
|
|
98
|
-
deauthenticate(_context) {
|
|
99
|
-
return Promise.resolve();
|
|
100
|
-
}
|
|
101
|
-
reset() {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.AnonymousAuthProvider = AnonymousAuthProvider;
|
|
106
|
-
//# sourceMappingURL=auth.js.map
|
package/dist/toolkit/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/toolkit/auth.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,+DAOmC;AA6CnC;;;;;;;;;;;;GAYG;AACH,MAAa,qBAAqB;IAI9B,YAA6B,YAAqC;QAArC,iBAAY,GAAZ,YAAY,CAAyB;QAE3D,UAAK,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAC;QAEF,6EAA6E;QACtE,qBAAgB,GAAG,CAAC,MAAW,EAAQ,EAAE;;YAC5C,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,gBAAgB,mDAAG,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC;QAEK,uBAAkB,GAAG,CAAC,OAA+B,EAAE,KAAuB,EAAQ,EAAE;;YAC3F,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,kBAAkB,mDAAG,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEK,iBAAY,GAAG,CAAC,OAA+B,EAAoC,EAAE;YACxF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC;aAC/B;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY;iBACnC,YAAY,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACrB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,CAAC;YAEP,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC,CAAC;IAvCmE,CAAC;IAyC/D,mBAAmB,CAAC,OAA+B;QACtD,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAA+B;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACJ;AApDD,sDAoDC;AAED;;;;GAIG;AACH,MAAa,gBAAgB;IAClB,YAAY,CAAC,QAAgC;QAChD,MAAM,IAAI,8BAAY,CAAC,gDAAgD,CAAC,CAAC;IAC7E,CAAC;IAEM,mBAAmB,CAAC,QAAgC;QACvD,MAAM,IAAI,8BAAY,CAAC,uDAAuD,CAAC,CAAC;IACpF,CAAC;IAEM,cAAc,CAAC,QAAgC;QAClD,MAAM,IAAI,8BAAY,CAAC,kDAAkD,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,8BAAY,CAAC,yCAAyC,CAAC,CAAC;IACtE,CAAC;CACJ;AAhBD,4CAgBC;AAEY,QAAA,aAAa,GAA4B;IAClD,MAAM,EAAE,WAAW;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAa,qBAAqB;IACvB,YAAY,CAAC,QAAgC;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,mBAAmB,CAAC,QAAgC;QACvD,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,cAAc,CAAC,QAAgC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK;QACR,OAAO;IACX,CAAC;CACJ;AAhBD,sDAgBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/toolkit/backend.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC"}
|
package/dist/toolkit/backend.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/toolkit/backend.ts"],"names":[],"mappings":""}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { IAttributeOrMeasure, IBucket, IExecutionDefinition, IInsightDefinition, IInsight, INullableFilter } from "@gooddata/sdk-model";
|
|
2
|
-
import { IExecutionFactory, IPreparedExecution } from "@gooddata/sdk-backend-spi";
|
|
3
|
-
import { DecoratedExecutionFactory } from "../decoratedBackend/execution";
|
|
4
|
-
/**
|
|
5
|
-
* Abstract base class that can be extended to implement concrete execution factories for different
|
|
6
|
-
* backend implementations.
|
|
7
|
-
*
|
|
8
|
-
* This class implements the convenience methods which do not need to change in implementations.
|
|
9
|
-
*
|
|
10
|
-
* Note: the `forInsightByRef` is implemented as fallback to freeform execution done by `forInsight`. The
|
|
11
|
-
* rationale is that most backends do not support that anyway so it is a safe default behavior. If the backend
|
|
12
|
-
* supports execute-by-reference, then overload the method with your own implementation (see sdk-backend-bear for
|
|
13
|
-
* inspiration)
|
|
14
|
-
*
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
export declare abstract class AbstractExecutionFactory implements IExecutionFactory {
|
|
18
|
-
protected readonly workspace: string;
|
|
19
|
-
constructor(workspace: string);
|
|
20
|
-
abstract forDefinition(def: IExecutionDefinition): IPreparedExecution;
|
|
21
|
-
forItems(items: IAttributeOrMeasure[], filters?: INullableFilter[]): IPreparedExecution;
|
|
22
|
-
forBuckets(buckets: IBucket[], filters?: INullableFilter[]): IPreparedExecution;
|
|
23
|
-
forInsight(insight: IInsightDefinition, filters?: INullableFilter[]): IPreparedExecution;
|
|
24
|
-
forInsightByRef(insight: IInsight, filters?: INullableFilter[]): IPreparedExecution;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* This implementation of execution factory allows transparent injection of fixed set of filters to all
|
|
28
|
-
* executions started through it.
|
|
29
|
-
*
|
|
30
|
-
* This factory will not perform any filter merging. All it does is ensure some filters are always passed
|
|
31
|
-
* to the underlying factory. The responsibility to do the filter merging lies in the underlying factory.
|
|
32
|
-
*
|
|
33
|
-
* @internal
|
|
34
|
-
*/
|
|
35
|
-
export declare class ExecutionFactoryWithFixedFilters extends DecoratedExecutionFactory {
|
|
36
|
-
private readonly filters;
|
|
37
|
-
constructor(decorated: IExecutionFactory, filters?: INullableFilter[]);
|
|
38
|
-
forItems(items: IAttributeOrMeasure[], filters?: INullableFilter[]): IPreparedExecution;
|
|
39
|
-
forBuckets(buckets: IBucket[], filters?: INullableFilter[]): IPreparedExecution;
|
|
40
|
-
forInsight(insight: IInsightDefinition, filters?: INullableFilter[]): IPreparedExecution;
|
|
41
|
-
forInsightByRef(insight: IInsight, filters?: INullableFilter[]): IPreparedExecution;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* This implementation of execution factory will transparently upgrade any `forInsight` execution
|
|
45
|
-
* to `forInsightByRef` execution IF the argument to `forInsight` is actually a persisted insight (`IInsight` which
|
|
46
|
-
* is subtype of `IInsightDefinition`).
|
|
47
|
-
*
|
|
48
|
-
* @internal
|
|
49
|
-
*/
|
|
50
|
-
export declare class ExecutionFactoryUpgradingToExecByReference extends DecoratedExecutionFactory {
|
|
51
|
-
constructor(decorated: IExecutionFactory);
|
|
52
|
-
forInsight(insight: IInsightDefinition, filters?: INullableFilter[]): IPreparedExecution;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/toolkit/execution.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAGnB,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAIlB,QAAQ,EAER,eAAe,EAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,8BAAsB,wBAAyB,YAAW,iBAAiB;IAC3D,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;aAEhC,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,kBAAkB;IAErE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,kBAAkB;IASvF,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,kBAAkB;IAS/E,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,kBAAkB;IASxF,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,kBAAkB;CAG7F;AAED;;;;;;;;GAQG;AACH,qBAAa,gCAAiC,SAAQ,yBAAyB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAtD,SAAS,EAAE,iBAAiB,EAAmB,OAAO,GAAE,eAAe,EAAO;IAInF,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,OAAO,GAAE,eAAe,EAAO,GAAG,kBAAkB;IAI3F,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,GAAE,eAAe,EAAO,GAAG,kBAAkB;IAInF,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAE,eAAe,EAAO,GAAG,kBAAkB;IAI5F,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAE,eAAe,EAAO,GAAG,kBAAkB;CAGjG;AAED;;;;;;GAMG;AACH,qBAAa,0CAA2C,SAAQ,yBAAyB;gBACzE,SAAS,EAAE,iBAAiB;IAIjC,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,kBAAkB;CAOlG"}
|