@neohm/nestend 5.0.1 → 6.0.0

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 (227) hide show
  1. package/README.md +34 -18
  2. package/dist/admin/controllers/admin.api.key.controller.d.ts +5 -0
  3. package/dist/admin/controllers/admin.api.key.controller.d.ts.map +1 -1
  4. package/dist/admin/controllers/admin.api.key.controller.js +22 -2
  5. package/dist/admin/controllers/admin.api.key.controller.js.map +1 -1
  6. package/dist/admin/controllers/admin.permission.controller.d.ts +17 -0
  7. package/dist/admin/controllers/admin.permission.controller.d.ts.map +1 -0
  8. package/dist/admin/controllers/admin.permission.controller.js +125 -0
  9. package/dist/admin/controllers/admin.permission.controller.js.map +1 -0
  10. package/dist/admin/controllers/admin.scope.controller.d.ts.map +1 -1
  11. package/dist/admin/controllers/admin.scope.controller.js +1 -1
  12. package/dist/admin/controllers/admin.scope.controller.js.map +1 -1
  13. package/dist/admin/controllers/system.role.controller.d.ts +17 -1
  14. package/dist/admin/controllers/system.role.controller.d.ts.map +1 -1
  15. package/dist/admin/controllers/system.role.controller.js +13 -4
  16. package/dist/admin/controllers/system.role.controller.js.map +1 -1
  17. package/dist/admin/dtos/add.api.key.dto.d.ts +1 -0
  18. package/dist/admin/dtos/add.api.key.dto.d.ts.map +1 -1
  19. package/dist/admin/dtos/add.api.key.dto.js +12 -0
  20. package/dist/admin/dtos/add.api.key.dto.js.map +1 -1
  21. package/dist/admin/dtos/add.permission.dto.d.ts +8 -0
  22. package/dist/admin/dtos/add.permission.dto.d.ts.map +1 -0
  23. package/dist/admin/dtos/add.permission.dto.js +53 -0
  24. package/dist/admin/dtos/add.permission.dto.js.map +1 -0
  25. package/dist/admin/dtos/add.system.role.dto.d.ts +3 -0
  26. package/dist/admin/dtos/add.system.role.dto.d.ts.map +1 -1
  27. package/dist/admin/dtos/add.system.role.dto.js +38 -1
  28. package/dist/admin/dtos/add.system.role.dto.js.map +1 -1
  29. package/dist/admin/dtos/api.key.roles.dto.d.ts +4 -0
  30. package/dist/admin/dtos/api.key.roles.dto.d.ts.map +1 -0
  31. package/dist/admin/dtos/api.key.roles.dto.js +30 -0
  32. package/dist/admin/dtos/api.key.roles.dto.js.map +1 -0
  33. package/dist/admin/dtos/permission.list.dto.d.ts +4 -0
  34. package/dist/admin/dtos/permission.list.dto.d.ts.map +1 -0
  35. package/dist/admin/dtos/permission.list.dto.js +8 -0
  36. package/dist/admin/dtos/permission.list.dto.js.map +1 -0
  37. package/dist/admin/es6.classes.d.ts +9 -4
  38. package/dist/admin/es6.classes.d.ts.map +1 -1
  39. package/dist/admin/es6.classes.js +14 -0
  40. package/dist/admin/es6.classes.js.map +1 -1
  41. package/dist/admin/libraries/api.key.data.processor.d.ts +1 -0
  42. package/dist/admin/libraries/api.key.data.processor.d.ts.map +1 -1
  43. package/dist/admin/libraries/api.key.data.processor.js +23 -1
  44. package/dist/admin/libraries/api.key.data.processor.js.map +1 -1
  45. package/dist/admin/libraries/api.key.list.processor.d.ts.map +1 -1
  46. package/dist/admin/libraries/api.key.list.processor.js +18 -1
  47. package/dist/admin/libraries/api.key.list.processor.js.map +1 -1
  48. package/dist/admin/libraries/api.key.roles.data.processor.d.ts +15 -0
  49. package/dist/admin/libraries/api.key.roles.data.processor.d.ts.map +1 -0
  50. package/dist/admin/libraries/api.key.roles.data.processor.js +49 -0
  51. package/dist/admin/libraries/api.key.roles.data.processor.js.map +1 -0
  52. package/dist/admin/libraries/client.membership.data.processor.d.ts.map +1 -1
  53. package/dist/admin/libraries/client.membership.data.processor.js +4 -1
  54. package/dist/admin/libraries/client.membership.data.processor.js.map +1 -1
  55. package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -1
  56. package/dist/admin/libraries/client.user.data.processor.js +5 -2
  57. package/dist/admin/libraries/client.user.data.processor.js.map +1 -1
  58. package/dist/admin/libraries/permission.data.processor.d.ts +16 -0
  59. package/dist/admin/libraries/permission.data.processor.d.ts.map +1 -0
  60. package/dist/admin/libraries/permission.data.processor.js +68 -0
  61. package/dist/admin/libraries/permission.data.processor.js.map +1 -0
  62. package/dist/admin/libraries/permission.list.processor.d.ts +11 -0
  63. package/dist/admin/libraries/permission.list.processor.d.ts.map +1 -0
  64. package/dist/admin/libraries/permission.list.processor.js +42 -0
  65. package/dist/admin/libraries/permission.list.processor.js.map +1 -0
  66. package/dist/admin/libraries/role.list.processor.d.ts.map +1 -1
  67. package/dist/admin/libraries/role.list.processor.js +14 -1
  68. package/dist/admin/libraries/role.list.processor.js.map +1 -1
  69. package/dist/admin/libraries/system.role.data.processor.d.ts +4 -0
  70. package/dist/admin/libraries/system.role.data.processor.d.ts.map +1 -1
  71. package/dist/admin/libraries/system.role.data.processor.js +68 -5
  72. package/dist/admin/libraries/system.role.data.processor.js.map +1 -1
  73. package/dist/admin/utilities/api.key.role.policy.d.ts +4 -0
  74. package/dist/admin/utilities/api.key.role.policy.d.ts.map +1 -0
  75. package/dist/admin/utilities/api.key.role.policy.js +30 -0
  76. package/dist/admin/utilities/api.key.role.policy.js.map +1 -0
  77. package/dist/admin/utilities/scope.grants.d.ts.map +1 -1
  78. package/dist/admin/utilities/scope.grants.js +6 -1
  79. package/dist/admin/utilities/scope.grants.js.map +1 -1
  80. package/dist/admin/utilities/tenant.role.policy.d.ts +4 -5
  81. package/dist/admin/utilities/tenant.role.policy.d.ts.map +1 -1
  82. package/dist/admin/utilities/tenant.role.policy.js +7 -6
  83. package/dist/admin/utilities/tenant.role.policy.js.map +1 -1
  84. package/dist/auth/controllers/auth.controller.d.ts.map +1 -1
  85. package/dist/auth/controllers/auth.controller.js +5 -2
  86. package/dist/auth/controllers/auth.controller.js.map +1 -1
  87. package/dist/auth/controllers/tenant.invitation.controller.d.ts.map +1 -1
  88. package/dist/auth/controllers/tenant.invitation.controller.js +15 -16
  89. package/dist/auth/controllers/tenant.invitation.controller.js.map +1 -1
  90. package/dist/auth/controllers/tenant.member.controller.d.ts.map +1 -1
  91. package/dist/auth/controllers/tenant.member.controller.js +5 -5
  92. package/dist/auth/controllers/tenant.member.controller.js.map +1 -1
  93. package/dist/auth/decorators/api.key.scopes.decorator.d.ts +4 -0
  94. package/dist/auth/decorators/api.key.scopes.decorator.d.ts.map +1 -1
  95. package/dist/auth/decorators/api.key.scopes.decorator.js +7 -1
  96. package/dist/auth/decorators/api.key.scopes.decorator.js.map +1 -1
  97. package/dist/auth/entities/api.key.role.entity.d.ts +13 -0
  98. package/dist/auth/entities/api.key.role.entity.d.ts.map +1 -0
  99. package/dist/auth/entities/api.key.role.entity.js +51 -0
  100. package/dist/auth/entities/api.key.role.entity.js.map +1 -0
  101. package/dist/auth/entities/permission.entity.d.ts +10 -0
  102. package/dist/auth/entities/permission.entity.d.ts.map +1 -0
  103. package/dist/auth/entities/permission.entity.js +43 -0
  104. package/dist/auth/entities/permission.entity.js.map +1 -0
  105. package/dist/auth/entities/role.permission.entity.d.ts +10 -0
  106. package/dist/auth/entities/role.permission.entity.d.ts.map +1 -0
  107. package/dist/auth/entities/role.permission.entity.js +41 -0
  108. package/dist/auth/entities/role.permission.entity.js.map +1 -0
  109. package/dist/auth/entities/system.role.entity.d.ts +6 -0
  110. package/dist/auth/entities/system.role.entity.d.ts.map +1 -1
  111. package/dist/auth/entities/system.role.entity.js +20 -0
  112. package/dist/auth/entities/system.role.entity.js.map +1 -1
  113. package/dist/auth/enums/role.default.enum.d.ts +8 -0
  114. package/dist/auth/enums/role.default.enum.d.ts.map +1 -0
  115. package/dist/auth/enums/role.default.enum.js +13 -0
  116. package/dist/auth/enums/role.default.enum.js.map +1 -0
  117. package/dist/auth/enums/tenant.role.enum.d.ts.map +1 -1
  118. package/dist/auth/enums/tenant.role.enum.js.map +1 -1
  119. package/dist/auth/guards/api.key.guard.d.ts.map +1 -1
  120. package/dist/auth/guards/api.key.guard.js +24 -8
  121. package/dist/auth/guards/api.key.guard.js.map +1 -1
  122. package/dist/auth/middlewares/api.key.middleware.d.ts.map +1 -1
  123. package/dist/auth/middlewares/api.key.middleware.js +1 -1
  124. package/dist/auth/middlewares/api.key.middleware.js.map +1 -1
  125. package/dist/auth/processors/tenant.invitation.data.processor.d.ts +3 -1
  126. package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -1
  127. package/dist/auth/processors/tenant.invitation.data.processor.js +6 -2
  128. package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -1
  129. package/dist/auth/processors/tenant.invitation.list.processor.d.ts +2 -1
  130. package/dist/auth/processors/tenant.invitation.list.processor.d.ts.map +1 -1
  131. package/dist/auth/processors/tenant.invitation.list.processor.js +4 -1
  132. package/dist/auth/processors/tenant.invitation.list.processor.js.map +1 -1
  133. package/dist/auth/services/api.key.service.d.ts +10 -2
  134. package/dist/auth/services/api.key.service.d.ts.map +1 -1
  135. package/dist/auth/services/api.key.service.js +84 -7
  136. package/dist/auth/services/api.key.service.js.map +1 -1
  137. package/dist/auth/services/auth.service.d.ts +10 -5
  138. package/dist/auth/services/auth.service.d.ts.map +1 -1
  139. package/dist/auth/services/auth.service.js +63 -49
  140. package/dist/auth/services/auth.service.js.map +1 -1
  141. package/dist/auth/services/role.service.d.ts +3 -1
  142. package/dist/auth/services/role.service.d.ts.map +1 -1
  143. package/dist/auth/services/role.service.js +37 -0
  144. package/dist/auth/services/role.service.js.map +1 -1
  145. package/dist/auth/services/scope.service.d.ts +1 -0
  146. package/dist/auth/services/scope.service.d.ts.map +1 -1
  147. package/dist/auth/services/scope.service.js +32 -0
  148. package/dist/auth/services/scope.service.js.map +1 -1
  149. package/dist/auth/services/tenant.invitation.service.d.ts +6 -4
  150. package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -1
  151. package/dist/auth/services/tenant.invitation.service.js +30 -6
  152. package/dist/auth/services/tenant.invitation.service.js.map +1 -1
  153. package/dist/auth/services/tenant.membership.service.d.ts +3 -1
  154. package/dist/auth/services/tenant.membership.service.d.ts.map +1 -1
  155. package/dist/auth/services/tenant.membership.service.js +22 -3
  156. package/dist/auth/services/tenant.membership.service.js.map +1 -1
  157. package/dist/auth/types/api.key.types.d.ts +6 -0
  158. package/dist/auth/types/api.key.types.d.ts.map +1 -1
  159. package/dist/auth/types/auth.types.d.ts +2 -0
  160. package/dist/auth/types/auth.types.d.ts.map +1 -1
  161. package/dist/auth/types/rbac.types.d.ts +35 -0
  162. package/dist/auth/types/rbac.types.d.ts.map +1 -0
  163. package/dist/auth/types/rbac.types.js +3 -0
  164. package/dist/auth/types/rbac.types.js.map +1 -0
  165. package/dist/auth/utilities/grant.authority.d.ts +14 -0
  166. package/dist/auth/utilities/grant.authority.d.ts.map +1 -0
  167. package/dist/auth/utilities/grant.authority.js +38 -0
  168. package/dist/auth/utilities/grant.authority.js.map +1 -0
  169. package/dist/auth/utilities/role.catalogue.d.ts +10 -0
  170. package/dist/auth/utilities/role.catalogue.d.ts.map +1 -0
  171. package/dist/auth/utilities/role.catalogue.js +81 -0
  172. package/dist/auth/utilities/role.catalogue.js.map +1 -0
  173. package/dist/auth/utilities/role.hierarchy.d.ts +31 -0
  174. package/dist/auth/utilities/role.hierarchy.d.ts.map +1 -0
  175. package/dist/auth/utilities/role.hierarchy.js +149 -0
  176. package/dist/auth/utilities/role.hierarchy.js.map +1 -0
  177. package/dist/auth/utilities/scope.cascade.d.ts +2 -0
  178. package/dist/auth/utilities/scope.cascade.d.ts.map +1 -1
  179. package/dist/auth/utilities/scope.cascade.js +44 -2
  180. package/dist/auth/utilities/scope.cascade.js.map +1 -1
  181. package/dist/auth/utilities/tenant.access.d.ts.map +1 -1
  182. package/dist/auth/utilities/tenant.access.js +10 -3
  183. package/dist/auth/utilities/tenant.access.js.map +1 -1
  184. package/dist/common/subscribers/common.subscriber.d.ts +4 -4
  185. package/dist/common/subscribers/common.subscriber.d.ts.map +1 -1
  186. package/dist/common/subscribers/common.subscriber.js +2 -2
  187. package/dist/common/subscribers/common.subscriber.js.map +1 -1
  188. package/dist/constants/entity.constants.d.ts +3 -0
  189. package/dist/constants/entity.constants.d.ts.map +1 -1
  190. package/dist/constants/entity.constants.js +3 -0
  191. package/dist/constants/entity.constants.js.map +1 -1
  192. package/dist/constants/entity.maps.d.ts +6 -0
  193. package/dist/constants/entity.maps.d.ts.map +1 -1
  194. package/dist/constants/entity.maps.js +6 -0
  195. package/dist/constants/entity.maps.js.map +1 -1
  196. package/dist/index.d.ts +9 -4
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +20 -9
  199. package/dist/index.js.map +1 -1
  200. package/dist/migrations/1749600000004.CreateSysRolesTable.d.ts.map +1 -1
  201. package/dist/migrations/1749600000004.CreateSysRolesTable.js +7 -0
  202. package/dist/migrations/1749600000004.CreateSysRolesTable.js.map +1 -1
  203. package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts +3 -0
  204. package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts.map +1 -1
  205. package/dist/migrations/1749600000025.CreateSysScopesTable.js +16 -0
  206. package/dist/migrations/1749600000025.CreateSysScopesTable.js.map +1 -1
  207. package/dist/migrations/1749600000033.CreateSysPermissionsTable.d.ts +6 -0
  208. package/dist/migrations/1749600000033.CreateSysPermissionsTable.d.ts.map +1 -0
  209. package/dist/migrations/1749600000033.CreateSysPermissionsTable.js +29 -0
  210. package/dist/migrations/1749600000033.CreateSysPermissionsTable.js.map +1 -0
  211. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.d.ts +6 -0
  212. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.d.ts.map +1 -0
  213. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.js +32 -0
  214. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.js.map +1 -0
  215. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.d.ts +6 -0
  216. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.d.ts.map +1 -0
  217. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.js +38 -0
  218. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.js.map +1 -0
  219. package/dist/migrations/1749600000036.SeedGlobalAdminRole.d.ts +6 -0
  220. package/dist/migrations/1749600000036.SeedGlobalAdminRole.d.ts.map +1 -0
  221. package/dist/migrations/1749600000036.SeedGlobalAdminRole.js +25 -0
  222. package/dist/migrations/1749600000036.SeedGlobalAdminRole.js.map +1 -0
  223. package/package.json +1 -1
  224. package/dist/auth/enums/role.tier.enum.d.ts +0 -6
  225. package/dist/auth/enums/role.tier.enum.d.ts.map +0 -1
  226. package/dist/auth/enums/role.tier.enum.js +0 -10
  227. package/dist/auth/enums/role.tier.enum.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.role.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/tenant.role.enum.ts"],"names":[],"mappings":";;;AAQA,IAAY,UAGX;AAHD,WAAY,UAAU;IAEpB,2CAA6B,CAAA;AAC/B,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
1
+ {"version":3,"file":"tenant.role.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/tenant.role.enum.ts"],"names":[],"mappings":";;;AAOA,IAAY,UAGX;AAHD,WAAY,UAAU;IAEpB,2CAA6B,CAAA;AAC/B,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.key.guard.d.ts","sourceRoot":"","sources":["../../../src/auth/guards/api.key.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAUtD,qBACa,WAAY,YAAW,WAAW;IAE3C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,UAAU;IAG/B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAuC/D"}
1
+ {"version":3,"file":"api.key.guard.d.ts","sourceRoot":"","sources":["../../../src/auth/guards/api.key.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAYtD,qBACa,WAAY,YAAW,WAAW;IAE3C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,UAAU;IAG/B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAmE/D"}
@@ -35,16 +35,32 @@ let ApiKeyGuard = class ApiKeyGuard {
35
35
  const apiKey = await this.apiKeyService.validateApiKey(rawKey);
36
36
  if (!apiKey)
37
37
  throw new common_1.UnauthorizedException('API key is invalid, revoked or expired.');
38
- const requiredScopes = this.reflector.getAllAndOverride(api_key_scopes_decorator_1.API_KEY_SCOPES_KEY, targets) ??
39
- [];
38
+ const required = (key) => this.reflector.getAllAndOverride(key, targets) ?? [];
39
+ const requiredScopes = required(api_key_scopes_decorator_1.API_KEY_SCOPES_KEY);
40
+ const requiredRoles = required(api_key_scopes_decorator_1.API_KEY_ROLES_KEY);
41
+ const requiredPermissions = required(api_key_scopes_decorator_1.API_KEY_PERMISSIONS_KEY);
40
42
  const anyScope = this.reflector.getAllAndOverride(api_key_scopes_decorator_1.API_KEY_ANY_SCOPE_KEY, targets);
41
- if (!requiredScopes.length && !anyScope)
43
+ if (!requiredScopes.length &&
44
+ !requiredRoles.length &&
45
+ !requiredPermissions.length &&
46
+ !anyScope)
42
47
  throw new access_exception_1.AccessException('This route accepts no API key scope.');
43
- const scopes = await this.apiKeyService.effectiveScopes(apiKey);
44
- const missing = requiredScopes.find((scope) => !api_key_service_1.ApiKeyService.grants(scopes, scope));
45
- if (missing)
46
- throw new access_exception_1.AccessException(`API key is missing the "${missing}" scope.`);
47
- Object.assign(request, { apiKey, apiKeyScopes: scopes });
48
+ const grant = await this.apiKeyService.effectiveGrant(apiKey);
49
+ const missingScope = requiredScopes.find((scope) => !api_key_service_1.ApiKeyService.grants(grant.scopes, scope));
50
+ if (missingScope)
51
+ throw new access_exception_1.AccessException(`API key is missing the "${missingScope}" scope.`);
52
+ const missingRole = requiredRoles.find((role) => !grant.roles.includes(role));
53
+ if (missingRole)
54
+ throw new access_exception_1.AccessException(`API key requires at least the "${missingRole}" role.`);
55
+ const missingPermission = requiredPermissions.find((permission) => !grant.permissions.includes(permission));
56
+ if (missingPermission)
57
+ throw new access_exception_1.AccessException(`API key is missing the "${missingPermission}" permission.`);
58
+ Object.assign(request, {
59
+ apiKey,
60
+ apiKeyScopes: grant.scopes,
61
+ apiKeyRoles: grant.roles,
62
+ apiKeyPermissions: grant.permissions,
63
+ });
48
64
  return true;
49
65
  }
50
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"api.key.guard.js","sourceRoot":"","sources":["../../../src/auth/guards/api.key.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,uCAAyC;AAEzC,+EAA2E;AAC3E,qFAGgD;AAChD,qEAA+D;AAC/D,iEAA4D;AAC5D,0DAAsD;AACtD,0EAAsE;AAU/D,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YACmB,aAA4B,EAC5B,SAAoB,EACpB,MAAkB;QAFlB,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAW;QACpB,WAAM,GAAN,MAAM,CAAY;IAClC,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,gCAAa,EAAE,OAAO,CAAC;YACnE,OAAO,IAAI,CAAC;QAEd,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,MAAM,GAAG,wCAAkB,CAAC,MAAM,CACtC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,8BAAqB,CAC7B,yCAAyC,CAC1C,CAAC;QAEJ,MAAM,cAAc,GAClB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAW,6CAAkB,EAAE,OAAO,CAAC;YACvE,EAAE,CAAC;QACL,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC/C,gDAAqB,EACrB,OAAO,CACR,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,QAAQ;YACrC,MAAM,IAAI,kCAAe,CAAC,sCAAsC,CAAC,CAAC;QAGpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CACjC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,+BAAa,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAChD,CAAC;QACF,IAAI,OAAO;YACT,MAAM,IAAI,kCAAe,CAAC,2BAA2B,OAAO,UAAU,CAAC,CAAC;QAE1E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA9CY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGuB,+BAAa;QACjB,gBAAS;QACZ,wBAAU;GAJ1B,WAAW,CA8CvB"}
1
+ {"version":3,"file":"api.key.guard.js","sourceRoot":"","sources":["../../../src/auth/guards/api.key.guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.key.middleware.d.ts","sourceRoot":"","sources":["../../../src/auth/middlewares/api.key.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWtD,qBACa,gBAAiB,YAAW,cAAc;IAEnD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,UAAU;IAG/B,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC;YAWF,cAAc;CAsB7B"}
1
+ {"version":3,"file":"api.key.middleware.d.ts","sourceRoot":"","sources":["../../../src/auth/middlewares/api.key.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAYtD,qBACa,gBAAiB,YAAW,cAAc;IAEnD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,UAAU;IAG/B,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC;YAWF,cAAc;CAsB7B"}
@@ -39,7 +39,7 @@ let ApiKeyMiddleware = class ApiKeyMiddleware {
39
39
  return {
40
40
  apiKey,
41
41
  tenant: apiKey.tenant ?? undefined,
42
- scopes: await this.apiKeyService.effectiveScopes(apiKey),
42
+ ...(await this.apiKeyService.effectiveGrant(apiKey)),
43
43
  };
44
44
  }
45
45
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"api.key.middleware.js","sourceRoot":"","sources":["../../../src/auth/middlewares/api.key.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAE5D,iEAA4D;AAC5D,gEAA2D;AAE3D,0DAAsD;AACtD,0EAAsE;AAW/D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,aAA4B,EAC5B,MAAkB;QADlB,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAY;IAClC,CAAC;IAEJ,KAAK,CAAC,GAAG,CACP,OAAgB,EAChB,SAAmB,EACnB,IAAkB;QAElB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAGnD,IAAI,OAAO,EAAE,CAAC;YACZ,+BAAa,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,OAAgB;QAEhB,MAAM,MAAM,GAAG,wCAAkB,CAAC,MAAM,CACtC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,OAAO;gBACL,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;gBAClC,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;aACzD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA3CY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGuB,+BAAa;QACpB,wBAAU;GAH1B,gBAAgB,CA2C5B"}
1
+ {"version":3,"file":"api.key.middleware.js","sourceRoot":"","sources":["../../../src/auth/middlewares/api.key.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAE5D,iEAA4D;AAC5D,gEAA2D;AAE3D,0DAAsD;AACtD,0EAAsE;AAY/D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,aAA4B,EAC5B,MAAkB;QADlB,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAY;IAClC,CAAC;IAEJ,KAAK,CAAC,GAAG,CACP,OAAgB,EAChB,SAAmB,EACnB,IAAkB;QAElB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAGnD,IAAI,OAAO,EAAE,CAAC;YACZ,+BAAa,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,OAAgB;QAEhB,MAAM,MAAM,GAAG,wCAAkB,CAAC,MAAM,CACtC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,OAAO;gBACL,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;gBAClC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACrD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA3CY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGuB,+BAAa;QACpB,wBAAU;GAH1B,gBAAgB,CA2C5B"}
@@ -3,12 +3,14 @@ import { InviteTenantUserDto } from '../dtos/invite.tenant.user.dto';
3
3
  import { TenantInvitationEntity } from '../entities/tenant.invitation.entity';
4
4
  import { UserEntity } from '../entities/user.entity';
5
5
  import { TenantInvitationService } from '../services/tenant.invitation.service';
6
+ import { GrantAuthority } from '../utilities/grant.authority';
6
7
  export declare class TenantInvitationDataProcessor extends CommonDataProcessor {
7
8
  private readonly inviter;
8
9
  private readonly tenantInvitationService;
10
+ private readonly authority;
9
11
  protected payload: InviteTenantUserDto;
10
12
  private invitee;
11
- constructor(inviter: UserEntity, tenantInvitationService: TenantInvitationService);
13
+ constructor(inviter: UserEntity, tenantInvitationService: TenantInvitationService, authority: GrantAuthority);
12
14
  process(payload: InviteTenantUserDto): Promise<TenantInvitationEntity>;
13
15
  private get tenantId();
14
16
  private get dataSource();
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.invitation.data.processor.d.ts","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.data.processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAShF,qBAAa,6BAA8B,SAAQ,mBAAmB;IAKlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAL1C,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACvC,OAAO,CAAC,OAAO,CAA2B;gBAGvB,OAAO,EAAE,UAAU,EACnB,uBAAuB,EAAE,uBAAuB;IAK7D,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAU5E,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,UAAU,GAErB;YAEa,QAAQ;YAaR,eAAe;YAgBf,eAAe;YAYf,aAAa;YAgBb,MAAM;IAqFpB,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"tenant.invitation.data.processor.d.ts","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.data.processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAS9D,qBAAa,6BAA8B,SAAQ,mBAAmB;IAKlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACvC,OAAO,CAAC,OAAO,CAA2B;gBAGvB,OAAO,EAAE,UAAU,EACnB,uBAAuB,EAAE,uBAAuB,EAChD,SAAS,EAAE,cAAc;IAKtC,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAU5E,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,UAAU,GAErB;YAEa,QAAQ;YAaR,eAAe;YAgBf,eAAe;YAYf,aAAa;YAsBb,MAAM;IAqFpB,OAAO,CAAC,YAAY;CAGrB"}
@@ -13,10 +13,11 @@ const user_type_enum_1 = require("../enums/user.type.enum");
13
13
  const tenant_invitation_service_1 = require("../services/tenant.invitation.service");
14
14
  const auth_utilities_1 = require("../utilities/auth.utilities");
15
15
  class TenantInvitationDataProcessor extends common_data_processor_1.CommonDataProcessor {
16
- constructor(inviter, tenantInvitationService) {
16
+ constructor(inviter, tenantInvitationService, authority) {
17
17
  super();
18
18
  this.inviter = inviter;
19
19
  this.tenantInvitationService = tenantInvitationService;
20
+ this.authority = authority;
20
21
  this.invitee = null;
21
22
  }
22
23
  async process(payload) {
@@ -73,9 +74,12 @@ class TenantInvitationDataProcessor extends common_data_processor_1.CommonDataPr
73
74
  is_active: true,
74
75
  });
75
76
  const found = new Set(roles.map((role) => role.id));
76
- for (const roleId of roleIds)
77
+ for (const roleId of roleIds) {
77
78
  if (!found.has(roleId))
78
79
  this.setColumnError('role_ids', `Role '${roleId}' not found or inactive`);
80
+ else if (!this.authority.canGrant(roleId))
81
+ this.setColumnError('role_ids', `You may not grant '${roles.find((role) => role.id === roleId)?.identifier}' in this organization`);
82
+ }
79
83
  }
80
84
  async create() {
81
85
  const oneTimePassword = this.invitee
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.invitation.data.processor.js","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.data.processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenant.invitation.data.processor.js","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.data.processor.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ export declare class TenantInvitationListProcessor extends CommonListProcessor {
8
8
  protected config: CommonListFilterConfig;
9
9
  constructor(listFilterService: ListFilterService);
10
10
  private tenantId;
11
- process(payload: TenantInvitationListDto, tenantId: string): Promise<import("../../common/types/list.types").CommonListResult>;
11
+ private createdBy?;
12
+ process(payload: TenantInvitationListDto, tenantId: string, createdBy?: string): Promise<import("../../common/types/list.types").CommonListResult>;
12
13
  protected applyCustomPredicates(): void;
13
14
  }
14
15
  //# sourceMappingURL=tenant.invitation.list.processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.invitation.list.processor.d.ts","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.list.processor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAO7E,qBAAa,6BAA8B,SAAQ,mBAAmB;IAkDxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAjDnE,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAE3C,SAAS,CAAC,MAAM,EAAE,sBAAsB,CA6CtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAInE,OAAO,CAAC,QAAQ,CAAS;IAGnB,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM;IAQhE,SAAS,CAAC,qBAAqB;CAGhC"}
1
+ {"version":3,"file":"tenant.invitation.list.processor.d.ts","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.list.processor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAO7E,qBAAa,6BAA8B,SAAQ,mBAAmB;IAkDxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAjDnE,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAE3C,SAAS,CAAC,MAAM,EAAE,sBAAsB,CA6CtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAInE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAMrB,OAAO,CACX,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM;IAUpB,SAAS,CAAC,qBAAqB;CAKhC"}
@@ -56,15 +56,18 @@ class TenantInvitationListProcessor extends common_list_processor_1.CommonListPr
56
56
  defaultSort: { field: 'created_at', direction: sort_direction_enum_1.SortDirection.DESC },
57
57
  };
58
58
  }
59
- async process(payload, tenantId) {
59
+ async process(payload, tenantId, createdBy) {
60
60
  if (!tenantId)
61
61
  throw new access_exception_1.AccessException('No organization in this session.');
62
62
  this.payload = payload;
63
63
  this.tenantId = tenantId;
64
+ this.createdBy = createdBy;
64
65
  return this.handle();
65
66
  }
66
67
  applyCustomPredicates() {
67
68
  this.predicates.add('i.tenant_id = :value', this.tenantId);
69
+ if (this.createdBy)
70
+ this.predicates.add('i.created_by = :value', this.createdBy);
68
71
  }
69
72
  }
70
73
  exports.TenantInvitationListProcessor = TenantInvitationListProcessor;
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.invitation.list.processor.js","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.list.processor.ts"],"names":[],"mappings":";;;AAAA,+EAA2E;AAC3E,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AAUnF,MAAa,6BAA8B,SAAQ,2CAAmB;IAkDpE,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QA/CzD,WAAM,GAA2B;YACzC,KAAK,EAAE;;;;;;;;;;;;;;mBAcQ;YACf,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;gBACzD,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;gBACzC;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,OAAO;oBACnB,IAAI,EAAE,4CAAmB,CAAC,IAAI;iBAC/B;gBACD,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvE,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE;gBACvD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;gBACD;oBACE,GAAG,EAAE,gBAAgB;oBACrB,UAAU,EAAE,cAAc;oBAC1B,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;gBACD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,mCAAa,CAAC,IAAI,EAAE;SACpE,CAAC;IAIF,CAAC;IAKD,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,QAAgB;QAC9D,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,kCAAe,CAAC,kCAAkC,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAES,qBAAqB;QAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACF;AApED,sEAoEC"}
1
+ {"version":3,"file":"tenant.invitation.list.processor.js","sourceRoot":"","sources":["../../../src/auth/processors/tenant.invitation.list.processor.ts"],"names":[],"mappings":";;;AAAA,+EAA2E;AAC3E,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AAUnF,MAAa,6BAA8B,SAAQ,2CAAmB;IAkDpE,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QA/CzD,WAAM,GAA2B;YACzC,KAAK,EAAE;;;;;;;;;;;;;;mBAcQ;YACf,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;gBACzD,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;gBACzC;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,OAAO;oBACnB,IAAI,EAAE,4CAAmB,CAAC,IAAI;iBAC/B;gBACD,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvE,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE;gBACvD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;gBACD;oBACE,GAAG,EAAE,gBAAgB;oBACrB,UAAU,EAAE,cAAc;oBAC1B,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;gBACD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,mCAAa,CAAC,IAAI,EAAE;SACpE,CAAC;IAIF,CAAC;IASD,KAAK,CAAC,OAAO,CACX,OAAgC,EAChC,QAAgB,EAChB,SAAkB;QAElB,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,kCAAe,CAAC,kCAAkC,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAES,qBAAqB;QAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,SAAS;YAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF;AA/ED,sEA+EC"}
@@ -6,7 +6,7 @@ import { ScopeService } from './scope.service';
6
6
  import { ApiKeyEntity } from '../entities/api.key.entity';
7
7
  import { ApiScopeEntity } from '../entities/api.scope.entity';
8
8
  import { AuthConfig } from '../utilities/auth.config';
9
- import { ApiKeyAccess, ApiKeyDetail, GenerateApiKeyOptions, GeneratedApiKey } from '../types/api.key.types';
9
+ import { ApiKeyAccess, ApiKeyDetail, ApiKeyGrant, GenerateApiKeyOptions, GeneratedApiKey } from '../types/api.key.types';
10
10
  export declare class ApiKeyService {
11
11
  private readonly dataSource;
12
12
  private readonly encryptionService;
@@ -20,16 +20,24 @@ export declare class ApiKeyService {
20
20
  validateApiKey(rawKey: string): Promise<ApiKeyEntity | null>;
21
21
  grantedScopes(apiKeyUuid: string): Promise<string[]>;
22
22
  effectiveScopes(apiKey: ApiKeyEntity): Promise<string[]>;
23
+ effectiveGrant(apiKey: ApiKeyEntity): Promise<ApiKeyGrant>;
24
+ scopeReach(apiKey: ApiKeyEntity): Promise<Set<string>>;
25
+ private effectiveScopeRecords;
26
+ setRoles(apiKeyUuid: string, roleIds: string[], actorId?: string): Promise<string[]>;
23
27
  static intersectScopes(granted: string[], principal: string[]): string[];
24
28
  static grants(granted: string[], scope: string): boolean;
25
29
  apiKeyDetail(apiKeyUuid: string, reveal?: boolean): Promise<ApiKeyDetail>;
26
30
  hasScope(apiKey: ApiKeyEntity, scope: string): Promise<boolean>;
27
- validateAccess(scopeIdentifier: string): ApiKeyAccess;
31
+ validateAccess(scopeIdentifier: string, roleIdentifier?: string): ApiKeyAccess;
32
+ validatePermission(...permissions: string[]): ApiKeyAccess;
33
+ private contextGrant;
34
+ private contextTenant;
28
35
  revokeApiKey(apiKeyUuid: string, actorId?: string): Promise<void>;
29
36
  disableApiKey(apiKeyUuid: string, actorId: string): Promise<DisableResult>;
30
37
  deleteApiKey(apiKeyUuid: string, actorId: string): Promise<DeleteResult>;
31
38
  listApiKeys(): Promise<ApiKeyEntity[]>;
32
39
  private grantedScopeRecords;
40
+ private grantedRoleRecords;
33
41
  private touchLastUsed;
34
42
  private get apiKeyRepository();
35
43
  private get apiScopeRepository();
@@ -1 +1 @@
1
- {"version":3,"file":"api.key.service.d.ts","sourceRoot":"","sources":["../../../src/auth/services/api.key.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAyB,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AAGjD,OAAO,EACL,YAAY,EACZ,aAAa,EACd,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAYhC,qBACa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAkC;gBAGxC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU;IAG/B,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC;IA+BrB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBjD,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC;IAkBtB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAqB5D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAapD,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU9D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAUxE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAYlD,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,UAAQ,GACb,OAAO,CAAC,YAAY,CAAC;IAuBlB,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrE,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY;IAkB/C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjE,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC;IAmBnB,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC;IAiBlB,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAK9B,mBAAmB;YAanB,aAAa;IAO3B,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,kBAAkB,GAE7B;CACF"}
1
+ {"version":3,"file":"api.key.service.d.ts","sourceRoot":"","sources":["../../../src/auth/services/api.key.service.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,10 @@ const encryption_service_1 = require("../../common/services/encryption.service")
20
20
  const scope_service_1 = require("./scope.service");
21
21
  const hash_util_1 = require("../../global/utilities/hash.util");
22
22
  const api_key_entity_1 = require("../entities/api.key.entity");
23
+ const api_key_role_entity_1 = require("../entities/api.key.role.entity");
23
24
  const api_scope_entity_1 = require("../entities/api.scope.entity");
25
+ const role_catalogue_1 = require("../utilities/role.catalogue");
26
+ const scope_cascade_1 = require("../utilities/scope.cascade");
24
27
  const api_key_default_enum_1 = require("../enums/api.key.default.enum");
25
28
  const api_key_context_1 = require("../helpers/api.key.context");
26
29
  const auth_config_1 = require("../utilities/auth.config");
@@ -47,6 +50,7 @@ let ApiKeyService = ApiKeyService_1 = class ApiKeyService {
47
50
  ...(options?.createdBy ? { created_by: options.createdBy } : {}),
48
51
  }));
49
52
  await this.grantScopes(apiKey.id, options?.scopeIds, options?.createdBy);
53
+ await this.setRoles(apiKey.id, options?.roleIds ?? [], options?.createdBy);
50
54
  delete apiKey.key_encrypted;
51
55
  delete apiKey.key_hash;
52
56
  return { rawKey, apiKey };
@@ -95,13 +99,59 @@ let ApiKeyService = ApiKeyService_1 = class ApiKeyService {
95
99
  return scopes.map((scope) => scope.identifier);
96
100
  }
97
101
  async effectiveScopes(apiKey) {
102
+ return (await this.effectiveScopeRecords(apiKey)).map((scope) => scope.identifier);
103
+ }
104
+ async effectiveGrant(apiKey) {
105
+ const scopes = await this.effectiveScopeRecords(apiKey);
106
+ const manager = this.dataSource.manager;
107
+ const [hierarchy, roleIds] = await Promise.all([
108
+ role_catalogue_1.RoleCatalogue.load(manager, {
109
+ scopeIds: new Set(scopes.map((scope) => scope.id)),
110
+ withPermissions: true,
111
+ }),
112
+ role_catalogue_1.RoleCatalogue.keyRoleIds(manager, apiKey.id),
113
+ ]);
114
+ return {
115
+ scopes: scopes.map((scope) => scope.identifier),
116
+ roles: hierarchy.coveredRoles(roleIds).map((role) => role.identifier),
117
+ permissions: [...hierarchy.permissionsOf(roleIds)].sort(),
118
+ };
119
+ }
120
+ async scopeReach(apiKey) {
121
+ return new Set((await this.effectiveScopeRecords(apiKey)).map((scope) => scope.id));
122
+ }
123
+ async effectiveScopeRecords(apiKey) {
98
124
  if (!apiKey.tenant_id)
99
125
  return [];
100
126
  const [granted, principal] = await Promise.all([
101
- this.grantedScopes(apiKey.id),
102
- this.scopeService.tenantScopes(apiKey.tenant_id),
127
+ this.scopeService.effectiveScopes(await this.grantedScopeRecords(apiKey.id)),
128
+ scope_cascade_1.ScopeCascade.tenantEffective(this.dataSource.manager, apiKey.tenant_id),
103
129
  ]);
104
- return ApiKeyService_1.intersectScopes(granted, principal);
130
+ const wildcard = String(api_key_default_enum_1.ApiKeyDefault.WILDCARD_SCOPE);
131
+ if (granted.some((scope) => scope.identifier === wildcard))
132
+ return principal;
133
+ const held = new Set(principal.map((scope) => scope.id));
134
+ return granted.filter((scope) => held.has(scope.id));
135
+ }
136
+ async setRoles(apiKeyUuid, roleIds, actorId) {
137
+ const wanted = new Set(roleIds);
138
+ await this.dataSource.transaction(async (trx) => {
139
+ const held = await trx.findBy(api_key_role_entity_1.ApiKeyRoleEntity, {
140
+ api_key_id: apiKeyUuid,
141
+ });
142
+ const heldIds = new Set(held.map((grant) => grant.role_id));
143
+ await scope_cascade_1.ScopeCascade.retireKeyRoles(trx, held
144
+ .filter((grant) => !wanted.has(grant.role_id))
145
+ .map((grant) => grant.id), actorId);
146
+ const added = [...wanted].filter((roleId) => !heldIds.has(roleId));
147
+ if (added.length)
148
+ await trx.save(added.map((role_id) => trx.create(api_key_role_entity_1.ApiKeyRoleEntity, {
149
+ api_key_id: apiKeyUuid,
150
+ role_id,
151
+ ...(actorId ? { created_by: actorId } : {}),
152
+ })));
153
+ });
154
+ return [...wanted];
105
155
  }
106
156
  static intersectScopes(granted, principal) {
107
157
  const wildcard = String(api_key_default_enum_1.ApiKeyDefault.WILDCARD_SCOPE);
@@ -129,21 +179,38 @@ let ApiKeyService = ApiKeyService_1 = class ApiKeyService {
129
179
  delete apiKey.key_encrypted;
130
180
  return Object.assign(apiKey, {
131
181
  scopes: await this.grantedScopeRecords(apiKeyUuid),
182
+ roles: await this.grantedRoleRecords(apiKeyUuid),
132
183
  ...(encrypted ? { key: this.encryptionService.decrypt(encrypted) } : {}),
133
184
  });
134
185
  }
135
186
  async hasScope(apiKey, scope) {
136
187
  return ApiKeyService_1.grants(await this.effectiveScopes(apiKey), scope);
137
188
  }
138
- validateAccess(scopeIdentifier) {
189
+ validateAccess(scopeIdentifier, roleIdentifier) {
190
+ const granted = this.contextGrant();
191
+ if (!ApiKeyService_1.grants(granted.scopes, scopeIdentifier))
192
+ throw new access_exception_1.AccessException('This feature is not enabled for this Api key');
193
+ if (roleIdentifier && !granted.roles.includes(roleIdentifier))
194
+ throw new access_exception_1.AccessException(`This Api key requires at least the "${roleIdentifier}" role.`);
195
+ return { tenant: this.contextTenant(granted) };
196
+ }
197
+ validatePermission(...permissions) {
198
+ const granted = this.contextGrant();
199
+ const missing = permissions.find((permission) => !granted.permissions.includes(permission));
200
+ if (missing)
201
+ throw new access_exception_1.AccessException(`This Api key requires the "${missing}" permission.`);
202
+ return { tenant: this.contextTenant(granted) };
203
+ }
204
+ contextGrant() {
139
205
  const granted = api_key_context_1.ApiKeyContext.scopes();
140
206
  if (!granted)
141
207
  throw new common_1.UnauthorizedException('Authentication required: no valid API key on this request.');
142
- if (!ApiKeyService_1.grants(granted.scopes, scopeIdentifier))
143
- throw new access_exception_1.AccessException('This feature is not enabled for this Api key');
208
+ return granted;
209
+ }
210
+ contextTenant(granted) {
144
211
  if (!granted.tenant)
145
212
  throw new access_exception_1.AccessException('This Api key is not bound to an organization.');
146
- return { tenant: granted.tenant };
213
+ return granted.tenant;
147
214
  }
148
215
  async revokeApiKey(apiKeyUuid, actorId) {
149
216
  const apiKey = await this.apiKeyRepository.findOne({
@@ -174,6 +241,7 @@ let ApiKeyService = ApiKeyService_1 = class ApiKeyService {
174
241
  await this.dataSource.transaction(async (trx) => {
175
242
  await trx.update(api_key_entity_1.ApiKeyEntity, { id: apiKeyUuid }, { is_active: false, revoked_at: new Date(), updated_by: actorId });
176
243
  await trx.softDelete(api_scope_entity_1.ApiScopeEntity, { api_key_id: apiKeyUuid });
244
+ await trx.softDelete(api_key_role_entity_1.ApiKeyRoleEntity, { api_key_id: apiKeyUuid });
177
245
  await trx.softDelete(api_key_entity_1.ApiKeyEntity, { id: apiKeyUuid });
178
246
  });
179
247
  return { id: apiKeyUuid, deleted: true, deleted_by: actorId };
@@ -190,6 +258,15 @@ let ApiKeyService = ApiKeyService_1 = class ApiKeyService {
190
258
  .map((apiScope) => apiScope.scope)
191
259
  .filter((scope) => !!scope);
192
260
  }
261
+ async grantedRoleRecords(apiKeyUuid) {
262
+ const grants = await this.dataSource.getRepository(api_key_role_entity_1.ApiKeyRoleEntity).find({
263
+ where: { api_key_id: apiKeyUuid },
264
+ relations: { role: true },
265
+ });
266
+ return grants
267
+ .map((grant) => grant.role)
268
+ .filter((role) => !!role);
269
+ }
193
270
  async touchLastUsed(apiKey) {
194
271
  await this.apiKeyRepository.update({ id: apiKey.id }, { last_used_at: new Date() });
195
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.key.service.js","sourceRoot":"","sources":["../../../src/auth/services/api.key.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.key.service.js","sourceRoot":"","sources":["../../../src/auth/services/api.key.service.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { ScopeService } from './scope.service';
5
5
  import { TokenService } from './token.service';
6
6
  import { AuthenticatedAccess, AuthTokenPair, IssueTokensUser, TokenIssueContext } from '../types/auth.types';
7
7
  import { AuthConfig } from '../utilities/auth.config';
8
+ import { EffectiveAccess } from '../types/rbac.types';
9
+ import { GrantAuthority } from '../utilities/grant.authority';
8
10
  export declare class AuthService {
9
11
  private readonly tokenService;
10
12
  private readonly dataSource;
@@ -14,12 +16,15 @@ export declare class AuthService {
14
16
  validateRole(roleIdentifier?: string): Promise<AuthenticatedAccess>;
15
17
  validateIdentity(): Promise<AuthenticatedAccess>;
16
18
  private resolveAccess;
19
+ validatePermission(...permissions: string[]): Promise<AuthenticatedAccess>;
20
+ validateGrantAuthority(): Promise<AuthenticatedAccess & {
21
+ authority: GrantAuthority;
22
+ }>;
23
+ grantAuthorityOf(user: UserEntity): Promise<GrantAuthority>;
24
+ effectiveAccess(user: UserEntity): Promise<EffectiveAccess>;
25
+ private sessionUser;
26
+ private effectiveRoles;
17
27
  tenantRoles(userId: string, tenantId: string | null | undefined): Promise<SystemRoleEntity[]>;
18
- private satisfiesRole;
19
- private holdsGlobalAdmin;
20
- private tierOf;
21
- private moduleOf;
22
- private rankOf;
23
28
  private impersonationYieldsRole;
24
29
  assertTenantLogin(user: UserEntity): void;
25
30
  validateAccess(scopeIdentifier: string, roleIdentifier?: string): Promise<AuthenticatedAccess>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/auth/services/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMlE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,qBACa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU;IAiB/B,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAcnE,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAIxC,aAAa;IA4BrB,WAAW,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA+B9B,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,uBAAuB;IAQ/B,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAqBnC,cAAc,CAClB,eAAe,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IA6BzB,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;IA6BtB,OAAO,CAAC,sBAAsB;IAQxB,WAAW,CACf,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC;IAenB,gBAAgB,CACpB,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,UAAU,SAA2C,GACpD,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC;IAWhD,OAAO,CACX,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC;YAwBX,eAAe;IAsBvB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAatE,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgBxD"}
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/auth/services/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D,qBACa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU;IAiB/B,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAcnE,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAIxC,aAAa;IA2BrB,kBAAkB,CACtB,GAAG,WAAW,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,mBAAmB,CAAC;IA8BzB,sBAAsB,IAAI,OAAO,CACrC,mBAAmB,GAAG;QAAE,SAAS,EAAE,cAAc,CAAA;KAAE,CACpD;IAWK,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAc3D,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;IAYjE,OAAO,CAAC,WAAW;YAUL,cAAc;IAYtB,WAAW,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqB9B,OAAO,CAAC,uBAAuB;IAQ/B,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAqBnC,cAAc,CAClB,eAAe,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAyBzB,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;IA6BtB,OAAO,CAAC,sBAAsB;IAQxB,WAAW,CACf,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC;IAenB,gBAAgB,CACpB,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,UAAU,SAA2C,GACpD,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC;IAWhD,OAAO,CACX,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC;YAwBX,eAAe;IAsBvB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAatE,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAexD"}