@apipass/frontend-utils 1.0.189 → 1.0.190

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,7 +1,3 @@
1
- import { UserInfo } from './interfaces';
1
+ import { UserInfo, ResourceCheck } from './interfaces';
2
2
  import { CheckResourcesRequest } from '@cerbos/core';
3
- export declare function mapCerbosPayload(userInfo: UserInfo, checks: Array<{
4
- kind: string;
5
- action: string;
6
- id?: string;
7
- }>): CheckResourcesRequest;
3
+ export declare function mapCerbosPayload(userInfo: UserInfo, checks: ResourceCheck[]): CheckResourcesRequest;
@@ -4,5 +4,5 @@ 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
- checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, boolean>>;
7
+ checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>>;
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { UserInfo, ResourceCheck } from './interfaces';
3
3
  export interface ICerbosService {
4
- checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, boolean>>;
4
+ checkResources(userInfo: UserInfo, checks: ResourceCheck[]): Promise<Record<string, Record<string, boolean>>>;
5
5
  }
6
6
  export declare const CERBOS_SERVICE: InjectionToken<ICerbosService>;
@@ -1,5 +1,5 @@
1
1
  export interface ResourceCheck {
2
2
  kind: string;
3
- action: string;
3
+ actions: string[];
4
4
  id?: string;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  export interface UserInfo {
2
2
  accountId: string;
3
3
  domain: string;
4
- role: string | string[];
4
+ roles: string[];
5
5
  }
@@ -1,13 +1,13 @@
1
1
  export function mapCerbosPayload(userInfo, checks) {
2
2
  const principal = {
3
3
  id: userInfo.accountId,
4
- roles: (Array.isArray(userInfo.role) ? userInfo.role : [userInfo.role]).map(r => r.toLowerCase()),
4
+ roles: userInfo.roles.map(r => r.toLowerCase()),
5
5
  attr: { account_domain: userInfo.domain, accountId: userInfo.accountId }
6
6
  };
7
- const resources = checks.map(({ kind, action, id }) => ({
7
+ const resources = checks.map(({ kind, actions, id }) => ({
8
8
  resource: { kind, id: id ?? kind, attr: { account_domain: userInfo.domain, accountId: userInfo.accountId } },
9
- actions: [action]
9
+ actions
10
10
  }));
11
11
  return { principal, resources };
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxNQUE0RDtJQUMvRyxNQUFNLFNBQVMsR0FBYztRQUMzQixFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVM7UUFDdEIsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pHLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFO0tBQ3pFLENBQUE7SUFFRCxNQUFNLFNBQVMsR0FBb0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUM1RyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDbEIsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4vaW50ZXJmYWNlcydcbmltcG9ydCB7IENoZWNrUmVzb3VyY2VzUmVxdWVzdCwgUHJpbmNpcGFsLCBSZXNvdXJjZUNoZWNrIH0gZnJvbSAnQGNlcmJvcy9jb3JlJ1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwQ2VyYm9zUGF5bG9hZCh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrczogQXJyYXk8eyBraW5kOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBpZD86IHN0cmluZyB9Pik6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCB7XG4gIGNvbnN0IHByaW5jaXBhbDogUHJpbmNpcGFsID0ge1xuICAgIGlkOiB1c2VySW5mby5hY2NvdW50SWQsXG4gICAgcm9sZXM6IChBcnJheS5pc0FycmF5KHVzZXJJbmZvLnJvbGUpID8gdXNlckluZm8ucm9sZSA6IFt1c2VySW5mby5yb2xlXSkubWFwKHIgPT4gci50b0xvd2VyQ2FzZSgpKSxcbiAgICBhdHRyOiB7IGFjY291bnRfZG9tYWluOiB1c2VySW5mby5kb21haW4sIGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH1cbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlczogUmVzb3VyY2VDaGVja1tdID0gY2hlY2tzLm1hcCgoeyBraW5kLCBhY3Rpb24sIGlkIH0pID0+ICh7XG4gICAgcmVzb3VyY2U6IHsga2luZCwgaWQ6IGlkID8/IGtpbmQsIGF0dHI6IHsgYWNjb3VudF9kb21haW46IHVzZXJJbmZvLmRvbWFpbiwgYWNjb3VudElkOiB1c2VySW5mby5hY2NvdW50SWQgfSB9LFxuICAgIGFjdGlvbnM6IFthY3Rpb25dXG4gIH0pKVxuXG4gIHJldHVybiB7IHByaW5jaXBhbCwgcmVzb3VyY2VzIH1cbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtJQUMxRSxNQUFNLFNBQVMsR0FBYztRQUMzQixFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVM7UUFDdEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFO0tBQ3pFLENBQUE7SUFFRCxNQUFNLFNBQVMsR0FBMEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUM1RyxPQUFPO0tBQ1IsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VySW5mbywgUmVzb3VyY2VDaGVjayB9IGZyb20gJy4vaW50ZXJmYWNlcydcbmltcG9ydCB7IENoZWNrUmVzb3VyY2VzUmVxdWVzdCwgUHJpbmNpcGFsLCBSZXNvdXJjZUNoZWNrIGFzIENlcmJvc1Jlc291cmNlQ2hlY2sgfSBmcm9tICdAY2VyYm9zL2NvcmUnXG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBDZXJib3NQYXlsb2FkKHVzZXJJbmZvOiBVc2VySW5mbywgY2hlY2tzOiBSZXNvdXJjZUNoZWNrW10pOiBDaGVja1Jlc291cmNlc1JlcXVlc3Qge1xuICBjb25zdCBwcmluY2lwYWw6IFByaW5jaXBhbCA9IHtcbiAgICBpZDogdXNlckluZm8uYWNjb3VudElkLFxuICAgIHJvbGVzOiB1c2VySW5mby5yb2xlcy5tYXAociA9PiByLnRvTG93ZXJDYXNlKCkpLFxuICAgIGF0dHI6IHsgYWNjb3VudF9kb21haW46IHVzZXJJbmZvLmRvbWFpbiwgYWNjb3VudElkOiB1c2VySW5mby5hY2NvdW50SWQgfVxuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VzOiBDZXJib3NSZXNvdXJjZUNoZWNrW10gPSBjaGVja3MubWFwKCh7IGtpbmQsIGFjdGlvbnMsIGlkIH0pID0+ICh7XG4gICAgcmVzb3VyY2U6IHsga2luZCwgaWQ6IGlkID8/IGtpbmQsIGF0dHI6IHsgYWNjb3VudF9kb21haW46IHVzZXJJbmZvLmRvbWFpbiwgYWNjb3VudElkOiB1c2VySW5mby5hY2NvdW50SWQgfSB9LFxuICAgIGFjdGlvbnNcbiAgfSkpXG5cbiAgcmV0dXJuIHsgcHJpbmNpcGFsLCByZXNvdXJjZXMgfVxufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU85QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVc2VySW5mbywgUmVzb3VyY2VDaGVjayB9IGZyb20gJy4vaW50ZXJmYWNlcydcblxuZXhwb3J0IGludGVyZmFjZSBJQ2VyYm9zU2VydmljZSB7XG4gIGNoZWNrUmVzb3VyY2VzKHVzZXJJbmZvOiBVc2VySW5mbywgY2hlY2tzOiBSZXNvdXJjZUNoZWNrW10pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PlxufVxuXG5leHBvcnQgY29uc3QgQ0VSQk9TX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNlcmJvc1NlcnZpY2U+KCdDRVJCT1NfU0VSVklDRScpXG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU85QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVc2VySW5mbywgUmVzb3VyY2VDaGVjayB9IGZyb20gJy4vaW50ZXJmYWNlcydcblxuZXhwb3J0IGludGVyZmFjZSBJQ2VyYm9zU2VydmljZSB7XG4gIGNoZWNrUmVzb3VyY2VzKHVzZXJJbmZvOiBVc2VySW5mbywgY2hlY2tzOiBSZXNvdXJjZUNoZWNrW10pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pj5cbn1cblxuZXhwb3J0IGNvbnN0IENFUkJPU19TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElDZXJib3NTZXJ2aWNlPignQ0VSQk9TX1NFUlZJQ0UnKVxuIl19
@@ -5,22 +5,29 @@ export class CerbosService {
5
5
  this.repo = repo;
6
6
  }
7
7
  async checkResources(userInfo, checks) {
8
+ const buildDefault = () => checks.reduce((acc, c) => {
9
+ acc[c.kind] = c.actions.reduce((a, action) => ({ ...a, [action]: false }), acc[c.kind] ?? {});
10
+ return acc;
11
+ }, {});
8
12
  try {
9
13
  const payload = mapCerbosPayload(userInfo, checks);
10
14
  const response = await this.repo.checkResources(payload);
11
- const acc = checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {});
15
+ const acc = buildDefault();
12
16
  return response.results.reduce((result, r) => {
13
17
  const check = checks.find(c => c.kind === r.resource.kind);
14
18
  if (check) {
15
- result[r.resource.kind] = r.actions[check.action] === 'EFFECT_ALLOW';
19
+ result[r.resource.kind] = check.actions.reduce((actionMap, action) => {
20
+ actionMap[action] = r.actions[action] === 'EFFECT_ALLOW';
21
+ return actionMap;
22
+ }, result[r.resource.kind] ?? {});
16
23
  }
17
24
  return result;
18
25
  }, acc);
19
26
  }
20
27
  catch (e) {
21
28
  console.error(`${CerbosService.name} - ERROR`, e);
22
- return checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {});
29
+ return buildDefault();
23
30
  }
24
31
  }
25
32
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2NlcmJvcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWxELE1BQU0sT0FBTyxhQUFhO0lBRUs7SUFBN0IsWUFBNkIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFBRyxDQUFDO0lBRXZELEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtRQUM5RCxJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQTBCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN6RSxNQUFNLFFBQVEsR0FBMkIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNoRixNQUFNLEdBQUcsR0FBNEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQzdGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzFELElBQUksS0FBSyxFQUFFO29CQUNULE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLGNBQWMsQ0FBQTtpQkFDckU7Z0JBQ0QsT0FBTyxNQUFNLENBQUE7WUFDZixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDUjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNqRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtTQUNoRTtJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENlcmJvc1JlcG9zaXRvcnkgfSBmcm9tICcuL2NlcmJvcy5yZXBvc2l0b3J5J1xuaW1wb3J0IHsgVXNlckluZm8sIFJlc291cmNlQ2hlY2sgfSBmcm9tICcuL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBtYXBDZXJib3NQYXlsb2FkIH0gZnJvbSAnLi9jZXJib3MubWFwcGVyJ1xuaW1wb3J0IHsgSUNlcmJvc1NlcnZpY2UgfSBmcm9tICcuL2NlcmJvcy5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IENoZWNrUmVzb3VyY2VzUmVxdWVzdCwgQ2hlY2tSZXNvdXJjZXNSZXNwb25zZSB9IGZyb20gJ0BjZXJib3MvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBDZXJib3NTZXJ2aWNlIGltcGxlbWVudHMgSUNlcmJvc1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVwbzogQ2VyYm9zUmVwb3NpdG9yeSkge31cblxuICBhc3luYyBjaGVja1Jlc291cmNlcyh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrczogUmVzb3VyY2VDaGVja1tdKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkOiBDaGVja1Jlc291cmNlc1JlcXVlc3QgPSBtYXBDZXJib3NQYXlsb2FkKHVzZXJJbmZvLCBjaGVja3MpXG4gICAgICBjb25zdCByZXNwb25zZTogQ2hlY2tSZXNvdXJjZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVwby5jaGVja1Jlc291cmNlcyhwYXlsb2FkKVxuICAgICAgY29uc3QgYWNjOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IGNoZWNrcy5yZWR1Y2UoKHIsIGMpID0+ICh7IC4uLnIsIFtjLmtpbmRdOiBmYWxzZSB9KSwge30pXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0cy5yZWR1Y2UoKHJlc3VsdCwgcikgPT4ge1xuICAgICAgICBjb25zdCBjaGVjayA9IGNoZWNrcy5maW5kKGMgPT4gYy5raW5kID09PSByLnJlc291cmNlLmtpbmQpXG4gICAgICAgIGlmIChjaGVjaykge1xuICAgICAgICAgIHJlc3VsdFtyLnJlc291cmNlLmtpbmRdID0gci5hY3Rpb25zW2NoZWNrLmFjdGlvbl0gPT09ICdFRkZFQ1RfQUxMT1cnXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfSwgYWNjKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7Q2VyYm9zU2VydmljZS5uYW1lfSAtIEVSUk9SYCwgZSlcbiAgICAgIHJldHVybiBjaGVja3MucmVkdWNlKChyLCBjKSA9PiAoeyAuLi5yLCBbYy5raW5kXTogZmFsc2UgfSksIHt9KVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvY2VyYm9zL2NlcmJvcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWxELE1BQU0sT0FBTyxhQUFhO0lBRUs7SUFBN0IsWUFBNkIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFBRyxDQUFDO0lBRXZELEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtRQUM5RCxNQUFNLFlBQVksR0FBRyxHQUE0QyxFQUFFLENBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQTBDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDN0YsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFUixJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQTBCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN6RSxNQUFNLFFBQVEsR0FBMkIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNoRixNQUFNLEdBQUcsR0FBRyxZQUFZLEVBQUUsQ0FBQTtZQUMxQixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMxRCxJQUFJLEtBQUssRUFBRTtvQkFDVCxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRTt3QkFDbkUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssY0FBYyxDQUFBO3dCQUN4RCxPQUFPLFNBQVMsQ0FBQTtvQkFDbEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2lCQUNsQztnQkFDRCxPQUFPLE1BQU0sQ0FBQTtZQUNmLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtTQUNSO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2pELE9BQU8sWUFBWSxFQUFFLENBQUE7U0FDdEI7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZXJib3NSZXBvc2l0b3J5IH0gZnJvbSAnLi9jZXJib3MucmVwb3NpdG9yeSdcbmltcG9ydCB7IFVzZXJJbmZvLCBSZXNvdXJjZUNoZWNrIH0gZnJvbSAnLi9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgbWFwQ2VyYm9zUGF5bG9hZCB9IGZyb20gJy4vY2VyYm9zLm1hcHBlcidcbmltcG9ydCB7IElDZXJib3NTZXJ2aWNlIH0gZnJvbSAnLi9jZXJib3Muc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIENoZWNrUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tICdAY2VyYm9zL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ2VyYm9zU2VydmljZSBpbXBsZW1lbnRzIElDZXJib3NTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlcG86IENlcmJvc1JlcG9zaXRvcnkpIHt9XG5cbiAgYXN5bmMgY2hlY2tSZXNvdXJjZXModXNlckluZm86IFVzZXJJbmZvLCBjaGVja3M6IFJlc291cmNlQ2hlY2tbXSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+PiB7XG4gICAgY29uc3QgYnVpbGREZWZhdWx0ID0gKCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiA9PlxuICAgICAgY2hlY2tzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4+KChhY2MsIGMpID0+IHtcbiAgICAgICAgYWNjW2Mua2luZF0gPSBjLmFjdGlvbnMucmVkdWNlKChhLCBhY3Rpb24pID0+ICh7IC4uLmEsIFthY3Rpb25dOiBmYWxzZSB9KSwgYWNjW2Mua2luZF0gPz8ge30pXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIHt9KVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQ6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCA9IG1hcENlcmJvc1BheWxvYWQodXNlckluZm8sIGNoZWNrcylcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBDaGVja1Jlc291cmNlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXBvLmNoZWNrUmVzb3VyY2VzKHBheWxvYWQpXG4gICAgICBjb25zdCBhY2MgPSBidWlsZERlZmF1bHQoKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdHMucmVkdWNlKChyZXN1bHQsIHIpID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBjaGVja3MuZmluZChjID0+IGMua2luZCA9PT0gci5yZXNvdXJjZS5raW5kKVxuICAgICAgICBpZiAoY2hlY2spIHtcbiAgICAgICAgICByZXN1bHRbci5yZXNvdXJjZS5raW5kXSA9IGNoZWNrLmFjdGlvbnMucmVkdWNlKChhY3Rpb25NYXAsIGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgYWN0aW9uTWFwW2FjdGlvbl0gPSByLmFjdGlvbnNbYWN0aW9uXSA9PT0gJ0VGRkVDVF9BTExPVydcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25NYXBcbiAgICAgICAgICB9LCByZXN1bHRbci5yZXNvdXJjZS5raW5kXSA/PyB7fSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9LCBhY2MpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtDZXJib3NTZXJ2aWNlLm5hbWV9IC0gRVJST1JgLCBlKVxuICAgICAgcmV0dXJuIGJ1aWxkRGVmYXVsdCgpXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY2hlY2suaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9pbnRlcmZhY2VzL3Jlc291cmNlLWNoZWNrLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNoZWNrIHtcbiAga2luZDogc3RyaW5nXG4gIGFjdGlvbjogc3RyaW5nXG4gIGlkPzogc3RyaW5nXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY2hlY2suaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9pbnRlcmZhY2VzL3Jlc291cmNlLWNoZWNrLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNoZWNrIHtcbiAga2luZDogc3RyaW5nXG4gIGFjdGlvbnM6IHN0cmluZ1tdXG4gIGlkPzogc3RyaW5nXG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9pbnRlcmZhY2VzL3VzZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VySW5mbyB7XG4gIGFjY291bnRJZDogc3RyaW5nXG4gIGRvbWFpbjogc3RyaW5nXG4gIHJvbGU6IHN0cmluZyB8IHN0cmluZ1tdXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlbmQtdXRpbHMvc3JjL2NlcmJvcy9pbnRlcmZhY2VzL3VzZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VySW5mbyB7XG4gIGFjY291bnRJZDogc3RyaW5nXG4gIGRvbWFpbjogc3RyaW5nXG4gIHJvbGVzOiBzdHJpbmdbXVxufVxuIl19
@@ -415,12 +415,12 @@ const CERBOS_SERVICE = new InjectionToken('CERBOS_SERVICE');
415
415
  function mapCerbosPayload(userInfo, checks) {
416
416
  const principal = {
417
417
  id: userInfo.accountId,
418
- roles: (Array.isArray(userInfo.role) ? userInfo.role : [userInfo.role]).map(r => r.toLowerCase()),
418
+ roles: userInfo.roles.map(r => r.toLowerCase()),
419
419
  attr: { account_domain: userInfo.domain, accountId: userInfo.accountId }
420
420
  };
421
- const resources = checks.map(({ kind, action, id }) => ({
421
+ const resources = checks.map(({ kind, actions, id }) => ({
422
422
  resource: { kind, id: id ?? kind, attr: { account_domain: userInfo.domain, accountId: userInfo.accountId } },
423
- actions: [action]
423
+ actions
424
424
  }));
425
425
  return { principal, resources };
426
426
  }
@@ -431,21 +431,28 @@ class CerbosService {
431
431
  this.repo = repo;
432
432
  }
433
433
  async checkResources(userInfo, checks) {
434
+ const buildDefault = () => checks.reduce((acc, c) => {
435
+ acc[c.kind] = c.actions.reduce((a, action) => ({ ...a, [action]: false }), acc[c.kind] ?? {});
436
+ return acc;
437
+ }, {});
434
438
  try {
435
439
  const payload = mapCerbosPayload(userInfo, checks);
436
440
  const response = await this.repo.checkResources(payload);
437
- const acc = checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {});
441
+ const acc = buildDefault();
438
442
  return response.results.reduce((result, r) => {
439
443
  const check = checks.find(c => c.kind === r.resource.kind);
440
444
  if (check) {
441
- result[r.resource.kind] = r.actions[check.action] === 'EFFECT_ALLOW';
445
+ result[r.resource.kind] = check.actions.reduce((actionMap, action) => {
446
+ actionMap[action] = r.actions[action] === 'EFFECT_ALLOW';
447
+ return actionMap;
448
+ }, result[r.resource.kind] ?? {});
442
449
  }
443
450
  return result;
444
451
  }, acc);
445
452
  }
446
453
  catch (e) {
447
454
  console.error(`${CerbosService.name} - ERROR`, e);
448
- return checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {});
455
+ return buildDefault();
449
456
  }
450
457
  }
451
458
  }
@@ -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, boolean>>\n}\n\nexport const CERBOS_SERVICE = new InjectionToken<ICerbosService>('CERBOS_SERVICE')\n","import { UserInfo } from './interfaces'\nimport { CheckResourcesRequest, Principal, ResourceCheck } from '@cerbos/core'\n\nexport function mapCerbosPayload(userInfo: UserInfo, checks: Array<{ kind: string, action: string, id?: string }>): CheckResourcesRequest {\n const principal: Principal = {\n id: userInfo.accountId,\n roles: (Array.isArray(userInfo.role) ? userInfo.role : [userInfo.role]).map(r => r.toLowerCase()),\n attr: { account_domain: userInfo.domain, accountId: userInfo.accountId }\n }\n\n const resources: ResourceCheck[] = checks.map(({ kind, action, id }) => ({\n resource: { kind, id: id ?? kind, attr: { account_domain: userInfo.domain, accountId: userInfo.accountId } },\n actions: [action]\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, boolean>> {\n try {\n const payload: CheckResourcesRequest = mapCerbosPayload(userInfo, checks)\n const response: CheckResourcesResponse = await this.repo.checkResources(payload)\n const acc: Record<string, boolean> = checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {})\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] = r.actions[check.action] === 'EFFECT_ALLOW'\n }\n return result\n }, acc)\n } catch (e) {\n console.error(`${CerbosService.name} - ERROR`, e)\n return checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {})\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 } 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.map(r => r.toLowerCase()),\n attr: { account_domain: userInfo.domain, accountId: userInfo.accountId }\n }\n\n const resources: CerbosResourceCheck[] = checks.map(({ kind, actions, id }) => ({\n resource: { kind, id: id ?? kind, attr: { account_domain: userInfo.domain, 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apipass/frontend-utils",
3
- "version": "1.0.189",
3
+ "version": "1.0.190",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "16.0.2",
6
6
  "@angular/cdk": "16.0.1",