@intlayer/backend 3.0.3 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/cjs/controllers/dictionary.controller.cjs +91 -18
  2. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  3. package/dist/cjs/controllers/organization.controller.cjs +140 -12
  4. package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
  5. package/dist/cjs/controllers/project.controller.cjs +181 -31
  6. package/dist/cjs/controllers/project.controller.cjs.map +1 -1
  7. package/dist/cjs/controllers/projectAccessKey.controller.cjs +61 -10
  8. package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -1
  9. package/dist/cjs/controllers/sessionAuth.controller.cjs +291 -62
  10. package/dist/cjs/controllers/sessionAuth.controller.cjs.map +1 -1
  11. package/dist/cjs/controllers/stripe.controller.cjs +84 -0
  12. package/dist/cjs/controllers/stripe.controller.cjs.map +1 -0
  13. package/dist/cjs/controllers/user.controller.cjs +49 -20
  14. package/dist/cjs/controllers/user.controller.cjs.map +1 -1
  15. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs +182 -0
  16. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs.map +1 -0
  17. package/dist/cjs/emails/SubscriptionPaymentError.cjs +182 -0
  18. package/dist/cjs/emails/SubscriptionPaymentError.cjs.map +1 -0
  19. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs +188 -0
  20. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs.map +1 -0
  21. package/dist/cjs/export.cjs.map +1 -1
  22. package/dist/cjs/index.cjs +16 -5
  23. package/dist/cjs/index.cjs.map +1 -1
  24. package/dist/cjs/middlewares/oAuth2.middleware.cjs +10 -0
  25. package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -1
  26. package/dist/cjs/middlewares/sessionAuth.middleware.cjs +50 -10
  27. package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -1
  28. package/dist/cjs/routes/dictionary.routes.cjs +2 -62
  29. package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
  30. package/dist/cjs/routes/organization.routes.cjs +1 -25
  31. package/dist/cjs/routes/organization.routes.cjs.map +1 -1
  32. package/dist/cjs/routes/project.routes.cjs +10 -85
  33. package/dist/cjs/routes/project.routes.cjs.map +1 -1
  34. package/dist/cjs/routes/sessionAuth.routes.cjs +26 -25
  35. package/dist/cjs/routes/sessionAuth.routes.cjs.map +1 -1
  36. package/dist/cjs/routes/stripe.routes.cjs +42 -0
  37. package/dist/cjs/routes/stripe.routes.cjs.map +1 -0
  38. package/dist/cjs/routes/user.routes.cjs +6 -27
  39. package/dist/cjs/routes/user.routes.cjs.map +1 -1
  40. package/dist/cjs/schemas/organization.schema.cjs +5 -0
  41. package/dist/cjs/schemas/organization.schema.cjs.map +1 -1
  42. package/dist/cjs/{middlewares/admin.middleware.cjs → schemas/plans.schema.cjs} +32 -20
  43. package/dist/cjs/schemas/plans.schema.cjs.map +1 -0
  44. package/dist/cjs/schemas/project.schema.cjs +14 -1
  45. package/dist/cjs/schemas/project.schema.cjs.map +1 -1
  46. package/dist/cjs/schemas/user.schema.cjs +5 -1
  47. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  48. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  49. package/dist/cjs/services/email.service.cjs +113 -43
  50. package/dist/cjs/services/email.service.cjs.map +1 -1
  51. package/dist/cjs/services/oAuth2.service.cjs +16 -8
  52. package/dist/cjs/services/oAuth2.service.cjs.map +1 -1
  53. package/dist/cjs/services/organization.service.cjs +63 -8
  54. package/dist/cjs/services/organization.service.cjs.map +1 -1
  55. package/dist/cjs/services/project.service.cjs +9 -5
  56. package/dist/cjs/services/project.service.cjs.map +1 -1
  57. package/dist/cjs/services/projectAccessKey.service.cjs +42 -10
  58. package/dist/cjs/services/projectAccessKey.service.cjs.map +1 -1
  59. package/dist/cjs/services/sessionAuth.service.cjs +9 -11
  60. package/dist/cjs/services/sessionAuth.service.cjs.map +1 -1
  61. package/dist/cjs/services/subscription.service.cjs +201 -0
  62. package/dist/cjs/services/subscription.service.cjs.map +1 -0
  63. package/dist/cjs/services/user.service.cjs +1 -3
  64. package/dist/cjs/services/user.service.cjs.map +1 -1
  65. package/dist/cjs/types/dictionary.types.cjs.map +1 -1
  66. package/dist/cjs/types/organization.types.cjs.map +1 -1
  67. package/dist/cjs/types/plan.types.cjs +17 -0
  68. package/dist/cjs/types/plan.types.cjs.map +1 -0
  69. package/dist/cjs/types/project.types.cjs.map +1 -1
  70. package/dist/cjs/types/session.types.cjs.map +1 -1
  71. package/dist/cjs/types/user.types.cjs.map +1 -1
  72. package/dist/cjs/utils/errors/ErrorHandler.cjs +29 -9
  73. package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
  74. package/dist/cjs/utils/errors/ErrorsClass.cjs +17 -3
  75. package/dist/cjs/utils/errors/ErrorsClass.cjs.map +1 -1
  76. package/dist/cjs/utils/errors/errorCodes.cjs +321 -9
  77. package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
  78. package/dist/cjs/utils/mapper/organization.cjs.map +1 -1
  79. package/dist/cjs/utils/mapper/project.cjs +19 -3
  80. package/dist/cjs/utils/mapper/project.cjs.map +1 -1
  81. package/dist/cjs/utils/mapper/user.cjs.map +1 -1
  82. package/dist/cjs/utils/plan.cjs +75 -0
  83. package/dist/cjs/utils/plan.cjs.map +1 -0
  84. package/dist/cjs/utils/responseData.cjs +8 -0
  85. package/dist/cjs/utils/responseData.cjs.map +1 -1
  86. package/dist/cjs/webhooks/stripe.webhook.cjs +133 -0
  87. package/dist/cjs/webhooks/stripe.webhook.cjs.map +1 -0
  88. package/dist/esm/controllers/dictionary.controller.mjs +91 -18
  89. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  90. package/dist/esm/controllers/organization.controller.mjs +140 -12
  91. package/dist/esm/controllers/organization.controller.mjs.map +1 -1
  92. package/dist/esm/controllers/project.controller.mjs +181 -31
  93. package/dist/esm/controllers/project.controller.mjs.map +1 -1
  94. package/dist/esm/controllers/projectAccessKey.controller.mjs +61 -10
  95. package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -1
  96. package/dist/esm/controllers/sessionAuth.controller.mjs +287 -61
  97. package/dist/esm/controllers/sessionAuth.controller.mjs.map +1 -1
  98. package/dist/esm/controllers/stripe.controller.mjs +60 -0
  99. package/dist/esm/controllers/stripe.controller.mjs.map +1 -0
  100. package/dist/esm/controllers/user.controller.mjs +49 -20
  101. package/dist/esm/controllers/user.controller.mjs.map +1 -1
  102. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs +168 -0
  103. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs.map +1 -0
  104. package/dist/esm/emails/SubscriptionPaymentError.mjs +168 -0
  105. package/dist/esm/emails/SubscriptionPaymentError.mjs.map +1 -0
  106. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs +174 -0
  107. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs.map +1 -0
  108. package/dist/esm/export.mjs.map +1 -1
  109. package/dist/esm/index.mjs +19 -7
  110. package/dist/esm/index.mjs.map +1 -1
  111. package/dist/esm/middlewares/oAuth2.middleware.mjs +10 -0
  112. package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
  113. package/dist/esm/middlewares/sessionAuth.middleware.mjs +49 -9
  114. package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -1
  115. package/dist/esm/routes/dictionary.routes.mjs +2 -62
  116. package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
  117. package/dist/esm/routes/organization.routes.mjs +1 -25
  118. package/dist/esm/routes/organization.routes.mjs.map +1 -1
  119. package/dist/esm/routes/project.routes.mjs +10 -85
  120. package/dist/esm/routes/project.routes.mjs.map +1 -1
  121. package/dist/esm/routes/sessionAuth.routes.mjs +29 -26
  122. package/dist/esm/routes/sessionAuth.routes.mjs.map +1 -1
  123. package/dist/esm/routes/stripe.routes.mjs +17 -0
  124. package/dist/esm/routes/stripe.routes.mjs.map +1 -0
  125. package/dist/esm/routes/user.routes.mjs +6 -27
  126. package/dist/esm/routes/user.routes.mjs.map +1 -1
  127. package/dist/esm/schemas/organization.schema.mjs +5 -0
  128. package/dist/esm/schemas/organization.schema.mjs.map +1 -1
  129. package/dist/esm/schemas/plans.schema.mjs +32 -0
  130. package/dist/esm/schemas/plans.schema.mjs.map +1 -0
  131. package/dist/esm/schemas/project.schema.mjs +13 -1
  132. package/dist/esm/schemas/project.schema.mjs.map +1 -1
  133. package/dist/esm/schemas/user.schema.mjs +5 -1
  134. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  135. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  136. package/dist/esm/services/email.service.mjs +125 -43
  137. package/dist/esm/services/email.service.mjs.map +1 -1
  138. package/dist/esm/services/oAuth2.service.mjs +16 -8
  139. package/dist/esm/services/oAuth2.service.mjs.map +1 -1
  140. package/dist/esm/services/organization.service.mjs +58 -7
  141. package/dist/esm/services/organization.service.mjs.map +1 -1
  142. package/dist/esm/services/project.service.mjs +9 -5
  143. package/dist/esm/services/project.service.mjs.map +1 -1
  144. package/dist/esm/services/projectAccessKey.service.mjs +42 -10
  145. package/dist/esm/services/projectAccessKey.service.mjs.map +1 -1
  146. package/dist/esm/services/sessionAuth.service.mjs +9 -10
  147. package/dist/esm/services/sessionAuth.service.mjs.map +1 -1
  148. package/dist/esm/services/subscription.service.mjs +178 -0
  149. package/dist/esm/services/subscription.service.mjs.map +1 -0
  150. package/dist/esm/services/user.service.mjs +1 -3
  151. package/dist/esm/services/user.service.mjs.map +1 -1
  152. package/dist/esm/types/plan.types.mjs +1 -0
  153. package/dist/esm/types/plan.types.mjs.map +1 -0
  154. package/dist/esm/utils/errors/ErrorHandler.mjs +29 -9
  155. package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
  156. package/dist/esm/utils/errors/ErrorsClass.mjs +17 -3
  157. package/dist/esm/utils/errors/ErrorsClass.mjs.map +1 -1
  158. package/dist/esm/utils/errors/errorCodes.mjs +321 -9
  159. package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
  160. package/dist/esm/utils/mapper/organization.mjs.map +1 -1
  161. package/dist/esm/utils/mapper/project.mjs +17 -2
  162. package/dist/esm/utils/mapper/project.mjs.map +1 -1
  163. package/dist/esm/utils/mapper/user.mjs.map +1 -1
  164. package/dist/esm/utils/plan.mjs +50 -0
  165. package/dist/esm/utils/plan.mjs.map +1 -0
  166. package/dist/esm/utils/responseData.mjs +8 -0
  167. package/dist/esm/utils/responseData.mjs.map +1 -1
  168. package/dist/esm/webhooks/stripe.webhook.mjs +113 -0
  169. package/dist/esm/webhooks/stripe.webhook.mjs.map +1 -0
  170. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  171. package/dist/types/controllers/organization.controller.d.ts.map +1 -1
  172. package/dist/types/controllers/project.controller.d.ts +9 -7
  173. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  174. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  175. package/dist/types/controllers/sessionAuth.controller.d.ts +28 -9
  176. package/dist/types/controllers/sessionAuth.controller.d.ts.map +1 -1
  177. package/dist/types/controllers/stripe.controller.d.ts +17 -0
  178. package/dist/types/controllers/stripe.controller.d.ts.map +1 -0
  179. package/dist/types/controllers/user.controller.d.ts.map +1 -1
  180. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +20 -0
  181. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -0
  182. package/dist/types/emails/SubscriptionPaymentError.d.ts +20 -0
  183. package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -0
  184. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +20 -0
  185. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts.map +1 -0
  186. package/dist/types/export.d.ts +2 -0
  187. package/dist/types/export.d.ts.map +1 -1
  188. package/dist/types/index.d.ts.map +1 -1
  189. package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -1
  190. package/dist/types/middlewares/sessionAuth.middleware.d.ts +13 -7
  191. package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -1
  192. package/dist/types/models/dictionary.model.d.ts +1 -1
  193. package/dist/types/models/oAuth2.model.d.ts +1 -1
  194. package/dist/types/models/organization.model.d.ts +2 -1
  195. package/dist/types/models/organization.model.d.ts.map +1 -1
  196. package/dist/types/models/plan.moddel.d.ts +11 -0
  197. package/dist/types/models/plan.moddel.d.ts.map +1 -0
  198. package/dist/types/models/project.model.d.ts +1 -1
  199. package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
  200. package/dist/types/routes/organization.routes.d.ts.map +1 -1
  201. package/dist/types/routes/project.routes.d.ts.map +1 -1
  202. package/dist/types/routes/sessionAuth.routes.d.ts +15 -2
  203. package/dist/types/routes/sessionAuth.routes.d.ts.map +1 -1
  204. package/dist/types/routes/stripe.routes.d.ts +10 -0
  205. package/dist/types/routes/stripe.routes.d.ts.map +1 -0
  206. package/dist/types/routes/user.routes.d.ts.map +1 -1
  207. package/dist/types/schemas/dictionary.schema.d.ts +2 -2
  208. package/dist/types/schemas/oAuth2.schema.d.ts +2 -2
  209. package/dist/types/schemas/organization.schema.d.ts +3 -2
  210. package/dist/types/schemas/organization.schema.d.ts.map +1 -1
  211. package/dist/types/schemas/plans.schema.d.ts +16 -0
  212. package/dist/types/schemas/plans.schema.d.ts.map +1 -0
  213. package/dist/types/schemas/project.schema.d.ts +12 -3
  214. package/dist/types/schemas/project.schema.d.ts.map +1 -1
  215. package/dist/types/schemas/user.schema.d.ts +2 -2
  216. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  217. package/dist/types/services/dictionary.service.d.ts +9 -9
  218. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  219. package/dist/types/services/email.service.d.ts +33 -4
  220. package/dist/types/services/email.service.d.ts.map +1 -1
  221. package/dist/types/services/oAuth2.service.d.ts +7 -5
  222. package/dist/types/services/oAuth2.service.d.ts.map +1 -1
  223. package/dist/types/services/organization.service.d.ts +27 -6
  224. package/dist/types/services/organization.service.d.ts.map +1 -1
  225. package/dist/types/services/plans.service.d.ts +35 -0
  226. package/dist/types/services/plans.service.d.ts.map +1 -0
  227. package/dist/types/services/project.service.d.ts +6 -6
  228. package/dist/types/services/project.service.d.ts.map +1 -1
  229. package/dist/types/services/projectAccessKey.service.d.ts +4 -4
  230. package/dist/types/services/projectAccessKey.service.d.ts.map +1 -1
  231. package/dist/types/services/sessionAuth.service.d.ts +9 -16
  232. package/dist/types/services/sessionAuth.service.d.ts.map +1 -1
  233. package/dist/types/services/subscription.service.d.ts +22 -0
  234. package/dist/types/services/subscription.service.d.ts.map +1 -0
  235. package/dist/types/services/user.service.d.ts +11 -19
  236. package/dist/types/services/user.service.d.ts.map +1 -1
  237. package/dist/types/types/dictionary.types.d.ts +2 -2
  238. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  239. package/dist/types/types/organization.types.d.ts +4 -2
  240. package/dist/types/types/organization.types.d.ts.map +1 -1
  241. package/dist/types/types/plan.types.d.ts +18 -0
  242. package/dist/types/types/plan.types.d.ts.map +1 -0
  243. package/dist/types/types/project.types.d.ts +13 -2
  244. package/dist/types/types/project.types.d.ts.map +1 -1
  245. package/dist/types/types/session.types.d.ts +6 -6
  246. package/dist/types/types/session.types.d.ts.map +1 -1
  247. package/dist/types/types/user.types.d.ts +2 -1
  248. package/dist/types/types/user.types.d.ts.map +1 -1
  249. package/dist/types/utils/errors/ErrorHandler.d.ts +5 -3
  250. package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
  251. package/dist/types/utils/errors/ErrorsClass.d.ts +4 -1
  252. package/dist/types/utils/errors/ErrorsClass.d.ts.map +1 -1
  253. package/dist/types/utils/errors/errorCodes.d.ts +313 -1
  254. package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
  255. package/dist/types/utils/mapper/organization.d.ts +1 -1
  256. package/dist/types/utils/mapper/organization.d.ts.map +1 -1
  257. package/dist/types/utils/mapper/project.d.ts +10 -1
  258. package/dist/types/utils/mapper/project.d.ts.map +1 -1
  259. package/dist/types/utils/mapper/user.d.ts +1 -1
  260. package/dist/types/utils/mapper/user.d.ts.map +1 -1
  261. package/dist/types/utils/plan.d.ts +17 -0
  262. package/dist/types/utils/plan.d.ts.map +1 -0
  263. package/dist/types/utils/responseData.d.ts +13 -2
  264. package/dist/types/utils/responseData.d.ts.map +1 -1
  265. package/dist/types/webhooks/stripe.d.ts +3 -0
  266. package/dist/types/webhooks/stripe.d.ts.map +1 -0
  267. package/dist/types/webhooks/stripe.webhook.d.ts +3 -0
  268. package/dist/types/webhooks/stripe.webhook.d.ts.map +1 -0
  269. package/package.json +27 -24
  270. package/dist/cjs/middlewares/admin.middleware.cjs.map +0 -1
  271. package/dist/esm/middlewares/admin.middleware.mjs +0 -20
  272. package/dist/esm/middlewares/admin.middleware.mjs.map +0 -1
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var plan_types_exports = {};
16
+ module.exports = __toCommonJS(plan_types_exports);
17
+ //# sourceMappingURL=plan.types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/types/plan.types.ts"],"sourcesContent":["import { Document, ObjectId } from 'mongoose';\nimport { User } from './user.types';\n\nexport type PlanType = 'FREE' | 'PREMIUM' | 'ENTERPRISE';\n\nexport type PlanData = {\n type: PlanType;\n creatorId?: User['_id'];\n customerId?: string;\n priceId?: string;\n status?: 'INACTIVE' | 'ACTIVE' | 'ERROR' | 'CANCELLED';\n period?: 'MONTHLY' | 'YEARLY';\n};\n\nexport type Plan = PlanData & {\n _id: ObjectId;\n createdAt: number;\n updatedAt: number;\n};\n\nexport type PlanDocument = Document<unknown, {}, Plan> & Plan;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/project.types.ts"],"sourcesContent":["import type { Model, ObjectId, Document } from 'mongoose';\nimport type { Organization } from './organization.types';\nimport type { User } from './user.types';\n\nexport type ProjectCreationData = {\n name: Project['name'];\n};\n\nexport type ProjectData = {\n organizationId: Organization['_id'];\n name: string;\n membersIds: User['_id'][];\n adminsIds: User['_id'][];\n creatorId: User['_id'];\n};\n\nexport type AccessKeyData = {\n name: string;\n expiresAt?: Date;\n};\n\nexport type OAuth2AccessData = AccessKeyData & {\n clientId: string;\n clientSecret: string;\n accessToken: string[];\n userId: User['_id'];\n};\n\nexport type OAuth2Access = OAuth2AccessData & {\n _id: ObjectId;\n createdAt: number;\n updatedAt: number;\n};\n\nexport type Project = ProjectData & {\n _id: ObjectId;\n createdAt: number;\n updatedAt: number;\n oAuth2Access: OAuth2Access[];\n};\n\nexport type ProjectAPI = Omit<ProjectData, 'adminsIds'> & {\n adminsIds?: User['_id'][];\n};\n\nexport type ProjectDocument = Document<Project> & Project;\n\nexport type ProjectModelType = Model<Project>;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/types/project.types.ts"],"sourcesContent":["import type { Model, ObjectId, Document } from 'mongoose';\nimport type { Organization } from './organization.types';\nimport type { User } from './user.types';\n\nexport type ProjectCreationData = {\n name: Project['name'];\n};\n\nexport type ProjectData = {\n organizationId: Organization['_id'];\n name: string;\n membersIds: User['_id'][];\n adminsIds: User['_id'][];\n creatorId: User['_id'];\n};\n\nexport type Rights = {\n read: boolean;\n write: boolean;\n admin: boolean;\n};\n\nexport type TokenRights = {\n dictionary: Rights;\n project: Rights;\n organization: Rights;\n};\n\nexport type AccessKeyData = {\n name: string;\n rights: TokenRights;\n expiresAt?: Date;\n};\n\nexport type OAuth2AccessData = AccessKeyData & {\n clientId: string;\n clientSecret: string;\n accessToken: string[];\n userId: User['_id'];\n};\n\nexport type OAuth2Access = OAuth2AccessData & {\n _id: ObjectId;\n createdAt: number;\n updatedAt: number;\n};\n\nexport type Project = ProjectData & {\n _id: ObjectId;\n createdAt: number;\n updatedAt: number;\n oAuth2Access: OAuth2Access[];\n};\n\nexport type ProjectAPI = Omit<Project, 'adminsIds'> & {\n adminsIds?: User['_id'][];\n};\n\nexport type ProjectDocument = Document<unknown, {}, Project> & Project;\n\nexport type ProjectModelType = Model<Project>;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/session.types.ts"],"sourcesContent":["export interface EmailPasswordSessionProvider {\n provider: 'email';\n secret?: string;\n emailValidated?: Date;\n passwordHash?: string;\n}\n\nexport interface GoogleSessionProvider {\n provider: 'google';\n providerAccountId: string;\n}\n\nexport interface GithubSessionProvider {\n provider: 'github';\n providerAccountId: string;\n}\n\nexport type SessionProviders =\n | EmailPasswordSessionProvider\n | GoogleSessionProvider\n | GithubSessionProvider;\n\nexport type Session = {\n /** A randomly generated value that is used to get hold of the session. */\n sessionToken: string;\n /** Used to connect the session to a particular user */\n expires: Date;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/types/session.types.ts"],"sourcesContent":["export type EmailPasswordSessionProvider = {\n provider: 'email';\n secret?: string;\n emailValidated?: Date;\n passwordHash?: string;\n};\n\nexport type GoogleSessionProvider = {\n provider: 'google';\n providerAccountId: string;\n};\n\nexport type GithubSessionProvider = {\n provider: 'github';\n providerAccountId: string;\n};\n\nexport type SessionProviders =\n | EmailPasswordSessionProvider\n | GoogleSessionProvider\n | GithubSessionProvider;\n\nexport type Session = {\n /** A randomly generated value that is used to get hold of the session. */\n sessionToken: string;\n /** Used to connect the session to a particular user */\n expires: Date;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/user.types.ts"],"sourcesContent":["import type { ObjectId, Model, Document } from 'mongoose';\nimport type { Session, SessionProviders } from './session.types';\n\nexport interface UserData {\n email: string;\n name: string;\n phone?: string;\n dateOfBirth?: Date;\n}\n\nexport interface User extends UserData {\n _id: ObjectId;\n provider?: SessionProviders[];\n session?: Session;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface UserAPI\n extends Omit<User, 'provider' | 'session' | 'createdAt'> {\n role: string;\n}\n\nexport type UserDocument = Document<User> & User;\n\nexport type UserWithPasswordNotHashed = Partial<User> &\n Pick<User, 'email'> & {\n password?: string;\n };\n\nexport type UserModelType = Model<User> & {\n login: (email: string, password: string) => Promise<User>;\n changePassword: (\n userId: ObjectId | string,\n oldPassword: string,\n newPassword: string\n ) => Promise<User>;\n resetPassword: (userId: User['_id'], password: string) => Promise<User>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/types/user.types.ts"],"sourcesContent":["import type { ObjectId, Model, Document } from 'mongoose';\nimport type { Session, SessionProviders } from './session.types';\n\nexport interface UserData {\n email: string;\n name: string;\n phone?: string;\n dateOfBirth?: Date;\n}\n\nexport interface User extends UserData {\n _id: ObjectId;\n provider?: SessionProviders[];\n customerId?: string;\n session?: Session;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface UserAPI\n extends Omit<User, 'provider' | 'session' | 'createdAt'> {\n role: string;\n}\n\nexport type UserDocument = Document<unknown, {}, User> & User;\n\nexport type UserWithPasswordNotHashed = Partial<User> &\n Pick<User, 'email'> & {\n password?: string;\n };\n\nexport type UserModelType = Model<User> & {\n login: (email: string, password: string) => Promise<User>;\n changePassword: (\n userId: ObjectId | string,\n oldPassword: string,\n newPassword: string\n ) => Promise<User>;\n resetPassword: (userId: User['_id'], password: string) => Promise<User>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -26,6 +26,7 @@ var import_responseData = require('./../../utils/responseData.cjs');
26
26
  var import_express_intlayer = require("express-intlayer");
27
27
  var import_errorCodes = require('./errorCodes.cjs');
28
28
  var import_export = require('./../../export.cjs');
29
+ var import_intlayer = require("intlayer");
29
30
  class ErrorHandler {
30
31
  /**
31
32
  * Handles generic error responses by formatting and sending a JSON response.
@@ -40,6 +41,7 @@ class ErrorHandler {
40
41
  this.handleCustomErrorResponse(
41
42
  res,
42
43
  errorKey,
44
+ error.title,
43
45
  error.message,
44
46
  errorDetails,
45
47
  status,
@@ -50,15 +52,28 @@ class ErrorHandler {
50
52
  * Handles application-specific error responses by formatting and sending a JSON response.
51
53
  * @param res - The response object provided by Express.js.
52
54
  * @param error - The error object.
53
- * @param isPaginatedResponse - Flag to determine if the response should be paginated.
55
+ * @param messageDetails - (Optional) Additional message details to include in the response.
56
+ * @param isPaginatedResponse - (Optional) Flag to determine if the response should be paginated.
54
57
  */
55
- static handleAppErrorResponse(res, error, errorDetails, isPaginatedResponse = false) {
58
+ static handleAppErrorResponse(res, error, messageDetails, isPaginatedResponse = false) {
59
+ if (!error.isAppError) {
60
+ this.handleCustomErrorResponse(
61
+ res,
62
+ error.errorKey ?? "UNKNOWN_ERROR",
63
+ "Error",
64
+ error.message ?? JSON.stringify(error),
65
+ void 0,
66
+ error.httpStatusCode ?? import_export.HttpStatusCodes.INTERNAL_SERVER_ERROR_500,
67
+ isPaginatedResponse
68
+ );
69
+ }
56
70
  const isMultilingual = error.isMultilingual ?? false;
57
71
  this.handleCustomErrorResponse(
58
72
  res,
59
73
  error.errorKey,
60
- isMultilingual ? error.multilingualMessage : JSON.stringify(error.message),
61
- errorDetails,
74
+ isMultilingual ? error.multilingualTitle : error.title,
75
+ isMultilingual ? error.multilingualMessage : error.multilingualMessage,
76
+ error.messageDetails ?? messageDetails,
62
77
  error.httpStatusCode,
63
78
  isPaginatedResponse
64
79
  );
@@ -68,17 +83,21 @@ class ErrorHandler {
68
83
  * @param res - The response object.
69
84
  * @param errorKey - Error code key used to fetch the corresponding message and default status.
70
85
  * @param message - The localized error message object.
86
+ * @param messageDetails - (Optional) Additional message details to include in the response.
71
87
  * @param statusCode - (Optional) HTTP status code, defaults to 500 if not specified.
72
88
  * @param isPaginatedResponse - Determines if the error should be part of a paginated response.
73
89
  */
74
- static handleCustomErrorResponse(res, errorKey, message, errorDetails, statusCode, isPaginatedResponse = false) {
75
- import_logger.logger.error(message?.en ?? message);
90
+ static handleCustomErrorResponse(res, errorKey, title, message, messageDetails, statusCode, isPaginatedResponse = false) {
91
+ const errorTitle = (0, import_express_intlayer.t)(title, import_intlayer.Locales.ENGLISH);
92
+ const errorMessage = (0, import_express_intlayer.t)(message, import_intlayer.Locales.ENGLISH);
93
+ import_logger.logger.error(errorMessage, messageDetails);
76
94
  const status = statusCode ?? import_export.HttpStatusCodes.INTERNAL_SERVER_ERROR_500;
77
95
  if (isPaginatedResponse) {
78
96
  const responseData2 = (0, import_responseData.formatPaginatedResponse)({
79
97
  error: {
80
98
  code: errorKey,
81
- message: typeof message === "string" ? message : (0, import_express_intlayer.t)(message)
99
+ title: errorTitle,
100
+ message: errorMessage
82
101
  },
83
102
  status
84
103
  });
@@ -88,8 +107,9 @@ class ErrorHandler {
88
107
  const responseData = (0, import_responseData.formatResponse)({
89
108
  error: {
90
109
  code: errorKey,
91
- message: (0, import_express_intlayer.t)(message),
92
- ...errorDetails
110
+ title: errorTitle,
111
+ message: errorMessage,
112
+ ...messageDetails
93
113
  },
94
114
  status
95
115
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/errors/ErrorHandler.ts"],"sourcesContent":["// Import required modules and types from their respective locations.\nimport { logger } from '@logger';\nimport { formatPaginatedResponse, formatResponse } from '@utils/responseData';\nimport type { Response } from 'express';\n// @ts-ignore express-intlayer not build yet\nimport { t, LanguageContent } from 'express-intlayer';\nimport { ErrorCodes, errorData } from './errorCodes';\nimport { AppError } from './ErrorsClass';\nimport { HttpStatusCodes, UserAPI } from '@/export';\n\n// Define a class named 'ErrorHandler' to encapsulate error handling logic.\nexport class ErrorHandler {\n /**\n * Handles generic error responses by formatting and sending a JSON response.\n * @param res - The response object provided by Express.js.\n * @param errorKey - A key representing the specific error.\n * @param statusCode - (Optional) A specific HTTP status code to use for the response.\n * @param isPaginatedResponse - Flag to determine if the response should be paginated.\n */\n static handleGenericErrorResponse(\n res: Response,\n errorKey: ErrorCodes,\n errorDetails?: object,\n statusCode?: HttpStatusCodes,\n isPaginatedResponse: boolean = false\n ) {\n const error = errorData[errorKey];\n const status = statusCode ?? error.statusCode; // Use the provided status code or default to the one in errorData.\n\n // Delegate to a more customizable error response handler.\n this.handleCustomErrorResponse(\n res,\n errorKey,\n error.message,\n errorDetails,\n status,\n isPaginatedResponse\n );\n }\n\n /**\n * Handles application-specific error responses by formatting and sending a JSON response.\n * @param res - The response object provided by Express.js.\n * @param error - The error object.\n * @param isPaginatedResponse - Flag to determine if the response should be paginated.\n */\n static handleAppErrorResponse(\n res: Response,\n error: AppError,\n errorDetails?: object,\n isPaginatedResponse: boolean = false\n ) {\n const isMultilingual = error.isMultilingual ?? false;\n // Delegate to a more customizable error response handler.\n this.handleCustomErrorResponse(\n res,\n error.errorKey,\n isMultilingual\n ? error.multilingualMessage\n : JSON.stringify(error.message),\n errorDetails,\n error.httpStatusCode,\n isPaginatedResponse\n );\n }\n\n /**\n * Handles more customizable error responses with detailed error messages and codes.\n * @param res - The response object.\n * @param errorKey - Error code key used to fetch the corresponding message and default status.\n * @param message - The localized error message object.\n * @param statusCode - (Optional) HTTP status code, defaults to 500 if not specified.\n * @param isPaginatedResponse - Determines if the error should be part of a paginated response.\n */\n static handleCustomErrorResponse<T>(\n res: Response,\n errorKey: ErrorCodes | string,\n message: LanguageContent<string> | string,\n errorDetails?: object,\n statusCode?: HttpStatusCodes,\n isPaginatedResponse: boolean = false\n ) {\n logger.error((message as { en: string })?.en ?? message); // Log the English version of the error message.\n const status = statusCode ?? HttpStatusCodes.INTERNAL_SERVER_ERROR_500; // Default to 500 if no status code is provided.\n\n if (isPaginatedResponse) {\n // Format the response as a paginated error response if requested.\n const responseData = formatPaginatedResponse<T>({\n error: {\n code: errorKey,\n message: typeof message === 'string' ? message : t(message),\n },\n status,\n });\n res.status(status).json(responseData);\n return;\n }\n\n // Format the response as a standard non-paginated error response.\n const responseData = formatResponse<UserAPI>({\n error: {\n code: errorKey,\n message: t(message),\n ...errorDetails,\n },\n status,\n });\n\n res.status(status).json(responseData);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuB;AACvB,0BAAwD;AAGxD,8BAAmC;AACnC,wBAAsC;AAEtC,oBAAyC;AAGlC,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxB,OAAO,2BACL,KACA,UACA,cACA,YACA,sBAA+B,OAC/B;AACA,UAAM,QAAQ,4BAAU,QAAQ;AAChC,UAAM,SAAS,cAAc,MAAM;AAGnC,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,uBACL,KACA,OACA,cACA,sBAA+B,OAC/B;AACA,UAAM,iBAAiB,MAAM,kBAAkB;AAE/C,SAAK;AAAA,MACH;AAAA,MACA,MAAM;AAAA,MACN,iBACI,MAAM,sBACN,KAAK,UAAU,MAAM,OAAO;AAAA,MAChC;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,0BACL,KACA,UACA,SACA,cACA,YACA,sBAA+B,OAC/B;AACA,yBAAO,MAAO,SAA4B,MAAM,OAAO;AACvD,UAAM,SAAS,cAAc,8BAAgB;AAE7C,QAAI,qBAAqB;AAEvB,YAAMA,oBAAe,6CAA2B;AAAA,QAC9C,OAAO;AAAA,UACL,MAAM;AAAA,UACN,SAAS,OAAO,YAAY,WAAW,cAAU,2BAAE,OAAO;AAAA,QAC5D;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI,OAAO,MAAM,EAAE,KAAKA,aAAY;AACpC;AAAA,IACF;AAGA,UAAM,mBAAe,oCAAwB;AAAA,MAC3C,OAAO;AAAA,QACL,MAAM;AAAA,QACN,aAAS,2BAAE,OAAO;AAAA,QAClB,GAAG;AAAA,MACL;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,OAAO,MAAM,EAAE,KAAK,YAAY;AAAA,EACtC;AACF;","names":["responseData"]}
1
+ {"version":3,"sources":["../../../../src/utils/errors/ErrorHandler.ts"],"sourcesContent":["// Import required modules and types from their respective locations.\nimport { logger } from '@logger';\nimport { formatPaginatedResponse, formatResponse } from '@utils/responseData';\nimport type { Response } from 'express';\n// @ts-ignore express-intlayer not build yet\nimport { t, LanguageContent } from 'express-intlayer';\nimport { ErrorCodes, errorData } from './errorCodes';\nimport { AppError } from './ErrorsClass';\nimport { HttpStatusCodes, UserAPI } from '@/export';\nimport { Locales } from 'intlayer';\n\n// Define a class named 'ErrorHandler' to encapsulate error handling logic.\nexport class ErrorHandler {\n /**\n * Handles generic error responses by formatting and sending a JSON response.\n * @param res - The response object provided by Express.js.\n * @param errorKey - A key representing the specific error.\n * @param statusCode - (Optional) A specific HTTP status code to use for the response.\n * @param isPaginatedResponse - Flag to determine if the response should be paginated.\n */\n static handleGenericErrorResponse(\n res: Response,\n errorKey: ErrorCodes,\n errorDetails?: object,\n statusCode?: HttpStatusCodes,\n isPaginatedResponse: boolean = false\n ) {\n const error = errorData[errorKey];\n const status = statusCode ?? error.statusCode; // Use the provided status code or default to the one in errorData.\n\n // Delegate to a more customizable error response handler.\n this.handleCustomErrorResponse(\n res,\n errorKey,\n error.title,\n error.message,\n errorDetails,\n status,\n isPaginatedResponse\n );\n }\n\n /**\n * Handles application-specific error responses by formatting and sending a JSON response.\n * @param res - The response object provided by Express.js.\n * @param error - The error object.\n * @param messageDetails - (Optional) Additional message details to include in the response.\n * @param isPaginatedResponse - (Optional) Flag to determine if the response should be paginated.\n */\n static handleAppErrorResponse(\n res: Response,\n error: AppError,\n messageDetails?: object,\n isPaginatedResponse: boolean = false\n ) {\n if (!error.isAppError) {\n this.handleCustomErrorResponse(\n res,\n error.errorKey ?? 'UNKNOWN_ERROR',\n 'Error',\n error.message ?? JSON.stringify(error),\n undefined,\n error.httpStatusCode ?? HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n isPaginatedResponse\n );\n }\n\n const isMultilingual = error.isMultilingual ?? false;\n // Delegate to a more customizable error response handler.\n this.handleCustomErrorResponse(\n res,\n error.errorKey,\n isMultilingual ? error.multilingualTitle : error.title,\n isMultilingual ? error.multilingualMessage : error.multilingualMessage,\n error.messageDetails ?? messageDetails,\n error.httpStatusCode,\n isPaginatedResponse\n );\n }\n\n /**\n * Handles more customizable error responses with detailed error messages and codes.\n * @param res - The response object.\n * @param errorKey - Error code key used to fetch the corresponding message and default status.\n * @param message - The localized error message object.\n * @param messageDetails - (Optional) Additional message details to include in the response.\n * @param statusCode - (Optional) HTTP status code, defaults to 500 if not specified.\n * @param isPaginatedResponse - Determines if the error should be part of a paginated response.\n */\n static handleCustomErrorResponse<T>(\n res: Response,\n errorKey: ErrorCodes | string,\n title: LanguageContent<string> | string,\n message: LanguageContent<string> | string,\n messageDetails?: object,\n statusCode?: HttpStatusCodes,\n isPaginatedResponse: boolean = false\n ) {\n const errorTitle = t(title as LanguageContent<string>, Locales.ENGLISH);\n const errorMessage = t(message as LanguageContent<string>, Locales.ENGLISH);\n logger.error(errorMessage, messageDetails); // Log the English version of the error message.\n const status = statusCode ?? HttpStatusCodes.INTERNAL_SERVER_ERROR_500; // Default to 500 if no status code is provided.\n\n if (isPaginatedResponse) {\n // Format the response as a paginated error response if requested.\n const responseData = formatPaginatedResponse<T>({\n error: {\n code: errorKey,\n title: errorTitle,\n message: errorMessage,\n },\n status,\n });\n res.status(status).json(responseData);\n return;\n }\n\n // Format the response as a standard non-paginated error response.\n const responseData = formatResponse<UserAPI>({\n error: {\n code: errorKey,\n title: errorTitle,\n message: errorMessage,\n ...messageDetails,\n },\n status,\n });\n\n res.status(status).json(responseData);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuB;AACvB,0BAAwD;AAGxD,8BAAmC;AACnC,wBAAsC;AAEtC,oBAAyC;AACzC,sBAAwB;AAGjB,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxB,OAAO,2BACL,KACA,UACA,cACA,YACA,sBAA+B,OAC/B;AACA,UAAM,QAAQ,4BAAU,QAAQ;AAChC,UAAM,SAAS,cAAc,MAAM;AAGnC,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,uBACL,KACA,OACA,gBACA,sBAA+B,OAC/B;AACA,QAAI,CAAC,MAAM,YAAY;AACrB,WAAK;AAAA,QACH;AAAA,QACA,MAAM,YAAY;AAAA,QAClB;AAAA,QACA,MAAM,WAAW,KAAK,UAAU,KAAK;AAAA,QACrC;AAAA,QACA,MAAM,kBAAkB,8BAAgB;AAAA,QACxC;AAAA,MACF;AAAA,IACF;AAEA,UAAM,iBAAiB,MAAM,kBAAkB;AAE/C,SAAK;AAAA,MACH;AAAA,MACA,MAAM;AAAA,MACN,iBAAiB,MAAM,oBAAoB,MAAM;AAAA,MACjD,iBAAiB,MAAM,sBAAsB,MAAM;AAAA,MACnD,MAAM,kBAAkB;AAAA,MACxB,MAAM;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,0BACL,KACA,UACA,OACA,SACA,gBACA,YACA,sBAA+B,OAC/B;AACA,UAAM,iBAAa,2BAAE,OAAkC,wBAAQ,OAAO;AACtE,UAAM,mBAAe,2BAAE,SAAoC,wBAAQ,OAAO;AAC1E,yBAAO,MAAM,cAAc,cAAc;AACzC,UAAM,SAAS,cAAc,8BAAgB;AAE7C,QAAI,qBAAqB;AAEvB,YAAMA,oBAAe,6CAA2B;AAAA,QAC9C,OAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI,OAAO,MAAM,EAAE,KAAKA,aAAY;AACpC;AAAA,IACF;AAGA,UAAM,mBAAe,oCAAwB;AAAA,MAC3C,OAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,QACT,GAAG;AAAA,MACL;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,OAAO,MAAM,EAAE,KAAK,YAAY;AAAA,EACtC;AACF;","names":["responseData"]}
@@ -26,9 +26,13 @@ var import_httpStatusCodes = require('./../../utils/httpStatusCodes.cjs');
26
26
  var import_express_intlayer = require("express-intlayer");
27
27
  var import_errorCodes = require('./errorCodes.cjs');
28
28
  class AppError extends Error {
29
+ isAppError = true;
30
+ // Flag to identify AppError instances.
29
31
  name;
30
32
  isMultilingual = true;
31
33
  errorKey;
34
+ title;
35
+ multilingualTitle;
32
36
  message;
33
37
  multilingualMessage;
34
38
  httpStatusCode;
@@ -38,13 +42,16 @@ class AppError extends Error {
38
42
  * @param multilingualMessage - The error message which can be a simple string or a multilingual object.
39
43
  * @param httpStatusCode - Optional HTTP status code, defaults to 500 Internal Server Error.
40
44
  */
41
- constructor(multilingualMessage, errorKey, httpStatusCode = import_httpStatusCodes.HttpStatusCodes.INTERNAL_SERVER_ERROR_500, messageDetails) {
45
+ constructor(multilingualTitle, multilingualMessage, errorKey, httpStatusCode = import_httpStatusCodes.HttpStatusCodes.INTERNAL_SERVER_ERROR_500, messageDetails) {
46
+ const title = (0, import_express_intlayer.t)(multilingualTitle);
42
47
  const message = (0, import_express_intlayer.t)(multilingualMessage);
43
48
  super(message);
49
+ this.title = title;
50
+ this.multilingualTitle = multilingualTitle;
44
51
  this.message = message;
52
+ this.multilingualMessage = multilingualMessage;
45
53
  this.name = "AppError";
46
54
  this.errorKey = errorKey;
47
- this.multilingualMessage = multilingualMessage;
48
55
  this.httpStatusCode = httpStatusCode;
49
56
  this.messageDetails = messageDetails;
50
57
  Error.captureStackTrace(this, this.constructor);
@@ -52,9 +59,16 @@ class AppError extends Error {
52
59
  }
53
60
  class GenericError extends AppError {
54
61
  constructor(errorKey, messageDetails) {
62
+ const multilingualTitle = import_errorCodes.errorData[errorKey].title;
55
63
  const multilingualMessage = import_errorCodes.errorData[errorKey].message;
56
64
  const httpStatusCode = import_errorCodes.errorData[errorKey].statusCode;
57
- super(multilingualMessage, errorKey, httpStatusCode, messageDetails);
65
+ super(
66
+ multilingualTitle,
67
+ multilingualMessage,
68
+ errorKey,
69
+ httpStatusCode,
70
+ messageDetails
71
+ );
58
72
  }
59
73
  }
60
74
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/errors/ErrorsClass.ts"],"sourcesContent":["import { HttpStatusCodes } from '@utils/httpStatusCodes';\n// @ts-ignore express-intlayer not build yet\nimport { t, type LanguageContent } from 'express-intlayer';\nimport { ErrorCodes, errorData } from './errorCodes';\n\n/**\n * Custom error class that extends the native JavaScript Error class.\n * This class supports multilingual error messages and HTTP status codes.\n */\nexport class AppError extends Error {\n public name: string;\n public isMultilingual: boolean = true;\n public errorKey: string;\n public message: string;\n public multilingualMessage: LanguageContent<string>;\n public httpStatusCode: HttpStatusCodes;\n public messageDetails?: object;\n\n /**\n * Constructor for the custom error class.\n * @param multilingualMessage - The error message which can be a simple string or a multilingual object.\n * @param httpStatusCode - Optional HTTP status code, defaults to 500 Internal Server Error.\n */\n constructor(\n multilingualMessage: LanguageContent<string>,\n errorKey: string,\n httpStatusCode: HttpStatusCodes = HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n messageDetails?: object\n ) {\n const message = t(multilingualMessage); // Translate message based on current locale.\n\n super(message); // Use translated message for the superclass constructor.\n this.message = message;\n this.name = 'AppError';\n this.errorKey = errorKey;\n this.multilingualMessage = multilingualMessage; // Store original message format for potential use.\n this.httpStatusCode = httpStatusCode; // Set the HTTP status code.\n this.messageDetails = messageDetails; // Store any additional message details.\n\n // Capture the stack trace to exclude the constructor call.\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\nexport class GenericError extends AppError {\n constructor(errorKey: ErrorCodes, messageDetails?: object) {\n const multilingualMessage = errorData[errorKey].message;\n const httpStatusCode = errorData[errorKey].statusCode;\n\n super(multilingualMessage, errorKey, httpStatusCode, messageDetails);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAgC;AAEhC,8BAAwC;AACxC,wBAAsC;AAM/B,MAAM,iBAAiB,MAAM;AAAA,EAC3B;AAAA,EACA,iBAA0B;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOP,YACE,qBACA,UACA,iBAAkC,uCAAgB,2BAClD,gBACA;AACA,UAAM,cAAU,2BAAE,mBAAmB;AAErC,UAAM,OAAO;AACb,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,sBAAsB;AAC3B,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AAGtB,UAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,EAChD;AACF;AAEO,MAAM,qBAAqB,SAAS;AAAA,EACzC,YAAY,UAAsB,gBAAyB;AACzD,UAAM,sBAAsB,4BAAU,QAAQ,EAAE;AAChD,UAAM,iBAAiB,4BAAU,QAAQ,EAAE;AAE3C,UAAM,qBAAqB,UAAU,gBAAgB,cAAc;AAAA,EACrE;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/utils/errors/ErrorsClass.ts"],"sourcesContent":["import { HttpStatusCodes } from '@utils/httpStatusCodes';\n// @ts-ignore express-intlayer not build yet\nimport { t, type LanguageContent } from 'express-intlayer';\nimport { ErrorCodes, errorData } from './errorCodes';\n\n/**\n * Custom error class that extends the native JavaScript Error class.\n * This class supports multilingual error messages and HTTP status codes.\n */\nexport class AppError extends Error {\n public isAppError: boolean = true; // Flag to identify AppError instances.\n public name: string;\n public isMultilingual: boolean = true;\n public errorKey: string;\n public title: string;\n public multilingualTitle: LanguageContent<string>;\n public message: string;\n public multilingualMessage: LanguageContent<string>;\n public httpStatusCode: HttpStatusCodes;\n public messageDetails?: object;\n\n /**\n * Constructor for the custom error class.\n * @param multilingualMessage - The error message which can be a simple string or a multilingual object.\n * @param httpStatusCode - Optional HTTP status code, defaults to 500 Internal Server Error.\n */\n constructor(\n multilingualTitle: LanguageContent<string>,\n multilingualMessage: LanguageContent<string>,\n errorKey: string,\n httpStatusCode: HttpStatusCodes = HttpStatusCodes.INTERNAL_SERVER_ERROR_500,\n messageDetails?: object\n ) {\n const title = t(multilingualTitle); // Translate title based on current locale\n const message = t(multilingualMessage); // Translate message based on current locale.\n\n super(message); // Use translated message for the superclass constructor.\n this.title = title;\n this.multilingualTitle = multilingualTitle;\n this.message = message;\n this.multilingualMessage = multilingualMessage; // Store original message format for potential use.\n this.name = 'AppError';\n this.errorKey = errorKey;\n this.httpStatusCode = httpStatusCode; // Set the HTTP status code.\n this.messageDetails = messageDetails; // Store any additional message details.\n\n // Capture the stack trace to exclude the constructor call.\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\nexport class GenericError extends AppError {\n constructor(errorKey: ErrorCodes, messageDetails?: object) {\n const multilingualTitle = errorData[errorKey].title;\n const multilingualMessage = errorData[errorKey].message;\n const httpStatusCode = errorData[errorKey].statusCode;\n\n super(\n multilingualTitle,\n multilingualMessage,\n errorKey,\n httpStatusCode,\n messageDetails\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAgC;AAEhC,8BAAwC;AACxC,wBAAsC;AAM/B,MAAM,iBAAiB,MAAM;AAAA,EAC3B,aAAsB;AAAA;AAAA,EACtB;AAAA,EACA,iBAA0B;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOP,YACE,mBACA,qBACA,UACA,iBAAkC,uCAAgB,2BAClD,gBACA;AACA,UAAM,YAAQ,2BAAE,iBAAiB;AACjC,UAAM,cAAU,2BAAE,mBAAmB;AAErC,UAAM,OAAO;AACb,SAAK,QAAQ;AACb,SAAK,oBAAoB;AACzB,SAAK,UAAU;AACf,SAAK,sBAAsB;AAC3B,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AAGtB,UAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,EAChD;AACF;AAEO,MAAM,qBAAqB,SAAS;AAAA,EACzC,YAAY,UAAsB,gBAAyB;AACzD,UAAM,oBAAoB,4BAAU,QAAQ,EAAE;AAC9C,UAAM,sBAAsB,4BAAU,QAAQ,EAAE;AAChD,UAAM,iBAAiB,4BAAU,QAAQ,EAAE;AAE3C;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -23,6 +23,19 @@ __export(errorCodes_exports, {
23
23
  module.exports = __toCommonJS(errorCodes_exports);
24
24
  var import_httpStatusCodes = require('./../../utils/httpStatusCodes.cjs');
25
25
  const errorData = {
26
+ USER_NOT_DEFINED: {
27
+ title: {
28
+ en: "User not defined",
29
+ fr: "Utilisateur non d\xE9fini",
30
+ es: "Usuario no definido"
31
+ },
32
+ message: {
33
+ en: "User is required, but not defined.",
34
+ fr: "Utilisateur requis, mais non d\xE9fini.",
35
+ es: "Usuario es requerido, pero no est\xE1 definido."
36
+ },
37
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
38
+ },
26
39
  USER_NOT_FOUND: {
27
40
  title: {
28
41
  en: "User not found",
@@ -179,9 +192,35 @@ const errorData = {
179
192
  },
180
193
  statusCode: import_httpStatusCodes.HttpStatusCodes.CONFLICT_409
181
194
  },
195
+ USER_PROVIDER_EMAIL_ALREADY_VALIDATED: {
196
+ title: {
197
+ en: "User provider email already validated",
198
+ fr: "Email du fournisseur d'utilisateur d\xE9j\xE0 valid\xE9",
199
+ es: "Correo electr\xF3nico del proveedor de usuario ya validado"
200
+ },
201
+ message: {
202
+ en: "The user provider email is already validated.",
203
+ fr: "L'email du fournisseur d'utilisateur est d\xE9j\xE0 valid\xE9.",
204
+ es: "El correo electr\xF3nico del proveedor de usuario ya est\xE1 validado."
205
+ },
206
+ statusCode: import_httpStatusCodes.HttpStatusCodes.CONFLICT_409
207
+ },
208
+ USER_PREVIOUS_PASSWORD_NOT_PROVIDED: {
209
+ title: {
210
+ en: "User previous password not provided",
211
+ fr: "Mot de passe pr\xE9c\xE9dent de l'utilisateur non fourni",
212
+ es: "Contrase\xF1a anterior de usuario no proporcionada"
213
+ },
214
+ message: {
215
+ en: "The user previous password was not provided.",
216
+ fr: "Le mot de passe pr\xE9c\xE9dent de l'utilisateur n'a pas \xE9t\xE9 fourni.",
217
+ es: "La contrase\xF1a anterior de usuario no fue proporcionada."
218
+ },
219
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
220
+ },
182
221
  USER_PASSWORD_NOT_DEFINED: {
183
222
  title: {
184
- en: "User Password Not Defined",
223
+ en: "User password not defined",
185
224
  fr: "Mot de passe de l'utilisateur non d\xE9fini",
186
225
  es: "Contrase\xF1a de usuario no definida"
187
226
  },
@@ -192,6 +231,19 @@ const errorData = {
192
231
  },
193
232
  statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
194
233
  },
234
+ USER_PROVIDER_SECRET_NOT_DEFINED: {
235
+ title: {
236
+ en: "User Provider Secret Not Defined",
237
+ fr: "Secret du fournisseur d'utilisateur non d\xE9fini",
238
+ es: "Secret del proveedor de usuario no definido"
239
+ },
240
+ message: {
241
+ en: "The user provider secret was not defined.",
242
+ fr: "Le secret du fournisseur d'utilisateur n'a pas \xE9t\xE9 d\xE9fini.",
243
+ es: "El secret del proveedor de usuario no se ha definido."
244
+ },
245
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
246
+ },
195
247
  USER_PROVIDER_SECRET_NOT_VALID: {
196
248
  title: {
197
249
  en: "User Provider Secret Not Valid",
@@ -259,7 +311,7 @@ const errorData = {
259
311
  },
260
312
  ORGANIZATION_NOT_FOUND: {
261
313
  title: {
262
- en: "Organization Not Found",
314
+ en: "Organization not Found",
263
315
  fr: "Organisation non trouv\xE9e",
264
316
  es: "Organizaci\xF3n no encontrada"
265
317
  },
@@ -270,6 +322,19 @@ const errorData = {
270
322
  },
271
323
  statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
272
324
  },
325
+ ORGANIZATION_NOT_DEFINED: {
326
+ title: {
327
+ en: "Organization not defined",
328
+ fr: "Organisation non d\xE9finie",
329
+ es: "Organizaci\xF3n no definida"
330
+ },
331
+ message: {
332
+ en: "Organization is required, but not defined.",
333
+ fr: "Organisation requise, mais non d\xE9finie.",
334
+ es: "Organizaci\xF3n es requerida, pero no est\xE1 definida."
335
+ },
336
+ statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
337
+ },
273
338
  ORGANIZATION_ID_NOT_FOUND: {
274
339
  title: {
275
340
  en: "Organization ID Not Found",
@@ -283,6 +348,19 @@ const errorData = {
283
348
  },
284
349
  statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
285
350
  },
351
+ ORGANIZATION_CREATION_FAILED: {
352
+ title: {
353
+ en: "Organization Creation Failed",
354
+ fr: "\xC9chec de la cr\xE9ation de l'organisation",
355
+ es: "Error al crear la organizaci\xF3n"
356
+ },
357
+ message: {
358
+ en: "Failed to create the specified organization.",
359
+ fr: "La cr\xE9ation de l'organisation a \xE9chou\xE9.",
360
+ es: "No se pudo crear la organizaci\xF3n especificada."
361
+ },
362
+ statusCode: import_httpStatusCodes.HttpStatusCodes.INTERNAL_SERVER_ERROR_500
363
+ },
286
364
  ORGANIZATION_COUNT_FAILED: {
287
365
  title: {
288
366
  en: "Organization Count Failed",
@@ -374,6 +452,19 @@ const errorData = {
374
452
  },
375
453
  statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
376
454
  },
455
+ ORGANIZATION_PLAN_NOT_FOUND: {
456
+ title: {
457
+ en: "Organization Plan Not Found",
458
+ fr: "Plan d'organisation non trouv\xE9",
459
+ es: "Plan de organizaci\xF3n no encontrado"
460
+ },
461
+ message: {
462
+ en: "The specified organization does not have a plan.",
463
+ fr: "L'organisation sp\xE9cifi\xE9e n'a pas de plan.",
464
+ es: "La organizaci\xF3n especificada no tiene un plan."
465
+ },
466
+ statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
467
+ },
377
468
  DICTIONARY_NOT_FOUND: {
378
469
  title: {
379
470
  en: "Dictionary Not Found",
@@ -504,6 +595,19 @@ const errorData = {
504
595
  },
505
596
  statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
506
597
  },
598
+ PROJECT_NOT_DEFINED: {
599
+ title: {
600
+ en: "Project not defined",
601
+ fr: "Projet non d\xE9fini",
602
+ es: "Proyecto no definido"
603
+ },
604
+ message: {
605
+ en: "Project is required, but not defined.",
606
+ fr: "Projet requis, mais non d\xE9fini.",
607
+ es: "Proyecto es requerido, pero no est\xE1 definido."
608
+ },
609
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
610
+ },
507
611
  PROJECT_NOT_FOUND: {
508
612
  title: {
509
613
  en: "Project Not Found",
@@ -530,6 +634,19 @@ const errorData = {
530
634
  },
531
635
  statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
532
636
  },
637
+ PROJECT_ID_MISMATCH: {
638
+ title: {
639
+ en: "Project ID Mismatch",
640
+ fr: "Identifiant de projet non correspondant",
641
+ es: "Identificador de proyecto no coincidente"
642
+ },
643
+ message: {
644
+ en: "The provided project ID does not match the expected value. Please verify and try again.",
645
+ fr: "L'identifiant de projet fourni ne correspond pas \xE0 la valeur attendue. Veuillez v\xE9rifier et r\xE9essayer.",
646
+ es: "El identificador de proyecto proporcionado no coincide con el valor esperado. Verifique e intente nuevamente."
647
+ },
648
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
649
+ },
533
650
  PROJECT_COUNT_FAILED: {
534
651
  title: {
535
652
  en: "Project Count Failed",
@@ -725,16 +842,16 @@ const errorData = {
725
842
  },
726
843
  statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
727
844
  },
728
- EMAIL_ALREADY_VALIDATED: {
845
+ EMAIL_ALREADY_REGISTERED: {
729
846
  title: {
730
- en: "Email Already Validated",
731
- fr: "Email d\xE9j\xE0 valid\xE9",
732
- es: "Email ya validado"
847
+ en: "Email Already registered",
848
+ fr: "Email d\xE9j\xE0 enregistr\xE9",
849
+ es: "Email ya registrado"
733
850
  },
734
851
  message: {
735
- en: "The email has already been validated.",
736
- fr: "L'email a d\xE9j\xE0 \xE9t\xE9 valid\xE9.",
737
- es: "El correo electr\xF3nico ya ha sido validado."
852
+ en: "The email has already been registered.",
853
+ fr: "L'email a d\xE9j\xE0 \xE9t\xE9 enregistr\xE9.",
854
+ es: "El correo electr\xF3nico ya ha sido registrado."
738
855
  },
739
856
  statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
740
857
  },
@@ -828,6 +945,201 @@ const errorData = {
828
945
  es: "El proyecto no est\xE1 en la organizaci\xF3n."
829
946
  },
830
947
  statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
948
+ },
949
+ DICTIONARY_RIGHTS_NOT_READ: {
950
+ title: {
951
+ en: "Dictionary Rights Not Read",
952
+ fr: "Droits de dictionnaire non lus",
953
+ es: "Derechos de diccionario no le\xEDdos"
954
+ },
955
+ message: {
956
+ en: "You do not have read access to this dictionary.",
957
+ fr: "Vous n'avez pas acc\xE8s en lecture \xE0 ce dictionnaire.",
958
+ es: "No tienes acceso de lectura a este diccionario."
959
+ },
960
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
961
+ },
962
+ DICTIONARY_RIGHTS_NOT_WRITE: {
963
+ title: {
964
+ en: "Dictionary Rights Not Write",
965
+ fr: "Droits de dictionnaire non \xE9crits",
966
+ es: "Derechos de diccionario no escritos"
967
+ },
968
+ message: {
969
+ en: "You do not have write access to this dictionary.",
970
+ fr: "Vous n'avez pas acc\xE8s en \xE9criture \xE0 ce dictionnaire.",
971
+ es: "No tienes acceso de escritura a este diccionario."
972
+ },
973
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
974
+ },
975
+ DICTIONARY_RIGHTS_NOT_ADMIN: {
976
+ title: {
977
+ en: "Dictionary Rights Not Admin",
978
+ fr: "Droits de dictionnaire non admin",
979
+ es: "Derechos de diccionario no admin"
980
+ },
981
+ message: {
982
+ en: "You do not have admin access to this dictionary.",
983
+ fr: "Vous n'avez pas acc\xE8s en admin \xE0 ce dictionnaire.",
984
+ es: "No tienes acceso de admin a este diccionario."
985
+ },
986
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
987
+ },
988
+ PROJECT_RIGHTS_NOT_READ: {
989
+ title: {
990
+ en: "Project Rights Not Read",
991
+ fr: "Droits de projet non lus",
992
+ es: "Derechos de proyecto no le\xEDdos"
993
+ },
994
+ message: {
995
+ en: "You do not have read access to this project.",
996
+ fr: "Vous n'avez pas acc\xE8s en lecture \xE0 ce projet.",
997
+ es: "No tienes acceso de lectura a este proyecto."
998
+ },
999
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
1000
+ },
1001
+ PROJECT_RIGHTS_NOT_WRITE: {
1002
+ title: {
1003
+ en: "Project Rights Not Write",
1004
+ fr: "Droits de projet non \xE9crits",
1005
+ es: "Derechos de proyecto no escritos"
1006
+ },
1007
+ message: {
1008
+ en: "You do not have write access to this project.",
1009
+ fr: "Vous n'avez pas acc\xE8s en \xE9criture \xE0 ce projet.",
1010
+ es: "No tienes acceso de escritura a este proyecto."
1011
+ },
1012
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
1013
+ },
1014
+ PROJECT_RIGHTS_NOT_ADMIN: {
1015
+ title: {
1016
+ en: "Project Rights Not Admin",
1017
+ fr: "Droits de projet non admin",
1018
+ es: "Derechos de proyecto no admin"
1019
+ },
1020
+ message: {
1021
+ en: "You do not have admin access to this project.",
1022
+ fr: "Vous n'avez pas acc\xE8s en admin \xE0 ce projet.",
1023
+ es: "No tienes acceso de admin a este proyecto."
1024
+ },
1025
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
1026
+ },
1027
+ ORGANIZATION_RIGHTS_NOT_READ: {
1028
+ title: {
1029
+ en: "Organization Rights Not Read",
1030
+ fr: "Droits d'organisation non lus",
1031
+ es: "Derechos de organizaci\xF3n no le\xEDdos"
1032
+ },
1033
+ message: {
1034
+ en: "You do not have read access to this organization.",
1035
+ fr: "Vous n'avez pas acc\xE8s en lecture \xE0 cette organisation.",
1036
+ es: "No tienes acceso de lectura a esta organizaci\xF3n."
1037
+ },
1038
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
1039
+ },
1040
+ ORGANIZATION_RIGHTS_NOT_WRITE: {
1041
+ title: {
1042
+ en: "Organization Rights Not Write",
1043
+ fr: "Droits d'organisation non \xE9crits",
1044
+ es: "Derechos de organizaci\xF3n no escritos"
1045
+ },
1046
+ message: {
1047
+ en: "You do not have write access to this organization.",
1048
+ fr: "Vous n'avez pas acc\xE8s en \xE9criture \xE0 cette organisation.",
1049
+ es: "No tienes acceso de escritura a esta organizaci\xF3n."
1050
+ },
1051
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
1052
+ },
1053
+ ORGANIZATION_RIGHTS_NOT_ADMIN: {
1054
+ title: {
1055
+ en: "Organization Rights Not Admin",
1056
+ fr: "Droits d'organisation non admin",
1057
+ es: "Derechos de organizaci\xF3n no admin"
1058
+ },
1059
+ message: {
1060
+ en: "You do not have admin access to this organization.",
1061
+ fr: "Vous n'avez pas acc\xE8s en admin \xE0 cette organisation.",
1062
+ es: "No tienes acceso de admin a esta organizaci\xF3n."
1063
+ },
1064
+ statusCode: import_httpStatusCodes.HttpStatusCodes.FORBIDDEN_403
1065
+ },
1066
+ PLAN_NOT_FOUND: {
1067
+ title: {
1068
+ en: "Plan Not Found",
1069
+ fr: "Plan non trouv\xE9",
1070
+ es: "Plan no encontrado"
1071
+ },
1072
+ message: {
1073
+ en: "Plan not found",
1074
+ fr: "Plan non trouv\xE9",
1075
+ es: "Plan no encontrado"
1076
+ },
1077
+ statusCode: import_httpStatusCodes.HttpStatusCodes.NOT_FOUND_404
1078
+ },
1079
+ MULTIPLE_PLANS_FOUND: {
1080
+ title: {
1081
+ en: "Multiple Plans Found",
1082
+ fr: "Plusieurs plans trouv\xE9s",
1083
+ es: "M\xFAltiples planes encontrados"
1084
+ },
1085
+ message: {
1086
+ en: "Multiple plans found for the provided information.",
1087
+ fr: "Plusieurs plans trouv\xE9s pour l'information fournie.",
1088
+ es: "M\xFAltiples planes encontrados para la informaci\xF3n proporcionada."
1089
+ },
1090
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
1091
+ },
1092
+ PLAN_USER_LIMIT_REACHED: {
1093
+ title: {
1094
+ en: "Plan User Limit Reached",
1095
+ fr: "Limite de participants atteint",
1096
+ es: "L\xEDmite de participantes alcanzado"
1097
+ },
1098
+ message: {
1099
+ en: "The plan has reached its user limit. Please upgrade to add more users.",
1100
+ fr: "Le plan a atteint son limite de participants. Veuillez mettre \xE0 niveau pour ajouter plus de participants.",
1101
+ es: "El plan ha alcanzado su l\xEDmite de participantes. Actualice para agregar m\xE1s usuarios."
1102
+ },
1103
+ statusCode: import_httpStatusCodes.HttpStatusCodes.UNAUTHORIZED_401
1104
+ },
1105
+ PLAN_PROJECT_LIMIT_REACHED: {
1106
+ title: {
1107
+ en: "Plan Project Limit Reached",
1108
+ fr: "Limite de projets atteint",
1109
+ es: "L\xEDmite de proyectos alcanzado"
1110
+ },
1111
+ message: {
1112
+ en: "The plan has reached its project limit. Please upgrade to add more projects.",
1113
+ fr: "Le plan a atteint son limite de projets. Veuillez mettre \xE0 niveau pour ajouter plus de projets.",
1114
+ es: "El plan ha alcanzado su l\xEDmite de proyectos. Actualice para agregar m\xE1s proyectos."
1115
+ },
1116
+ statusCode: import_httpStatusCodes.HttpStatusCodes.UNAUTHORIZED_401
1117
+ },
1118
+ SUBSCRIPTION_CREATION_FAILED: {
1119
+ title: {
1120
+ en: "Subscription Creation Failed",
1121
+ fr: "\xC9chec de la cr\xE9ation de la souscription",
1122
+ es: "Error al crear la suscripci\xF3n"
1123
+ },
1124
+ message: {
1125
+ en: "Failed to create the specified subscription.",
1126
+ fr: "La cr\xE9ation de la souscription a \xE9chou\xE9.",
1127
+ es: "No se pudo crear la suscripci\xF3n especificada."
1128
+ },
1129
+ statusCode: import_httpStatusCodes.HttpStatusCodes.INTERNAL_SERVER_ERROR_500
1130
+ },
1131
+ CALLBACK_URL_NOT_VALID: {
1132
+ title: {
1133
+ en: "Callback URL not valid",
1134
+ fr: "URL de rappel non valide",
1135
+ es: "URL de devoluci\xF3n no v\xE1lida"
1136
+ },
1137
+ message: {
1138
+ en: "The callback URL is not valid.",
1139
+ fr: "L\u2019URL de rappel n\u2019est pas valide.",
1140
+ es: "La URL de devoluci\xF3n no es v\xE1lida."
1141
+ },
1142
+ statusCode: import_httpStatusCodes.HttpStatusCodes.BAD_REQUEST_400
831
1143
  }
832
1144
  };
833
1145
  // Annotate the CommonJS export names for ESM import in node: