@gooddata/sdk-backend-base 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.
- package/esm/customBackend/workspace.d.ts +2 -1
- package/esm/customBackend/workspace.d.ts.map +1 -1
- package/esm/customBackend/workspace.js +3 -0
- package/esm/decoratedBackend/analyticalWorkspace.d.ts +2 -1
- package/esm/decoratedBackend/analyticalWorkspace.d.ts.map +1 -1
- package/esm/decoratedBackend/analyticalWorkspace.js +7 -0
- package/esm/decoratedBackend/types.d.ts +6 -1
- package/esm/decoratedBackend/types.d.ts.map +1 -1
- package/esm/decoratedBackend/workspaceReports.d.ts +28 -0
- package/esm/decoratedBackend/workspaceReports.d.ts.map +1 -0
- package/esm/decoratedBackend/workspaceReports.js +58 -0
- package/esm/dummyBackend/InMemoryWorkspaceReportsService.d.ts +54 -0
- package/esm/dummyBackend/InMemoryWorkspaceReportsService.d.ts.map +1 -0
- package/esm/dummyBackend/InMemoryWorkspaceReportsService.js +252 -0
- package/esm/dummyBackend/index.d.ts.map +1 -1
- package/esm/dummyBackend/index.js +12 -2
- package/esm/index.d.ts +3 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/sdk-backend-base.d.ts +92 -0
- package/package.json +9 -9
|
@@ -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 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 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 CustomBackendConfig, type CustomBackendState } from "./config.js";
|
|
3
3
|
/**
|
|
4
4
|
* @internal
|
|
@@ -39,5 +39,6 @@ export declare class CustomWorkspace implements IAnalyticalWorkspace {
|
|
|
39
39
|
genAI(): IGenAIService;
|
|
40
40
|
references(): IReferencesService;
|
|
41
41
|
exportTemplates(): IWorkspaceExportTemplatesService;
|
|
42
|
+
reports(): IWorkspaceReportsService;
|
|
42
43
|
}
|
|
43
44
|
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/customBackend/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAE5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGhF;;GAEG;AACH,qBAAa,eAAgB,YAAW,oBAAoB;aAEpC,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAH1B,YACoB,SAAS,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,kBAAkB,EAC1C;IAEG,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAEpD;IAEM,gBAAgB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAEvD;IAEM,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAErE;IAEM,SAAS,IAAI,iBAAiB,CAEpC;IAOM,UAAU,IAAI,2BAA2B,CAE/C;IAGM,QAAQ,IAAI,yBAAyB,CAE3C;IAGM,OAAO,IAAI,wBAAwB,CAEzC;IAKM,WAAW,IAAI,4BAA4B,CAEjD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,OAAO,IAAI,wBAAwB,CAEzC;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,kBAAkB,IAAI,mCAAmC,CAE/D;IAEM,KAAK,IAAI,sBAAsB,CAErC;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,KAAK,IAAI,oBAAoB,CAEnC;IAEM,iBAAiB,IAAI,uBAAuB,CAElD;IAEM,UAAU,IAAI,yBAAyB,CAE7C;IAEM,aAAa,IAAI,8BAA8B,CAErD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,oBAAoB,IAAI,4BAA4B,CAE1D;IAEM,MAAM,IAAI,uBAAuB,CAEvC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,WAAW,IAAI,mBAAmB,CAExC;IAEM,YAAY,IAAI,6BAA6B,CAEnD;IAEM,WAAW,IAAI,2BAA2B,CAEhD;IAEM,KAAK,IAAI,aAAa,CAE5B;IAEM,UAAU,IAAI,kBAAkB,CAEtC;IAEM,eAAe,IAAI,gCAAgC,CAEzD;CACJ"}
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/customBackend/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAE5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGhF;;GAEG;AACH,qBAAa,eAAgB,YAAW,oBAAoB;aAEpC,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAH1B,YACoB,SAAS,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,kBAAkB,EAC1C;IAEG,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAEpD;IAEM,gBAAgB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAEvD;IAEM,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAErE;IAEM,SAAS,IAAI,iBAAiB,CAEpC;IAOM,UAAU,IAAI,2BAA2B,CAE/C;IAGM,QAAQ,IAAI,yBAAyB,CAE3C;IAGM,OAAO,IAAI,wBAAwB,CAEzC;IAKM,WAAW,IAAI,4BAA4B,CAEjD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,OAAO,IAAI,wBAAwB,CAEzC;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,kBAAkB,IAAI,mCAAmC,CAE/D;IAEM,KAAK,IAAI,sBAAsB,CAErC;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,KAAK,IAAI,oBAAoB,CAEnC;IAEM,iBAAiB,IAAI,uBAAuB,CAElD;IAEM,UAAU,IAAI,yBAAyB,CAE7C;IAEM,aAAa,IAAI,8BAA8B,CAErD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,oBAAoB,IAAI,4BAA4B,CAE1D;IAEM,MAAM,IAAI,uBAAuB,CAEvC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,WAAW,IAAI,mBAAmB,CAExC;IAEM,YAAY,IAAI,6BAA6B,CAEnD;IAEM,WAAW,IAAI,2BAA2B,CAEhD;IAEM,KAAK,IAAI,aAAa,CAE5B;IAEM,UAAU,IAAI,kBAAkB,CAEtC;IAEM,eAAe,IAAI,gCAAgC,CAEzD;IAEM,OAAO,IAAI,wBAAwB,CAEzC;CACJ"}
|
|
@@ -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 DecoratorFactories } from "./types.js";
|
|
3
3
|
export declare class AnalyticalWorkspaceDecorator implements IAnalyticalWorkspace {
|
|
4
4
|
workspace: string;
|
|
@@ -36,5 +36,6 @@ export declare class AnalyticalWorkspaceDecorator implements IAnalyticalWorkspac
|
|
|
36
36
|
genAI(): IGenAIService;
|
|
37
37
|
references(): IReferencesService;
|
|
38
38
|
exportTemplates(): IWorkspaceExportTemplatesService;
|
|
39
|
+
reports(): IWorkspaceReportsService;
|
|
39
40
|
}
|
|
40
41
|
//# sourceMappingURL=analyticalWorkspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyticalWorkspace.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/analyticalWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,4BAA6B,YAAW,oBAAoB;IAC9D,SAAS,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,YAAY,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAIzE;IAEM,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEnF;IAEM,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAE7F;IAEM,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAErE;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,SAAS,IAAI,iBAAiB,CAQpC;IAEM,OAAO,IAAI,wBAAwB,CAQzC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,kBAAkB,IAAI,mCAAmC,CAE/D;IAEM,KAAK,IAAI,sBAAsB,CAQrC;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,OAAO,IAAI,wBAAwB,CAEzC;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,WAAW,IAAI,4BAA4B,CAEjD;IAEM,KAAK,IAAI,oBAAoB,CAEnC;IAEM,iBAAiB,IAAI,uBAAuB,CAElD;IAEM,UAAU,IAAI,yBAAyB,CAE7C;IAEM,aAAa,IAAI,8BAA8B,CAErD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,oBAAoB,IAAI,4BAA4B,CAE1D;IAEM,MAAM,IAAI,uBAAuB,CAEvC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,WAAW,IAAI,mBAAmB,CAExC;IAEM,YAAY,IAAI,6BAA6B,CAEnD;IAEM,WAAW,IAAI,2BAA2B,CAQhD;IAEM,KAAK,IAAI,aAAa,CAE5B;IAEM,UAAU,IAAI,kBAAkB,CAEtC;IAEM,eAAe,IAAI,gCAAgC,CAQzD;CACJ"}
|
|
1
|
+
{"version":3,"file":"analyticalWorkspace.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/analyticalWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,4BAA6B,YAAW,oBAAoB;IAC9D,SAAS,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,YAAY,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAIzE;IAEM,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEnF;IAEM,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAE7F;IAEM,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAErE;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,SAAS,IAAI,iBAAiB,CAQpC;IAEM,OAAO,IAAI,wBAAwB,CAQzC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,kBAAkB,IAAI,mCAAmC,CAE/D;IAEM,KAAK,IAAI,sBAAsB,CAQrC;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,OAAO,IAAI,wBAAwB,CAEzC;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,WAAW,IAAI,4BAA4B,CAEjD;IAEM,KAAK,IAAI,oBAAoB,CAEnC;IAEM,iBAAiB,IAAI,uBAAuB,CAElD;IAEM,UAAU,IAAI,yBAAyB,CAE7C;IAEM,aAAa,IAAI,8BAA8B,CAErD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,oBAAoB,IAAI,4BAA4B,CAE1D;IAEM,MAAM,IAAI,uBAAuB,CAEvC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,WAAW,IAAI,mBAAmB,CAExC;IAEM,YAAY,IAAI,6BAA6B,CAEnD;IAEM,WAAW,IAAI,2BAA2B,CAQhD;IAEM,KAAK,IAAI,aAAa,CAE5B;IAEM,UAAU,IAAI,kBAAkB,CAEtC;IAEM,eAAe,IAAI,gCAAgC,CAQzD;IAEM,OAAO,IAAI,wBAAwB,CAQzC;CACJ"}
|
|
@@ -145,4 +145,11 @@ export class AnalyticalWorkspaceDecorator {
|
|
|
145
145
|
}
|
|
146
146
|
return this.decorated.exportTemplates();
|
|
147
147
|
}
|
|
148
|
+
reports() {
|
|
149
|
+
const { workspaceReports } = this.factories;
|
|
150
|
+
if (workspaceReports) {
|
|
151
|
+
return workspaceReports(this.decorated.reports(), this.workspace);
|
|
152
|
+
}
|
|
153
|
+
return this.decorated.reports();
|
|
154
|
+
}
|
|
148
155
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IExecutionFactory, type IGeoService, type IOrganizationExportTemplatesService, type ISecuritySettingsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceDashboardsService, type IWorkspaceDatasetsService, type IWorkspaceExportTemplatesService, type IWorkspaceFactsService, type IWorkspaceInsightsService, type IWorkspaceMeasuresService, type IWorkspaceSettingsService } from "@gooddata/sdk-backend-spi";
|
|
1
|
+
import { type IExecutionFactory, type IGeoService, type IOrganizationExportTemplatesService, type ISecuritySettingsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceDashboardsService, type IWorkspaceDatasetsService, type IWorkspaceExportTemplatesService, type IWorkspaceFactsService, type IWorkspaceInsightsService, type IWorkspaceMeasuresService, type IWorkspaceReportsService, type IWorkspaceSettingsService } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
/**
|
|
3
3
|
* @alpha
|
|
4
4
|
*/
|
|
@@ -55,6 +55,10 @@ export type OrganizationExportTemplatesDecoratorFactory = (exportTemplates: IOrg
|
|
|
55
55
|
* @alpha
|
|
56
56
|
*/
|
|
57
57
|
export type WorkspaceExportTemplatesDecoratorFactory = (exportTemplates: IWorkspaceExportTemplatesService, workspace: string) => IWorkspaceExportTemplatesService;
|
|
58
|
+
/**
|
|
59
|
+
* @alpha
|
|
60
|
+
*/
|
|
61
|
+
export type WorkspaceReportsDecoratorFactory = (reports: IWorkspaceReportsService, workspace: string) => IWorkspaceReportsService;
|
|
58
62
|
/**
|
|
59
63
|
* Provides factory functions for the different decorators (currently only supports execution
|
|
60
64
|
* decorator). Input to each factory function is the original implementation from the wrapped backend, output
|
|
@@ -77,5 +81,6 @@ export type DecoratorFactories = {
|
|
|
77
81
|
geo?: GeoDecoratorFactory;
|
|
78
82
|
organizationExportTemplates?: OrganizationExportTemplatesDecoratorFactory;
|
|
79
83
|
workspaceExportTemplates?: WorkspaceExportTemplatesDecoratorFactory;
|
|
84
|
+
workspaceReports?: WorkspaceReportsDecoratorFactory;
|
|
80
85
|
};
|
|
81
86
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type IWorkspaceReportsService } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IReport, type IReportDefinition, type IReportPageLayout, type IReportPageLayoutDefinition, type IReportTemplate, type IReportTemplateDefinition, type ObjRef } from "@gooddata/sdk-model";
|
|
3
|
+
/**
|
|
4
|
+
* Base class for report-service decorators. Delegates every method of the decorated
|
|
5
|
+
* `IWorkspaceReportsService`; subclasses override the methods they customize.
|
|
6
|
+
*
|
|
7
|
+
* @alpha
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class DecoratedWorkspaceReportsService implements IWorkspaceReportsService {
|
|
10
|
+
protected readonly decorated: IWorkspaceReportsService;
|
|
11
|
+
protected constructor(decorated: IWorkspaceReportsService);
|
|
12
|
+
getReportPageLayouts(): Promise<IReportPageLayout[]>;
|
|
13
|
+
getReportPageLayout(ref: ObjRef): Promise<IReportPageLayout>;
|
|
14
|
+
createReportPageLayout(page: IReportPageLayoutDefinition): Promise<IReportPageLayout>;
|
|
15
|
+
updateReportPageLayout(page: IReportPageLayout): Promise<IReportPageLayout>;
|
|
16
|
+
deleteReportPageLayout(ref: ObjRef): Promise<void>;
|
|
17
|
+
getReportTemplates(): Promise<IReportTemplate[]>;
|
|
18
|
+
getReportTemplate(ref: ObjRef): Promise<IReportTemplate>;
|
|
19
|
+
createReportTemplate(template: IReportTemplateDefinition): Promise<IReportTemplate>;
|
|
20
|
+
updateReportTemplate(template: IReportTemplate): Promise<IReportTemplate>;
|
|
21
|
+
deleteReportTemplate(ref: ObjRef): Promise<void>;
|
|
22
|
+
getReports(): Promise<IReport[]>;
|
|
23
|
+
getReport(ref: ObjRef): Promise<IReport>;
|
|
24
|
+
createReport(report: IReportDefinition): Promise<IReport>;
|
|
25
|
+
updateReport(report: IReport): Promise<IReport>;
|
|
26
|
+
deleteReport(ref: ObjRef): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=workspaceReports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceReports.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/workspaceReports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,MAAM,EACd,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,8BAAsB,gCAAiC,YAAW,wBAAwB;IAChE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,wBAAwB;IAA5E,SAAS,aAAgC,SAAS,EAAE,wBAAwB,EAAI;IAEzE,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAE1D;IAEM,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAElE;IAEM,sBAAsB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE3F;IAEM,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEjF;IAEM,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;IAEM,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAEtD;IAEM,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAE9D;IAEM,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEzF;IAEM,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAE/E;IAEM,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtD;IAEM,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAEtC;IAEM,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9C;IAEM,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/D;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAErD;IAEM,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9C;CACJ"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
/**
|
|
3
|
+
* Base class for report-service decorators. Delegates every method of the decorated
|
|
4
|
+
* `IWorkspaceReportsService`; subclasses override the methods they customize.
|
|
5
|
+
*
|
|
6
|
+
* @alpha
|
|
7
|
+
*/
|
|
8
|
+
export class DecoratedWorkspaceReportsService {
|
|
9
|
+
decorated;
|
|
10
|
+
constructor(decorated) {
|
|
11
|
+
this.decorated = decorated;
|
|
12
|
+
}
|
|
13
|
+
getReportPageLayouts() {
|
|
14
|
+
return this.decorated.getReportPageLayouts();
|
|
15
|
+
}
|
|
16
|
+
getReportPageLayout(ref) {
|
|
17
|
+
return this.decorated.getReportPageLayout(ref);
|
|
18
|
+
}
|
|
19
|
+
createReportPageLayout(page) {
|
|
20
|
+
return this.decorated.createReportPageLayout(page);
|
|
21
|
+
}
|
|
22
|
+
updateReportPageLayout(page) {
|
|
23
|
+
return this.decorated.updateReportPageLayout(page);
|
|
24
|
+
}
|
|
25
|
+
deleteReportPageLayout(ref) {
|
|
26
|
+
return this.decorated.deleteReportPageLayout(ref);
|
|
27
|
+
}
|
|
28
|
+
getReportTemplates() {
|
|
29
|
+
return this.decorated.getReportTemplates();
|
|
30
|
+
}
|
|
31
|
+
getReportTemplate(ref) {
|
|
32
|
+
return this.decorated.getReportTemplate(ref);
|
|
33
|
+
}
|
|
34
|
+
createReportTemplate(template) {
|
|
35
|
+
return this.decorated.createReportTemplate(template);
|
|
36
|
+
}
|
|
37
|
+
updateReportTemplate(template) {
|
|
38
|
+
return this.decorated.updateReportTemplate(template);
|
|
39
|
+
}
|
|
40
|
+
deleteReportTemplate(ref) {
|
|
41
|
+
return this.decorated.deleteReportTemplate(ref);
|
|
42
|
+
}
|
|
43
|
+
getReports() {
|
|
44
|
+
return this.decorated.getReports();
|
|
45
|
+
}
|
|
46
|
+
getReport(ref) {
|
|
47
|
+
return this.decorated.getReport(ref);
|
|
48
|
+
}
|
|
49
|
+
createReport(report) {
|
|
50
|
+
return this.decorated.createReport(report);
|
|
51
|
+
}
|
|
52
|
+
updateReport(report) {
|
|
53
|
+
return this.decorated.updateReport(report);
|
|
54
|
+
}
|
|
55
|
+
deleteReport(ref) {
|
|
56
|
+
return this.decorated.deleteReport(ref);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type IWorkspaceReportsService } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IReport, type IReportDefinition, type IReportPageLayout, type IReportPageLayoutDefinition, type IReportTemplate, type IReportTemplateDefinition, type ObjRef } from "@gooddata/sdk-model";
|
|
3
|
+
/**
|
|
4
|
+
* Storage hook for {@link InMemoryWorkspaceReportsService}: where the serialized service
|
|
5
|
+
* state is loaded from on construction and saved to after every mutation.
|
|
6
|
+
*
|
|
7
|
+
* @alpha
|
|
8
|
+
*/
|
|
9
|
+
export interface IWorkspaceReportsPersistence {
|
|
10
|
+
load(): string | null;
|
|
11
|
+
save(value: string): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* In-memory implementation of the reports service.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* Serves the built-in report page layouts and stores created layouts, templates and reports in memory.
|
|
18
|
+
* Without a persistence hook the state lives only as long as the instance (dummy backend, tests);
|
|
19
|
+
* with one (e.g. localStorage) the state is rehydrated on construction and saved after every mutation.
|
|
20
|
+
*
|
|
21
|
+
* @alpha
|
|
22
|
+
*/
|
|
23
|
+
export declare class InMemoryWorkspaceReportsService implements IWorkspaceReportsService {
|
|
24
|
+
private readonly persistence?;
|
|
25
|
+
private readonly pageLayouts;
|
|
26
|
+
private readonly templates;
|
|
27
|
+
private readonly reports;
|
|
28
|
+
private sequence;
|
|
29
|
+
private persistenceDisabled;
|
|
30
|
+
constructor(persistence?: IWorkspaceReportsPersistence | undefined);
|
|
31
|
+
private hydrate;
|
|
32
|
+
private persist;
|
|
33
|
+
private newRef;
|
|
34
|
+
private findBuiltInPageLayout;
|
|
35
|
+
getReportPageLayouts(): Promise<IReportPageLayout[]>;
|
|
36
|
+
getReportPageLayout(ref: ObjRef): Promise<IReportPageLayout>;
|
|
37
|
+
createReportPageLayout(layout: IReportPageLayoutDefinition): Promise<IReportPageLayout>;
|
|
38
|
+
updateReportPageLayout(layout: IReportPageLayout): Promise<IReportPageLayout>;
|
|
39
|
+
deleteReportPageLayout(ref: ObjRef): Promise<void>;
|
|
40
|
+
private assertPageLayoutEditable;
|
|
41
|
+
getReportTemplates(): Promise<IReportTemplate[]>;
|
|
42
|
+
getReportTemplate(ref: ObjRef): Promise<IReportTemplate>;
|
|
43
|
+
createReportTemplate(template: IReportTemplateDefinition): Promise<IReportTemplate>;
|
|
44
|
+
updateReportTemplate(template: IReportTemplate): Promise<IReportTemplate>;
|
|
45
|
+
deleteReportTemplate(ref: ObjRef): Promise<void>;
|
|
46
|
+
getReports(): Promise<IReport[]>;
|
|
47
|
+
getReport(ref: ObjRef): Promise<IReport>;
|
|
48
|
+
createReport(report: IReportDefinition): Promise<IReport>;
|
|
49
|
+
updateReport(report: IReport): Promise<IReport>;
|
|
50
|
+
deleteReport(ref: ObjRef): Promise<void>;
|
|
51
|
+
private store;
|
|
52
|
+
private assertExistsAndUnlocked;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=InMemoryWorkspaceReportsService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryWorkspaceReportsService.d.ts","sourceRoot":"","sources":["../../src/dummyBackend/InMemoryWorkspaceReportsService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAmB,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAEH,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,MAAM,EAMd,MAAM,qBAAqB,CAAC;AAkC7B;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IACzC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AASD;;;;;;;;;GASG;AACH,qBAAa,+BAAgC,YAAW,wBAAwB;IAUhE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IATzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAK;IAIrB,OAAO,CAAC,mBAAmB,CAAS;IAEpC,YAA6B,WAAW,CAAC,0CAA8B,EAEtE;IAMD,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,qBAAqB;IAItB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAG1D;IAEM,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAWlE;IAEM,sBAAsB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAc7F;IAEM,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAOnF;IAEM,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxD;IAED,OAAO,CAAC,wBAAwB;IASzB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAGtD;IAEM,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAO9D;IAEM,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,CASzF;IAEM,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAO/E;IAEM,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtD;IAEM,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAGtC;IAEM,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9C;IAEM,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/D;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrD;IAEM,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9C;IAED,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,uBAAuB;CAalC"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { UnexpectedError } from "@gooddata/sdk-backend-spi";
|
|
3
|
+
import { BuiltInReportPageLayouts, areObjRefsEqual, idRef, isIdentifierRef, isObjRef, objRefToString, } from "@gooddata/sdk-model";
|
|
4
|
+
// Key ignores the identifier ref's optional object type (typed and untyped identifier
|
|
5
|
+
// refs are equivalent under areObjRefsEqual) but keeps the ref kind, so an identifier
|
|
6
|
+
// and a URI with the same string stay distinct.
|
|
7
|
+
function refKey(ref) {
|
|
8
|
+
return isIdentifierRef(ref) ? `id:${ref.identifier}` : `uri:${ref.uri}`;
|
|
9
|
+
}
|
|
10
|
+
// JSON round-trip detaches stored state from caller-held objects on both the
|
|
11
|
+
// write and the read side, the way a real backend's serialization does.
|
|
12
|
+
function deepClone(value) {
|
|
13
|
+
return JSON.parse(JSON.stringify(value));
|
|
14
|
+
}
|
|
15
|
+
function decode(value) {
|
|
16
|
+
const decoded = new Map();
|
|
17
|
+
if (!Array.isArray(value)) {
|
|
18
|
+
return decoded;
|
|
19
|
+
}
|
|
20
|
+
value.forEach((entry) => {
|
|
21
|
+
if (!isObjRef(entry?.ref)) {
|
|
22
|
+
throw new Error("Persisted report entry has no object reference.");
|
|
23
|
+
}
|
|
24
|
+
decoded.set(refKey(entry.ref), entry);
|
|
25
|
+
});
|
|
26
|
+
return decoded;
|
|
27
|
+
}
|
|
28
|
+
function replace(target, source) {
|
|
29
|
+
target.clear();
|
|
30
|
+
source.forEach((value, key) => target.set(key, value));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* In-memory implementation of the reports service.
|
|
34
|
+
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* Serves the built-in report page layouts and stores created layouts, templates and reports in memory.
|
|
37
|
+
* Without a persistence hook the state lives only as long as the instance (dummy backend, tests);
|
|
38
|
+
* with one (e.g. localStorage) the state is rehydrated on construction and saved after every mutation.
|
|
39
|
+
*
|
|
40
|
+
* @alpha
|
|
41
|
+
*/
|
|
42
|
+
export class InMemoryWorkspaceReportsService {
|
|
43
|
+
persistence;
|
|
44
|
+
pageLayouts = new Map();
|
|
45
|
+
templates = new Map();
|
|
46
|
+
reports = new Map();
|
|
47
|
+
sequence = 0;
|
|
48
|
+
// Set when the storage rejected a write. Read-through would then restore the older
|
|
49
|
+
// persisted snapshot and silently discard the mutation, so the in-memory state
|
|
50
|
+
// becomes authoritative from that point on.
|
|
51
|
+
persistenceDisabled = false;
|
|
52
|
+
constructor(persistence) {
|
|
53
|
+
this.persistence = persistence;
|
|
54
|
+
this.hydrate();
|
|
55
|
+
}
|
|
56
|
+
// Persisted storage is read through on every operation, so no instance can act on a
|
|
57
|
+
// stale snapshot and overwrite state written by another instance, tab or process.
|
|
58
|
+
// Storage failures (sandboxed embeds, exhausted quota, corrupted value) degrade to
|
|
59
|
+
// the in-memory state rather than propagating to the caller.
|
|
60
|
+
hydrate() {
|
|
61
|
+
if (!this.persistence || this.persistenceDisabled) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const serialized = this.persistence.load();
|
|
66
|
+
if (!serialized) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const state = JSON.parse(serialized);
|
|
70
|
+
// Decode into fresh maps first: a malformed entry must not leave the service
|
|
71
|
+
// with half-cleared state, so the swap happens only once everything decoded.
|
|
72
|
+
const pageLayouts = decode(state?.pageLayouts);
|
|
73
|
+
const templates = decode(state?.templates);
|
|
74
|
+
const reports = decode(state?.reports);
|
|
75
|
+
replace(this.pageLayouts, pageLayouts);
|
|
76
|
+
replace(this.templates, templates);
|
|
77
|
+
replace(this.reports, reports);
|
|
78
|
+
this.sequence = Math.max(this.sequence, typeof state?.sequence === "number" ? state.sequence : 0);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// unreadable, malformed or schema-incompatible state — keep the in-memory state
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
persist() {
|
|
85
|
+
if (!this.persistence || this.persistenceDisabled) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const state = {
|
|
89
|
+
pageLayouts: [...this.pageLayouts.values()],
|
|
90
|
+
templates: [...this.templates.values()],
|
|
91
|
+
reports: [...this.reports.values()],
|
|
92
|
+
sequence: this.sequence,
|
|
93
|
+
};
|
|
94
|
+
try {
|
|
95
|
+
this.persistence.save(JSON.stringify(state));
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
this.persistenceDisabled = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
newRef(type, store) {
|
|
102
|
+
let ref;
|
|
103
|
+
do {
|
|
104
|
+
this.sequence += 1;
|
|
105
|
+
ref = idRef(`${type}_${this.sequence}`, type);
|
|
106
|
+
} while (store.has(refKey(ref)));
|
|
107
|
+
return ref;
|
|
108
|
+
}
|
|
109
|
+
findBuiltInPageLayout(ref) {
|
|
110
|
+
return BuiltInReportPageLayouts.find((layout) => areObjRefsEqual(layout.ref, ref));
|
|
111
|
+
}
|
|
112
|
+
getReportPageLayouts() {
|
|
113
|
+
this.hydrate();
|
|
114
|
+
return Promise.resolve([...BuiltInReportPageLayouts, ...deepClone([...this.pageLayouts.values()])]);
|
|
115
|
+
}
|
|
116
|
+
getReportPageLayout(ref) {
|
|
117
|
+
this.hydrate();
|
|
118
|
+
const builtIn = this.findBuiltInPageLayout(ref);
|
|
119
|
+
if (builtIn) {
|
|
120
|
+
return Promise.resolve(builtIn);
|
|
121
|
+
}
|
|
122
|
+
const layout = this.pageLayouts.get(refKey(ref));
|
|
123
|
+
if (!layout) {
|
|
124
|
+
throw new UnexpectedError(`Report page layout "${objRefToString(ref)}" does not exist.`);
|
|
125
|
+
}
|
|
126
|
+
return Promise.resolve(deepClone(layout));
|
|
127
|
+
}
|
|
128
|
+
createReportPageLayout(layout) {
|
|
129
|
+
this.hydrate();
|
|
130
|
+
if (layout.ref && this.findBuiltInPageLayout(layout.ref)) {
|
|
131
|
+
throw new UnexpectedError(`Report page layout "${objRefToString(layout.ref)}" is built-in and cannot be replaced.`);
|
|
132
|
+
}
|
|
133
|
+
const created = {
|
|
134
|
+
...deepClone(layout),
|
|
135
|
+
ref: layout.ref ?? this.newRef("reportPageLayout", this.pageLayouts),
|
|
136
|
+
};
|
|
137
|
+
this.store(this.pageLayouts, created, "Report page layout");
|
|
138
|
+
this.persist();
|
|
139
|
+
return Promise.resolve(deepClone(created));
|
|
140
|
+
}
|
|
141
|
+
updateReportPageLayout(layout) {
|
|
142
|
+
this.hydrate();
|
|
143
|
+
this.assertPageLayoutEditable(layout.ref);
|
|
144
|
+
const updated = { ...deepClone(layout), isBuiltIn: undefined };
|
|
145
|
+
this.pageLayouts.set(refKey(layout.ref), updated);
|
|
146
|
+
this.persist();
|
|
147
|
+
return Promise.resolve(deepClone(updated));
|
|
148
|
+
}
|
|
149
|
+
deleteReportPageLayout(ref) {
|
|
150
|
+
this.hydrate();
|
|
151
|
+
this.assertPageLayoutEditable(ref);
|
|
152
|
+
this.pageLayouts.delete(refKey(ref));
|
|
153
|
+
this.persist();
|
|
154
|
+
return Promise.resolve();
|
|
155
|
+
}
|
|
156
|
+
assertPageLayoutEditable(ref) {
|
|
157
|
+
if (this.findBuiltInPageLayout(ref)) {
|
|
158
|
+
throw new UnexpectedError(`Report page layout "${objRefToString(ref)}" is built-in and cannot be changed.`);
|
|
159
|
+
}
|
|
160
|
+
this.assertExistsAndUnlocked(this.pageLayouts, ref, "Report page layout");
|
|
161
|
+
}
|
|
162
|
+
getReportTemplates() {
|
|
163
|
+
this.hydrate();
|
|
164
|
+
return Promise.resolve(deepClone([...this.templates.values()]));
|
|
165
|
+
}
|
|
166
|
+
getReportTemplate(ref) {
|
|
167
|
+
this.hydrate();
|
|
168
|
+
const template = this.templates.get(refKey(ref));
|
|
169
|
+
if (!template) {
|
|
170
|
+
throw new UnexpectedError(`Report template "${objRefToString(ref)}" does not exist.`);
|
|
171
|
+
}
|
|
172
|
+
return Promise.resolve(deepClone(template));
|
|
173
|
+
}
|
|
174
|
+
createReportTemplate(template) {
|
|
175
|
+
this.hydrate();
|
|
176
|
+
const created = {
|
|
177
|
+
...deepClone(template),
|
|
178
|
+
ref: template.ref ?? this.newRef("reportTemplate", this.templates),
|
|
179
|
+
};
|
|
180
|
+
this.store(this.templates, created, "Report template");
|
|
181
|
+
this.persist();
|
|
182
|
+
return Promise.resolve(deepClone(created));
|
|
183
|
+
}
|
|
184
|
+
updateReportTemplate(template) {
|
|
185
|
+
this.hydrate();
|
|
186
|
+
this.assertExistsAndUnlocked(this.templates, template.ref, "Report template");
|
|
187
|
+
const updated = deepClone(template);
|
|
188
|
+
this.templates.set(refKey(template.ref), updated);
|
|
189
|
+
this.persist();
|
|
190
|
+
return Promise.resolve(deepClone(updated));
|
|
191
|
+
}
|
|
192
|
+
deleteReportTemplate(ref) {
|
|
193
|
+
this.hydrate();
|
|
194
|
+
this.assertExistsAndUnlocked(this.templates, ref, "Report template");
|
|
195
|
+
this.templates.delete(refKey(ref));
|
|
196
|
+
this.persist();
|
|
197
|
+
return Promise.resolve();
|
|
198
|
+
}
|
|
199
|
+
getReports() {
|
|
200
|
+
this.hydrate();
|
|
201
|
+
return Promise.resolve(deepClone([...this.reports.values()]));
|
|
202
|
+
}
|
|
203
|
+
getReport(ref) {
|
|
204
|
+
this.hydrate();
|
|
205
|
+
const report = this.reports.get(refKey(ref));
|
|
206
|
+
if (!report) {
|
|
207
|
+
throw new UnexpectedError(`Report "${objRefToString(ref)}" does not exist.`);
|
|
208
|
+
}
|
|
209
|
+
return Promise.resolve(deepClone(report));
|
|
210
|
+
}
|
|
211
|
+
createReport(report) {
|
|
212
|
+
this.hydrate();
|
|
213
|
+
const created = {
|
|
214
|
+
...deepClone(report),
|
|
215
|
+
ref: report.ref ?? this.newRef("report", this.reports),
|
|
216
|
+
};
|
|
217
|
+
this.store(this.reports, created, "Report");
|
|
218
|
+
this.persist();
|
|
219
|
+
return Promise.resolve(deepClone(created));
|
|
220
|
+
}
|
|
221
|
+
updateReport(report) {
|
|
222
|
+
this.hydrate();
|
|
223
|
+
this.assertExistsAndUnlocked(this.reports, report.ref, "Report");
|
|
224
|
+
const updated = deepClone(report);
|
|
225
|
+
this.reports.set(refKey(report.ref), updated);
|
|
226
|
+
this.persist();
|
|
227
|
+
return Promise.resolve(deepClone(updated));
|
|
228
|
+
}
|
|
229
|
+
deleteReport(ref) {
|
|
230
|
+
this.hydrate();
|
|
231
|
+
this.assertExistsAndUnlocked(this.reports, ref, "Report");
|
|
232
|
+
this.reports.delete(refKey(ref));
|
|
233
|
+
this.persist();
|
|
234
|
+
return Promise.resolve();
|
|
235
|
+
}
|
|
236
|
+
store(store, object, what) {
|
|
237
|
+
const key = refKey(object.ref);
|
|
238
|
+
if (store.has(key)) {
|
|
239
|
+
throw new UnexpectedError(`${what} "${objRefToString(object.ref)}" already exists.`);
|
|
240
|
+
}
|
|
241
|
+
store.set(key, object);
|
|
242
|
+
}
|
|
243
|
+
assertExistsAndUnlocked(store, ref, what) {
|
|
244
|
+
const existing = store.get(refKey(ref));
|
|
245
|
+
if (!existing) {
|
|
246
|
+
throw new UnexpectedError(`${what} "${objRefToString(ref)}" does not exist.`);
|
|
247
|
+
}
|
|
248
|
+
if (existing.isLocked) {
|
|
249
|
+
throw new UnexpectedError(`${what} "${objRefToString(ref)}" is locked.`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dummyBackend/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAMH,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EA4B7B,KAAK,SAAS,EAYd,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dummyBackend/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAMH,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EA4B7B,KAAK,SAAS,EAYd,KAAK,gBAAgB,EA6FxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EA0CH,KAAK,oBAAoB,EA4C5B,MAAM,qBAAqB,CAAC;AAU7B;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG;IACxD;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,KAAK,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;CACzE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAGvC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAA8C,GAAG,kBAAkB,CA2FvG;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CACzB,UAAU,EAAE,oBAAoB,EAChC,MAAM,CAAC,EAAE,gBAAgB,EACzB,MAAM,GAAE,kBAA8C,GACvD,SAAS,CAwDX"}
|
|
@@ -7,6 +7,7 @@ import { DummyAnalyticsCatalogService } from "./DummyAnalyticsCatalogService.js"
|
|
|
7
7
|
import { DummyChatConversations, DummyGenAIChatThread } from "./DummyGenAIChatThread.js";
|
|
8
8
|
import { DummySemanticQualityService } from "./DummySemanticQualityService.js";
|
|
9
9
|
import { DummySemanticSearchQueryBuilder } from "./DummySemanticSearch.js";
|
|
10
|
+
import { InMemoryWorkspaceReportsService } from "./InMemoryWorkspaceReportsService.js";
|
|
10
11
|
/**
|
|
11
12
|
*
|
|
12
13
|
*/
|
|
@@ -27,6 +28,7 @@ export const defaultDummyBackendConfig = {
|
|
|
27
28
|
* @internal
|
|
28
29
|
*/
|
|
29
30
|
export function dummyBackend(config = defaultDummyBackendConfig) {
|
|
31
|
+
const reportsServices = new Map();
|
|
30
32
|
const noopBackend = {
|
|
31
33
|
capabilities: {
|
|
32
34
|
canCalculateTotals: true,
|
|
@@ -61,7 +63,12 @@ export function dummyBackend(config = defaultDummyBackendConfig) {
|
|
|
61
63
|
throw new NotSupported("not supported");
|
|
62
64
|
},
|
|
63
65
|
workspace(id) {
|
|
64
|
-
|
|
66
|
+
let reportsService = reportsServices.get(id);
|
|
67
|
+
if (!reportsService) {
|
|
68
|
+
reportsService = new InMemoryWorkspaceReportsService();
|
|
69
|
+
reportsServices.set(id, reportsService);
|
|
70
|
+
}
|
|
71
|
+
return dummyWorkspace(id, config, reportsService);
|
|
65
72
|
},
|
|
66
73
|
entitlements() {
|
|
67
74
|
throw new NotSupported("not supported");
|
|
@@ -194,7 +201,7 @@ export function dummyDataView(definition, result, config = defaultDummyBackendCo
|
|
|
194
201
|
//
|
|
195
202
|
// Internals
|
|
196
203
|
//
|
|
197
|
-
function dummyWorkspace(workspace, config) {
|
|
204
|
+
function dummyWorkspace(workspace, config, reportsService) {
|
|
198
205
|
return {
|
|
199
206
|
workspace,
|
|
200
207
|
async getDescriptor() {
|
|
@@ -331,6 +338,9 @@ function dummyWorkspace(workspace, config) {
|
|
|
331
338
|
deleteExportTemplate: () => Promise.resolve(),
|
|
332
339
|
};
|
|
333
340
|
},
|
|
341
|
+
reports() {
|
|
342
|
+
return reportsService;
|
|
343
|
+
},
|
|
334
344
|
};
|
|
335
345
|
}
|
|
336
346
|
function dummyDescriptor(workspaceId) {
|
package/esm/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { type DummyBackendConfig, dummyBackend, dummyBackendEmptyData, dummyData
|
|
|
12
12
|
export { DummySemanticSearchQueryBuilder } from "./dummyBackend/DummySemanticSearch.js";
|
|
13
13
|
export { DummyGenAIChatThread, DummyChatConversations } from "./dummyBackend/DummyGenAIChatThread.js";
|
|
14
14
|
export { decoratedBackend } from "./decoratedBackend/index.js";
|
|
15
|
-
export type { DecoratorFactories, CatalogDecoratorFactory, ExecutionDecoratorFactory, SecuritySettingsDecoratorFactory, WorkspaceSettingsDecoratorFactory, AutomationsDecoratorFactory, AttributesDecoratorFactory, InsightsDecoratorFactory, MeasuresDecoratorFactory, DatasetsDecoratorFactory, DashboardsDecoratorFactory, FactsDecoratorFactory, GeoDecoratorFactory, OrganizationExportTemplatesDecoratorFactory, WorkspaceExportTemplatesDecoratorFactory, } from "./decoratedBackend/types.js";
|
|
15
|
+
export type { DecoratorFactories, CatalogDecoratorFactory, ExecutionDecoratorFactory, SecuritySettingsDecoratorFactory, WorkspaceSettingsDecoratorFactory, AutomationsDecoratorFactory, AttributesDecoratorFactory, InsightsDecoratorFactory, MeasuresDecoratorFactory, DatasetsDecoratorFactory, DashboardsDecoratorFactory, FactsDecoratorFactory, GeoDecoratorFactory, OrganizationExportTemplatesDecoratorFactory, WorkspaceExportTemplatesDecoratorFactory, WorkspaceReportsDecoratorFactory, } from "./decoratedBackend/types.js";
|
|
16
16
|
export { type PreparedExecutionWrapper, DecoratedExecutionFactory, DecoratedPreparedExecution, DecoratedExecutionResult, } from "./decoratedBackend/execution.js";
|
|
17
17
|
export { DecoratedWorkspaceDashboardsService } from "./decoratedBackend/dashboards.js";
|
|
18
18
|
export { DecoratedWorkspaceInsightsService } from "./decoratedBackend/insights.js";
|
|
@@ -20,6 +20,8 @@ export { type WorkspaceCatalogWrapper, DecoratedWorkspaceCatalogFactory, Decorat
|
|
|
20
20
|
export { DecoratedSecuritySettingsService } from "./decoratedBackend/securitySettings.js";
|
|
21
21
|
export { DecoratedOrganizationExportTemplatesService } from "./decoratedBackend/organizationExportTemplates.js";
|
|
22
22
|
export { DecoratedWorkspaceExportTemplatesService } from "./decoratedBackend/workspaceExportTemplates.js";
|
|
23
|
+
export { DecoratedWorkspaceReportsService } from "./decoratedBackend/workspaceReports.js";
|
|
24
|
+
export { type IWorkspaceReportsPersistence, InMemoryWorkspaceReportsService, } from "./dummyBackend/InMemoryWorkspaceReportsService.js";
|
|
23
25
|
export { DecoratedWorkspaceSettingsService } from "./decoratedBackend/workspaceSettings.js";
|
|
24
26
|
export { type AnalyticalBackendCallbacks, withEventing } from "./eventingBackend/index.js";
|
|
25
27
|
export { type CachingConfiguration, type CacheControl, withCaching, RecommendedCachingConfiguration, } from "./cachingBackend/index.js";
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,OAAO,EACH,KAAK,kBAAkB,EACvB,YAAY,EACZ,qBAAqB,EACrB,aAAa,GAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,YAAY,EACR,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,2CAA2C,EAC3C,wCAAwC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -21,6 +21,8 @@ export { DecoratedWorkspaceCatalogFactory, DecoratedWorkspaceCatalog, } from "./
|
|
|
21
21
|
export { DecoratedSecuritySettingsService } from "./decoratedBackend/securitySettings.js";
|
|
22
22
|
export { DecoratedOrganizationExportTemplatesService } from "./decoratedBackend/organizationExportTemplates.js";
|
|
23
23
|
export { DecoratedWorkspaceExportTemplatesService } from "./decoratedBackend/workspaceExportTemplates.js";
|
|
24
|
+
export { DecoratedWorkspaceReportsService } from "./decoratedBackend/workspaceReports.js";
|
|
25
|
+
export { InMemoryWorkspaceReportsService, } from "./dummyBackend/InMemoryWorkspaceReportsService.js";
|
|
24
26
|
export { DecoratedWorkspaceSettingsService } from "./decoratedBackend/workspaceSettings.js";
|
|
25
27
|
export { withEventing } from "./eventingBackend/index.js";
|
|
26
28
|
export { withCaching, RecommendedCachingConfiguration, } from "./cachingBackend/index.js";
|
|
@@ -143,6 +143,12 @@ import { IPostProcessing } from '@gooddata/sdk-model';
|
|
|
143
143
|
import { IPreparedExecution } from '@gooddata/sdk-backend-spi';
|
|
144
144
|
import { IPreparedExecutionOptions } from '@gooddata/sdk-backend-spi';
|
|
145
145
|
import { IRawExportCustomOverrides } from '@gooddata/sdk-backend-spi';
|
|
146
|
+
import { IReport } from '@gooddata/sdk-model';
|
|
147
|
+
import { IReportDefinition } from '@gooddata/sdk-model';
|
|
148
|
+
import { IReportPageLayout } from '@gooddata/sdk-model';
|
|
149
|
+
import { IReportPageLayoutDefinition } from '@gooddata/sdk-model';
|
|
150
|
+
import { IReportTemplate } from '@gooddata/sdk-model';
|
|
151
|
+
import { IReportTemplateDefinition } from '@gooddata/sdk-model';
|
|
146
152
|
import { IRequestCorrelationMetadata } from '@gooddata/sdk-backend-spi';
|
|
147
153
|
import { IResultHeader } from '@gooddata/sdk-model';
|
|
148
154
|
import { IScheduledMail } from '@gooddata/sdk-model';
|
|
@@ -174,6 +180,7 @@ import { IWorkspaceExportTemplatesService } from '@gooddata/sdk-backend-spi';
|
|
|
174
180
|
import { IWorkspaceFactsService } from '@gooddata/sdk-backend-spi';
|
|
175
181
|
import { IWorkspaceInsightsService } from '@gooddata/sdk-backend-spi';
|
|
176
182
|
import { IWorkspaceMeasuresService } from '@gooddata/sdk-backend-spi';
|
|
183
|
+
import { IWorkspaceReportsService } from '@gooddata/sdk-backend-spi';
|
|
177
184
|
import { IWorkspaceSettings } from '@gooddata/sdk-backend-spi';
|
|
178
185
|
import { IWorkspaceSettingsService } from '@gooddata/sdk-backend-spi';
|
|
179
186
|
import { KpiDrillDefinition } from '@gooddata/sdk-model';
|
|
@@ -1432,6 +1439,32 @@ export declare abstract class DecoratedWorkspaceInsightsService implements IWork
|
|
|
1432
1439
|
getInsightWithAddedFilters<T extends IInsightDefinition>(insight: T, filters: IFilter[]): Promise<T>;
|
|
1433
1440
|
}
|
|
1434
1441
|
|
|
1442
|
+
/**
|
|
1443
|
+
* Base class for report-service decorators. Delegates every method of the decorated
|
|
1444
|
+
* `IWorkspaceReportsService`; subclasses override the methods they customize.
|
|
1445
|
+
*
|
|
1446
|
+
* @alpha
|
|
1447
|
+
*/
|
|
1448
|
+
export declare abstract class DecoratedWorkspaceReportsService implements IWorkspaceReportsService {
|
|
1449
|
+
protected readonly decorated: IWorkspaceReportsService;
|
|
1450
|
+
protected constructor(decorated: IWorkspaceReportsService);
|
|
1451
|
+
getReportPageLayouts(): Promise<IReportPageLayout[]>;
|
|
1452
|
+
getReportPageLayout(ref: ObjRef): Promise<IReportPageLayout>;
|
|
1453
|
+
createReportPageLayout(page: IReportPageLayoutDefinition): Promise<IReportPageLayout>;
|
|
1454
|
+
updateReportPageLayout(page: IReportPageLayout): Promise<IReportPageLayout>;
|
|
1455
|
+
deleteReportPageLayout(ref: ObjRef): Promise<void>;
|
|
1456
|
+
getReportTemplates(): Promise<IReportTemplate[]>;
|
|
1457
|
+
getReportTemplate(ref: ObjRef): Promise<IReportTemplate>;
|
|
1458
|
+
createReportTemplate(template: IReportTemplateDefinition): Promise<IReportTemplate>;
|
|
1459
|
+
updateReportTemplate(template: IReportTemplate): Promise<IReportTemplate>;
|
|
1460
|
+
deleteReportTemplate(ref: ObjRef): Promise<void>;
|
|
1461
|
+
getReports(): Promise<IReport[]>;
|
|
1462
|
+
getReport(ref: ObjRef): Promise<IReport>;
|
|
1463
|
+
createReport(report: IReportDefinition): Promise<IReport>;
|
|
1464
|
+
updateReport(report: IReport): Promise<IReport>;
|
|
1465
|
+
deleteReport(ref: ObjRef): Promise<void>;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1435
1468
|
/**
|
|
1436
1469
|
* @alpha
|
|
1437
1470
|
*/
|
|
@@ -1500,6 +1533,7 @@ export declare type DecoratorFactories = {
|
|
|
1500
1533
|
geo?: GeoDecoratorFactory;
|
|
1501
1534
|
organizationExportTemplates?: OrganizationExportTemplatesDecoratorFactory;
|
|
1502
1535
|
workspaceExportTemplates?: WorkspaceExportTemplatesDecoratorFactory;
|
|
1536
|
+
workspaceReports?: WorkspaceReportsDecoratorFactory;
|
|
1503
1537
|
};
|
|
1504
1538
|
|
|
1505
1539
|
/**
|
|
@@ -1924,6 +1958,48 @@ export declare class InMemoryPaging<T> implements IPagedResource<T> {
|
|
|
1924
1958
|
allSorted(compareFn: (a: T, b: T) => number): Promise<T[]>;
|
|
1925
1959
|
}
|
|
1926
1960
|
|
|
1961
|
+
/**
|
|
1962
|
+
* In-memory implementation of the reports service.
|
|
1963
|
+
*
|
|
1964
|
+
* @remarks
|
|
1965
|
+
* Serves the built-in report page layouts and stores created layouts, templates and reports in memory.
|
|
1966
|
+
* Without a persistence hook the state lives only as long as the instance (dummy backend, tests);
|
|
1967
|
+
* with one (e.g. localStorage) the state is rehydrated on construction and saved after every mutation.
|
|
1968
|
+
*
|
|
1969
|
+
* @alpha
|
|
1970
|
+
*/
|
|
1971
|
+
export declare class InMemoryWorkspaceReportsService implements IWorkspaceReportsService {
|
|
1972
|
+
private readonly persistence?;
|
|
1973
|
+
private readonly pageLayouts;
|
|
1974
|
+
private readonly templates;
|
|
1975
|
+
private readonly reports;
|
|
1976
|
+
private sequence;
|
|
1977
|
+
private persistenceDisabled;
|
|
1978
|
+
constructor(persistence?: IWorkspaceReportsPersistence | undefined);
|
|
1979
|
+
private hydrate;
|
|
1980
|
+
private persist;
|
|
1981
|
+
private newRef;
|
|
1982
|
+
private findBuiltInPageLayout;
|
|
1983
|
+
getReportPageLayouts(): Promise<IReportPageLayout[]>;
|
|
1984
|
+
getReportPageLayout(ref: ObjRef): Promise<IReportPageLayout>;
|
|
1985
|
+
createReportPageLayout(layout: IReportPageLayoutDefinition): Promise<IReportPageLayout>;
|
|
1986
|
+
updateReportPageLayout(layout: IReportPageLayout): Promise<IReportPageLayout>;
|
|
1987
|
+
deleteReportPageLayout(ref: ObjRef): Promise<void>;
|
|
1988
|
+
private assertPageLayoutEditable;
|
|
1989
|
+
getReportTemplates(): Promise<IReportTemplate[]>;
|
|
1990
|
+
getReportTemplate(ref: ObjRef): Promise<IReportTemplate>;
|
|
1991
|
+
createReportTemplate(template: IReportTemplateDefinition): Promise<IReportTemplate>;
|
|
1992
|
+
updateReportTemplate(template: IReportTemplate): Promise<IReportTemplate>;
|
|
1993
|
+
deleteReportTemplate(ref: ObjRef): Promise<void>;
|
|
1994
|
+
getReports(): Promise<IReport[]>;
|
|
1995
|
+
getReport(ref: ObjRef): Promise<IReport>;
|
|
1996
|
+
createReport(report: IReportDefinition): Promise<IReport>;
|
|
1997
|
+
updateReport(report: IReport): Promise<IReport>;
|
|
1998
|
+
deleteReport(ref: ObjRef): Promise<void>;
|
|
1999
|
+
private store;
|
|
2000
|
+
private assertExistsAndUnlocked;
|
|
2001
|
+
}
|
|
2002
|
+
|
|
1927
2003
|
/**
|
|
1928
2004
|
* @internal
|
|
1929
2005
|
*/
|
|
@@ -1987,6 +2063,17 @@ export declare interface IWidgetBaseBuilder<T extends IWidget> extends IBuilder<
|
|
|
1987
2063
|
uri(valueOrUpdateCallback: ValueOrUpdateCallback<string>): this;
|
|
1988
2064
|
}
|
|
1989
2065
|
|
|
2066
|
+
/**
|
|
2067
|
+
* Storage hook for {@link InMemoryWorkspaceReportsService}: where the serialized service
|
|
2068
|
+
* state is loaded from on construction and saved to after every mutation.
|
|
2069
|
+
*
|
|
2070
|
+
* @alpha
|
|
2071
|
+
*/
|
|
2072
|
+
export declare interface IWorkspaceReportsPersistence {
|
|
2073
|
+
load(): string | null;
|
|
2074
|
+
save(value: string): void;
|
|
2075
|
+
}
|
|
2076
|
+
|
|
1990
2077
|
/**
|
|
1991
2078
|
* Specifies workspace settings and current user settings to be adjusted by the decorator.
|
|
1992
2079
|
*
|
|
@@ -2593,6 +2680,11 @@ export declare type WorkspaceCatalogWrapper = (catalog: IWorkspaceCatalog) => IW
|
|
|
2593
2680
|
*/
|
|
2594
2681
|
export declare type WorkspaceExportTemplatesDecoratorFactory = (exportTemplates: IWorkspaceExportTemplatesService, workspace: string) => IWorkspaceExportTemplatesService;
|
|
2595
2682
|
|
|
2683
|
+
/**
|
|
2684
|
+
* @alpha
|
|
2685
|
+
*/
|
|
2686
|
+
export declare type WorkspaceReportsDecoratorFactory = (reports: IWorkspaceReportsService, workspace: string) => IWorkspaceReportsService;
|
|
2687
|
+
|
|
2596
2688
|
/**
|
|
2597
2689
|
* @alpha
|
|
2598
2690
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-backend-base",
|
|
3
|
-
"version": "11.54.0
|
|
3
|
+
"version": "11.54.0",
|
|
4
4
|
"description": "GoodData.UI SDK - Base for backend implementations",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"ts-invariant": "0.10.3",
|
|
30
30
|
"tslib": "2.8.1",
|
|
31
31
|
"uuid": "11.1.1",
|
|
32
|
-
"@gooddata/sdk-backend-spi": "11.54.0
|
|
33
|
-
"@gooddata/sdk-model": "11.54.0
|
|
34
|
-
"@gooddata/util": "11.54.0
|
|
32
|
+
"@gooddata/sdk-backend-spi": "11.54.0",
|
|
33
|
+
"@gooddata/sdk-model": "11.54.0",
|
|
34
|
+
"@gooddata/util": "11.54.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@microsoft/api-documenter": "
|
|
37
|
+
"@microsoft/api-documenter": "7.30.10",
|
|
38
38
|
"@microsoft/api-extractor": "^7.55.2",
|
|
39
39
|
"@types/lodash-es": "^4.17.12",
|
|
40
|
-
"@types/spark-md5": "
|
|
40
|
+
"@types/spark-md5": "3.0.5",
|
|
41
41
|
"@typescript-eslint/eslint-plugin": "8.58.0",
|
|
42
42
|
"@typescript-eslint/parser": "8.58.0",
|
|
43
43
|
"@typescript/native-preview": "7.0.0-dev.20260202.1",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"oxlint-tsgolint": "0.15.0",
|
|
57
57
|
"typescript": "5.9.3",
|
|
58
58
|
"vitest": "4.1.8",
|
|
59
|
-
"@gooddata/
|
|
60
|
-
"@gooddata/
|
|
61
|
-
"@gooddata/reference-workspace": "11.54.0
|
|
59
|
+
"@gooddata/oxlint-config": "11.54.0",
|
|
60
|
+
"@gooddata/eslint-config": "11.54.0",
|
|
61
|
+
"@gooddata/reference-workspace": "11.54.0"
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
64
|
"_phase:build": "npm run build",
|