@apipass/frontend-utils 1.0.196 → 1.0.198

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,12 @@
1
1
  import { CerbosRepository } from './cerbos.repository';
2
2
  import type { CheckResourcesRequest, CheckResourcesResponse } from '@cerbos/core';
3
+ import { PlanResourcesPayload } from './cerbos.mapper';
4
+ import { PlanResourcesResult } from './interfaces';
3
5
  import { HttpClient } from '@angular/common/http';
4
6
  export declare class CerbosHttpRepository implements CerbosRepository {
5
7
  private readonly httpClient;
6
8
  private readonly apiUrl;
7
9
  constructor(httpClient: HttpClient, apiUrl: string);
8
10
  checkResources(payload: CheckResourcesRequest): Promise<CheckResourcesResponse>;
11
+ planResources(payload: PlanResourcesPayload): Promise<PlanResourcesResult>;
9
12
  }
@@ -1,3 +1,10 @@
1
- import { UserInfo, ResourceCheck } from './interfaces';
2
- import { CheckResourcesRequest } from '@cerbos/core';
1
+ import { UserInfo, ResourceCheck, PlanResourceCheck } from './interfaces';
2
+ import { CheckResourcesRequest, Principal, ResourceQuery } from '@cerbos/core';
3
3
  export declare function mapCerbosPayload(userInfo: UserInfo, checks: ResourceCheck[]): CheckResourcesRequest;
4
+ /** Request body for the raw `POST /api/plan/resources` PDP endpoint (protojson shape, not the SDK's flattened response type). */
5
+ export interface PlanResourcesPayload {
6
+ principal: Principal;
7
+ resource: ResourceQuery;
8
+ actions: string[];
9
+ }
10
+ export declare function mapCerbosPlanPayload(userInfo: UserInfo, check: PlanResourceCheck): PlanResourcesPayload;
@@ -1,4 +1,7 @@
1
1
  import { CheckResourcesRequest, CheckResourcesResponse } from '@cerbos/core';
2
+ import { PlanResourcesPayload } from './cerbos.mapper';
3
+ import { PlanResourcesResult } from './interfaces';
2
4
  export interface CerbosRepository {
3
5
  checkResources(payload: CheckResourcesRequest): Promise<CheckResourcesResponse>;
6
+ planResources(payload: PlanResourcesPayload): Promise<PlanResourcesResult>;
4
7
  }
@@ -1,8 +1,9 @@
1
1
  import { CerbosRepository } from './cerbos.repository';
2
- import { UserInfo, ResourceCheck } from './interfaces';
2
+ import { UserInfo, ResourceCheck, PlanResourceCheck, PlanResourcesResult } from './interfaces';
3
3
  import { ICerbosService } from './cerbos.service.interface';
4
4
  export declare class CerbosService implements ICerbosService {
5
5
  private readonly repo;
6
6
  constructor(repo: CerbosRepository);
7
7
  checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>>;
8
+ planResources(userInfo: UserInfo, check: PlanResourceCheck): Promise<PlanResourcesResult>;
8
9
  }
@@ -1,6 +1,7 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { UserInfo, ResourceCheck } from './interfaces';
2
+ import { UserInfo, ResourceCheck, PlanResourceCheck, PlanResourcesResult } from './interfaces';
3
3
  export interface ICerbosService {
4
4
  checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>>;
5
+ planResources(userInfo: UserInfo, check: PlanResourceCheck): Promise<PlanResourcesResult>;
5
6
  }
6
7
  export declare const CERBOS_SERVICE: InjectionToken<ICerbosService>;
@@ -1,2 +1,4 @@
1
1
  export * from './user-info';
2
2
  export * from './resource-check.interface';
3
+ export * from './plan-resource-check.interface';
4
+ export * from './plan-resources-result.interface';
@@ -0,0 +1,4 @@
1
+ export interface PlanResourceCheck {
2
+ kind: string;
3
+ action: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ export interface PlanResourcesFilter {
2
+ kind: string;
3
+ condition?: unknown;
4
+ }
5
+ export interface PlanResourcesResult {
6
+ filter: PlanResourcesFilter;
7
+ }
@@ -10,5 +10,9 @@ export class CerbosHttpRepository {
10
10
  const url = `${this.apiUrl}/api/check/resources`;
11
11
  return await lastValueFrom(this.httpClient.post(url, payload));
12
12
  }
13
+ async planResources(payload) {
14
+ const url = `${this.apiUrl}/api/plan/resources`;
15
+ return await lastValueFrom(this.httpClient.post(url, payload));
16
+ }
13
17
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLWh0dHAucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLWh0dHAucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxvQkFBb0I7SUFFRjtJQUF5QztJQUF0RSxZQUE2QixVQUFzQixFQUFtQixNQUFjO1FBQXZELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFeEYsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUNqRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLHNCQUFzQixDQUFDO1FBQ2pELE9BQU8sTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXlCLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENlcmJvc1JlcG9zaXRvcnkgfSBmcm9tICcuL2NlcmJvcy5yZXBvc2l0b3J5J1xuaW1wb3J0IHR5cGUgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIENoZWNrUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tICdAY2VyYm9zL2NvcmUnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBDZXJib3NIdHRwUmVwb3NpdG9yeSBpbXBsZW1lbnRzIENlcmJvc1JlcG9zaXRvcnkge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCwgcHJpdmF0ZSByZWFkb25seSBhcGlVcmw6IHN0cmluZykge31cblxuICBhc3luYyBjaGVja1Jlc291cmNlcyhwYXlsb2FkOiBDaGVja1Jlc291cmNlc1JlcXVlc3QpOiBQcm9taXNlPENoZWNrUmVzb3VyY2VzUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVVybH0vYXBpL2NoZWNrL3Jlc291cmNlc2A7XG4gICAgcmV0dXJuIGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3Q8Q2hlY2tSZXNvdXJjZXNSZXNwb25zZT4odXJsLCBwYXlsb2FkKSk7XG4gIH1cblxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLWh0dHAucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLWh0dHAucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxvQkFBb0I7SUFFRjtJQUF5QztJQUF0RSxZQUE2QixVQUFzQixFQUFtQixNQUFjO1FBQXZELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFeEYsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUNqRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLHNCQUFzQixDQUFDO1FBQ2pELE9BQU8sTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXlCLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTZCO1FBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0scUJBQXFCLENBQUM7UUFDaEQsT0FBTyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBc0IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VyYm9zUmVwb3NpdG9yeSB9IGZyb20gJy4vY2VyYm9zLnJlcG9zaXRvcnknXG5pbXBvcnQgdHlwZSB7IENoZWNrUmVzb3VyY2VzUmVxdWVzdCwgQ2hlY2tSZXNvdXJjZXNSZXNwb25zZSB9IGZyb20gJ0BjZXJib3MvY29yZSdcbmltcG9ydCB7IFBsYW5SZXNvdXJjZXNQYXlsb2FkIH0gZnJvbSAnLi9jZXJib3MubWFwcGVyJ1xuaW1wb3J0IHsgUGxhblJlc291cmNlc1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlcydcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIENlcmJvc0h0dHBSZXBvc2l0b3J5IGltcGxlbWVudHMgQ2VyYm9zUmVwb3NpdG9yeSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIHJlYWRvbmx5IGFwaVVybDogc3RyaW5nKSB7fVxuXG4gIGFzeW5jIGNoZWNrUmVzb3VyY2VzKHBheWxvYWQ6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCk6IFByb21pc2U8Q2hlY2tSZXNvdXJjZXNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBpVXJsfS9hcGkvY2hlY2svcmVzb3VyY2VzYDtcbiAgICByZXR1cm4gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdDxDaGVja1Jlc291cmNlc1Jlc3BvbnNlPih1cmwsIHBheWxvYWQpKTtcbiAgfVxuXG4gIGFzeW5jIHBsYW5SZXNvdXJjZXMocGF5bG9hZDogUGxhblJlc291cmNlc1BheWxvYWQpOiBQcm9taXNlPFBsYW5SZXNvdXJjZXNSZXN1bHQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVVybH0vYXBpL3BsYW4vcmVzb3VyY2VzYDtcbiAgICByZXR1cm4gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdDxQbGFuUmVzb3VyY2VzUmVzdWx0Pih1cmwsIHBheWxvYWQpKTtcbiAgfVxuXG59XG4iXX0=
@@ -11,4 +11,14 @@ export function mapCerbosPayload(userInfo, checks) {
11
11
  }));
12
12
  return { principal, resources };
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtJQUMxRSxNQUFNLFNBQVMsR0FBYztRQUMzQixFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVM7UUFDdEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1FBQ3JCLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTTtRQUN0QixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRTtLQUN4QyxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQTBCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDbkcsT0FBTztLQUNSLENBQUMsQ0FBQyxDQUFBO0lBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQTtBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckluZm8sIFJlc291cmNlQ2hlY2sgfSBmcm9tICcuL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIFByaW5jaXBhbCwgUmVzb3VyY2VDaGVjayBhcyBDZXJib3NSZXNvdXJjZUNoZWNrIH0gZnJvbSAnQGNlcmJvcy9jb3JlJ1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwQ2VyYm9zUGF5bG9hZCh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrczogUmVzb3VyY2VDaGVja1tdKTogQ2hlY2tSZXNvdXJjZXNSZXF1ZXN0IHtcbiAgY29uc3QgcHJpbmNpcGFsOiBQcmluY2lwYWwgPSB7XG4gICAgaWQ6IHVzZXJJbmZvLmFjY291bnRJZCxcbiAgICByb2xlczogdXNlckluZm8ucm9sZXMsXG4gICAgc2NvcGU6IHVzZXJJbmZvLmRvbWFpbixcbiAgICBhdHRyOiB7IGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH1cbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlczogQ2VyYm9zUmVzb3VyY2VDaGVja1tdID0gY2hlY2tzLm1hcCgoeyBraW5kLCBhY3Rpb25zLCBpZCB9KSA9PiAoe1xuICAgIHJlc291cmNlOiB7IGtpbmQsIGlkOiBpZCA/PyBraW5kLCBzY29wZTogdXNlckluZm8uZG9tYWluLCBhdHRyOiB7IGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH0gfSxcbiAgICBhY3Rpb25zXG4gIH0pKVxuXG4gIHJldHVybiB7IHByaW5jaXBhbCwgcmVzb3VyY2VzIH1cbn1cbiJdfQ==
14
+ export function mapCerbosPlanPayload(userInfo, check) {
15
+ const principal = {
16
+ id: userInfo.accountId,
17
+ roles: userInfo.roles,
18
+ scope: userInfo.domain,
19
+ attr: { accountId: userInfo.accountId }
20
+ };
21
+ const resource = { kind: check.kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } };
22
+ return { principal, resource, actions: [check.action] };
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtJQUMxRSxNQUFNLFNBQVMsR0FBYztRQUMzQixFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVM7UUFDdEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1FBQ3JCLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTTtRQUN0QixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRTtLQUN4QyxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQTBCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDbkcsT0FBTztLQUNSLENBQUMsQ0FBQyxDQUFBO0lBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQTtBQUNqQyxDQUFDO0FBU0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWtCLEVBQUUsS0FBd0I7SUFDL0UsTUFBTSxTQUFTLEdBQWM7UUFDM0IsRUFBRSxFQUFFLFFBQVEsQ0FBQyxTQUFTO1FBQ3RCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU07UUFDdEIsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUU7S0FDeEMsQ0FBQTtJQUVELE1BQU0sUUFBUSxHQUFrQixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQTtJQUVySCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckluZm8sIFJlc291cmNlQ2hlY2ssIFBsYW5SZXNvdXJjZUNoZWNrIH0gZnJvbSAnLi9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgQ2hlY2tSZXNvdXJjZXNSZXF1ZXN0LCBQcmluY2lwYWwsIFJlc291cmNlQ2hlY2sgYXMgQ2VyYm9zUmVzb3VyY2VDaGVjaywgUmVzb3VyY2VRdWVyeSB9IGZyb20gJ0BjZXJib3MvY29yZSdcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcENlcmJvc1BheWxvYWQodXNlckluZm86IFVzZXJJbmZvLCBjaGVja3M6IFJlc291cmNlQ2hlY2tbXSk6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCB7XG4gIGNvbnN0IHByaW5jaXBhbDogUHJpbmNpcGFsID0ge1xuICAgIGlkOiB1c2VySW5mby5hY2NvdW50SWQsXG4gICAgcm9sZXM6IHVzZXJJbmZvLnJvbGVzLFxuICAgIHNjb3BlOiB1c2VySW5mby5kb21haW4sXG4gICAgYXR0cjogeyBhY2NvdW50SWQ6IHVzZXJJbmZvLmFjY291bnRJZCB9XG4gIH1cblxuICBjb25zdCByZXNvdXJjZXM6IENlcmJvc1Jlc291cmNlQ2hlY2tbXSA9IGNoZWNrcy5tYXAoKHsga2luZCwgYWN0aW9ucywgaWQgfSkgPT4gKHtcbiAgICByZXNvdXJjZTogeyBraW5kLCBpZDogaWQgPz8ga2luZCwgc2NvcGU6IHVzZXJJbmZvLmRvbWFpbiwgYXR0cjogeyBhY2NvdW50SWQ6IHVzZXJJbmZvLmFjY291bnRJZCB9IH0sXG4gICAgYWN0aW9uc1xuICB9KSlcblxuICByZXR1cm4geyBwcmluY2lwYWwsIHJlc291cmNlcyB9XG59XG5cbi8qKiBSZXF1ZXN0IGJvZHkgZm9yIHRoZSByYXcgYFBPU1QgL2FwaS9wbGFuL3Jlc291cmNlc2AgUERQIGVuZHBvaW50IChwcm90b2pzb24gc2hhcGUsIG5vdCB0aGUgU0RLJ3MgZmxhdHRlbmVkIHJlc3BvbnNlIHR5cGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFuUmVzb3VyY2VzUGF5bG9hZCB7XG4gIHByaW5jaXBhbDogUHJpbmNpcGFsXG4gIHJlc291cmNlOiBSZXNvdXJjZVF1ZXJ5XG4gIGFjdGlvbnM6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBDZXJib3NQbGFuUGF5bG9hZCh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrOiBQbGFuUmVzb3VyY2VDaGVjayk6IFBsYW5SZXNvdXJjZXNQYXlsb2FkIHtcbiAgY29uc3QgcHJpbmNpcGFsOiBQcmluY2lwYWwgPSB7XG4gICAgaWQ6IHVzZXJJbmZvLmFjY291bnRJZCxcbiAgICByb2xlczogdXNlckluZm8ucm9sZXMsXG4gICAgc2NvcGU6IHVzZXJJbmZvLmRvbWFpbixcbiAgICBhdHRyOiB7IGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH1cbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZVF1ZXJ5ID0geyBraW5kOiBjaGVjay5raW5kLCBzY29wZTogdXNlckluZm8uZG9tYWluLCBhdHRyOiB7IGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH0gfVxuXG4gIHJldHVybiB7IHByaW5jaXBhbCwgcmVzb3VyY2UsIGFjdGlvbnM6IFtjaGVjay5hY3Rpb25dIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2NlcmJvcy5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIENoZWNrUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tICdAY2VyYm9zL2NvcmUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VyYm9zUmVwb3NpdG9yeSB7XG4gIGNoZWNrUmVzb3VyY2VzKHBheWxvYWQ6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCk6IFByb21pc2U8Q2hlY2tSZXNvdXJjZXNSZXNwb25zZT5cbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2NlcmJvcy5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIENoZWNrUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tICdAY2VyYm9zL2NvcmUnXG5pbXBvcnQgeyBQbGFuUmVzb3VyY2VzUGF5bG9hZCB9IGZyb20gJy4vY2VyYm9zLm1hcHBlcidcbmltcG9ydCB7IFBsYW5SZXNvdXJjZXNSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VyYm9zUmVwb3NpdG9yeSB7XG4gIGNoZWNrUmVzb3VyY2VzKHBheWxvYWQ6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCk6IFByb21pc2U8Q2hlY2tSZXNvdXJjZXNSZXNwb25zZT5cbiAgcGxhblJlc291cmNlcyhwYXlsb2FkOiBQbGFuUmVzb3VyY2VzUGF5bG9hZCk6IFByb21pc2U8UGxhblJlc291cmNlc1Jlc3VsdD5cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const CERBOS_SERVICE = new InjectionToken('CERBOS_SERVICE');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU85QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVc2VySW5mbywgUmVzb3VyY2VDaGVjayB9IGZyb20gJy4vaW50ZXJmYWNlcydcblxuZXhwb3J0IGludGVyZmFjZSBJQ2VyYm9zU2VydmljZSB7XG4gIGNoZWNrUmVzb3VyY2VzKHVzZXJJbmZvOiBVc2VySW5mbywgY2hlY2tzOiBSZXNvdXJjZUNoZWNrW10pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pj5cbn1cblxuZXhwb3J0IGNvbnN0IENFUkJPU19TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElDZXJib3NTZXJ2aWNlPignQ0VSQk9TX1NFUlZJQ0UnKVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQVE5QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVc2VySW5mbywgUmVzb3VyY2VDaGVjaywgUGxhblJlc291cmNlQ2hlY2ssIFBsYW5SZXNvdXJjZXNSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNlcmJvc1NlcnZpY2Uge1xuICBjaGVja1Jlc291cmNlcyh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrczogUmVzb3VyY2VDaGVja1tdKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4+XG4gIHBsYW5SZXNvdXJjZXModXNlckluZm86IFVzZXJJbmZvLCBjaGVjazogUGxhblJlc291cmNlQ2hlY2spOiBQcm9taXNlPFBsYW5SZXNvdXJjZXNSZXN1bHQ+XG59XG5cbmV4cG9ydCBjb25zdCBDRVJCT1NfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2VyYm9zU2VydmljZT4oJ0NFUkJPU19TRVJWSUNFJylcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { mapCerbosPayload } from './cerbos.mapper';
1
+ import { mapCerbosPayload, mapCerbosPlanPayload } from './cerbos.mapper';
2
2
  export class CerbosService {
3
3
  repo;
4
4
  constructor(repo) {
@@ -29,5 +29,15 @@ export class CerbosService {
29
29
  return buildDefault();
30
30
  }
31
31
  }
32
+ async planResources(userInfo, check) {
33
+ try {
34
+ const payload = mapCerbosPlanPayload(userInfo, check);
35
+ return await this.repo.planResources(payload);
36
+ }
37
+ catch (e) {
38
+ console.error(`${CerbosService.name} - ERROR`, e);
39
+ return { filter: { kind: 'KIND_ALWAYS_DENIED' } };
40
+ }
41
+ }
32
42
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2NlcmJvcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWxELE1BQU0sT0FBTyxhQUFhO0lBRUs7SUFBN0IsWUFBNkIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFBRyxDQUFDO0lBRXZELEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtRQUM5RCxNQUFNLFlBQVksR0FBRyxHQUE0QyxFQUFFLENBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQTBDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDN0YsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFUixJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQTBCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN6RSxNQUFNLFFBQVEsR0FBMkIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNoRixNQUFNLEdBQUcsR0FBRyxZQUFZLEVBQUUsQ0FBQTtZQUMxQixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMxRCxJQUFJLEtBQUssRUFBRTtvQkFDVCxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRTt3QkFDbkUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssY0FBYyxDQUFBO3dCQUN4RCxPQUFPLFNBQVMsQ0FBQTtvQkFDbEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2lCQUNsQztnQkFDRCxPQUFPLE1BQU0sQ0FBQTtZQUNmLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtTQUNSO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2pELE9BQU8sWUFBWSxFQUFFLENBQUE7U0FDdEI7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZXJib3NSZXBvc2l0b3J5IH0gZnJvbSAnLi9jZXJib3MucmVwb3NpdG9yeSdcbmltcG9ydCB7IFVzZXJJbmZvLCBSZXNvdXJjZUNoZWNrIH0gZnJvbSAnLi9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgbWFwQ2VyYm9zUGF5bG9hZCB9IGZyb20gJy4vY2VyYm9zLm1hcHBlcidcbmltcG9ydCB7IElDZXJib3NTZXJ2aWNlIH0gZnJvbSAnLi9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIENoZWNrUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tICdAY2VyYm9zL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ2VyYm9zU2VydmljZSBpbXBsZW1lbnRzIElDZXJib3NTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlcG86IENlcmJvc1JlcG9zaXRvcnkpIHt9XG5cbiAgYXN5bmMgY2hlY2tSZXNvdXJjZXModXNlckluZm86IFVzZXJJbmZvLCBjaGVja3M6IFJlc291cmNlQ2hlY2tbXSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+PiB7XG4gICAgY29uc3QgYnVpbGREZWZhdWx0ID0gKCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiA9PlxuICAgICAgY2hlY2tzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4+KChhY2MsIGMpID0+IHtcbiAgICAgICAgYWNjW2Mua2luZF0gPSBjLmFjdGlvbnMucmVkdWNlKChhLCBhY3Rpb24pID0+ICh7IC4uLmEsIFthY3Rpb25dOiBmYWxzZSB9KSwgYWNjW2Mua2luZF0gPz8ge30pXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIHt9KVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQ6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCA9IG1hcENlcmJvc1BheWxvYWQodXNlckluZm8sIGNoZWNrcylcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBDaGVja1Jlc291cmNlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXBvLmNoZWNrUmVzb3VyY2VzKHBheWxvYWQpXG4gICAgICBjb25zdCBhY2MgPSBidWlsZERlZmF1bHQoKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdHMucmVkdWNlKChyZXN1bHQsIHIpID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBjaGVja3MuZmluZChjID0+IGMua2luZCA9PT0gci5yZXNvdXJjZS5raW5kKVxuICAgICAgICBpZiAoY2hlY2spIHtcbiAgICAgICAgICByZXN1bHRbci5yZXNvdXJjZS5raW5kXSA9IGNoZWNrLmFjdGlvbnMucmVkdWNlKChhY3Rpb25NYXAsIGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgYWN0aW9uTWFwW2FjdGlvbl0gPSByLmFjdGlvbnNbYWN0aW9uXSA9PT0gJ0VGRkVDVF9BTExPVydcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25NYXBcbiAgICAgICAgICB9LCByZXN1bHRbci5yZXNvdXJjZS5raW5kXSA/PyB7fSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9LCBhY2MpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtDZXJib3NTZXJ2aWNlLm5hbWV9IC0gRVJST1JgLCBlKVxuICAgICAgcmV0dXJuIGJ1aWxkRGVmYXVsdCgpXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2NlcmJvcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSXhFLE1BQU0sT0FBTyxhQUFhO0lBRUs7SUFBN0IsWUFBNkIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFBRyxDQUFDO0lBRXZELEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtRQUM5RCxNQUFNLFlBQVksR0FBRyxHQUE0QyxFQUFFLENBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQTBDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDN0YsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFUixJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQTBCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN6RSxNQUFNLFFBQVEsR0FBMkIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNoRixNQUFNLEdBQUcsR0FBRyxZQUFZLEVBQUUsQ0FBQTtZQUMxQixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMxRCxJQUFJLEtBQUssRUFBRTtvQkFDVCxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRTt3QkFDbkUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssY0FBYyxDQUFBO3dCQUN4RCxPQUFPLFNBQVMsQ0FBQTtvQkFDbEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2lCQUNsQztnQkFDRCxPQUFPLE1BQU0sQ0FBQTtZQUNmLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtTQUNSO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2pELE9BQU8sWUFBWSxFQUFFLENBQUE7U0FDdEI7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFrQixFQUFFLEtBQXdCO1FBQzlELElBQUk7WUFDRixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDckQsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQzlDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxDQUFBO1NBQ2xEO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VyYm9zUmVwb3NpdG9yeSB9IGZyb20gJy4vY2VyYm9zLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBVc2VySW5mbywgUmVzb3VyY2VDaGVjaywgUGxhblJlc291cmNlQ2hlY2ssIFBsYW5SZXNvdXJjZXNSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBtYXBDZXJib3NQYXlsb2FkLCBtYXBDZXJib3NQbGFuUGF5bG9hZCB9IGZyb20gJy4vY2VyYm9zLm1hcHBlcidcbmltcG9ydCB7IElDZXJib3NTZXJ2aWNlIH0gZnJvbSAnLi9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIENoZWNrUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tICdAY2VyYm9zL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ2VyYm9zU2VydmljZSBpbXBsZW1lbnRzIElDZXJib3NTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlcG86IENlcmJvc1JlcG9zaXRvcnkpIHt9XG5cbiAgYXN5bmMgY2hlY2tSZXNvdXJjZXModXNlckluZm86IFVzZXJJbmZvLCBjaGVja3M6IFJlc291cmNlQ2hlY2tbXSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+PiB7XG4gICAgY29uc3QgYnVpbGREZWZhdWx0ID0gKCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiA9PlxuICAgICAgY2hlY2tzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4+KChhY2MsIGMpID0+IHtcbiAgICAgICAgYWNjW2Mua2luZF0gPSBjLmFjdGlvbnMucmVkdWNlKChhLCBhY3Rpb24pID0+ICh7IC4uLmEsIFthY3Rpb25dOiBmYWxzZSB9KSwgYWNjW2Mua2luZF0gPz8ge30pXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIHt9KVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQ6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCA9IG1hcENlcmJvc1BheWxvYWQodXNlckluZm8sIGNoZWNrcylcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBDaGVja1Jlc291cmNlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXBvLmNoZWNrUmVzb3VyY2VzKHBheWxvYWQpXG4gICAgICBjb25zdCBhY2MgPSBidWlsZERlZmF1bHQoKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdHMucmVkdWNlKChyZXN1bHQsIHIpID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBjaGVja3MuZmluZChjID0+IGMua2luZCA9PT0gci5yZXNvdXJjZS5raW5kKVxuICAgICAgICBpZiAoY2hlY2spIHtcbiAgICAgICAgICByZXN1bHRbci5yZXNvdXJjZS5raW5kXSA9IGNoZWNrLmFjdGlvbnMucmVkdWNlKChhY3Rpb25NYXAsIGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgYWN0aW9uTWFwW2FjdGlvbl0gPSByLmFjdGlvbnNbYWN0aW9uXSA9PT0gJ0VGRkVDVF9BTExPVydcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25NYXBcbiAgICAgICAgICB9LCByZXN1bHRbci5yZXNvdXJjZS5raW5kXSA/PyB7fSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9LCBhY2MpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtDZXJib3NTZXJ2aWNlLm5hbWV9IC0gRVJST1JgLCBlKVxuICAgICAgcmV0dXJuIGJ1aWxkRGVmYXVsdCgpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcGxhblJlc291cmNlcyh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrOiBQbGFuUmVzb3VyY2VDaGVjayk6IFByb21pc2U8UGxhblJlc291cmNlc1Jlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gbWFwQ2VyYm9zUGxhblBheWxvYWQodXNlckluZm8sIGNoZWNrKVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5wbGFuUmVzb3VyY2VzKHBheWxvYWQpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtDZXJib3NTZXJ2aWNlLm5hbWV9IC0gRVJST1JgLCBlKVxuICAgICAgcmV0dXJuIHsgZmlsdGVyOiB7IGtpbmQ6ICdLSU5EX0FMV0FZU19ERU5JRUQnIH0gfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -1,3 +1,5 @@
1
1
  export * from './user-info';
2
2
  export * from './resource-check.interface';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXNlci1pbmZvJ1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1jaGVjay5pbnRlcmZhY2UnXG4iXX0=
3
+ export * from './plan-resource-check.interface';
4
+ export * from './plan-resources-result.interface';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsbUNBQW1DLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VzZXItaW5mbydcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2UtY2hlY2suaW50ZXJmYWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9wbGFuLXJlc291cmNlLWNoZWNrLmludGVyZmFjZSdcbmV4cG9ydCAqIGZyb20gJy4vcGxhbi1yZXNvdXJjZXMtcmVzdWx0LmludGVyZmFjZSdcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi1yZXNvdXJjZS1jaGVjay5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2ludGVyZmFjZXMvcGxhbi1yZXNvdXJjZS1jaGVjay5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhblJlc291cmNlQ2hlY2sge1xuICBraW5kOiBzdHJpbmdcbiAgYWN0aW9uOiBzdHJpbmdcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi1yZXNvdXJjZXMtcmVzdWx0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvaW50ZXJmYWNlcy9wbGFuLXJlc291cmNlcy1yZXN1bHQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBsYW5SZXNvdXJjZXNGaWx0ZXIge1xuICBraW5kOiBzdHJpbmdcbiAgY29uZGl0aW9uPzogdW5rbm93blxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5SZXNvdXJjZXNSZXN1bHQge1xuICBmaWx0ZXI6IFBsYW5SZXNvdXJjZXNGaWx0ZXJcbn1cbiJdfQ==
@@ -425,6 +425,16 @@ function mapCerbosPayload(userInfo, checks) {
425
425
  }));
426
426
  return { principal, resources };
427
427
  }
428
+ function mapCerbosPlanPayload(userInfo, check) {
429
+ const principal = {
430
+ id: userInfo.accountId,
431
+ roles: userInfo.roles,
432
+ scope: userInfo.domain,
433
+ attr: { accountId: userInfo.accountId }
434
+ };
435
+ const resource = { kind: check.kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } };
436
+ return { principal, resource, actions: [check.action] };
437
+ }
428
438
 
429
439
  class CerbosService {
430
440
  repo;
@@ -456,6 +466,16 @@ class CerbosService {
456
466
  return buildDefault();
457
467
  }
458
468
  }
469
+ async planResources(userInfo, check) {
470
+ try {
471
+ const payload = mapCerbosPlanPayload(userInfo, check);
472
+ return await this.repo.planResources(payload);
473
+ }
474
+ catch (e) {
475
+ console.error(`${CerbosService.name} - ERROR`, e);
476
+ return { filter: { kind: 'KIND_ALWAYS_DENIED' } };
477
+ }
478
+ }
459
479
  }
460
480
 
461
481
  class CerbosHttpRepository {
@@ -469,6 +489,10 @@ class CerbosHttpRepository {
469
489
  const url = `${this.apiUrl}/api/check/resources`;
470
490
  return await lastValueFrom(this.httpClient.post(url, payload));
471
491
  }
492
+ async planResources(payload) {
493
+ const url = `${this.apiUrl}/api/plan/resources`;
494
+ return await lastValueFrom(this.httpClient.post(url, payload));
495
+ }
472
496
  }
473
497
 
474
498
  function provideCerbos(url) {
@@ -1 +1 @@
1
- {"version":3,"file":"apipass-frontend-utils.mjs","sources":["../../../projects/frontend-utils/src/file.utils.ts","../../../projects/frontend-utils/src/form.utils.ts","../../../projects/frontend-utils/src/iframe.message.ts","../../../projects/frontend-utils/src/remove-empty-attributes.ts","../../../projects/frontend-utils/src/sass-utils.ts","../../../projects/frontend-utils/src/sort.ts","../../../projects/frontend-utils/src/sort-utils.ts","../../../projects/frontend-utils/src/step.utils.ts","../../../projects/frontend-utils/src/time-utils.ts","../../../projects/frontend-utils/src/color-utils.ts","../../../projects/frontend-utils/src/string-utils.ts","../../../projects/frontend-utils/src/language.util.ts","../../../projects/frontend-utils/src/event.emitter.service.ts","../../../projects/frontend-utils/src/event.ts","../../../projects/frontend-utils/src/beautify.utils.ts","../../../projects/frontend-utils/src/mfe/load-remote-module.directive.ts","../../../projects/frontend-utils/src/mfe/configure-remote-routes.ts","../../../projects/frontend-utils/src/cerbos/cerbos.service.interface.ts","../../../projects/frontend-utils/src/cerbos/cerbos.mapper.ts","../../../projects/frontend-utils/src/cerbos/cerbos.service.ts","../../../projects/frontend-utils/src/cerbos/cerbos-http.repository.ts","../../../projects/frontend-utils/src/cerbos/cerbos.providers.ts","../../../projects/frontend-utils/src/apipass-frontend-utils.ts"],"sourcesContent":["export function downloadFile (blob: any, filename: string): void {\n const url = window.URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.style.display = 'none'\n a.href = url\n a.download = filename\n document.body.appendChild(a)\n a.click()\n window.URL.revokeObjectURL(url)\n}\n","import { AbstractControl, FormGroup, Validators } from '@angular/forms'\n\nexport function markAllFormFieldAsDirty (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsDirty()\n form.controls[field].markAsTouched()\n }\n }\n}\n\nexport function markAllFormFieldAsPristine (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsPristine()\n form.controls[field].markAsUntouched()\n }\n }\n}\n\nexport function disableIfEnableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.disable() : form?.get(formControlName)?.enable()\n}\n\nexport function enableIfDisableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.enable() : form?.get(formControlName)?.disable()\n}\n\nexport function disableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.disable()\n}\n\nexport function enableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.enable()\n}\n\nexport function habilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.enable()\n })\n}\n\nexport function desabilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.disable()\n })\n}\n\nexport function adicionarValidacaoRequiredNoFormControl (form: FormGroup, keyFormControl: string): void {\n form?.get(keyFormControl)?.setValidators(Validators.required)\n form?.get(keyFormControl)?.updateValueAndValidity()\n}\n","export class IframeMessage {\n\n static insideIframe (): boolean {\n return window !== window.parent\n }\n\n static sendMessage (message: any): void {\n if (this.insideIframe()) {\n window.parent.postMessage(message, '*')\n }\n }\n\n static sendLoadedMessage (): void {\n this.sendMessage({ loaded: true })\n }\n\n static sendUnauthorizedMessage (): void {\n this.sendMessage({ unauthorized: true })\n }\n\n}\n","import { isEmptyObject } from 'jquery'\n\nexport function removeEmptyAttributes (obj: any): any {\n if (Array.isArray(obj)) {\n return obj\n .map(v => (v && isObject(v)) ? removeEmptyAttributes(v) : v)\n .filter(v => !(v == null) && !(isEmptyObject(v)))\n } else {\n return Object.entries(obj)\n .map(([k, v]) => [k, v && isObject(v) ? removeEmptyAttributes(v) : v])\n .reduce((a: any, [k, v]) => (v == null || isEmptyObject(v) ? a : (a[k] = v, a)), {})\n }\n}\n\nfunction isObject (value: any): boolean {\n return value !== null && typeof value === 'object'\n}\n","export function getScssVarValue (name: string): string {\n return getComputedStyle(document.body).getPropertyValue(name)\n}\n","export type Direction = Array<boolean | 'asc' | 'desc'>\n\nexport class Sort {\n\n attributes: string[]\n directions: Direction\n\n constructor (attributes: string[], directions: Direction) {\n this.attributes = attributes\n this.directions = directions\n }\n\n}\n","import { type Sort } from './sort'\nimport * as _ from 'lodash'\n\nexport function orderBy (list: any[], sort: Sort): any[] {\n if (!list || !sort || !sort.attributes || !sort.directions) { return list }\n return _.orderBy(list, sort.attributes, sort.directions)\n}\n","export function isUUID (text: string): boolean {\n const uuidRegex: RegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n return uuidRegex.test(text)\n}\n","import moment from 'moment'\n\nexport function getDuration (dateStart: Date, dateEnd: Date): string {\n if (!dateStart || !dateEnd) { return '--' }\n const difTime = moment(dateEnd).diff(moment(dateStart), 'milliseconds')\n if (Number.isNaN(difTime)) { return '--' }\n if (difTime > 5000) { return Math.round(difTime / 1000) + ' sec' }\n return difTime + ' ms'\n}\n","import tinycolor from 'tinycolor2'\nimport hexToRgba from 'hex-to-rgba'\n\nexport function getRGBAArray (hex: string): any[] {\n let rgba: string = convertHexToRGB(hex)\n rgba = rgba.replace('rgba(', '')\n rgba = rgba.replace(')', '')\n return rgba.split(',')\n}\n\nexport function convertHexToRGB (color: string, alpha?: string | number): string {\n return hexToRgba(color, alpha)\n}\n\nexport function shadeBlendHexColor (hex: string, percent: number): any {\n return tinycolor(hex).lighten(percent).toString()\n}\n\nexport function changePrimaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-primary', color)\n changeCssColorVariable(element, '--mdc-theme-primary', color)\n changeCssColorVariable(element, '--color-primary-hover', shadeBlendHexColor(color, -7))\n changeCssColorVariable(element, '--color-primary-active', shadeBlendHexColor(color, 7))\n}\n\nexport function changeSecondaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-secondary', color)\n changeCssColorVariable(element, '--mdc-theme-secondary', color)\n changeCssColorVariable(element, '--color-secondary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-secondary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeTertiaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-tertiary', color)\n changeCssColorVariable(element, '--mdc-theme-tertiary', color)\n changeCssColorVariable(element, '--color-fonts-tertiary', shadeBlendHexColor(color, -35))\n changeCssColorVariable(element, '--color-tertiary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-tertiary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeCssColorVariable (element: string, colorProperty: string, hex: any): void {\n if (!element) {\n element = ':root'\n }\n const root: any = document.querySelector(element)\n root.style.setProperty(colorProperty, hex)\n}\n","export function validateEmail (email: string): boolean {\n const regularExpression = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return regularExpression.test(String(email).toLowerCase())\n}\n","import { registerLocaleData } from '@angular/common';\nimport localePt from '@angular/common/locales/pt';\nimport localeEn from '@angular/common/locales/en';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport class LanguageUtil {\n\n static getLanguage(userLanguage?: string): string {\n if (userLanguage) {\n return LanguageUtil.prepareLocale(userLanguage);\n }\n\n const languageStorage = window.localStorage.getItem('apipass-user-language');\n if (languageStorage) {\n return languageStorage;\n }\n\n const navigatorLanguage = navigator.language;\n if (navigatorLanguage.split('-')[0] === 'pt') {\n return 'pt-BR';\n }\n return 'en-US';\n }\n\n private static prepareLocale(language: string): string {\n if (language?.toLowerCase() === 'en') {\n return 'en-US'\n } else if (language?.toLowerCase() === 'pt') {\n return 'pt-BR'\n }\n return language\n }\n\n static registerLanguage(translate?: TranslateService, userLanguage?: string): string {\n const language: string = LanguageUtil.getLanguage(userLanguage);\n if (language === 'pt-BR') {\n registerLocaleData(localePt, language);\n } else {\n registerLocaleData(localeEn, language);\n }\n if (translate) {\n translate.use(language);\n }\n if (userLanguage) {\n window.localStorage.setItem('apipass-user-language', language);\n }\n return language;\n }\n\n}\n","import { EventEmitter } from '@angular/core';\n\nexport class EventEmitterService {\n\n private static emitters: Record<string, EventEmitter<any>> = {};\n\n static get(eventName: string): EventEmitter<any> {\n if (!this.emitters[eventName]) {\n this.emitters[eventName] = new EventEmitter<any>();\n }\n return this.emitters[eventName];\n }\n\n}\n","export function applicationFireEventService (event: string, detail?: Record<any, any>): void {\n window.dispatchEvent(new CustomEvent(event, { detail }))\n}\n\nexport function applicationSubscribeEventService (event: string, listener: EventListener): void {\n window.addEventListener(event, listener);\n}\n\nexport function applicationUnSubscribeEventService (event: string): void {\n window.removeEventListener(event, undefined);\n}\n","import vkBeautify from 'vkbeautify';\n\nexport function isJSON(text: string): boolean {\n try {\n vkBeautify.json(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isXML(text: string): boolean {\n try {\n vkBeautify.xml(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isSQL(text: string): boolean {\n try {\n vkBeautify.sql(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isHTML(text: string): boolean {\n try {\n vkBeautify.html(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function beautifyRawDataContent(text: string): string {\n if (isJSON(text)) {\n return vkBeautify.json(text, 2)\n } else if (isXML(text)) {\n return vkBeautify.xml(text);\n } else if (isSQL(text)) {\n return vkBeautify.sql(text);\n } else if (isHTML(text)) {\n return vkBeautify.html(text);\n } else {\n return text;\n }\n}\n","import { loadRemoteModule } from '@angular-architects/module-federation';\nimport {\n ComponentRef,\n createNgModule,\n Directive,\n EventEmitter,\n Injector,\n Input,\n NgModuleRef, OnChanges, OnInit,\n Output,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { RemoteModule } from './remote-module';\n\ninterface ICacheItem {\n component: Type<unknown>\n ngModuleRef: NgModuleRef<unknown>\n}\n\n@Directive()\nexport abstract class LoadRemoteModuleDirective implements OnInit, OnChanges {\n\n static cache: Map<string, ICacheItem> = new Map<string, ICacheItem>();\n\n @Input() remoteComponent: RemoteModule\n @Output() loaded: EventEmitter<{ instance: unknown }> = new EventEmitter<{ instance: unknown }>();\n\n private componentRef: ComponentRef<unknown>;\n\n public constructor(\n private readonly viewRef: ViewContainerRef,\n private readonly injectable: Injector\n ) {\n }\n\n async ngOnInit(): Promise<void> {\n const componentModuleRef = await this.getComponent();\n this.componentRef = this.viewRef.createComponent(componentModuleRef.component, {\n injector: this.injectable,\n ngModuleRef: componentModuleRef.ngModuleRef\n });\n this.setComponentParameters(this.componentRef);\n this.loaded.emit({ instance: this.componentRef.instance });\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n ngOnChanges(): void {\n if (this.componentRef) {\n this.setComponentParameters(this.componentRef);\n this.componentRef.changeDetectorRef.markForCheck();\n }\n }\n\n protected setComponentParameters(componentRef: ComponentRef<any>): void {\n const componentProperties = Object.keys(componentRef?.instance);\n const instanceProperties = Object.keys(this);\n componentProperties?.forEach(property => {\n if (property === '__ngContext__') {\n return;\n }\n const existsInInstanceProperties = instanceProperties?.find(instance => instance === property);\n if (existsInInstanceProperties) {\n componentRef.instance[property] = this[property]\n }\n })\n }\n\n private async getComponent(): Promise<ICacheItem> {\n const key = this.getKey();\n\n if (LoadRemoteModuleDirective.cache.has(key)) {\n return LoadRemoteModuleDirective.cache.get(key);\n }\n\n return await this.loadComponent();\n }\n\n private async loadComponent(): Promise<ICacheItem> {\n const remoteModule = await loadRemoteModule({\n remoteEntry: this.remoteComponent?.remoteEntry,\n remoteName: this.remoteComponent?.remoteName,\n exposedModule: this.remoteComponent?.exposedModule\n });\n\n const remoteComponent = await loadRemoteModule({\n remoteEntry: this.remoteComponent?.remoteEntry,\n remoteName: this.remoteComponent?.remoteName,\n exposedModule: this.remoteComponent?.componentRefName\n });\n const module = remoteModule[this.remoteComponent?.exposedModule];\n const component = remoteComponent[this.remoteComponent?.componentRefName];\n const ngModuleRef = await this.createModule(module);\n const componentAndModule = {\n component,\n ngModuleRef\n };\n LoadRemoteModuleDirective.cache.set(this.getKey(), componentAndModule);\n return componentAndModule;\n }\n\n private getKey(): string {\n return `${this.remoteComponent?.remoteEntry}-\n ${this.remoteComponent?.remoteName}-\n ${this.remoteComponent?.exposedModule}-\n ${this.remoteComponent?.componentRefName}`;\n }\n\n private async createModule(moduleOrFactory: any): Promise<NgModuleRef<any>> {\n return createNgModule<any>(moduleOrFactory, this.injectable);\n }\n\n}\n","import { RemoteModule } from './remote-module';\nimport { Routes } from '@angular/router';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\n\nexport function configureRemoteRoutes(remoteModules: RemoteModule[]): Routes {\n return remoteModules?.filter(remote => remote.routePath)?.map(remote => {\n return {\n path: remote.routePath,\n loadChildren: (): any => loadRemoteModule({\n type: 'script',\n remoteEntry: remote.remoteEntry,\n remoteName: remote.remoteName,\n exposedModule: remote.exposedModule\n }).then(m => {\n return m[remote.exposedModule]\n }),\n canActivate: remote.canActivate,\n data: { guard: remote.guardFunctionName }\n }\n })\n}\n","import { InjectionToken } from '@angular/core'\nimport { UserInfo, ResourceCheck } from './interfaces'\n\nexport interface ICerbosService {\n checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>>\n}\n\nexport const CERBOS_SERVICE = new InjectionToken<ICerbosService>('CERBOS_SERVICE')\n","import { UserInfo, ResourceCheck } from './interfaces'\nimport { CheckResourcesRequest, Principal, ResourceCheck as CerbosResourceCheck } from '@cerbos/core'\n\nexport function mapCerbosPayload(userInfo: UserInfo, checks: ResourceCheck[]): CheckResourcesRequest {\n const principal: Principal = {\n id: userInfo.accountId,\n roles: userInfo.roles,\n scope: userInfo.domain,\n attr: { accountId: userInfo.accountId }\n }\n\n const resources: CerbosResourceCheck[] = checks.map(({ kind, actions, id }) => ({\n resource: { kind, id: id ?? kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } },\n actions\n }))\n\n return { principal, resources }\n}\n","import { CerbosRepository } from './cerbos.repository'\nimport { UserInfo, ResourceCheck } from './interfaces'\nimport { mapCerbosPayload } from './cerbos.mapper'\nimport { ICerbosService } from './cerbos.service.interface'\nimport { CheckResourcesRequest, CheckResourcesResponse } from '@cerbos/core';\n\nexport class CerbosService implements ICerbosService {\n\n constructor(private readonly repo: CerbosRepository) {}\n\n async checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>> {\n const buildDefault = (): Record<string, Record<string, boolean>> =>\n checks.reduce<Record<string, Record<string, boolean>>>((acc, c) => {\n acc[c.kind] = c.actions.reduce((a, action) => ({ ...a, [action]: false }), acc[c.kind] ?? {})\n return acc\n }, {})\n\n try {\n const payload: CheckResourcesRequest = mapCerbosPayload(userInfo, checks)\n const response: CheckResourcesResponse = await this.repo.checkResources(payload)\n const acc = buildDefault()\n return response.results.reduce((result, r) => {\n const check = checks.find(c => c.kind === r.resource.kind)\n if (check) {\n result[r.resource.kind] = check.actions.reduce((actionMap, action) => {\n actionMap[action] = r.actions[action] === 'EFFECT_ALLOW'\n return actionMap\n }, result[r.resource.kind] ?? {})\n }\n return result\n }, acc)\n } catch (e) {\n console.error(`${CerbosService.name} - ERROR`, e)\n return buildDefault()\n }\n }\n\n}\n","import { CerbosRepository } from './cerbos.repository'\nimport type { CheckResourcesRequest, CheckResourcesResponse } from '@cerbos/core'\nimport { HttpClient } from '@angular/common/http'\nimport { lastValueFrom } from 'rxjs';\n\nexport class CerbosHttpRepository implements CerbosRepository {\n\n constructor(private readonly httpClient: HttpClient, private readonly apiUrl: string) {}\n\n async checkResources(payload: CheckResourcesRequest): Promise<CheckResourcesResponse> {\n const url = `${this.apiUrl}/api/check/resources`;\n return await lastValueFrom(this.httpClient.post<CheckResourcesResponse>(url, payload));\n }\n\n}\n","import { Provider } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { CERBOS_SERVICE } from './cerbos.service.interface'\nimport { CerbosService } from './cerbos.service'\nimport { CerbosHttpRepository } from './cerbos-http.repository'\n\nexport function provideCerbos(url: string): Provider {\n return {\n provide: CERBOS_SERVICE,\n useFactory: (http: HttpClient) => new CerbosService(new CerbosHttpRepository(http, url)),\n deps: [HttpClient]\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apipass-frontend-utils.mjs","sources":["../../../projects/frontend-utils/src/file.utils.ts","../../../projects/frontend-utils/src/form.utils.ts","../../../projects/frontend-utils/src/iframe.message.ts","../../../projects/frontend-utils/src/remove-empty-attributes.ts","../../../projects/frontend-utils/src/sass-utils.ts","../../../projects/frontend-utils/src/sort.ts","../../../projects/frontend-utils/src/sort-utils.ts","../../../projects/frontend-utils/src/step.utils.ts","../../../projects/frontend-utils/src/time-utils.ts","../../../projects/frontend-utils/src/color-utils.ts","../../../projects/frontend-utils/src/string-utils.ts","../../../projects/frontend-utils/src/language.util.ts","../../../projects/frontend-utils/src/event.emitter.service.ts","../../../projects/frontend-utils/src/event.ts","../../../projects/frontend-utils/src/beautify.utils.ts","../../../projects/frontend-utils/src/mfe/load-remote-module.directive.ts","../../../projects/frontend-utils/src/mfe/configure-remote-routes.ts","../../../projects/frontend-utils/src/cerbos/cerbos.service.interface.ts","../../../projects/frontend-utils/src/cerbos/cerbos.mapper.ts","../../../projects/frontend-utils/src/cerbos/cerbos.service.ts","../../../projects/frontend-utils/src/cerbos/cerbos-http.repository.ts","../../../projects/frontend-utils/src/cerbos/cerbos.providers.ts","../../../projects/frontend-utils/src/apipass-frontend-utils.ts"],"sourcesContent":["export function downloadFile (blob: any, filename: string): void {\n const url = window.URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.style.display = 'none'\n a.href = url\n a.download = filename\n document.body.appendChild(a)\n a.click()\n window.URL.revokeObjectURL(url)\n}\n","import { AbstractControl, FormGroup, Validators } from '@angular/forms'\n\nexport function markAllFormFieldAsDirty (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsDirty()\n form.controls[field].markAsTouched()\n }\n }\n}\n\nexport function markAllFormFieldAsPristine (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsPristine()\n form.controls[field].markAsUntouched()\n }\n }\n}\n\nexport function disableIfEnableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.disable() : form?.get(formControlName)?.enable()\n}\n\nexport function enableIfDisableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.enable() : form?.get(formControlName)?.disable()\n}\n\nexport function disableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.disable()\n}\n\nexport function enableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.enable()\n}\n\nexport function habilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.enable()\n })\n}\n\nexport function desabilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.disable()\n })\n}\n\nexport function adicionarValidacaoRequiredNoFormControl (form: FormGroup, keyFormControl: string): void {\n form?.get(keyFormControl)?.setValidators(Validators.required)\n form?.get(keyFormControl)?.updateValueAndValidity()\n}\n","export class IframeMessage {\n\n static insideIframe (): boolean {\n return window !== window.parent\n }\n\n static sendMessage (message: any): void {\n if (this.insideIframe()) {\n window.parent.postMessage(message, '*')\n }\n }\n\n static sendLoadedMessage (): void {\n this.sendMessage({ loaded: true })\n }\n\n static sendUnauthorizedMessage (): void {\n this.sendMessage({ unauthorized: true })\n }\n\n}\n","import { isEmptyObject } from 'jquery'\n\nexport function removeEmptyAttributes (obj: any): any {\n if (Array.isArray(obj)) {\n return obj\n .map(v => (v && isObject(v)) ? removeEmptyAttributes(v) : v)\n .filter(v => !(v == null) && !(isEmptyObject(v)))\n } else {\n return Object.entries(obj)\n .map(([k, v]) => [k, v && isObject(v) ? removeEmptyAttributes(v) : v])\n .reduce((a: any, [k, v]) => (v == null || isEmptyObject(v) ? a : (a[k] = v, a)), {})\n }\n}\n\nfunction isObject (value: any): boolean {\n return value !== null && typeof value === 'object'\n}\n","export function getScssVarValue (name: string): string {\n return getComputedStyle(document.body).getPropertyValue(name)\n}\n","export type Direction = Array<boolean | 'asc' | 'desc'>\n\nexport class Sort {\n\n attributes: string[]\n directions: Direction\n\n constructor (attributes: string[], directions: Direction) {\n this.attributes = attributes\n this.directions = directions\n }\n\n}\n","import { type Sort } from './sort'\nimport * as _ from 'lodash'\n\nexport function orderBy (list: any[], sort: Sort): any[] {\n if (!list || !sort || !sort.attributes || !sort.directions) { return list }\n return _.orderBy(list, sort.attributes, sort.directions)\n}\n","export function isUUID (text: string): boolean {\n const uuidRegex: RegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n return uuidRegex.test(text)\n}\n","import moment from 'moment'\n\nexport function getDuration (dateStart: Date, dateEnd: Date): string {\n if (!dateStart || !dateEnd) { return '--' }\n const difTime = moment(dateEnd).diff(moment(dateStart), 'milliseconds')\n if (Number.isNaN(difTime)) { return '--' }\n if (difTime > 5000) { return Math.round(difTime / 1000) + ' sec' }\n return difTime + ' ms'\n}\n","import tinycolor from 'tinycolor2'\nimport hexToRgba from 'hex-to-rgba'\n\nexport function getRGBAArray (hex: string): any[] {\n let rgba: string = convertHexToRGB(hex)\n rgba = rgba.replace('rgba(', '')\n rgba = rgba.replace(')', '')\n return rgba.split(',')\n}\n\nexport function convertHexToRGB (color: string, alpha?: string | number): string {\n return hexToRgba(color, alpha)\n}\n\nexport function shadeBlendHexColor (hex: string, percent: number): any {\n return tinycolor(hex).lighten(percent).toString()\n}\n\nexport function changePrimaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-primary', color)\n changeCssColorVariable(element, '--mdc-theme-primary', color)\n changeCssColorVariable(element, '--color-primary-hover', shadeBlendHexColor(color, -7))\n changeCssColorVariable(element, '--color-primary-active', shadeBlendHexColor(color, 7))\n}\n\nexport function changeSecondaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-secondary', color)\n changeCssColorVariable(element, '--mdc-theme-secondary', color)\n changeCssColorVariable(element, '--color-secondary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-secondary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeTertiaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-tertiary', color)\n changeCssColorVariable(element, '--mdc-theme-tertiary', color)\n changeCssColorVariable(element, '--color-fonts-tertiary', shadeBlendHexColor(color, -35))\n changeCssColorVariable(element, '--color-tertiary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-tertiary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeCssColorVariable (element: string, colorProperty: string, hex: any): void {\n if (!element) {\n element = ':root'\n }\n const root: any = document.querySelector(element)\n root.style.setProperty(colorProperty, hex)\n}\n","export function validateEmail (email: string): boolean {\n const regularExpression = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return regularExpression.test(String(email).toLowerCase())\n}\n","import { registerLocaleData } from '@angular/common';\nimport localePt from '@angular/common/locales/pt';\nimport localeEn from '@angular/common/locales/en';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport class LanguageUtil {\n\n static getLanguage(userLanguage?: string): string {\n if (userLanguage) {\n return LanguageUtil.prepareLocale(userLanguage);\n }\n\n const languageStorage = window.localStorage.getItem('apipass-user-language');\n if (languageStorage) {\n return languageStorage;\n }\n\n const navigatorLanguage = navigator.language;\n if (navigatorLanguage.split('-')[0] === 'pt') {\n return 'pt-BR';\n }\n return 'en-US';\n }\n\n private static prepareLocale(language: string): string {\n if (language?.toLowerCase() === 'en') {\n return 'en-US'\n } else if (language?.toLowerCase() === 'pt') {\n return 'pt-BR'\n }\n return language\n }\n\n static registerLanguage(translate?: TranslateService, userLanguage?: string): string {\n const language: string = LanguageUtil.getLanguage(userLanguage);\n if (language === 'pt-BR') {\n registerLocaleData(localePt, language);\n } else {\n registerLocaleData(localeEn, language);\n }\n if (translate) {\n translate.use(language);\n }\n if (userLanguage) {\n window.localStorage.setItem('apipass-user-language', language);\n }\n return language;\n }\n\n}\n","import { EventEmitter } from '@angular/core';\n\nexport class EventEmitterService {\n\n private static emitters: Record<string, EventEmitter<any>> = {};\n\n static get(eventName: string): EventEmitter<any> {\n if (!this.emitters[eventName]) {\n this.emitters[eventName] = new EventEmitter<any>();\n }\n return this.emitters[eventName];\n }\n\n}\n","export function applicationFireEventService (event: string, detail?: Record<any, any>): void {\n window.dispatchEvent(new CustomEvent(event, { detail }))\n}\n\nexport function applicationSubscribeEventService (event: string, listener: EventListener): void {\n window.addEventListener(event, listener);\n}\n\nexport function applicationUnSubscribeEventService (event: string): void {\n window.removeEventListener(event, undefined);\n}\n","import vkBeautify from 'vkbeautify';\n\nexport function isJSON(text: string): boolean {\n try {\n vkBeautify.json(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isXML(text: string): boolean {\n try {\n vkBeautify.xml(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isSQL(text: string): boolean {\n try {\n vkBeautify.sql(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isHTML(text: string): boolean {\n try {\n vkBeautify.html(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function beautifyRawDataContent(text: string): string {\n if (isJSON(text)) {\n return vkBeautify.json(text, 2)\n } else if (isXML(text)) {\n return vkBeautify.xml(text);\n } else if (isSQL(text)) {\n return vkBeautify.sql(text);\n } else if (isHTML(text)) {\n return vkBeautify.html(text);\n } else {\n return text;\n }\n}\n","import { loadRemoteModule } from '@angular-architects/module-federation';\nimport {\n ComponentRef,\n createNgModule,\n Directive,\n EventEmitter,\n Injector,\n Input,\n NgModuleRef, OnChanges, OnInit,\n Output,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { RemoteModule } from './remote-module';\n\ninterface ICacheItem {\n component: Type<unknown>\n ngModuleRef: NgModuleRef<unknown>\n}\n\n@Directive()\nexport abstract class LoadRemoteModuleDirective implements OnInit, OnChanges {\n\n static cache: Map<string, ICacheItem> = new Map<string, ICacheItem>();\n\n @Input() remoteComponent: RemoteModule\n @Output() loaded: EventEmitter<{ instance: unknown }> = new EventEmitter<{ instance: unknown }>();\n\n private componentRef: ComponentRef<unknown>;\n\n public constructor(\n private readonly viewRef: ViewContainerRef,\n private readonly injectable: Injector\n ) {\n }\n\n async ngOnInit(): Promise<void> {\n const componentModuleRef = await this.getComponent();\n this.componentRef = this.viewRef.createComponent(componentModuleRef.component, {\n injector: this.injectable,\n ngModuleRef: componentModuleRef.ngModuleRef\n });\n this.setComponentParameters(this.componentRef);\n this.loaded.emit({ instance: this.componentRef.instance });\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n ngOnChanges(): void {\n if (this.componentRef) {\n this.setComponentParameters(this.componentRef);\n this.componentRef.changeDetectorRef.markForCheck();\n }\n }\n\n protected setComponentParameters(componentRef: ComponentRef<any>): void {\n const componentProperties = Object.keys(componentRef?.instance);\n const instanceProperties = Object.keys(this);\n componentProperties?.forEach(property => {\n if (property === '__ngContext__') {\n return;\n }\n const existsInInstanceProperties = instanceProperties?.find(instance => instance === property);\n if (existsInInstanceProperties) {\n componentRef.instance[property] = this[property]\n }\n })\n }\n\n private async getComponent(): Promise<ICacheItem> {\n const key = this.getKey();\n\n if (LoadRemoteModuleDirective.cache.has(key)) {\n return LoadRemoteModuleDirective.cache.get(key);\n }\n\n return await this.loadComponent();\n }\n\n private async loadComponent(): Promise<ICacheItem> {\n const remoteModule = await loadRemoteModule({\n remoteEntry: this.remoteComponent?.remoteEntry,\n remoteName: this.remoteComponent?.remoteName,\n exposedModule: this.remoteComponent?.exposedModule\n });\n\n const remoteComponent = await loadRemoteModule({\n remoteEntry: this.remoteComponent?.remoteEntry,\n remoteName: this.remoteComponent?.remoteName,\n exposedModule: this.remoteComponent?.componentRefName\n });\n const module = remoteModule[this.remoteComponent?.exposedModule];\n const component = remoteComponent[this.remoteComponent?.componentRefName];\n const ngModuleRef = await this.createModule(module);\n const componentAndModule = {\n component,\n ngModuleRef\n };\n LoadRemoteModuleDirective.cache.set(this.getKey(), componentAndModule);\n return componentAndModule;\n }\n\n private getKey(): string {\n return `${this.remoteComponent?.remoteEntry}-\n ${this.remoteComponent?.remoteName}-\n ${this.remoteComponent?.exposedModule}-\n ${this.remoteComponent?.componentRefName}`;\n }\n\n private async createModule(moduleOrFactory: any): Promise<NgModuleRef<any>> {\n return createNgModule<any>(moduleOrFactory, this.injectable);\n }\n\n}\n","import { RemoteModule } from './remote-module';\nimport { Routes } from '@angular/router';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\n\nexport function configureRemoteRoutes(remoteModules: RemoteModule[]): Routes {\n return remoteModules?.filter(remote => remote.routePath)?.map(remote => {\n return {\n path: remote.routePath,\n loadChildren: (): any => loadRemoteModule({\n type: 'script',\n remoteEntry: remote.remoteEntry,\n remoteName: remote.remoteName,\n exposedModule: remote.exposedModule\n }).then(m => {\n return m[remote.exposedModule]\n }),\n canActivate: remote.canActivate,\n data: { guard: remote.guardFunctionName }\n }\n })\n}\n","import { InjectionToken } from '@angular/core'\nimport { UserInfo, ResourceCheck, PlanResourceCheck, PlanResourcesResult } from './interfaces'\n\nexport interface ICerbosService {\n checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>>\n planResources(userInfo: UserInfo, check: PlanResourceCheck): Promise<PlanResourcesResult>\n}\n\nexport const CERBOS_SERVICE = new InjectionToken<ICerbosService>('CERBOS_SERVICE')\n","import { UserInfo, ResourceCheck, PlanResourceCheck } from './interfaces'\nimport { CheckResourcesRequest, Principal, ResourceCheck as CerbosResourceCheck, ResourceQuery } from '@cerbos/core'\n\nexport function mapCerbosPayload(userInfo: UserInfo, checks: ResourceCheck[]): CheckResourcesRequest {\n const principal: Principal = {\n id: userInfo.accountId,\n roles: userInfo.roles,\n scope: userInfo.domain,\n attr: { accountId: userInfo.accountId }\n }\n\n const resources: CerbosResourceCheck[] = checks.map(({ kind, actions, id }) => ({\n resource: { kind, id: id ?? kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } },\n actions\n }))\n\n return { principal, resources }\n}\n\n/** Request body for the raw `POST /api/plan/resources` PDP endpoint (protojson shape, not the SDK's flattened response type). */\nexport interface PlanResourcesPayload {\n principal: Principal\n resource: ResourceQuery\n actions: string[]\n}\n\nexport function mapCerbosPlanPayload(userInfo: UserInfo, check: PlanResourceCheck): PlanResourcesPayload {\n const principal: Principal = {\n id: userInfo.accountId,\n roles: userInfo.roles,\n scope: userInfo.domain,\n attr: { accountId: userInfo.accountId }\n }\n\n const resource: ResourceQuery = { kind: check.kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } }\n\n return { principal, resource, actions: [check.action] }\n}\n","import { CerbosRepository } from './cerbos.repository'\nimport { UserInfo, ResourceCheck, PlanResourceCheck, PlanResourcesResult } from './interfaces'\nimport { mapCerbosPayload, mapCerbosPlanPayload } from './cerbos.mapper'\nimport { ICerbosService } from './cerbos.service.interface'\nimport { CheckResourcesRequest, CheckResourcesResponse } from '@cerbos/core';\n\nexport class CerbosService implements ICerbosService {\n\n constructor(private readonly repo: CerbosRepository) {}\n\n async checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>> {\n const buildDefault = (): Record<string, Record<string, boolean>> =>\n checks.reduce<Record<string, Record<string, boolean>>>((acc, c) => {\n acc[c.kind] = c.actions.reduce((a, action) => ({ ...a, [action]: false }), acc[c.kind] ?? {})\n return acc\n }, {})\n\n try {\n const payload: CheckResourcesRequest = mapCerbosPayload(userInfo, checks)\n const response: CheckResourcesResponse = await this.repo.checkResources(payload)\n const acc = buildDefault()\n return response.results.reduce((result, r) => {\n const check = checks.find(c => c.kind === r.resource.kind)\n if (check) {\n result[r.resource.kind] = check.actions.reduce((actionMap, action) => {\n actionMap[action] = r.actions[action] === 'EFFECT_ALLOW'\n return actionMap\n }, result[r.resource.kind] ?? {})\n }\n return result\n }, acc)\n } catch (e) {\n console.error(`${CerbosService.name} - ERROR`, e)\n return buildDefault()\n }\n }\n\n async planResources(userInfo: UserInfo, check: PlanResourceCheck): Promise<PlanResourcesResult> {\n try {\n const payload = mapCerbosPlanPayload(userInfo, check)\n return await this.repo.planResources(payload)\n } catch (e) {\n console.error(`${CerbosService.name} - ERROR`, e)\n return { filter: { kind: 'KIND_ALWAYS_DENIED' } }\n }\n }\n\n}\n","import { CerbosRepository } from './cerbos.repository'\nimport type { CheckResourcesRequest, CheckResourcesResponse } from '@cerbos/core'\nimport { PlanResourcesPayload } from './cerbos.mapper'\nimport { PlanResourcesResult } from './interfaces'\nimport { HttpClient } from '@angular/common/http'\nimport { lastValueFrom } from 'rxjs';\n\nexport class CerbosHttpRepository implements CerbosRepository {\n\n constructor(private readonly httpClient: HttpClient, private readonly apiUrl: string) {}\n\n async checkResources(payload: CheckResourcesRequest): Promise<CheckResourcesResponse> {\n const url = `${this.apiUrl}/api/check/resources`;\n return await lastValueFrom(this.httpClient.post<CheckResourcesResponse>(url, payload));\n }\n\n async planResources(payload: PlanResourcesPayload): Promise<PlanResourcesResult> {\n const url = `${this.apiUrl}/api/plan/resources`;\n return await lastValueFrom(this.httpClient.post<PlanResourcesResult>(url, payload));\n }\n\n}\n","import { Provider } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { CERBOS_SERVICE } from './cerbos.service.interface'\nimport { CerbosService } from './cerbos.service'\nimport { CerbosHttpRepository } from './cerbos-http.repository'\n\nexport function provideCerbos(url: string): Provider {\n return {\n provide: CERBOS_SERVICE,\n useFactory: (http: HttpClient) => new CerbosService(new CerbosHttpRepository(http, url)),\n deps: [HttpClient]\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apipass/frontend-utils",
3
- "version": "1.0.196",
3
+ "version": "1.0.198",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "16.0.2",
6
6
  "@angular/cdk": "16.0.1",