@forestadmin/forestadmin-client 1.0.0-alpha.2 → 1.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/charts/chart-handler.d.ts +17 -0
  2. package/dist/charts/chart-handler.js +39 -0
  3. package/dist/charts/types.d.ts +2 -1
  4. package/dist/charts/types.js +1 -1
  5. package/dist/forest-admin-client-with-cache.d.ts +6 -2
  6. package/dist/forest-admin-client-with-cache.js +4 -2
  7. package/dist/index.d.ts +5 -2
  8. package/dist/index.js +14 -4
  9. package/dist/permissions/forest-http-api.d.ts +1 -1
  10. package/dist/permissions/generate-actions-from-permissions.js +2 -2
  11. package/dist/permissions/hash-chart.d.ts +0 -3
  12. package/dist/permissions/hash-chart.js +2 -6
  13. package/dist/permissions/permission-with-cache.d.ts +1 -1
  14. package/dist/permissions/permission-with-cache.js +2 -2
  15. package/dist/permissions/rendering-permission.d.ts +3 -1
  16. package/dist/permissions/rendering-permission.js +13 -5
  17. package/dist/permissions/types.d.ts +2 -1
  18. package/dist/permissions/types.js +1 -1
  19. package/dist/permissions/user-permission.js +1 -1
  20. package/dist/types.d.ts +19 -1
  21. package/dist/utils/chart-detector.d.ts +11 -0
  22. package/dist/utils/chart-detector.js +28 -0
  23. package/dist/utils/context-variables-injector.d.ts +8 -0
  24. package/dist/utils/context-variables-injector.js +41 -0
  25. package/dist/utils/context-variables-instantiator.d.ts +13 -0
  26. package/dist/utils/context-variables-instantiator.js +18 -0
  27. package/dist/utils/context-variables.d.ts +17 -0
  28. package/dist/utils/context-variables.js +29 -0
  29. package/package.json +2 -2
  30. package/dist/permissions/generate-user-scope.d.ts +0 -4
  31. package/dist/permissions/generate-user-scope.js +0 -36
@@ -0,0 +1,17 @@
1
+ import type { ChartHandlerInterface } from '../types';
2
+ import type { RequestContextVariables } from '../utils/context-variables';
3
+ import type ContextVariablesInstantiator from '../utils/context-variables-instantiator';
4
+ import { Chart } from './types';
5
+ export declare type ChartRequest<C extends Chart = Chart> = C & {
6
+ contextVariables?: RequestContextVariables;
7
+ };
8
+ export default class ChartHandlerService implements ChartHandlerInterface {
9
+ private readonly contextVariablesInstantiator;
10
+ constructor(contextVariablesInstantiator: ContextVariablesInstantiator);
11
+ getChartWithContextInjected({ userId, renderingId, chartRequest, }: {
12
+ userId: string | number;
13
+ renderingId: string | number;
14
+ chartRequest: ChartRequest;
15
+ }): Promise<Chart>;
16
+ }
17
+ //# sourceMappingURL=chart-handler.d.ts.map
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chart_detector_1 = __importDefault(require("../utils/chart-detector"));
7
+ const context_variables_injector_1 = __importDefault(require("../utils/context-variables-injector"));
8
+ class ChartHandlerService {
9
+ constructor(contextVariablesInstantiator) {
10
+ this.contextVariablesInstantiator = contextVariablesInstantiator;
11
+ }
12
+ async getChartWithContextInjected({ userId, renderingId, chartRequest, }) {
13
+ const contextVariables = await this.contextVariablesInstantiator.buildContextVariables({
14
+ userId,
15
+ renderingId,
16
+ requestContextVariables: chartRequest.contextVariables,
17
+ });
18
+ const chart = { ...chartRequest };
19
+ delete chart.contextVariables;
20
+ if (chart_detector_1.default.isFilterableChart(chart)) {
21
+ chart.filter = context_variables_injector_1.default.injectContextInFilter(chart.filter, contextVariables);
22
+ }
23
+ if (chart_detector_1.default.isAggregatedChart(chart)) {
24
+ chart.aggregator = context_variables_injector_1.default.injectContextInValue(chart.aggregator, contextVariables);
25
+ }
26
+ if (chart_detector_1.default.isLineChart(chart)) {
27
+ chart.timeRange = context_variables_injector_1.default.injectContextInValue(chart.timeRange, contextVariables);
28
+ }
29
+ if (chart_detector_1.default.isObjectiveChart(chart)) {
30
+ chart.objective = Number(context_variables_injector_1.default.injectContextInValue(chart.objective, contextVariables));
31
+ }
32
+ if (chart_detector_1.default.isLeaderboardChart(chart)) {
33
+ chart.limit = Number(context_variables_injector_1.default.injectContextInValue(chart.limit, contextVariables));
34
+ }
35
+ return chart;
36
+ }
37
+ }
38
+ exports.default = ChartHandlerService;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGFydHMvY2hhcnQtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLDZFQUFvRDtBQUNwRCxxR0FBMkU7QUFPM0UsTUFBcUIsbUJBQW1CO0lBQ3RDLFlBQTZCLDRCQUEwRDtRQUExRCxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO0lBQUcsQ0FBQztJQUVwRixLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFDdkMsTUFBTSxFQUNOLFdBQVcsRUFDWCxZQUFZLEdBS2I7UUFDQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDO1lBQ3JGLE1BQU07WUFDTixXQUFXO1lBQ1gsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLGdCQUFnQjtTQUN2RCxDQUFDLENBQUM7UUFFSCxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFFOUIsSUFBSSx3QkFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsb0NBQXdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQy9GO1FBRUQsSUFBSSx3QkFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsb0NBQXdCLENBQUMsb0JBQW9CLENBQzlELEtBQUssQ0FBQyxVQUFVLEVBQ2hCLGdCQUFnQixDQUNqQixDQUFDO1NBQ0g7UUFFRCxJQUFJLHdCQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLEtBQUssQ0FBQyxTQUFTLEdBQUcsb0NBQXdCLENBQUMsb0JBQW9CLENBQzdELEtBQUssQ0FBQyxTQUFTLEVBQ2YsZ0JBQWdCLENBQ2pCLENBQUM7U0FDSDtRQUVELElBQUksd0JBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QyxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FDdEIsb0NBQXdCLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUNqRixDQUFDO1NBQ0g7UUFFRCxJQUFJLHdCQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQ2xCLG9DQUF3QixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FDN0UsQ0FBQztTQUNIO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFyREQsc0NBcURDIn0=
@@ -1,3 +1,4 @@
1
+ import type { PlainConditionTreeBranch } from '@forestadmin/datasource-toolkit';
1
2
  export declare type KeysOfUnion<T> = T extends T ? keyof T : never;
2
3
  export interface BaseChart {
3
4
  type: ChartType;
@@ -15,7 +16,7 @@ export interface QueryChart extends BaseChart {
15
16
  query: string;
16
17
  }
17
18
  export interface FilterableChart extends BaseChart {
18
- filter?: string | null;
19
+ filter?: PlainConditionTreeBranch | null;
19
20
  }
20
21
  export interface AggregatedChart extends BaseChart {
21
22
  aggregator: 'Sum' | 'Count';
@@ -11,4 +11,4 @@ var ChartType;
11
11
  ChartType["Percentage"] = "Percentage";
12
12
  ChartType["Smart"] = "Smart";
13
13
  })(ChartType = exports.ChartType || (exports.ChartType = {}));
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhcnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNFQSxJQUFZLFNBUVg7QUFSRCxXQUFZLFNBQVM7SUFDbkIsd0JBQVcsQ0FBQTtJQUNYLDRCQUFlLENBQUE7SUFDZix3Q0FBMkIsQ0FBQTtJQUMzQiwwQkFBYSxDQUFBO0lBQ2Isb0NBQXVCLENBQUE7SUFDdkIsc0NBQXlCLENBQUE7SUFDekIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFRcEIifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhcnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdFQSxJQUFZLFNBUVg7QUFSRCxXQUFZLFNBQVM7SUFDbkIsd0JBQVcsQ0FBQTtJQUNYLDRCQUFlLENBQUE7SUFDZix3Q0FBMkIsQ0FBQTtJQUMzQiwwQkFBYSxDQUFBO0lBQ2Isb0NBQXVCLENBQUE7SUFDdkIsc0NBQXlCLENBQUE7SUFDekIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFRcEIifQ==
@@ -1,11 +1,15 @@
1
1
  import type { GenericTree } from '@forestadmin/datasource-toolkit';
2
- import { ForestAdminClient, ForestAdminClientOptionsWithDefaults, PermissionService } from './types';
2
+ import ChartHandler from './charts/chart-handler';
3
3
  import RenderingPermissionService from './permissions/rendering-permission';
4
+ import { ForestAdminClient, ForestAdminClientOptionsWithDefaults, PermissionService } from './types';
5
+ import ContextVariablesInstantiator from './utils/context-variables-instantiator';
4
6
  export default class ForestAdminClientWithCache implements ForestAdminClient {
5
7
  protected readonly options: ForestAdminClientOptionsWithDefaults;
6
8
  readonly permissionService: PermissionService;
7
9
  protected readonly renderingPermissionService: RenderingPermissionService;
8
- constructor(options: ForestAdminClientOptionsWithDefaults, permissionService: PermissionService, renderingPermissionService: RenderingPermissionService);
10
+ readonly contextVariablesInstantiator: ContextVariablesInstantiator;
11
+ readonly chartHandler: ChartHandler;
12
+ constructor(options: ForestAdminClientOptionsWithDefaults, permissionService: PermissionService, renderingPermissionService: RenderingPermissionService, contextVariablesInstantiator: ContextVariablesInstantiator, chartHandler: ChartHandler);
9
13
  verifySignedActionParameters<TSignedParameters>(signedParameters: string): TSignedParameters;
10
14
  getScope({ renderingId, userId, collectionName, }: {
11
15
  renderingId: number | string;
@@ -5,10 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const verify_approval_1 = __importDefault(require("./permissions/verify-approval"));
7
7
  class ForestAdminClientWithCache {
8
- constructor(options, permissionService, renderingPermissionService) {
8
+ constructor(options, permissionService, renderingPermissionService, contextVariablesInstantiator, chartHandler) {
9
9
  this.options = options;
10
10
  this.permissionService = permissionService;
11
11
  this.renderingPermissionService = renderingPermissionService;
12
+ this.contextVariablesInstantiator = contextVariablesInstantiator;
13
+ this.chartHandler = chartHandler;
12
14
  }
13
15
  verifySignedActionParameters(signedParameters) {
14
16
  return (0, verify_approval_1.default)(signedParameters, this.options.envSecret);
@@ -25,4 +27,4 @@ class ForestAdminClientWithCache {
25
27
  }
26
28
  }
27
29
  exports.default = ForestAdminClientWithCache;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWFkbWluLWNsaWVudC13aXRoLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZvcmVzdC1hZG1pbi1jbGllbnQtd2l0aC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLG9GQUFxRTtBQUVyRSxNQUFxQiwwQkFBMEI7SUFDN0MsWUFDcUIsT0FBNkMsRUFDaEQsaUJBQW9DLEVBQ2pDLDBCQUFzRDtRQUZ0RCxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUNoRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2pDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7SUFDeEUsQ0FBQztJQUVHLDRCQUE0QixDQUNqQyxnQkFBd0I7UUFFeEIsT0FBTyxJQUFBLHlCQUF3QixFQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFDcEIsV0FBVyxFQUNYLE1BQU0sRUFDTixjQUFjLEdBS2Y7UUFDQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUM7WUFDOUMsV0FBVztZQUNYLGNBQWM7WUFDZCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFdBQTRCO1FBQ3JELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBaENELDZDQWdDQyJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWFkbWluLWNsaWVudC13aXRoLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZvcmVzdC1hZG1pbi1jbGllbnQtd2l0aC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLG9GQUFxRTtBQVFyRSxNQUFxQiwwQkFBMEI7SUFDN0MsWUFDcUIsT0FBNkMsRUFDaEQsaUJBQW9DLEVBQ2pDLDBCQUFzRCxFQUN6RCw0QkFBMEQsRUFDMUQsWUFBMEI7UUFKdkIsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFDaEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNqQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3pELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDekMsQ0FBQztJQUVHLDRCQUE0QixDQUNqQyxnQkFBd0I7UUFFeEIsT0FBTyxJQUFBLHlCQUF3QixFQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFDcEIsV0FBVyxFQUNYLE1BQU0sRUFDTixjQUFjLEdBS2Y7UUFDQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUM7WUFDOUMsV0FBVztZQUNYLGNBQWM7WUFDZCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFdBQTRCO1FBQ3JELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBbENELDZDQWtDQyJ9
package/dist/index.d.ts CHANGED
@@ -1,12 +1,15 @@
1
- import { ForestAdminClientOptions } from './types';
2
1
  import ForestAdminClient from './forest-admin-client-with-cache';
2
+ import { ForestAdminClientOptions } from './types';
3
3
  export { default as JTWTokenExpiredError } from './permissions/errors/jwt-token-expired-error';
4
4
  export { default as JTWUnableToVerifyError } from './permissions/errors/jwt-unable-to-verify-error';
5
5
  export { default as ChainedSQLQueryError } from './permissions/errors/chained-sql-query-error';
6
6
  export { default as EmptySQLQueryError } from './permissions/errors/empty-sql-query-error';
7
7
  export { default as NonSelectSQLQueryError } from './permissions/errors/non-select-sql-query-error';
8
- export { ForestAdminClientOptions, Logger, LoggerLevel, ForestAdminClient } from './types';
8
+ export { ForestAdminClientOptions, Logger, LoggerLevel, ForestAdminClient, ChartHandlerInterface, ContextVariablesInstantiatorInterface, } from './types';
9
9
  export { CollectionActionEvent } from './permissions/types';
10
10
  export default function createForestAdminClient(options: ForestAdminClientOptions): ForestAdminClient;
11
11
  export * from './charts/types';
12
+ export { default as ContextVariablesInjector } from './utils/context-variables-injector';
13
+ export { default as ContextVariables } from './utils/context-variables';
14
+ export { default as ChartHandler } from './charts/chart-handler';
12
15
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -17,12 +17,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.CollectionActionEvent = exports.NonSelectSQLQueryError = exports.EmptySQLQueryError = exports.ChainedSQLQueryError = exports.JTWUnableToVerifyError = exports.JTWTokenExpiredError = void 0;
21
- const action_permission_1 = __importDefault(require("./permissions/action-permission"));
20
+ exports.ChartHandler = exports.ContextVariables = exports.ContextVariablesInjector = exports.CollectionActionEvent = exports.NonSelectSQLQueryError = exports.EmptySQLQueryError = exports.ChainedSQLQueryError = exports.JTWUnableToVerifyError = exports.JTWTokenExpiredError = void 0;
21
+ const chart_handler_1 = __importDefault(require("./charts/chart-handler"));
22
22
  const forest_admin_client_with_cache_1 = __importDefault(require("./forest-admin-client-with-cache"));
23
+ const action_permission_1 = __importDefault(require("./permissions/action-permission"));
23
24
  const permission_with_cache_1 = __importDefault(require("./permissions/permission-with-cache"));
24
25
  const rendering_permission_1 = __importDefault(require("./permissions/rendering-permission"));
25
26
  const user_permission_1 = __importDefault(require("./permissions/user-permission"));
27
+ const context_variables_instantiator_1 = __importDefault(require("./utils/context-variables-instantiator"));
26
28
  var jwt_token_expired_error_1 = require("./permissions/errors/jwt-token-expired-error");
27
29
  Object.defineProperty(exports, "JTWTokenExpiredError", { enumerable: true, get: function () { return __importDefault(jwt_token_expired_error_1).default; } });
28
30
  var jwt_unable_to_verify_error_1 = require("./permissions/errors/jwt-unable-to-verify-error");
@@ -47,8 +49,16 @@ function createForestAdminClient(options) {
47
49
  const userPermission = new user_permission_1.default(optionsWithDefaults);
48
50
  const renderingPermission = new rendering_permission_1.default(optionsWithDefaults, userPermission);
49
51
  const permissionService = new permission_with_cache_1.default(actionPermission, renderingPermission);
50
- return new forest_admin_client_with_cache_1.default(optionsWithDefaults, permissionService, renderingPermission);
52
+ const contextVariablesInstantiator = new context_variables_instantiator_1.default(renderingPermission);
53
+ const chartHandler = new chart_handler_1.default(contextVariablesInstantiator);
54
+ return new forest_admin_client_with_cache_1.default(optionsWithDefaults, permissionService, renderingPermission, contextVariablesInstantiator, chartHandler);
51
55
  }
52
56
  exports.default = createForestAdminClient;
53
57
  __exportStar(require("./charts/types"), exports);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx3RkFBc0U7QUFDdEUsc0dBQWlFO0FBQ2pFLGdHQUFvRTtBQUNwRSw4RkFBNEU7QUFDNUUsb0ZBQWtFO0FBRWxFLHdGQUErRjtBQUF0RixnSkFBQSxPQUFPLE9BQXdCO0FBQ3hDLDhGQUFvRztBQUEzRixxSkFBQSxPQUFPLE9BQTBCO0FBQzFDLHdGQUErRjtBQUF0RixnSkFBQSxPQUFPLE9BQXdCO0FBQ3hDLG9GQUEyRjtBQUFsRiw0SUFBQSxPQUFPLE9BQXNCO0FBQ3RDLDhGQUFvRztBQUEzRixxSkFBQSxPQUFPLE9BQTBCO0FBRTFDLDZDQUE0RDtBQUFuRCw4R0FBQSxxQkFBcUIsT0FBQTtBQUU5QixTQUF3Qix1QkFBdUIsQ0FDN0MsT0FBaUM7SUFFakMsTUFBTSxtQkFBbUIsR0FBeUM7UUFDaEUsZUFBZSxFQUFFLDZCQUE2QjtRQUM5QyxpQ0FBaUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUMxQyxzQ0FBc0M7UUFDdEMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDakUsR0FBRyxPQUFPO0tBQ1gsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSwyQkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQXFCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksOEJBQTBCLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEcsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLCtCQUFpQixDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFFdkYsT0FBTyxJQUFJLHdDQUFpQixDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDNUYsQ0FBQztBQWpCRCwwQ0FpQkM7QUFFRCxpREFBK0IifQ==
58
+ var context_variables_injector_1 = require("./utils/context-variables-injector");
59
+ Object.defineProperty(exports, "ContextVariablesInjector", { enumerable: true, get: function () { return __importDefault(context_variables_injector_1).default; } });
60
+ var context_variables_1 = require("./utils/context-variables");
61
+ Object.defineProperty(exports, "ContextVariables", { enumerable: true, get: function () { return __importDefault(context_variables_1).default; } });
62
+ var chart_handler_2 = require("./charts/chart-handler");
63
+ Object.defineProperty(exports, "ChartHandler", { enumerable: true, get: function () { return __importDefault(chart_handler_2).default; } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyRUFBa0Q7QUFDbEQsc0dBQWlFO0FBQ2pFLHdGQUFzRTtBQUN0RSxnR0FBb0U7QUFDcEUsOEZBQTRFO0FBQzVFLG9GQUFrRTtBQUVsRSw0R0FBa0Y7QUFFbEYsd0ZBQStGO0FBQXRGLGdKQUFBLE9BQU8sT0FBd0I7QUFDeEMsOEZBQW9HO0FBQTNGLHFKQUFBLE9BQU8sT0FBMEI7QUFDMUMsd0ZBQStGO0FBQXRGLGdKQUFBLE9BQU8sT0FBd0I7QUFDeEMsb0ZBQTJGO0FBQWxGLDRJQUFBLE9BQU8sT0FBc0I7QUFDdEMsOEZBQW9HO0FBQTNGLHFKQUFBLE9BQU8sT0FBMEI7QUFTMUMsNkNBQTREO0FBQW5ELDhHQUFBLHFCQUFxQixPQUFBO0FBRTlCLFNBQXdCLHVCQUF1QixDQUM3QyxPQUFpQztJQUVqQyxNQUFNLG1CQUFtQixHQUF5QztRQUNoRSxlQUFlLEVBQUUsNkJBQTZCO1FBQzlDLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1FBQzFDLHNDQUFzQztRQUN0QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqRSxHQUFHLE9BQU87S0FDWCxDQUFDO0lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLDJCQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUUsTUFBTSxjQUFjLEdBQUcsSUFBSSx5QkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSw4QkFBMEIsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNoRyxNQUFNLGlCQUFpQixHQUFHLElBQUksK0JBQWlCLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN2RixNQUFNLDRCQUE0QixHQUFHLElBQUksd0NBQTRCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRixNQUFNLFlBQVksR0FBRyxJQUFJLHVCQUFZLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUVwRSxPQUFPLElBQUksd0NBQWlCLENBQzFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixZQUFZLENBQ2IsQ0FBQztBQUNKLENBQUM7QUF6QkQsMENBeUJDO0FBRUQsaURBQStCO0FBQy9CLGlGQUF5RjtBQUFoRix1SkFBQSxPQUFPLE9BQTRCO0FBQzVDLCtEQUF3RTtBQUEvRCxzSUFBQSxPQUFPLE9BQW9CO0FBQ3BDLHdEQUFpRTtBQUF4RCw4SEFBQSxPQUFPLE9BQWdCIn0=
@@ -1,5 +1,5 @@
1
- import { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4 } from './types';
2
1
  import { ForestAdminClientOptionsWithDefaults } from '../types';
2
+ import { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4 } from './types';
3
3
  declare type HttpOptions = Pick<ForestAdminClientOptionsWithDefaults, 'envSecret' | 'forestServerUrl'>;
4
4
  export default class ForestHttpApi {
5
5
  static getEnvironmentPermissions(options: HttpOptions): Promise<EnvironmentPermissionsV4>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const types_1 = require("./types");
4
3
  const generate_action_identifier_1 = require("./generate-action-identifier");
4
+ const types_1 = require("./types");
5
5
  function generateCollectionPermissions(permissions) {
6
6
  return Object.entries(permissions).reduce((acc, [collectionId, collectionPermissions]) => {
7
7
  const { collection } = collectionPermissions;
@@ -84,4 +84,4 @@ function generateActionsFromPermissions(environmentPermissions, users) {
84
84
  };
85
85
  }
86
86
  exports.default = generateActionsFromPermissions;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtYWN0aW9ucy1mcm9tLXBlcm1pc3Npb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL2dlbmVyYXRlLWFjdGlvbnMtZnJvbS1wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQVVpQjtBQUNqQiw2RUFHc0M7QUFZdEMsU0FBUyw2QkFBNkIsQ0FDcEMsV0FBZ0Q7SUFFaEQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7UUFDdkYsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLHFCQUFxQixDQUFDO1FBRTdDLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixDQUFDLElBQUEsK0RBQWtDLEVBQUMsNkJBQXFCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQzlFLFVBQVUsQ0FBQyxhQUFhO1lBQzFCLENBQUMsSUFBQSwrREFBa0MsRUFBQyw2QkFBcUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFDNUUsVUFBVSxDQUFDLFdBQVc7WUFDeEIsQ0FBQyxJQUFBLCtEQUFrQyxFQUFDLDZCQUFxQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUM1RSxVQUFVLENBQUMsV0FBVztZQUN4QixDQUFDLElBQUEsK0RBQWtDLEVBQUMsNkJBQXFCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQzNFLFVBQVUsQ0FBQyxVQUFVO1lBQ3ZCLENBQUMsSUFBQSwrREFBa0MsRUFBQyw2QkFBcUIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFDOUUsVUFBVSxDQUFDLGFBQWE7WUFDMUIsQ0FBQyxJQUFBLCtEQUFrQyxFQUFDLDZCQUFxQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxF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
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtYWN0aW9ucy1mcm9tLXBlcm1pc3Npb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL2dlbmVyYXRlLWFjdGlvbnMtZnJvbS1wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZFQUdzQztBQUN0QyxtQ0FVaUI7QUFZakIsU0FBUyw2QkFBNkIsQ0FDcEMsV0FBZ0Q7SUFFaEQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7UUFDdkYsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLHFCQUFxQixDQUFDO1FBRTdDLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixDQUFDLElBQUEsK0RBQWtDLEVBQUMsNkJBQXFCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQzlFLFVBQVUsQ0FBQyxhQUFhO1lBQzFCLENBQUMsSUFBQSwrREFBa0MsRUFBQyw2QkFBcUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFDNUUsVUFBVSxDQUFDLFdBQVc7WUFDeEIsQ0FBQyxJQUFBLCtEQUFrQyxFQUFDLDZCQUFxQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUM1RSxVQUFVLENBQUMsV0FBVztZQUN4QixDQUFDLElBQUEsK0RBQWtDLEVBQUMsNkJBQXFCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQzNFLFVBQVUsQ0FBQyxVQUFVO1lBQ3ZCLENBQUMsSUFBQSwrREFBa0MsRUFBQyw2QkFBcUIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFDOUUsVUFBVSxDQUFDLGFBQWE7WUFDMUIsQ0FBQyxJQUFBLCtEQUFrQyxFQUFDLDZCQUFxQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxF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
@@ -1,7 +1,4 @@
1
1
  import { Chart } from '../charts/types';
2
2
  export declare function hashServerCharts(charts: Chart[]): Set<string>;
3
- export declare function isGroupedByChart(chart: Chart): chart is Chart & {
4
- groupByFieldName?: string;
5
- };
6
3
  export declare function hashChartRequest(chart: Chart): string;
7
4
  //# sourceMappingURL=hash-chart.d.ts.map
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.hashChartRequest = exports.isGroupedByChart = exports.hashServerCharts = void 0;
6
+ exports.hashChartRequest = exports.hashServerCharts = void 0;
7
7
  const object_hash_1 = __importDefault(require("object-hash"));
8
8
  function hashChart(chart) {
9
9
  const knownChartKeys = [
@@ -35,12 +35,8 @@ function hashServerCharts(charts) {
35
35
  return new Set(hashes);
36
36
  }
37
37
  exports.hashServerCharts = hashServerCharts;
38
- function isGroupedByChart(chart) {
39
- return 'groupByFieldName' in chart;
40
- }
41
- exports.isGroupedByChart = isGroupedByChart;
42
38
  function hashChartRequest(chart) {
43
39
  return hashChart(chart);
44
40
  }
45
41
  exports.hashChartRequest = hashChartRequest;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy9oYXNoLWNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUlyQyxTQUFTLFNBQVMsQ0FBQyxLQUFZO0lBQzdCLE1BQU0sY0FBYyxHQUFnQjtRQUNsQyxNQUFNO1FBQ04sVUFBVTtRQUNWLFlBQVk7UUFDWixPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLFFBQVE7UUFDUixzQkFBc0I7UUFDdEIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLE9BQU87UUFDUCxXQUFXO1FBQ1gsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixvQkFBb0I7S0FDckIsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLElBQUEscUJBQVUsRUFBQyxLQUFLLEVBQUU7UUFDN0IsV0FBVyxFQUFFLEtBQUs7UUFDbEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pCLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBZ0IsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFckMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBSkQsNENBSUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sa0JBQWtCLElBQUksS0FBSyxDQUFDO0FBQ3JDLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUZELDRDQUVDIn0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy9oYXNoLWNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUlyQyxTQUFTLFNBQVMsQ0FBQyxLQUFZO0lBQzdCLE1BQU0sY0FBYyxHQUFnQjtRQUNsQyxNQUFNO1FBQ04sVUFBVTtRQUNWLFlBQVk7UUFDWixPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLFFBQVE7UUFDUixzQkFBc0I7UUFDdEIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLE9BQU87UUFDUCxXQUFXO1FBQ1gsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixvQkFBb0I7S0FDckIsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLElBQUEscUJBQVUsRUFBQyxLQUFLLEVBQUU7UUFDN0IsV0FBVyxFQUFFLEtBQUs7UUFDbEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pCLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBZ0IsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFckMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBSkQsNENBSUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFGRCw0Q0FFQyJ9
@@ -1,8 +1,8 @@
1
1
  import { Chart } from '../charts/types';
2
- import { CollectionActionEvent } from './types';
3
2
  import { PermissionService } from '../types';
4
3
  import ActionPermission from './action-permission';
5
4
  import RenderingPermissionService from './rendering-permission';
5
+ import { CollectionActionEvent } from './types';
6
6
  export default class PermissionServiceWithCache implements PermissionService {
7
7
  private readonly actionPermissionService;
8
8
  private readonly renderingPermissionService;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const types_1 = require("./types");
4
3
  const generate_action_identifier_1 = require("./generate-action-identifier");
4
+ const types_1 = require("./types");
5
5
  class PermissionServiceWithCache {
6
6
  constructor(actionPermissionService, renderingPermissionService) {
7
7
  this.actionPermissionService = actionPermissionService;
@@ -37,4 +37,4 @@ class PermissionServiceWithCache {
37
37
  }
38
38
  }
39
39
  exports.default = PermissionServiceWithCache;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi13aXRoLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL3Blcm1pc3Npb24td2l0aC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLG1DQUFtRTtBQUVuRSw2RUFHc0M7QUFJdEMsTUFBcUIsMEJBQTBCO0lBQzdDLFlBQ21CLHVCQUF5QyxFQUN6QywwQkFBc0Q7UUFEdEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFrQjtRQUN6QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO0lBQ3RFLENBQUM7SUFFRyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzNCLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxHQUtOO1FBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUNyQyxHQUFHLE1BQU0sRUFBRSxFQUNYLElBQUEsK0RBQWtDLEVBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxNQUtuQztRQUNDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxFQUM1QixNQUFNLEVBQ04sY0FBYyxFQUNkLGdCQUFnQixHQUtqQjtRQUNDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FDckMsR0FBRyxNQUFNLEVBQUUsRUFDWCxJQUFBLDJEQUE4QixFQUFDLHlCQUFpQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FDNUYsQ0FBQztJQUNKLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxFQUM1QixNQUFNLEVBQ04sY0FBYyxFQUNkLGdCQUFnQixFQUNoQixXQUFXLEdBTVo7UUFDQyxNQUFNLGdCQUFnQixHQUNwQixXQUFXLEtBQUssTUFBTTtZQUNwQixDQUFDLENBQUMsSUFBQSwyREFBOEIsRUFDNUIseUJBQWlCLENBQUMsV0FBVyxFQUM3QixnQkFBZ0IsRUFDaEIsY0FBYyxDQUNmO1lBQ0gsQ0FBQyxDQUFDLElBQUEsMkRBQThCLEVBQzVCLHlCQUFpQixDQUFDLE9BQU8sRUFDekIsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FDZixDQUFDO1FBRVIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDLEVBQzVDLE1BQU0sRUFDTixjQUFjLEVBQ2QsZ0JBQWdCLEdBS2pCO1FBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUU7WUFDeEQsSUFBQSwyREFBOEIsRUFBQyx5QkFBaUIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDO1lBQzNGLElBQUEsMkRBQThCLEVBQzVCLHlCQUFpQixDQUFDLGVBQWUsRUFDakMsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FDZjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzNCLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxHQUtiO1FBQ0MsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsZUFBZSxDQUFDO1lBQ3JELFdBQVc7WUFDWCxNQUFNO1lBQ04sWUFBWTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFHRCw2Q0EwR0MifQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi13aXRoLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL3Blcm1pc3Npb24td2l0aC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLDZFQUdzQztBQUV0QyxtQ0FBbUU7QUFFbkUsTUFBcUIsMEJBQTBCO0lBQzdDLFlBQ21CLHVCQUF5QyxFQUN6QywwQkFBc0Q7UUFEdEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFrQjtRQUN6QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO0lBQ3RFLENBQUM7SUFFRyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzNCLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxHQUtOO1FBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUNyQyxHQUFHLE1BQU0sRUFBRSxFQUNYLElBQUEsK0RBQWtDLEVBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxNQUtuQztRQUNDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxFQUM1QixNQUFNLEVBQ04sY0FBYyxFQUNkLGdCQUFnQixHQUtqQjtRQUNDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FDckMsR0FBRyxNQUFNLEVBQUUsRUFDWCxJQUFBLDJEQUE4QixFQUFDLHlCQUFpQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FDNUYsQ0FBQztJQUNKLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxFQUM1QixNQUFNLEVBQ04sY0FBYyxFQUNkLGdCQUFnQixFQUNoQixXQUFXLEdBTVo7UUFDQyxNQUFNLGdCQUFnQixHQUNwQixXQUFXLEtBQUssTUFBTTtZQUNwQixDQUFDLENBQUMsSUFBQSwyREFBOEIsRUFDNUIseUJBQWlCLENBQUMsV0FBVyxFQUM3QixnQkFBZ0IsRUFDaEIsY0FBYyxDQUNmO1lBQ0gsQ0FBQyxDQUFDLElBQUEsMkRBQThCLEVBQzVCLHlCQUFpQixDQUFDLE9BQU8sRUFDekIsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FDZixDQUFDO1FBRVIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDLEVBQzVDLE1BQU0sRUFDTixjQUFjLEVBQ2QsZ0JBQWdCLEdBS2pCO1FBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUU7WUFDeEQsSUFBQSwyREFBOEIsRUFBQyx5QkFBaUIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDO1lBQzNGLElBQUEsMkRBQThCLEVBQzVCLHlCQUFpQixDQUFDLGVBQWUsRUFDakMsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FDZjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzNCLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxHQUtiO1FBQ0MsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsZUFBZSxDQUFDO1lBQ3JELFdBQVc7WUFDWCxNQUFNO1lBQ04sWUFBWTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFHRCw2Q0EwR0MifQ==
@@ -1,7 +1,7 @@
1
1
  import type { GenericTree } from '@forestadmin/datasource-toolkit';
2
2
  import { Chart } from '../charts/types';
3
- import { CollectionRenderingPermissionV4, Team } from './types';
4
3
  import { ForestAdminClientOptionsWithDefaults } from '../types';
4
+ import { CollectionRenderingPermissionV4, Team, UserPermissionV4 } from './types';
5
5
  import UserPermissionService from './user-permission';
6
6
  export declare type RenderingPermission = {
7
7
  team: Team;
@@ -34,5 +34,7 @@ export default class RenderingPermissionService {
34
34
  }): Promise<boolean>;
35
35
  private canRetrieveChartHashOrRetry;
36
36
  invalidateCache(renderingId: number | string): void;
37
+ getUser(userId: number | string): Promise<UserPermissionV4>;
38
+ getTeam(renderingId: number | string): Promise<Team>;
37
39
  }
38
40
  //# sourceMappingURL=rendering-permission.d.ts.map
@@ -4,11 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lru_cache_1 = __importDefault(require("lru-cache"));
7
- const types_1 = require("./types");
8
- const hash_chart_1 = require("./hash-chart");
7
+ const context_variables_1 = __importDefault(require("../utils/context-variables"));
8
+ const context_variables_injector_1 = __importDefault(require("../utils/context-variables-injector"));
9
9
  const forest_http_api_1 = __importDefault(require("./forest-http-api"));
10
- const generate_user_scope_1 = __importDefault(require("./generate-user-scope"));
10
+ const hash_chart_1 = require("./hash-chart");
11
11
  const is_segment_query_authorized_1 = __importDefault(require("./is-segment-query-authorized"));
12
+ const types_1 = require("./types");
12
13
  const verify_sql_query_1 = __importDefault(require("./verify-sql-query"));
13
14
  class RenderingPermissionService {
14
15
  constructor(options, userPermissions) {
@@ -36,7 +37,7 @@ class RenderingPermissionService {
36
37
  }
37
38
  return null;
38
39
  }
39
- return (0, generate_user_scope_1.default)(collectionPermissions.scope, permissions.team, userInfo);
40
+ return context_variables_injector_1.default.injectContextInFilter(collectionPermissions.scope, new context_variables_1.default({ team: permissions.team, user: userInfo }));
40
41
  }
41
42
  async canExecuteSegmentQuery({ renderingId, collectionName, segmentQuery, }) {
42
43
  return ((await this.canExecuteSegmentQueryOrRetry({
@@ -116,6 +117,13 @@ class RenderingPermissionService {
116
117
  this.options.logger('Debug', `Invalidating rendering permissions cache for rendering ${renderingId}`);
117
118
  this.permissionsByRendering.delete(`${renderingId}`);
118
119
  }
120
+ async getUser(userId) {
121
+ return this.userPermissions.getUserInfo(userId);
122
+ }
123
+ async getTeam(renderingId) {
124
+ const permissions = await this.permissionsByRendering.fetch(`${renderingId}`);
125
+ return permissions.team;
126
+ }
119
127
  }
120
128
  exports.default = RenderingPermissionService;
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLXBlcm1pc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvcmVuZGVyaW5nLXBlcm1pc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBaUM7QUFJakMsbUNBQW1HO0FBRW5HLDZDQUFrRTtBQUNsRSx3RUFBOEM7QUFFOUMsZ0ZBQXNEO0FBQ3RELGdHQUFrRTtBQUNsRSwwRUFBZ0Q7QUFRaEQsTUFBcUIsMEJBQTBCO0lBRzdDLFlBQ21CLE9BQTZDLEVBQzdDLGVBQXNDO1FBRHRDLFlBQU8sR0FBUCxPQUFPLENBQXNDO1FBQzdDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUV2RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxtQkFBUSxDQUFDO1lBQ3pDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEdBQUcsSUFBSTtZQUMxRCxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztTQUM5RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUNwQixXQUFXLEVBQ1gsY0FBYyxFQUNkLE1BQU0sR0FLUDtRQUNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzVCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsTUFBTSxFQUNOLFVBQVUsR0FNWDtRQUNDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEdBQTRDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN6RixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEdBQUcs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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLXBlcm1pc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvcmVuZGVyaW5nLXBlcm1pc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwwREFBaUM7QUFJakMsbUZBQTBEO0FBQzFELHFHQUEyRTtBQUMzRSx3RUFBOEM7QUFDOUMsNkNBQWtFO0FBQ2xFLGdHQUFrRTtBQUNsRSxtQ0FBbUc7QUFFbkcsMEVBQWdEO0FBUWhELE1BQXFCLDBCQUEwQjtJQUc3QyxZQUNtQixPQUE2QyxFQUM3QyxlQUFzQztRQUR0QyxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUM3QyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFFdkQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksbUJBQVEsQ0FBQztZQUN6QyxHQUFHLEVBQUUsR0FBRztZQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxHQUFHLElBQUk7WUFDMUQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7U0FDOUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFDcEIsV0FBVyxFQUNYLGNBQWMsRUFDZCxNQUFNLEdBS1A7UUFDQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUM1QixXQUFXLEVBQ1gsY0FBYyxFQUNkLE1BQU0sRUFDTixVQUFVLEdBTVg7UUFDQyxNQUFNLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxHQUE0QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDekYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtB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
@@ -1,5 +1,5 @@
1
- import type { GenericTree } from '@forestadmin/datasource-toolkit';
2
1
  import type { Chart } from '../charts/types';
2
+ import type { GenericTree } from '@forestadmin/datasource-toolkit';
3
3
  export declare type EnvironmentPermissionsV4 = EnvironmentPermissionsV4Remote | true;
4
4
  export declare type RightDescriptionWithRolesV4 = {
5
5
  roles: number[];
@@ -42,6 +42,7 @@ export declare type UserPermissionV4 = {
42
42
  id: number;
43
43
  firstName: string;
44
44
  lastName: string;
45
+ fullName: string;
45
46
  email: string;
46
47
  permissionLevel: PermissionLevel;
47
48
  tags: Record<string, string>;
@@ -24,4 +24,4 @@ var CustomActionEvent;
24
24
  CustomActionEvent["SelfApprove"] = "self-approve";
25
25
  CustomActionEvent["RequireApproval"] = "require-approval";
26
26
  })(CustomActionEvent = exports.CustomActionEvent || (exports.CustomActionEvent = {}));
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMENBLElBQVksZUFLWDtBQUxELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsMENBQXVCLENBQUE7SUFDdkIsb0NBQWlCLENBQUE7SUFDakIsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxlQUFlLEdBQWYsdUJBQWUsS0FBZix1QkFBZSxRQUsxQjtBQVlELElBQVkscUJBT1g7QUFQRCxXQUFZLHFCQUFxQjtJQUMvQiwwQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBYSxDQUFBO0lBQ2Isc0NBQWEsQ0FBQTtJQUNiLDBDQUFpQixDQUFBO0lBQ2pCLG9DQUFXLENBQUE7QUFDYixDQUFDLEVBUFcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFPaEM7QUFFRCxJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDM0Isd0NBQW1CLENBQUE7SUFDbkIsd0NBQW1CLENBQUE7SUFDbkIsaURBQTRCLENBQUE7SUFDNUIseURBQW9DLENBQUE7QUFDdEMsQ0FBQyxFQUxXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBSzVCIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUNBLElBQVksZUFLWDtBQUxELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsMENBQXVCLENBQUE7SUFDdkIsb0NBQWlCLENBQUE7SUFDakIsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxlQUFlLEdBQWYsdUJBQWUsS0FBZix1QkFBZSxRQUsxQjtBQWFELElBQVkscUJBT1g7QUFQRCxXQUFZLHFCQUFxQjtJQUMvQiwwQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBYSxDQUFBO0lBQ2Isc0NBQWEsQ0FBQTtJQUNiLDBDQUFpQixDQUFBO0lBQ2pCLG9DQUFXLENBQUE7QUFDYixDQUFDLEVBUFcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFPaEM7QUFFRCxJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDM0Isd0NBQW1CLENBQUE7SUFDbkIsd0NBQW1CLENBQUE7SUFDbkIsaURBQTRCLENBQUE7SUFDNUIseURBQW9DLENBQUE7QUFDdEMsQ0FBQyxFQUxXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBSzVCIn0=
@@ -33,4 +33,4 @@ class UserPermissionService {
33
33
  }
34
34
  }
35
35
  exports.default = UserPermissionService;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJtaXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL3VzZXItcGVybWlzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHdFQUE4QztBQUU5QyxNQUFxQixxQkFBcUI7SUFReEMsWUFBNkIsT0FBNkM7UUFBN0MsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFQbEUsNkJBQXdCLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLGlFQUFpRTtRQUNqRSwyREFBMkQ7UUFDM0Qsb0RBQW9EO1FBQzVDLGlCQUFZLEdBQTJDLElBQUksQ0FBQztJQUVTLENBQUM7SUFFdkUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUF1QjtRQUM5QyxJQUNFLENBQUMsSUFBSSxDQUFDLHdCQUF3QjtZQUM5QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFDM0M7WUFDQSxJQUFJLENBQUMsd0JBQXdCO2dCQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUM7WUFFckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7WUFFbEUsbUVBQW1FO1lBQ25FLG9FQUFvRTtZQUNwRSxxQ0FBcUM7WUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyx5QkFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMzRCxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQzNELENBQUM7Q0FDRjtBQXBDRCx3Q0FvQ0MifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJtaXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL3VzZXItcGVybWlzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHdFQUE4QztBQUc5QyxNQUFxQixxQkFBcUI7SUFReEMsWUFBNkIsT0FBNkM7UUFBN0MsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFQbEUsNkJBQXdCLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLGlFQUFpRTtRQUNqRSwyREFBMkQ7UUFDM0Qsb0RBQW9EO1FBQzVDLGlCQUFZLEdBQTJDLElBQUksQ0FBQztJQUVTLENBQUM7SUFFdkUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUF1QjtRQUM5QyxJQUNFLENBQUMsSUFBSSxDQUFDLHdCQUF3QjtZQUM5QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFDM0M7WUFDQSxJQUFJLENBQUMsd0JBQXdCO2dCQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUM7WUFFckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7WUFFbEUsbUVBQW1FO1lBQ25FLG9FQUFvRTtZQUNwRSxxQ0FBcUM7WUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyx5QkFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMzRCxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQzNELENBQUM7Q0FDRjtBQXBDRCx3Q0FvQ0MifQ==
package/dist/types.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- import type { GenericTree } from '@forestadmin/datasource-toolkit';
1
+ import type { ChartRequest } from './charts/chart-handler';
2
2
  import type { Chart } from './charts/types';
3
3
  import type { CollectionActionEvent } from './permissions/types';
4
+ import type { GenericTree } from '@forestadmin/datasource-toolkit';
5
+ import ContextVariables, { RequestContextVariables } from './utils/context-variables';
4
6
  export declare type LoggerLevel = 'Debug' | 'Info' | 'Warn' | 'Error';
5
7
  export declare type Logger = (level: LoggerLevel, message: unknown) => void;
6
8
  export declare type ForestAdminClientOptions = {
@@ -12,6 +14,8 @@ export declare type ForestAdminClientOptions = {
12
14
  export declare type ForestAdminClientOptionsWithDefaults = Required<ForestAdminClientOptions>;
13
15
  export interface ForestAdminClient {
14
16
  readonly permissionService: PermissionService;
17
+ readonly contextVariablesInstantiator: ContextVariablesInstantiatorInterface;
18
+ readonly chartHandler: ChartHandlerInterface;
15
19
  verifySignedActionParameters<TSignedParameters>(signedParameters: string): TSignedParameters;
16
20
  getScope(params: {
17
21
  renderingId: number | string;
@@ -54,4 +58,18 @@ export interface PermissionService {
54
58
  segmentQuery: string;
55
59
  }): Promise<boolean>;
56
60
  }
61
+ export interface ChartHandlerInterface {
62
+ getChartWithContextInjected(params: {
63
+ userId: string | number;
64
+ renderingId: string | number;
65
+ chartRequest: ChartRequest;
66
+ }): Promise<Chart>;
67
+ }
68
+ export interface ContextVariablesInstantiatorInterface {
69
+ buildContextVariables(params: {
70
+ requestContextVariables?: RequestContextVariables;
71
+ renderingId: string | number;
72
+ userId: string | number;
73
+ }): Promise<ContextVariables>;
74
+ }
57
75
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,11 @@
1
+ import type { AggregatedChart, ApiRouteChart, Chart, FilterableChart, GroupedByChart, LeaderboardChart, LineChart, ObjectiveChart } from '../charts/types';
2
+ export default class ChartDetector {
3
+ static isAPIRouteChart(chart: Chart): chart is ApiRouteChart;
4
+ static isLineChart(chart: Chart): chart is LineChart;
5
+ static isObjectiveChart(chart: Chart): chart is ObjectiveChart;
6
+ static isLeaderboardChart(chart: Chart): chart is LeaderboardChart;
7
+ static isFilterableChart(chart: Chart): chart is FilterableChart & Chart;
8
+ static isAggregatedChart(chart: Chart): chart is AggregatedChart & Chart;
9
+ static isGroupedByChart(chart: Chart): chart is GroupedByChart & Chart;
10
+ }
11
+ //# sourceMappingURL=chart-detector.d.ts.map
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("../charts/types");
4
+ class ChartDetector {
5
+ static isAPIRouteChart(chart) {
6
+ return 'apiRoute' in chart;
7
+ }
8
+ static isLineChart(chart) {
9
+ return chart.type === types_1.ChartType.Line;
10
+ }
11
+ static isObjectiveChart(chart) {
12
+ return chart.type === types_1.ChartType.Objective;
13
+ }
14
+ static isLeaderboardChart(chart) {
15
+ return chart.type === types_1.ChartType.Leaderboard;
16
+ }
17
+ static isFilterableChart(chart) {
18
+ return 'filter' in chart;
19
+ }
20
+ static isAggregatedChart(chart) {
21
+ return 'aggregator' in chart;
22
+ }
23
+ static isGroupedByChart(chart) {
24
+ return 'groupByFieldName' in chart;
25
+ }
26
+ }
27
+ exports.default = ChartDetector;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZGV0ZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2hhcnQtZGV0ZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSwyQ0FBNEM7QUFFNUMsTUFBcUIsYUFBYTtJQUN6QixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQVk7UUFDeEMsT0FBTyxVQUFVLElBQUksS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQVk7UUFDcEMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLGlCQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBWTtRQUN6QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssaUJBQVMsQ0FBQyxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFZO1FBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxpQkFBUyxDQUFDLFdBQVcsQ0FBQztJQUM5QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQVk7UUFDMUMsT0FBTyxRQUFRLElBQUksS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBWTtRQUMxQyxPQUFPLFlBQVksSUFBSSxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3pDLE9BQU8sa0JBQWtCLElBQUksS0FBSyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQTVCRCxnQ0E0QkMifQ==
@@ -0,0 +1,8 @@
1
+ import type { PlainConditionTreeBranch, PlainConditionTreeLeaf } from '@forestadmin/datasource-toolkit';
2
+ import ContextVariables from './context-variables';
3
+ export default class ContextVariablesInjector {
4
+ private static isPlainConditionTreeBranch;
5
+ static injectContextInValue<ValueType>(value: ValueType, contextVariables: ContextVariables): ValueType;
6
+ static injectContextInFilter<PlainConditionTree extends PlainConditionTreeBranch | PlainConditionTreeLeaf | null>(filter: PlainConditionTree, contextVariables: ContextVariables): PlainConditionTree;
7
+ }
8
+ //# sourceMappingURL=context-variables-injector.d.ts.map
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ContextVariablesInjector {
4
+ static isPlainConditionTreeBranch(filter) {
5
+ return 'aggregator' in filter;
6
+ }
7
+ static injectContextInValue(value, contextVariables) {
8
+ if (typeof value !== 'string') {
9
+ return value;
10
+ }
11
+ let valueWithContextVariablesInjected = value;
12
+ const regex = /{{([^}]+)}}/g;
13
+ let match = regex.exec(value);
14
+ while (match) {
15
+ const contextVariableKey = match[1];
16
+ const contextValue = contextVariables.getValue(contextVariableKey);
17
+ valueWithContextVariablesInjected = valueWithContextVariablesInjected.replace(new RegExp(`{{${contextVariableKey}}}`, 'g'), String(contextValue));
18
+ match = regex.exec(value);
19
+ }
20
+ return valueWithContextVariablesInjected;
21
+ }
22
+ static injectContextInFilter(filter, contextVariables) {
23
+ if (!filter) {
24
+ return null;
25
+ }
26
+ if (ContextVariablesInjector.isPlainConditionTreeBranch(filter)) {
27
+ return {
28
+ ...filter,
29
+ conditions: filter.conditions.map(condition => {
30
+ return this.injectContextInFilter(condition, contextVariables);
31
+ }),
32
+ };
33
+ }
34
+ return {
35
+ ...filter,
36
+ value: this.injectContextInValue(filter.value, contextVariables),
37
+ };
38
+ }
39
+ }
40
+ exports.default = ContextVariablesInjector;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12YXJpYWJsZXMtaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29udGV4dC12YXJpYWJsZXMtaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxNQUFxQix3QkFBd0I7SUFDbkMsTUFBTSxDQUFDLDBCQUEwQixDQUN2QyxNQUF5RDtRQUV6RCxPQUFPLFlBQVksSUFBSSxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsS0FBZ0IsRUFDaEIsZ0JBQWtDO1FBRWxDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLGlDQUFpQyxHQUFXLEtBQUssQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDN0IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixPQUFPLEtBQUssRUFBRTtZQUNaLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRW5FLGlDQUFpQyxHQUFHLGlDQUFpQyxDQUFDLE9BQU8sQ0FDM0UsSUFBSSxNQUFNLENBQUMsS0FBSyxrQkFBa0IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQ3JCLENBQUM7WUFDRixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUVELE9BQU8saUNBQXlELENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FFakMsTUFBMEIsRUFBRSxnQkFBa0M7UUFDOUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9ELE9BQU87Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDNUMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQzthQUNILENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7U0FDakUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRERCwyQ0FzREMifQ==
@@ -0,0 +1,13 @@
1
+ import RenderingPermissionService from '../permissions/rendering-permission';
2
+ import { ContextVariablesInstantiatorInterface } from '../types';
3
+ import ContextVariables, { RequestContextVariables } from './context-variables';
4
+ export default class ContextVariablesInstantiator implements ContextVariablesInstantiatorInterface {
5
+ private readonly renderingPermissionService;
6
+ constructor(renderingPermissionService: RenderingPermissionService);
7
+ buildContextVariables({ requestContextVariables, renderingId, userId, }: {
8
+ requestContextVariables?: RequestContextVariables;
9
+ renderingId: string | number;
10
+ userId: string | number;
11
+ }): Promise<ContextVariables>;
12
+ }
13
+ //# sourceMappingURL=context-variables-instantiator.d.ts.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const context_variables_1 = __importDefault(require("./context-variables"));
7
+ class ContextVariablesInstantiator {
8
+ constructor(renderingPermissionService) {
9
+ this.renderingPermissionService = renderingPermissionService;
10
+ }
11
+ async buildContextVariables({ requestContextVariables = {}, renderingId, userId, }) {
12
+ const team = await this.renderingPermissionService.getTeam(renderingId);
13
+ const user = await this.renderingPermissionService.getUser(userId);
14
+ return new context_variables_1.default({ requestContextVariables, team, user });
15
+ }
16
+ }
17
+ exports.default = ContextVariablesInstantiator;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12YXJpYWJsZXMtaW5zdGFudGlhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnRleHQtdmFyaWFibGVzLWluc3RhbnRpYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDRFQUFnRjtBQUVoRixNQUFxQiw0QkFBNEI7SUFDL0MsWUFBNkIsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7SUFBRyxDQUFDO0lBRWhGLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUNqQyx1QkFBdUIsR0FBRyxFQUFFLEVBQzVCLFdBQVcsRUFDWCxNQUFNLEdBS1A7UUFDQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLE9BQU8sSUFBSSwyQkFBZ0IsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQWpCRCwrQ0FpQkMifQ==
@@ -0,0 +1,17 @@
1
+ import { Team, UserPermissionV4 } from '../permissions/types';
2
+ export declare type RequestContextVariables = {
3
+ [key: string]: string | number | boolean;
4
+ };
5
+ export default class ContextVariables {
6
+ private requestContextVariables;
7
+ private team;
8
+ private user;
9
+ constructor({ requestContextVariables, team, user, }: {
10
+ requestContextVariables?: RequestContextVariables;
11
+ team: Team;
12
+ user: UserPermissionV4;
13
+ });
14
+ private getCurrentUserData;
15
+ getValue(contextVariableKey: string): unknown;
16
+ }
17
+ //# sourceMappingURL=context-variables.d.ts.map
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const USER_VALUE_PREFIX = 'currentUser.';
4
+ const USER_VALUE_TAG_PREFIX = 'currentUser.tags.';
5
+ const USER_VALUE_TEAM_PREFIX = 'currentUser.team.';
6
+ class ContextVariables {
7
+ constructor({ requestContextVariables = {}, team, user, }) {
8
+ this.requestContextVariables = requestContextVariables;
9
+ this.team = team;
10
+ this.user = user;
11
+ }
12
+ getCurrentUserData(contextVariableKey) {
13
+ if (contextVariableKey.startsWith(USER_VALUE_TEAM_PREFIX)) {
14
+ return this.team[contextVariableKey.substring(USER_VALUE_TEAM_PREFIX.length)];
15
+ }
16
+ if (contextVariableKey.startsWith(USER_VALUE_TAG_PREFIX)) {
17
+ return this.user?.tags?.[contextVariableKey.substring(USER_VALUE_TAG_PREFIX.length)];
18
+ }
19
+ return this.user?.[contextVariableKey.substring(USER_VALUE_PREFIX.length)];
20
+ }
21
+ getValue(contextVariableKey) {
22
+ if (contextVariableKey.startsWith(USER_VALUE_PREFIX)) {
23
+ return this.getCurrentUserData(contextVariableKey);
24
+ }
25
+ return this.requestContextVariables[contextVariableKey];
26
+ }
27
+ }
28
+ exports.default = ContextVariables;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12YXJpYWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29udGV4dC12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUN6QyxNQUFNLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0FBQ2xELE1BQU0sc0JBQXNCLEdBQUcsbUJBQW1CLENBQUM7QUFFbkQsTUFBcUIsZ0JBQWdCO0lBS25DLFlBQVksRUFDVix1QkFBdUIsR0FBRyxFQUFFLEVBQzVCLElBQUksRUFDSixJQUFJLEdBS0w7UUFDQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLGtCQUEwQjtRQUNuRCxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUMvRTtRQUVELElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVNLFFBQVEsQ0FBQyxrQkFBMEI7UUFDeEMsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNwRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0Y7QUF0Q0QsbUNBc0NDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/forestadmin-client",
3
- "version": "1.0.0-alpha.2",
3
+ "version": "1.0.0-alpha.4",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -29,7 +29,7 @@
29
29
  "test": "jest"
30
30
  },
31
31
  "devDependencies": {
32
- "@forestadmin/datasource-toolkit": "1.0.1-alpha.1",
32
+ "@forestadmin/datasource-toolkit": "1.1.1-alpha.1",
33
33
  "@types/jsonwebtoken": "^8.5.8",
34
34
  "@types/lru-cache": "^7.6.1",
35
35
  "@types/superagent": "^4.1.15",
@@ -1,4 +0,0 @@
1
- import type { GenericTree } from '@forestadmin/datasource-toolkit';
2
- import { Team, UserPermissionV4 } from './types';
3
- export default function generateUserScope(filter: GenericTree | null, team: Team, user: UserPermissionV4): GenericTree;
4
- //# sourceMappingURL=generate-user-scope.d.ts.map
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const USER_VALUE_PREFIX = '$currentUser.';
4
- const USER_VALUE_TAG_PREFIX = '$currentUser.tags.';
5
- const USER_VALUE_TEAM_PREFIX = '$currentUser.team.';
6
- function generateUserValue(value, team, user) {
7
- if (typeof value !== 'string' || !value.startsWith(USER_VALUE_PREFIX)) {
8
- return value;
9
- }
10
- if (value.startsWith(USER_VALUE_TEAM_PREFIX)) {
11
- return team[value.slice(USER_VALUE_TEAM_PREFIX.length)];
12
- }
13
- if (value.startsWith(USER_VALUE_TAG_PREFIX)) {
14
- return user?.tags?.[value.substring(USER_VALUE_TAG_PREFIX.length)];
15
- }
16
- return user?.[value.substring(USER_VALUE_PREFIX.length)];
17
- }
18
- function generateUserScope(filter, team, user) {
19
- if (!filter) {
20
- return null;
21
- }
22
- const branch = filter;
23
- if (branch.aggregator) {
24
- return {
25
- ...filter,
26
- conditions: branch.conditions.map(condition => generateUserScope(condition, team, user)),
27
- };
28
- }
29
- const leaf = filter;
30
- return {
31
- ...filter,
32
- value: generateUserValue(leaf.value, team, user),
33
- };
34
- }
35
- exports.default = generateUserScope;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdXNlci1zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy9nZW5lcmF0ZS11c2VyLXNjb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDMUMsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztBQUNuRCxNQUFNLHNCQUFzQixHQUFHLG9CQUFvQixDQUFDO0FBRXBELFNBQVMsaUJBQWlCLENBQUMsS0FBdUIsRUFBRSxJQUFVLEVBQUUsSUFBc0I7SUFDcEYsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDckUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUN6RDtJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1FBQzNDLE9BQU8sSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNwRTtJQUVELE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUF3QixpQkFBaUIsQ0FDdkMsTUFBMEIsRUFDMUIsSUFBVSxFQUNWLElBQXNCO0lBRXRCLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBMkIsQ0FBQztJQUUzQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDckIsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDekYsQ0FBQztLQUNIO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBeUIsQ0FBQztJQUV2QyxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsS0FBSyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQztBQXhCRCxvQ0F3QkMifQ==