@intlayer/backend 5.5.11 → 5.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 (513) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/controllers/ai.controller.cjs +10 -7
  3. package/dist/cjs/controllers/ai.controller.cjs.map +1 -1
  4. package/dist/cjs/controllers/dictionary.controller.cjs +50 -58
  5. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  6. package/dist/cjs/controllers/eventListener.controller.cjs +2 -18
  7. package/dist/cjs/controllers/eventListener.controller.cjs.map +1 -1
  8. package/dist/cjs/controllers/newsletter.controller.cjs +38 -3
  9. package/dist/cjs/controllers/newsletter.controller.cjs.map +1 -1
  10. package/dist/cjs/controllers/oAuth2.controller.cjs +3 -3
  11. package/dist/cjs/controllers/oAuth2.controller.cjs.map +1 -1
  12. package/dist/cjs/controllers/organization.controller.cjs +92 -106
  13. package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
  14. package/dist/cjs/controllers/project.controller.cjs +81 -83
  15. package/dist/cjs/controllers/project.controller.cjs.map +1 -1
  16. package/dist/cjs/controllers/projectAccessKey.controller.cjs +30 -24
  17. package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -1
  18. package/dist/cjs/controllers/search.controller.cjs.map +1 -1
  19. package/dist/cjs/controllers/stripe.controller.cjs +4 -25
  20. package/dist/cjs/controllers/stripe.controller.cjs.map +1 -1
  21. package/dist/cjs/controllers/tag.controller.cjs +27 -16
  22. package/dist/cjs/controllers/tag.controller.cjs.map +1 -1
  23. package/dist/cjs/controllers/user.controller.cjs +88 -24
  24. package/dist/cjs/controllers/user.controller.cjs.map +1 -1
  25. package/dist/cjs/emails/InviteUserEmail.cjs +30 -12
  26. package/dist/cjs/emails/InviteUserEmail.cjs.map +1 -1
  27. package/dist/cjs/emails/OAuthTokenCreatedEmail.cjs +266 -0
  28. package/dist/cjs/emails/OAuthTokenCreatedEmail.cjs.map +1 -0
  29. package/dist/cjs/emails/ResetUserPassword.cjs +27 -15
  30. package/dist/cjs/emails/ResetUserPassword.cjs.map +1 -1
  31. package/dist/cjs/emails/ValidateUserEmail.cjs +27 -36
  32. package/dist/cjs/emails/ValidateUserEmail.cjs.map +1 -1
  33. package/dist/cjs/emails/Welcome.cjs +27 -15
  34. package/dist/cjs/emails/Welcome.cjs.map +1 -1
  35. package/dist/cjs/emails/index.cjs +7 -5
  36. package/dist/cjs/emails/index.cjs.map +1 -1
  37. package/dist/cjs/export.cjs +2 -5
  38. package/dist/cjs/export.cjs.map +1 -1
  39. package/dist/cjs/index.cjs +61 -111
  40. package/dist/cjs/index.cjs.map +1 -1
  41. package/dist/cjs/middlewares/oAuth2.middleware.cjs +26 -38
  42. package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -1
  43. package/dist/cjs/middlewares/request.middleware.cjs.map +1 -1
  44. package/dist/cjs/middlewares/sessionAuth.middleware.cjs +17 -138
  45. package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -1
  46. package/dist/cjs/models/dictionary.model.cjs.map +1 -1
  47. package/dist/cjs/models/discussion.model.cjs.map +1 -1
  48. package/dist/cjs/models/oAuth2.model.cjs +4 -1
  49. package/dist/cjs/models/oAuth2.model.cjs.map +1 -1
  50. package/dist/cjs/models/organization.model.cjs +1 -4
  51. package/dist/cjs/models/organization.model.cjs.map +1 -1
  52. package/dist/cjs/models/project.model.cjs +4 -1
  53. package/dist/cjs/models/project.model.cjs.map +1 -1
  54. package/dist/cjs/models/session.model.cjs +34 -0
  55. package/dist/cjs/models/session.model.cjs.map +1 -0
  56. package/dist/cjs/models/tag.model.cjs.map +1 -1
  57. package/dist/cjs/models/user.model.cjs.map +1 -1
  58. package/dist/cjs/routes/ai.routes.cjs +3 -1
  59. package/dist/cjs/routes/ai.routes.cjs.map +1 -1
  60. package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
  61. package/dist/cjs/routes/eventListener.routes.cjs +1 -1
  62. package/dist/cjs/routes/eventListener.routes.cjs.map +1 -1
  63. package/dist/cjs/routes/newsletter.routes.cjs.map +1 -1
  64. package/dist/cjs/routes/organization.routes.cjs +8 -8
  65. package/dist/cjs/routes/organization.routes.cjs.map +1 -1
  66. package/dist/cjs/routes/project.routes.cjs +23 -14
  67. package/dist/cjs/routes/project.routes.cjs.map +1 -1
  68. package/dist/cjs/routes/search.routes.cjs.map +1 -1
  69. package/dist/cjs/routes/stripe.routes.cjs.map +1 -1
  70. package/dist/cjs/routes/tags.routes.cjs +4 -4
  71. package/dist/cjs/routes/tags.routes.cjs.map +1 -1
  72. package/dist/cjs/routes/user.routes.cjs +12 -12
  73. package/dist/cjs/routes/user.routes.cjs.map +1 -1
  74. package/dist/cjs/schemas/dictionary.schema.cjs +18 -1
  75. package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -1
  76. package/dist/cjs/schemas/discussion.schema.cjs +18 -1
  77. package/dist/cjs/schemas/discussion.schema.cjs.map +1 -1
  78. package/dist/cjs/schemas/oAuth2.schema.cjs +18 -1
  79. package/dist/cjs/schemas/oAuth2.schema.cjs.map +1 -1
  80. package/dist/cjs/schemas/organization.schema.cjs +21 -1
  81. package/dist/cjs/schemas/organization.schema.cjs.map +1 -1
  82. package/dist/cjs/schemas/plans.schema.cjs +18 -1
  83. package/dist/cjs/schemas/plans.schema.cjs.map +1 -1
  84. package/dist/cjs/schemas/project.schema.cjs +19 -14
  85. package/dist/cjs/schemas/project.schema.cjs.map +1 -1
  86. package/dist/cjs/schemas/session.schema.cjs +63 -0
  87. package/dist/cjs/schemas/session.schema.cjs.map +1 -0
  88. package/dist/cjs/schemas/tag.schema.cjs +18 -1
  89. package/dist/cjs/schemas/tag.schema.cjs.map +1 -1
  90. package/dist/cjs/schemas/user.schema.cjs +18 -48
  91. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  92. package/dist/cjs/services/dictionary.service.cjs +6 -5
  93. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  94. package/dist/cjs/services/email.service.cjs +13 -0
  95. package/dist/cjs/services/email.service.cjs.map +1 -1
  96. package/dist/cjs/services/oAuth2.service.cjs +49 -10
  97. package/dist/cjs/services/oAuth2.service.cjs.map +1 -1
  98. package/dist/cjs/services/organization.service.cjs +16 -15
  99. package/dist/cjs/services/organization.service.cjs.map +1 -1
  100. package/dist/cjs/services/project.service.cjs +1 -1
  101. package/dist/cjs/services/project.service.cjs.map +1 -1
  102. package/dist/cjs/services/projectAccessKey.service.cjs +17 -33
  103. package/dist/cjs/services/projectAccessKey.service.cjs.map +1 -1
  104. package/dist/cjs/services/subscription.service.cjs +10 -10
  105. package/dist/cjs/services/subscription.service.cjs.map +1 -1
  106. package/dist/cjs/services/tag.service.cjs.map +1 -1
  107. package/dist/cjs/services/user.service.cjs +2 -42
  108. package/dist/cjs/services/user.service.cjs.map +1 -1
  109. package/dist/cjs/types/dictionary.types.cjs.map +1 -1
  110. package/dist/cjs/types/discussion.types.cjs.map +1 -1
  111. package/dist/cjs/types/oAuth2.types.cjs.map +1 -1
  112. package/dist/cjs/types/organization.types.cjs.map +1 -1
  113. package/dist/cjs/types/plan.types.cjs.map +1 -1
  114. package/dist/cjs/types/project.types.cjs.map +1 -1
  115. package/dist/cjs/types/session.types.cjs.map +1 -1
  116. package/dist/cjs/types/tag.types.cjs.map +1 -1
  117. package/dist/cjs/types/user.types.cjs.map +1 -1
  118. package/dist/cjs/utils/AI/aiSdk.cjs.map +1 -1
  119. package/dist/cjs/utils/AI/askDocQuestion/PROMPT.md +7 -1
  120. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs +32 -14
  121. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs.map +1 -1
  122. package/dist/cjs/utils/AI/askDocQuestion/embeddings.json +88086 -76800
  123. package/dist/cjs/utils/AI/autocomplete/PROMPT.md +18 -2
  124. package/dist/cjs/utils/AI/autocomplete/index.cjs +8 -5
  125. package/dist/cjs/utils/AI/autocomplete/index.cjs.map +1 -1
  126. package/dist/cjs/utils/access.cjs +2 -0
  127. package/dist/cjs/utils/access.cjs.map +1 -0
  128. package/dist/cjs/utils/accessControl.cjs +7 -0
  129. package/dist/cjs/utils/accessControl.cjs.map +1 -1
  130. package/dist/cjs/utils/auth/getAuth.cjs +248 -0
  131. package/dist/cjs/utils/auth/getAuth.cjs.map +1 -0
  132. package/dist/cjs/utils/cors.cjs +55 -0
  133. package/dist/cjs/utils/cors.cjs.map +1 -0
  134. package/dist/cjs/utils/ensureMongoDocumentToObject.cjs.map +1 -1
  135. package/dist/cjs/utils/errors/ErrorHandler.cjs +2 -2
  136. package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
  137. package/dist/cjs/utils/errors/errorCodes.cjs +114 -153
  138. package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
  139. package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs.map +1 -1
  140. package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs.map +1 -1
  141. package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs.map +1 -1
  142. package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs +1 -1
  143. package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs.map +1 -1
  144. package/dist/cjs/utils/mapper/dictionary.cjs.map +1 -1
  145. package/dist/cjs/utils/mapper/organization.cjs +10 -8
  146. package/dist/cjs/utils/mapper/organization.cjs.map +1 -1
  147. package/dist/cjs/utils/mapper/project.cjs +5 -18
  148. package/dist/cjs/utils/mapper/project.cjs.map +1 -1
  149. package/dist/cjs/utils/mapper/tag.cjs +4 -2
  150. package/dist/cjs/utils/mapper/tag.cjs.map +1 -1
  151. package/dist/cjs/utils/mapper/user.cjs +6 -3
  152. package/dist/cjs/utils/mapper/user.cjs.map +1 -1
  153. package/dist/cjs/utils/mergeFunctionTypes.cjs +17 -0
  154. package/dist/cjs/utils/mergeFunctionTypes.cjs.map +1 -0
  155. package/dist/cjs/utils/mongoDB/connectDB.cjs +3 -1
  156. package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -1
  157. package/dist/cjs/utils/mongoDB/types.cjs +17 -0
  158. package/dist/cjs/utils/mongoDB/types.cjs.map +1 -0
  159. package/dist/cjs/utils/oAuth2.cjs.map +1 -1
  160. package/dist/cjs/utils/permissions.cjs +166 -0
  161. package/dist/cjs/utils/permissions.cjs.map +1 -0
  162. package/dist/cjs/utils/rateLimiter.cjs +88 -0
  163. package/dist/cjs/utils/rateLimiter.cjs.map +1 -0
  164. package/dist/esm/controllers/ai.controller.mjs +10 -7
  165. package/dist/esm/controllers/ai.controller.mjs.map +1 -1
  166. package/dist/esm/controllers/dictionary.controller.mjs +50 -58
  167. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  168. package/dist/esm/controllers/eventListener.controller.mjs +2 -8
  169. package/dist/esm/controllers/eventListener.controller.mjs.map +1 -1
  170. package/dist/esm/controllers/newsletter.controller.mjs +38 -3
  171. package/dist/esm/controllers/newsletter.controller.mjs.map +1 -1
  172. package/dist/esm/controllers/oAuth2.controller.mjs +2 -2
  173. package/dist/esm/controllers/oAuth2.controller.mjs.map +1 -1
  174. package/dist/esm/controllers/organization.controller.mjs +95 -106
  175. package/dist/esm/controllers/organization.controller.mjs.map +1 -1
  176. package/dist/esm/controllers/project.controller.mjs +81 -83
  177. package/dist/esm/controllers/project.controller.mjs.map +1 -1
  178. package/dist/esm/controllers/projectAccessKey.controller.mjs +30 -24
  179. package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -1
  180. package/dist/esm/controllers/search.controller.mjs.map +1 -1
  181. package/dist/esm/controllers/stripe.controller.mjs +4 -25
  182. package/dist/esm/controllers/stripe.controller.mjs.map +1 -1
  183. package/dist/esm/controllers/tag.controller.mjs +27 -16
  184. package/dist/esm/controllers/tag.controller.mjs.map +1 -1
  185. package/dist/esm/controllers/user.controller.mjs +85 -22
  186. package/dist/esm/controllers/user.controller.mjs.map +1 -1
  187. package/dist/esm/emails/InviteUserEmail.mjs +32 -14
  188. package/dist/esm/emails/InviteUserEmail.mjs.map +1 -1
  189. package/dist/esm/emails/OAuthTokenCreatedEmail.mjs +254 -0
  190. package/dist/esm/emails/OAuthTokenCreatedEmail.mjs.map +1 -0
  191. package/dist/esm/emails/ResetUserPassword.mjs +29 -17
  192. package/dist/esm/emails/ResetUserPassword.mjs.map +1 -1
  193. package/dist/esm/emails/ValidateUserEmail.mjs +29 -38
  194. package/dist/esm/emails/ValidateUserEmail.mjs.map +1 -1
  195. package/dist/esm/emails/Welcome.mjs +29 -17
  196. package/dist/esm/emails/Welcome.mjs.map +1 -1
  197. package/dist/esm/emails/index.mjs +3 -2
  198. package/dist/esm/emails/index.mjs.map +1 -1
  199. package/dist/esm/export.mjs +1 -3
  200. package/dist/esm/export.mjs.map +1 -1
  201. package/dist/esm/index.mjs +60 -111
  202. package/dist/esm/index.mjs.map +1 -1
  203. package/dist/esm/middlewares/oAuth2.middleware.mjs +27 -36
  204. package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
  205. package/dist/esm/middlewares/request.middleware.mjs.map +1 -1
  206. package/dist/esm/middlewares/sessionAuth.middleware.mjs +16 -127
  207. package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -1
  208. package/dist/esm/models/dictionary.model.mjs.map +1 -1
  209. package/dist/esm/models/discussion.model.mjs.map +1 -1
  210. package/dist/esm/models/oAuth2.model.mjs +4 -1
  211. package/dist/esm/models/oAuth2.model.mjs.map +1 -1
  212. package/dist/esm/models/organization.model.mjs +1 -4
  213. package/dist/esm/models/organization.model.mjs.map +1 -1
  214. package/dist/esm/models/project.model.mjs +4 -1
  215. package/dist/esm/models/project.model.mjs.map +1 -1
  216. package/dist/esm/models/session.model.mjs +10 -0
  217. package/dist/esm/models/session.model.mjs.map +1 -0
  218. package/dist/esm/models/tag.model.mjs.map +1 -1
  219. package/dist/esm/models/user.model.mjs.map +1 -1
  220. package/dist/esm/routes/ai.routes.mjs +3 -1
  221. package/dist/esm/routes/ai.routes.mjs.map +1 -1
  222. package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
  223. package/dist/esm/routes/eventListener.routes.mjs +1 -1
  224. package/dist/esm/routes/eventListener.routes.mjs.map +1 -1
  225. package/dist/esm/routes/newsletter.routes.mjs.map +1 -1
  226. package/dist/esm/routes/organization.routes.mjs +8 -8
  227. package/dist/esm/routes/organization.routes.mjs.map +1 -1
  228. package/dist/esm/routes/project.routes.mjs +23 -14
  229. package/dist/esm/routes/project.routes.mjs.map +1 -1
  230. package/dist/esm/routes/search.routes.mjs.map +1 -1
  231. package/dist/esm/routes/stripe.routes.mjs.map +1 -1
  232. package/dist/esm/routes/tags.routes.mjs +4 -4
  233. package/dist/esm/routes/tags.routes.mjs.map +1 -1
  234. package/dist/esm/routes/user.routes.mjs +14 -14
  235. package/dist/esm/routes/user.routes.mjs.map +1 -1
  236. package/dist/esm/schemas/dictionary.schema.mjs +18 -1
  237. package/dist/esm/schemas/dictionary.schema.mjs.map +1 -1
  238. package/dist/esm/schemas/discussion.schema.mjs +18 -1
  239. package/dist/esm/schemas/discussion.schema.mjs.map +1 -1
  240. package/dist/esm/schemas/oAuth2.schema.mjs +18 -1
  241. package/dist/esm/schemas/oAuth2.schema.mjs.map +1 -1
  242. package/dist/esm/schemas/organization.schema.mjs +21 -1
  243. package/dist/esm/schemas/organization.schema.mjs.map +1 -1
  244. package/dist/esm/schemas/plans.schema.mjs +18 -1
  245. package/dist/esm/schemas/plans.schema.mjs.map +1 -1
  246. package/dist/esm/schemas/project.schema.mjs +21 -15
  247. package/dist/esm/schemas/project.schema.mjs.map +1 -1
  248. package/dist/esm/schemas/session.schema.mjs +39 -0
  249. package/dist/esm/schemas/session.schema.mjs.map +1 -0
  250. package/dist/esm/schemas/tag.schema.mjs +21 -4
  251. package/dist/esm/schemas/tag.schema.mjs.map +1 -1
  252. package/dist/esm/schemas/user.schema.mjs +18 -48
  253. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  254. package/dist/esm/services/dictionary.service.mjs +6 -5
  255. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  256. package/dist/esm/services/email.service.mjs +33 -16
  257. package/dist/esm/services/email.service.mjs.map +1 -1
  258. package/dist/esm/services/oAuth2.service.mjs +47 -10
  259. package/dist/esm/services/oAuth2.service.mjs.map +1 -1
  260. package/dist/esm/services/organization.service.mjs +16 -14
  261. package/dist/esm/services/organization.service.mjs.map +1 -1
  262. package/dist/esm/services/project.service.mjs +1 -1
  263. package/dist/esm/services/project.service.mjs.map +1 -1
  264. package/dist/esm/services/projectAccessKey.service.mjs +15 -31
  265. package/dist/esm/services/projectAccessKey.service.mjs.map +1 -1
  266. package/dist/esm/services/subscription.service.mjs +10 -10
  267. package/dist/esm/services/subscription.service.mjs.map +1 -1
  268. package/dist/esm/services/tag.service.mjs.map +1 -1
  269. package/dist/esm/services/user.service.mjs +2 -40
  270. package/dist/esm/services/user.service.mjs.map +1 -1
  271. package/dist/esm/types/user.types.mjs.map +1 -1
  272. package/dist/esm/utils/AI/aiSdk.mjs.map +1 -1
  273. package/dist/esm/utils/AI/askDocQuestion/PROMPT.md +7 -1
  274. package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs +32 -14
  275. package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs.map +1 -1
  276. package/dist/esm/utils/AI/askDocQuestion/embeddings.json +88086 -76800
  277. package/dist/esm/utils/AI/autocomplete/PROMPT.md +18 -2
  278. package/dist/esm/utils/AI/autocomplete/index.mjs +8 -5
  279. package/dist/esm/utils/AI/autocomplete/index.mjs.map +1 -1
  280. package/dist/esm/utils/access.mjs +1 -0
  281. package/dist/esm/utils/access.mjs.map +1 -0
  282. package/dist/esm/utils/accessControl.mjs +7 -0
  283. package/dist/esm/utils/accessControl.mjs.map +1 -1
  284. package/dist/esm/utils/auth/getAuth.mjs +227 -0
  285. package/dist/esm/utils/auth/getAuth.mjs.map +1 -0
  286. package/dist/esm/utils/cors.mjs +31 -0
  287. package/dist/esm/utils/cors.mjs.map +1 -0
  288. package/dist/esm/utils/ensureMongoDocumentToObject.mjs.map +1 -1
  289. package/dist/esm/utils/errors/ErrorHandler.mjs +2 -2
  290. package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
  291. package/dist/esm/utils/errors/errorCodes.mjs +114 -153
  292. package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
  293. package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs.map +1 -1
  294. package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs.map +1 -1
  295. package/dist/esm/utils/filtersAndPagination/getTagFiltersAndPagination.mjs.map +1 -1
  296. package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs +1 -1
  297. package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs.map +1 -1
  298. package/dist/esm/utils/mapper/dictionary.mjs.map +1 -1
  299. package/dist/esm/utils/mapper/organization.mjs +8 -7
  300. package/dist/esm/utils/mapper/organization.mjs.map +1 -1
  301. package/dist/esm/utils/mapper/project.mjs +5 -18
  302. package/dist/esm/utils/mapper/project.mjs.map +1 -1
  303. package/dist/esm/utils/mapper/tag.mjs +4 -2
  304. package/dist/esm/utils/mapper/tag.mjs.map +1 -1
  305. package/dist/esm/utils/mapper/user.mjs +6 -3
  306. package/dist/esm/utils/mapper/user.mjs.map +1 -1
  307. package/dist/esm/utils/mergeFunctionTypes.mjs +1 -0
  308. package/dist/esm/utils/mergeFunctionTypes.mjs.map +1 -0
  309. package/dist/esm/utils/mongoDB/connectDB.mjs +3 -1
  310. package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
  311. package/dist/esm/utils/mongoDB/types.mjs +1 -0
  312. package/dist/esm/utils/mongoDB/types.mjs.map +1 -0
  313. package/dist/esm/utils/oAuth2.mjs +3 -3
  314. package/dist/esm/utils/oAuth2.mjs.map +1 -1
  315. package/dist/esm/utils/permissions.mjs +138 -0
  316. package/dist/esm/utils/permissions.mjs.map +1 -0
  317. package/dist/esm/utils/rateLimiter.mjs +53 -0
  318. package/dist/esm/utils/rateLimiter.mjs.map +1 -0
  319. package/dist/types/controllers/ai.controller.d.ts +12 -10
  320. package/dist/types/controllers/ai.controller.d.ts.map +1 -1
  321. package/dist/types/controllers/dictionary.controller.d.ts +8 -9
  322. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  323. package/dist/types/controllers/eventListener.controller.d.ts +2 -3
  324. package/dist/types/controllers/eventListener.controller.d.ts.map +1 -1
  325. package/dist/types/controllers/newsletter.controller.d.ts +5 -6
  326. package/dist/types/controllers/newsletter.controller.d.ts.map +1 -1
  327. package/dist/types/controllers/oAuth2.controller.d.ts +3 -3
  328. package/dist/types/controllers/oAuth2.controller.d.ts.map +1 -1
  329. package/dist/types/controllers/organization.controller.d.ts +22 -23
  330. package/dist/types/controllers/organization.controller.d.ts.map +1 -1
  331. package/dist/types/controllers/project.controller.d.ts +13 -14
  332. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  333. package/dist/types/controllers/projectAccessKey.controller.d.ts +5 -6
  334. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  335. package/dist/types/controllers/search.controller.d.ts +2 -3
  336. package/dist/types/controllers/search.controller.d.ts.map +1 -1
  337. package/dist/types/controllers/stripe.controller.d.ts +5 -6
  338. package/dist/types/controllers/stripe.controller.d.ts.map +1 -1
  339. package/dist/types/controllers/tag.controller.d.ts +9 -10
  340. package/dist/types/controllers/tag.controller.d.ts.map +1 -1
  341. package/dist/types/controllers/user.controller.d.ts +16 -19
  342. package/dist/types/controllers/user.controller.d.ts.map +1 -1
  343. package/dist/types/emails/InviteUserEmail.d.ts.map +1 -1
  344. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +21 -0
  345. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts.map +1 -0
  346. package/dist/types/emails/ResetUserPassword.d.ts.map +1 -1
  347. package/dist/types/emails/Welcome.d.ts.map +1 -1
  348. package/dist/types/emails/index.d.ts +3 -2
  349. package/dist/types/emails/index.d.ts.map +1 -1
  350. package/dist/types/export.d.ts +2 -3
  351. package/dist/types/export.d.ts.map +1 -1
  352. package/dist/types/index.d.ts +1 -3
  353. package/dist/types/index.d.ts.map +1 -1
  354. package/dist/types/middlewares/oAuth2.middleware.d.ts +1 -2
  355. package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -1
  356. package/dist/types/middlewares/request.middleware.d.ts +3 -3
  357. package/dist/types/middlewares/request.middleware.d.ts.map +1 -1
  358. package/dist/types/middlewares/sessionAuth.middleware.d.ts +3 -25
  359. package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -1
  360. package/dist/types/models/dictionary.model.d.ts +6 -5
  361. package/dist/types/models/dictionary.model.d.ts.map +1 -1
  362. package/dist/types/models/discussion.model.d.ts +7 -2
  363. package/dist/types/models/discussion.model.d.ts.map +1 -1
  364. package/dist/types/models/oAuth2.model.d.ts +3 -2
  365. package/dist/types/models/oAuth2.model.d.ts.map +1 -1
  366. package/dist/types/models/organization.model.d.ts +2 -12
  367. package/dist/types/models/organization.model.d.ts.map +1 -1
  368. package/dist/types/models/project.model.d.ts +2 -11
  369. package/dist/types/models/project.model.d.ts.map +1 -1
  370. package/dist/types/models/session.model.d.ts +3 -0
  371. package/dist/types/models/session.model.d.ts.map +1 -0
  372. package/dist/types/models/tag.model.d.ts.map +1 -1
  373. package/dist/types/models/user.model.d.ts.map +1 -1
  374. package/dist/types/routes/ai.routes.d.ts.map +1 -1
  375. package/dist/types/routes/organization.routes.d.ts +4 -4
  376. package/dist/types/routes/project.routes.d.ts +4 -4
  377. package/dist/types/routes/project.routes.d.ts.map +1 -1
  378. package/dist/types/routes/tags.routes.d.ts +2 -2
  379. package/dist/types/routes/user.routes.d.ts +6 -7
  380. package/dist/types/routes/user.routes.d.ts.map +1 -1
  381. package/dist/types/schemas/dictionary.schema.d.ts +6 -8
  382. package/dist/types/schemas/dictionary.schema.d.ts.map +1 -1
  383. package/dist/types/schemas/discussion.schema.d.ts +7 -5
  384. package/dist/types/schemas/discussion.schema.d.ts.map +1 -1
  385. package/dist/types/schemas/oAuth2.schema.d.ts +4 -3
  386. package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -1
  387. package/dist/types/schemas/organization.schema.d.ts +6 -10
  388. package/dist/types/schemas/organization.schema.d.ts.map +1 -1
  389. package/dist/types/schemas/plans.schema.d.ts +6 -8
  390. package/dist/types/schemas/plans.schema.d.ts.map +1 -1
  391. package/dist/types/schemas/project.schema.d.ts +5 -17
  392. package/dist/types/schemas/project.schema.d.ts.map +1 -1
  393. package/dist/types/schemas/session.schema.d.ts +14 -0
  394. package/dist/types/schemas/session.schema.d.ts.map +1 -0
  395. package/dist/types/schemas/tag.schema.d.ts +6 -8
  396. package/dist/types/schemas/tag.schema.d.ts.map +1 -1
  397. package/dist/types/schemas/user.schema.d.ts +7 -5
  398. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  399. package/dist/types/services/dictionary.service.d.ts +9 -9
  400. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  401. package/dist/types/services/email.service.d.ts +4 -0
  402. package/dist/types/services/email.service.d.ts.map +1 -1
  403. package/dist/types/services/oAuth2.service.d.ts +23 -14
  404. package/dist/types/services/oAuth2.service.d.ts.map +1 -1
  405. package/dist/types/services/organization.service.d.ts +6 -12
  406. package/dist/types/services/organization.service.d.ts.map +1 -1
  407. package/dist/types/services/project.service.d.ts +5 -5
  408. package/dist/types/services/project.service.d.ts.map +1 -1
  409. package/dist/types/services/projectAccessKey.service.d.ts +5 -5
  410. package/dist/types/services/projectAccessKey.service.d.ts.map +1 -1
  411. package/dist/types/services/subscription.service.d.ts +1 -1
  412. package/dist/types/services/subscription.service.d.ts.map +1 -1
  413. package/dist/types/services/tag.service.d.ts +6 -6
  414. package/dist/types/services/tag.service.d.ts.map +1 -1
  415. package/dist/types/services/user.service.d.ts +7 -21
  416. package/dist/types/services/user.service.d.ts.map +1 -1
  417. package/dist/types/types/dictionary.types.d.ts +11 -9
  418. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  419. package/dist/types/types/discussion.types.d.ts +5 -2
  420. package/dist/types/types/discussion.types.d.ts.map +1 -1
  421. package/dist/types/types/oAuth2.types.d.ts +5 -2
  422. package/dist/types/types/oAuth2.types.d.ts.map +1 -1
  423. package/dist/types/types/organization.types.d.ts +11 -8
  424. package/dist/types/types/organization.types.d.ts.map +1 -1
  425. package/dist/types/types/plan.types.d.ts +6 -3
  426. package/dist/types/types/plan.types.d.ts.map +1 -1
  427. package/dist/types/types/project.types.d.ts +25 -25
  428. package/dist/types/types/project.types.d.ts.map +1 -1
  429. package/dist/types/types/session.types.d.ts +31 -17
  430. package/dist/types/types/session.types.d.ts.map +1 -1
  431. package/dist/types/types/tag.types.d.ts +8 -6
  432. package/dist/types/types/tag.types.d.ts.map +1 -1
  433. package/dist/types/types/user.types.d.ts +14 -21
  434. package/dist/types/types/user.types.d.ts.map +1 -1
  435. package/dist/types/utils/AI/aiSdk.d.ts +2 -2
  436. package/dist/types/utils/AI/aiSdk.d.ts.map +1 -1
  437. package/dist/types/utils/AI/askDocQuestion/askDocQuestion.d.ts +2 -0
  438. package/dist/types/utils/AI/askDocQuestion/askDocQuestion.d.ts.map +1 -1
  439. package/dist/types/utils/AI/autocomplete/index.d.ts +4 -1
  440. package/dist/types/utils/AI/autocomplete/index.d.ts.map +1 -1
  441. package/dist/types/utils/access.d.ts +1 -0
  442. package/dist/types/utils/access.d.ts.map +1 -0
  443. package/dist/types/utils/accessControl.d.ts +9 -9
  444. package/dist/types/utils/accessControl.d.ts.map +1 -1
  445. package/dist/types/utils/auth/getAuth.d.ts +7 -0
  446. package/dist/types/utils/auth/getAuth.d.ts.map +1 -0
  447. package/dist/types/utils/cors.d.ts +3 -0
  448. package/dist/types/utils/cors.d.ts.map +1 -0
  449. package/dist/types/utils/ensureMongoDocumentToObject.d.ts +2 -2
  450. package/dist/types/utils/ensureMongoDocumentToObject.d.ts.map +1 -1
  451. package/dist/types/utils/errors/ErrorHandler.d.ts +1 -1
  452. package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
  453. package/dist/types/utils/errors/errorCodes.d.ts +57 -96
  454. package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
  455. package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +1 -1
  456. package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts.map +1 -1
  457. package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +1 -1
  458. package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts.map +1 -1
  459. package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +1 -1
  460. package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts.map +1 -1
  461. package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts +1 -1
  462. package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts.map +1 -1
  463. package/dist/types/utils/mapper/dictionary.d.ts +1 -1
  464. package/dist/types/utils/mapper/dictionary.d.ts.map +1 -1
  465. package/dist/types/utils/mapper/organization.d.ts +3 -2
  466. package/dist/types/utils/mapper/organization.d.ts.map +1 -1
  467. package/dist/types/utils/mapper/project.d.ts +4 -5
  468. package/dist/types/utils/mapper/project.d.ts.map +1 -1
  469. package/dist/types/utils/mapper/tag.d.ts +1 -1
  470. package/dist/types/utils/mapper/tag.d.ts.map +1 -1
  471. package/dist/types/utils/mapper/user.d.ts +2 -2
  472. package/dist/types/utils/mapper/user.d.ts.map +1 -1
  473. package/dist/types/utils/mergeFunctionTypes.d.ts +18 -0
  474. package/dist/types/utils/mergeFunctionTypes.d.ts.map +1 -0
  475. package/dist/types/utils/mongoDB/connectDB.d.ts +1 -1
  476. package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
  477. package/dist/types/utils/mongoDB/types.d.ts +11 -0
  478. package/dist/types/utils/mongoDB/types.d.ts.map +1 -0
  479. package/dist/types/utils/permissions.d.ts +115 -0
  480. package/dist/types/utils/permissions.d.ts.map +1 -0
  481. package/dist/types/utils/rateLimiter.d.ts +4 -0
  482. package/dist/types/utils/rateLimiter.d.ts.map +1 -0
  483. package/package.json +16 -14
  484. package/dist/cjs/controllers/sessionAuth.controller.cjs +0 -839
  485. package/dist/cjs/controllers/sessionAuth.controller.cjs.map +0 -1
  486. package/dist/cjs/routes/sessionAuth.routes.cjs +0 -154
  487. package/dist/cjs/routes/sessionAuth.routes.cjs.map +0 -1
  488. package/dist/cjs/services/sessionAuth.service.cjs +0 -385
  489. package/dist/cjs/services/sessionAuth.service.cjs.map +0 -1
  490. package/dist/cjs/utils/CSRF.cjs +0 -50
  491. package/dist/cjs/utils/CSRF.cjs.map +0 -1
  492. package/dist/cjs/utils/cookies.cjs +0 -59
  493. package/dist/cjs/utils/cookies.cjs.map +0 -1
  494. package/dist/esm/controllers/sessionAuth.controller.mjs +0 -790
  495. package/dist/esm/controllers/sessionAuth.controller.mjs.map +0 -1
  496. package/dist/esm/routes/sessionAuth.routes.mjs +0 -142
  497. package/dist/esm/routes/sessionAuth.routes.mjs.map +0 -1
  498. package/dist/esm/services/sessionAuth.service.mjs +0 -337
  499. package/dist/esm/services/sessionAuth.service.mjs.map +0 -1
  500. package/dist/esm/utils/CSRF.mjs +0 -24
  501. package/dist/esm/utils/CSRF.mjs.map +0 -1
  502. package/dist/esm/utils/cookies.mjs +0 -32
  503. package/dist/esm/utils/cookies.mjs.map +0 -1
  504. package/dist/types/controllers/sessionAuth.controller.d.ts +0 -140
  505. package/dist/types/controllers/sessionAuth.controller.d.ts.map +0 -1
  506. package/dist/types/routes/sessionAuth.routes.d.ts +0 -77
  507. package/dist/types/routes/sessionAuth.routes.d.ts.map +0 -1
  508. package/dist/types/services/sessionAuth.service.d.ts +0 -141
  509. package/dist/types/services/sessionAuth.service.d.ts.map +0 -1
  510. package/dist/types/utils/CSRF.d.ts +0 -3
  511. package/dist/types/utils/CSRF.d.ts.map +0 -1
  512. package/dist/types/utils/cookies.d.ts +0 -12
  513. package/dist/types/utils/cookies.d.ts.map +0 -1
@@ -1,839 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var sessionAuth_controller_exports = {};
30
- __export(sessionAuth_controller_exports, {
31
- askResetPassword: () => askResetPassword,
32
- checkIfUserHasPassword: () => checkIfUserHasPassword,
33
- definePassword: () => definePassword,
34
- getSessionInformation: () => getSessionInformation,
35
- githubCallback: () => githubCallback,
36
- githubLoginQuery: () => githubLoginQuery,
37
- googleCallback: () => googleCallback,
38
- googleLoginQuery: () => googleLoginQuery,
39
- logOut: () => logOut,
40
- loginEmailPassword: () => loginEmailPassword,
41
- registerEmailPassword: () => registerEmailPassword,
42
- sendVerificationUpdate: () => sendVerificationUpdate,
43
- setCSRFToken: () => setCSRFToken,
44
- updatePassword: () => updatePassword,
45
- validEmail: () => validEmail,
46
- verifyEmailStatusSSE: () => verifyEmailStatusSSE
47
- });
48
- module.exports = __toCommonJS(sessionAuth_controller_exports);
49
- var import_crypto = __toESM(require("crypto"), 1);
50
- var import_logger = require('./../logger/index.cjs');
51
- var import_sessionAuth = require('./../routes/sessionAuth.routes.cjs');
52
- var import_email = require('./../services/email.service.cjs');
53
- var sessionAuthService = __toESM(require('./../services/sessionAuth.service.cjs'), 1);
54
- var userService = __toESM(require('./../services/user.service.cjs'), 1);
55
- var import_CSRF = require('./../utils/CSRF.cjs');
56
- var import_errors = require('./../utils/errors/index.cjs');
57
- var import_httpStatusCodes = require('./../utils/httpStatusCodes.cjs');
58
- var import_organization = require('./../utils/mapper/organization.cjs');
59
- var import_project = require('./../utils/mapper/project.cjs');
60
- var import_user = require('./../utils/mapper/user.cjs');
61
- var import_responseData = require('./../utils/responseData.cjs');
62
- var import_express_intlayer = require("express-intlayer");
63
- var import_mongoose = require("mongoose");
64
- var import_uuid = require("uuid");
65
- const setCSRFToken = (req, res, _next) => {
66
- const csrf_token = (0, import_CSRF.generateToken)(req, res);
67
- const responseData = (0, import_responseData.formatResponse)({
68
- data: { csrf_token }
69
- });
70
- res.locals.csrf_token = csrf_token;
71
- res.json(responseData);
72
- };
73
- const registerEmailPassword = async (req, res, _next) => {
74
- const { user } = res.locals;
75
- const { callBack_url } = req.query;
76
- if (user) {
77
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_ALREADY_LOGGED_IN");
78
- return;
79
- }
80
- if (callBack_url && !callBack_url.startsWith(process.env.CLIENT_URL ?? "")) {
81
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "CALLBACK_URL_NOT_VALID");
82
- return;
83
- }
84
- const userData = req.body;
85
- try {
86
- let user2 = await userService.getUserByEmail(userData.email);
87
- if (user2) {
88
- const emailProvider = user2.provider?.find(
89
- (provider) => provider.provider === "email"
90
- );
91
- if (emailProvider?.emailValidated) {
92
- import_errors.ErrorHandler.handleGenericErrorResponse(
93
- res,
94
- "EMAIL_ALREADY_REGISTERED"
95
- );
96
- return;
97
- } else if (emailProvider) {
98
- user2 = await sessionAuthService.updateUserProvider(user2._id, "email", {
99
- provider: "email",
100
- emailValidated: void 0,
101
- secret: (0, import_uuid.v4)()
102
- });
103
- } else {
104
- user2 = await sessionAuthService.addUserProvider(user2._id, {
105
- provider: "email",
106
- emailValidated: void 0,
107
- secret: (0, import_uuid.v4)()
108
- });
109
- }
110
- } else {
111
- user2 = await userService.createUser({
112
- ...userData,
113
- provider: [
114
- {
115
- provider: "email",
116
- emailValidated: void 0,
117
- secret: (0, import_uuid.v4)()
118
- }
119
- ]
120
- });
121
- import_logger.logger.info(`New registration: ${user2.name} - ${user2.email}`);
122
- }
123
- if (!user2) {
124
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_CREATION_FAILED", {
125
- email: userData.email
126
- });
127
- return;
128
- }
129
- await (0, import_email.sendEmail)({
130
- type: "validate",
131
- to: user2.email,
132
- username: user2.name ?? user2.email.split("@")[0],
133
- validationLink: (0, import_sessionAuth.getSessionAuthRoutes)().validEmail.url({
134
- userId: String(user2._id),
135
- secret: user2.provider?.find((provider) => provider.provider === "email")?.secret ?? "",
136
- callBack_url
137
- })
138
- });
139
- const formattedUser = (0, import_user.mapUserToAPI)(user2);
140
- const responseData = (0, import_responseData.formatResponse)({
141
- message: (0, import_express_intlayer.t)({
142
- en: "User registered successfully",
143
- fr: "Utilisateur enregistr\xE9 avec succ\xE8s",
144
- es: "Usuario registrado con \xE9xito"
145
- }),
146
- description: (0, import_express_intlayer.t)({
147
- en: "Your user has been registered successfully. Please check your email to validate your account.",
148
- fr: "Votre utilisateur a \xE9t\xE9 enregistr\xE9 avec succ\xE8s. Veuillez v\xE9rifier votre e-mail pour valider votre compte.",
149
- es: "Su usuario ha sido registrado con \xE9xito. Por favor, revise su correo electr\xF3nico para validar su cuenta."
150
- }),
151
- data: formattedUser
152
- });
153
- res.json(responseData);
154
- return;
155
- } catch (error) {
156
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
157
- return;
158
- }
159
- };
160
- const loginEmailPassword = async (req, res, _next) => {
161
- const { user } = res.locals;
162
- if (user) {
163
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_ALREADY_LOGGED_IN");
164
- return;
165
- }
166
- const { email, password } = req.body;
167
- try {
168
- const { user: loggedInUser, error } = await sessionAuthService.testUserPassword(email, password);
169
- if (error) {
170
- if (!user) {
171
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "LOGIN_FAILED");
172
- return;
173
- }
174
- }
175
- if (!loggedInUser) {
176
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_FOUND");
177
- return;
178
- }
179
- await sessionAuthService.setUserAuth(res, loggedInUser);
180
- const formattedUser = (0, import_user.mapUserToAPI)(loggedInUser);
181
- const responseData = (0, import_responseData.formatResponse)({
182
- message: (0, import_express_intlayer.t)({
183
- en: "User logged in successfully",
184
- fr: "Utilisateur connect\xE9 avec succ\xE8s",
185
- es: "Usuario conectado con \xE9xito"
186
- }),
187
- description: (0, import_express_intlayer.t)({
188
- en: "Your user has been logged in successfully",
189
- fr: "Votre utilisateur a \xE9t\xE9 connect\xE9 avec succ\xE8s",
190
- es: "Su usuario ha sido conectado con \xE9xito"
191
- }),
192
- data: formattedUser
193
- });
194
- import_logger.logger.info(`Login: ${loggedInUser.email}`);
195
- res.json(responseData);
196
- return;
197
- } catch (error) {
198
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
199
- return;
200
- }
201
- };
202
- const logOut = async (_req, res, _next) => {
203
- const { user } = res.locals;
204
- if (!user) {
205
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
206
- return;
207
- }
208
- await sessionAuthService.clearUserAuth(res);
209
- sessionAuthService.clearOrganizationAuth(res);
210
- sessionAuthService.clearProjectAuth(res);
211
- import_logger.logger.info(`Logout: ${user.name} - ${user.email}`);
212
- const responseData = (0, import_responseData.formatResponse)({
213
- message: (0, import_express_intlayer.t)({
214
- en: "User logged out successfully",
215
- fr: "Utilisateur d\xE9connect\xE9 avec succ\xE8s",
216
- es: "Usuario desconectado con \xE9xito"
217
- }),
218
- description: (0, import_express_intlayer.t)({
219
- en: "Your user has been logged out successfully",
220
- fr: "Votre utilisateur a \xE9t\xE9 d\xE9connect\xE9 avec succ\xE8s",
221
- es: "Su usuario ha sido desconectado con \xE9xito"
222
- }),
223
- data: void 0
224
- });
225
- res.json(responseData);
226
- };
227
- const updatePassword = async (req, res, _next) => {
228
- const { oldPassword, newPassword } = req.body;
229
- let { user } = res.locals;
230
- if (!user) {
231
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
232
- return;
233
- }
234
- const userEmailProvider = user.provider?.find(
235
- (provider) => provider.provider === "email"
236
- );
237
- if (!userEmailProvider) {
238
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_PROVIDER_NOT_FOUND", {
239
- provider: "email"
240
- });
241
- return;
242
- }
243
- if (userEmailProvider.passwordHash && !oldPassword) {
244
- import_errors.ErrorHandler.handleGenericErrorResponse(
245
- res,
246
- "USER_PREVIOUS_PASSWORD_NOT_PROVIDED"
247
- );
248
- return;
249
- }
250
- try {
251
- if (oldPassword) {
252
- const { error } = await sessionAuthService.testUserPassword(
253
- user.email,
254
- oldPassword
255
- );
256
- if (error) {
257
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "LOGIN_FAILED");
258
- return;
259
- }
260
- }
261
- user = await sessionAuthService.changeUserPassword(user._id, newPassword);
262
- if (!user || typeof user !== "object") {
263
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_DATA_NOT_FOUND");
264
- return;
265
- }
266
- import_logger.logger.info(
267
- `Password changed - User : Name : ${user.name}, id : ${String(user._id)}`
268
- );
269
- const formattedUser = (0, import_user.mapUserToAPI)(user);
270
- const responseData = (0, import_responseData.formatResponse)({
271
- message: (0, import_express_intlayer.t)({
272
- en: "Password changed successfully",
273
- fr: "Mot de passe modifi\xE9 avec succ\xE8s",
274
- es: "Contrase\xF1a cambiada con \xE9xito"
275
- }),
276
- description: (0, import_express_intlayer.t)({
277
- en: "Your password has been changed successfully",
278
- fr: "Votre mot de passe a \xE9t\xE9 modifi\xE9 avec succ\xE8s",
279
- es: "Su contrase\xF1a ha sido cambiada con \xE9xito"
280
- }),
281
- data: formattedUser
282
- });
283
- res.json(responseData);
284
- return;
285
- } catch (error) {
286
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
287
- return;
288
- }
289
- };
290
- let clients = [];
291
- const sendVerificationUpdate = (user) => {
292
- const filteredClients = clients.filter(
293
- (client) => String(client.userId) === String(user._id)
294
- );
295
- for (const client of filteredClients) {
296
- const provider = user.provider?.find(
297
- (provider2) => provider2.provider === "email"
298
- );
299
- if (provider?.emailValidated) {
300
- client.res.write(
301
- `data: ${JSON.stringify({ userId: user._id, status: "verified" })}
302
-
303
- `
304
- );
305
- continue;
306
- }
307
- client.res.write(
308
- `data: ${JSON.stringify({ userId: user._id, status: "waiting" })}
309
-
310
- `
311
- );
312
- }
313
- };
314
- const checkIfUserHasPassword = async (_req, res, _next) => {
315
- const { user } = res.locals;
316
- if (!user) {
317
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
318
- return;
319
- }
320
- try {
321
- const userProvider = user.provider?.find(
322
- (provider) => provider.provider === "email"
323
- );
324
- const responseData = (0, import_responseData.formatResponse)({
325
- data: {
326
- hasPassword: Boolean(userProvider?.passwordHash)
327
- }
328
- });
329
- res.json(responseData);
330
- return;
331
- } catch (error) {
332
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
333
- return;
334
- }
335
- };
336
- const validEmail = async (req, res, _next) => {
337
- const { userId, secret } = req.params;
338
- const callBack_url = `${req.query.callBack_url ?? `${process.env.CLIENT_URL}/auth/login`}?userId=${userId}`;
339
- if (!import_mongoose.Types.ObjectId.isValid(userId.toString())) {
340
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "INVALID_USER_ID");
341
- return;
342
- }
343
- const user = await userService.getUserById(userId);
344
- if (!user) {
345
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED", {
346
- userId
347
- });
348
- return;
349
- }
350
- if (callBack_url && !callBack_url.startsWith(process.env.CLIENT_URL ?? "")) {
351
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "CALLBACK_URL_NOT_VALID");
352
- return;
353
- }
354
- const provider = user.provider?.find(
355
- (provider2) => provider2.provider === "email"
356
- );
357
- if (provider?.emailValidated) {
358
- res.redirect(callBack_url);
359
- }
360
- if (!provider?.secret) {
361
- throw new import_errors.GenericError("USER_PROVIDER_SECRET_NOT_DEFINED", { userId });
362
- }
363
- if (!import_crypto.default.timingSafeEqual(Buffer.from(provider.secret), Buffer.from(secret))) {
364
- throw new import_errors.GenericError("USER_PROVIDER_SECRET_NOT_VALID", { userId });
365
- }
366
- await sessionAuthService.updateUserProvider(userId, "email", {
367
- secret: void 0,
368
- emailValidated: /* @__PURE__ */ new Date()
369
- });
370
- import_logger.logger.info(
371
- `User activated - User: Name: ${user.name}, id: ${String(user._id)}`
372
- );
373
- sendVerificationUpdate(user);
374
- await sessionAuthService.setUserAuth(res, user);
375
- await (0, import_email.sendEmail)({
376
- type: "welcome",
377
- to: user.email,
378
- username: user.name,
379
- loginLink: callBack_url
380
- });
381
- res.redirect(callBack_url);
382
- };
383
- const verifyEmailStatusSSE = async (req, res) => {
384
- res.setHeader("Content-Type", "text/event-stream;charset=utf-8");
385
- res.setHeader("Cache-Control", "no-cache, no-transform");
386
- res.setHeader("Connection", "keep-alive");
387
- res.setHeader("X-Accel-Buffering", "no");
388
- res.write(":\n\n");
389
- res.flushHeaders();
390
- const { userId } = req.params;
391
- const clientId = Date.now();
392
- const user = await userService.getUserById(userId);
393
- if (!user) {
394
- import_logger.logger.error(`User not found - User ID: ${userId}`);
395
- res.write(`data: ${JSON.stringify({ userId, status: "error" })}
396
-
397
- `);
398
- res.end();
399
- return;
400
- }
401
- const newClient = { id: clientId, userId, res };
402
- clients.push(newClient);
403
- sendVerificationUpdate(user);
404
- req.on("close", () => {
405
- clients = clients.filter((client) => client.id !== clientId);
406
- });
407
- };
408
- const askResetPassword = async (req, res, _next) => {
409
- const { email } = req.body;
410
- if (!email) {
411
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "EMAIL_NOT_PROVIDED");
412
- return;
413
- }
414
- try {
415
- const updatedUser = await sessionAuthService.requestPasswordReset(email);
416
- if (!updatedUser) {
417
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_FOUND", { email });
418
- return;
419
- }
420
- import_logger.logger.info(
421
- `Ask changing password - User: Name: ${updatedUser.name}, id: ${String(updatedUser._id)}`
422
- );
423
- await (0, import_email.sendEmail)({
424
- type: "resetPassword",
425
- to: updatedUser.email,
426
- username: updatedUser.name,
427
- resetLink: `${process.env.CLIENT_URL}/auth/password/reset/${String(updatedUser._id)}/${updatedUser.provider?.find((provider) => provider.provider === "email")?.secret ?? ""}`
428
- });
429
- const responseData = (0, import_responseData.formatResponse)({
430
- message: (0, import_express_intlayer.t)({
431
- en: "Password reset request sent successfully",
432
- fr: "Demande de r\xE9initialisation de mot de passe envoy\xE9e avec succ\xE8s",
433
- es: "Solicitud de restablecimiento de contrase\xF1a enviada con \xE9xito"
434
- }),
435
- description: (0, import_express_intlayer.t)({
436
- en: "Your password reset request has been sent successfully. Please check your email to reset your password.",
437
- fr: "Votre demande de r\xE9initialisation de mot de passe a \xE9t\xE9 envoy\xE9e avec succ\xE8s. Veuillez v\xE9rifier votre e-mail pour r\xE9initialiser votre mot de passe.",
438
- es: "Su solicitud de restablecimiento de contrase\xF1a ha sido enviada con \xE9xito. Por favor, revise su correo electr\xF3nico para restablecer su contrase\xF1a."
439
- }),
440
- data: void 0
441
- });
442
- res.json(responseData);
443
- return;
444
- } catch (error) {
445
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
446
- return;
447
- }
448
- };
449
- const definePassword = async (req, res, _next) => {
450
- const { secret, userId, password } = req.body;
451
- const userIdString = String(userId);
452
- if (!userId || !userIdString || !import_mongoose.Types.ObjectId.isValid(userIdString)) {
453
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "INVALID_USER_ID", { userId });
454
- return;
455
- }
456
- if (!secret) {
457
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "SECRET_NOT_PROVIDED");
458
- return;
459
- }
460
- try {
461
- const updatedUser = await sessionAuthService.resetUserPassword(
462
- userId,
463
- secret,
464
- password
465
- );
466
- import_logger.logger.info(
467
- `Password changed - User: Name: ${updatedUser.name}, id: ${String(updatedUser._id)}`
468
- );
469
- await (0, import_email.sendEmail)({
470
- type: "passwordChangeConfirmation",
471
- to: updatedUser.email,
472
- username: updatedUser.name
473
- });
474
- const formattedUser = (0, import_user.mapUserToAPI)(updatedUser);
475
- const responseData = (0, import_responseData.formatResponse)({
476
- message: (0, import_express_intlayer.t)({
477
- en: "Password reset successfully",
478
- fr: "R\xE9initialisation du mot de passe r\xE9ussie",
479
- es: "Restablecimiento de contrase\xF1a exitoso"
480
- }),
481
- description: (0, import_express_intlayer.t)({
482
- en: "Your password has been reset successfully. You can now log in with your new password",
483
- fr: "Votre mot de passe a \xE9t\xE9 r\xE9initialis\xE9 avec succ\xE8s. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe",
484
- es: "Su contrase\xF1a ha sido restablecida con \xE9xito. Ahora puede iniciar sesi\xF3n con su nueva contrase\xF1a"
485
- }),
486
- data: formattedUser
487
- });
488
- res.json(responseData);
489
- return;
490
- } catch (error) {
491
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
492
- return;
493
- }
494
- };
495
- const getSessionInformation = async (req, res, _next) => {
496
- const { session_token: sessionToken } = req.query;
497
- let { user } = res.locals;
498
- const { organization, project, isOrganizationAdmin, isProjectAdmin } = res.locals;
499
- try {
500
- if (sessionToken) {
501
- user = await userService.getUserBySession(sessionToken);
502
- }
503
- if (!user || !user?.session) {
504
- const responseData2 = (0, import_responseData.formatResponse)({
505
- data: {
506
- session: null,
507
- user: null,
508
- organization: organization?._id ? (0, import_organization.mapOrganizationToAPI)(organization, isOrganizationAdmin) : null,
509
- project: project?._id ? (0, import_project.mapProjectToAPI)(project, user, isProjectAdmin) : null
510
- }
511
- });
512
- res.json(responseData2);
513
- return;
514
- }
515
- const session = user.session;
516
- const formattedUser = {
517
- ...(0, import_user.mapUserToAPI)(user),
518
- role: "user"
519
- };
520
- const responseData = (0, import_responseData.formatResponse)({
521
- data: {
522
- session,
523
- user: formattedUser,
524
- organization: organization?._id ? (0, import_organization.mapOrganizationToAPI)(organization, isOrganizationAdmin) : null,
525
- project: project?._id ? (0, import_project.mapProjectToAPI)(project, user, isProjectAdmin) : null
526
- }
527
- });
528
- res.json(responseData);
529
- return;
530
- } catch (error) {
531
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
532
- return;
533
- }
534
- };
535
- const githubLoginQuery = (req, res, _next) => {
536
- const { origin } = req.query;
537
- const { user } = res.locals;
538
- if (user) {
539
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "USER_ALREADY_LOGGED_IN");
540
- return;
541
- }
542
- if (origin && !origin.startsWith(process.env.CLIENT_URL ?? "")) {
543
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "CALLBACK_URL_NOT_VALID");
544
- return;
545
- }
546
- const encodedOrigin = encodeURIComponent(origin);
547
- const redirectURI = `${process.env.BACKEND_URL}/api/auth/callback/github?redirect_uri=${encodedOrigin}`;
548
- const encodedRedirectURI = encodeURIComponent(redirectURI);
549
- res.redirect(
550
- `https://github.com/login/oauth/authorize?client_id=${process.env.GITHUB_CLIENT_ID}&redirect_uri=${encodedRedirectURI}&scope=user:email`
551
- );
552
- };
553
- const githubCallback = async (req, res, _next) => {
554
- const { code, redirect_uri } = req.query;
555
- if (!code) {
556
- const errorMessage = "Code not provided";
557
- import_logger.logger.error(errorMessage);
558
- res.redirect(redirect_uri);
559
- return;
560
- }
561
- if (!redirect_uri) {
562
- const errorMessage = "Redirect URI not provided";
563
- import_logger.logger.error(errorMessage);
564
- res.redirect(redirect_uri);
565
- return;
566
- }
567
- if (redirect_uri && !redirect_uri.startsWith(process.env.CLIENT_URL ?? "")) {
568
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "CALLBACK_URL_NOT_VALID");
569
- return;
570
- }
571
- try {
572
- const tokenResponse = await fetch(
573
- "https://github.com/login/oauth/access_token",
574
- {
575
- method: "POST",
576
- headers: {
577
- "Content-Type": "application/json",
578
- Accept: "application/json"
579
- },
580
- body: JSON.stringify({
581
- client_id: process.env.GITHUB_CLIENT_ID,
582
- client_secret: process.env.GITHUB_CLIENT_SECRET,
583
- code
584
- })
585
- }
586
- );
587
- const tokenData = await tokenResponse.json();
588
- const userResponse = await fetch("https://api.github.com/user", {
589
- method: "GET",
590
- headers: {
591
- Authorization: `Bearer ${tokenData.access_token}`,
592
- Accept: "application/vnd.github.v3+json"
593
- }
594
- });
595
- if (!userResponse.ok) {
596
- throw new import_errors.GenericError("GITHUB_FETCH_USER_DATA_FAILED", { userResponse });
597
- }
598
- const userData = await userResponse.json();
599
- const emailResponse = await fetch("https://api.github.com/user/emails", {
600
- method: "GET",
601
- headers: {
602
- Authorization: `Bearer ${tokenData.access_token}`,
603
- Accept: "application/vnd.github.v3+json"
604
- }
605
- });
606
- if (!emailResponse.ok) {
607
- throw new import_errors.GenericError("GIT_HUB_FETCH_USER_EMAIL_FAILED", {
608
- emailResponse
609
- });
610
- }
611
- const emails = await emailResponse.json();
612
- const primaryEmail = emails.find((email) => email.primary)?.email;
613
- if (!primaryEmail) {
614
- const errorMessage = "Primary email not found";
615
- import_logger.logger.error(errorMessage);
616
- const responseCode = import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404;
617
- res.redirect(responseCode, redirect_uri);
618
- return;
619
- }
620
- let existingUser = await userService.getUserByEmail(primaryEmail);
621
- if (existingUser) {
622
- const existingProvider = await sessionAuthService.getUserProvider(
623
- existingUser._id,
624
- "github"
625
- );
626
- if (existingProvider?.providerAccountId !== userData.id) {
627
- const updatedUser2 = await sessionAuthService.updateUserProvider(
628
- existingUser._id,
629
- "github",
630
- {
631
- providerAccountId: userData.id
632
- }
633
- );
634
- import_logger.logger.info(
635
- `GitHub login provider updated - User: Name: ${updatedUser2.name}, id: ${String(updatedUser2._id)}`
636
- );
637
- if (updatedUser2) {
638
- existingUser = updatedUser2;
639
- }
640
- }
641
- const updatedUser = await userService.updateUserById(existingUser._id, {
642
- name: existingUser.name ?? userData.name
643
- });
644
- await sessionAuthService.setUserAuth(res, updatedUser);
645
- res.redirect(redirect_uri);
646
- return;
647
- }
648
- const userInformation = {
649
- name: userData.name,
650
- email: primaryEmail
651
- };
652
- const userProvider = {
653
- provider: "github",
654
- providerAccountId: userData.id
655
- };
656
- const user = await userService.createUser({
657
- ...userInformation,
658
- provider: [userProvider]
659
- });
660
- await sessionAuthService.setUserAuth(res, user);
661
- import_logger.logger.info(
662
- `GitHub login - User: Name: ${user.name}, id: ${String(user._id)}`
663
- );
664
- await (0, import_email.sendEmail)({
665
- type: "welcome",
666
- to: user.email,
667
- username: user.name,
668
- loginLink: `${process.env.CLIENT_URL}/auth/login`
669
- });
670
- res.redirect(redirect_uri);
671
- } catch (error) {
672
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
673
- return;
674
- }
675
- };
676
- const googleLoginQuery = (req, res, _next) => {
677
- const { origin } = req.query;
678
- const { user } = res.locals;
679
- if (user) {
680
- const errorMessage = `User already logged in - ${user?.email}`;
681
- import_logger.logger.error(errorMessage);
682
- res.redirect(origin);
683
- return;
684
- }
685
- if (origin && !origin.startsWith(process.env.CLIENT_URL ?? "")) {
686
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "CALLBACK_URL_NOT_VALID");
687
- return;
688
- }
689
- const responseType = "code";
690
- const scope = [
691
- "https%3A//www.googleapis.com/auth/userinfo.email",
692
- "https%3A//www.googleapis.com/auth/userinfo.profile"
693
- ].join(" ");
694
- const includeGrantedScopes = "false";
695
- const encodedOrigin = encodeURIComponent(origin);
696
- const state = JSON.stringify({ redirect_uri: encodedOrigin });
697
- const redirectURI = `${process.env.BACKEND_URL}/api/auth/callback/google`;
698
- res.redirect(
699
- `https://accounts.google.com/o/oauth2/v2/auth?client_id=${process.env.GOOGLE_CLIENT_ID}&redirect_uri=${redirectURI}&response_type=${responseType}&scope=${scope}&include_granted_scopes=${includeGrantedScopes}&state=${state}`
700
- );
701
- };
702
- const googleCallback = async (req, res, _next) => {
703
- const { code, state } = req.query;
704
- const decodedState = decodeURIComponent(state);
705
- const { redirect_uri } = JSON.parse(decodedState);
706
- if (!code) {
707
- const errorMessage = "code not provided";
708
- import_logger.logger.error(errorMessage);
709
- const responseCode = import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400;
710
- res.redirect(responseCode, redirect_uri);
711
- return;
712
- }
713
- if (!redirect_uri) {
714
- const errorMessage = "Redirect URI not provided";
715
- import_logger.logger.error(errorMessage);
716
- const responseCode = import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400;
717
- res.redirect(responseCode, redirect_uri);
718
- return;
719
- }
720
- if (redirect_uri && !redirect_uri.startsWith(process.env.CLIENT_URL ?? "")) {
721
- import_errors.ErrorHandler.handleGenericErrorResponse(res, "CALLBACK_URL_NOT_VALID");
722
- return;
723
- }
724
- try {
725
- const tokenResponse = await fetch("https://oauth2.googleapis.com/token", {
726
- method: "POST",
727
- headers: {
728
- "Content-Type": "application/x-www-form-urlencoded"
729
- },
730
- body: new URLSearchParams({
731
- code,
732
- redirect_uri: `${process.env.BACKEND_URL}/api/auth/callback/google`,
733
- client_id: process.env.GOOGLE_CLIENT_ID,
734
- client_secret: process.env.GOOGLE_CLIENT_SECRET,
735
- grant_type: "authorization_code"
736
- })
737
- });
738
- const responseData = await tokenResponse.json();
739
- const { access_token: accessToken } = responseData;
740
- if (!accessToken) {
741
- const errorMessage = "Failed to fetch access_token";
742
- import_logger.logger.error(errorMessage);
743
- const responseCode = import_httpStatusCodes.HttpStatusCodes.INTERNAL_SERVER_ERROR_500;
744
- res.redirect(responseCode, redirect_uri);
745
- return;
746
- }
747
- const userResponse = await fetch(
748
- "https://www.googleapis.com/oauth2/v3/userinfo",
749
- {
750
- method: "GET",
751
- headers: {
752
- Authorization: `Bearer ${accessToken}`
753
- }
754
- }
755
- );
756
- const userData = await userResponse.json();
757
- if (!userData.email) {
758
- const errorMessage = "Failed to fetch user data from Google";
759
- import_logger.logger.error(errorMessage);
760
- const responseCode = import_httpStatusCodes.HttpStatusCodes.INTERNAL_SERVER_ERROR_500;
761
- res.redirect(responseCode, redirect_uri);
762
- return;
763
- }
764
- let existingUser = await userService.getUserByEmail(userData.email);
765
- if (existingUser) {
766
- const existingProvider = await sessionAuthService.getUserProvider(
767
- existingUser._id,
768
- "google"
769
- );
770
- if (existingProvider?.providerAccountId !== userData.sub) {
771
- const updatedUser2 = await sessionAuthService.updateUserProvider(
772
- existingUser._id,
773
- "google",
774
- {
775
- providerAccountId: userData.id
776
- }
777
- );
778
- import_logger.logger.info(
779
- `Google login provider updated - User: Name: ${updatedUser2.name}, id: ${String(updatedUser2._id)}`
780
- );
781
- if (updatedUser2) {
782
- existingUser = updatedUser2;
783
- }
784
- }
785
- const updatedUser = await userService.updateUserById(existingUser._id, {
786
- name: existingUser.name ?? userData.name
787
- });
788
- await sessionAuthService.setUserAuth(res, updatedUser);
789
- res.redirect(redirect_uri);
790
- return;
791
- }
792
- const userInformation = {
793
- name: userData.name,
794
- email: userData.email
795
- };
796
- const userProvider = {
797
- provider: "google",
798
- providerAccountId: userData.id
799
- };
800
- const user = await userService.createUser({
801
- ...userInformation,
802
- provider: [userProvider]
803
- });
804
- await sessionAuthService.setUserAuth(res, user);
805
- import_logger.logger.info(
806
- `Google login - User: Name: ${user.name}, id: ${String(user._id)}`
807
- );
808
- await (0, import_email.sendEmail)({
809
- type: "welcome",
810
- to: user.email,
811
- username: user.name,
812
- loginLink: `${process.env.CLIENT_URL}/auth/login`
813
- });
814
- res.redirect(redirect_uri);
815
- } catch (error) {
816
- import_errors.ErrorHandler.handleAppErrorResponse(res, error);
817
- return;
818
- }
819
- };
820
- // Annotate the CommonJS export names for ESM import in node:
821
- 0 && (module.exports = {
822
- askResetPassword,
823
- checkIfUserHasPassword,
824
- definePassword,
825
- getSessionInformation,
826
- githubCallback,
827
- githubLoginQuery,
828
- googleCallback,
829
- googleLoginQuery,
830
- logOut,
831
- loginEmailPassword,
832
- registerEmailPassword,
833
- sendVerificationUpdate,
834
- setCSRFToken,
835
- updatePassword,
836
- validEmail,
837
- verifyEmailStatusSSE
838
- });
839
- //# sourceMappingURL=sessionAuth.controller.cjs.map