@intlayer/backend 7.2.1-canary.0 → 7.2.2

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 (290) hide show
  1. package/dist/esm/utils/AI/aiSdk.mjs +7 -1
  2. package/dist/esm/utils/AI/aiSdk.mjs.map +1 -1
  3. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  4. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  5. package/dist/types/controllers/tag.controller.d.ts.map +1 -1
  6. package/dist/types/emails/InviteUserEmail.d.ts +4 -4
  7. package/dist/types/emails/InviteUserEmail.d.ts.map +1 -1
  8. package/dist/types/emails/MagicLinkEmail.d.ts +4 -4
  9. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +4 -4
  10. package/dist/types/emails/PasswordChangeConfirmation.d.ts +4 -4
  11. package/dist/types/emails/PasswordChangeConfirmation.d.ts.map +1 -1
  12. package/dist/types/emails/ResetUserPassword.d.ts +4 -4
  13. package/dist/types/emails/ResetUserPassword.d.ts.map +1 -1
  14. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +4 -4
  15. package/dist/types/emails/SubscriptionPaymentError.d.ts +4 -4
  16. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +4 -4
  17. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts.map +1 -1
  18. package/dist/types/emails/ValidateUserEmail.d.ts +4 -4
  19. package/dist/types/emails/Welcome.d.ts +4 -4
  20. package/dist/types/models/dictionary.model.d.ts +4 -4
  21. package/dist/types/models/dictionary.model.d.ts.map +1 -1
  22. package/dist/types/models/discussion.model.d.ts +2 -2
  23. package/dist/types/models/discussion.model.d.ts.map +1 -1
  24. package/dist/types/models/oAuth2.model.d.ts +3 -3
  25. package/dist/types/models/oAuth2.model.d.ts.map +1 -1
  26. package/dist/types/routes/ai.routes.d.ts.map +1 -1
  27. package/dist/types/routes/project.routes.d.ts.map +1 -1
  28. package/dist/types/schemas/dictionary.schema.d.ts +6 -6
  29. package/dist/types/schemas/dictionary.schema.d.ts.map +1 -1
  30. package/dist/types/schemas/discussion.schema.d.ts +6 -6
  31. package/dist/types/schemas/oAuth2.schema.d.ts +5 -5
  32. package/dist/types/schemas/organization.schema.d.ts +6 -6
  33. package/dist/types/schemas/plans.schema.d.ts +6 -6
  34. package/dist/types/schemas/project.schema.d.ts +6 -6
  35. package/dist/types/schemas/project.schema.d.ts.map +1 -1
  36. package/dist/types/schemas/session.schema.d.ts +6 -6
  37. package/dist/types/schemas/tag.schema.d.ts +6 -6
  38. package/dist/types/schemas/user.schema.d.ts +6 -6
  39. package/dist/types/services/email.service.d.ts +11 -11
  40. package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +2 -2
  41. package/dist/types/utils/filtersAndPagination/getDiscussionFiltersAndPagination.d.ts +2 -2
  42. package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +2 -2
  43. package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +2 -2
  44. package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +2 -2
  45. package/package.json +17 -18
  46. package/dist/cjs/_virtual/_utils_asset.cjs +0 -98
  47. package/dist/cjs/_virtual/rolldown_runtime.cjs +0 -25
  48. package/dist/cjs/controllers/ai.controller.cjs +0 -381
  49. package/dist/cjs/controllers/ai.controller.cjs.map +0 -1
  50. package/dist/cjs/controllers/dictionary.controller.cjs +0 -463
  51. package/dist/cjs/controllers/dictionary.controller.cjs.map +0 -1
  52. package/dist/cjs/controllers/eventListener.controller.cjs +0 -53
  53. package/dist/cjs/controllers/eventListener.controller.cjs.map +0 -1
  54. package/dist/cjs/controllers/newsletter.controller.cjs +0 -164
  55. package/dist/cjs/controllers/newsletter.controller.cjs.map +0 -1
  56. package/dist/cjs/controllers/oAuth2.controller.cjs +0 -22
  57. package/dist/cjs/controllers/oAuth2.controller.cjs.map +0 -1
  58. package/dist/cjs/controllers/organization.controller.cjs +0 -492
  59. package/dist/cjs/controllers/organization.controller.cjs.map +0 -1
  60. package/dist/cjs/controllers/project.controller.cjs +0 -430
  61. package/dist/cjs/controllers/project.controller.cjs.map +0 -1
  62. package/dist/cjs/controllers/projectAccessKey.controller.cjs +0 -161
  63. package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +0 -1
  64. package/dist/cjs/controllers/search.controller.cjs +0 -14
  65. package/dist/cjs/controllers/search.controller.cjs.map +0 -1
  66. package/dist/cjs/controllers/stripe.controller.cjs +0 -149
  67. package/dist/cjs/controllers/stripe.controller.cjs.map +0 -1
  68. package/dist/cjs/controllers/tag.controller.cjs +0 -226
  69. package/dist/cjs/controllers/tag.controller.cjs.map +0 -1
  70. package/dist/cjs/controllers/user.controller.cjs +0 -269
  71. package/dist/cjs/controllers/user.controller.cjs.map +0 -1
  72. package/dist/cjs/emails/InviteUserEmail.cjs +0 -325
  73. package/dist/cjs/emails/InviteUserEmail.cjs.map +0 -1
  74. package/dist/cjs/emails/MagicLinkEmail.cjs +0 -242
  75. package/dist/cjs/emails/MagicLinkEmail.cjs.map +0 -1
  76. package/dist/cjs/emails/OAuthTokenCreatedEmail.cjs +0 -301
  77. package/dist/cjs/emails/OAuthTokenCreatedEmail.cjs.map +0 -1
  78. package/dist/cjs/emails/PasswordChangeConfirmation.cjs +0 -177
  79. package/dist/cjs/emails/PasswordChangeConfirmation.cjs.map +0 -1
  80. package/dist/cjs/emails/ResetUserPassword.cjs +0 -240
  81. package/dist/cjs/emails/ResetUserPassword.cjs.map +0 -1
  82. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs +0 -202
  83. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs.map +0 -1
  84. package/dist/cjs/emails/SubscriptionPaymentError.cjs +0 -202
  85. package/dist/cjs/emails/SubscriptionPaymentError.cjs.map +0 -1
  86. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs +0 -208
  87. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs.map +0 -1
  88. package/dist/cjs/emails/ValidateUserEmail.cjs +0 -240
  89. package/dist/cjs/emails/ValidateUserEmail.cjs.map +0 -1
  90. package/dist/cjs/emails/Welcome.cjs +0 -216
  91. package/dist/cjs/emails/Welcome.cjs.map +0 -1
  92. package/dist/cjs/emails/index.cjs +0 -25
  93. package/dist/cjs/export.cjs +0 -24
  94. package/dist/cjs/index.cjs +0 -91
  95. package/dist/cjs/index.cjs.map +0 -1
  96. package/dist/cjs/logger/index.cjs +0 -13
  97. package/dist/cjs/logger/index.cjs.map +0 -1
  98. package/dist/cjs/middlewares/oAuth2.middleware.cjs +0 -42
  99. package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +0 -1
  100. package/dist/cjs/middlewares/request.middleware.cjs +0 -17
  101. package/dist/cjs/middlewares/request.middleware.cjs.map +0 -1
  102. package/dist/cjs/middlewares/sessionAuth.middleware.cjs +0 -22
  103. package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +0 -1
  104. package/dist/cjs/models/dictionary.model.cjs +0 -10
  105. package/dist/cjs/models/dictionary.model.cjs.map +0 -1
  106. package/dist/cjs/models/discussion.model.cjs +0 -10
  107. package/dist/cjs/models/discussion.model.cjs.map +0 -1
  108. package/dist/cjs/models/oAuth2.model.cjs +0 -10
  109. package/dist/cjs/models/oAuth2.model.cjs.map +0 -1
  110. package/dist/cjs/models/organization.model.cjs +0 -10
  111. package/dist/cjs/models/organization.model.cjs.map +0 -1
  112. package/dist/cjs/models/project.model.cjs +0 -10
  113. package/dist/cjs/models/project.model.cjs.map +0 -1
  114. package/dist/cjs/models/session.model.cjs +0 -10
  115. package/dist/cjs/models/session.model.cjs.map +0 -1
  116. package/dist/cjs/models/tag.model.cjs +0 -10
  117. package/dist/cjs/models/tag.model.cjs.map +0 -1
  118. package/dist/cjs/models/user.model.cjs +0 -10
  119. package/dist/cjs/models/user.model.cjs.map +0 -1
  120. package/dist/cjs/routes/ai.routes.cjs +0 -75
  121. package/dist/cjs/routes/ai.routes.cjs.map +0 -1
  122. package/dist/cjs/routes/dictionary.routes.cjs +0 -64
  123. package/dist/cjs/routes/dictionary.routes.cjs.map +0 -1
  124. package/dist/cjs/routes/eventListener.routes.cjs +0 -20
  125. package/dist/cjs/routes/eventListener.routes.cjs.map +0 -1
  126. package/dist/cjs/routes/newsletter.routes.cjs +0 -34
  127. package/dist/cjs/routes/newsletter.routes.cjs.map +0 -1
  128. package/dist/cjs/routes/organization.routes.cjs +0 -70
  129. package/dist/cjs/routes/organization.routes.cjs.map +0 -1
  130. package/dist/cjs/routes/project.routes.cjs +0 -83
  131. package/dist/cjs/routes/project.routes.cjs.map +0 -1
  132. package/dist/cjs/routes/search.routes.cjs +0 -20
  133. package/dist/cjs/routes/search.routes.cjs.map +0 -1
  134. package/dist/cjs/routes/stripe.routes.cjs +0 -34
  135. package/dist/cjs/routes/stripe.routes.cjs.map +0 -1
  136. package/dist/cjs/routes/tags.routes.cjs +0 -40
  137. package/dist/cjs/routes/tags.routes.cjs.map +0 -1
  138. package/dist/cjs/routes/user.routes.cjs +0 -58
  139. package/dist/cjs/routes/user.routes.cjs.map +0 -1
  140. package/dist/cjs/schemas/dictionary.schema.cjs +0 -73
  141. package/dist/cjs/schemas/dictionary.schema.cjs.map +0 -1
  142. package/dist/cjs/schemas/discussion.schema.cjs +0 -81
  143. package/dist/cjs/schemas/discussion.schema.cjs.map +0 -1
  144. package/dist/cjs/schemas/oAuth2.schema.cjs +0 -49
  145. package/dist/cjs/schemas/oAuth2.schema.cjs.map +0 -1
  146. package/dist/cjs/schemas/organization.schema.cjs +0 -62
  147. package/dist/cjs/schemas/organization.schema.cjs.map +0 -1
  148. package/dist/cjs/schemas/plans.schema.cjs +0 -75
  149. package/dist/cjs/schemas/plans.schema.cjs.map +0 -1
  150. package/dist/cjs/schemas/project.schema.cjs +0 -112
  151. package/dist/cjs/schemas/project.schema.cjs.map +0 -1
  152. package/dist/cjs/schemas/session.schema.cjs +0 -43
  153. package/dist/cjs/schemas/session.schema.cjs.map +0 -1
  154. package/dist/cjs/schemas/tag.schema.cjs +0 -62
  155. package/dist/cjs/schemas/tag.schema.cjs.map +0 -1
  156. package/dist/cjs/schemas/user.schema.cjs +0 -87
  157. package/dist/cjs/schemas/user.schema.cjs.map +0 -1
  158. package/dist/cjs/services/dictionary.service.cjs +0 -176
  159. package/dist/cjs/services/dictionary.service.cjs.map +0 -1
  160. package/dist/cjs/services/email.service.cjs +0 -155
  161. package/dist/cjs/services/email.service.cjs.map +0 -1
  162. package/dist/cjs/services/oAuth2.service.cjs +0 -211
  163. package/dist/cjs/services/oAuth2.service.cjs.map +0 -1
  164. package/dist/cjs/services/organization.service.cjs +0 -106
  165. package/dist/cjs/services/organization.service.cjs.map +0 -1
  166. package/dist/cjs/services/project.service.cjs +0 -89
  167. package/dist/cjs/services/project.service.cjs.map +0 -1
  168. package/dist/cjs/services/projectAccessKey.service.cjs +0 -111
  169. package/dist/cjs/services/projectAccessKey.service.cjs.map +0 -1
  170. package/dist/cjs/services/subscription.service.cjs +0 -184
  171. package/dist/cjs/services/subscription.service.cjs.map +0 -1
  172. package/dist/cjs/services/tag.service.cjs +0 -88
  173. package/dist/cjs/services/tag.service.cjs.map +0 -1
  174. package/dist/cjs/services/user.service.cjs +0 -120
  175. package/dist/cjs/services/user.service.cjs.map +0 -1
  176. package/dist/cjs/types/Routes.cjs +0 -0
  177. package/dist/cjs/types/dictionary.types.cjs +0 -0
  178. package/dist/cjs/types/discussion.types.cjs +0 -0
  179. package/dist/cjs/types/oAuth2.types.cjs +0 -0
  180. package/dist/cjs/types/organization.types.cjs +0 -0
  181. package/dist/cjs/types/plan.types.cjs +0 -0
  182. package/dist/cjs/types/project.types.cjs +0 -0
  183. package/dist/cjs/types/session.types.cjs +0 -0
  184. package/dist/cjs/types/tag.types.cjs +0 -0
  185. package/dist/cjs/types/user.types.cjs +0 -10
  186. package/dist/cjs/types/user.types.cjs.map +0 -1
  187. package/dist/cjs/utils/AI/aiSdk.cjs +0 -94
  188. package/dist/cjs/utils/AI/aiSdk.cjs.map +0 -1
  189. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs +0 -201
  190. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs.map +0 -1
  191. package/dist/cjs/utils/AI/askDocQuestion/indexMarkdownFiles.cjs +0 -150
  192. package/dist/cjs/utils/AI/askDocQuestion/indexMarkdownFiles.cjs.map +0 -1
  193. package/dist/cjs/utils/AI/auditDictionary/index.cjs +0 -60
  194. package/dist/cjs/utils/AI/auditDictionary/index.cjs.map +0 -1
  195. package/dist/cjs/utils/AI/auditDictionaryField/index.cjs +0 -63
  196. package/dist/cjs/utils/AI/auditDictionaryField/index.cjs.map +0 -1
  197. package/dist/cjs/utils/AI/auditDictionaryMetadata/index.cjs +0 -45
  198. package/dist/cjs/utils/AI/auditDictionaryMetadata/index.cjs.map +0 -1
  199. package/dist/cjs/utils/AI/auditTag/index.cjs +0 -40
  200. package/dist/cjs/utils/AI/auditTag/index.cjs.map +0 -1
  201. package/dist/cjs/utils/AI/autocomplete/index.cjs +0 -41
  202. package/dist/cjs/utils/AI/autocomplete/index.cjs.map +0 -1
  203. package/dist/cjs/utils/AI/customQuery/index.cjs +0 -27
  204. package/dist/cjs/utils/AI/customQuery/index.cjs.map +0 -1
  205. package/dist/cjs/utils/AI/translateJSON/index.cjs +0 -71
  206. package/dist/cjs/utils/AI/translateJSON/index.cjs.map +0 -1
  207. package/dist/cjs/utils/access.cjs +0 -0
  208. package/dist/cjs/utils/accessControl.cjs +0 -133
  209. package/dist/cjs/utils/accessControl.cjs.map +0 -1
  210. package/dist/cjs/utils/auth/getAuth.cjs +0 -218
  211. package/dist/cjs/utils/auth/getAuth.cjs.map +0 -1
  212. package/dist/cjs/utils/cors.cjs +0 -33
  213. package/dist/cjs/utils/cors.cjs.map +0 -1
  214. package/dist/cjs/utils/ensureArrayQueryFilter.cjs +0 -13
  215. package/dist/cjs/utils/ensureArrayQueryFilter.cjs.map +0 -1
  216. package/dist/cjs/utils/ensureMongoDocumentToObject.cjs +0 -16
  217. package/dist/cjs/utils/ensureMongoDocumentToObject.cjs.map +0 -1
  218. package/dist/cjs/utils/errors/ErrorHandler.cjs +0 -76
  219. package/dist/cjs/utils/errors/ErrorHandler.cjs.map +0 -1
  220. package/dist/cjs/utils/errors/ErrorsClass.cjs +0 -54
  221. package/dist/cjs/utils/errors/ErrorsClass.cjs.map +0 -1
  222. package/dist/cjs/utils/errors/errorCodes.cjs +0 -1387
  223. package/dist/cjs/utils/errors/errorCodes.cjs.map +0 -1
  224. package/dist/cjs/utils/errors/index.cjs +0 -8
  225. package/dist/cjs/utils/extractJSON.cjs +0 -61
  226. package/dist/cjs/utils/extractJSON.cjs.map +0 -1
  227. package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs +0 -94
  228. package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs.map +0 -1
  229. package/dist/cjs/utils/filtersAndPagination/getDiscussionFiltersAndPagination.cjs +0 -65
  230. package/dist/cjs/utils/filtersAndPagination/getDiscussionFiltersAndPagination.cjs.map +0 -1
  231. package/dist/cjs/utils/filtersAndPagination/getFiltersAndPaginationFromBody.cjs +0 -36
  232. package/dist/cjs/utils/filtersAndPagination/getFiltersAndPaginationFromBody.cjs.map +0 -1
  233. package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs +0 -49
  234. package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs.map +0 -1
  235. package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs +0 -53
  236. package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs.map +0 -1
  237. package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs +0 -57
  238. package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs.map +0 -1
  239. package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs +0 -74
  240. package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs.map +0 -1
  241. package/dist/cjs/utils/httpStatusCodes.cjs +0 -401
  242. package/dist/cjs/utils/httpStatusCodes.cjs.map +0 -1
  243. package/dist/cjs/utils/mapper/dictionary.cjs +0 -29
  244. package/dist/cjs/utils/mapper/dictionary.cjs.map +0 -1
  245. package/dist/cjs/utils/mapper/organization.cjs +0 -19
  246. package/dist/cjs/utils/mapper/organization.cjs.map +0 -1
  247. package/dist/cjs/utils/mapper/project.cjs +0 -26
  248. package/dist/cjs/utils/mapper/project.cjs.map +0 -1
  249. package/dist/cjs/utils/mapper/session.cjs +0 -15
  250. package/dist/cjs/utils/mapper/session.cjs.map +0 -1
  251. package/dist/cjs/utils/mapper/tag.cjs +0 -25
  252. package/dist/cjs/utils/mapper/tag.cjs.map +0 -1
  253. package/dist/cjs/utils/mapper/user.cjs +0 -24
  254. package/dist/cjs/utils/mapper/user.cjs.map +0 -1
  255. package/dist/cjs/utils/mergeFunctionTypes.cjs +0 -0
  256. package/dist/cjs/utils/mongoDB/connectDB.cjs +0 -32
  257. package/dist/cjs/utils/mongoDB/connectDB.cjs.map +0 -1
  258. package/dist/cjs/utils/mongoDB/types.cjs +0 -0
  259. package/dist/cjs/utils/oAuth2.cjs +0 -25
  260. package/dist/cjs/utils/oAuth2.cjs.map +0 -1
  261. package/dist/cjs/utils/permissions.cjs +0 -103
  262. package/dist/cjs/utils/permissions.cjs.map +0 -1
  263. package/dist/cjs/utils/plan.cjs +0 -63
  264. package/dist/cjs/utils/plan.cjs.map +0 -1
  265. package/dist/cjs/utils/rateLimiter.cjs +0 -48
  266. package/dist/cjs/utils/rateLimiter.cjs.map +0 -1
  267. package/dist/cjs/utils/removeObjectKeys.cjs +0 -11
  268. package/dist/cjs/utils/removeObjectKeys.cjs.map +0 -1
  269. package/dist/cjs/utils/responseData.cjs +0 -33
  270. package/dist/cjs/utils/responseData.cjs.map +0 -1
  271. package/dist/cjs/utils/validation/validateArray.cjs +0 -31
  272. package/dist/cjs/utils/validation/validateArray.cjs.map +0 -1
  273. package/dist/cjs/utils/validation/validateDictionary.cjs +0 -35
  274. package/dist/cjs/utils/validation/validateDictionary.cjs.map +0 -1
  275. package/dist/cjs/utils/validation/validateEmail.cjs +0 -20
  276. package/dist/cjs/utils/validation/validateEmail.cjs.map +0 -1
  277. package/dist/cjs/utils/validation/validateOrganization.cjs +0 -43
  278. package/dist/cjs/utils/validation/validateOrganization.cjs.map +0 -1
  279. package/dist/cjs/utils/validation/validatePhone.cjs +0 -20
  280. package/dist/cjs/utils/validation/validatePhone.cjs.map +0 -1
  281. package/dist/cjs/utils/validation/validateProject.cjs +0 -55
  282. package/dist/cjs/utils/validation/validateProject.cjs.map +0 -1
  283. package/dist/cjs/utils/validation/validateString.cjs +0 -21
  284. package/dist/cjs/utils/validation/validateString.cjs.map +0 -1
  285. package/dist/cjs/utils/validation/validateTag.cjs +0 -47
  286. package/dist/cjs/utils/validation/validateTag.cjs.map +0 -1
  287. package/dist/cjs/utils/validation/validateUser.cjs +0 -47
  288. package/dist/cjs/utils/validation/validateUser.cjs.map +0 -1
  289. package/dist/cjs/webhooks/stripe.webhook.cjs +0 -116
  290. package/dist/cjs/webhooks/stripe.webhook.cjs.map +0 -1
@@ -1,269 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- const require_logger_index = require('../logger/index.cjs');
3
- const require_utils_responseData = require('../utils/responseData.cjs');
4
- const require_utils_errors_ErrorHandler = require('../utils/errors/ErrorHandler.cjs');
5
- const require_utils_permissions = require('../utils/permissions.cjs');
6
- const require_services_user_service = require('../services/user.service.cjs');
7
- const require_utils_mapper_user = require('../utils/mapper/user.cjs');
8
- const require_services_email_service = require('../services/email.service.cjs');
9
- const require_utils_filtersAndPagination_getUserFiltersAndPagination = require('../utils/filtersAndPagination/getUserFiltersAndPagination.cjs');
10
- let express_intlayer = require("express-intlayer");
11
-
12
- //#region src/controllers/user.controller.ts
13
- /**
14
- * Creates a new user.
15
- */
16
- const createUser = async (req, res, _next) => {
17
- const user = req.body;
18
- if (!user) {
19
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
20
- return;
21
- }
22
- try {
23
- const newUser = await require_services_user_service.createUser(user);
24
- await require_services_email_service.sendEmail({
25
- type: "welcome",
26
- to: newUser.email,
27
- username: newUser.name,
28
- loginLink: `${process.env.CLIENT_URL}/auth/login`
29
- });
30
- const formattedUser = require_utils_mapper_user.mapUserToAPI(newUser);
31
- const responseData = require_utils_responseData.formatResponse({
32
- message: (0, express_intlayer.t)({
33
- en: "User created",
34
- fr: "Utilisateur créé",
35
- es: "Usuario creado"
36
- }),
37
- description: (0, express_intlayer.t)({
38
- en: "User created successfully",
39
- fr: "Utilisateur créé avec succès",
40
- es: "Usuario creado con éxito"
41
- }),
42
- data: formattedUser
43
- });
44
- res.json(responseData);
45
- return;
46
- } catch (error) {
47
- require_utils_errors_ErrorHandler.ErrorHandler.handleAppErrorResponse(res, error);
48
- return;
49
- }
50
- };
51
- /**
52
- * Retrieves a list of users based on filters and pagination.
53
- */
54
- const getUsers = async (req, res, _next) => {
55
- const { user, roles } = res.locals;
56
- if (!user) {
57
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
58
- return;
59
- }
60
- const { filters, sortOptions, pageSize, skip, page, getNumberOfPages } = require_utils_filtersAndPagination_getUserFiltersAndPagination.getUserFiltersAndPagination(req, res);
61
- try {
62
- const users = await require_services_user_service.findUsers(filters, skip, pageSize, sortOptions);
63
- if (!require_utils_permissions.hasPermission(roles, "user:read")({
64
- ...res.locals,
65
- targetUsers: users
66
- })) {
67
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "PERMISSION_DENIED");
68
- return;
69
- }
70
- const totalItems = await require_services_user_service.countUsers(filters);
71
- const responseData = require_utils_responseData.formatPaginatedResponse({
72
- data: require_utils_mapper_user.mapUsersToAPI(users),
73
- page,
74
- pageSize,
75
- totalPages: getNumberOfPages(totalItems),
76
- totalItems
77
- });
78
- res.json(responseData);
79
- return;
80
- } catch (error) {
81
- require_utils_errors_ErrorHandler.ErrorHandler.handleAppErrorResponse(res, error);
82
- return;
83
- }
84
- };
85
- const getUserById = async (req, res, _next) => {
86
- const { userId } = req.params;
87
- try {
88
- const user = await require_services_user_service.getUserById(userId);
89
- if (!user) {
90
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
91
- return;
92
- }
93
- const responseData = require_utils_responseData.formatResponse({ data: require_utils_mapper_user.mapUserToAPI(user) });
94
- res.json(responseData);
95
- return;
96
- } catch (error) {
97
- require_utils_errors_ErrorHandler.ErrorHandler.handleAppErrorResponse(res, error);
98
- return;
99
- }
100
- };
101
- const getUserByEmail = async (req, res, _next) => {
102
- const { email } = req.params;
103
- const { roles } = res.locals;
104
- try {
105
- const user = await require_services_user_service.getUserByEmail(email);
106
- if (!user) {
107
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
108
- return;
109
- }
110
- if (!require_utils_permissions.hasPermission(roles, "user:read")({
111
- ...res.locals,
112
- targetUsers: [user]
113
- })) {
114
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "PERMISSION_DENIED");
115
- return;
116
- }
117
- const responseData = require_utils_responseData.formatResponse({ data: require_utils_mapper_user.mapUserToAPI(user) });
118
- res.json(responseData);
119
- } catch (error) {
120
- require_utils_errors_ErrorHandler.ErrorHandler.handleAppErrorResponse(res, error);
121
- return;
122
- }
123
- };
124
- /**
125
- * Updates user information (phone number, date of birth).
126
- */
127
- const updateUser = async (req, res, _next) => {
128
- const userData = req.body;
129
- const { user, roles } = res.locals;
130
- if (!user) {
131
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_DEFINED");
132
- return;
133
- }
134
- if (typeof userData !== "object") {
135
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_DATA_NOT_FOUND");
136
- return;
137
- }
138
- if (!userData.id) {
139
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_INVALID_FIELDS");
140
- return;
141
- }
142
- const userDB = await require_services_user_service.getUserById(userData.id);
143
- if (!userDB) {
144
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_FOUND");
145
- return;
146
- }
147
- if (!require_utils_permissions.hasPermission(roles, "user:write")({
148
- ...res.locals,
149
- targetUsers: [userDB]
150
- })) {
151
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "PERMISSION_DENIED");
152
- return;
153
- }
154
- try {
155
- const updatedUser = await require_services_user_service.updateUserById(userDB.id, userData);
156
- require_logger_index.logger.info(`User updated: Name: ${updatedUser.name}, id: ${String(updatedUser.id)}`);
157
- const formattedUser = require_utils_mapper_user.mapUserToAPI(updatedUser);
158
- const responseData = require_utils_responseData.formatResponse({
159
- message: (0, express_intlayer.t)({
160
- en: "User updated",
161
- fr: "Utilisateur mis à jour",
162
- es: "Usuario actualizado"
163
- }),
164
- description: (0, express_intlayer.t)({
165
- en: "User updated successfully",
166
- fr: "Utilisateur mis à jour avec succès",
167
- es: "Usuario actualizado con éxito"
168
- }),
169
- data: formattedUser
170
- });
171
- res.json(responseData);
172
- return;
173
- } catch (error) {
174
- require_utils_errors_ErrorHandler.ErrorHandler.handleAppErrorResponse(res, error);
175
- return;
176
- }
177
- };
178
- /**
179
- * Deletes a user based on the provided ID.
180
- */
181
- const deleteUser = async (req, res, _next) => {
182
- const { userId } = req.params;
183
- const { roles } = res.locals;
184
- try {
185
- const user = await require_services_user_service.getUserById(userId);
186
- if (!user) {
187
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "USER_NOT_FOUND");
188
- return;
189
- }
190
- if (!require_utils_permissions.hasPermission(roles, "user:admin")({
191
- ...res.locals,
192
- targetUsers: [user]
193
- })) {
194
- require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "PERMISSION_DENIED");
195
- return;
196
- }
197
- await require_services_user_service.deleteUser(userId);
198
- const formattedUser = require_utils_mapper_user.mapUserToAPI(user);
199
- const responseData = require_utils_responseData.formatResponse({
200
- message: (0, express_intlayer.t)({
201
- en: "User deleted",
202
- fr: "Utilisateur supprimé",
203
- es: "Usuario eliminado"
204
- }),
205
- description: (0, express_intlayer.t)({
206
- en: "User deleted successfully",
207
- fr: "Utilisateur supprimé avec succès",
208
- es: "Usuario eliminado con éxito"
209
- }),
210
- data: formattedUser
211
- });
212
- res.json(responseData);
213
- } catch (error) {
214
- require_utils_errors_ErrorHandler.ErrorHandler.handleAppErrorResponse(res, error);
215
- return;
216
- }
217
- };
218
- let clients = [];
219
- const sendVerificationUpdate = (user) => {
220
- const filteredClients = clients.filter((client) => String(client.userId) === String(user.id));
221
- for (const client of filteredClients) if (user.emailVerified) client.res.write(`data: ${JSON.stringify({
222
- userId: user.id,
223
- status: "verified"
224
- })}\n\n`);
225
- };
226
- /**
227
- * SSE to check the email verification status
228
- */
229
- const verifyEmailStatusSSE = async (req, res) => {
230
- res.setHeader("Content-Type", "text/event-stream;charset=utf-8");
231
- res.setHeader("Cache-Control", "no-cache, no-transform");
232
- res.setHeader("Connection", "keep-alive");
233
- res.setHeader("X-Accel-Buffering", "no");
234
- res.write(":\n\n");
235
- res.flushHeaders();
236
- const { userId } = req.params;
237
- const clientId = Date.now();
238
- const user = await require_services_user_service.getUserById(userId);
239
- if (!user) {
240
- require_logger_index.logger.error(`User not found - User ID: ${userId}`);
241
- res.write(`data: ${JSON.stringify({
242
- userId,
243
- status: "error"
244
- })}\n\n`);
245
- res.end();
246
- return;
247
- }
248
- const newClient = {
249
- id: clientId,
250
- userId,
251
- res
252
- };
253
- clients.push(newClient);
254
- sendVerificationUpdate(user);
255
- req.on("close", () => {
256
- clients = clients.filter((client) => client.id !== clientId);
257
- });
258
- };
259
-
260
- //#endregion
261
- exports.createUser = createUser;
262
- exports.deleteUser = deleteUser;
263
- exports.getUserByEmail = getUserByEmail;
264
- exports.getUserById = getUserById;
265
- exports.getUsers = getUsers;
266
- exports.sendVerificationUpdate = sendVerificationUpdate;
267
- exports.updateUser = updateUser;
268
- exports.verifyEmailStatusSSE = verifyEmailStatusSSE;
269
- //# sourceMappingURL=user.controller.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.controller.cjs","names":["user: User | undefined","sendEmail","mapUserToAPI","formatResponse","getUserFiltersAndPagination","hasPermission","formatPaginatedResponse","mapUsersToAPI","clients: Array<{ id: number; userId: string; res: ResponseWithSession }>"],"sources":["../../../src/controllers/user.controller.ts"],"sourcesContent":["import { logger } from '@logger';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { sendEmail } from '@services/email.service';\nimport * as userService from '@services/user.service';\nimport { type AppError, ErrorHandler } from '@utils/errors';\nimport type { FiltersAndPagination } from '@utils/filtersAndPagination/getFiltersAndPaginationFromBody';\nimport {\n getUserFiltersAndPagination,\n type UserFiltersParam,\n} from '@utils/filtersAndPagination/getUserFiltersAndPagination';\nimport { mapUsersToAPI, mapUserToAPI } from '@utils/mapper/user';\nimport { hasPermission } from '@utils/permissions';\nimport {\n formatPaginatedResponse,\n formatResponse,\n type PaginatedResponse,\n type ResponseData,\n} from '@utils/responseData';\nimport type { NextFunction, Request } from 'express';\nimport { t } from 'express-intlayer';\nimport type { User, UserAPI } from '@/types/user.types';\n\nexport type CreateUserBody = { email: string; password?: string };\nexport type CreateUserResult = ResponseData<UserAPI>;\n\n/**\n * Creates a new user.\n */\nexport const createUser = async (\n req: Request<any, any, User>,\n res: ResponseWithSession<CreateUserResult>,\n _next: NextFunction\n): Promise<void> => {\n const user: User | undefined = req.body;\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const newUser = await userService.createUser(user);\n\n await sendEmail({\n type: 'welcome',\n to: newUser.email,\n username: newUser.name,\n loginLink: `${process.env.CLIENT_URL}/auth/login`,\n });\n\n const formattedUser = mapUserToAPI(newUser);\n\n const responseData = formatResponse<UserAPI>({\n message: t({\n en: 'User created',\n fr: 'Utilisateur créé',\n es: 'Usuario creado',\n }),\n description: t({\n en: 'User created successfully',\n fr: 'Utilisateur créé avec succès',\n es: 'Usuario creado con éxito',\n }),\n data: formattedUser,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetUsersParams = FiltersAndPagination<UserFiltersParam>;\nexport type GetUsersResult = PaginatedResponse<UserAPI>;\n\n/**\n * Retrieves a list of users based on filters and pagination.\n */\nexport const getUsers = async (\n req: Request<GetUsersParams>,\n res: ResponseWithSession<GetUsersResult>,\n _next: NextFunction\n): Promise<void> => {\n const { user, roles } = res.locals;\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n const { filters, sortOptions, pageSize, skip, page, getNumberOfPages } =\n getUserFiltersAndPagination(req, res);\n\n try {\n const users = await userService.findUsers(\n filters,\n skip,\n pageSize,\n sortOptions\n );\n\n if (\n !hasPermission(\n roles,\n 'user:read'\n )({\n ...res.locals,\n targetUsers: users,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const totalItems = await userService.countUsers(filters);\n\n const formattedUsers = mapUsersToAPI(users);\n\n const responseData = formatPaginatedResponse<UserAPI>({\n data: formattedUsers,\n page,\n pageSize,\n totalPages: getNumberOfPages(totalItems),\n totalItems,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetUserByIdParams = { userId: UserAPI['id'] };\nexport type GetUserByIdResult = ResponseData<UserAPI>;\n\nexport const getUserById = async (\n req: Request<GetUserByIdParams>,\n res: ResponseWithSession<GetUserByIdResult>,\n _next: NextFunction\n): Promise<void> => {\n const { userId } = req.params;\n\n try {\n const user = await userService.getUserById(userId);\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n const formattedUser = mapUserToAPI(user);\n const responseData = formatResponse<UserAPI>({ data: formattedUser });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetUserByEmailParams = { email: string };\nexport type GetUserByEmailResult = ResponseData<UserAPI>;\n\nexport const getUserByEmail = async (\n req: Request<GetUserByEmailParams>,\n res: ResponseWithSession<GetUserByEmailResult>,\n _next: NextFunction\n): Promise<void> => {\n const { email } = req.params;\n const { roles } = res.locals;\n\n try {\n const user = await userService.getUserByEmail(email);\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n if (\n !hasPermission(\n roles,\n 'user:read'\n )({\n ...res.locals,\n targetUsers: [user],\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const formattedUser = mapUserToAPI(user);\n const responseData = formatResponse<UserAPI>({ data: formattedUser });\n\n res.json(responseData);\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type UpdateUserBody = Partial<UserAPI>;\nexport type UpdateUserResult = ResponseData<UserAPI>;\n\n/**\n * Updates user information (phone number, date of birth).\n */\nexport const updateUser = async (\n req: Request<any, any, UpdateUserBody | undefined>,\n res: ResponseWithSession<UpdateUserResult>,\n _next: NextFunction\n): Promise<void> => {\n const userData = req.body;\n const { user, roles } = res.locals;\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n if (typeof userData !== 'object') {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_DATA_NOT_FOUND');\n return;\n }\n\n if (!userData.id) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_INVALID_FIELDS');\n return;\n }\n\n const userDB = await userService.getUserById(userData.id);\n\n if (!userDB) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_FOUND');\n return;\n }\n\n if (\n !hasPermission(\n roles,\n 'user:write'\n )({\n ...res.locals,\n targetUsers: [userDB],\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const updatedUser = await userService.updateUserById(userDB.id, userData);\n\n logger.info(\n `User updated: Name: ${updatedUser.name}, id: ${String(updatedUser.id)}`\n );\n\n const formattedUser = mapUserToAPI(updatedUser);\n const responseData = formatResponse<UserAPI>({\n message: t({\n en: 'User updated',\n fr: 'Utilisateur mis à jour',\n es: 'Usuario actualizado',\n }),\n description: t({\n en: 'User updated successfully',\n fr: 'Utilisateur mis à jour avec succès',\n es: 'Usuario actualizado con éxito',\n }),\n data: formattedUser,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type DeleteUserParams = { userId: string };\nexport type DeleteUserResult = ResponseData<UserAPI>;\n\n/**\n * Deletes a user based on the provided ID.\n */\nexport const deleteUser = async (\n req: Request<DeleteUserParams>,\n res: ResponseWithSession<DeleteUserResult>,\n _next: NextFunction\n): Promise<void> => {\n const { userId } = req.params;\n const { roles } = res.locals;\n\n try {\n const user = await userService.getUserById(userId);\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_FOUND');\n return;\n }\n\n if (\n !hasPermission(\n roles,\n 'user:admin'\n )({\n ...res.locals,\n targetUsers: [user],\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n await userService.deleteUser(userId);\n\n const formattedUser = mapUserToAPI(user);\n const responseData = formatResponse<UserAPI>({\n message: t({\n en: 'User deleted',\n fr: 'Utilisateur supprimé',\n es: 'Usuario eliminado',\n }),\n description: t({\n en: 'User deleted successfully',\n fr: 'Utilisateur supprimé avec succès',\n es: 'Usuario eliminado con éxito',\n }),\n data: formattedUser,\n });\n\n res.json(responseData);\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nlet clients: Array<{ id: number; userId: string; res: ResponseWithSession }> =\n [];\n\nexport const sendVerificationUpdate = (user: User) => {\n const filteredClients = clients.filter(\n (client) => String(client.userId) === String(user.id)\n );\n\n for (const client of filteredClients) {\n if (user.emailVerified) {\n client.res.write(\n `data: ${JSON.stringify({ userId: user.id, status: 'verified' })}\\n\\n`\n );\n }\n }\n};\n\nexport type VerifyEmailStatusSSEParams = { userId: string };\n\n/**\n * SSE to check the email verification status\n */\nexport const verifyEmailStatusSSE = async (\n req: Request<VerifyEmailStatusSSEParams, any, any>,\n res: ResponseWithSession\n) => {\n // Set headers for SSE\n res.setHeader('Content-Type', 'text/event-stream;charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache, no-transform');\n res.setHeader('Connection', 'keep-alive');\n res.setHeader('X-Accel-Buffering', 'no'); // For Nginx buffering\n\n // Send initial data to ensure the connection is open\n res.write(':\\n\\n'); // Comment to keep connection alive\n res.flushHeaders();\n\n const { userId } = req.params; // Get user ID from query parameters\n const clientId = Date.now();\n\n const user = await userService.getUserById(userId);\n\n if (!user) {\n logger.error(`User not found - User ID: ${userId}`);\n res.write(`data: ${JSON.stringify({ userId, status: 'error' })}\\n\\n`);\n res.end();\n return;\n }\n\n // Add client to the list\n const newClient = { id: clientId, userId, res };\n clients.push(newClient);\n\n sendVerificationUpdate(user);\n\n // Remove client on connection close\n req.on('close', () => {\n clients = clients.filter((client) => client.id !== clientId);\n });\n};\n"],"mappings":"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"}
@@ -1,325 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- let __react_email_components = require("@react-email/components");
3
- let react_jsx_runtime = require("react/jsx-runtime");
4
-
5
- //#region src/emails/InviteUserEmail.tsx
6
- const InviteUserEmailEN = ({ username, invitedByUsername, invitedByEmail, organizationName, inviteLink, inviteFromIp, inviteFromLocation }) => {
7
- const previewText = `Join ${invitedByUsername} on Intlayer`;
8
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Html, { children: [
9
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Head, {}),
10
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Preview, { children: previewText }),
11
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Tailwind, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Body, {
12
- className: "m-auto px-2 font-sans",
13
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Container, {
14
- className: "mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]",
15
- children: [
16
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
17
- className: "mt-[32px]",
18
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Img, {
19
- src: "https://intlayer.org/apple-touch-icon.png",
20
- width: "40",
21
- height: "37",
22
- alt: "Intlayer",
23
- className: "mx-auto my-0"
24
- })
25
- }),
26
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Heading, {
27
- className: "mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black",
28
- children: [
29
- "Join ",
30
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: organizationName }),
31
- " on",
32
- " ",
33
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" })
34
- ]
35
- }),
36
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
37
- className: "text-[14px] text-black leading-[24px]",
38
- children: [
39
- "Hello ",
40
- username,
41
- ","
42
- ]
43
- }),
44
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
45
- className: "text-[14px] text-black leading-[24px]",
46
- children: [
47
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: invitedByUsername }),
48
- " (",
49
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
50
- href: `mailto:${invitedByEmail}`,
51
- className: "text-[#8a8a8a] no-underline",
52
- children: invitedByEmail
53
- }),
54
- ") has invited you to the ",
55
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: organizationName }),
56
- " team on ",
57
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" }),
58
- "."
59
- ]
60
- }),
61
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
62
- className: "my-[32px] text-center",
63
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Button, {
64
- className: "rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
65
- href: inviteLink,
66
- children: "Join the team"
67
- })
68
- }),
69
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Text, {
70
- className: "text-[14px] text-black leading-[24px]",
71
- children: "or copy and paste this URL into your browser:"
72
- }),
73
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
74
- href: inviteLink,
75
- className: "text-[#8a8a8a] text-[10px] no-underline",
76
- children: inviteLink
77
- }),
78
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Hr, { className: "mx-0 my-[26px] w-full border border-[#eaeaea] border-solid" }),
79
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
80
- className: "text-[#666666] text-[12px] leading-[24px]",
81
- children: [
82
- "This invitation was intended for",
83
- " ",
84
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
85
- className: "text-black",
86
- children: username
87
- }),
88
- ". This invite was sent from ",
89
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
90
- className: "text-black",
91
- children: inviteFromIp
92
- }),
93
- " ",
94
- inviteFromLocation && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [" located in ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
95
- className: "text-black",
96
- children: inviteFromLocation
97
- })] }),
98
- ". If you were not expecting this invitation, you can ignore this email. If you are concerned about your account's safety, please reply to this email to get in touch with us."
99
- ]
100
- })
101
- ]
102
- })
103
- }) })
104
- ] });
105
- };
106
- const InviteUserEmailFR = ({ username, invitedByUsername, invitedByEmail, organizationName, inviteLink, inviteFromIp, inviteFromLocation }) => {
107
- const previewText = `Rejoignez ${invitedByUsername} sur Intlayer`;
108
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Html, { children: [
109
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Head, {}),
110
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Preview, { children: previewText }),
111
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Tailwind, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Body, {
112
- className: "m-auto px-2 font-sans",
113
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Container, {
114
- className: "mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]",
115
- children: [
116
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
117
- className: "mt-[32px]",
118
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Img, {
119
- src: "https://intlayer.org/apple-touch-icon.png",
120
- width: "40",
121
- height: "37",
122
- alt: "Intlayer",
123
- className: "mx-auto my-0"
124
- })
125
- }),
126
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Heading, {
127
- className: "mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black",
128
- children: [
129
- "Rejoignez ",
130
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: organizationName }),
131
- " sur",
132
- " ",
133
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" })
134
- ]
135
- }),
136
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
137
- className: "text-[14px] text-black leading-[24px]",
138
- children: [
139
- "Bonjour ",
140
- username,
141
- ","
142
- ]
143
- }),
144
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
145
- className: "text-[14px] text-black leading-[24px]",
146
- children: [
147
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: invitedByUsername }),
148
- " (",
149
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
150
- href: `mailto:${invitedByEmail}`,
151
- className: "text-[#8a8a8a] no-underline",
152
- children: invitedByEmail
153
- }),
154
- ") vous a invité à rejoindre l'équipe de",
155
- " ",
156
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: organizationName }),
157
- " sur ",
158
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" }),
159
- "."
160
- ]
161
- }),
162
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
163
- className: "my-[32px] text-center",
164
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Button, {
165
- className: "rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
166
- href: inviteLink,
167
- children: "Rejoindre l'équipe"
168
- })
169
- }),
170
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
171
- className: "text-[14px] text-black leading-[24px]",
172
- children: ["ou copiez et collez cette URL dans votre navigateur :", " "]
173
- }),
174
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
175
- href: inviteLink,
176
- className: "text-[#8a8a8a] text-[10px] no-underline",
177
- children: inviteLink
178
- }),
179
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Hr, { className: "mx-0 my-[26px] w-full border border-[#eaeaea] border-solid" }),
180
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
181
- className: "text-[#666666] text-[12px] leading-[24px]",
182
- children: [
183
- "Cette invitation était destinée à",
184
- " ",
185
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
186
- className: "text-black",
187
- children: username
188
- }),
189
- ". Cette invitation a été envoyée depuis",
190
- " ",
191
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
192
- className: "text-black",
193
- children: inviteFromIp
194
- }),
195
- inviteFromLocation && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [", située à ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
196
- className: "text-black",
197
- children: inviteFromLocation
198
- })] }),
199
- ". Si vous n'attendiez pas cette invitation, vous pouvez ignorer cet email. Si vous êtes préoccupé par la sécurité de votre compte, veuillez répondre à cet email pour nous contacter."
200
- ]
201
- })
202
- ]
203
- })
204
- }) })
205
- ] });
206
- };
207
- const InviteUserEmailES = ({ username, invitedByUsername, invitedByEmail, organizationName, inviteLink, inviteFromIp, inviteFromLocation }) => {
208
- const previewText = `Únete a ${invitedByUsername} en Intlayer`;
209
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Html, { children: [
210
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Head, {}),
211
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Preview, { children: previewText }),
212
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Tailwind, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Body, {
213
- className: "m-auto px-2 font-sans",
214
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Container, {
215
- className: "mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]",
216
- children: [
217
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
218
- className: "mt-[32px]",
219
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Img, {
220
- src: "https://intlayer.org/apple-touch-icon.png",
221
- width: "40",
222
- height: "37",
223
- alt: "Intlayer",
224
- className: "mx-auto my-0"
225
- })
226
- }),
227
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Heading, {
228
- className: "mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black",
229
- children: [
230
- "Únete a ",
231
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: organizationName }),
232
- " en",
233
- " ",
234
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" })
235
- ]
236
- }),
237
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
238
- className: "text-[14px] text-black leading-[24px]",
239
- children: [
240
- "Hola ",
241
- username,
242
- ","
243
- ]
244
- }),
245
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
246
- className: "text-[14px] text-black leading-[24px]",
247
- children: [
248
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: invitedByUsername }),
249
- " (",
250
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
251
- href: `mailto:${invitedByEmail}`,
252
- className: "text-[#8a8a8a] no-underline",
253
- children: invitedByEmail
254
- }),
255
- ") te ha invitado a unirte al equipo de",
256
- " ",
257
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: organizationName }),
258
- " en ",
259
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" }),
260
- "."
261
- ]
262
- }),
263
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
264
- className: "my-[32px] text-center",
265
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Button, {
266
- className: "rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
267
- href: inviteLink,
268
- children: "Unirse al equipo"
269
- })
270
- }),
271
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
272
- className: "text-[14px] text-black leading-[24px]",
273
- children: ["o copia y pega esta URL en tu navegador:", " "]
274
- }),
275
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
276
- href: inviteLink,
277
- className: "text-[#8a8a8a] text-[10px] no-underline",
278
- children: inviteLink
279
- }),
280
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Hr, { className: "mx-0 my-[26px] w-full border border-[#eaeaea] border-solid" }),
281
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
282
- className: "text-[#666666] text-[12px] leading-[24px]",
283
- children: [
284
- "Esta invitación estaba destinada para",
285
- " ",
286
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
287
- className: "text-black",
288
- children: username
289
- }),
290
- ". Esta invitación fue enviada desde",
291
- " ",
292
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
293
- className: "text-black",
294
- children: inviteFromIp
295
- }),
296
- inviteFromLocation && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [", ubicada en ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
297
- className: "text-black",
298
- children: inviteFromLocation
299
- })] }),
300
- ". Si no esperabas esta invitación, puedes ignorar este correo. Si estás preocupado por la seguridad de tu cuenta, por favor responde a este correo para contactarte con nosotros."
301
- ]
302
- })
303
- ]
304
- })
305
- }) })
306
- ] });
307
- };
308
- const PreviewProps = {
309
- username: "alanturing",
310
- invitedByUsername: "Alan",
311
- invitedByEmail: "alan.turing@example.com",
312
- organizationName: "Enigma",
313
- inviteLink: "https://intlayer.org/teams/invite/foo",
314
- inviteFromIp: "204.13.x.x",
315
- inviteFromLocation: "São Paulo, Brazil"
316
- };
317
- InviteUserEmailEN.PreviewProps = PreviewProps;
318
- InviteUserEmailFR.PreviewProps = PreviewProps;
319
- InviteUserEmailES.PreviewProps = PreviewProps;
320
-
321
- //#endregion
322
- exports.InviteUserEmailEN = InviteUserEmailEN;
323
- exports.InviteUserEmailES = InviteUserEmailES;
324
- exports.InviteUserEmailFR = InviteUserEmailFR;
325
- //# sourceMappingURL=InviteUserEmail.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InviteUserEmail.cjs","names":["Html","Head","Preview","Tailwind","Body","Container","Section","Img","Heading","Text","Link","Button","Hr","PreviewProps: InviteUserEmailProps"],"sources":["../../../src/emails/InviteUserEmail.tsx"],"sourcesContent":["import {\n Body,\n Button,\n Container,\n Head,\n Heading,\n Hr,\n Html,\n Img,\n Link,\n Preview,\n Section,\n Tailwind,\n Text,\n} from '@react-email/components';\n\nexport type InviteUserEmailProps = {\n username: string;\n invitedByUsername: string;\n invitedByEmail: string;\n organizationName: string;\n inviteLink: string;\n inviteFromIp: string;\n inviteFromLocation: string;\n};\n\nexport const InviteUserEmailEN = ({\n username,\n invitedByUsername,\n invitedByEmail,\n organizationName,\n inviteLink,\n inviteFromIp,\n inviteFromLocation,\n}: InviteUserEmailProps) => {\n const previewText = `Join ${invitedByUsername} on Intlayer`;\n\n return (\n <Html>\n <Head />\n <Preview>{previewText}</Preview>\n <Tailwind>\n <Body className=\"m-auto px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]\">\n <Section className=\"mt-[32px]\">\n <Img\n src=\"https://intlayer.org/apple-touch-icon.png\"\n width=\"40\"\n height=\"37\"\n alt=\"Intlayer\"\n className=\"mx-auto my-0\"\n />\n </Section>\n <Heading className=\"mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black\">\n Join <strong>{organizationName}</strong> on{' '}\n <strong>Intlayer</strong>\n </Heading>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Hello {username},\n </Text>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n <strong>{invitedByUsername}</strong> (\n <Link\n href={`mailto:${invitedByEmail}`}\n className=\"text-[#8a8a8a] no-underline\"\n >\n {invitedByEmail}\n </Link>\n ) has invited you to the <strong>{organizationName}</strong> team\n on <strong>Intlayer</strong>.\n </Text>\n\n <Section className=\"my-[32px] text-center\">\n <Button\n className=\"rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={inviteLink}\n >\n Join the team\n </Button>\n </Section>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n or copy and paste this URL into your browser:\n </Text>\n <Link\n href={inviteLink}\n className=\"text-[#8a8a8a] text-[10px] no-underline\"\n >\n {inviteLink}\n </Link>\n <Hr className=\"mx-0 my-[26px] w-full border border-[#eaeaea] border-solid\" />\n <Text className=\"text-[#666666] text-[12px] leading-[24px]\">\n This invitation was intended for{' '}\n <span className=\"text-black\">{username}</span>. This invite was\n sent from <span className=\"text-black\">{inviteFromIp}</span>{' '}\n {inviteFromLocation && (\n <>\n {' located in '}\n <span className=\"text-black\">{inviteFromLocation}</span>\n </>\n )}\n . If you were not expecting this invitation, you can ignore this\n email. If you are concerned about your account's safety, please\n reply to this email to get in touch with us.\n </Text>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n};\n\nexport const InviteUserEmailFR = ({\n username,\n invitedByUsername,\n invitedByEmail,\n organizationName,\n inviteLink,\n inviteFromIp,\n inviteFromLocation,\n}: InviteUserEmailProps) => {\n const previewText = `Rejoignez ${invitedByUsername} sur Intlayer`;\n\n return (\n <Html>\n <Head />\n <Preview>{previewText}</Preview>\n <Tailwind>\n <Body className=\"m-auto px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]\">\n <Section className=\"mt-[32px]\">\n <Img\n src=\"https://intlayer.org/apple-touch-icon.png\"\n width=\"40\"\n height=\"37\"\n alt=\"Intlayer\"\n className=\"mx-auto my-0\"\n />\n </Section>\n <Heading className=\"mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black\">\n Rejoignez <strong>{organizationName}</strong> sur{' '}\n <strong>Intlayer</strong>\n </Heading>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Bonjour {username},\n </Text>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n <strong>{invitedByUsername}</strong> (\n <Link\n href={`mailto:${invitedByEmail}`}\n className=\"text-[#8a8a8a] no-underline\"\n >\n {invitedByEmail}\n </Link>\n ) vous a invité à rejoindre l'équipe de{' '}\n <strong>{organizationName}</strong> sur <strong>Intlayer</strong>.\n </Text>\n <Section className=\"my-[32px] text-center\">\n <Button\n className=\"rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={inviteLink}\n >\n Rejoindre l'équipe\n </Button>\n </Section>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n ou copiez et collez cette URL dans votre navigateur :{' '}\n </Text>\n <Link\n href={inviteLink}\n className=\"text-[#8a8a8a] text-[10px] no-underline\"\n >\n {inviteLink}\n </Link>\n <Hr className=\"mx-0 my-[26px] w-full border border-[#eaeaea] border-solid\" />\n <Text className=\"text-[#666666] text-[12px] leading-[24px]\">\n Cette invitation était destinée à{' '}\n <span className=\"text-black\">{username}</span>. Cette invitation a\n été envoyée depuis{' '}\n <span className=\"text-black\">{inviteFromIp}</span>\n {inviteFromLocation && (\n <>\n {', située à '}\n <span className=\"text-black\">{inviteFromLocation}</span>\n </>\n )}\n . Si vous n'attendiez pas cette invitation, vous pouvez ignorer\n cet email. Si vous êtes préoccupé par la sécurité de votre compte,\n veuillez répondre à cet email pour nous contacter.\n </Text>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n};\n\nexport const InviteUserEmailES = ({\n username,\n invitedByUsername,\n invitedByEmail,\n organizationName,\n inviteLink,\n inviteFromIp,\n inviteFromLocation,\n}: InviteUserEmailProps) => {\n const previewText = `Únete a ${invitedByUsername} en Intlayer`;\n\n return (\n <Html>\n <Head />\n <Preview>{previewText}</Preview>\n <Tailwind>\n <Body className=\"m-auto px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]\">\n <Section className=\"mt-[32px]\">\n <Img\n src=\"https://intlayer.org/apple-touch-icon.png\"\n width=\"40\"\n height=\"37\"\n alt=\"Intlayer\"\n className=\"mx-auto my-0\"\n />\n </Section>\n <Heading className=\"mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black\">\n Únete a <strong>{organizationName}</strong> en{' '}\n <strong>Intlayer</strong>\n </Heading>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Hola {username},\n </Text>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n <strong>{invitedByUsername}</strong> (\n <Link\n href={`mailto:${invitedByEmail}`}\n className=\"text-[#8a8a8a] no-underline\"\n >\n {invitedByEmail}\n </Link>\n ) te ha invitado a unirte al equipo de{' '}\n <strong>{organizationName}</strong> en <strong>Intlayer</strong>.\n </Text>\n <Section className=\"my-[32px] text-center\">\n <Button\n className=\"rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={inviteLink}\n >\n Unirse al equipo\n </Button>\n </Section>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n o copia y pega esta URL en tu navegador:{' '}\n </Text>\n <Link\n href={inviteLink}\n className=\"text-[#8a8a8a] text-[10px] no-underline\"\n >\n {inviteLink}\n </Link>\n <Hr className=\"mx-0 my-[26px] w-full border border-[#eaeaea] border-solid\" />\n <Text className=\"text-[#666666] text-[12px] leading-[24px]\">\n Esta invitación estaba destinada para{' '}\n <span className=\"text-black\">{username}</span>. Esta invitación\n fue enviada desde{' '}\n <span className=\"text-black\">{inviteFromIp}</span>\n {inviteFromLocation && (\n <>\n {', ubicada en '}\n <span className=\"text-black\">{inviteFromLocation}</span>\n </>\n )}\n . Si no esperabas esta invitación, puedes ignorar este correo. Si\n estás preocupado por la seguridad de tu cuenta, por favor responde\n a este correo para contactarte con nosotros.\n </Text>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n};\n\nconst PreviewProps: InviteUserEmailProps = {\n username: 'alanturing',\n invitedByUsername: 'Alan',\n invitedByEmail: 'alan.turing@example.com',\n organizationName: 'Enigma',\n inviteLink: 'https://intlayer.org/teams/invite/foo',\n inviteFromIp: '204.13.x.x',\n inviteFromLocation: 'São Paulo, Brazil',\n};\n\nInviteUserEmailEN.PreviewProps = PreviewProps;\nInviteUserEmailFR.PreviewProps = PreviewProps;\nInviteUserEmailES.PreviewProps = PreviewProps;\n"],"mappings":"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"}