@apipass/frontend-utils 1.0.189 → 1.0.191

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,14 @@
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()),
5
- attr: { account_domain: userInfo.domain, accountId: userInfo.accountId }
4
+ roles: userInfo.roles,
5
+ scope: userInfo.domain,
6
+ attr: { accountId: userInfo.accountId }
6
7
  };
7
- const resources = checks.map(({ kind, action, id }) => ({
8
- resource: { kind, id: id ?? kind, attr: { account_domain: userInfo.domain, accountId: userInfo.accountId } },
9
- actions: [action]
8
+ const resources = checks.map(({ kind, actions, id }) => ({
9
+ resource: { kind, id: id ?? kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } },
10
+ actions
10
11
  }));
11
12
  return { principal, resources };
12
13
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxNQUE0RDtJQUMvRyxNQUFNLFNBQVMsR0FBYztRQUMzQixFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVM7UUFDdEIsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pHLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFO0tBQ3pFLENBQUE7SUFFRCxNQUFNLFNBQVMsR0FBb0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUM1RyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDbEIsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4vaW50ZXJmYWNlcydcbmltcG9ydCB7IENoZWNrUmVzb3VyY2VzUmVxdWVzdCwgUHJpbmNpcGFsLCBSZXNvdXJjZUNoZWNrIH0gZnJvbSAnQGNlcmJvcy9jb3JlJ1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwQ2VyYm9zUGF5bG9hZCh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrczogQXJyYXk8eyBraW5kOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBpZD86IHN0cmluZyB9Pik6IENoZWNrUmVzb3VyY2VzUmVxdWVzdCB7XG4gIGNvbnN0IHByaW5jaXBhbDogUHJpbmNpcGFsID0ge1xuICAgIGlkOiB1c2VySW5mby5hY2NvdW50SWQsXG4gICAgcm9sZXM6IChBcnJheS5pc0FycmF5KHVzZXJJbmZvLnJvbGUpID8gdXNlckluZm8ucm9sZSA6IFt1c2VySW5mby5yb2xlXSkubWFwKHIgPT4gci50b0xvd2VyQ2FzZSgpKSxcbiAgICBhdHRyOiB7IGFjY291bnRfZG9tYWluOiB1c2VySW5mby5kb21haW4sIGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH1cbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlczogUmVzb3VyY2VDaGVja1tdID0gY2hlY2tzLm1hcCgoeyBraW5kLCBhY3Rpb24sIGlkIH0pID0+ICh7XG4gICAgcmVzb3VyY2U6IHsga2luZCwgaWQ6IGlkID8/IGtpbmQsIGF0dHI6IHsgYWNjb3VudF9kb21haW46IHVzZXJJbmZvLmRvbWFpbiwgYWNjb3VudElkOiB1c2VySW5mby5hY2NvdW50SWQgfSB9LFxuICAgIGFjdGlvbnM6IFthY3Rpb25dXG4gIH0pKVxuXG4gIHJldHVybiB7IHByaW5jaXBhbCwgcmVzb3VyY2VzIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VyYm9zLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9jZXJib3MvY2VyYm9zLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxNQUF1QjtJQUMxRSxNQUFNLFNBQVMsR0FBYztRQUMzQixFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVM7UUFDdEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1FBQ3JCLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTTtRQUN0QixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRTtLQUN4QyxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQTBCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDbkcsT0FBTztLQUNSLENBQUMsQ0FBQyxDQUFBO0lBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQTtBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckluZm8sIFJlc291cmNlQ2hlY2sgfSBmcm9tICcuL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBDaGVja1Jlc291cmNlc1JlcXVlc3QsIFByaW5jaXBhbCwgUmVzb3VyY2VDaGVjayBhcyBDZXJib3NSZXNvdXJjZUNoZWNrIH0gZnJvbSAnQGNlcmJvcy9jb3JlJ1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwQ2VyYm9zUGF5bG9hZCh1c2VySW5mbzogVXNlckluZm8sIGNoZWNrczogUmVzb3VyY2VDaGVja1tdKTogQ2hlY2tSZXNvdXJjZXNSZXF1ZXN0IHtcbiAgY29uc3QgcHJpbmNpcGFsOiBQcmluY2lwYWwgPSB7XG4gICAgaWQ6IHVzZXJJbmZvLmFjY291bnRJZCxcbiAgICByb2xlczogdXNlckluZm8ucm9sZXMsXG4gICAgc2NvcGU6IHVzZXJJbmZvLmRvbWFpbixcbiAgICBhdHRyOiB7IGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH1cbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlczogQ2VyYm9zUmVzb3VyY2VDaGVja1tdID0gY2hlY2tzLm1hcCgoeyBraW5kLCBhY3Rpb25zLCBpZCB9KSA9PiAoe1xuICAgIHJlc291cmNlOiB7IGtpbmQsIGlkOiBpZCA/PyBraW5kLCBzY29wZTogdXNlckluZm8uZG9tYWluLCBhdHRyOiB7IGFjY291bnRJZDogdXNlckluZm8uYWNjb3VudElkIH0gfSxcbiAgICBhY3Rpb25zXG4gIH0pKVxuXG4gIHJldHVybiB7IHByaW5jaXBhbCwgcmVzb3VyY2VzIH1cbn1cbiJdfQ==
@@ -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,13 @@ 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()),
419
- attr: { account_domain: userInfo.domain, accountId: userInfo.accountId }
418
+ roles: userInfo.roles,
419
+ scope: userInfo.domain,
420
+ attr: { accountId: userInfo.accountId }
420
421
  };
421
- const resources = checks.map(({ kind, action, id }) => ({
422
- resource: { kind, id: id ?? kind, attr: { account_domain: userInfo.domain, accountId: userInfo.accountId } },
423
- actions: [action]
422
+ const resources = checks.map(({ kind, actions, id }) => ({
423
+ resource: { kind, id: id ?? kind, scope: userInfo.domain, attr: { accountId: userInfo.accountId } },
424
+ actions
424
425
  }));
425
426
  return { principal, resources };
426
427
  }
@@ -431,21 +432,28 @@ class CerbosService {
431
432
  this.repo = repo;
432
433
  }
433
434
  async checkResources(userInfo, checks) {
435
+ const buildDefault = () => checks.reduce((acc, c) => {
436
+ acc[c.kind] = c.actions.reduce((a, action) => ({ ...a, [action]: false }), acc[c.kind] ?? {});
437
+ return acc;
438
+ }, {});
434
439
  try {
435
440
  const payload = mapCerbosPayload(userInfo, checks);
436
441
  const response = await this.repo.checkResources(payload);
437
- const acc = checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {});
442
+ const acc = buildDefault();
438
443
  return response.results.reduce((result, r) => {
439
444
  const check = checks.find(c => c.kind === r.resource.kind);
440
445
  if (check) {
441
- result[r.resource.kind] = r.actions[check.action] === 'EFFECT_ALLOW';
446
+ result[r.resource.kind] = check.actions.reduce((actionMap, action) => {
447
+ actionMap[action] = r.actions[action] === 'EFFECT_ALLOW';
448
+ return actionMap;
449
+ }, result[r.resource.kind] ?? {});
442
450
  }
443
451
  return result;
444
452
  }, acc);
445
453
  }
446
454
  catch (e) {
447
455
  console.error(`${CerbosService.name} - ERROR`, e);
448
- return checks.reduce((r, c) => ({ ...r, [c.kind]: false }), {});
456
+ return buildDefault();
449
457
  }
450
458
  }
451
459
  }
@@ -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,\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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"}
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.191",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "16.0.2",
6
6
  "@angular/cdk": "16.0.1",