@carlonicora/nestjs-neo4jsonapi 6.6.1 → 6.7.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 (289) hide show
  1. package/dist/agents/operator/controllers/operator.controller.d.ts.map +1 -1
  2. package/dist/agents/operator/controllers/operator.controller.js +3 -0
  3. package/dist/agents/operator/controllers/operator.controller.js.map +1 -1
  4. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  5. package/dist/bootstrap/app.module.factory.js +9 -0
  6. package/dist/bootstrap/app.module.factory.js.map +1 -1
  7. package/dist/bootstrap/bootstrap.options.d.ts +19 -0
  8. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  9. package/dist/common/constants/core-module.ids.d.ts +39 -0
  10. package/dist/common/constants/core-module.ids.d.ts.map +1 -0
  11. package/dist/common/constants/core-module.ids.js +41 -0
  12. package/dist/common/constants/core-module.ids.js.map +1 -0
  13. package/dist/common/decorators/index.d.ts +1 -0
  14. package/dist/common/decorators/index.d.ts.map +1 -1
  15. package/dist/common/decorators/index.js +1 -0
  16. package/dist/common/decorators/index.js.map +1 -1
  17. package/dist/common/decorators/module.decorator.d.ts +19 -0
  18. package/dist/common/decorators/module.decorator.d.ts.map +1 -1
  19. package/dist/common/decorators/module.decorator.js +8 -2
  20. package/dist/common/decorators/module.decorator.js.map +1 -1
  21. package/dist/common/decorators/token-scopes.decorator.d.ts +14 -0
  22. package/dist/common/decorators/token-scopes.decorator.d.ts.map +1 -0
  23. package/dist/common/decorators/token-scopes.decorator.js +18 -0
  24. package/dist/common/decorators/token-scopes.decorator.js.map +1 -0
  25. package/dist/common/guards/index.d.ts +1 -0
  26. package/dist/common/guards/index.d.ts.map +1 -1
  27. package/dist/common/guards/index.js +1 -0
  28. package/dist/common/guards/index.js.map +1 -1
  29. package/dist/common/guards/jwt.auth.admin.guard.d.ts +3 -1
  30. package/dist/common/guards/jwt.auth.admin.guard.d.ts.map +1 -1
  31. package/dist/common/guards/jwt.auth.admin.guard.js +28 -7
  32. package/dist/common/guards/jwt.auth.admin.guard.js.map +1 -1
  33. package/dist/common/guards/jwt.auth.any-scope.guard.d.ts +10 -3
  34. package/dist/common/guards/jwt.auth.any-scope.guard.d.ts.map +1 -1
  35. package/dist/common/guards/jwt.auth.any-scope.guard.js +17 -4
  36. package/dist/common/guards/jwt.auth.any-scope.guard.js.map +1 -1
  37. package/dist/common/guards/jwt.auth.guard.d.ts +3 -1
  38. package/dist/common/guards/jwt.auth.guard.d.ts.map +1 -1
  39. package/dist/common/guards/jwt.auth.guard.js +30 -8
  40. package/dist/common/guards/jwt.auth.guard.js.map +1 -1
  41. package/dist/common/guards/jwt.auth.optional.guard.d.ts +3 -1
  42. package/dist/common/guards/jwt.auth.optional.guard.d.ts.map +1 -1
  43. package/dist/common/guards/jwt.auth.optional.guard.js +32 -8
  44. package/dist/common/guards/jwt.auth.optional.guard.js.map +1 -1
  45. package/dist/common/guards/session.token.d.ts +50 -0
  46. package/dist/common/guards/session.token.d.ts.map +1 -0
  47. package/dist/common/guards/session.token.js +71 -0
  48. package/dist/common/guards/session.token.js.map +1 -0
  49. package/dist/common/index.d.ts +1 -0
  50. package/dist/common/index.d.ts.map +1 -1
  51. package/dist/common/index.js +1 -0
  52. package/dist/common/index.js.map +1 -1
  53. package/dist/common/strategies/jwt.strategy.d.ts +8 -0
  54. package/dist/common/strategies/jwt.strategy.d.ts.map +1 -1
  55. package/dist/common/strategies/jwt.strategy.js +8 -0
  56. package/dist/common/strategies/jwt.strategy.js.map +1 -1
  57. package/dist/core/websocket/gateways/event.gateway.d.ts.map +1 -1
  58. package/dist/core/websocket/gateways/event.gateway.js +12 -1
  59. package/dist/core/websocket/gateways/event.gateway.js.map +1 -1
  60. package/dist/core/websocket/guards/ws.jwt.auth.guard.d.ts.map +1 -1
  61. package/dist/core/websocket/guards/ws.jwt.auth.guard.js +4 -0
  62. package/dist/core/websocket/guards/ws.jwt.auth.guard.js.map +1 -1
  63. package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts.map +1 -1
  64. package/dist/foundations/ai-connection/controllers/ai-connection.controller.js +4 -0
  65. package/dist/foundations/ai-connection/controllers/ai-connection.controller.js.map +1 -1
  66. package/dist/foundations/analytics/controllers/analytics.admin.controller.d.ts.map +1 -1
  67. package/dist/foundations/analytics/controllers/analytics.admin.controller.js +3 -0
  68. package/dist/foundations/analytics/controllers/analytics.admin.controller.js.map +1 -1
  69. package/dist/foundations/analytics/controllers/analytics.controller.d.ts.map +1 -1
  70. package/dist/foundations/analytics/controllers/analytics.controller.js +3 -0
  71. package/dist/foundations/analytics/controllers/analytics.controller.js.map +1 -1
  72. package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
  73. package/dist/foundations/assistant/controllers/assistant.controller.js +3 -0
  74. package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
  75. package/dist/foundations/assistant-action/controllers/assistant-action.controller.d.ts.map +1 -1
  76. package/dist/foundations/assistant-action/controllers/assistant-action.controller.js +3 -0
  77. package/dist/foundations/assistant-action/controllers/assistant-action.controller.js.map +1 -1
  78. package/dist/foundations/assistant-message/controllers/assistant-message.controller.d.ts.map +1 -1
  79. package/dist/foundations/assistant-message/controllers/assistant-message.controller.js +3 -0
  80. package/dist/foundations/assistant-message/controllers/assistant-message.controller.js.map +1 -1
  81. package/dist/foundations/audit/controllers/audit.controller.d.ts.map +1 -1
  82. package/dist/foundations/audit/controllers/audit.controller.js +3 -0
  83. package/dist/foundations/audit/controllers/audit.controller.js.map +1 -1
  84. package/dist/foundations/auth/controllers/auth.company.controller.d.ts.map +1 -1
  85. package/dist/foundations/auth/controllers/auth.company.controller.js +4 -0
  86. package/dist/foundations/auth/controllers/auth.company.controller.js.map +1 -1
  87. package/dist/foundations/auth/controllers/auth.controller.d.ts.map +1 -1
  88. package/dist/foundations/auth/controllers/auth.controller.js +3 -0
  89. package/dist/foundations/auth/controllers/auth.controller.js.map +1 -1
  90. package/dist/foundations/auth/repositories/auth.repository.d.ts.map +1 -1
  91. package/dist/foundations/auth/repositories/auth.repository.js +5 -0
  92. package/dist/foundations/auth/repositories/auth.repository.js.map +1 -1
  93. package/dist/foundations/chunk/controllers/chunk.controller.d.ts.map +1 -1
  94. package/dist/foundations/chunk/controllers/chunk.controller.js +10 -0
  95. package/dist/foundations/chunk/controllers/chunk.controller.js.map +1 -1
  96. package/dist/foundations/chunk/repositories/chunk.repository.d.ts +13 -0
  97. package/dist/foundations/chunk/repositories/chunk.repository.d.ts.map +1 -1
  98. package/dist/foundations/chunk/repositories/chunk.repository.js +27 -1
  99. package/dist/foundations/chunk/repositories/chunk.repository.js.map +1 -1
  100. package/dist/foundations/chunker/services/chunker.service.d.ts +48 -7
  101. package/dist/foundations/chunker/services/chunker.service.d.ts.map +1 -1
  102. package/dist/foundations/chunker/services/chunker.service.js +119 -61
  103. package/dist/foundations/chunker/services/chunker.service.js.map +1 -1
  104. package/dist/foundations/chunker/services/types/docx.service.d.ts +2 -0
  105. package/dist/foundations/chunker/services/types/docx.service.d.ts.map +1 -1
  106. package/dist/foundations/chunker/services/types/docx.service.js +10 -36
  107. package/dist/foundations/chunker/services/types/docx.service.js.map +1 -1
  108. package/dist/foundations/chunker/services/types/pptx.service.d.ts.map +1 -1
  109. package/dist/foundations/chunker/services/types/pptx.service.js +5 -0
  110. package/dist/foundations/chunker/services/types/pptx.service.js.map +1 -1
  111. package/dist/foundations/chunker/services/types/xlsx.service.d.ts.map +1 -1
  112. package/dist/foundations/chunker/services/types/xlsx.service.js +8 -1
  113. package/dist/foundations/chunker/services/types/xlsx.service.js.map +1 -1
  114. package/dist/foundations/chunker/utils/zip-limits.d.ts +37 -0
  115. package/dist/foundations/chunker/utils/zip-limits.d.ts.map +1 -0
  116. package/dist/foundations/chunker/utils/zip-limits.js +113 -0
  117. package/dist/foundations/chunker/utils/zip-limits.js.map +1 -0
  118. package/dist/foundations/company/controllers/company.controller.d.ts.map +1 -1
  119. package/dist/foundations/company/controllers/company.controller.js +3 -0
  120. package/dist/foundations/company/controllers/company.controller.js.map +1 -1
  121. package/dist/foundations/content/controllers/content.controller.d.ts.map +1 -1
  122. package/dist/foundations/content/controllers/content.controller.js +3 -0
  123. package/dist/foundations/content/controllers/content.controller.js.map +1 -1
  124. package/dist/foundations/email-automation/controllers/email-automation-step.controller.d.ts.map +1 -1
  125. package/dist/foundations/email-automation/controllers/email-automation-step.controller.js +3 -0
  126. package/dist/foundations/email-automation/controllers/email-automation-step.controller.js.map +1 -1
  127. package/dist/foundations/email-automation/controllers/email-automation.controller.d.ts.map +1 -1
  128. package/dist/foundations/email-automation/controllers/email-automation.controller.js +3 -0
  129. package/dist/foundations/email-automation/controllers/email-automation.controller.js.map +1 -1
  130. package/dist/foundations/feature/controllers/feature.controller.d.ts.map +1 -1
  131. package/dist/foundations/feature/controllers/feature.controller.js +3 -0
  132. package/dist/foundations/feature/controllers/feature.controller.js.map +1 -1
  133. package/dist/foundations/handbook/controllers/handbook-thread.controller.d.ts.map +1 -1
  134. package/dist/foundations/handbook/controllers/handbook-thread.controller.js +3 -0
  135. package/dist/foundations/handbook/controllers/handbook-thread.controller.js.map +1 -1
  136. package/dist/foundations/handbook/controllers/handbook.controller.d.ts.map +1 -1
  137. package/dist/foundations/handbook/controllers/handbook.controller.js +3 -0
  138. package/dist/foundations/handbook/controllers/handbook.controller.js.map +1 -1
  139. package/dist/foundations/how-to/controllers/how-to.controller.d.ts.map +1 -1
  140. package/dist/foundations/how-to/controllers/how-to.controller.js +3 -0
  141. package/dist/foundations/how-to/controllers/how-to.controller.js.map +1 -1
  142. package/dist/foundations/keyconcept/controllers/keyconcept.controller.d.ts.map +1 -1
  143. package/dist/foundations/keyconcept/controllers/keyconcept.controller.js +3 -0
  144. package/dist/foundations/keyconcept/controllers/keyconcept.controller.js.map +1 -1
  145. package/dist/foundations/notification/controllers/notification.controller.d.ts.map +1 -1
  146. package/dist/foundations/notification/controllers/notification.controller.js +4 -0
  147. package/dist/foundations/notification/controllers/notification.controller.js.map +1 -1
  148. package/dist/foundations/oauth/constants/oauth.errors.d.ts +5 -0
  149. package/dist/foundations/oauth/constants/oauth.errors.d.ts.map +1 -1
  150. package/dist/foundations/oauth/constants/oauth.errors.js +6 -0
  151. package/dist/foundations/oauth/constants/oauth.errors.js.map +1 -1
  152. package/dist/foundations/oauth/controllers/oauth.authorize.controller.d.ts.map +1 -1
  153. package/dist/foundations/oauth/controllers/oauth.authorize.controller.js +4 -0
  154. package/dist/foundations/oauth/controllers/oauth.authorize.controller.js.map +1 -1
  155. package/dist/foundations/oauth/controllers/oauth.management.controller.d.ts.map +1 -1
  156. package/dist/foundations/oauth/controllers/oauth.management.controller.js +3 -0
  157. package/dist/foundations/oauth/controllers/oauth.management.controller.js.map +1 -1
  158. package/dist/foundations/oauth/controllers/oauth.registration.controller.d.ts.map +1 -1
  159. package/dist/foundations/oauth/controllers/oauth.registration.controller.js +10 -1
  160. package/dist/foundations/oauth/controllers/oauth.registration.controller.js.map +1 -1
  161. package/dist/foundations/oauth/queries/revoke-user-oauth-tokens.query.d.ts +13 -0
  162. package/dist/foundations/oauth/queries/revoke-user-oauth-tokens.query.d.ts.map +1 -0
  163. package/dist/foundations/oauth/queries/revoke-user-oauth-tokens.query.js +29 -0
  164. package/dist/foundations/oauth/queries/revoke-user-oauth-tokens.query.js.map +1 -0
  165. package/dist/foundations/oauth/repositories/oauth.repository.d.ts +22 -0
  166. package/dist/foundations/oauth/repositories/oauth.repository.d.ts.map +1 -1
  167. package/dist/foundations/oauth/repositories/oauth.repository.js +43 -12
  168. package/dist/foundations/oauth/repositories/oauth.repository.js.map +1 -1
  169. package/dist/foundations/oauth/services/oauth.service.d.ts.map +1 -1
  170. package/dist/foundations/oauth/services/oauth.service.js +11 -2
  171. package/dist/foundations/oauth/services/oauth.service.js.map +1 -1
  172. package/dist/foundations/oauth/services/oauth.token.service.d.ts +9 -0
  173. package/dist/foundations/oauth/services/oauth.token.service.d.ts.map +1 -1
  174. package/dist/foundations/oauth/services/oauth.token.service.js +22 -0
  175. package/dist/foundations/oauth/services/oauth.token.service.js.map +1 -1
  176. package/dist/foundations/push/controllers/push.controller.d.ts.map +1 -1
  177. package/dist/foundations/push/controllers/push.controller.js +3 -0
  178. package/dist/foundations/push/controllers/push.controller.js.map +1 -1
  179. package/dist/foundations/rbac/controllers/rbac-dev.controller.d.ts.map +1 -1
  180. package/dist/foundations/rbac/controllers/rbac-dev.controller.js +3 -0
  181. package/dist/foundations/rbac/controllers/rbac-dev.controller.js.map +1 -1
  182. package/dist/foundations/rbac/controllers/rbac-module-paths.controller.d.ts.map +1 -1
  183. package/dist/foundations/rbac/controllers/rbac-module-paths.controller.js +3 -0
  184. package/dist/foundations/rbac/controllers/rbac-module-paths.controller.js.map +1 -1
  185. package/dist/foundations/rbac/controllers/rbac.controller.d.ts.map +1 -1
  186. package/dist/foundations/rbac/controllers/rbac.controller.js +3 -0
  187. package/dist/foundations/rbac/controllers/rbac.controller.js.map +1 -1
  188. package/dist/foundations/rbac/index.d.ts +5 -0
  189. package/dist/foundations/rbac/index.d.ts.map +1 -1
  190. package/dist/foundations/rbac/index.js +12 -1
  191. package/dist/foundations/rbac/index.js.map +1 -1
  192. package/dist/foundations/rbac/rbac-permission.module.d.ts +4 -0
  193. package/dist/foundations/rbac/rbac-permission.module.d.ts.map +1 -1
  194. package/dist/foundations/rbac/rbac-permission.module.js +18 -2
  195. package/dist/foundations/rbac/rbac-permission.module.js.map +1 -1
  196. package/dist/foundations/rbac/rbac.tokens.d.ts +8 -0
  197. package/dist/foundations/rbac/rbac.tokens.d.ts.map +1 -1
  198. package/dist/foundations/rbac/rbac.tokens.js +9 -1
  199. package/dist/foundations/rbac/rbac.tokens.js.map +1 -1
  200. package/dist/foundations/rbac/repositories/rbac-permission.repository.d.ts +29 -1
  201. package/dist/foundations/rbac/repositories/rbac-permission.repository.d.ts.map +1 -1
  202. package/dist/foundations/rbac/repositories/rbac-permission.repository.js +73 -1
  203. package/dist/foundations/rbac/repositories/rbac-permission.repository.js.map +1 -1
  204. package/dist/foundations/rbac/services/module-permission-audit.service.d.ts +34 -0
  205. package/dist/foundations/rbac/services/module-permission-audit.service.d.ts.map +1 -0
  206. package/dist/foundations/rbac/services/module-permission-audit.service.js +137 -0
  207. package/dist/foundations/rbac/services/module-permission-audit.service.js.map +1 -0
  208. package/dist/foundations/rbac/services/module-permission.gate.d.ts +51 -0
  209. package/dist/foundations/rbac/services/module-permission.gate.d.ts.map +1 -0
  210. package/dist/foundations/rbac/services/module-permission.gate.js +108 -0
  211. package/dist/foundations/rbac/services/module-permission.gate.js.map +1 -0
  212. package/dist/foundations/rbac/services/module-permission.service.d.ts +34 -0
  213. package/dist/foundations/rbac/services/module-permission.service.d.ts.map +1 -0
  214. package/dist/foundations/rbac/services/module-permission.service.js +64 -0
  215. package/dist/foundations/rbac/services/module-permission.service.js.map +1 -0
  216. package/dist/foundations/rbac/services/rbac-permission.service.d.ts +10 -1
  217. package/dist/foundations/rbac/services/rbac-permission.service.d.ts.map +1 -1
  218. package/dist/foundations/rbac/services/rbac-permission.service.js +32 -2
  219. package/dist/foundations/rbac/services/rbac-permission.service.js.map +1 -1
  220. package/dist/foundations/rbac/services/rbac-reconciler.service.d.ts +11 -2
  221. package/dist/foundations/rbac/services/rbac-reconciler.service.d.ts.map +1 -1
  222. package/dist/foundations/rbac/services/rbac-reconciler.service.js +19 -6
  223. package/dist/foundations/rbac/services/rbac-reconciler.service.js.map +1 -1
  224. package/dist/foundations/referral/controllers/referral.controller.d.ts.map +1 -1
  225. package/dist/foundations/referral/controllers/referral.controller.js +3 -0
  226. package/dist/foundations/referral/controllers/referral.controller.js.map +1 -1
  227. package/dist/foundations/role/controllers/role.controller.d.ts.map +1 -1
  228. package/dist/foundations/role/controllers/role.controller.js +3 -0
  229. package/dist/foundations/role/controllers/role.controller.js.map +1 -1
  230. package/dist/foundations/role/controllers/role.user.controller.d.ts.map +1 -1
  231. package/dist/foundations/role/controllers/role.user.controller.js +3 -0
  232. package/dist/foundations/role/controllers/role.user.controller.js.map +1 -1
  233. package/dist/foundations/s3/controllers/s3.controller.d.ts +13 -0
  234. package/dist/foundations/s3/controllers/s3.controller.d.ts.map +1 -1
  235. package/dist/foundations/s3/controllers/s3.controller.js +61 -7
  236. package/dist/foundations/s3/controllers/s3.controller.js.map +1 -1
  237. package/dist/foundations/stripe/controllers/billing.controller.d.ts.map +1 -1
  238. package/dist/foundations/stripe/controllers/billing.controller.js +4 -0
  239. package/dist/foundations/stripe/controllers/billing.controller.js.map +1 -1
  240. package/dist/foundations/stripe-customer/controllers/stripe-customer.controller.d.ts.map +1 -1
  241. package/dist/foundations/stripe-customer/controllers/stripe-customer.controller.js +3 -0
  242. package/dist/foundations/stripe-customer/controllers/stripe-customer.controller.js.map +1 -1
  243. package/dist/foundations/stripe-invoice/controllers/stripe-invoice.controller.d.ts.map +1 -1
  244. package/dist/foundations/stripe-invoice/controllers/stripe-invoice.controller.js +3 -0
  245. package/dist/foundations/stripe-invoice/controllers/stripe-invoice.controller.js.map +1 -1
  246. package/dist/foundations/stripe-price/controllers/stripe-price.controller.d.ts.map +1 -1
  247. package/dist/foundations/stripe-price/controllers/stripe-price.controller.js +3 -0
  248. package/dist/foundations/stripe-price/controllers/stripe-price.controller.js.map +1 -1
  249. package/dist/foundations/stripe-product/controllers/stripe-product.controller.d.ts.map +1 -1
  250. package/dist/foundations/stripe-product/controllers/stripe-product.controller.js +3 -0
  251. package/dist/foundations/stripe-product/controllers/stripe-product.controller.js.map +1 -1
  252. package/dist/foundations/stripe-promotion-code/controllers/stripe-promotion-code.controller.d.ts.map +1 -1
  253. package/dist/foundations/stripe-promotion-code/controllers/stripe-promotion-code.controller.js +4 -0
  254. package/dist/foundations/stripe-promotion-code/controllers/stripe-promotion-code.controller.js.map +1 -1
  255. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts.map +1 -1
  256. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js +3 -0
  257. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js.map +1 -1
  258. package/dist/foundations/stripe-usage/controllers/stripe-usage.controller.d.ts.map +1 -1
  259. package/dist/foundations/stripe-usage/controllers/stripe-usage.controller.js +3 -0
  260. package/dist/foundations/stripe-usage/controllers/stripe-usage.controller.js.map +1 -1
  261. package/dist/foundations/tokenusage/controllers/tokenusage.admin.controller.d.ts.map +1 -1
  262. package/dist/foundations/tokenusage/controllers/tokenusage.admin.controller.js +3 -0
  263. package/dist/foundations/tokenusage/controllers/tokenusage.admin.controller.js.map +1 -1
  264. package/dist/foundations/tokenusage/controllers/tokenusage.report.controller.d.ts.map +1 -1
  265. package/dist/foundations/tokenusage/controllers/tokenusage.report.controller.js +3 -0
  266. package/dist/foundations/tokenusage/controllers/tokenusage.report.controller.js.map +1 -1
  267. package/dist/foundations/two-factor/controllers/passkey.controller.d.ts.map +1 -1
  268. package/dist/foundations/two-factor/controllers/passkey.controller.js +7 -0
  269. package/dist/foundations/two-factor/controllers/passkey.controller.js.map +1 -1
  270. package/dist/foundations/two-factor/controllers/totp.controller.d.ts.map +1 -1
  271. package/dist/foundations/two-factor/controllers/totp.controller.js +6 -0
  272. package/dist/foundations/two-factor/controllers/totp.controller.js.map +1 -1
  273. package/dist/foundations/two-factor/controllers/two-factor.controller.d.ts.map +1 -1
  274. package/dist/foundations/two-factor/controllers/two-factor.controller.js +7 -0
  275. package/dist/foundations/two-factor/controllers/two-factor.controller.js.map +1 -1
  276. package/dist/foundations/user/controllers/user.controller.d.ts.map +1 -1
  277. package/dist/foundations/user/controllers/user.controller.js +3 -0
  278. package/dist/foundations/user/controllers/user.controller.js.map +1 -1
  279. package/dist/foundations/user/repositories/user.repository.d.ts +18 -0
  280. package/dist/foundations/user/repositories/user.repository.d.ts.map +1 -1
  281. package/dist/foundations/user/repositories/user.repository.js +44 -1
  282. package/dist/foundations/user/repositories/user.repository.js.map +1 -1
  283. package/dist/foundations/waitlist/controllers/waitlist.controller.d.ts.map +1 -1
  284. package/dist/foundations/waitlist/controllers/waitlist.controller.js +3 -0
  285. package/dist/foundations/waitlist/controllers/waitlist.controller.js.map +1 -1
  286. package/dist/mcp/controllers/mcp.controller.d.ts.map +1 -1
  287. package/dist/mcp/controllers/mcp.controller.js +7 -1
  288. package/dist/mcp/controllers/mcp.controller.js.map +1 -1
  289. package/package.json +1 -1
@@ -11,21 +11,30 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AnyScopeAuthGuard = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
14
15
  const passport_1 = require("@nestjs/passport");
15
16
  const nestjs_cls_1 = require("nestjs-cls");
17
+ const token_scopes_decorator_1 = require("../decorators/token-scopes.decorator");
18
+ const session_token_1 = require("./session.token");
16
19
  /**
17
- * Admits BOTH a full session JWT and a scoped selection JWT (e.g. the
18
- * short-lived "company-selection" token issued at login).
20
+ * Admits a full session JWT, or a selection JWT whose scope the route lists with
21
+ * `@AllowedTokenScopes(...)` (handler or class). Without that decorator only a full
22
+ * session passes.
19
23
  *
20
24
  * The company-selection routes are legitimately reachable by either: a user
21
25
  * who belongs to more than one company arrives from the login screen holding
22
26
  * only a selection token, while a user switching company from inside the app
23
27
  * arrives holding a full token.
28
+ *
29
+ * Always refused: a pending-2FA token (it would otherwise mint a full session through
30
+ * POST /auth/company-selection with a password only), a portal token, and a selection
31
+ * token of a scope the route does not list.
24
32
  */
25
33
  let AnyScopeAuthGuard = class AnyScopeAuthGuard extends (0, passport_1.AuthGuard)("jwt") {
26
- constructor(cls) {
34
+ constructor(cls, reflector) {
27
35
  super();
28
36
  this.cls = cls;
37
+ this.reflector = reflector;
29
38
  }
30
39
  async canActivate(context) {
31
40
  const request = context.switchToHttp().getRequest();
@@ -48,6 +57,9 @@ let AnyScopeAuthGuard = class AnyScopeAuthGuard extends (0, passport_1.AuthGuard
48
57
  throw err;
49
58
  throw new common_1.HttpException("Unauthorised", 401);
50
59
  }
60
+ const allowedScopes = this.reflector.getAllAndOverride(token_scopes_decorator_1.TOKEN_SCOPES_KEY, [context.getHandler(), context.getClass()]) ?? [];
61
+ if (!(0, session_token_1.isAcceptedScopedPayload)(user, allowedScopes))
62
+ throw new common_1.HttpException("Unauthorised", 401);
51
63
  this.cls.set("userId", user.userId);
52
64
  this.cls.set("token", token.startsWith("Bearer ") ? token.slice(7) : token);
53
65
  return user;
@@ -56,6 +68,7 @@ let AnyScopeAuthGuard = class AnyScopeAuthGuard extends (0, passport_1.AuthGuard
56
68
  exports.AnyScopeAuthGuard = AnyScopeAuthGuard;
57
69
  exports.AnyScopeAuthGuard = AnyScopeAuthGuard = __decorate([
58
70
  (0, common_1.Injectable)(),
59
- __metadata("design:paramtypes", [nestjs_cls_1.ClsService])
71
+ __metadata("design:paramtypes", [nestjs_cls_1.ClsService,
72
+ core_1.Reflector])
60
73
  ], AnyScopeAuthGuard);
61
74
  //# sourceMappingURL=jwt.auth.any-scope.guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.auth.any-scope.guard.js","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.any-scope.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA6E;AAC7E,+CAA6C;AAC7C,2CAAwC;AAExC;;;;;;;;GAQG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IACrD,YAA6B,GAAe;QAC1C,KAAK,EAAE,CAAC;QADmB,QAAG,GAAH,GAAG,CAAY;IAE5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,4EAA4E;QAC5E,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa;YAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEjF,OAAO,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAY,CAAC;IACvD,CAAC;IAED,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAE5C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEzD,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,EAAE,OAAO,KAAK,aAAa;gBAAE,MAAM,IAAI,sBAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACnF,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAC;YACnB,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAhCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEuB,uBAAU;GADjC,iBAAiB,CAgC7B"}
1
+ {"version":3,"file":"jwt.auth.any-scope.guard.js","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.any-scope.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA6E;AAC7E,uCAAyC;AACzC,+CAA6C;AAC7C,2CAAwC;AACxC,iFAAwE;AACxE,mDAA0D;AAE1D;;;;;;;;;;;;;GAaG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IACrD,YACmB,GAAe,EACf,SAAoB;QAErC,KAAK,EAAE,CAAC;QAHS,QAAG,GAAH,GAAG,CAAY;QACf,cAAS,GAAT,SAAS,CAAW;IAGvC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,4EAA4E;QAC5E,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa;YAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEjF,OAAO,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAY,CAAC;IACvD,CAAC;IAED,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAE5C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEzD,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,EAAE,OAAO,KAAK,aAAa;gBAAE,MAAM,IAAI,sBAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACnF,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAC;YACnB,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,aAAa,GACjB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAW,yCAAgB,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjH,IAAI,CAAC,IAAA,uCAAuB,EAAC,IAAI,EAAE,aAAa,CAAC;YAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEhG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAxCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGa,uBAAU;QACJ,gBAAS;GAH5B,iBAAiB,CAwC7B"}
@@ -2,6 +2,7 @@ import { ExecutionContext } from "@nestjs/common";
2
2
  import { Reflector } from "@nestjs/core";
3
3
  import { ClsService } from "nestjs-cls";
4
4
  import { Neo4jService } from "../../core/neo4j/services/neo4j.service";
5
+ import { ModulePermissionGate } from "../../foundations/rbac/services/module-permission.gate";
5
6
  import { AuthContextHookInterface, SystemRolesInterface } from "../tokens";
6
7
  declare const JwtAuthGuard_base: import("@nestjs/passport", { with: { "resolution-mode": "import" } }).Type<import("@nestjs/passport", { with: { "resolution-mode": "import" } }).IAuthGuard>;
7
8
  export declare class JwtAuthGuard extends JwtAuthGuard_base {
@@ -10,7 +11,8 @@ export declare class JwtAuthGuard extends JwtAuthGuard_base {
10
11
  private readonly neo4j;
11
12
  private readonly systemRoles?;
12
13
  private readonly authContextHook?;
13
- constructor(cls: ClsService, reflector: Reflector, neo4j: Neo4jService, systemRoles?: SystemRolesInterface, authContextHook?: AuthContextHookInterface);
14
+ private readonly permissionGate?;
15
+ constructor(cls: ClsService, reflector: Reflector, neo4j: Neo4jService, systemRoles?: SystemRolesInterface, authContextHook?: AuthContextHookInterface, permissionGate?: ModulePermissionGate);
14
16
  canActivate(context: ExecutionContext): Promise<boolean>;
15
17
  handleRequest(err: any, user: any, info: any, context: ExecutionContext): any;
16
18
  private _validateRoles;
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.auth.guard.d.ts","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA+C,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAqB,wBAAwB,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAC;;AAE5G,qBACa,YAAa,SAAQ,iBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAItB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAThB,GAAG,EAAE,UAAU,EACxB,SAAS,EAAE,SAAS,EACX,KAAK,EAAE,YAAY,EAInB,WAAW,CAAC,EAAE,oBAAoB,EAGlC,eAAe,CAAC,EAAE,wBAAwB;IAKvD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAc9D,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB;IA2BvE,OAAO,CAAC,cAAc;CAQvB"}
1
+ {"version":3,"file":"jwt.auth.guard.d.ts","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA+C,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAqB,wBAAwB,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAC;;AAG5G,qBACa,YAAa,SAAQ,iBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAZf,GAAG,EAAE,UAAU,EACxB,SAAS,EAAE,SAAS,EACX,KAAK,EAAE,YAAY,EAGnB,WAAW,CAAC,EAAE,oBAAoB,EAGlC,eAAe,CAAC,EAAE,wBAAwB,EAI1C,cAAc,CAAC,EAAE,oBAAoB;IAKlD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB9D,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB;IAwCvE,OAAO,CAAC,cAAc;CAavB"}
@@ -18,15 +18,18 @@ const core_1 = require("@nestjs/core");
18
18
  const passport_1 = require("@nestjs/passport");
19
19
  const nestjs_cls_1 = require("nestjs-cls");
20
20
  const neo4j_service_1 = require("../../core/neo4j/services/neo4j.service");
21
+ const module_permission_gate_1 = require("../../foundations/rbac/services/module-permission.gate");
21
22
  const tokens_1 = require("../tokens");
23
+ const session_token_1 = require("./session.token");
22
24
  let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)("jwt") {
23
- constructor(cls, reflector, neo4j, systemRoles, authContextHook) {
25
+ constructor(cls, reflector, neo4j, systemRoles, authContextHook, permissionGate) {
24
26
  super();
25
27
  this.cls = cls;
26
28
  this.reflector = reflector;
27
29
  this.neo4j = neo4j;
28
30
  this.systemRoles = systemRoles;
29
31
  this.authContextHook = authContextHook;
32
+ this.permissionGate = permissionGate;
30
33
  }
31
34
  async canActivate(context) {
32
35
  const request = context.switchToHttp().getRequest();
@@ -36,6 +39,8 @@ let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)("jwt") {
36
39
  const isAuthenticated = (await super.canActivate(context));
37
40
  if (isAuthenticated && request.user && this.authContextHook)
38
41
  await this.authContextHook.onAuthenticated({ request, context });
42
+ if (isAuthenticated && request.user && this.permissionGate)
43
+ await this.permissionGate.assert({ request, context });
39
44
  return isAuthenticated;
40
45
  }
41
46
  handleRequest(err, user, info, context) {
@@ -52,17 +57,33 @@ let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)("jwt") {
52
57
  }
53
58
  throw new common_1.HttpException("Unauthorised", 401);
54
59
  }
55
- this._validateRoles(user, context);
56
- this.cls.set("userId", user.userId);
57
- this.cls.set("companyId", user.companyId ?? request.headers["x-companyid"]);
58
- this.cls.set("roles", user.roles);
60
+ // Only a full session passes: pending-2FA, selection and portal tokens are signed
61
+ // with the same secret and verify, but must never act as a session.
62
+ // Asserted on a local copy: narrowing `user` itself would change the return type
63
+ // away from IAuthGuard's generic `TUser`.
64
+ const session = user;
65
+ (0, session_token_1.assertSessionPayload)(session);
66
+ this._validateRoles(session, context);
67
+ const companyId = (0, session_token_1.resolveSessionCompanyId)({
68
+ payload: session,
69
+ headerCompanyId: request.headers["x-companyid"],
70
+ administratorRole: this.systemRoles?.Administrator,
71
+ });
72
+ this.cls.set("userId", session.userId);
73
+ this.cls.set("companyId", companyId);
74
+ this.cls.set("roles", session.roles);
59
75
  this.cls.set("language", request.headers["x-language"]);
60
76
  this.cls.set("token", token.startsWith("Bearer ") ? token.slice(7) : token);
61
77
  this.cls.set("ipAddress", request.ip);
62
78
  return user;
63
79
  }
64
80
  _validateRoles(user, context) {
65
- const requiredRoles = this.reflector.get("roles", context.getHandler()) ?? [];
81
+ // Handler AND class: a class-level @Roles was inert while only the handler was read.
82
+ // Copied, because pushing into the array returned by the reflector mutates the
83
+ // decorator metadata for every later request.
84
+ const requiredRoles = [
85
+ ...(this.reflector.getAllAndOverride("roles", [context.getHandler(), context.getClass()]) ?? []),
86
+ ];
66
87
  if (requiredRoles.length > 0) {
67
88
  const adminRole = this.systemRoles?.Administrator ?? "administrator";
68
89
  if (!requiredRoles.includes(adminRole))
@@ -76,12 +97,13 @@ exports.JwtAuthGuard = JwtAuthGuard;
76
97
  exports.JwtAuthGuard = JwtAuthGuard = __decorate([
77
98
  (0, common_1.Injectable)(),
78
99
  __param(3, (0, common_1.Optional)()),
79
- __param(3, (0, common_1.Optional)()),
80
100
  __param(3, (0, common_1.Inject)(tokens_1.SYSTEM_ROLES)),
81
101
  __param(4, (0, common_1.Optional)()),
82
102
  __param(4, (0, common_1.Inject)(tokens_1.AUTH_CONTEXT_HOOK)),
103
+ __param(5, (0, common_1.Optional)()),
104
+ __param(5, (0, common_1.Inject)(module_permission_gate_1.ModulePermissionGate)),
83
105
  __metadata("design:paramtypes", [nestjs_cls_1.ClsService,
84
106
  core_1.Reflector,
85
- neo4j_service_1.Neo4jService, Object, Object])
107
+ neo4j_service_1.Neo4jService, Object, Object, module_permission_gate_1.ModulePermissionGate])
86
108
  ], JwtAuthGuard);
87
109
  //# sourceMappingURL=jwt.auth.guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.auth.guard.js","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt.auth.guard.js","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.guard.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  import { ExecutionContext } from "@nestjs/common";
2
2
  import { Reflector } from "@nestjs/core";
3
3
  import { ClsService } from "nestjs-cls";
4
+ import { ModulePermissionGate } from "../../foundations/rbac/services/module-permission.gate";
4
5
  import { SystemRolesInterface } from "../tokens";
5
6
  declare const OptionalJwtAuthGuard_base: import("@nestjs/passport", { with: { "resolution-mode": "import" } }).Type<import("@nestjs/passport", { with: { "resolution-mode": "import" } }).IAuthGuard>;
6
7
  export declare class OptionalJwtAuthGuard extends OptionalJwtAuthGuard_base {
7
8
  private readonly cls;
8
9
  private reflector;
9
10
  private readonly systemRoles?;
10
- constructor(cls: ClsService, reflector: Reflector, systemRoles?: SystemRolesInterface);
11
+ private readonly permissionGate?;
12
+ constructor(cls: ClsService, reflector: Reflector, systemRoles?: SystemRolesInterface, permissionGate?: ModulePermissionGate);
11
13
  canActivate(context: ExecutionContext): Promise<boolean>;
12
14
  handleRequest(err: any, user: any, info: any, context: ExecutionContext): any;
13
15
  private _validateRoles;
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.auth.optional.guard.d.ts","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.optional.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA+C,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAC;;AAE/D,qBACa,oBAAqB,SAAQ,yBAAgB;IAEtD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAJZ,GAAG,EAAE,UAAU,EACxB,SAAS,EAAE,SAAS,EAGX,WAAW,CAAC,EAAE,oBAAoB;IAK/C,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAW9D,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB;IAyBvE,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"jwt.auth.optional.guard.d.ts","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.optional.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA+C,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAC;;AAG/D,qBACa,oBAAqB,SAAQ,yBAAgB;IAEtD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAI7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBARf,GAAG,EAAE,UAAU,EACxB,SAAS,EAAE,SAAS,EAGX,WAAW,CAAC,EAAE,oBAAoB,EAIlC,cAAc,CAAC,EAAE,oBAAoB;IAKlD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9D,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB;IAsCvE,OAAO,CAAC,cAAc;CAYvB"}
@@ -17,13 +17,16 @@ const common_1 = require("@nestjs/common");
17
17
  const core_1 = require("@nestjs/core");
18
18
  const passport_1 = require("@nestjs/passport");
19
19
  const nestjs_cls_1 = require("nestjs-cls");
20
+ const module_permission_gate_1 = require("../../foundations/rbac/services/module-permission.gate");
20
21
  const tokens_1 = require("../tokens");
22
+ const session_token_1 = require("./session.token");
21
23
  let OptionalJwtAuthGuard = class OptionalJwtAuthGuard extends (0, passport_1.AuthGuard)("jwt") {
22
- constructor(cls, reflector, systemRoles) {
24
+ constructor(cls, reflector, systemRoles, permissionGate) {
23
25
  super();
24
26
  this.cls = cls;
25
27
  this.reflector = reflector;
26
28
  this.systemRoles = systemRoles;
29
+ this.permissionGate = permissionGate;
27
30
  }
28
31
  async canActivate(context) {
29
32
  const request = context.switchToHttp().getRequest();
@@ -31,7 +34,12 @@ let OptionalJwtAuthGuard = class OptionalJwtAuthGuard extends (0, passport_1.Aut
31
34
  if (!authorizationHeader && request.user) {
32
35
  return true;
33
36
  }
34
- return super.canActivate(context);
37
+ const isAuthenticated = (await super.canActivate(context));
38
+ // Only a caller that authenticated as a session is checked; an anonymous
39
+ // caller (no token) keeps today's behaviour.
40
+ if (isAuthenticated && request.user && this.permissionGate)
41
+ await this.permissionGate.assert({ request, context });
42
+ return isAuthenticated;
35
43
  }
36
44
  handleRequest(err, user, info, context) {
37
45
  const request = context.switchToHttp().getRequest();
@@ -47,15 +55,29 @@ let OptionalJwtAuthGuard = class OptionalJwtAuthGuard extends (0, passport_1.Aut
47
55
  }
48
56
  return null;
49
57
  }
50
- this._validateRoles(user, context);
51
- this.cls.set("userId", user.userId);
52
- this.cls.set("companyId", user.companyId ?? request.headers["x-companyid"]);
58
+ // A token that is present and verifies but is not a full session (pending-2FA,
59
+ // selection, portal) is refused, not downgraded to anonymous.
60
+ // Asserted on a local copy: narrowing `user` itself would change the return type
61
+ // away from IAuthGuard's generic `TUser`.
62
+ const session = user;
63
+ (0, session_token_1.assertSessionPayload)(session);
64
+ this._validateRoles(session, context);
65
+ const companyId = (0, session_token_1.resolveSessionCompanyId)({
66
+ payload: session,
67
+ headerCompanyId: request.headers["x-companyid"],
68
+ administratorRole: this.systemRoles?.Administrator,
69
+ });
70
+ this.cls.set("userId", session.userId);
71
+ this.cls.set("companyId", companyId);
53
72
  this.cls.set("language", request.headers["x-language"]);
54
- this.cls.set("roles", user.roles);
73
+ this.cls.set("roles", session.roles);
55
74
  return user;
56
75
  }
57
76
  _validateRoles(user, context) {
58
- const requiredRoles = this.reflector.get("roles", context.getHandler()) ?? [];
77
+ // Handler AND class, copied so pushing the admin role never mutates the metadata.
78
+ const requiredRoles = [
79
+ ...(this.reflector.getAllAndOverride("roles", [context.getHandler(), context.getClass()]) ?? []),
80
+ ];
59
81
  if (requiredRoles.length > 0) {
60
82
  if (!user)
61
83
  throw new common_1.HttpException("Unauthorised", 401);
@@ -72,7 +94,9 @@ exports.OptionalJwtAuthGuard = OptionalJwtAuthGuard = __decorate([
72
94
  (0, common_1.Injectable)(),
73
95
  __param(2, (0, common_1.Optional)()),
74
96
  __param(2, (0, common_1.Inject)(tokens_1.SYSTEM_ROLES)),
97
+ __param(3, (0, common_1.Optional)()),
98
+ __param(3, (0, common_1.Inject)(module_permission_gate_1.ModulePermissionGate)),
75
99
  __metadata("design:paramtypes", [nestjs_cls_1.ClsService,
76
- core_1.Reflector, Object])
100
+ core_1.Reflector, Object, module_permission_gate_1.ModulePermissionGate])
77
101
  ], OptionalJwtAuthGuard);
78
102
  //# sourceMappingURL=jwt.auth.optional.guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.auth.optional.guard.js","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.optional.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA+F;AAC/F,uCAAyC;AACzC,+CAA6C;AAC7C,2CAAwC;AACxC,sCAA+D;AAGxD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IACxD,YACmB,GAAe,EACxB,SAAoB,EAGX,WAAkC;QAEnD,KAAK,EAAE,CAAC;QANS,QAAG,GAAH,GAAG,CAAY;QACxB,cAAS,GAAT,SAAS,CAAW;QAGX,gBAAW,GAAX,WAAW,CAAuB;IAGrD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAE1D,IAAI,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,OAAO,CAAY,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,GAAQ,EAAE,IAAS,EAAE,IAAS,EAAE,OAAyB;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAE5C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,EAAE,OAAO,KAAK,aAAa,EAAE,CAAC;gBACpC,MAAM,IAAI,sBAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,IAAS,EAAE,OAAY;QAC5C,MAAM,aAAa,GAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAW,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;QAClG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,eAAe,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;CACF,CAAA;AAxDY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,qBAAY,CAAC,CAAA;qCAHC,uBAAU;QACb,gBAAS;GAHnB,oBAAoB,CAwDhC"}
1
+ {"version":3,"file":"jwt.auth.optional.guard.js","sourceRoot":"","sources":["../../../src/common/guards/jwt.auth.optional.guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Every token the library issues is signed with the same `jwt.secret`, so a valid
3
+ * signature alone does not make a session. `JwtStrategy` accepts all of them:
4
+ *
5
+ * - full session (`SecurityService.signJwt`): `{ userId, roles, companyId?, features, userName, expiration }`
6
+ * - pending 2FA (`signPendingJwt`): `{ userId, pendingId, pending: true, type: "pending_2fa", expiration }`
7
+ * - company selection (`signCompanySelectionJwt`): `{ userId, scope: "company-selection", expiration }`
8
+ * - invitation selection (`signInvitationSelectionJwt`): `{ userId, scope: "invitation-selection", expiration }`
9
+ *
10
+ * Apps may also sign portal tokens (`personEmail`) with the same secret. The helpers
11
+ * below tell these classes apart, so each guard admits only the class it is meant for.
12
+ */
13
+ export interface SessionPayload {
14
+ userId: string;
15
+ roles: string[];
16
+ companyId?: string | null;
17
+ features?: string[];
18
+ userName?: string;
19
+ expiration?: string | Date;
20
+ }
21
+ /** The selection scopes the library signs. */
22
+ export type TokenScope = "company-selection" | "invitation-selection";
23
+ /**
24
+ * True only for a full session payload: a non-empty string `userId`, a `roles` array
25
+ * of strings, a string-or-absent `companyId`, and none of the non-session markers.
26
+ */
27
+ export declare function isSessionPayload(payload: unknown): payload is SessionPayload;
28
+ /** Throws 401 unless `payload` is a full session payload. */
29
+ export declare function assertSessionPayload(payload: unknown): asserts payload is SessionPayload;
30
+ /**
31
+ * True for a full session, or for a selection token whose `scope` is in
32
+ * `allowedScopes`. A pending-2FA token, a portal token and a selection token of
33
+ * another scope are refused: a pending-2FA token must never reach a route that can
34
+ * mint a full session.
35
+ */
36
+ export declare function isAcceptedScopedPayload(payload: unknown, allowedScopes: readonly string[]): boolean;
37
+ /**
38
+ * The company a session acts in.
39
+ *
40
+ * - The token carries a company: that company, whatever the `x-companyid` header says.
41
+ * - The token carries no company: only a system Administrator may pick one through the
42
+ * header (or act without one). Any other user is refused with 401, because a request
43
+ * without a company runs with no tenant filter.
44
+ */
45
+ export declare function resolveSessionCompanyId(params: {
46
+ payload: SessionPayload;
47
+ headerCompanyId: unknown;
48
+ administratorRole?: string;
49
+ }): string | undefined;
50
+ //# sourceMappingURL=session.token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.token.d.ts","sourceRoot":"","sources":["../../../src/common/guards/session.token.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAQtE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,cAAc,CAW5E;AAED,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAExF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CASnG;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,MAAM,GAAG,SAAS,CASrB"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSessionPayload = isSessionPayload;
4
+ exports.assertSessionPayload = assertSessionPayload;
5
+ exports.isAcceptedScopedPayload = isAcceptedScopedPayload;
6
+ exports.resolveSessionCompanyId = resolveSessionCompanyId;
7
+ const common_1 = require("@nestjs/common");
8
+ const system_roles_1 = require("../constants/system.roles");
9
+ /** Keys that only non-session tokens carry. */
10
+ const NON_SESSION_KEYS = ["personEmail", "pending", "pendingId", "scope", "type"];
11
+ /** Keys a selection token must never carry (it carries `scope`, nothing else of these). */
12
+ const NON_SELECTION_KEYS = ["personEmail", "pending", "pendingId", "type"];
13
+ /**
14
+ * True only for a full session payload: a non-empty string `userId`, a `roles` array
15
+ * of strings, a string-or-absent `companyId`, and none of the non-session markers.
16
+ */
17
+ function isSessionPayload(payload) {
18
+ if (!payload || typeof payload !== "object")
19
+ return false;
20
+ const candidate = payload;
21
+ if (typeof candidate.userId !== "string" || candidate.userId.length === 0)
22
+ return false;
23
+ if (!Array.isArray(candidate.roles) || !candidate.roles.every((role) => typeof role === "string"))
24
+ return false;
25
+ if (NON_SESSION_KEYS.some((key) => candidate[key] !== undefined))
26
+ return false;
27
+ if (candidate.companyId !== undefined && candidate.companyId !== null && typeof candidate.companyId !== "string")
28
+ return false;
29
+ return true;
30
+ }
31
+ /** Throws 401 unless `payload` is a full session payload. */
32
+ function assertSessionPayload(payload) {
33
+ if (!isSessionPayload(payload))
34
+ throw new common_1.HttpException("Unauthorised", 401);
35
+ }
36
+ /**
37
+ * True for a full session, or for a selection token whose `scope` is in
38
+ * `allowedScopes`. A pending-2FA token, a portal token and a selection token of
39
+ * another scope are refused: a pending-2FA token must never reach a route that can
40
+ * mint a full session.
41
+ */
42
+ function isAcceptedScopedPayload(payload, allowedScopes) {
43
+ if (isSessionPayload(payload))
44
+ return true;
45
+ if (!payload || typeof payload !== "object")
46
+ return false;
47
+ const candidate = payload;
48
+ if (typeof candidate.userId !== "string" || candidate.userId.length === 0)
49
+ return false;
50
+ if (NON_SELECTION_KEYS.some((key) => candidate[key] !== undefined))
51
+ return false;
52
+ return typeof candidate.scope === "string" && allowedScopes.includes(candidate.scope);
53
+ }
54
+ /**
55
+ * The company a session acts in.
56
+ *
57
+ * - The token carries a company: that company, whatever the `x-companyid` header says.
58
+ * - The token carries no company: only a system Administrator may pick one through the
59
+ * header (or act without one). Any other user is refused with 401, because a request
60
+ * without a company runs with no tenant filter.
61
+ */
62
+ function resolveSessionCompanyId(params) {
63
+ const { payload, headerCompanyId } = params;
64
+ if (typeof payload.companyId === "string" && payload.companyId.length > 0)
65
+ return payload.companyId;
66
+ const administratorRole = params.administratorRole ?? system_roles_1.SystemRoles.Administrator;
67
+ if (!payload.roles.includes(administratorRole))
68
+ throw new common_1.HttpException("Unauthorised", 401);
69
+ return typeof headerCompanyId === "string" && headerCompanyId.length > 0 ? headerCompanyId : undefined;
70
+ }
71
+ //# sourceMappingURL=session.token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.token.js","sourceRoot":"","sources":["../../../src/common/guards/session.token.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,6 @@ export * from "./types";
19
19
  export * from "./handlers";
20
20
  export * from "./tokens";
21
21
  export * from "./constants/system.roles";
22
+ export * from "./constants/core-module.ids";
22
23
  export * from "./utils/chunk-content.util";
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AAKzC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAK5C,cAAc,4BAA4B,CAAC"}
@@ -50,6 +50,7 @@ __exportStar(require("./handlers"), exports);
50
50
  __exportStar(require("./tokens"), exports);
51
51
  // Constants
52
52
  __exportStar(require("./constants/system.roles"), exports);
53
+ __exportStar(require("./constants/core-module.ids"), exports);
53
54
  // Utils
54
55
  // Exported by file, like ./constants/system.roles above: src/common/utils has no
55
56
  // barrel of its own and settled.ts is deliberately relative-import only.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,YAAY;AACZ,8CAA4B;AAE5B,WAAW;AACX,6CAA2B;AAE3B,aAAa;AACb,+CAA6B;AAE7B,QAAQ;AACR,0CAAwB;AAExB,UAAU;AACV,4CAA0B;AAE1B,SAAS;AACT,2CAAyB;AAEzB,UAAU;AACV,4CAA0B;AAE1B,aAAa;AACb,+CAA6B;AAE7B,aAAa;AACb,+CAA6B;AAE7B,eAAe;AACf,iDAA+B;AAE/B,aAAa;AACb,+CAA6B;AAE7B,QAAQ;AACR,0CAAwB;AAExB,WAAW;AACX,6CAA2B;AAE3B,iDAAiD;AACjD,2CAAyB;AAEzB,YAAY;AACZ,2DAAyC;AAEzC,QAAQ;AACR,iFAAiF;AACjF,yEAAyE;AACzE,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,YAAY;AACZ,8CAA4B;AAE5B,WAAW;AACX,6CAA2B;AAE3B,aAAa;AACb,+CAA6B;AAE7B,QAAQ;AACR,0CAAwB;AAExB,UAAU;AACV,4CAA0B;AAE1B,SAAS;AACT,2CAAyB;AAEzB,UAAU;AACV,4CAA0B;AAE1B,aAAa;AACb,+CAA6B;AAE7B,aAAa;AACb,+CAA6B;AAE7B,eAAe;AACf,iDAA+B;AAE/B,aAAa;AACb,+CAA6B;AAE7B,QAAQ;AACR,0CAAwB;AAExB,WAAW;AACX,6CAA2B;AAE3B,iDAAiD;AACjD,2CAAyB;AAEzB,YAAY;AACZ,2DAAyC;AACzC,8DAA4C;AAE5C,QAAQ;AACR,iFAAiF;AACjF,yEAAyE;AACzE,6DAA2C"}
@@ -8,6 +8,14 @@ declare const JwtStrategy_base: new (...args: [opt: import("passport-jwt").Strat
8
8
  export declare class JwtStrategy extends JwtStrategy_base {
9
9
  private readonly cls;
10
10
  constructor(cls: ClsService, configService: ConfigService<BaseConfigInterface>);
11
+ /**
12
+ * Accepts every payload signed with `jwt.secret`: full sessions, pending-2FA and
13
+ * selection tokens all share the key, and `AnyScopeAuthGuard` must still see the
14
+ * selection tokens. The token class is enforced by each guard after this runs
15
+ * (`assertSessionPayload` / `isAcceptedScopedPayload` in `guards/session.token.ts`),
16
+ * so a guard built on `AuthGuard("jwt")` must never trust `request.user` without one
17
+ * of those checks.
18
+ */
11
19
  validate(req: Request, payload: any): Promise<any>;
12
20
  }
13
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.strategy.d.ts","sourceRoot":"","sources":["../../../src/common/strategies/jwt.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;;;;AAElF,qBACa,WAAY,SAAQ,gBAA0B;IAEvD,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU,EAChC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAU7C,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;CAU1C"}
1
+ {"version":3,"file":"jwt.strategy.d.ts","sourceRoot":"","sources":["../../../src/common/strategies/jwt.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;;;;AAElF,qBACa,WAAY,SAAQ,gBAA0B;IAEvD,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU,EAChC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAUnD;;;;;;;OAOG;IACG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;CAU1C"}
@@ -25,6 +25,14 @@ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(pas
25
25
  });
26
26
  this.cls = cls;
27
27
  }
28
+ /**
29
+ * Accepts every payload signed with `jwt.secret`: full sessions, pending-2FA and
30
+ * selection tokens all share the key, and `AnyScopeAuthGuard` must still see the
31
+ * selection tokens. The token class is enforced by each guard after this runs
32
+ * (`assertSessionPayload` / `isAcceptedScopedPayload` in `guards/session.token.ts`),
33
+ * so a guard built on `AuthGuard("jwt")` must never trust `request.user` without one
34
+ * of those checks.
35
+ */
28
36
  async validate(req, payload) {
29
37
  const now = new Date();
30
38
  const expiration = new Date(payload.expiration);
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../../src/common/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2D;AAC3D,2CAA+C;AAC/C,+CAAoD;AACpD,2CAAwC;AACxC,+CAAoD;AAI7C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YACmB,GAAe,EAChC,aAAiD;QAEjD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAqB,KAAK,CAAC,CAAC;QAC/D,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,2BAA2B,EAAE;YACxD,WAAW,EAAE,SAAS,EAAE,MAAM;YAC9B,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QARc,QAAG,GAAH,GAAG,CAAY;IASlC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,OAAY;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,UAAU,GAAG,GAAG;YAAE,MAAM,IAAI,sBAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAEpE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAvBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGa,uBAAU;QACjB,sBAAa;GAHnB,WAAW,CAuBvB"}
1
+ {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../../src/common/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2D;AAC3D,2CAA+C;AAC/C,+CAAoD;AACpD,2CAAwC;AACxC,+CAAoD;AAI7C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YACmB,GAAe,EAChC,aAAiD;QAEjD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAqB,KAAK,CAAC,CAAC;QAC/D,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,2BAA2B,EAAE;YACxD,WAAW,EAAE,SAAS,EAAE,MAAM;YAC9B,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QARc,QAAG,GAAH,GAAG,CAAY;IASlC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,OAAY;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,UAAU,GAAG,GAAG;YAAE,MAAM,IAAI,sBAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAEpE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AA/BY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGa,uBAAU;QACjB,sBAAa;GAHnB,WAAW,CA+BvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"event.gateway.d.ts","sourceRoot":"","sources":["../../../../src/core/websocket/gateways/event.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAmB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAGL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EAId,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAajE,qBASa,aAAc,YAAW,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe;IAO1G,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAX/B,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,cAAc,CAAS;gBAGZ,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,aAAa;IAG9C,SAAS;IAKH,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAkC/B,gBAAgB,CAAC,MAAM,EAAE,MAAM;IA8B/B,eAAe;IAKf,eAAe,CAAoB,MAAM,EAAE,MAAM;;;;;;IASvD,aAAa,CACI,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,EAChC,MAAM,EAAE,MAAM,GAChC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAU/B,OAAO,CAAC,yBAAyB;CAelC"}
1
+ {"version":3,"file":"event.gateway.d.ts","sourceRoot":"","sources":["../../../../src/core/websocket/gateways/event.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAmB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAGL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EAId,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAajE,qBASa,aAAc,YAAW,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe;IAO1G,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAX/B,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,cAAc,CAAS;gBAGZ,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,aAAa;IAG9C,SAAS;IAKH,gBAAgB,CAAC,MAAM,EAAE,MAAM;IA8C/B,gBAAgB,CAAC,MAAM,EAAE,MAAM;IA8B/B,eAAe;IAKf,eAAe,CAAoB,MAAM,EAAE,MAAM;;;;;;IASvD,aAAa,CACI,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,EAChC,MAAM,EAAE,MAAM,GAChC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAU/B,OAAO,CAAC,yBAAyB;CAelC"}
@@ -19,6 +19,7 @@ const jwt_1 = require("@nestjs/jwt");
19
19
  const websockets_1 = require("@nestjs/websockets");
20
20
  const nestjs_cls_1 = require("nestjs-cls");
21
21
  const socket_io_1 = require("socket.io");
22
+ const session_token_1 = require("../../../common/guards/session.token");
22
23
  const logging_service_1 = require("../../logging/services/logging.service");
23
24
  const neo4j_service_1 = require("../../neo4j/services/neo4j.service");
24
25
  const presence_service_1 = require("../services/presence.service");
@@ -56,10 +57,20 @@ let EventsGateway = class EventsGateway {
56
57
  else {
57
58
  try {
58
59
  const payload = this.jwtService.verify(token);
60
+ // Pending-2FA, selection and portal tokens verify with the same secret but are
61
+ // not sessions: such a socket stays anonymous, exactly like an invalid token.
62
+ if (!(0, session_token_1.isSessionPayload)(payload)) {
63
+ this.logger.error(`[PRESENCE] Non-session token refused for client: ${client.id}`);
64
+ client.data.user = { userId: null };
65
+ return;
66
+ }
59
67
  client.data.user = payload;
60
68
  this.webSocketService.addClient(payload.userId, client);
61
69
  // Set user as online
62
- await this.presenceService.setUserOnline(payload.userId, payload.userName || payload.name, client.id);
70
+ // `userName` is what `SecurityService.signJwt` writes; `name` is the legacy key
71
+ // read since the first release, kept for tokens an app signs itself.
72
+ const displayName = payload.userName || (typeof payload.name === "string" ? payload.name : undefined);
73
+ await this.presenceService.setUserOnline(payload.userId, displayName, client.id);
63
74
  // Presence goes to the user's company only, never to every socket.
64
75
  const presencePayload = {
65
76
  userId: payload.userId,
@@ -1 +1 @@
1
- {"version":3,"file":"event.gateway.js","sourceRoot":"","sources":["../../../../src/core/websocket/gateways/event.gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.gateway.js","sourceRoot":"","sources":["../../../../src/core/websocket/gateways/event.gateway.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ws.jwt.auth.guard.d.ts","sourceRoot":"","sources":["../../../../src/core/websocket/guards/ws.jwt.auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,qBACa,UAAW,YAAW,WAAW;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,YAAY;IAGhC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9D,OAAO,CAAC,yBAAyB;CAiBlC"}
1
+ {"version":3,"file":"ws.jwt.auth.guard.d.ts","sourceRoot":"","sources":["../../../../src/core/websocket/guards/ws.jwt.auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,qBACa,UAAW,YAAW,WAAW;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,YAAY;IAGhC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB9D,OAAO,CAAC,yBAAyB;CAiBlC"}