@acorex-platform/module-security-management-server 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.d.ts +2 -0
  2. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.js +6 -0
  3. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.js.map +1 -0
  4. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.d.ts +2 -0
  5. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.js +6 -0
  6. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.js.map +1 -0
  7. package/contracts/src/datasource.keys.d.ts +4 -0
  8. package/contracts/src/datasource.keys.js +10 -0
  9. package/contracts/src/datasource.keys.js.map +1 -0
  10. package/contracts/src/entities/device-sessions/device-sessions.entity.d.ts +2 -0
  11. package/contracts/src/entities/device-sessions/device-sessions.entity.js +479 -0
  12. package/contracts/src/entities/device-sessions/device-sessions.entity.js.map +1 -0
  13. package/contracts/src/entities/device-sessions/device-sessions.types.d.ts +34 -0
  14. package/contracts/src/entities/device-sessions/device-sessions.types.js +10 -0
  15. package/contracts/src/entities/device-sessions/device-sessions.types.js.map +1 -0
  16. package/contracts/src/entities/device-sessions/index.d.ts +2 -0
  17. package/contracts/src/entities/device-sessions/index.js +6 -0
  18. package/contracts/src/entities/device-sessions/index.js.map +1 -0
  19. package/contracts/src/entities/index.d.ts +5 -0
  20. package/contracts/src/entities/index.js +9 -0
  21. package/contracts/src/entities/index.js.map +1 -0
  22. package/contracts/src/entities/policy/index.d.ts +2 -0
  23. package/contracts/src/entities/policy/index.js +6 -0
  24. package/contracts/src/entities/policy/index.js.map +1 -0
  25. package/contracts/src/entities/policy/policy.entity.d.ts +2 -0
  26. package/contracts/src/entities/policy/policy.entity.js +211 -0
  27. package/contracts/src/entities/policy/policy.entity.js.map +1 -0
  28. package/contracts/src/entities/policy/policy.types.d.ts +23 -0
  29. package/contracts/src/entities/policy/policy.types.js +43 -0
  30. package/contracts/src/entities/policy/policy.types.js.map +1 -0
  31. package/contracts/src/entities/profile/index.d.ts +2 -0
  32. package/contracts/src/entities/profile/index.js +6 -0
  33. package/contracts/src/entities/profile/index.js.map +1 -0
  34. package/contracts/src/entities/profile/profile.entity.d.ts +2 -0
  35. package/contracts/src/entities/profile/profile.entity.js +170 -0
  36. package/contracts/src/entities/profile/profile.entity.js.map +1 -0
  37. package/contracts/src/entities/profile/profile.types.d.ts +5 -0
  38. package/contracts/src/entities/profile/profile.types.js +3 -0
  39. package/contracts/src/entities/profile/profile.types.js.map +1 -0
  40. package/contracts/src/entities/roles/index.d.ts +2 -0
  41. package/contracts/src/entities/roles/index.js +6 -0
  42. package/contracts/src/entities/roles/index.js.map +1 -0
  43. package/contracts/src/entities/roles/roles.entity.d.ts +2 -0
  44. package/contracts/src/entities/roles/roles.entity.js +283 -0
  45. package/contracts/src/entities/roles/roles.entity.js.map +1 -0
  46. package/contracts/src/entities/roles/roles.types.d.ts +7 -0
  47. package/contracts/src/entities/roles/roles.types.js +3 -0
  48. package/contracts/src/entities/roles/roles.types.js.map +1 -0
  49. package/contracts/src/entities/users/index.d.ts +2 -0
  50. package/contracts/src/entities/users/index.js +6 -0
  51. package/contracts/src/entities/users/index.js.map +1 -0
  52. package/contracts/src/entities/users/users.entity.d.ts +2 -0
  53. package/contracts/src/entities/users/users.entity.js +555 -0
  54. package/contracts/src/entities/users/users.entity.js.map +1 -0
  55. package/contracts/src/entities/users/users.types.d.ts +17 -0
  56. package/contracts/src/entities/users/users.types.js +3 -0
  57. package/contracts/src/entities/users/users.types.js.map +1 -0
  58. package/contracts/src/features.keys.d.ts +11 -0
  59. package/contracts/src/features.keys.js +17 -0
  60. package/contracts/src/features.keys.js.map +1 -0
  61. package/contracts/src/index.d.ts +10 -0
  62. package/contracts/src/index.js +16 -0
  63. package/contracts/src/index.js.map +1 -0
  64. package/contracts/src/menu.keys.d.ts +8 -0
  65. package/contracts/src/menu.keys.js +12 -0
  66. package/contracts/src/menu.keys.js.map +1 -0
  67. package/contracts/src/permission.keys.d.ts +28 -0
  68. package/contracts/src/permission.keys.js +34 -0
  69. package/contracts/src/permission.keys.js.map +1 -0
  70. package/contracts/src/root-config.d.ts +44 -0
  71. package/contracts/src/root-config.js +49 -0
  72. package/contracts/src/root-config.js.map +1 -0
  73. package/contracts/src/user-access-state.d.ts +9 -0
  74. package/contracts/src/user-access-state.js +16 -0
  75. package/contracts/src/user-access-state.js.map +1 -0
  76. package/contracts/src/user-effective-state.d.ts +12 -0
  77. package/contracts/src/user-effective-state.js +19 -0
  78. package/contracts/src/user-effective-state.js.map +1 -0
  79. package/package.json +26 -0
  80. package/src/index.d.ts +5 -0
  81. package/src/index.js +13 -0
  82. package/src/index.js.map +1 -0
  83. package/src/lib/security-management-server.module.d.ts +2 -0
  84. package/src/lib/security-management-server.module.js +23 -0
  85. package/src/lib/security-management-server.module.js.map +1 -0
  86. package/src/lib/seed/index.d.ts +22 -0
  87. package/src/lib/seed/index.js +24 -0
  88. package/src/lib/seed/index.js.map +1 -0
  89. package/src/lib/seed/policy/index.d.ts +2 -0
  90. package/src/lib/seed/policy/index.js +6 -0
  91. package/src/lib/seed/policy/index.js.map +1 -0
  92. package/src/lib/seed/policy/policy.mock.d.ts +7 -0
  93. package/src/lib/seed/policy/policy.mock.js +40 -0
  94. package/src/lib/seed/policy/policy.mock.js.map +1 -0
  95. package/src/lib/seed/policy/policy.seed.d.ts +5 -0
  96. package/src/lib/seed/policy/policy.seed.js +31 -0
  97. package/src/lib/seed/policy/policy.seed.js.map +1 -0
  98. package/src/lib/seed/role/index.d.ts +4 -0
  99. package/src/lib/seed/role/index.js +8 -0
  100. package/src/lib/seed/role/index.js.map +1 -0
  101. package/src/lib/seed/role/role-ids.constants.d.ts +14 -0
  102. package/src/lib/seed/role/role-ids.constants.js +20 -0
  103. package/src/lib/seed/role/role-ids.constants.js.map +1 -0
  104. package/src/lib/seed/role/role-permission-keys.constants.d.ts +578 -0
  105. package/src/lib/seed/role/role-permission-keys.constants.js +620 -0
  106. package/src/lib/seed/role/role-permission-keys.constants.js.map +1 -0
  107. package/src/lib/seed/role/role.mock.d.ts +4 -0
  108. package/src/lib/seed/role/role.mock.js +321 -0
  109. package/src/lib/seed/role/role.mock.js.map +1 -0
  110. package/src/lib/seed/role/role.seed.d.ts +5 -0
  111. package/src/lib/seed/role/role.seed.js +31 -0
  112. package/src/lib/seed/role/role.seed.js.map +1 -0
  113. package/src/lib/seed/security-management-seed.provider.d.ts +4 -0
  114. package/src/lib/seed/security-management-seed.provider.js +18 -0
  115. package/src/lib/seed/security-management-seed.provider.js.map +1 -0
  116. package/src/lib/seed/security-management-seed.tokens.d.ts +1 -0
  117. package/src/lib/seed/security-management-seed.tokens.js +7 -0
  118. package/src/lib/seed/security-management-seed.tokens.js.map +1 -0
  119. package/src/lib/seed/security-management.seed-catalog.d.ts +2 -0
  120. package/src/lib/seed/security-management.seed-catalog.js +17 -0
  121. package/src/lib/seed/security-management.seed-catalog.js.map +1 -0
  122. package/src/lib/seed/tenant/index.d.ts +1 -0
  123. package/src/lib/seed/tenant/index.js +5 -0
  124. package/src/lib/seed/tenant/index.js.map +1 -0
  125. package/src/lib/seed/tenant/tenant-ids.constants.d.ts +11 -0
  126. package/src/lib/seed/tenant/tenant-ids.constants.js +17 -0
  127. package/src/lib/seed/tenant/tenant-ids.constants.js.map +1 -0
  128. package/src/lib/seed/user/index.d.ts +4 -0
  129. package/src/lib/seed/user/index.js +13 -0
  130. package/src/lib/seed/user/index.js.map +1 -0
  131. package/src/lib/seed/user/resolve-user-effective-state.util.d.ts +14 -0
  132. package/src/lib/seed/user/resolve-user-effective-state.util.js +61 -0
  133. package/src/lib/seed/user/resolve-user-effective-state.util.js.map +1 -0
  134. package/src/lib/seed/user/user.mock.d.ts +20 -0
  135. package/src/lib/seed/user/user.mock.js +332 -0
  136. package/src/lib/seed/user/user.mock.js.map +1 -0
  137. package/src/lib/seed/user/user.seed.d.ts +5 -0
  138. package/src/lib/seed/user/user.seed.js +31 -0
  139. package/src/lib/seed/user/user.seed.js.map +1 -0
@@ -0,0 +1,8 @@
1
+ export declare const AXPSecurityManagementMenuKeys: {
2
+ readonly Root: "SecurityManagement:Menu";
3
+ readonly Users: "SecurityManagement:Menu:Users";
4
+ readonly Roles: "SecurityManagement:Menu:Roles";
5
+ readonly DeviceSessions: "SecurityManagement:Menu:DeviceSessions";
6
+ readonly Policy: "SecurityManagement:Menu:Policy";
7
+ readonly MyProfile: "SecurityManagement:Menu:MyProfile";
8
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AXPSecurityManagementMenuKeys = void 0;
4
+ exports.AXPSecurityManagementMenuKeys = {
5
+ Root: 'SecurityManagement:Menu',
6
+ Users: 'SecurityManagement:Menu:Users',
7
+ Roles: 'SecurityManagement:Menu:Roles',
8
+ DeviceSessions: 'SecurityManagement:Menu:DeviceSessions',
9
+ Policy: 'SecurityManagement:Menu:Policy',
10
+ MyProfile: 'SecurityManagement:Menu:MyProfile',
11
+ };
12
+ //# sourceMappingURL=menu.keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.keys.js","sourceRoot":"","sources":["../../../../../libs/modules/security-management/server/contracts/src/menu.keys.ts"],"names":[],"mappings":";;;AAAa,QAAA,6BAA6B,GAAG;IAC3C,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,+BAA+B;IACtC,KAAK,EAAE,+BAA+B;IACtC,cAAc,EAAE,wCAAwC;IACxD,MAAM,EAAE,gCAAgC;IACxC,SAAS,EAAE,mCAAmC;CACtC,CAAC"}
@@ -0,0 +1,28 @@
1
+ export declare const AXPSecurityManagementPermissionKeys: {
2
+ readonly User: {
3
+ readonly Management: "SecurityManagement:Permission:User.Management";
4
+ readonly View: "SecurityManagement:Permission:User.View";
5
+ readonly Edit: "SecurityManagement:Permission:User.Edit";
6
+ readonly Delete: "SecurityManagement:Permission:User.Delete";
7
+ readonly Create: "SecurityManagement:Permission:User.Create";
8
+ };
9
+ readonly Role: {
10
+ readonly Management: "SecurityManagement:Permission:Role.Management";
11
+ readonly View: "SecurityManagement:Permission:Role.View";
12
+ readonly Edit: "SecurityManagement:Permission:Role.Edit";
13
+ readonly Delete: "SecurityManagement:Permission:Role.Delete";
14
+ readonly Create: "SecurityManagement:Permission:Role.Create";
15
+ };
16
+ readonly DeviceSession: {
17
+ readonly Management: "SecurityManagement:Permission:DeviceSession.Management";
18
+ readonly View: "SecurityManagement:Permission:DeviceSession.View";
19
+ readonly Terminate: "SecurityManagement:Permission:DeviceSession.Terminate";
20
+ };
21
+ readonly Policy: {
22
+ readonly Management: "SecurityManagement:Permission:Policy.Management";
23
+ readonly View: "SecurityManagement:Permission:Policy.View";
24
+ readonly Edit: "SecurityManagement:Permission:Policy.Edit";
25
+ readonly Delete: "SecurityManagement:Permission:Policy.Delete";
26
+ readonly Create: "SecurityManagement:Permission:Policy.Create";
27
+ };
28
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ //#region ---- Permission Keys ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AXPSecurityManagementPermissionKeys = void 0;
5
+ exports.AXPSecurityManagementPermissionKeys = {
6
+ User: {
7
+ Management: 'SecurityManagement:Permission:User.Management',
8
+ View: 'SecurityManagement:Permission:User.View',
9
+ Edit: 'SecurityManagement:Permission:User.Edit',
10
+ Delete: 'SecurityManagement:Permission:User.Delete',
11
+ Create: 'SecurityManagement:Permission:User.Create',
12
+ },
13
+ Role: {
14
+ Management: 'SecurityManagement:Permission:Role.Management',
15
+ View: 'SecurityManagement:Permission:Role.View',
16
+ Edit: 'SecurityManagement:Permission:Role.Edit',
17
+ Delete: 'SecurityManagement:Permission:Role.Delete',
18
+ Create: 'SecurityManagement:Permission:Role.Create',
19
+ },
20
+ DeviceSession: {
21
+ Management: 'SecurityManagement:Permission:DeviceSession.Management',
22
+ View: 'SecurityManagement:Permission:DeviceSession.View',
23
+ Terminate: 'SecurityManagement:Permission:DeviceSession.Terminate',
24
+ },
25
+ Policy: {
26
+ Management: 'SecurityManagement:Permission:Policy.Management',
27
+ View: 'SecurityManagement:Permission:Policy.View',
28
+ Edit: 'SecurityManagement:Permission:Policy.Edit',
29
+ Delete: 'SecurityManagement:Permission:Policy.Delete',
30
+ Create: 'SecurityManagement:Permission:Policy.Create',
31
+ },
32
+ };
33
+ //#endregion
34
+ //# sourceMappingURL=permission.keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.keys.js","sourceRoot":"","sources":["../../../../../libs/modules/security-management/server/contracts/src/permission.keys.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;AAE1B,QAAA,mCAAmC,GAAG;IACjD,IAAI,EAAE;QACJ,UAAU,EAAE,+CAA+C;QAC3D,IAAI,EAAE,yCAAyC;QAC/C,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,2CAA2C;QACnD,MAAM,EAAE,2CAA2C;KACpD;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,+CAA+C;QAC3D,IAAI,EAAE,yCAAyC;QAC/C,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,2CAA2C;QACnD,MAAM,EAAE,2CAA2C;KACpD;IACD,aAAa,EAAE;QACb,UAAU,EAAE,wDAAwD;QACpE,IAAI,EAAE,kDAAkD;QACxD,SAAS,EAAE,uDAAuD;KACnE;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iDAAiD;QAC7D,IAAI,EAAE,2CAA2C;QACjD,IAAI,EAAE,2CAA2C;QACjD,MAAM,EAAE,6CAA6C;QACrD,MAAM,EAAE,6CAA6C;KACtD;CACO,CAAC;AAEX,YAAY"}
@@ -0,0 +1,44 @@
1
+ export declare const RootConfig: {
2
+ readonly config: {
3
+ i18n: string;
4
+ profileEntity: string;
5
+ };
6
+ readonly module: {
7
+ readonly route: "security-management";
8
+ readonly name: "SecurityManagement";
9
+ readonly title: `@${string}:module.title`;
10
+ readonly icon: "fa-light fa-shield-halved";
11
+ };
12
+ readonly entities: {
13
+ readonly policy: {
14
+ readonly name: "Policy";
15
+ readonly title: `@${string}:policies.entities.policy.title`;
16
+ readonly titlePlural: `@${string}:policies.entities.policy.plural`;
17
+ readonly icon: "fa-light fa-clipboard-list";
18
+ };
19
+ readonly deviceSessions: {
20
+ readonly name: "DeviceSessions";
21
+ readonly title: `@${string}:sessions.entities.session.title`;
22
+ readonly titlePlural: `@${string}:sessions.entities.session.plural`;
23
+ readonly icon: "fa-light fa-laptop";
24
+ };
25
+ readonly users: {
26
+ readonly name: "User";
27
+ readonly title: `@${string}:users.entities.user.title`;
28
+ readonly titlePlural: `@${string}:users.entities.user.plural`;
29
+ readonly icon: "fa-light fa-users";
30
+ };
31
+ readonly roles: {
32
+ readonly name: "Role";
33
+ readonly title: `@${string}:roles.entities.role.title`;
34
+ readonly titlePlural: `@${string}:roles.entities.role.plural`;
35
+ readonly icon: "fa-light fa-user-tag";
36
+ };
37
+ readonly profile: {
38
+ readonly name: "Profile";
39
+ readonly title: `@${string}:profile.entities.profile.title`;
40
+ readonly titlePlural: `@${string}:profile.entities.profile.plural`;
41
+ readonly icon: "fa-light fa-user";
42
+ };
43
+ };
44
+ };
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RootConfig = void 0;
4
+ const config = {
5
+ i18n: 'security-management',
6
+ profileEntity: 'Profile',
7
+ };
8
+ exports.RootConfig = {
9
+ config,
10
+ module: {
11
+ route: 'security-management',
12
+ name: 'SecurityManagement',
13
+ title: `@${config.i18n}:module.title`,
14
+ icon: 'fa-light fa-shield-halved',
15
+ },
16
+ entities: {
17
+ policy: {
18
+ name: 'Policy',
19
+ title: `@${config.i18n}:policies.entities.policy.title`,
20
+ titlePlural: `@${config.i18n}:policies.entities.policy.plural`,
21
+ icon: 'fa-light fa-clipboard-list',
22
+ },
23
+ deviceSessions: {
24
+ name: 'DeviceSessions',
25
+ title: `@${config.i18n}:sessions.entities.session.title`,
26
+ titlePlural: `@${config.i18n}:sessions.entities.session.plural`,
27
+ icon: 'fa-light fa-laptop',
28
+ },
29
+ users: {
30
+ name: 'User',
31
+ title: `@${config.i18n}:users.entities.user.title`,
32
+ titlePlural: `@${config.i18n}:users.entities.user.plural`,
33
+ icon: 'fa-light fa-users',
34
+ },
35
+ roles: {
36
+ name: 'Role',
37
+ title: `@${config.i18n}:roles.entities.role.title`,
38
+ titlePlural: `@${config.i18n}:roles.entities.role.plural`,
39
+ icon: 'fa-light fa-user-tag',
40
+ },
41
+ profile: {
42
+ name: 'Profile',
43
+ title: `@${config.i18n}:profile.entities.profile.title`,
44
+ titlePlural: `@${config.i18n}:profile.entities.profile.plural`,
45
+ icon: 'fa-light fa-user',
46
+ },
47
+ },
48
+ };
49
+ //# sourceMappingURL=root-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-config.js","sourceRoot":"","sources":["../../../../../libs/modules/security-management/server/contracts/src/root-config.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,qBAAqB;IAC3B,aAAa,EAAE,SAAS;CACzB,CAAC;AACW,QAAA,UAAU,GAAG;IACxB,MAAM;IACN,MAAM,EAAE;QACN,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,eAAe;QACrC,IAAI,EAAE,2BAA2B;KAClC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,iCAAiC;YACvD,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,kCAAkC;YAC9D,IAAI,EAAE,4BAA4B;SACnC;QACD,cAAc,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,kCAAkC;YACxD,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,mCAAmC;YAC/D,IAAI,EAAE,oBAAoB;SAC3B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,4BAA4B;YAClD,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,6BAA6B;YACzD,IAAI,EAAE,mBAAmB;SAC1B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,4BAA4B;YAClD,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,6BAA6B;YACzD,IAAI,EAAE,sBAAsB;SAC7B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,iCAAiC;YACvD,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,kCAAkC;YAC9D,IAAI,EAAE,kBAAkB;SACzB;KACF;CACO,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Read-only sign-in gate from the authentication layer (distinct from account `accountState`).
3
+ * Persisted as the enum string value (e.g. `allowed`).
4
+ */
5
+ export declare enum AXMUserAccessState {
6
+ Allowed = "allowed",
7
+ Blocked = "blocked",
8
+ Expired = "expired"
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ //#region ---- User access state ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AXMUserAccessState = void 0;
5
+ /**
6
+ * Read-only sign-in gate from the authentication layer (distinct from account `accountState`).
7
+ * Persisted as the enum string value (e.g. `allowed`).
8
+ */
9
+ var AXMUserAccessState;
10
+ (function (AXMUserAccessState) {
11
+ AXMUserAccessState["Allowed"] = "allowed";
12
+ AXMUserAccessState["Blocked"] = "blocked";
13
+ AXMUserAccessState["Expired"] = "expired";
14
+ })(AXMUserAccessState || (exports.AXMUserAccessState = AXMUserAccessState = {}));
15
+ //#endregion
16
+ //# sourceMappingURL=user-access-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-access-state.js","sourceRoot":"","sources":["../../../../../libs/modules/security-management/server/contracts/src/user-access-state.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAErC;;;GAGG;AACH,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;AACrB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B;AAED,YAAY"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Single operational state derived from account lifecycle and sign-in gate (persisted snapshot in mock/backend).
3
+ */
4
+ export declare enum AXMUserEffectiveState {
5
+ Pending = "pending",
6
+ Active = "active",
7
+ Suspended = "suspended",
8
+ Inactive = "inactive",
9
+ Archived = "archived",
10
+ SignInBlocked = "sign-in-blocked",
11
+ CredentialExpired = "credential-expired"
12
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ //#region ---- User effective (unified) state ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AXMUserEffectiveState = void 0;
5
+ /**
6
+ * Single operational state derived from account lifecycle and sign-in gate (persisted snapshot in mock/backend).
7
+ */
8
+ var AXMUserEffectiveState;
9
+ (function (AXMUserEffectiveState) {
10
+ AXMUserEffectiveState["Pending"] = "pending";
11
+ AXMUserEffectiveState["Active"] = "active";
12
+ AXMUserEffectiveState["Suspended"] = "suspended";
13
+ AXMUserEffectiveState["Inactive"] = "inactive";
14
+ AXMUserEffectiveState["Archived"] = "archived";
15
+ AXMUserEffectiveState["SignInBlocked"] = "sign-in-blocked";
16
+ AXMUserEffectiveState["CredentialExpired"] = "credential-expired";
17
+ })(AXMUserEffectiveState || (exports.AXMUserEffectiveState = AXMUserEffectiveState = {}));
18
+ //#endregion
19
+ //# sourceMappingURL=user-effective-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-effective-state.js","sourceRoot":"","sources":["../../../../../libs/modules/security-management/server/contracts/src/user-effective-state.ts"],"names":[],"mappings":";AAAA,kDAAkD;;;AAElD;;GAEG;AACH,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,gDAAuB,CAAA;IACvB,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,0DAAiC,CAAA;IACjC,iEAAwC,CAAA;AAC1C,CAAC,EARW,qBAAqB,qCAArB,qBAAqB,QAQhC;AAED,YAAY"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@acorex-platform/module-security-management-server",
3
+ "version": "0.0.15",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "peerDependencies": {
8
+ "@nestjs/common": "^11.0.0",
9
+ "@acorex-platform/module-common-server": "0.0.15"
10
+ },
11
+ "exports": {
12
+ "./package.json": "./package.json",
13
+ ".": {
14
+ "types": "./src/index.d.ts",
15
+ "default": "./src/index.js"
16
+ },
17
+ "./seed": {
18
+ "types": "./src/lib/seed/index.d.ts",
19
+ "default": "./src/lib/seed/index.js"
20
+ },
21
+ "./contracts": {
22
+ "types": "./contracts/src/index.d.ts",
23
+ "default": "./contracts/src/index.js"
24
+ }
25
+ }
26
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './lib/security-management-server.module';
2
+ export { securitymanagementSeedCatalog } from './lib/seed/security-management.seed-catalog';
3
+ export { SECURITY_MANAGEMENT_MODULE_SEED } from './lib/seed/security-management-seed.tokens';
4
+ export { SecurityManagementSeedCatalogProvider } from './lib/seed/security-management-seed.provider';
5
+ export * from './lib/seed';
package/src/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecurityManagementSeedCatalogProvider = exports.SECURITY_MANAGEMENT_MODULE_SEED = exports.securitymanagementSeedCatalog = void 0;
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./lib/security-management-server.module"), exports);
6
+ var security_management_seed_catalog_1 = require("./lib/seed/security-management.seed-catalog");
7
+ Object.defineProperty(exports, "securitymanagementSeedCatalog", { enumerable: true, get: function () { return security_management_seed_catalog_1.securitymanagementSeedCatalog; } });
8
+ var security_management_seed_tokens_1 = require("./lib/seed/security-management-seed.tokens");
9
+ Object.defineProperty(exports, "SECURITY_MANAGEMENT_MODULE_SEED", { enumerable: true, get: function () { return security_management_seed_tokens_1.SECURITY_MANAGEMENT_MODULE_SEED; } });
10
+ var security_management_seed_provider_1 = require("./lib/seed/security-management-seed.provider");
11
+ Object.defineProperty(exports, "SecurityManagementSeedCatalogProvider", { enumerable: true, get: function () { return security_management_seed_provider_1.SecurityManagementSeedCatalogProvider; } });
12
+ tslib_1.__exportStar(require("./lib/seed"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/modules/security-management/server/src/index.ts"],"names":[],"mappings":";;;;AAAA,kFAAwD;AACxD,gGAA4F;AAAnF,iJAAA,6BAA6B,OAAA;AACtC,8FAA6F;AAApF,kJAAA,+BAA+B,OAAA;AACxC,kGAAqG;AAA5F,0JAAA,qCAAqC,OAAA;AAC9C,qDAA2B"}
@@ -0,0 +1,2 @@
1
+ export declare class SecurityManagementServerModule {
2
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecurityManagementServerModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const security_management_seed_catalog_1 = require("./seed/security-management.seed-catalog");
7
+ const security_management_seed_tokens_1 = require("./seed/security-management-seed.tokens");
8
+ const security_management_seed_provider_1 = require("./seed/security-management-seed.provider");
9
+ let SecurityManagementServerModule = class SecurityManagementServerModule {
10
+ };
11
+ exports.SecurityManagementServerModule = SecurityManagementServerModule;
12
+ exports.SecurityManagementServerModule = SecurityManagementServerModule = tslib_1.__decorate([
13
+ (0, common_1.Module)({
14
+ providers: [
15
+ security_management_seed_provider_1.SecurityManagementSeedCatalogProvider,
16
+ {
17
+ provide: security_management_seed_tokens_1.SECURITY_MANAGEMENT_MODULE_SEED,
18
+ useValue: security_management_seed_catalog_1.securitymanagementSeedCatalog,
19
+ },
20
+ ],
21
+ })
22
+ ], SecurityManagementServerModule);
23
+ //# sourceMappingURL=security-management-server.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-management-server.module.js","sourceRoot":"","sources":["../../../../../libs/modules/security-management/server/src/lib/security-management-server.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,8FAAwF;AACxF,4FAAyF;AACzF,gGAAiG;AAW1F,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;CAAG,CAAA;AAAjC,wEAA8B;yCAA9B,8BAA8B;IAR1C,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,yEAAqC;YACrC;gBACE,OAAO,EAAE,iEAA+B;gBACxC,QAAQ,EAAE,gEAA6B;aACxC;SACF;KAAE,CAAC;GACO,8BAA8B,CAAG"}
@@ -0,0 +1,22 @@
1
+ export interface SecurityManagementSeedContext {
2
+ moduleName: string;
3
+ route: string;
4
+ }
5
+ export declare const securityManagementSeedContext: {
6
+ moduleName: "SecurityManagement";
7
+ route: string;
8
+ };
9
+ export declare const securityManagementSeedData: {
10
+ module: {
11
+ name: "SecurityManagement";
12
+ title: `@${string}:module.title`;
13
+ icon: "fa-light fa-shield-halved";
14
+ i18n: string;
15
+ required: boolean;
16
+ };
17
+ };
18
+ export * from './policy';
19
+ export * from './role';
20
+ export * from './security-management.seed-catalog';
21
+ export * from './tenant';
22
+ export * from './user';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.securityManagementSeedData = exports.securityManagementSeedContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const contracts_1 = require("@acorex-platform/module-security-management-server/contracts");
6
+ exports.securityManagementSeedContext = {
7
+ moduleName: contracts_1.RootConfig.module.name,
8
+ route: 'security-management',
9
+ };
10
+ exports.securityManagementSeedData = {
11
+ module: {
12
+ name: contracts_1.RootConfig.module.name,
13
+ title: contracts_1.RootConfig.module.title,
14
+ icon: contracts_1.RootConfig.module.icon,
15
+ i18n: contracts_1.RootConfig.config.i18n,
16
+ required: false,
17
+ },
18
+ };
19
+ tslib_1.__exportStar(require("./policy"), exports);
20
+ tslib_1.__exportStar(require("./role"), exports);
21
+ tslib_1.__exportStar(require("./security-management.seed-catalog"), exports);
22
+ tslib_1.__exportStar(require("./tenant"), exports);
23
+ tslib_1.__exportStar(require("./user"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/modules/security-management/server/src/lib/seed/index.ts"],"names":[],"mappings":";;;;AAAA,4FAA0F;AAO7E,QAAA,6BAA6B,GAAG;IAC3C,UAAU,EAAE,sBAAU,CAAC,MAAM,CAAC,IAAI;IAClC,KAAK,EAAE,qBAAqB;CAC7B,CAAC;AAEW,QAAA,0BAA0B,GAAG;IACxC,MAAM,EAAE;QACN,IAAI,EAAE,sBAAU,CAAC,MAAM,CAAC,IAAI;QAC5B,KAAK,EAAE,sBAAU,CAAC,MAAM,CAAC,KAAK;QAC9B,IAAI,EAAE,sBAAU,CAAC,MAAM,CAAC,IAAI;QAC5B,IAAI,EAAE,sBAAU,CAAC,MAAM,CAAC,IAAI;QAC5B,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AACF,mDAAyB;AACzB,iDAAuB;AACvB,6EAAmD;AACnD,mDAAyB;AACzB,iDAAuB"}
@@ -0,0 +1,2 @@
1
+ export * from './policy.mock';
2
+ export * from './policy.seed';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./policy.mock"), exports);
5
+ tslib_1.__exportStar(require("./policy.seed"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/policy/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,wDAA8B"}
@@ -0,0 +1,7 @@
1
+ import { AXMSecurityManagementPolicyEntityModel } from '@acorex-platform/module-security-management-server/contracts';
2
+ /**
3
+ * Mock policies for seeding into the Mock (IndexedDB) backend.
4
+ * This policy enforces readonly on entire records when control.isSystem === true.
5
+ * Note: The policy record itself is marked as system via control.isSystem = true.
6
+ */
7
+ export declare const mockPolicyDefinitions: AXMSecurityManagementPolicyEntityModel[];
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockPolicyDefinitions = void 0;
4
+ const seed_1 = require("@acorex-platform/module-common-server/seed");
5
+ /**
6
+ * Mock policies for seeding into the Mock (IndexedDB) backend.
7
+ * This policy enforces readonly on entire records when control.isSystem === true.
8
+ * Note: The policy record itself is marked as system via control.isSystem = true.
9
+ */
10
+ exports.mockPolicyDefinitions = [
11
+ {
12
+ id: seed_1.AXPDataGenerator.uuid(),
13
+ stateInfo: { isSystem: true },
14
+ name: 'immutable-record-protection',
15
+ title: 'Immutable Record Protection',
16
+ description: 'Protects records marked as system or immutable from modification and deletion.',
17
+ permission: 'policy.immutable.protection',
18
+ scope: 'system',
19
+ resource: {
20
+ type: 'entity',
21
+ target: '*',
22
+ },
23
+ rules: [
24
+ {
25
+ // Evaluated in middleware using AXPExpressionEvaluatorService
26
+ // Available scope: context.{ op, entity, id, data, existing, result, eval }
27
+ // Use context.eval to access data fields
28
+ // Checks EITHER isSystem OR isImmutable flags
29
+ conditions: '{{ context.eval("stateInfo.isSystem") == true || context.eval("stateInfo.isImmutable") == true }}',
30
+ effects: [
31
+ // Apply readonly to the entire record (blocks write fields)
32
+ { effect: 'readonly', target: '*' },
33
+ // Block delete/update entirely for immutable records
34
+ { effect: 'immutable', target: '*' },
35
+ ],
36
+ },
37
+ ],
38
+ },
39
+ ];
40
+ //# sourceMappingURL=policy.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.mock.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/policy/policy.mock.ts"],"names":[],"mappings":";;;AAAA,qEAA4E;AAI5E;;;;GAIG;AACU,QAAA,qBAAqB,GAA6C;IAC7E;QACE,EAAE,EAAE,uBAAgB,CAAC,IAAI,EAAE;QAC3B,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7B,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,gFAAgF;QAC7F,UAAU,EAAE,6BAA6B;QACzC,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACL;gBACE,8DAA8D;gBAC9D,4EAA4E;gBAC5E,yCAAyC;gBACzC,8CAA8C;gBAC9C,UAAU,EAAE,mGAAmG;gBAC/G,OAAO,EAAE;oBACP,4DAA4D;oBAC5D,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE;oBACnC,qDAAqD;oBACrD,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE;iBACrC;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AXPDataSeeder, AXPEntitySeedDefinition, AXPEntitySeedStorage } from '@acorex-platform/module-common-server/seed';
2
+ export declare const POLICY_ENTITY_NAME = "SecurityManagement.Policy";
3
+ export declare function seedPolicyData(storage: AXPEntitySeedStorage): Promise<void>;
4
+ export declare function createPolicyDataSeeder(storage: AXPEntitySeedStorage): AXPDataSeeder;
5
+ export declare const policySeedDefinition: AXPEntitySeedDefinition;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.policySeedDefinition = exports.POLICY_ENTITY_NAME = void 0;
4
+ exports.seedPolicyData = seedPolicyData;
5
+ exports.createPolicyDataSeeder = createPolicyDataSeeder;
6
+ const tslib_1 = require("tslib");
7
+ const seed_1 = require("@acorex-platform/module-common-server/seed");
8
+ const policy_mock_1 = require("./policy.mock");
9
+ //#region ---- Constants ----
10
+ exports.POLICY_ENTITY_NAME = 'SecurityManagement.Policy';
11
+ //#endregion
12
+ //#region ---- Pure seed logic ----
13
+ function seedPolicyData(storage) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ yield storage.initial(exports.POLICY_ENTITY_NAME, policy_mock_1.mockPolicyDefinitions);
16
+ });
17
+ }
18
+ function createPolicyDataSeeder(storage) {
19
+ return {
20
+ name: 'PolicyDataSeeder',
21
+ seed: () => seedPolicyData(storage),
22
+ };
23
+ }
24
+ exports.policySeedDefinition = (0, seed_1.defineEntitySeed)({
25
+ name: 'PolicyDataSeeder',
26
+ entityName: exports.POLICY_ENTITY_NAME,
27
+ rows: policy_mock_1.mockPolicyDefinitions,
28
+ seed: seedPolicyData,
29
+ });
30
+ //#endregion
31
+ //# sourceMappingURL=policy.seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.seed.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/policy/policy.seed.ts"],"names":[],"mappings":";;;AAWA,wCAEC;AAED,wDAKC;;AApBD,qEAA0I;AAC1I,+CAAsD;AAEtD,6BAA6B;AAEhB,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AAE9D,YAAY;AAEZ,mCAAmC;AAEnC,SAAsB,cAAc,CAAC,OAA6B;;QAChE,MAAM,OAAO,CAAC,OAAO,CAAC,0BAAkB,EAAE,mCAAqB,CAAC,CAAC;IACnE,CAAC;CAAA;AAED,SAAgB,sBAAsB,CAAC,OAA6B;IAClE,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC;AAEY,QAAA,oBAAoB,GAA4B,IAAA,uBAAgB,EAAC;IAC5E,IAAI,EAAE,kBAAkB;IACxB,UAAU,EAAE,0BAAkB;IAC9B,IAAI,EAAE,mCAAqB;IAC3B,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC;AAEH,YAAY"}
@@ -0,0 +1,4 @@
1
+ export * from './role-ids.constants';
2
+ export * from './role-permission-keys.constants';
3
+ export * from './role.mock';
4
+ export * from './role.seed';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./role-ids.constants"), exports);
5
+ tslib_1.__exportStar(require("./role-permission-keys.constants"), exports);
6
+ tslib_1.__exportStar(require("./role.mock"), exports);
7
+ tslib_1.__exportStar(require("./role.seed"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/role/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,2EAAiD;AACjD,sDAA4B;AAC5B,sDAA4B"}
@@ -0,0 +1,14 @@
1
+ export declare const MOCK_ROLE_IDS: {
2
+ readonly root: "f0000004-0000-4000-a000-000000000001";
3
+ readonly platformApplicationAdministrator: "f0000004-0000-4000-a000-000000000002";
4
+ readonly admin: "f0000004-0000-4000-a000-000000000003";
5
+ readonly manager: "f0000004-0000-4000-a000-000000000004";
6
+ readonly user: "f0000004-0000-4000-a000-000000000005";
7
+ readonly support: "f0000004-0000-4000-a000-000000000006";
8
+ readonly hr: "f0000004-0000-4000-a000-000000000007";
9
+ readonly finance: "f0000004-0000-4000-a000-000000000008";
10
+ readonly dev: "f0000004-0000-4000-a000-000000000009";
11
+ readonly accountHolder: "f0000004-0000-4000-a000-00000000000a";
12
+ readonly tenantAdministrator: "f0000004-0000-4000-a000-00000000000b";
13
+ readonly conversationOnly: "f0000004-0000-4000-a000-00000000000c";
14
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ //#region ---- Role ID Constants ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MOCK_ROLE_IDS = void 0;
5
+ exports.MOCK_ROLE_IDS = {
6
+ root: 'f0000004-0000-4000-a000-000000000001',
7
+ platformApplicationAdministrator: 'f0000004-0000-4000-a000-000000000002',
8
+ admin: 'f0000004-0000-4000-a000-000000000003',
9
+ manager: 'f0000004-0000-4000-a000-000000000004',
10
+ user: 'f0000004-0000-4000-a000-000000000005',
11
+ support: 'f0000004-0000-4000-a000-000000000006',
12
+ hr: 'f0000004-0000-4000-a000-000000000007',
13
+ finance: 'f0000004-0000-4000-a000-000000000008',
14
+ dev: 'f0000004-0000-4000-a000-000000000009',
15
+ accountHolder: 'f0000004-0000-4000-a000-00000000000a',
16
+ tenantAdministrator: 'f0000004-0000-4000-a000-00000000000b',
17
+ conversationOnly: 'f0000004-0000-4000-a000-00000000000c',
18
+ };
19
+ //#endregion
20
+ //# sourceMappingURL=role-ids.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-ids.constants.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/role/role-ids.constants.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAExB,QAAA,aAAa,GAAG;IAC3B,IAAI,EAAE,sCAAsC;IAC5C,gCAAgC,EAAE,sCAAsC;IACxE,KAAK,EAAE,sCAAsC;IAC7C,OAAO,EAAE,sCAAsC;IAC/C,IAAI,EAAE,sCAAsC;IAC5C,OAAO,EAAE,sCAAsC;IAC/C,EAAE,EAAE,sCAAsC;IAC1C,OAAO,EAAE,sCAAsC;IAC/C,GAAG,EAAE,sCAAsC;IAC3C,aAAa,EAAE,sCAAsC;IACrD,mBAAmB,EAAE,sCAAsC;IAC3D,gBAAgB,EAAE,sCAAsC;CAChD,CAAC;AAEX,YAAY"}