@intlayer/backend 5.1.5 → 5.1.7

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 (245) hide show
  1. package/dist/cjs/controllers/ai.controller.cjs +61 -43
  2. package/dist/cjs/controllers/ai.controller.cjs.map +1 -1
  3. package/dist/cjs/controllers/dictionary.controller.cjs +1 -1
  4. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  5. package/dist/cjs/controllers/organization.controller.cjs +17 -1
  6. package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
  7. package/dist/cjs/controllers/project.controller.cjs +1 -0
  8. package/dist/cjs/controllers/project.controller.cjs.map +1 -1
  9. package/dist/cjs/controllers/sessionAuth.controller.cjs +6 -12
  10. package/dist/cjs/controllers/sessionAuth.controller.cjs.map +1 -1
  11. package/dist/cjs/controllers/stripe.controller.cjs +31 -10
  12. package/dist/cjs/controllers/stripe.controller.cjs.map +1 -1
  13. package/dist/cjs/controllers/tag.controller.cjs +0 -7
  14. package/dist/cjs/controllers/tag.controller.cjs.map +1 -1
  15. package/dist/cjs/controllers/user.controller.cjs +1 -1
  16. package/dist/cjs/controllers/user.controller.cjs.map +1 -1
  17. package/dist/cjs/emails/InviteUserEmail.cjs +3 -3
  18. package/dist/cjs/emails/InviteUserEmail.cjs.map +1 -1
  19. package/dist/cjs/emails/PasswordChangeConfirmation.cjs +3 -3
  20. package/dist/cjs/emails/PasswordChangeConfirmation.cjs.map +1 -1
  21. package/dist/cjs/emails/ResetUserPassword.cjs +3 -3
  22. package/dist/cjs/emails/ResetUserPassword.cjs.map +1 -1
  23. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs +19 -3
  24. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs.map +1 -1
  25. package/dist/cjs/emails/SubscriptionPaymentError.cjs +19 -3
  26. package/dist/cjs/emails/SubscriptionPaymentError.cjs.map +1 -1
  27. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs +19 -3
  28. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs.map +1 -1
  29. package/dist/cjs/emails/ValidateUserEmail.cjs +3 -3
  30. package/dist/cjs/emails/ValidateUserEmail.cjs.map +1 -1
  31. package/dist/cjs/emails/Welcome.cjs +3 -3
  32. package/dist/cjs/emails/Welcome.cjs.map +1 -1
  33. package/dist/cjs/export.cjs +10 -10
  34. package/dist/cjs/export.cjs.map +1 -1
  35. package/dist/cjs/routes/ai.routes.cjs +21 -15
  36. package/dist/cjs/routes/ai.routes.cjs.map +1 -1
  37. package/dist/cjs/routes/dictionary.routes.cjs +15 -12
  38. package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
  39. package/dist/cjs/routes/event-listener.routes.cjs +4 -4
  40. package/dist/cjs/routes/event-listener.routes.cjs.map +1 -1
  41. package/dist/cjs/routes/organization.routes.cjs +15 -15
  42. package/dist/cjs/routes/organization.routes.cjs.map +1 -1
  43. package/dist/cjs/routes/project.routes.cjs +30 -18
  44. package/dist/cjs/routes/project.routes.cjs.map +1 -1
  45. package/dist/cjs/routes/sessionAuth.routes.cjs +38 -35
  46. package/dist/cjs/routes/sessionAuth.routes.cjs.map +1 -1
  47. package/dist/cjs/routes/stripe.routes.cjs +23 -11
  48. package/dist/cjs/routes/stripe.routes.cjs.map +1 -1
  49. package/dist/cjs/routes/tags.routes.cjs +11 -11
  50. package/dist/cjs/routes/tags.routes.cjs.map +1 -1
  51. package/dist/cjs/routes/user.routes.cjs +13 -13
  52. package/dist/cjs/routes/user.routes.cjs.map +1 -1
  53. package/dist/cjs/schemas/project.schema.cjs +2 -2
  54. package/dist/cjs/schemas/project.schema.cjs.map +1 -1
  55. package/dist/cjs/services/dictionary.service.cjs +0 -6
  56. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  57. package/dist/cjs/services/email.service.cjs +1 -1
  58. package/dist/cjs/services/email.service.cjs.map +1 -1
  59. package/dist/cjs/services/subscription.service.cjs +81 -2
  60. package/dist/cjs/services/subscription.service.cjs.map +1 -1
  61. package/dist/cjs/utils/AI/{askDocQuestion.cjs → askDocQuestion/askDocQuestion.cjs} +1 -1
  62. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs.map +1 -0
  63. package/dist/{esm/utils/AI → cjs/utils/AI/askDocQuestion}/embeddings.json +4288 -4288
  64. package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/index.cjs +5 -3
  65. package/dist/cjs/utils/AI/auditDictionary/index.cjs.map +1 -0
  66. package/dist/cjs/utils/{auditDictionaryField → AI/auditDictionaryField}/index.cjs +5 -3
  67. package/dist/cjs/utils/AI/auditDictionaryField/index.cjs.map +1 -0
  68. package/dist/cjs/utils/{auditDictionaryMetadata → AI/auditDictionaryMetadata}/index.cjs +5 -3
  69. package/dist/cjs/utils/AI/auditDictionaryMetadata/index.cjs.map +1 -0
  70. package/dist/cjs/utils/AI/autocomplete/PROMPT.md +13 -0
  71. package/dist/cjs/utils/AI/autocomplete/index.cjs +73 -0
  72. package/dist/cjs/utils/AI/autocomplete/index.cjs.map +1 -0
  73. package/dist/cjs/utils/auditTag/index.cjs +4 -2
  74. package/dist/cjs/utils/auditTag/index.cjs.map +1 -1
  75. package/dist/cjs/utils/errors/errorCodes.cjs +26 -0
  76. package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
  77. package/dist/cjs/utils/mongoDB/connectDB.cjs +10 -0
  78. package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -1
  79. package/dist/cjs/webhooks/stripe.webhook.cjs +42 -0
  80. package/dist/cjs/webhooks/stripe.webhook.cjs.map +1 -1
  81. package/dist/esm/controllers/ai.controller.mjs +59 -42
  82. package/dist/esm/controllers/ai.controller.mjs.map +1 -1
  83. package/dist/esm/controllers/dictionary.controller.mjs +1 -1
  84. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  85. package/dist/esm/controllers/organization.controller.mjs +18 -2
  86. package/dist/esm/controllers/organization.controller.mjs.map +1 -1
  87. package/dist/esm/controllers/project.controller.mjs +1 -0
  88. package/dist/esm/controllers/project.controller.mjs.map +1 -1
  89. package/dist/esm/controllers/sessionAuth.controller.mjs +6 -12
  90. package/dist/esm/controllers/sessionAuth.controller.mjs.map +1 -1
  91. package/dist/esm/controllers/stripe.controller.mjs +30 -10
  92. package/dist/esm/controllers/stripe.controller.mjs.map +1 -1
  93. package/dist/esm/controllers/tag.controller.mjs +0 -7
  94. package/dist/esm/controllers/tag.controller.mjs.map +1 -1
  95. package/dist/esm/controllers/user.controller.mjs +2 -2
  96. package/dist/esm/controllers/user.controller.mjs.map +1 -1
  97. package/dist/esm/emails/InviteUserEmail.mjs +3 -3
  98. package/dist/esm/emails/InviteUserEmail.mjs.map +1 -1
  99. package/dist/esm/emails/PasswordChangeConfirmation.mjs +3 -3
  100. package/dist/esm/emails/PasswordChangeConfirmation.mjs.map +1 -1
  101. package/dist/esm/emails/ResetUserPassword.mjs +3 -3
  102. package/dist/esm/emails/ResetUserPassword.mjs.map +1 -1
  103. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs +19 -3
  104. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs.map +1 -1
  105. package/dist/esm/emails/SubscriptionPaymentError.mjs +19 -3
  106. package/dist/esm/emails/SubscriptionPaymentError.mjs.map +1 -1
  107. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs +19 -3
  108. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs.map +1 -1
  109. package/dist/esm/emails/ValidateUserEmail.mjs +3 -3
  110. package/dist/esm/emails/ValidateUserEmail.mjs.map +1 -1
  111. package/dist/esm/emails/Welcome.mjs +3 -3
  112. package/dist/esm/emails/Welcome.mjs.map +1 -1
  113. package/dist/esm/export.mjs +10 -10
  114. package/dist/esm/export.mjs.map +1 -1
  115. package/dist/esm/routes/ai.routes.mjs +22 -15
  116. package/dist/esm/routes/ai.routes.mjs.map +1 -1
  117. package/dist/esm/routes/dictionary.routes.mjs +14 -11
  118. package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
  119. package/dist/esm/routes/event-listener.routes.mjs +4 -4
  120. package/dist/esm/routes/event-listener.routes.mjs.map +1 -1
  121. package/dist/esm/routes/organization.routes.mjs +13 -13
  122. package/dist/esm/routes/organization.routes.mjs.map +1 -1
  123. package/dist/esm/routes/project.routes.mjs +28 -16
  124. package/dist/esm/routes/project.routes.mjs.map +1 -1
  125. package/dist/esm/routes/sessionAuth.routes.mjs +37 -34
  126. package/dist/esm/routes/sessionAuth.routes.mjs.map +1 -1
  127. package/dist/esm/routes/stripe.routes.mjs +22 -9
  128. package/dist/esm/routes/stripe.routes.mjs.map +1 -1
  129. package/dist/esm/routes/tags.routes.mjs +9 -9
  130. package/dist/esm/routes/tags.routes.mjs.map +1 -1
  131. package/dist/esm/routes/user.routes.mjs +11 -11
  132. package/dist/esm/routes/user.routes.mjs.map +1 -1
  133. package/dist/esm/schemas/project.schema.mjs +2 -2
  134. package/dist/esm/schemas/project.schema.mjs.map +1 -1
  135. package/dist/esm/services/dictionary.service.mjs +0 -6
  136. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  137. package/dist/esm/services/email.service.mjs +1 -1
  138. package/dist/esm/services/email.service.mjs.map +1 -1
  139. package/dist/esm/services/subscription.service.mjs +78 -1
  140. package/dist/esm/services/subscription.service.mjs.map +1 -1
  141. package/dist/esm/utils/AI/{askDocQuestion.mjs → askDocQuestion/askDocQuestion.mjs} +1 -1
  142. package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs.map +1 -0
  143. package/dist/{cjs/utils/AI → esm/utils/AI/askDocQuestion}/embeddings.json +4288 -4288
  144. package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/index.mjs +5 -3
  145. package/dist/esm/utils/AI/auditDictionary/index.mjs.map +1 -0
  146. package/dist/esm/utils/{auditDictionaryField → AI/auditDictionaryField}/index.mjs +5 -3
  147. package/dist/esm/utils/AI/auditDictionaryField/index.mjs.map +1 -0
  148. package/dist/esm/utils/{auditDictionaryMetadata → AI/auditDictionaryMetadata}/index.mjs +5 -3
  149. package/dist/esm/utils/AI/auditDictionaryMetadata/index.mjs.map +1 -0
  150. package/dist/esm/utils/AI/autocomplete/PROMPT.md +13 -0
  151. package/dist/esm/utils/AI/autocomplete/index.mjs +48 -0
  152. package/dist/esm/utils/AI/autocomplete/index.mjs.map +1 -0
  153. package/dist/esm/utils/auditTag/index.mjs +4 -2
  154. package/dist/esm/utils/auditTag/index.mjs.map +1 -1
  155. package/dist/esm/utils/errors/errorCodes.mjs +26 -0
  156. package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
  157. package/dist/esm/utils/mongoDB/connectDB.mjs +10 -0
  158. package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
  159. package/dist/esm/webhooks/stripe.webhook.mjs +32 -0
  160. package/dist/esm/webhooks/stripe.webhook.mjs.map +1 -1
  161. package/dist/types/controllers/ai.controller.d.ts +17 -2
  162. package/dist/types/controllers/ai.controller.d.ts.map +1 -1
  163. package/dist/types/controllers/organization.controller.d.ts.map +1 -1
  164. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  165. package/dist/types/controllers/sessionAuth.controller.d.ts +4 -3
  166. package/dist/types/controllers/sessionAuth.controller.d.ts.map +1 -1
  167. package/dist/types/controllers/stripe.controller.d.ts +15 -7
  168. package/dist/types/controllers/stripe.controller.d.ts.map +1 -1
  169. package/dist/types/controllers/tag.controller.d.ts.map +1 -1
  170. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +4 -3
  171. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -1
  172. package/dist/types/emails/SubscriptionPaymentError.d.ts +4 -3
  173. package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -1
  174. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +4 -3
  175. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts.map +1 -1
  176. package/dist/types/export.d.ts +5 -5
  177. package/dist/types/export.d.ts.map +1 -1
  178. package/dist/types/routes/ai.routes.d.ts +6 -1
  179. package/dist/types/routes/ai.routes.d.ts.map +1 -1
  180. package/dist/types/routes/dictionary.routes.d.ts +4 -4
  181. package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
  182. package/dist/types/routes/event-listener.routes.d.ts +1 -1
  183. package/dist/types/routes/event-listener.routes.d.ts.map +1 -1
  184. package/dist/types/routes/organization.routes.d.ts +5 -5
  185. package/dist/types/routes/organization.routes.d.ts.map +1 -1
  186. package/dist/types/routes/project.routes.d.ts +5 -5
  187. package/dist/types/routes/project.routes.d.ts.map +1 -1
  188. package/dist/types/routes/sessionAuth.routes.d.ts +4 -7
  189. package/dist/types/routes/sessionAuth.routes.d.ts.map +1 -1
  190. package/dist/types/routes/stripe.routes.d.ts +6 -1
  191. package/dist/types/routes/stripe.routes.d.ts.map +1 -1
  192. package/dist/types/routes/tags.routes.d.ts +3 -3
  193. package/dist/types/routes/tags.routes.d.ts.map +1 -1
  194. package/dist/types/routes/user.routes.d.ts +4 -4
  195. package/dist/types/routes/user.routes.d.ts.map +1 -1
  196. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  197. package/dist/types/services/subscription.service.d.ts +9 -0
  198. package/dist/types/services/subscription.service.d.ts.map +1 -1
  199. package/dist/types/utils/AI/askDocQuestion/askDocQuestion.d.ts.map +1 -0
  200. package/dist/types/utils/{auditDictionary → AI/auditDictionary}/index.d.ts +8 -5
  201. package/dist/types/utils/AI/auditDictionary/index.d.ts.map +1 -0
  202. package/dist/types/utils/{auditDictionaryField → AI/auditDictionaryField}/index.d.ts +8 -5
  203. package/dist/types/utils/AI/auditDictionaryField/index.d.ts.map +1 -0
  204. package/dist/types/utils/{auditDictionaryMetadata → AI/auditDictionaryMetadata}/index.d.ts +8 -5
  205. package/dist/types/utils/AI/auditDictionaryMetadata/index.d.ts.map +1 -0
  206. package/dist/types/utils/AI/autocomplete/index.d.ts +22 -0
  207. package/dist/types/utils/AI/autocomplete/index.d.ts.map +1 -0
  208. package/dist/types/utils/auditTag/index.d.ts +7 -4
  209. package/dist/types/utils/auditTag/index.d.ts.map +1 -1
  210. package/dist/types/utils/errors/errorCodes.d.ts +26 -0
  211. package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
  212. package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
  213. package/dist/types/webhooks/stripe.webhook.d.ts.map +1 -1
  214. package/package.json +10 -9
  215. package/dist/cjs/utils/AI/askDocQuestion.cjs.map +0 -1
  216. package/dist/cjs/utils/auditDictionary/index.cjs.map +0 -1
  217. package/dist/cjs/utils/auditDictionaryField/index.cjs.map +0 -1
  218. package/dist/cjs/utils/auditDictionaryMetadata/index.cjs.map +0 -1
  219. package/dist/esm/utils/AI/askDocQuestion.mjs.map +0 -1
  220. package/dist/esm/utils/auditDictionary/index.mjs.map +0 -1
  221. package/dist/esm/utils/auditDictionaryField/index.mjs.map +0 -1
  222. package/dist/esm/utils/auditDictionaryMetadata/index.mjs.map +0 -1
  223. package/dist/types/utils/AI/askDocQuestion.d.ts.map +0 -1
  224. package/dist/types/utils/auditDictionary/index.d.ts.map +0 -1
  225. package/dist/types/utils/auditDictionaryField/index.d.ts.map +0 -1
  226. package/dist/types/utils/auditDictionaryMetadata/index.d.ts.map +0 -1
  227. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/CJS_FORMAT.md +0 -0
  228. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/JSON_FORMAT.md +0 -0
  229. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/JSX_FORMAT.md +0 -0
  230. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/MJS_FORMAT.md +0 -0
  231. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/PROMPT.md +0 -0
  232. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/TSX_FORMAT.md +0 -0
  233. /package/dist/cjs/utils/{auditDictionary → AI/auditDictionary}/TS_FORMAT.md +0 -0
  234. /package/dist/cjs/utils/{auditDictionaryField → AI/auditDictionaryField}/PROMPT.md +0 -0
  235. /package/dist/cjs/utils/{auditDictionaryMetadata → AI/auditDictionaryMetadata}/PROMPT.md +0 -0
  236. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/CJS_FORMAT.md +0 -0
  237. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/JSON_FORMAT.md +0 -0
  238. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/JSX_FORMAT.md +0 -0
  239. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/MJS_FORMAT.md +0 -0
  240. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/PROMPT.md +0 -0
  241. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/TSX_FORMAT.md +0 -0
  242. /package/dist/esm/utils/{auditDictionary → AI/auditDictionary}/TS_FORMAT.md +0 -0
  243. /package/dist/esm/utils/{auditDictionaryField → AI/auditDictionaryField}/PROMPT.md +0 -0
  244. /package/dist/esm/utils/{auditDictionaryMetadata → AI/auditDictionaryMetadata}/PROMPT.md +0 -0
  245. /package/dist/types/utils/AI/{askDocQuestion.d.ts → askDocQuestion/askDocQuestion.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/errors/errorCodes.ts"],"sourcesContent":["import { HttpStatusCodes } from '@utils/httpStatusCodes';\n// @ts-ignore express-intlayer not build yet\nimport type { LanguageContent } from 'express-intlayer';\n\ntype ErrorCode = {\n title: LanguageContent<string>;\n message: LanguageContent<string>;\n statusCode: HttpStatusCodes;\n};\n\nexport const errorData = {\n USER_NOT_DEFINED: {\n title: {\n en: 'User not defined',\n fr: 'Utilisateur non défini',\n es: 'Usuario no definido',\n },\n message: {\n en: 'User is required, but not defined.',\n fr: 'Utilisateur requis, mais non défini.',\n es: 'Usuario es requerido, pero no está definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_NOT_FOUND: {\n title: {\n en: 'User not found',\n fr: 'Utilisateur non trouvé',\n es: 'Usuario no encontrado',\n },\n message: {\n en: 'The user is probably not authenticated. Please try again.',\n fr: \"L'utilisateur n'est probablement pas authentifié. Veuillez réessayer.\",\n es: 'El usuario probablemente no está autenticado. Por favor, inténtelo de nuevo.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n USER_DATA_NOT_FOUND: {\n title: {\n en: 'User Data Not Found',\n fr: 'Données utilisateur non trouvées',\n es: 'Datos de usuario no encontrados',\n },\n message: {\n en: 'The user data was not found.',\n fr: \"Les données utilisateur n'ont pas été trouvées.\",\n es: 'Los datos del usuario no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_ALREADY_LOGGED_IN: {\n title: {\n en: 'User Already Logged In',\n fr: 'Utilisateur déjà connecté',\n es: 'Usuario ya conectado',\n },\n message: {\n en: 'The user is already logged in.',\n fr: \"L'utilisateur est déjà connecté.\",\n es: 'El usuario ya está conectado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_ID_MISMATCH: {\n title: {\n en: 'User ID Mismatch',\n fr: 'Identifiant utilisateur ne correspond pas',\n es: 'Identificador de usuario no coincide',\n },\n message: {\n en: 'The provided user ID does not match the expected value. Please verify and try again.',\n fr: \"L'identifiant utilisateur fourni ne correspond pas à la valeur attendue. Veuillez vérifier et réessayer.\",\n es: 'El identificador de usuario proporcionado no coincide con el valor esperado. Verifique e intente nuevamente.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_INVALID_FIELDS: {\n title: {\n en: 'User Invalid Fields',\n fr: \"Champs d'utilisateur invalides\",\n es: 'Campos de usuario no válidos',\n },\n message: {\n en: 'The provided user fields are invalid.',\n fr: \"Les champs fournis pour l'utilisateur sont invalides.\",\n es: 'Los campos proporcionados para el usuario no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_CREATION_FAILED: {\n title: {\n en: 'User Creation Failed',\n fr: \"Échec de la création de l'utilisateur\",\n es: 'Error al crear el usuario',\n },\n message: {\n en: 'Failed to create the specified user.',\n fr: \"La création de l'utilisateur a échoué.\",\n es: 'No se pudo crear el usuario especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n USER_SESSION_EXPIRED: {\n title: {\n en: 'User Session Expired',\n fr: 'Session utilisateur expirée',\n es: 'Sesión de usuario caducada',\n },\n message: {\n en: 'The user session has expired.',\n fr: \"La session de l'utilisateur a expiré.\",\n es: 'La sesión de usuario ha caducado.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n USER_UPDATE_FAILED: {\n title: {\n en: 'User Update Failed',\n fr: \"Échec de la mise à jour de l'utilisateur\",\n es: 'Error al actualizar el usuario',\n },\n message: {\n en: 'Failed to update the specified user.',\n fr: \"La mise à jour de l'utilisateur a échoué.\",\n es: 'No se pudo actualizar el usuario especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n USER_UPDATED_USER_NOT_FOUND: {\n title: {\n en: 'User Updated User Not Found',\n fr: 'Utilisateur utilisateur non trouvé',\n es: 'Usuario actualizado no encontrado',\n },\n message: {\n en: 'The updated user was not found.',\n fr: \"L'utilisateur utilisateur n'a pas été trouvé.\",\n es: 'El usuario actualizado no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_COUNT_FAILED: {\n title: {\n en: 'User Count Failed',\n fr: 'Échec du comptage des utilisateurs',\n es: 'Error al contar los usuarios',\n },\n message: {\n en: 'Failed to count users.',\n fr: 'Le comptage des utilisateurs a échoué.',\n es: 'No se pudo contar los usuarios.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n USER_PROVIDER_NOT_FOUND: {\n title: {\n en: 'User Provider Not Found',\n fr: \"Fournisseur d'utilisateur non trouvé\",\n es: 'Proveedor de usuario no encontrado',\n },\n message: {\n en: 'The user provider was not found.',\n fr: \"Le fournisseur d'utilisateur n'a pas été trouvé.\",\n es: 'El proveedor de usuario no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_PROVIDER_ALREADY_EXISTS: {\n title: {\n en: 'User Provider Already Exists',\n fr: \"Fournisseur d'utilisateur existe déjà\",\n es: 'Proveedor de usuario ya existe',\n },\n message: {\n en: 'The user provider already exists.',\n fr: \"Le fournisseur d'utilisateur existe déjà.\",\n es: 'El proveedor de usuario ya existe.',\n },\n statusCode: HttpStatusCodes.CONFLICT_409,\n },\n USER_PROVIDER_EMAIL_ALREADY_VALIDATED: {\n title: {\n en: 'User provider email already validated',\n fr: \"Email du fournisseur d'utilisateur déjà validé\",\n es: 'Correo electrónico del proveedor de usuario ya validado',\n },\n message: {\n en: 'The user provider email is already validated.',\n fr: \"L'email du fournisseur d'utilisateur est déjà validé.\",\n es: 'El correo electrónico del proveedor de usuario ya está validado.',\n },\n statusCode: HttpStatusCodes.CONFLICT_409,\n },\n USER_PREVIOUS_PASSWORD_NOT_PROVIDED: {\n title: {\n en: 'User previous password not provided',\n fr: \"Mot de passe précédent de l'utilisateur non fourni\",\n es: 'Contraseña anterior de usuario no proporcionada',\n },\n message: {\n en: 'The user previous password was not provided.',\n fr: \"Le mot de passe précédent de l'utilisateur n'a pas été fourni.\",\n es: 'La contraseña anterior de usuario no fue proporcionada.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_PASSWORD_NOT_DEFINED: {\n title: {\n en: 'User password not defined',\n fr: \"Mot de passe de l'utilisateur non défini\",\n es: 'Contraseña de usuario no definida',\n },\n message: {\n en: 'The user password was not defined.',\n fr: \"Le mot de passe de l'utilisateur n'a pas été défini.\",\n es: 'La contraseña de usuario no se ha definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_PROVIDER_SECRET_NOT_DEFINED: {\n title: {\n en: 'User Provider Secret Not Defined',\n fr: \"Secret du fournisseur d'utilisateur non défini\",\n es: 'Secret del proveedor de usuario no definido',\n },\n message: {\n en: 'The user provider secret was not defined.',\n fr: \"Le secret du fournisseur d'utilisateur n'a pas été défini.\",\n es: 'El secret del proveedor de usuario no se ha definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_PROVIDER_SECRET_NOT_VALID: {\n title: {\n en: 'User Provider Secret Not Valid',\n fr: \"Secret du fournisseur d'utilisateur non valide\",\n es: 'Secret del proveedor de usuario no válido',\n },\n message: {\n en: 'The user provider secret was not valid.',\n fr: \"Le secret du fournisseur d'utilisateur n'a pas été valide.\",\n es: 'El secret del proveedor de usuario no es válido.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_NOT_ORGANIZATION_MEMBER: {\n title: {\n en: 'User Not Organization Member',\n fr: \"Utilisateur non membre de l'organisation\",\n es: 'Usuario no miembro de la organización',\n },\n message: {\n en: 'The user is not a member of the organization.',\n fr: \"L'utilisateur n'est pas membre de l'organisation.\",\n es: 'El usuario no es miembro de la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n USER_NOT_ORGANIZATION_ADMIN: {\n title: {\n en: 'User Not Organization Admin',\n fr: \"Utilisateur non administrateur de l'organisation\",\n es: 'Usuario no administrador de la organización',\n },\n message: {\n en: 'The user is not an admin of the organization.',\n fr: \"L'utilisateur n'est pas administrateur de l'organisation.\",\n es: 'El usuario no es administrador de la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n JWT_TOKEN_CREATION_FAILED_USER: {\n title: {\n en: 'JWT Token Creation Failed',\n fr: 'Echec de la création du jeton JWT',\n es: 'Error al crear el token JWT',\n },\n message: {\n en: 'JWT token creation failed for user.',\n fr: \"Echec de la création du jeton JWT pour l'utilisateur.\",\n es: 'Error al crear el token JWT para el usuario.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n JWT_TOKEN_CREATION_FAILED_ORGANIZATION: {\n title: {\n en: 'JWT Token Creation Failed',\n fr: 'Echec de la création du jeton JWT',\n es: 'Error al crear el token JWT',\n },\n message: {\n en: 'JWT token creation failed for organization.',\n fr: \"Echec de la création du jeton JWT pour l'organisation.\",\n es: 'Error al crear el token JWT para la organización.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n JWT_TOKEN_CREATION_FAILED_PROJECT: {\n title: {\n en: 'JWT Token Creation Failed',\n fr: 'Echec de la création du jeton JWT',\n es: 'Error al crear el token JWT',\n },\n message: {\n en: 'JWT token creation failed for project.',\n fr: 'Echec de la création du jeton JWT pour le projet.',\n es: 'Error al crear el token JWT para el proyecto.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n JWT_TOKEN_ORGANIZATION_MISMATCH_PROJECT: {\n title: {\n en: 'Organization Mismatch',\n fr: 'Organisation non correspondante',\n es: 'Organización no coincidente',\n },\n message: {\n en: 'The specified organization does not match the organization of the project.',\n fr: \"L'organisation spécifiée ne correspond pas à l'organisation du projet.\",\n es: 'La organización especificada no coincide con la organización del proyecto.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n ORGANIZATION_NOT_FOUND: {\n title: {\n en: 'Organization not Found',\n fr: 'Organisation non trouvée',\n es: 'Organización no encontrada',\n },\n message: {\n en: 'Organization not found.',\n fr: 'Organisation non trouvée.',\n es: 'Organización no encontrada.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_NOT_DEFINED: {\n title: {\n en: 'Organization not defined',\n fr: 'Organisation non définie',\n es: 'Organización no definida',\n },\n message: {\n en: 'Organization is required, but not defined.',\n fr: 'Organisation requise, mais non définie.',\n es: 'Organización es requerida, pero no está definida.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_ID_NOT_FOUND: {\n title: {\n en: 'Organization ID Not Found',\n fr: \"Identifiant de l'organisation non trouvé\",\n es: 'Identificador de la organización no encontrado',\n },\n message: {\n en: 'The organization ID was not found.',\n fr: \"L'identifiant de l'organisation n'a pas été trouvé.\",\n es: 'El identificador de la organización no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_CREATION_FAILED: {\n title: {\n en: 'Organization Creation Failed',\n fr: \"Échec de la création de l'organisation\",\n es: 'Error al crear la organización',\n },\n message: {\n en: 'Failed to create the specified organization.',\n fr: \"La création de l'organisation a échoué.\",\n es: 'No se pudo crear la organización especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ORGANIZATION_COUNT_FAILED: {\n title: {\n en: 'Organization Count Failed',\n fr: \"Échec du comptage de l'organisation\",\n es: 'Error al contar la organización',\n },\n message: {\n en: 'Failed to count organizations.',\n fr: 'Le comptage des organisations a échoué.',\n es: 'No se pudo contar las organizaciones.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ORGANIZATION_INVALID_FIELDS: {\n title: {\n en: 'Organization Invalid Fields',\n fr: \"Champs de l'organisation invalides\",\n es: 'Campos de la organización no válidos',\n },\n message: {\n en: 'The provided organization fields are invalid.',\n fr: \"Les champs fournis pour l'organisation sont invalides.\",\n es: 'Los campos proporcionados para la organización no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ORGANIZATION_DATA_NOT_FOUND: {\n title: {\n en: 'Organization Data Not Found',\n fr: \"Données de l'organisation non trouvées\",\n es: 'Datos de la organización no encontrados',\n },\n message: {\n en: 'The organization data was not found.',\n fr: \"Les données de l'organisation n'ont pas été trouvées.\",\n es: 'Los datos de la organización no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_UPDATE_FAILED: {\n title: {\n en: 'Organization Update Failed',\n fr: \"Échec de la mise à jour de l'organisation\",\n es: 'Error al actualizar la organización',\n },\n message: {\n en: 'Failed to update the specified organization.',\n fr: \"La mise à jour de l'organisation a échoué.\",\n es: 'No se pudo actualizar la organización especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ORGANIZATION_MUST_HAVE_MEMBER: {\n title: {\n en: 'Organization Must Have Member',\n fr: \"L'organisation doit avoir au moins un membre\",\n es: 'La organización debe tener al menos un miembro',\n },\n message: {\n en: 'The organization must have at least one member.',\n fr: \"L'organisation doit avoir au moins un membre.\",\n es: 'La organización debe tener al menos un miembro.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ORGANIZATION_MUST_HAVE_ADMIN: {\n title: {\n en: 'Organization Must Have Admin',\n fr: \"L'organisation doit avoir au moins un administrateur\",\n es: 'La organización debe tener al menos un administrador',\n },\n message: {\n en: 'The organization must have at least one admin.',\n fr: \"L'organisation doit avoir au moins un administrateur.\",\n es: 'La organización debe tener al menos un administrador.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ORGANIZATION_PROJECT_MISMATCH: {\n title: {\n en: 'Organization Project Mismatch',\n fr: \"Projet non trouvé dans l'organisation\",\n es: 'El proyecto no se encuentra en la organización',\n },\n message: {\n en: 'The specified organization does not have the requested project.',\n fr: \"L'organisation spécifiée n'a pas le projet demandé.\",\n es: 'La organización especificada no tiene el proyecto solicitado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_PLAN_NOT_FOUND: {\n title: {\n en: 'Organization Plan Not Found',\n fr: \"Plan d'organisation non trouvé\",\n es: 'Plan de organización no encontrado',\n },\n message: {\n en: 'The specified organization does not have a plan.',\n fr: \"L'organisation spécifiée n'a pas de plan.\",\n es: 'La organización especificada no tiene un plan.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_NOT_FOUND: {\n title: {\n en: 'Dictionary Not Found',\n fr: 'Dictionnaire non trouvé',\n es: 'Diccionario no encontrado',\n },\n message: {\n en: 'The specified dictionary could not be found.',\n fr: 'Le dictionnaire spécifié est introuvable.',\n es: 'El diccionario especificado no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_DATA_NOT_FOUND: {\n title: {\n en: 'Dictionary Data Not Found',\n fr: 'Données du dictionnaire non trouvées',\n es: 'Datos del diccionario no encontrados',\n },\n message: {\n en: 'The dictionary data was not found.',\n fr: \"Les données du dictionnaire n'ont pas été trouvées.\",\n es: 'Los datos del diccionario no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_ID_NOT_FOUND: {\n title: {\n en: 'Dictionary ID Not Found',\n fr: 'Identifiant de dictionnaire non trouvé',\n es: 'Identificador de diccionario no encontrado',\n },\n message: {\n en: 'The dictionary ID was not found.',\n fr: \"L'identifiant de dictionnaire n'a pas été trouvé.\",\n es: 'El identificador de diccionario no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_COUNT_FAILED: {\n title: {\n en: 'Dictionary Count Failed',\n fr: 'Echec du comptage du dictionnaire',\n es: 'Error al contar el diccionario',\n },\n message: {\n en: 'Failed to count dictionaries.',\n fr: 'Le comptage des dictionnaires a échoué.',\n es: 'No se pudo contar los diccionarios.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n DICTIONARY_INVALID_FIELDS: {\n title: {\n en: 'Dictionary Invalid Fields',\n fr: 'Champs du dictionnaire invalides',\n es: 'Campos del diccionario no válidos',\n },\n message: {\n en: 'The provided dictionary fields are invalid.',\n fr: 'Les champs fournis pour le dictionnaire sont invalides.',\n es: 'Los campos proporcionados para el diccionario no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n DICTIONARIES_NOT_PROVIDED: {\n title: {\n en: 'Dictionaries Not Provided',\n fr: 'Aucune dictionnaire fourni',\n es: 'No se proporcionaron diccionarios',\n },\n message: {\n en: 'No dictionaries were provided.',\n fr: 'Aucune dictionnaire fourni.',\n es: 'No se proporcionaron diccionarios.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n DICTIONARY_PROJECT_MISMATCH: {\n title: {\n en: 'Dictionary Project Mismatch',\n fr: \"Le dictionnaire n'est pas dans le projet\",\n es: 'El diccionario no está en el proyecto',\n },\n message: {\n en: 'The specified dictionary is not in the project.',\n fr: \"Le dictionnaire n'est pas dans le projet.\",\n es: 'El diccionario no está en el proyecto.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n DICTIONARY_UPDATE_FAILED: {\n title: {\n en: 'Dictionary Update Failed',\n fr: 'Echec de la mise à jour du dictionnaire',\n es: 'Error al actualizar el diccionario',\n },\n message: {\n en: 'Failed to update the specified dictionary.',\n fr: 'La mise à jour du dictionnaire a échoué.',\n es: 'No se pudo actualizar el diccionario especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n DICTIONARY_ACCESS_DENIED: {\n title: {\n en: 'Access Denied to Dictionary',\n fr: 'Accès refusé au dictionnaire',\n es: 'Acceso denegado al diccionario',\n },\n message: {\n en: 'You do not have access to this dictionary.',\n fr: \"Vous n'avez pas accès à ce dictionnaire.\",\n es: 'No tienes acceso a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n NO_DICTIONARIES_PROVIDED: {\n title: {\n en: 'No Dictionaries Provided',\n fr: 'Aucun dictionnaire fourni',\n es: 'No se proporcionaron diccionarios',\n },\n message: {\n en: 'No dictionaries were provided for the operation.',\n fr: 'Aucun dictionnaire n’a été fourni pour l’opération.',\n es: 'No se proporcionaron diccionarios para la operación.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_NOT_DEFINED: {\n title: {\n en: 'Project not defined',\n fr: 'Projet non défini',\n es: 'Proyecto no definido',\n },\n message: {\n en: 'Project is required, but not defined.',\n fr: 'Projet requis, mais non défini.',\n es: 'Proyecto es requerido, pero no está definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_NOT_FOUND: {\n title: {\n en: 'Project Not Found',\n fr: 'Projet non trouvé',\n es: 'Proyecto no encontrado',\n },\n message: {\n en: 'The specified project could not be found.',\n fr: 'Le projet spécifié est introuvable.',\n es: 'El proyecto especificado no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n PROJECT_ID_NOT_FOUND: {\n title: {\n en: 'Project ID Not Found',\n fr: 'Identifiant de projet non trouvé',\n es: 'Identificador de proyecto no encontrado',\n },\n message: {\n en: 'The project ID was not found.',\n fr: \"L'identifiant de projet n'a pas été trouvé.\",\n es: 'El identificador de proyecto no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n PROJECT_ID_MISMATCH: {\n title: {\n en: 'Project ID Mismatch',\n fr: 'Identifiant de projet non correspondant',\n es: 'Identificador de proyecto no coincidente',\n },\n message: {\n en: 'The provided project ID does not match the expected value. Please verify and try again.',\n fr: \"L'identifiant de projet fourni ne correspond pas à la valeur attendue. Veuillez vérifier et réessayer.\",\n es: 'El identificador de proyecto proporcionado no coincide con el valor esperado. Verifique e intente nuevamente.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_COUNT_FAILED: {\n title: {\n en: 'Project Count Failed',\n fr: 'Échec du comptage du projet',\n es: 'Error al contar el proyecto',\n },\n message: {\n en: 'Failed to count projects.',\n fr: 'Le comptage des projets a échoué.',\n es: 'No se pudo contar los proyectos.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n PROJECT_INVALID_FIELDS: {\n title: {\n en: 'Project Invalid Fields',\n fr: 'Champs du projet invalides',\n es: 'Campos del proyecto no válidos',\n },\n message: {\n en: 'The provided project fields are invalid.',\n fr: 'Les champs fournis pour le projet sont invalides.',\n es: 'Los campos proporcionados para el proyecto no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_UPDATE_FAILED: {\n title: {\n en: 'Project Update Failed',\n fr: 'Échec de la mise à jour du projet',\n es: 'Error al actualizar el proyecto',\n },\n message: {\n en: 'Failed to update the specified project.',\n fr: 'La mise à jour du projet a échoué.',\n es: 'No se pudo actualizar el proyecto especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n PROJECT_MUST_HAVE_MEMBER: {\n title: {\n en: 'Project Must Have Member',\n fr: 'Le projet doit avoir au moins un membre',\n es: 'El proyecto debe tener al menos un miembro',\n },\n message: {\n en: 'The project must have at least one member.',\n fr: 'Le projet doit avoir au moins un membre.',\n es: 'El proyecto debe tener al menos un miembro.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_MUST_HAVE_ADMIN: {\n title: {\n en: 'Project Must Have Admin',\n fr: 'Le projet doit avoir au moins un administrateur',\n es: 'El proyecto debe tener al menos un administrador',\n },\n message: {\n en: 'The project must have at least one admin.',\n fr: 'Le projet doit avoir au moins un administrateur.',\n es: 'El proyecto debe tener al menos un administrador.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ACCESS_KEY_NOT_FOUND: {\n title: {\n en: 'Access Key Not Found',\n fr: \"Clé d'accès non trouvée\",\n es: 'Clave de acceso no encontrada',\n },\n message: {\n en: 'The specified access key could not be found.',\n fr: \"La clé d'accès spécifiée est introuvable.\",\n es: 'La clave de acceso especificada no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ACCESS_KEY_CREATION_FAILED: {\n title: {\n en: 'Access Key Creation Failed',\n fr: \"Échec de la création de la clé d'accès\",\n es: 'Error al crear la clave de acceso',\n },\n message: {\n en: 'Failed to create a new access key for the project.',\n fr: \"La création d'une nouvelle clé d'accès pour le projet a échoué.\",\n es: 'No se pudo crear una nueva clave de acceso para el proyecto.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ACCESS_KEY_DELETION_FAILED: {\n title: {\n en: 'Access Key Deletion Failed',\n fr: \"Échec de la suppression de la clé d'accès\",\n es: 'Error al eliminar la clave de acceso',\n },\n message: {\n en: 'Failed to delete the specified access key.',\n fr: \"La suppression de la clé d'accès a échoué.\",\n es: 'No se pudo eliminar la clave de acceso especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ACCESS_KEY_UPDATE_FAILED: {\n title: {\n en: 'Access Key Update Failed',\n fr: \"Échec de la mise à jour de la clé d'accès\",\n es: 'Error al actualizar la clave de acceso',\n },\n message: {\n en: 'Failed to update the specified access key.',\n fr: \"La mise à jour de la clé d'accès a échoué.\",\n es: 'No se pudo actualizar la clave de acceso especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ACCESS_KEY_INVALID: {\n title: {\n en: 'Invalid Access Key',\n fr: \"Clé d'accès invalide\",\n es: 'Clave de acceso no válida',\n },\n message: {\n en: 'The provided access key is invalid or expired.',\n fr: \"La clé d'accès fournie est invalide ou expirée.\",\n es: 'La clave de acceso proporcionada no es válida o ha expirado.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n GITHUB_FETCH_USER_DATA_FAILED: {\n title: {\n en: 'GitHub Fetch User Data Failed',\n fr: 'Échec de la récupération des données utilisateur de GitHub',\n es: 'Error al obtener datos del usuario de GitHub',\n },\n message: {\n en: 'Failed to fetch user data from GitHub.',\n fr: 'Échec de la récupération des données utilisateur de GitHub.',\n es: 'Error al obtener datos del usuario de GitHub.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n GIT_HUB_FETCH_USER_EMAIL_FAILED: {\n title: {\n en: 'GitHub Fetch User Email Failed',\n fr: \"Échec de la récupération de l'email utilisateur de GitHub\",\n es: 'Error al obtener el correo electrónico del usuario de GitHub',\n },\n message: {\n en: 'Failed to fetch user email from GitHub.',\n fr: \"Échec de la récupération de l'email utilisateur de GitHub.\",\n es: 'Error al obtener el correo electrónico del usuario de GitHub.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n LOGIN_FAILED: {\n title: {\n en: 'Login Failed',\n fr: 'Échec de la connexion',\n es: 'Error al iniciar sesión',\n },\n message: {\n en: 'The email or password provided is incorrect.',\n fr: \"L'email ou le mot de passe fourni est incorrect.\",\n es: 'El correo electrónico o la contraseña proporcionada es incorrecta.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_NOT_AUTHENTICATED: {\n title: {\n en: 'User not authenticated',\n fr: 'Utilisateur non authentifié',\n es: 'Usuario no autenticado',\n },\n message: {\n en: 'The user is not authenticated.',\n fr: \"L'utilisateur n'est pas authentifié.\",\n es: 'El usuario no está autenticado.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n AUTH_ERROR: {\n title: {\n en: 'Authentication Error',\n fr: \"Erreur d'authentification\",\n es: 'Error de autentication',\n },\n message: {},\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n INVALID_USER_ID: {\n title: {\n en: 'Invalid User ID',\n fr: 'Identifiant utilisateur non valide',\n es: 'Identificador de usuario no válido',\n },\n message: {\n en: 'The provided user ID is invalid.',\n fr: \"L'identifiant utilisateur fourni n'est pas valide.\",\n es: 'El identificador de usuario proporcionado no es válido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n EMAIL_NOT_PROVIDED: {\n title: {\n en: 'Email Not Provided',\n fr: 'Email non fourni',\n es: 'Email no proporcionado',\n },\n message: {\n en: 'Email not provided.',\n fr: 'Email non fourni.',\n es: 'Email no proporcionado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n EMAIL_ALREADY_REGISTERED: {\n title: {\n en: 'Email Already registered',\n fr: 'Email déjà enregistré',\n es: 'Email ya registrado',\n },\n message: {\n en: 'The email has already been registered.',\n fr: \"L'email a déjà été enregistré.\",\n es: 'El correo electrónico ya ha sido registrado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n SECRET_NOT_PROVIDED: {\n title: {\n en: 'Secret Not Provided',\n fr: 'Secret non fourni',\n es: 'Secreto no proporcionado',\n },\n message: {\n en: 'Secret not provided.',\n fr: 'Secret non fourni.',\n es: 'Secreto no proporcionado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n SESSION_NOT_FOUND: {\n title: {\n en: 'Session Not Found',\n fr: 'Session non trouvée',\n es: 'Sesión no encontrada',\n },\n message: {\n en: 'The session was not found.',\n fr: \"La session n'a pas été trouvée.\",\n es: 'La sesión no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n CLIENT_ID_NOT_FOUND: {\n title: {\n en: 'Client ID Not Found',\n fr: 'Identifiant client non trouvé',\n es: 'Identificador de cliente no encontrado',\n },\n message: {\n en: 'The client ID was not found.',\n fr: \"L'identifiant client n'a pas été trouvé.\",\n es: 'El identificador de cliente no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_IS_NOT_ADMIN_OF_ORGANIZATION: {\n title: {\n en: 'User Is Not Admin Of Organization',\n fr: \"L'utilisateur n'est pas administrateur de l'organisation\",\n es: 'El usuario no es administrador de la organización',\n },\n message: {\n en: 'The user is not an admin of the organization.',\n fr: \"L'utilisateur n'est pas administrateur de l'organisation.\",\n es: 'El usuario no es administrador de la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n USER_IS_NOT_ADMIN_OF_PROJECT: {\n title: {\n en: 'User Is Not Admin Of Project',\n fr: \"L'utilisateur n'est pas administrateur du projet\",\n es: 'El usuario no es administrador del proyecto',\n },\n message: {\n en: 'The user is not an admin of the project.',\n fr: \"L'utilisateur n'est pas administrateur du projet.\",\n es: 'El usuario no es administrador del proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_DATA_NOT_FOUND: {\n title: {\n en: 'Project Data Not Found',\n fr: 'Données du projet non trouvées',\n es: 'Datos del proyecto no encontrados',\n },\n message: {\n en: 'The project data was not found.',\n fr: \"Les données du projet n'ont pas été trouvées.\",\n es: 'Los datos del proyecto no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n PROJECT_NOT_IN_ORGANIZATION: {\n title: {\n en: 'Project Not In Organization',\n fr: \"Projet non dans l'organisation\",\n es: 'Proyecto no en la organización',\n },\n message: {\n en: 'The project is not in the organization.',\n fr: \"Le projet n'est pas dans l'organisation.\",\n es: 'El proyecto no está en la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n DICTIONARY_RIGHTS_NOT_READ: {\n title: {\n en: 'Dictionary Rights Not Read',\n fr: 'Droits de dictionnaire non lus',\n es: 'Derechos de diccionario no leídos',\n },\n message: {\n en: 'You do not have read access to this dictionary.',\n fr: \"Vous n'avez pas accès en lecture à ce dictionnaire.\",\n es: 'No tienes acceso de lectura a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n DICTIONARY_RIGHTS_NOT_WRITE: {\n title: {\n en: 'Dictionary Rights Not Write',\n fr: 'Droits de dictionnaire non écrits',\n es: 'Derechos de diccionario no escritos',\n },\n message: {\n en: 'You do not have write access to this dictionary.',\n fr: \"Vous n'avez pas accès en écriture à ce dictionnaire.\",\n es: 'No tienes acceso de escritura a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n DICTIONARY_RIGHTS_NOT_ADMIN: {\n title: {\n en: 'Dictionary Rights Not Admin',\n fr: 'Droits de dictionnaire non admin',\n es: 'Derechos de diccionario no admin',\n },\n message: {\n en: 'You do not have admin access to this dictionary.',\n fr: \"Vous n'avez pas accès en admin à ce dictionnaire.\",\n es: 'No tienes acceso de admin a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_RIGHTS_NOT_READ: {\n title: {\n en: 'Project Rights Not Read',\n fr: 'Droits de projet non lus',\n es: 'Derechos de proyecto no leídos',\n },\n message: {\n en: 'You do not have read access to this project.',\n fr: \"Vous n'avez pas accès en lecture à ce projet.\",\n es: 'No tienes acceso de lectura a este proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_RIGHTS_NOT_WRITE: {\n title: {\n en: 'Project Rights Not Write',\n fr: 'Droits de projet non écrits',\n es: 'Derechos de proyecto no escritos',\n },\n message: {\n en: 'You do not have write access to this project.',\n fr: \"Vous n'avez pas accès en écriture à ce projet.\",\n es: 'No tienes acceso de escritura a este proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_RIGHTS_NOT_ADMIN: {\n title: {\n en: 'Project Rights Not Admin',\n fr: 'Droits de projet non admin',\n es: 'Derechos de proyecto no admin',\n },\n message: {\n en: 'You do not have admin access to this project.',\n fr: \"Vous n'avez pas accès en admin à ce projet.\",\n es: 'No tienes acceso de admin a este proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n ORGANIZATION_RIGHTS_NOT_READ: {\n title: {\n en: 'Organization Rights Not Read',\n fr: \"Droits d'organisation non lus\",\n es: 'Derechos de organización no leídos',\n },\n message: {\n en: 'You do not have read access to this organization.',\n fr: \"Vous n'avez pas accès en lecture à cette organisation.\",\n es: 'No tienes acceso de lectura a esta organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n ORGANIZATION_RIGHTS_NOT_WRITE: {\n title: {\n en: 'Organization Rights Not Write',\n fr: \"Droits d'organisation non écrits\",\n es: 'Derechos de organización no escritos',\n },\n message: {\n en: 'You do not have write access to this organization.',\n fr: \"Vous n'avez pas accès en écriture à cette organisation.\",\n es: 'No tienes acceso de escritura a esta organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n ORGANIZATION_RIGHTS_NOT_ADMIN: {\n title: {\n en: 'Organization Rights Not Admin',\n fr: \"Droits d'organisation non admin\",\n es: 'Derechos de organización no admin',\n },\n message: {\n en: 'You do not have admin access to this organization.',\n fr: \"Vous n'avez pas accès en admin à cette organisation.\",\n es: 'No tienes acceso de admin a esta organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PLAN_NOT_FOUND: {\n title: {\n en: 'Plan Not Found',\n fr: 'Plan non trouvé',\n es: 'Plan no encontrado',\n },\n message: {\n en: 'Plan not found',\n fr: 'Plan non trouvé',\n es: 'Plan no encontrado',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n MULTIPLE_PLANS_FOUND: {\n title: {\n en: 'Multiple Plans Found',\n fr: 'Plusieurs plans trouvés',\n es: 'Múltiples planes encontrados',\n },\n message: {\n en: 'Multiple plans found for the provided information.',\n fr: \"Plusieurs plans trouvés pour l'information fournie.\",\n es: 'Múltiples planes encontrados para la información proporcionada.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PLAN_USER_LIMIT_REACHED: {\n title: {\n en: 'Plan User Limit Reached',\n fr: 'Limite de participants atteint',\n es: 'Límite de participantes alcanzado',\n },\n message: {\n en: 'The plan has reached its user limit. Please upgrade to add more users.',\n fr: 'Le plan a atteint son limite de participants. Veuillez mettre à niveau pour ajouter plus de participants.',\n es: 'El plan ha alcanzado su límite de participantes. Actualice para agregar más usuarios.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n PLAN_PROJECT_LIMIT_REACHED: {\n title: {\n en: 'Plan Project Limit Reached',\n fr: 'Limite de projets atteint',\n es: 'Límite de proyectos alcanzado',\n },\n message: {\n en: 'The plan has reached its project limit. Please upgrade to add more projects.',\n fr: 'Le plan a atteint son limite de projets. Veuillez mettre à niveau pour ajouter plus de projets.',\n es: 'El plan ha alcanzado su límite de proyectos. Actualice para agregar más proyectos.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n\n SUBSCRIPTION_CREATION_FAILED: {\n title: {\n en: 'Subscription Creation Failed',\n fr: 'Échec de la création de la souscription',\n es: 'Error al crear la suscripción',\n },\n message: {\n en: 'Failed to create the specified subscription.',\n fr: 'La création de la souscription a échoué.',\n es: 'No se pudo crear la suscripción especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n\n CALLBACK_URL_NOT_VALID: {\n title: {\n en: 'Callback URL not valid',\n fr: 'URL de rappel non valide',\n es: 'URL de devolución no válida',\n },\n message: {\n en: 'The callback URL is not valid.',\n fr: 'L’URL de rappel n’est pas valide.',\n es: 'La URL de devolución no es válida.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n STRIPE_SUBSCRIPTION_NO_CUSTOMER: {\n title: {\n en: 'No customer found',\n fr: 'Aucun client trouvé',\n es: 'No se encontró el cliente',\n },\n message: {\n en: 'No customer found for the provided subscription.',\n fr: \"Aucun client n'a été trouvé pour l'abonnement fourni.\",\n es: 'No se encontró ningún cliente para el suscripción proporcionada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n NO_SUBSCRIPTION_ID_PROVIDED: {\n title: {\n en: 'No subscription ID provided',\n fr: \"Aucun ID d'abonnement fourni\",\n es: 'No se proporcionó ningún ID de suscripción',\n },\n message: {\n en: 'No subscription ID provided.',\n fr: \"Aucun ID d'abonnement n'a été fourni.\",\n es: 'No se proporcionó ningún ID de suscripción.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n CANNOT_CANCEL_SUBSCRIPTION: {\n title: {\n en: 'Cannot cancel subscription',\n fr: \"Impossible d'annuler l'abonnement\",\n es: 'No se puede cancelar la suscripción',\n },\n message: {\n en: 'Cannot cancel subscription.',\n fr: \"Impossible d'annuler l'abonnement.\",\n es: 'No se puede cancelar la suscripción.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ALREADY_SUBSCRIBED: {\n title: {\n en: 'Already Subscribed',\n fr: 'Déjà abonné',\n es: 'Ya suscrito',\n },\n message: {\n en: 'You are already subscribed to this plan.',\n fr: 'Vous êtes déjà abonné à ce plan.',\n es: 'Ya estás suscrito a este plan.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n SESSION_CREATION_FAILED: {\n title: {\n en: 'Session Creation Failed',\n fr: 'Échec de la création de la session',\n es: 'Error al crear la sesión',\n },\n message: {\n en: 'Failed to create the specified session.',\n fr: 'La création de la session a échoué.',\n es: 'No se pudo crear la sesión especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n SETUP_INTENT_CREATION_FAILED: {\n title: {\n en: 'Setup Intent Creation Failed',\n fr: \"Échec de la création de l'intention de configuration\",\n es: 'Error al crear la intención de configuración',\n },\n message: {\n en: 'Failed to create the setup intent.',\n fr: \"Échec de la création de l'intention de configuration.\",\n es: 'Error al crear la intención de configuración.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n AUDIT_FAILED: {\n title: {\n en: 'Audit failed',\n fr: 'Audit échoué',\n es: 'Audito fallido',\n },\n message: {\n en: 'Failed to audit the content declaration files.',\n fr: \"Échec de l'audit des fichiers de déclaration de contenu.\",\n es: 'Error al auditar los archivos de declaración de contenido.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n\n TAG_NOT_FOUND: {\n title: {\n en: 'Tag Not Found',\n fr: 'Tag non trouvé',\n es: 'Tag no encontrado',\n },\n message: {\n en: 'The specified tag could not be found.',\n fr: 'Le tag spécifié est introuvable.',\n es: 'El tag especificado no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n TAG_ID_NOT_FOUND: {\n title: {\n en: 'Tag ID Not Found',\n fr: 'Identifiant de tag non trouvé',\n es: 'Identificador de tag no encontrado',\n },\n message: {\n en: 'The tag ID was not found.',\n fr: \"L'identifiant de tag n'a pas été trouvé.\",\n es: 'El identificador de tag no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n TAG_ID_MISMATCH: {\n title: {\n en: 'Tag ID Mismatch',\n fr: 'Identifiant de tag non correspondant',\n es: 'Identificador de tag no coincidente',\n },\n message: {\n en: 'The provided tag ID does not match the expected value. Please verify and try again.',\n fr: \"L'identifiant de tag fourni ne correspond pas à la valeur attendue. Veuillez vérifier et réessayer.\",\n es: 'El identificador de tag proporcionado no coincide con el valor esperado. Verifique e intente nuevamente.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n TAG_COUNT_FAILED: {\n title: {\n en: 'Tag Count Failed',\n fr: 'Échec du comptage du tag',\n es: 'Error al contar el tag',\n },\n message: {\n en: 'Failed to count tags.',\n fr: 'Le comptage des tags a échoué.',\n es: 'No se pudo contar los tags.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n TAG_INVALID_FIELDS: {\n title: {\n en: 'Tag Invalid Fields',\n fr: 'Champs du tag invalides',\n es: 'Campos del tag no válidos',\n },\n message: {\n en: 'The provided tag fields are invalid.',\n fr: 'Les champs fournis pour le tag sont invalides.',\n es: 'Los campos proporcionados para el tag no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n TAG_UPDATE_FAILED: {\n title: {\n en: 'Tag Update Failed',\n fr: 'Échec de la mise à jour du tag',\n es: 'Error al actualizar el tag',\n },\n message: {\n en: 'Failed to update the specified tag.',\n fr: 'La mise à jour du tag a échoué.',\n es: 'No se pudo actualizar el tag especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n TAG_NOT_IN_ORGANIZATION: {\n title: {\n en: 'Tag Not In Organization',\n fr: \"Tag non dans l'organisation\",\n es: 'Etiqueta no en la organización',\n },\n message: {\n en: 'The specified tag is not in the organization.',\n fr: \"Le tag spécifié n'est pas dans l'organisation.\",\n es: 'La etiqueta especificada no está en la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n} satisfies Record<string, ErrorCode>;\n\nexport type ErrorCodes = keyof typeof errorData;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/utils/errors/errorCodes.ts"],"sourcesContent":["import { HttpStatusCodes } from '@utils/httpStatusCodes';\n// @ts-ignore express-intlayer not build yet\nimport type { LanguageContent } from 'express-intlayer';\n\ntype ErrorCode = {\n title: LanguageContent<string>;\n message: LanguageContent<string>;\n statusCode: HttpStatusCodes;\n};\n\nexport const errorData = {\n USER_NOT_DEFINED: {\n title: {\n en: 'User not defined',\n fr: 'Utilisateur non défini',\n es: 'Usuario no definido',\n },\n message: {\n en: 'User is required, but not defined.',\n fr: 'Utilisateur requis, mais non défini.',\n es: 'Usuario es requerido, pero no está definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_NOT_FOUND: {\n title: {\n en: 'User not found',\n fr: 'Utilisateur non trouvé',\n es: 'Usuario no encontrado',\n },\n message: {\n en: 'The user is probably not authenticated. Please try again.',\n fr: \"L'utilisateur n'est probablement pas authentifié. Veuillez réessayer.\",\n es: 'El usuario probablemente no está autenticado. Por favor, inténtelo de nuevo.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n USER_DATA_NOT_FOUND: {\n title: {\n en: 'User Data Not Found',\n fr: 'Données utilisateur non trouvées',\n es: 'Datos de usuario no encontrados',\n },\n message: {\n en: 'The user data was not found.',\n fr: \"Les données utilisateur n'ont pas été trouvées.\",\n es: 'Los datos del usuario no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_ALREADY_LOGGED_IN: {\n title: {\n en: 'User Already Logged In',\n fr: 'Utilisateur déjà connecté',\n es: 'Usuario ya conectado',\n },\n message: {\n en: 'The user is already logged in.',\n fr: \"L'utilisateur est déjà connecté.\",\n es: 'El usuario ya está conectado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_ID_MISMATCH: {\n title: {\n en: 'User ID Mismatch',\n fr: 'Identifiant utilisateur ne correspond pas',\n es: 'Identificador de usuario no coincide',\n },\n message: {\n en: 'The provided user ID does not match the expected value. Please verify and try again.',\n fr: \"L'identifiant utilisateur fourni ne correspond pas à la valeur attendue. Veuillez vérifier et réessayer.\",\n es: 'El identificador de usuario proporcionado no coincide con el valor esperado. Verifique e intente nuevamente.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_INVALID_FIELDS: {\n title: {\n en: 'User Invalid Fields',\n fr: \"Champs d'utilisateur invalides\",\n es: 'Campos de usuario no válidos',\n },\n message: {\n en: 'The provided user fields are invalid.',\n fr: \"Les champs fournis pour l'utilisateur sont invalides.\",\n es: 'Los campos proporcionados para el usuario no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_CREATION_FAILED: {\n title: {\n en: 'User Creation Failed',\n fr: \"Échec de la création de l'utilisateur\",\n es: 'Error al crear el usuario',\n },\n message: {\n en: 'Failed to create the specified user.',\n fr: \"La création de l'utilisateur a échoué.\",\n es: 'No se pudo crear el usuario especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n USER_SESSION_EXPIRED: {\n title: {\n en: 'User Session Expired',\n fr: 'Session utilisateur expirée',\n es: 'Sesión de usuario caducada',\n },\n message: {\n en: 'The user session has expired.',\n fr: \"La session de l'utilisateur a expiré.\",\n es: 'La sesión de usuario ha caducado.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n USER_UPDATE_FAILED: {\n title: {\n en: 'User Update Failed',\n fr: \"Échec de la mise à jour de l'utilisateur\",\n es: 'Error al actualizar el usuario',\n },\n message: {\n en: 'Failed to update the specified user.',\n fr: \"La mise à jour de l'utilisateur a échoué.\",\n es: 'No se pudo actualizar el usuario especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n USER_UPDATED_USER_NOT_FOUND: {\n title: {\n en: 'User Updated User Not Found',\n fr: 'Utilisateur utilisateur non trouvé',\n es: 'Usuario actualizado no encontrado',\n },\n message: {\n en: 'The updated user was not found.',\n fr: \"L'utilisateur utilisateur n'a pas été trouvé.\",\n es: 'El usuario actualizado no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_COUNT_FAILED: {\n title: {\n en: 'User Count Failed',\n fr: 'Échec du comptage des utilisateurs',\n es: 'Error al contar los usuarios',\n },\n message: {\n en: 'Failed to count users.',\n fr: 'Le comptage des utilisateurs a échoué.',\n es: 'No se pudo contar los usuarios.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n USER_PROVIDER_NOT_FOUND: {\n title: {\n en: 'User Provider Not Found',\n fr: \"Fournisseur d'utilisateur non trouvé\",\n es: 'Proveedor de usuario no encontrado',\n },\n message: {\n en: 'The user provider was not found.',\n fr: \"Le fournisseur d'utilisateur n'a pas été trouvé.\",\n es: 'El proveedor de usuario no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_PROVIDER_ALREADY_EXISTS: {\n title: {\n en: 'User Provider Already Exists',\n fr: \"Fournisseur d'utilisateur existe déjà\",\n es: 'Proveedor de usuario ya existe',\n },\n message: {\n en: 'The user provider already exists.',\n fr: \"Le fournisseur d'utilisateur existe déjà.\",\n es: 'El proveedor de usuario ya existe.',\n },\n statusCode: HttpStatusCodes.CONFLICT_409,\n },\n USER_PROVIDER_EMAIL_ALREADY_VALIDATED: {\n title: {\n en: 'User provider email already validated',\n fr: \"Email du fournisseur d'utilisateur déjà validé\",\n es: 'Correo electrónico del proveedor de usuario ya validado',\n },\n message: {\n en: 'The user provider email is already validated.',\n fr: \"L'email du fournisseur d'utilisateur est déjà validé.\",\n es: 'El correo electrónico del proveedor de usuario ya está validado.',\n },\n statusCode: HttpStatusCodes.CONFLICT_409,\n },\n USER_PREVIOUS_PASSWORD_NOT_PROVIDED: {\n title: {\n en: 'User previous password not provided',\n fr: \"Mot de passe précédent de l'utilisateur non fourni\",\n es: 'Contraseña anterior de usuario no proporcionada',\n },\n message: {\n en: 'The user previous password was not provided.',\n fr: \"Le mot de passe précédent de l'utilisateur n'a pas été fourni.\",\n es: 'La contraseña anterior de usuario no fue proporcionada.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_PASSWORD_NOT_DEFINED: {\n title: {\n en: 'User password not defined',\n fr: \"Mot de passe de l'utilisateur non défini\",\n es: 'Contraseña de usuario no definida',\n },\n message: {\n en: 'The user password was not defined.',\n fr: \"Le mot de passe de l'utilisateur n'a pas été défini.\",\n es: 'La contraseña de usuario no se ha definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_PROVIDER_SECRET_NOT_DEFINED: {\n title: {\n en: 'User Provider Secret Not Defined',\n fr: \"Secret du fournisseur d'utilisateur non défini\",\n es: 'Secret del proveedor de usuario no definido',\n },\n message: {\n en: 'The user provider secret was not defined.',\n fr: \"Le secret du fournisseur d'utilisateur n'a pas été défini.\",\n es: 'El secret del proveedor de usuario no se ha definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_PROVIDER_SECRET_NOT_VALID: {\n title: {\n en: 'User Provider Secret Not Valid',\n fr: \"Secret du fournisseur d'utilisateur non valide\",\n es: 'Secret del proveedor de usuario no válido',\n },\n message: {\n en: 'The user provider secret was not valid.',\n fr: \"Le secret du fournisseur d'utilisateur n'a pas été valide.\",\n es: 'El secret del proveedor de usuario no es válido.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_NOT_ORGANIZATION_MEMBER: {\n title: {\n en: 'User Not Organization Member',\n fr: \"Utilisateur non membre de l'organisation\",\n es: 'Usuario no miembro de la organización',\n },\n message: {\n en: 'The user is not a member of the organization.',\n fr: \"L'utilisateur n'est pas membre de l'organisation.\",\n es: 'El usuario no es miembro de la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n USER_NOT_ORGANIZATION_ADMIN: {\n title: {\n en: 'User Not Organization Admin',\n fr: \"Utilisateur non administrateur de l'organisation\",\n es: 'Usuario no administrador de la organización',\n },\n message: {\n en: 'The user is not an admin of the organization.',\n fr: \"L'utilisateur n'est pas administrateur de l'organisation.\",\n es: 'El usuario no es administrador de la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n JWT_TOKEN_CREATION_FAILED_USER: {\n title: {\n en: 'JWT Token Creation Failed',\n fr: 'Echec de la création du jeton JWT',\n es: 'Error al crear el token JWT',\n },\n message: {\n en: 'JWT token creation failed for user.',\n fr: \"Echec de la création du jeton JWT pour l'utilisateur.\",\n es: 'Error al crear el token JWT para el usuario.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n JWT_TOKEN_CREATION_FAILED_ORGANIZATION: {\n title: {\n en: 'JWT Token Creation Failed',\n fr: 'Echec de la création du jeton JWT',\n es: 'Error al crear el token JWT',\n },\n message: {\n en: 'JWT token creation failed for organization.',\n fr: \"Echec de la création du jeton JWT pour l'organisation.\",\n es: 'Error al crear el token JWT para la organización.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n JWT_TOKEN_CREATION_FAILED_PROJECT: {\n title: {\n en: 'JWT Token Creation Failed',\n fr: 'Echec de la création du jeton JWT',\n es: 'Error al crear el token JWT',\n },\n message: {\n en: 'JWT token creation failed for project.',\n fr: 'Echec de la création du jeton JWT pour le projet.',\n es: 'Error al crear el token JWT para el proyecto.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n JWT_TOKEN_ORGANIZATION_MISMATCH_PROJECT: {\n title: {\n en: 'Organization Mismatch',\n fr: 'Organisation non correspondante',\n es: 'Organización no coincidente',\n },\n message: {\n en: 'The specified organization does not match the organization of the project.',\n fr: \"L'organisation spécifiée ne correspond pas à l'organisation du projet.\",\n es: 'La organización especificada no coincide con la organización del proyecto.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n ORGANIZATION_NOT_FOUND: {\n title: {\n en: 'Organization not Found',\n fr: 'Organisation non trouvée',\n es: 'Organización no encontrada',\n },\n message: {\n en: 'Organization not found.',\n fr: 'Organisation non trouvée.',\n es: 'Organización no encontrada.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_NOT_DEFINED: {\n title: {\n en: 'Organization not defined',\n fr: 'Organisation non définie',\n es: 'Organización no definida',\n },\n message: {\n en: 'Organization is required, but not defined.',\n fr: 'Organisation requise, mais non définie.',\n es: 'Organización es requerida, pero no está definida.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_ID_NOT_FOUND: {\n title: {\n en: 'Organization ID Not Found',\n fr: \"Identifiant de l'organisation non trouvé\",\n es: 'Identificador de la organización no encontrado',\n },\n message: {\n en: 'The organization ID was not found.',\n fr: \"L'identifiant de l'organisation n'a pas été trouvé.\",\n es: 'El identificador de la organización no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_CREATION_FAILED: {\n title: {\n en: 'Organization Creation Failed',\n fr: \"Échec de la création de l'organisation\",\n es: 'Error al crear la organización',\n },\n message: {\n en: 'Failed to create the specified organization.',\n fr: \"La création de l'organisation a échoué.\",\n es: 'No se pudo crear la organización especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ORGANIZATION_COUNT_FAILED: {\n title: {\n en: 'Organization Count Failed',\n fr: \"Échec du comptage de l'organisation\",\n es: 'Error al contar la organización',\n },\n message: {\n en: 'Failed to count organizations.',\n fr: 'Le comptage des organisations a échoué.',\n es: 'No se pudo contar las organizaciones.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ORGANIZATION_INVALID_FIELDS: {\n title: {\n en: 'Organization Invalid Fields',\n fr: \"Champs de l'organisation invalides\",\n es: 'Campos de la organización no válidos',\n },\n message: {\n en: 'The provided organization fields are invalid.',\n fr: \"Les champs fournis pour l'organisation sont invalides.\",\n es: 'Los campos proporcionados para la organización no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ORGANIZATION_DATA_NOT_FOUND: {\n title: {\n en: 'Organization Data Not Found',\n fr: \"Données de l'organisation non trouvées\",\n es: 'Datos de la organización no encontrados',\n },\n message: {\n en: 'The organization data was not found.',\n fr: \"Les données de l'organisation n'ont pas été trouvées.\",\n es: 'Los datos de la organización no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_UPDATE_FAILED: {\n title: {\n en: 'Organization Update Failed',\n fr: \"Échec de la mise à jour de l'organisation\",\n es: 'Error al actualizar la organización',\n },\n message: {\n en: 'Failed to update the specified organization.',\n fr: \"La mise à jour de l'organisation a échoué.\",\n es: 'No se pudo actualizar la organización especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ORGANIZATION_MUST_HAVE_MEMBER: {\n title: {\n en: 'Organization Must Have Member',\n fr: \"L'organisation doit avoir au moins un membre\",\n es: 'La organización debe tener al menos un miembro',\n },\n message: {\n en: 'The organization must have at least one member.',\n fr: \"L'organisation doit avoir au moins un membre.\",\n es: 'La organización debe tener al menos un miembro.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ORGANIZATION_MUST_HAVE_ADMIN: {\n title: {\n en: 'Organization Must Have Admin',\n fr: \"L'organisation doit avoir au moins un administrateur\",\n es: 'La organización debe tener al menos un administrador',\n },\n message: {\n en: 'The organization must have at least one admin.',\n fr: \"L'organisation doit avoir au moins un administrateur.\",\n es: 'La organización debe tener al menos un administrador.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ORGANIZATION_PROJECT_MISMATCH: {\n title: {\n en: 'Organization Project Mismatch',\n fr: \"Projet non trouvé dans l'organisation\",\n es: 'El proyecto no se encuentra en la organización',\n },\n message: {\n en: 'The specified organization does not have the requested project.',\n fr: \"L'organisation spécifiée n'a pas le projet demandé.\",\n es: 'La organización especificada no tiene el proyecto solicitado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ORGANIZATION_PLAN_NOT_FOUND: {\n title: {\n en: 'Organization Plan Not Found',\n fr: \"Plan d'organisation non trouvé\",\n es: 'Plan de organización no encontrado',\n },\n message: {\n en: 'The specified organization does not have a plan.',\n fr: \"L'organisation spécifiée n'a pas de plan.\",\n es: 'La organización especificada no tiene un plan.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_NOT_FOUND: {\n title: {\n en: 'Dictionary Not Found',\n fr: 'Dictionnaire non trouvé',\n es: 'Diccionario no encontrado',\n },\n message: {\n en: 'The specified dictionary could not be found.',\n fr: 'Le dictionnaire spécifié est introuvable.',\n es: 'El diccionario especificado no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_DATA_NOT_FOUND: {\n title: {\n en: 'Dictionary Data Not Found',\n fr: 'Données du dictionnaire non trouvées',\n es: 'Datos del diccionario no encontrados',\n },\n message: {\n en: 'The dictionary data was not found.',\n fr: \"Les données du dictionnaire n'ont pas été trouvées.\",\n es: 'Los datos del diccionario no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_ID_NOT_FOUND: {\n title: {\n en: 'Dictionary ID Not Found',\n fr: 'Identifiant de dictionnaire non trouvé',\n es: 'Identificador de diccionario no encontrado',\n },\n message: {\n en: 'The dictionary ID was not found.',\n fr: \"L'identifiant de dictionnaire n'a pas été trouvé.\",\n es: 'El identificador de diccionario no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n DICTIONARY_COUNT_FAILED: {\n title: {\n en: 'Dictionary Count Failed',\n fr: 'Echec du comptage du dictionnaire',\n es: 'Error al contar el diccionario',\n },\n message: {\n en: 'Failed to count dictionaries.',\n fr: 'Le comptage des dictionnaires a échoué.',\n es: 'No se pudo contar los diccionarios.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n DICTIONARY_INVALID_FIELDS: {\n title: {\n en: 'Dictionary Invalid Fields',\n fr: 'Champs du dictionnaire invalides',\n es: 'Campos del diccionario no válidos',\n },\n message: {\n en: 'The provided dictionary fields are invalid.',\n fr: 'Les champs fournis pour le dictionnaire sont invalides.',\n es: 'Los campos proporcionados para el diccionario no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n DICTIONARIES_NOT_PROVIDED: {\n title: {\n en: 'Dictionaries Not Provided',\n fr: 'Aucune dictionnaire fourni',\n es: 'No se proporcionaron diccionarios',\n },\n message: {\n en: 'No dictionaries were provided.',\n fr: 'Aucune dictionnaire fourni.',\n es: 'No se proporcionaron diccionarios.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n DICTIONARY_PROJECT_MISMATCH: {\n title: {\n en: 'Dictionary Project Mismatch',\n fr: \"Le dictionnaire n'est pas dans le projet\",\n es: 'El diccionario no está en el proyecto',\n },\n message: {\n en: 'The specified dictionary is not in the project.',\n fr: \"Le dictionnaire n'est pas dans le projet.\",\n es: 'El diccionario no está en el proyecto.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n DICTIONARY_UPDATE_FAILED: {\n title: {\n en: 'Dictionary Update Failed',\n fr: 'Echec de la mise à jour du dictionnaire',\n es: 'Error al actualizar el diccionario',\n },\n message: {\n en: 'Failed to update the specified dictionary.',\n fr: 'La mise à jour du dictionnaire a échoué.',\n es: 'No se pudo actualizar el diccionario especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n DICTIONARY_ACCESS_DENIED: {\n title: {\n en: 'Access Denied to Dictionary',\n fr: 'Accès refusé au dictionnaire',\n es: 'Acceso denegado al diccionario',\n },\n message: {\n en: 'You do not have access to this dictionary.',\n fr: \"Vous n'avez pas accès à ce dictionnaire.\",\n es: 'No tienes acceso a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n NO_DICTIONARIES_PROVIDED: {\n title: {\n en: 'No Dictionaries Provided',\n fr: 'Aucun dictionnaire fourni',\n es: 'No se proporcionaron diccionarios',\n },\n message: {\n en: 'No dictionaries were provided for the operation.',\n fr: 'Aucun dictionnaire n’a été fourni pour l’opération.',\n es: 'No se proporcionaron diccionarios para la operación.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_NOT_DEFINED: {\n title: {\n en: 'Project not defined',\n fr: 'Projet non défini',\n es: 'Proyecto no definido',\n },\n message: {\n en: 'Project is required, but not defined.',\n fr: 'Projet requis, mais non défini.',\n es: 'Proyecto es requerido, pero no está definido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_NOT_FOUND: {\n title: {\n en: 'Project Not Found',\n fr: 'Projet non trouvé',\n es: 'Proyecto no encontrado',\n },\n message: {\n en: 'The specified project could not be found.',\n fr: 'Le projet spécifié est introuvable.',\n es: 'El proyecto especificado no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n PROJECT_ID_NOT_FOUND: {\n title: {\n en: 'Project ID Not Found',\n fr: 'Identifiant de projet non trouvé',\n es: 'Identificador de proyecto no encontrado',\n },\n message: {\n en: 'The project ID was not found.',\n fr: \"L'identifiant de projet n'a pas été trouvé.\",\n es: 'El identificador de proyecto no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n PROJECT_ID_MISMATCH: {\n title: {\n en: 'Project ID Mismatch',\n fr: 'Identifiant de projet non correspondant',\n es: 'Identificador de proyecto no coincidente',\n },\n message: {\n en: 'The provided project ID does not match the expected value. Please verify and try again.',\n fr: \"L'identifiant de projet fourni ne correspond pas à la valeur attendue. Veuillez vérifier et réessayer.\",\n es: 'El identificador de proyecto proporcionado no coincide con el valor esperado. Verifique e intente nuevamente.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_COUNT_FAILED: {\n title: {\n en: 'Project Count Failed',\n fr: 'Échec du comptage du projet',\n es: 'Error al contar el proyecto',\n },\n message: {\n en: 'Failed to count projects.',\n fr: 'Le comptage des projets a échoué.',\n es: 'No se pudo contar los proyectos.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n PROJECT_INVALID_FIELDS: {\n title: {\n en: 'Project Invalid Fields',\n fr: 'Champs du projet invalides',\n es: 'Campos del proyecto no válidos',\n },\n message: {\n en: 'The provided project fields are invalid.',\n fr: 'Les champs fournis pour le projet sont invalides.',\n es: 'Los campos proporcionados para el proyecto no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_UPDATE_FAILED: {\n title: {\n en: 'Project Update Failed',\n fr: 'Échec de la mise à jour du projet',\n es: 'Error al actualizar el proyecto',\n },\n message: {\n en: 'Failed to update the specified project.',\n fr: 'La mise à jour du projet a échoué.',\n es: 'No se pudo actualizar el proyecto especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n PROJECT_MUST_HAVE_MEMBER: {\n title: {\n en: 'Project Must Have Member',\n fr: 'Le projet doit avoir au moins un membre',\n es: 'El proyecto debe tener al menos un miembro',\n },\n message: {\n en: 'The project must have at least one member.',\n fr: 'Le projet doit avoir au moins un membre.',\n es: 'El proyecto debe tener al menos un miembro.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PROJECT_MUST_HAVE_ADMIN: {\n title: {\n en: 'Project Must Have Admin',\n fr: 'Le projet doit avoir au moins un administrateur',\n es: 'El proyecto debe tener al menos un administrador',\n },\n message: {\n en: 'The project must have at least one admin.',\n fr: 'Le projet doit avoir au moins un administrateur.',\n es: 'El proyecto debe tener al menos un administrador.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n ACCESS_KEY_NOT_FOUND: {\n title: {\n en: 'Access Key Not Found',\n fr: \"Clé d'accès non trouvée\",\n es: 'Clave de acceso no encontrada',\n },\n message: {\n en: 'The specified access key could not be found.',\n fr: \"La clé d'accès spécifiée est introuvable.\",\n es: 'La clave de acceso especificada no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n ACCESS_KEY_CREATION_FAILED: {\n title: {\n en: 'Access Key Creation Failed',\n fr: \"Échec de la création de la clé d'accès\",\n es: 'Error al crear la clave de acceso',\n },\n message: {\n en: 'Failed to create a new access key for the project.',\n fr: \"La création d'une nouvelle clé d'accès pour le projet a échoué.\",\n es: 'No se pudo crear una nueva clave de acceso para el proyecto.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ACCESS_KEY_DELETION_FAILED: {\n title: {\n en: 'Access Key Deletion Failed',\n fr: \"Échec de la suppression de la clé d'accès\",\n es: 'Error al eliminar la clave de acceso',\n },\n message: {\n en: 'Failed to delete the specified access key.',\n fr: \"La suppression de la clé d'accès a échoué.\",\n es: 'No se pudo eliminar la clave de acceso especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ACCESS_KEY_UPDATE_FAILED: {\n title: {\n en: 'Access Key Update Failed',\n fr: \"Échec de la mise à jour de la clé d'accès\",\n es: 'Error al actualizar la clave de acceso',\n },\n message: {\n en: 'Failed to update the specified access key.',\n fr: \"La mise à jour de la clé d'accès a échoué.\",\n es: 'No se pudo actualizar la clave de acceso especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ACCESS_KEY_INVALID: {\n title: {\n en: 'Invalid Access Key',\n fr: \"Clé d'accès invalide\",\n es: 'Clave de acceso no válida',\n },\n message: {\n en: 'The provided access key is invalid or expired.',\n fr: \"La clé d'accès fournie est invalide ou expirée.\",\n es: 'La clave de acceso proporcionada no es válida o ha expirado.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n GITHUB_FETCH_USER_DATA_FAILED: {\n title: {\n en: 'GitHub Fetch User Data Failed',\n fr: 'Échec de la récupération des données utilisateur de GitHub',\n es: 'Error al obtener datos del usuario de GitHub',\n },\n message: {\n en: 'Failed to fetch user data from GitHub.',\n fr: 'Échec de la récupération des données utilisateur de GitHub.',\n es: 'Error al obtener datos del usuario de GitHub.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n GIT_HUB_FETCH_USER_EMAIL_FAILED: {\n title: {\n en: 'GitHub Fetch User Email Failed',\n fr: \"Échec de la récupération de l'email utilisateur de GitHub\",\n es: 'Error al obtener el correo electrónico del usuario de GitHub',\n },\n message: {\n en: 'Failed to fetch user email from GitHub.',\n fr: \"Échec de la récupération de l'email utilisateur de GitHub.\",\n es: 'Error al obtener el correo electrónico del usuario de GitHub.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n LOGIN_FAILED: {\n title: {\n en: 'Login Failed',\n fr: 'Échec de la connexion',\n es: 'Error al iniciar sesión',\n },\n message: {\n en: 'The email or password provided is incorrect.',\n fr: \"L'email ou le mot de passe fourni est incorrect.\",\n es: 'El correo electrónico o la contraseña proporcionada es incorrecta.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n USER_NOT_AUTHENTICATED: {\n title: {\n en: 'User not authenticated',\n fr: 'Utilisateur non authentifié',\n es: 'Usuario no autenticado',\n },\n message: {\n en: 'The user is not authenticated.',\n fr: \"L'utilisateur n'est pas authentifié.\",\n es: 'El usuario no está autenticado.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n AUTH_ERROR: {\n title: {\n en: 'Authentication Error',\n fr: \"Erreur d'authentification\",\n es: 'Error de autentication',\n },\n message: {},\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n INVALID_USER_ID: {\n title: {\n en: 'Invalid User ID',\n fr: 'Identifiant utilisateur non valide',\n es: 'Identificador de usuario no válido',\n },\n message: {\n en: 'The provided user ID is invalid.',\n fr: \"L'identifiant utilisateur fourni n'est pas valide.\",\n es: 'El identificador de usuario proporcionado no es válido.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n EMAIL_NOT_PROVIDED: {\n title: {\n en: 'Email Not Provided',\n fr: 'Email non fourni',\n es: 'Email no proporcionado',\n },\n message: {\n en: 'Email not provided.',\n fr: 'Email non fourni.',\n es: 'Email no proporcionado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n EMAIL_ALREADY_REGISTERED: {\n title: {\n en: 'Email Already registered',\n fr: 'Email déjà enregistré',\n es: 'Email ya registrado',\n },\n message: {\n en: 'The email has already been registered.',\n fr: \"L'email a déjà été enregistré.\",\n es: 'El correo electrónico ya ha sido registrado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n SECRET_NOT_PROVIDED: {\n title: {\n en: 'Secret Not Provided',\n fr: 'Secret non fourni',\n es: 'Secreto no proporcionado',\n },\n message: {\n en: 'Secret not provided.',\n fr: 'Secret non fourni.',\n es: 'Secreto no proporcionado.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n SESSION_NOT_FOUND: {\n title: {\n en: 'Session Not Found',\n fr: 'Session non trouvée',\n es: 'Sesión no encontrada',\n },\n message: {\n en: 'The session was not found.',\n fr: \"La session n'a pas été trouvée.\",\n es: 'La sesión no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n CLIENT_ID_NOT_FOUND: {\n title: {\n en: 'Client ID Not Found',\n fr: 'Identifiant client non trouvé',\n es: 'Identificador de cliente no encontrado',\n },\n message: {\n en: 'The client ID was not found.',\n fr: \"L'identifiant client n'a pas été trouvé.\",\n es: 'El identificador de cliente no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n USER_IS_NOT_ADMIN_OF_ORGANIZATION: {\n title: {\n en: 'User Is Not Admin Of Organization',\n fr: \"L'utilisateur n'est pas administrateur de l'organisation\",\n es: 'El usuario no es administrador de la organización',\n },\n message: {\n en: 'The user is not an admin of the organization.',\n fr: \"L'utilisateur n'est pas administrateur de l'organisation.\",\n es: 'El usuario no es administrador de la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n USER_IS_NOT_ADMIN_OF_PROJECT: {\n title: {\n en: 'User Is Not Admin Of Project',\n fr: \"L'utilisateur n'est pas administrateur du projet\",\n es: 'El usuario no es administrador del proyecto',\n },\n message: {\n en: 'The user is not an admin of the project.',\n fr: \"L'utilisateur n'est pas administrateur du projet.\",\n es: 'El usuario no es administrador del proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_DATA_NOT_FOUND: {\n title: {\n en: 'Project Data Not Found',\n fr: 'Données du projet non trouvées',\n es: 'Datos del proyecto no encontrados',\n },\n message: {\n en: 'The project data was not found.',\n fr: \"Les données du projet n'ont pas été trouvées.\",\n es: 'Los datos del proyecto no se han encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n PROJECT_NOT_IN_ORGANIZATION: {\n title: {\n en: 'Project Not In Organization',\n fr: \"Projet non dans l'organisation\",\n es: 'Proyecto no en la organización',\n },\n message: {\n en: 'The project is not in the organization.',\n fr: \"Le projet n'est pas dans l'organisation.\",\n es: 'El proyecto no está en la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n DICTIONARY_RIGHTS_NOT_READ: {\n title: {\n en: 'Dictionary Rights Not Read',\n fr: 'Droits de dictionnaire non lus',\n es: 'Derechos de diccionario no leídos',\n },\n message: {\n en: 'You do not have read access to this dictionary.',\n fr: \"Vous n'avez pas accès en lecture à ce dictionnaire.\",\n es: 'No tienes acceso de lectura a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n DICTIONARY_RIGHTS_NOT_WRITE: {\n title: {\n en: 'Dictionary Rights Not Write',\n fr: 'Droits de dictionnaire non écrits',\n es: 'Derechos de diccionario no escritos',\n },\n message: {\n en: 'You do not have write access to this dictionary.',\n fr: \"Vous n'avez pas accès en écriture à ce dictionnaire.\",\n es: 'No tienes acceso de escritura a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n DICTIONARY_RIGHTS_NOT_ADMIN: {\n title: {\n en: 'Dictionary Rights Not Admin',\n fr: 'Droits de dictionnaire non admin',\n es: 'Derechos de diccionario no admin',\n },\n message: {\n en: 'You do not have admin access to this dictionary.',\n fr: \"Vous n'avez pas accès en admin à ce dictionnaire.\",\n es: 'No tienes acceso de admin a este diccionario.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_RIGHTS_NOT_READ: {\n title: {\n en: 'Project Rights Not Read',\n fr: 'Droits de projet non lus',\n es: 'Derechos de proyecto no leídos',\n },\n message: {\n en: 'You do not have read access to this project.',\n fr: \"Vous n'avez pas accès en lecture à ce projet.\",\n es: 'No tienes acceso de lectura a este proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_RIGHTS_NOT_WRITE: {\n title: {\n en: 'Project Rights Not Write',\n fr: 'Droits de projet non écrits',\n es: 'Derechos de proyecto no escritos',\n },\n message: {\n en: 'You do not have write access to this project.',\n fr: \"Vous n'avez pas accès en écriture à ce projet.\",\n es: 'No tienes acceso de escritura a este proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECT_RIGHTS_NOT_ADMIN: {\n title: {\n en: 'Project Rights Not Admin',\n fr: 'Droits de projet non admin',\n es: 'Derechos de proyecto no admin',\n },\n message: {\n en: 'You do not have admin access to this project.',\n fr: \"Vous n'avez pas accès en admin à ce projet.\",\n es: 'No tienes acceso de admin a este proyecto.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n ORGANIZATION_RIGHTS_NOT_READ: {\n title: {\n en: 'Organization Rights Not Read',\n fr: \"Droits d'organisation non lus\",\n es: 'Derechos de organización no leídos',\n },\n message: {\n en: 'You do not have read access to this organization.',\n fr: \"Vous n'avez pas accès en lecture à cette organisation.\",\n es: 'No tienes acceso de lectura a esta organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n ORGANIZATION_RIGHTS_NOT_WRITE: {\n title: {\n en: 'Organization Rights Not Write',\n fr: \"Droits d'organisation non écrits\",\n es: 'Derechos de organización no escritos',\n },\n message: {\n en: 'You do not have write access to this organization.',\n fr: \"Vous n'avez pas accès en écriture à cette organisation.\",\n es: 'No tienes acceso de escritura a esta organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n ORGANIZATION_RIGHTS_NOT_ADMIN: {\n title: {\n en: 'Organization Rights Not Admin',\n fr: \"Droits d'organisation non admin\",\n es: 'Derechos de organización no admin',\n },\n message: {\n en: 'You do not have admin access to this organization.',\n fr: \"Vous n'avez pas accès en admin à cette organisation.\",\n es: 'No tienes acceso de admin a esta organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PROJECTS_EXIST: {\n title: {\n en: 'Projects Exist',\n fr: 'Des projets existent',\n es: 'Existen proyectos',\n },\n message: {\n en: 'Projects exist in this organization. Please delete them before deleting the organization.',\n fr: \"Des projets existent dans cette organisation. Veuillez les supprimer avant de supprimer l'organisation.\",\n es: 'Existen proyectos en esta organización. Por favor, elimine los antes de eliminar la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n PLAN_NOT_FOUND: {\n title: {\n en: 'Plan Not Found',\n fr: 'Plan non trouvé',\n es: 'Plan no encontrado',\n },\n message: {\n en: 'Plan not found',\n fr: 'Plan non trouvé',\n es: 'Plan no encontrado',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n MULTIPLE_PLANS_FOUND: {\n title: {\n en: 'Multiple Plans Found',\n fr: 'Plusieurs plans trouvés',\n es: 'Múltiples planes encontrados',\n },\n message: {\n en: 'Multiple plans found for the provided information.',\n fr: \"Plusieurs plans trouvés pour l'information fournie.\",\n es: 'Múltiples planes encontrados para la información proporcionada.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n PLAN_USER_LIMIT_REACHED: {\n title: {\n en: 'Plan User Limit Reached',\n fr: 'Limite de participants atteint',\n es: 'Límite de participantes alcanzado',\n },\n message: {\n en: 'The plan has reached its user limit. Please upgrade to add more users.',\n fr: 'Le plan a atteint son limite de participants. Veuillez mettre à niveau pour ajouter plus de participants.',\n es: 'El plan ha alcanzado su límite de participantes. Actualice para agregar más usuarios.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n PLAN_PROJECT_LIMIT_REACHED: {\n title: {\n en: 'Plan Project Limit Reached',\n fr: 'Limite de projets atteint',\n es: 'Límite de proyectos alcanzado',\n },\n message: {\n en: 'The plan has reached its project limit. Please upgrade to add more projects.',\n fr: 'Le plan a atteint son limite de projets. Veuillez mettre à niveau pour ajouter plus de projets.',\n es: 'El plan ha alcanzado su límite de proyectos. Actualice para agregar más proyectos.',\n },\n statusCode: HttpStatusCodes.UNAUTHORIZED_401,\n },\n\n SUBSCRIPTION_CREATION_FAILED: {\n title: {\n en: 'Subscription Creation Failed',\n fr: 'Échec de la création de la souscription',\n es: 'Error al crear la suscripción',\n },\n message: {\n en: 'Failed to create the specified subscription.',\n fr: 'La création de la souscription a échoué.',\n es: 'No se pudo crear la suscripción especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n\n CALLBACK_URL_NOT_VALID: {\n title: {\n en: 'Callback URL not valid',\n fr: 'URL de rappel non valide',\n es: 'URL de devolución no válida',\n },\n message: {\n en: 'The callback URL is not valid.',\n fr: 'L’URL de rappel n’est pas valide.',\n es: 'La URL de devolución no es válida.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n STRIPE_SUBSCRIPTION_NO_CUSTOMER: {\n title: {\n en: 'No customer found',\n fr: 'Aucun client trouvé',\n es: 'No se encontró el cliente',\n },\n message: {\n en: 'No customer found for the provided subscription.',\n fr: \"Aucun client n'a été trouvé pour l'abonnement fourni.\",\n es: 'No se encontró ningún cliente para el suscripción proporcionada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n NO_SUBSCRIPTION_ID_PROVIDED: {\n title: {\n en: 'No subscription ID provided',\n fr: \"Aucun ID d'abonnement fourni\",\n es: 'No se proporcionó ningún ID de suscripción',\n },\n message: {\n en: 'No subscription ID provided.',\n fr: \"Aucun ID d'abonnement n'a été fourni.\",\n es: 'No se proporcionó ningún ID de suscripción.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n CANNOT_CANCEL_SUBSCRIPTION: {\n title: {\n en: 'Cannot cancel subscription',\n fr: \"Impossible d'annuler l'abonnement\",\n es: 'No se puede cancelar la suscripción',\n },\n message: {\n en: 'Cannot cancel subscription.',\n fr: \"Impossible d'annuler l'abonnement.\",\n es: 'No se puede cancelar la suscripción.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n ALREADY_SUBSCRIBED: {\n title: {\n en: 'Already Subscribed',\n fr: 'Déjà abonné',\n es: 'Ya suscrito',\n },\n message: {\n en: 'You are already subscribed to this plan.',\n fr: 'Vous êtes déjà abonné à ce plan.',\n es: 'Ya estás suscrito a este plan.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n SESSION_CREATION_FAILED: {\n title: {\n en: 'Session Creation Failed',\n fr: 'Échec de la création de la session',\n es: 'Error al crear la sesión',\n },\n message: {\n en: 'Failed to create the specified session.',\n fr: 'La création de la session a échoué.',\n es: 'No se pudo crear la sesión especificada.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n SETUP_INTENT_CREATION_FAILED: {\n title: {\n en: 'Setup Intent Creation Failed',\n fr: \"Échec de la création de l'intention de configuration\",\n es: 'Error al crear la intención de configuración',\n },\n message: {\n en: 'Failed to create the setup intent.',\n fr: \"Échec de la création de l'intention de configuration.\",\n es: 'Error al crear la intención de configuración.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n AUDIT_FAILED: {\n title: {\n en: 'Audit failed',\n fr: 'Audit échoué',\n es: 'Audito fallido',\n },\n message: {\n en: 'Failed to audit the content declaration files.',\n fr: \"Échec de l'audit des fichiers de déclaration de contenu.\",\n es: 'Error al auditar los archivos de declaración de contenido.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n\n TAG_NOT_FOUND: {\n title: {\n en: 'Tag Not Found',\n fr: 'Tag non trouvé',\n es: 'Tag no encontrado',\n },\n message: {\n en: 'The specified tag could not be found.',\n fr: 'Le tag spécifié est introuvable.',\n es: 'El tag especificado no se pudo encontrar.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n TAG_ID_NOT_FOUND: {\n title: {\n en: 'Tag ID Not Found',\n fr: 'Identifiant de tag non trouvé',\n es: 'Identificador de tag no encontrado',\n },\n message: {\n en: 'The tag ID was not found.',\n fr: \"L'identifiant de tag n'a pas été trouvé.\",\n es: 'El identificador de tag no se ha encontrado.',\n },\n statusCode: HttpStatusCodes.NOT_FOUND_404,\n },\n TAG_ID_MISMATCH: {\n title: {\n en: 'Tag ID Mismatch',\n fr: 'Identifiant de tag non correspondant',\n es: 'Identificador de tag no coincidente',\n },\n message: {\n en: 'The provided tag ID does not match the expected value. Please verify and try again.',\n fr: \"L'identifiant de tag fourni ne correspond pas à la valeur attendue. Veuillez vérifier et réessayer.\",\n es: 'El identificador de tag proporcionado no coincide con el valor esperado. Verifique e intente nuevamente.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n TAG_COUNT_FAILED: {\n title: {\n en: 'Tag Count Failed',\n fr: 'Échec du comptage du tag',\n es: 'Error al contar el tag',\n },\n message: {\n en: 'Failed to count tags.',\n fr: 'Le comptage des tags a échoué.',\n es: 'No se pudo contar los tags.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n TAG_INVALID_FIELDS: {\n title: {\n en: 'Tag Invalid Fields',\n fr: 'Champs du tag invalides',\n es: 'Campos del tag no válidos',\n },\n message: {\n en: 'The provided tag fields are invalid.',\n fr: 'Les champs fournis pour le tag sont invalides.',\n es: 'Los campos proporcionados para el tag no son válidos.',\n },\n statusCode: HttpStatusCodes.BAD_REQUEST_400,\n },\n TAG_UPDATE_FAILED: {\n title: {\n en: 'Tag Update Failed',\n fr: 'Échec de la mise à jour du tag',\n es: 'Error al actualizar el tag',\n },\n message: {\n en: 'Failed to update the specified tag.',\n fr: 'La mise à jour du tag a échoué.',\n es: 'No se pudo actualizar el tag especificado.',\n },\n statusCode: HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n },\n TAG_NOT_IN_ORGANIZATION: {\n title: {\n en: 'Tag Not In Organization',\n fr: \"Tag non dans l'organisation\",\n es: 'Etiqueta no en la organización',\n },\n message: {\n en: 'The specified tag is not in the organization.',\n fr: \"Le tag spécifié n'est pas dans l'organisation.\",\n es: 'La etiqueta especificada no está en la organización.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n AI_ACCESS_DENIED: {\n title: {\n en: 'Access denied',\n fr: 'Accès refusé',\n es: 'Acceso denegado',\n },\n message: {\n en: 'Invalid Access keys. Access keys should be defined to use AI features. See https://intlayer.org/doc/concept/editor. Alternatively, you can add your own openAI API key in the settings.',\n fr: \"Clées d'accès invalides. Les clés d'accès doivent être définies pour utiliser les fonctionnalités AI. Voir https://intlayer.org/doc/concept/editor. Alternativement, vous pouvez ajouter votre propre clé API openAI dans les paramètres.\",\n es: 'Claves de acceso no válidas. Las claves de acceso deben definirse para usar funciones AI. Ver https://intlayer.org/doc/concept/editor. Alternativamente, puede agregar su propia clave API openAI en la configuración.',\n },\n statusCode: HttpStatusCodes.FORBIDDEN_403,\n },\n} satisfies Record<string, ErrorCode>;\n\nexport type ErrorCodes = keyof typeof errorData;\n"],"mappings":"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","names":[]}
@@ -32,6 +32,11 @@ __export(connectDB_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(connectDB_exports);
34
34
  var import_logger = require('./../../logger/index.cjs');
35
+ var import_dictionary = require('./../../models/dictionary.model.cjs');
36
+ var import_oAuth2 = require('./../../models/oAuth2.model.cjs');
37
+ var import_project = require('./../../models/project.model.cjs');
38
+ var import_tag = require('./../../models/tag.model.cjs');
39
+ var import_user = require('./../../models/user.model.cjs');
35
40
  var import_mongoose = __toESM(require("mongoose"), 1);
36
41
  const connectDB = async () => {
37
42
  try {
@@ -39,6 +44,11 @@ const connectDB = async () => {
39
44
  `mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`
40
45
  );
41
46
  import_logger.logger.info("MongoDB connected");
47
+ await import_project.ProjectModel.syncIndexes();
48
+ await import_user.UserModel.createIndexes();
49
+ await import_oAuth2.OAuth2AccessTokenModel.createIndexes();
50
+ await import_tag.TagModel.createIndexes();
51
+ await import_dictionary.DictionaryModel.createIndexes();
42
52
  return client;
43
53
  } catch (error) {
44
54
  const errorMessage = `MongoDB connection error - ${error.message}`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport mongoose from 'mongoose';\n\nexport const connectDB = async () => {\n try {\n const client = await mongoose.connect(\n `mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`\n );\n\n logger.info('MongoDB connected');\n\n return client;\n } catch (error) {\n const errorMessage = `MongoDB connection error - ${(error as Error).message}`;\n\n logger.error(errorMessage);\n throw new Error(errorMessage);\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,sBAAqB;AAEd,MAAM,YAAY,YAAY;AACnC,MAAI;AACF,UAAM,SAAS,MAAM,gBAAAA,QAAS;AAAA,MAC5B,iBAAiB,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU;AAAA,IACpF;AAEA,yBAAO,KAAK,mBAAmB;AAE/B,WAAO;AAAA,EACT,SAAS,OAAO;AACd,UAAM,eAAe,8BAA+B,MAAgB,OAAO;AAE3E,yBAAO,MAAM,YAAY;AACzB,UAAM,IAAI,MAAM,YAAY;AAAA,EAC9B;AACF;","names":["mongoose"]}
1
+ {"version":3,"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport { DictionaryModel } from '@models/dictionary.model';\nimport { OAuth2AccessTokenModel } from '@models/oAuth2.model';\nimport { ProjectModel } from '@models/project.model';\nimport { TagModel } from '@models/tag.model';\nimport { UserModel } from '@models/user.model';\nimport mongoose from 'mongoose';\n\nexport const connectDB = async () => {\n try {\n const client = await mongoose.connect(\n `mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`\n );\n\n logger.info('MongoDB connected');\n\n // Recreate indexes for models\n await ProjectModel.syncIndexes();\n await UserModel.createIndexes();\n await OAuth2AccessTokenModel.createIndexes();\n await TagModel.createIndexes();\n await DictionaryModel.createIndexes();\n\n return client;\n } catch (error) {\n const errorMessage = `MongoDB connection error - ${(error as Error).message}`;\n\n logger.error(errorMessage);\n throw new Error(errorMessage);\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,wBAAgC;AAChC,oBAAuC;AACvC,qBAA6B;AAC7B,iBAAyB;AACzB,kBAA0B;AAC1B,sBAAqB;AAEd,MAAM,YAAY,YAAY;AACnC,MAAI;AACF,UAAM,SAAS,MAAM,gBAAAA,QAAS;AAAA,MAC5B,iBAAiB,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU;AAAA,IACpF;AAEA,yBAAO,KAAK,mBAAmB;AAG/B,UAAM,4BAAa,YAAY;AAC/B,UAAM,sBAAU,cAAc;AAC9B,UAAM,qCAAuB,cAAc;AAC3C,UAAM,oBAAS,cAAc;AAC7B,UAAM,kCAAgB,cAAc;AAEpC,WAAO;AAAA,EACT,SAAS,OAAO;AACd,UAAM,eAAe,8BAA+B,MAAgB,OAAO;AAE3E,yBAAO,MAAM,YAAY;AACzB,UAAM,IAAI,MAAM,YAAY;AAAA,EAC9B;AACF;","names":["mongoose"]}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
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
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var stripe_webhook_exports = {};
20
30
  __export(stripe_webhook_exports, {
@@ -22,8 +32,10 @@ __export(stripe_webhook_exports, {
22
32
  });
23
33
  module.exports = __toCommonJS(stripe_webhook_exports);
24
34
  var import_logger = require('./../logger/index.cjs');
35
+ var emailService = __toESM(require('./../services/email.service.cjs'), 1);
25
36
  var import_organization = require('./../services/organization.service.cjs');
26
37
  var import_subscription = require('./../services/subscription.service.cjs');
38
+ var import_user = require('./../services/user.service.cjs');
27
39
  var import_errors = require('./../utils/errors/index.cjs');
28
40
  var import_stripe = require("stripe");
29
41
  const stripeWebhook = async (req, res) => {
@@ -56,6 +68,10 @@ const stripeWebhook = async (req, res) => {
56
68
  if (!organization) {
57
69
  throw new import_errors.GenericError("ORGANIZATION_NOT_FOUND");
58
70
  }
71
+ const user = await (0, import_user.getUserById)(userId);
72
+ if (!user) {
73
+ throw new import_errors.GenericError("USER_NOT_FOUND");
74
+ }
59
75
  const status = statusOverride ?? subscription.status;
60
76
  await (0, import_subscription.addOrUpdateSubscription)(
61
77
  subscriptionId,
@@ -65,6 +81,32 @@ const stripeWebhook = async (req, res) => {
65
81
  organization,
66
82
  status
67
83
  );
84
+ if (status === "active") {
85
+ await emailService.sendEmail({
86
+ type: "subscriptionPaymentSuccess",
87
+ to: user.email,
88
+ email: user.email,
89
+ subscriptionStartDate: (/* @__PURE__ */ new Date()).toLocaleDateString(),
90
+ manageSubscriptionLink: `${process.env.CLIENT_URL}/dashboard/organization`,
91
+ username: user.name,
92
+ organizationName: organization.name,
93
+ planName: organization.plan?.type ?? "Unknown"
94
+ });
95
+ }
96
+ if (status === "canceled") {
97
+ await emailService.sendEmail({
98
+ type: "subscriptionPaymentCancellation",
99
+ to: user.email,
100
+ email: user.email,
101
+ cancellationDate: new Date(
102
+ subscription.current_period_end
103
+ ).toLocaleDateString(),
104
+ reactivateLink: `${process.env.CLIENT_URL}/pricing`,
105
+ username: user.name,
106
+ organizationName: organization.name,
107
+ planName: organization.plan?.type ?? "Unknown"
108
+ });
109
+ }
68
110
  };
69
111
  const handleInvoiceEvent = async (invoice, status) => {
70
112
  const subscriptionId = invoice.subscription;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webhooks/stripe.webhook.ts"],"sourcesContent":["import { logger } from '@logger';\nimport { getOrganizationById } from '@services/organization.service';\nimport {\n addOrUpdateSubscription,\n cancelSubscription,\n changeSubscriptionStatus,\n} from '@services/subscription.service';\nimport { GenericError } from '@utils/errors';\nimport type { Request, Response } from 'express';\nimport type { Locales } from 'intlayer';\nimport { Stripe } from 'stripe';\nimport type { Plan } from '@/types/plan.types';\n\ntype SubscriptionMetadata = {\n locale: Locales; // Localization setting (e.g., 'en', 'fr', 'es')\n userId: string; // ID of the user associated with the subscription\n organizationId: string; // ID of the organization associated with the subscription\n};\n\n/**\n * Stripe webhook handler for processing subscription and invoice events.\n * @param req - Express request object.\n * @param res - Express response object.\n */\nexport const stripeWebhook = async (req: Request, res: Response) => {\n // Initialize the Stripe client with the secret key\n const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);\n\n const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET!; // Webhook secret for verifying event signatures\n const sig = req.headers['stripe-signature']!; // Retrieve the signature from the webhook request headers\n\n let event: Stripe.Event;\n\n // Verify the webhook signature to ensure the request is authentic\n try {\n event = stripe.webhooks.constructEvent(req.body, sig, endpointSecret);\n } catch (err) {\n // Respond with a 400 status code if the signature verification fails\n res.status(400).send(`Webhook Error: ${(err as Error).message}`);\n return;\n }\n\n // Utility function to extract metadata from a Stripe customer\n const extractMetadata = async (customerId: string) => {\n const customer = await stripe.customers.retrieve(customerId); // Retrieve customer details from Stripe\n return (customer as Stripe.Customer).metadata as SubscriptionMetadata; // Return the metadata object\n };\n\n // Handles subscription-related events (creation, update, deletion)\n const handleSubscriptionEvent = async (\n subscription: Stripe.Subscription,\n statusOverride?: Plan['status'] // Optionally override the subscription status\n ) => {\n const { id: subscriptionId, customer } = subscription;\n const priceId = subscription.items.data[0]?.price?.id; // Extract the price ID from subscription items\n\n if (!customer) {\n throw new GenericError('STRIPE_SUBSCRIPTION_NO_CUSTOMER');\n }\n\n const customerId = customer as string;\n const { locale, userId, organizationId } =\n await extractMetadata(customerId); // Extract metadata from the customer\n\n // Set localization in response locals if available\n if (locale) {\n res.locals.locales = locale;\n }\n\n const organization = await getOrganizationById(organizationId); // Fetch organization details by ID\n\n if (!organization) {\n throw new GenericError('ORGANIZATION_NOT_FOUND');\n }\n\n const status = statusOverride ?? subscription.status; // Use the provided status override or the subscription's status\n\n // Update or create a subscription record in the database\n await addOrUpdateSubscription(\n subscriptionId,\n priceId!,\n customerId,\n userId,\n organization,\n status\n );\n };\n\n // Handles invoice-related events (payment success or failure)\n const handleInvoiceEvent = async (\n invoice: Stripe.Invoice,\n status: 'active' | 'incomplete'\n ) => {\n const subscriptionId = invoice.subscription as string; // Extract the subscription ID from the invoice\n if (!subscriptionId) {\n logger.warn('Subscription ID is undefined in invoice.');\n return;\n }\n\n // Retrieve the subscription details from Stripe\n const subscription = await stripe.subscriptions.retrieve(subscriptionId);\n const organization = await getOrganizationById(\n subscription.metadata.organizationId\n );\n\n // Prevent duplicate subscriptions by canceling conflicting subscriptions\n if (\n organization.plan?.subscriptionId &&\n organization.plan.subscriptionId !== subscriptionId\n ) {\n await stripe.subscriptions.cancel(subscriptionId);\n }\n\n const customerId = invoice.customer as string;\n const { locale, userId, organizationId } =\n await extractMetadata(customerId);\n\n // Set localization in response locals if available\n if (locale) {\n res.locals.locales = locale;\n }\n\n // Update the subscription status in the database\n await changeSubscriptionStatus(\n subscriptionId,\n status,\n userId,\n organizationId\n );\n };\n\n try {\n // Log the event type for debugging and monitoring\n logger.info(`Triggered event type ${event.type}`);\n\n // Handle specific event types\n switch (event.type) {\n case 'customer.subscription.created': {\n logger.info(`Handled event type ${event.type}`);\n // Process a new subscription creation event\n await handleSubscriptionEvent(event.data.object as Stripe.Subscription);\n break;\n }\n case 'customer.subscription.updated': {\n logger.info(`Handled event type ${event.type}`);\n // Process a subscription update event\n await handleSubscriptionEvent(event.data.object as Stripe.Subscription);\n break;\n }\n case 'customer.subscription.deleted': {\n logger.info(`Handled event type ${event.type}`);\n const subscription = event.data\n .object as unknown as Stripe.Subscription;\n const customerId = subscription.customer as string;\n const { locale, organizationId } = await extractMetadata(customerId);\n\n // Set localization in response locals if available\n if (locale) {\n res.locals.locales = locale;\n }\n\n // Handle subscription deletion by canceling it in the database\n await cancelSubscription(subscription.id, organizationId);\n break;\n }\n case 'invoice.payment_succeeded': {\n logger.info(`Handled event type ${event.type}`);\n // Handle successful invoice payment\n await handleInvoiceEvent(event.data.object as Stripe.Invoice, 'active');\n break;\n }\n case 'invoice.payment_failed': {\n logger.info(`Handled event type ${event.type}`);\n // Handle failed invoice payment\n await handleInvoiceEvent(\n event.data.object as Stripe.Invoice,\n 'incomplete'\n );\n break;\n }\n default:\n // Log unhandled event types for visibility\n logger.info(`Unhandled event type ${event.type}`);\n }\n\n // Respond to Stripe to confirm the event was processed successfully\n res.send();\n } catch (error) {\n // Log errors for debugging and respond with a 500 status code\n logger.error(\n `Error handling event ${event.type}: ${(error as Error).message}`\n );\n res.status(500).send('Server Error');\n }\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/webhooks/stripe.webhook.ts"],"sourcesContent":["import { logger } from '@logger';\nimport * as emailService from '@services/email.service';\nimport { getOrganizationById } from '@services/organization.service';\nimport {\n addOrUpdateSubscription,\n cancelSubscription,\n changeSubscriptionStatus,\n} from '@services/subscription.service';\nimport { getUserById } from '@services/user.service';\nimport { GenericError } from '@utils/errors';\nimport type { Request, Response } from 'express';\nimport type { Locales } from 'intlayer';\nimport { Stripe } from 'stripe';\nimport type { Plan } from '@/types/plan.types';\n\ntype SubscriptionMetadata = {\n locale: Locales; // Localization setting (e.g., 'en', 'fr', 'es')\n userId: string; // ID of the user associated with the subscription\n organizationId: string; // ID of the organization associated with the subscription\n};\n\n/**\n * Stripe webhook handler for processing subscription and invoice events.\n * @param req - Express request object.\n * @param res - Express response object.\n */\nexport const stripeWebhook = async (req: Request, res: Response) => {\n // Initialize the Stripe client with the secret key\n const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);\n\n const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET!; // Webhook secret for verifying event signatures\n const sig = req.headers['stripe-signature']!; // Retrieve the signature from the webhook request headers\n\n let event: Stripe.Event;\n\n // Verify the webhook signature to ensure the request is authentic\n try {\n event = stripe.webhooks.constructEvent(req.body, sig, endpointSecret);\n } catch (err) {\n // Respond with a 400 status code if the signature verification fails\n res.status(400).send(`Webhook Error: ${(err as Error).message}`);\n return;\n }\n\n // Utility function to extract metadata from a Stripe customer\n const extractMetadata = async (customerId: string) => {\n const customer = await stripe.customers.retrieve(customerId); // Retrieve customer details from Stripe\n return (customer as Stripe.Customer).metadata as SubscriptionMetadata; // Return the metadata object\n };\n\n // Handles subscription-related events (creation, update, deletion)\n const handleSubscriptionEvent = async (\n subscription: Stripe.Subscription,\n statusOverride?: Plan['status'] // Optionally override the subscription status\n ) => {\n const { id: subscriptionId, customer } = subscription;\n const priceId = subscription.items.data[0]?.price?.id; // Extract the price ID from subscription items\n\n if (!customer) {\n throw new GenericError('STRIPE_SUBSCRIPTION_NO_CUSTOMER');\n }\n\n const customerId = customer as string;\n const { locale, userId, organizationId } =\n await extractMetadata(customerId); // Extract metadata from the customer\n\n // Set localization in response locals if available\n if (locale) {\n res.locals.locales = locale;\n }\n\n const organization = await getOrganizationById(organizationId); // Fetch organization details by ID\n\n if (!organization) {\n throw new GenericError('ORGANIZATION_NOT_FOUND');\n }\n\n const user = await getUserById(userId);\n\n if (!user) {\n throw new GenericError('USER_NOT_FOUND');\n }\n\n const status = statusOverride ?? subscription.status; // Use the provided status override or the subscription's status\n\n // Update or create a subscription record in the database\n await addOrUpdateSubscription(\n subscriptionId,\n priceId!,\n customerId,\n userId,\n organization,\n status\n );\n\n if (status === 'active') {\n await emailService.sendEmail({\n type: 'subscriptionPaymentSuccess',\n to: user.email,\n email: user.email,\n subscriptionStartDate: new Date().toLocaleDateString(),\n manageSubscriptionLink: `${process.env.CLIENT_URL}/dashboard/organization`,\n username: user.name,\n organizationName: organization.name,\n planName: organization.plan?.type ?? 'Unknown',\n });\n }\n if (status === 'canceled') {\n await emailService.sendEmail({\n type: 'subscriptionPaymentCancellation',\n to: user.email,\n email: user.email,\n cancellationDate: new Date(\n subscription.current_period_end\n ).toLocaleDateString(),\n reactivateLink: `${process.env.CLIENT_URL}/pricing`,\n username: user.name,\n organizationName: organization.name,\n planName: organization.plan?.type ?? 'Unknown',\n });\n }\n };\n\n // Handles invoice-related events (payment success or failure)\n const handleInvoiceEvent = async (\n invoice: Stripe.Invoice,\n status: 'active' | 'incomplete'\n ) => {\n const subscriptionId = invoice.subscription as string; // Extract the subscription ID from the invoice\n if (!subscriptionId) {\n logger.warn('Subscription ID is undefined in invoice.');\n return;\n }\n\n // Retrieve the subscription details from Stripe\n const subscription = await stripe.subscriptions.retrieve(subscriptionId);\n const organization = await getOrganizationById(\n subscription.metadata.organizationId\n );\n\n // Prevent duplicate subscriptions by canceling conflicting subscriptions\n if (\n organization.plan?.subscriptionId &&\n organization.plan.subscriptionId !== subscriptionId\n ) {\n await stripe.subscriptions.cancel(subscriptionId);\n }\n\n const customerId = invoice.customer as string;\n const { locale, userId, organizationId } =\n await extractMetadata(customerId);\n\n // Set localization in response locals if available\n if (locale) {\n res.locals.locales = locale;\n }\n\n // Update the subscription status in the database\n await changeSubscriptionStatus(\n subscriptionId,\n status,\n userId,\n organizationId\n );\n };\n\n try {\n // Log the event type for debugging and monitoring\n logger.info(`Triggered event type ${event.type}`);\n\n // Handle specific event types\n switch (event.type) {\n case 'customer.subscription.created': {\n logger.info(`Handled event type ${event.type}`);\n // Process a new subscription creation event\n await handleSubscriptionEvent(event.data.object as Stripe.Subscription);\n break;\n }\n case 'customer.subscription.updated': {\n logger.info(`Handled event type ${event.type}`);\n // Process a subscription update event\n await handleSubscriptionEvent(event.data.object as Stripe.Subscription);\n break;\n }\n case 'customer.subscription.deleted': {\n logger.info(`Handled event type ${event.type}`);\n const subscription = event.data\n .object as unknown as Stripe.Subscription;\n const customerId = subscription.customer as string;\n const { locale, organizationId } = await extractMetadata(customerId);\n\n // Set localization in response locals if available\n if (locale) {\n res.locals.locales = locale;\n }\n\n // Handle subscription deletion by canceling it in the database\n await cancelSubscription(subscription.id, organizationId);\n break;\n }\n case 'invoice.payment_succeeded': {\n logger.info(`Handled event type ${event.type}`);\n // Handle successful invoice payment\n await handleInvoiceEvent(event.data.object as Stripe.Invoice, 'active');\n break;\n }\n case 'invoice.payment_failed': {\n logger.info(`Handled event type ${event.type}`);\n // Handle failed invoice payment\n await handleInvoiceEvent(\n event.data.object as Stripe.Invoice,\n 'incomplete'\n );\n break;\n }\n default:\n // Log unhandled event types for visibility\n logger.info(`Unhandled event type ${event.type}`);\n }\n\n // Respond to Stripe to confirm the event was processed successfully\n res.send();\n } catch (error) {\n // Log errors for debugging and respond with a 500 status code\n logger.error(\n `Error handling event ${event.type}: ${(error as Error).message}`\n );\n res.status(500).send('Server Error');\n }\n};\n"],"mappings":"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","names":[]}