@rentbase/common 1.0.5

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 (271) hide show
  1. package/build/errors/bad-request-error.d.ts +9 -0
  2. package/build/errors/bad-request-error.js +16 -0
  3. package/build/errors/custom-error.d.ts +8 -0
  4. package/build/errors/custom-error.js +10 -0
  5. package/build/errors/database-connection-error.d.ts +9 -0
  6. package/build/errors/database-connection-error.js +16 -0
  7. package/build/errors/not-authorized-error.d.ts +8 -0
  8. package/build/errors/not-authorized-error.js +15 -0
  9. package/build/errors/not-found-error.d.ts +8 -0
  10. package/build/errors/not-found-error.js +15 -0
  11. package/build/errors/request-validation-error.d.ts +11 -0
  12. package/build/errors/request-validation-error.js +19 -0
  13. package/build/events/consumer.d.ts +2 -0
  14. package/build/events/consumer.js +30 -0
  15. package/build/events/producer.d.ts +3 -0
  16. package/build/events/producer.js +42 -0
  17. package/build/events/publishers/call-answered-publisher.d.ts +2 -0
  18. package/build/events/publishers/call-answered-publisher.js +17 -0
  19. package/build/events/publishers/call-ended-publisher.d.ts +2 -0
  20. package/build/events/publishers/call-ended-publisher.js +17 -0
  21. package/build/events/publishers/call-failed-publisher.d.ts +2 -0
  22. package/build/events/publishers/call-failed-publisher.js +17 -0
  23. package/build/events/publishers/call-initiated-publisher.d.ts +2 -0
  24. package/build/events/publishers/call-initiated-publisher.js +17 -0
  25. package/build/events/publishers/call-missed-publisher.d.ts +2 -0
  26. package/build/events/publishers/call-missed-publisher.js +17 -0
  27. package/build/events/publishers/call-provider-status-update-publisher.d.ts +2 -0
  28. package/build/events/publishers/call-provider-status-update-publisher.js +17 -0
  29. package/build/events/publishers/call-rated-publisher.d.ts +2 -0
  30. package/build/events/publishers/call-rated-publisher.js +17 -0
  31. package/build/events/publishers/call-rejected-publisher.d.ts +2 -0
  32. package/build/events/publishers/call-rejected-publisher.js +17 -0
  33. package/build/events/publishers/call-ringing-publisher.d.ts +2 -0
  34. package/build/events/publishers/call-ringing-publisher.js +17 -0
  35. package/build/events/publishers/campaign-activated-publisher.d.ts +2 -0
  36. package/build/events/publishers/campaign-activated-publisher.js +17 -0
  37. package/build/events/publishers/campaign-created-publisher.d.ts +2 -0
  38. package/build/events/publishers/campaign-created-publisher.js +17 -0
  39. package/build/events/publishers/campaign-expired-publisher.d.ts +2 -0
  40. package/build/events/publishers/campaign-expired-publisher.js +17 -0
  41. package/build/events/publishers/campaign-redemption-publisher.d.ts +2 -0
  42. package/build/events/publishers/campaign-redemption-publisher.js +17 -0
  43. package/build/events/publishers/campaign-status-changed-publisher.d.ts +2 -0
  44. package/build/events/publishers/campaign-status-changed-publisher.js +17 -0
  45. package/build/events/publishers/chat-participant-muted-publisher.d.ts +2 -0
  46. package/build/events/publishers/chat-participant-muted-publisher.js +17 -0
  47. package/build/events/publishers/chat-session-closed-publisher.d.ts +2 -0
  48. package/build/events/publishers/chat-session-closed-publisher.js +17 -0
  49. package/build/events/publishers/chat-session-created-publisher.d.ts +2 -0
  50. package/build/events/publishers/chat-session-created-publisher.js +17 -0
  51. package/build/events/publishers/city-created-publisher.d.ts +6 -0
  52. package/build/events/publishers/city-created-publisher.js +21 -0
  53. package/build/events/publishers/city-status-changed-publisher.d.ts +6 -0
  54. package/build/events/publishers/city-status-changed-publisher.js +21 -0
  55. package/build/events/publishers/city-updated-publisher.d.ts +6 -0
  56. package/build/events/publishers/city-updated-publisher.js +21 -0
  57. package/build/events/publishers/country-created-publisher.d.ts +6 -0
  58. package/build/events/publishers/country-created-publisher.js +21 -0
  59. package/build/events/publishers/country-status-changed-publisher.d.ts +6 -0
  60. package/build/events/publishers/country-status-changed-publisher.js +21 -0
  61. package/build/events/publishers/country-updated-publisher.d.ts +6 -0
  62. package/build/events/publishers/country-updated-publisher.js +21 -0
  63. package/build/events/publishers/disciplinary-action-activated-publisher.d.ts +2 -0
  64. package/build/events/publishers/disciplinary-action-activated-publisher.js +17 -0
  65. package/build/events/publishers/disciplinary-action-created-publisher.d.ts +2 -0
  66. package/build/events/publishers/disciplinary-action-created-publisher.js +17 -0
  67. package/build/events/publishers/disciplinary-action-revoked-publisher.d.ts +2 -0
  68. package/build/events/publishers/disciplinary-action-revoked-publisher.js +17 -0
  69. package/build/events/publishers/discount-applied-publisher.d.ts +2 -0
  70. package/build/events/publishers/discount-applied-publisher.js +17 -0
  71. package/build/events/publishers/discount-calculated-publisher.d.ts +2 -0
  72. package/build/events/publishers/discount-calculated-publisher.js +17 -0
  73. package/build/events/publishers/incident-created-publisher.d.ts +2 -0
  74. package/build/events/publishers/incident-created-publisher.js +17 -0
  75. package/build/events/publishers/incident-resolved-publisher.d.ts +2 -0
  76. package/build/events/publishers/incident-resolved-publisher.js +17 -0
  77. package/build/events/publishers/incident-updated-publisher.d.ts +2 -0
  78. package/build/events/publishers/incident-updated-publisher.js +17 -0
  79. package/build/events/publishers/message-delivered-publisher.d.ts +2 -0
  80. package/build/events/publishers/message-delivered-publisher.js +17 -0
  81. package/build/events/publishers/message-read-publisher.d.ts +2 -0
  82. package/build/events/publishers/message-read-publisher.js +17 -0
  83. package/build/events/publishers/message-sent-publisher.d.ts +2 -0
  84. package/build/events/publishers/message-sent-publisher.js +17 -0
  85. package/build/events/publishers/notification-bulk-send-completed-publisher.d.ts +6 -0
  86. package/build/events/publishers/notification-bulk-send-completed-publisher.js +21 -0
  87. package/build/events/publishers/notification-bulk-send-initiated-publisher.d.ts +6 -0
  88. package/build/events/publishers/notification-bulk-send-initiated-publisher.js +21 -0
  89. package/build/events/publishers/notification-created-publisher.d.ts +6 -0
  90. package/build/events/publishers/notification-created-publisher.js +21 -0
  91. package/build/events/publishers/notification-delivered-publisher.d.ts +6 -0
  92. package/build/events/publishers/notification-delivered-publisher.js +21 -0
  93. package/build/events/publishers/notification-failed-publisher.d.ts +6 -0
  94. package/build/events/publishers/notification-failed-publisher.js +21 -0
  95. package/build/events/publishers/notification-preferences-updated-publisher.d.ts +6 -0
  96. package/build/events/publishers/notification-preferences-updated-publisher.js +21 -0
  97. package/build/events/publishers/notification-read-publisher.d.ts +6 -0
  98. package/build/events/publishers/notification-read-publisher.js +21 -0
  99. package/build/events/publishers/notification-sent-publisher.d.ts +6 -0
  100. package/build/events/publishers/notification-sent-publisher.js +21 -0
  101. package/build/events/publishers/notification-template-created-publisher.d.ts +6 -0
  102. package/build/events/publishers/notification-template-created-publisher.js +21 -0
  103. package/build/events/publishers/notification-template-updated-publisher.d.ts +6 -0
  104. package/build/events/publishers/notification-template-updated-publisher.js +21 -0
  105. package/build/events/publishers/payment-charge-refunded-publisher.d.ts +2 -0
  106. package/build/events/publishers/payment-charge-refunded-publisher.js +17 -0
  107. package/build/events/publishers/payment-intent-cancelled-publisher.d.ts +2 -0
  108. package/build/events/publishers/payment-intent-cancelled-publisher.js +17 -0
  109. package/build/events/publishers/payment-intent-created-publisher.d.ts +2 -0
  110. package/build/events/publishers/payment-intent-created-publisher.js +17 -0
  111. package/build/events/publishers/payment-intent-failed-publisher.d.ts +2 -0
  112. package/build/events/publishers/payment-intent-failed-publisher.js +17 -0
  113. package/build/events/publishers/payment-intent-succeeded-publisher.d.ts +2 -0
  114. package/build/events/publishers/payment-intent-succeeded-publisher.js +17 -0
  115. package/build/events/publishers/payout-approved-publisher.d.ts +2 -0
  116. package/build/events/publishers/payout-approved-publisher.js +17 -0
  117. package/build/events/publishers/payout-cancelled-publisher.d.ts +2 -0
  118. package/build/events/publishers/payout-cancelled-publisher.js +17 -0
  119. package/build/events/publishers/payout-failed-publisher.d.ts +2 -0
  120. package/build/events/publishers/payout-failed-publisher.js +17 -0
  121. package/build/events/publishers/payout-processing-publisher.d.ts +2 -0
  122. package/build/events/publishers/payout-processing-publisher.js +17 -0
  123. package/build/events/publishers/payout-requested-publisher.d.ts +2 -0
  124. package/build/events/publishers/payout-requested-publisher.js +17 -0
  125. package/build/events/publishers/payout-succeeded-publisher.d.ts +2 -0
  126. package/build/events/publishers/payout-succeeded-publisher.js +17 -0
  127. package/build/events/publishers/promo-code-applied-publisher.d.ts +2 -0
  128. package/build/events/publishers/promo-code-applied-publisher.js +17 -0
  129. package/build/events/publishers/promo-code-bulk-created-publisher.d.ts +2 -0
  130. package/build/events/publishers/promo-code-bulk-created-publisher.js +17 -0
  131. package/build/events/publishers/promo-code-created-publisher.d.ts +2 -0
  132. package/build/events/publishers/promo-code-created-publisher.js +17 -0
  133. package/build/events/publishers/promo-code-status-changed-publisher.d.ts +2 -0
  134. package/build/events/publishers/promo-code-status-changed-publisher.js +17 -0
  135. package/build/events/publishers/property-created-publisher.d.ts +6 -0
  136. package/build/events/publishers/property-created-publisher.js +21 -0
  137. package/build/events/publishers/property-deleted-publisher.d.ts +6 -0
  138. package/build/events/publishers/property-deleted-publisher.js +21 -0
  139. package/build/events/publishers/property-offer-accepted-publisher.d.ts +6 -0
  140. package/build/events/publishers/property-offer-accepted-publisher.js +21 -0
  141. package/build/events/publishers/property-offer-created-publisher.d.ts +6 -0
  142. package/build/events/publishers/property-offer-created-publisher.js +21 -0
  143. package/build/events/publishers/property-offer-expired-publisher.d.ts +6 -0
  144. package/build/events/publishers/property-offer-expired-publisher.js +21 -0
  145. package/build/events/publishers/property-offer-rejected-publisher.d.ts +6 -0
  146. package/build/events/publishers/property-offer-rejected-publisher.js +21 -0
  147. package/build/events/publishers/property-offer-updated-publisher.d.ts +6 -0
  148. package/build/events/publishers/property-offer-updated-publisher.js +21 -0
  149. package/build/events/publishers/property-offer-withdrawn-publisher.d.ts +6 -0
  150. package/build/events/publishers/property-offer-withdrawn-publisher.js +21 -0
  151. package/build/events/publishers/property-rating-submitted-publisher.d.ts +6 -0
  152. package/build/events/publishers/property-rating-submitted-publisher.js +21 -0
  153. package/build/events/publishers/property-rating-updated-publisher.d.ts +6 -0
  154. package/build/events/publishers/property-rating-updated-publisher.js +21 -0
  155. package/build/events/publishers/property-report-created-publisher.d.ts +6 -0
  156. package/build/events/publishers/property-report-created-publisher.js +21 -0
  157. package/build/events/publishers/property-report-resolved-publisher.d.ts +6 -0
  158. package/build/events/publishers/property-report-resolved-publisher.js +21 -0
  159. package/build/events/publishers/property-report-updated-publisher.d.ts +6 -0
  160. package/build/events/publishers/property-report-updated-publisher.js +21 -0
  161. package/build/events/publishers/property-status-changed-publisher.d.ts +6 -0
  162. package/build/events/publishers/property-status-changed-publisher.js +21 -0
  163. package/build/events/publishers/property-updated-publisher.d.ts +6 -0
  164. package/build/events/publishers/property-updated-publisher.js +21 -0
  165. package/build/events/publishers/property-viewed-publisher.d.ts +6 -0
  166. package/build/events/publishers/property-viewed-publisher.js +21 -0
  167. package/build/events/publishers/property-viewing-cancelled-publisher.d.ts +6 -0
  168. package/build/events/publishers/property-viewing-cancelled-publisher.js +21 -0
  169. package/build/events/publishers/property-viewing-completed-publisher.d.ts +6 -0
  170. package/build/events/publishers/property-viewing-completed-publisher.js +21 -0
  171. package/build/events/publishers/property-viewing-confirmed-publisher.d.ts +6 -0
  172. package/build/events/publishers/property-viewing-confirmed-publisher.js +21 -0
  173. package/build/events/publishers/property-viewing-no-show-publisher.d.ts +6 -0
  174. package/build/events/publishers/property-viewing-no-show-publisher.js +21 -0
  175. package/build/events/publishers/property-viewing-scheduled-publisher.d.ts +6 -0
  176. package/build/events/publishers/property-viewing-scheduled-publisher.js +21 -0
  177. package/build/events/publishers/referral-claimed-publisher.d.ts +2 -0
  178. package/build/events/publishers/referral-claimed-publisher.js +17 -0
  179. package/build/events/publishers/referral-code-generated-publisher.d.ts +2 -0
  180. package/build/events/publishers/referral-code-generated-publisher.js +17 -0
  181. package/build/events/publishers/referral-conversion-publisher.d.ts +2 -0
  182. package/build/events/publishers/referral-conversion-publisher.js +17 -0
  183. package/build/events/publishers/referral-qualified-publisher.d.ts +2 -0
  184. package/build/events/publishers/referral-qualified-publisher.js +17 -0
  185. package/build/events/publishers/referral-rewards-granted-publisher.d.ts +2 -0
  186. package/build/events/publishers/referral-rewards-granted-publisher.js +17 -0
  187. package/build/events/publishers/referral-status-changed-publisher.d.ts +2 -0
  188. package/build/events/publishers/referral-status-changed-publisher.js +17 -0
  189. package/build/events/publishers/rental-agreement-activated-publisher.d.ts +6 -0
  190. package/build/events/publishers/rental-agreement-activated-publisher.js +21 -0
  191. package/build/events/publishers/rental-agreement-created-publisher.d.ts +6 -0
  192. package/build/events/publishers/rental-agreement-created-publisher.js +21 -0
  193. package/build/events/publishers/rental-agreement-expired-publisher.d.ts +6 -0
  194. package/build/events/publishers/rental-agreement-expired-publisher.js +21 -0
  195. package/build/events/publishers/rental-agreement-signed-publisher.d.ts +6 -0
  196. package/build/events/publishers/rental-agreement-signed-publisher.js +21 -0
  197. package/build/events/publishers/rental-agreement-terminated-publisher.d.ts +6 -0
  198. package/build/events/publishers/rental-agreement-terminated-publisher.js +21 -0
  199. package/build/events/publishers/reward-credit-cancelled-publisher.d.ts +2 -0
  200. package/build/events/publishers/reward-credit-cancelled-publisher.js +17 -0
  201. package/build/events/publishers/reward-credit-expired-publisher.d.ts +2 -0
  202. package/build/events/publishers/reward-credit-expired-publisher.js +17 -0
  203. package/build/events/publishers/reward-credit-issued-publisher.d.ts +2 -0
  204. package/build/events/publishers/reward-credit-issued-publisher.js +17 -0
  205. package/build/events/publishers/reward-credit-used-publisher.d.ts +2 -0
  206. package/build/events/publishers/reward-credit-used-publisher.js +17 -0
  207. package/build/events/publishers/safety-audit-log-created-publisher.d.ts +2 -0
  208. package/build/events/publishers/safety-audit-log-created-publisher.js +17 -0
  209. package/build/events/publishers/safety-note-created-publisher.d.ts +2 -0
  210. package/build/events/publishers/safety-note-created-publisher.js +17 -0
  211. package/build/events/publishers/sos-acknowledged-publisher.d.ts +2 -0
  212. package/build/events/publishers/sos-acknowledged-publisher.js +17 -0
  213. package/build/events/publishers/sos-resolved-publisher.d.ts +2 -0
  214. package/build/events/publishers/sos-resolved-publisher.js +17 -0
  215. package/build/events/publishers/sos-responding-publisher.d.ts +2 -0
  216. package/build/events/publishers/sos-responding-publisher.js +17 -0
  217. package/build/events/publishers/sos-triggered-publisher.d.ts +2 -0
  218. package/build/events/publishers/sos-triggered-publisher.js +17 -0
  219. package/build/events/publishers/system-message-added-publisher.d.ts +2 -0
  220. package/build/events/publishers/system-message-added-publisher.js +17 -0
  221. package/build/events/publishers/transaction-status-changed-publisher.d.ts +2 -0
  222. package/build/events/publishers/transaction-status-changed-publisher.js +17 -0
  223. package/build/events/publishers/wallet-adjusted-publisher.d.ts +2 -0
  224. package/build/events/publishers/wallet-adjusted-publisher.js +17 -0
  225. package/build/events/publishers/wallet-balance-updated-publisher.d.ts +2 -0
  226. package/build/events/publishers/wallet-balance-updated-publisher.js +17 -0
  227. package/build/events/publishers/wallet-created-publisher.d.ts +2 -0
  228. package/build/events/publishers/wallet-created-publisher.js +17 -0
  229. package/build/events/publishers/wallet-status-changed-publisher.d.ts +2 -0
  230. package/build/events/publishers/wallet-status-changed-publisher.js +17 -0
  231. package/build/events/publishers/wallet-transaction-created-publisher.d.ts +2 -0
  232. package/build/events/publishers/wallet-transaction-created-publisher.js +17 -0
  233. package/build/events/publishers/webhook-processed-publisher.d.ts +2 -0
  234. package/build/events/publishers/webhook-processed-publisher.js +17 -0
  235. package/build/events/publishers/webhook-received-publisher.d.ts +2 -0
  236. package/build/events/publishers/webhook-received-publisher.js +17 -0
  237. package/build/events/types/chat-events.d.ts +145 -0
  238. package/build/events/types/chat-events.js +6 -0
  239. package/build/events/types/geo-config-events.d.ts +84 -0
  240. package/build/events/types/geo-config-events.js +2 -0
  241. package/build/events/types/index.d.ts +134 -0
  242. package/build/events/types/index.js +22 -0
  243. package/build/events/types/notification-events.d.ts +138 -0
  244. package/build/events/types/notification-events.js +6 -0
  245. package/build/events/types/payment-events.d.ts +287 -0
  246. package/build/events/types/payment-events.js +6 -0
  247. package/build/events/types/promotion-events.d.ts +236 -0
  248. package/build/events/types/promotion-events.js +6 -0
  249. package/build/events/types/property-events.d.ts +354 -0
  250. package/build/events/types/property-events.js +60 -0
  251. package/build/events/types/request-events.d.ts +60 -0
  252. package/build/events/types/request-events.js +18 -0
  253. package/build/events/types/safety-events.d.ts +143 -0
  254. package/build/events/types/safety-events.js +6 -0
  255. package/build/events/types/user-events.d.ts +131 -0
  256. package/build/events/types/user-events.js +6 -0
  257. package/build/index.d.ts +133 -0
  258. package/build/index.js +167 -0
  259. package/build/middlewares/current-user.d.ts +2 -0
  260. package/build/middlewares/current-user.js +20 -0
  261. package/build/middlewares/error-handler.d.ts +2 -0
  262. package/build/middlewares/error-handler.js +14 -0
  263. package/build/middlewares/require-auth.d.ts +12 -0
  264. package/build/middlewares/require-auth.js +83 -0
  265. package/build/middlewares/system-logger.d.ts +0 -0
  266. package/build/middlewares/system-logger.js +1 -0
  267. package/build/middlewares/validate-request.d.ts +2 -0
  268. package/build/middlewares/validate-request.js +13 -0
  269. package/build/types/auth.d.ts +22 -0
  270. package/build/types/auth.js +5 -0
  271. package/package.json +40 -0
@@ -0,0 +1,131 @@
1
+ /**
2
+ * User Event Types for Property Marketplace
3
+ * Updated to match auth-service User model schema
4
+ */
5
+ export declare type UserRole = "tenant" | "landlord" | "property_agent" | "support_agent" | "city_admin" | "super_admin";
6
+ export declare type UserStatus = "active" | "suspended" | "banned" | "deleted";
7
+ export declare type KycStatus = "unverified" | "pending" | "verified" | "needs_info" | "rejected";
8
+ export declare type VerificationLevel = "none" | "basic" | "verified" | "super_verified";
9
+ export declare type UserActiveMode = "tenant" | "landlord";
10
+ export interface UserCreatedEvent {
11
+ id: string;
12
+ accountNumber: number;
13
+ firstName: string;
14
+ lastName: string;
15
+ email?: string;
16
+ phoneNumber: string;
17
+ roles: UserRole[];
18
+ activeMode: UserActiveMode;
19
+ address?: string;
20
+ city?: string;
21
+ country?: string;
22
+ countryCode?: string;
23
+ languagePreference: string;
24
+ avatarUrl?: string;
25
+ kycStatus: KycStatus;
26
+ verificationLevel: VerificationLevel;
27
+ emailVerifiedAt?: Date;
28
+ phoneVerifiedAt?: Date;
29
+ trustScore: number;
30
+ cancellationCount: number;
31
+ cancellationStrikes: number;
32
+ totalPropertiesListed?: number;
33
+ totalPropertiesRented?: number;
34
+ landlordRating?: number;
35
+ tenantRating?: number;
36
+ landlordRatingCount?: number;
37
+ tenantRatingCount?: number;
38
+ oauthProvider?: "google" | "facebook" | "github" | "apple";
39
+ oauthId?: string;
40
+ biometricEnabled?: boolean;
41
+ biometricPublicKey?: string;
42
+ biometricDeviceId?: string;
43
+ status: UserStatus;
44
+ createdAt: Date;
45
+ updatedAt: Date;
46
+ }
47
+ export interface UserUpdatedEvent {
48
+ id: string;
49
+ accountNumber: number;
50
+ firstName: string;
51
+ lastName: string;
52
+ email?: string;
53
+ phoneNumber: string;
54
+ roles: UserRole[];
55
+ activeMode: UserActiveMode;
56
+ address?: string;
57
+ city?: string;
58
+ country?: string;
59
+ countryCode?: string;
60
+ languagePreference: string;
61
+ avatarUrl?: string;
62
+ kycStatus: KycStatus;
63
+ verificationLevel: VerificationLevel;
64
+ emailVerifiedAt?: Date;
65
+ phoneVerifiedAt?: Date;
66
+ trustScore: number;
67
+ cancellationCount: number;
68
+ cancellationStrikes: number;
69
+ totalPropertiesListed?: number;
70
+ totalPropertiesRented?: number;
71
+ landlordRating?: number;
72
+ tenantRating?: number;
73
+ landlordRatingCount?: number;
74
+ tenantRatingCount?: number;
75
+ oauthProvider?: "google" | "facebook" | "github" | "apple";
76
+ oauthId?: string;
77
+ biometricEnabled?: boolean;
78
+ biometricPublicKey?: string;
79
+ biometricDeviceId?: string;
80
+ status: UserStatus;
81
+ createdAt: Date;
82
+ updatedAt: Date;
83
+ }
84
+ export interface UserDeletedEvent {
85
+ id: string;
86
+ accountNumber: number;
87
+ email?: string;
88
+ phoneNumber: string;
89
+ deletedAt: Date;
90
+ reason?: string;
91
+ }
92
+ export interface UserStatusChangedEvent {
93
+ id: string;
94
+ accountNumber: number;
95
+ oldStatus: UserStatus;
96
+ newStatus: UserStatus;
97
+ reason?: string;
98
+ changedBy?: string;
99
+ changedAt: Date;
100
+ }
101
+ export interface UserRolesUpdatedEvent {
102
+ id: string;
103
+ accountNumber: number;
104
+ oldRoles: UserRole[];
105
+ newRoles: UserRole[];
106
+ updatedBy?: string;
107
+ updatedAt: Date;
108
+ }
109
+ export interface UserModeChangedEvent {
110
+ id: string;
111
+ accountNumber: number;
112
+ oldMode: UserActiveMode;
113
+ newMode: UserActiveMode;
114
+ changedAt: Date;
115
+ }
116
+ export interface UserVerifiedEvent {
117
+ id: string;
118
+ accountNumber: number;
119
+ verificationType: "email" | "phone";
120
+ verifiedAt: Date;
121
+ }
122
+ export interface UserKycUpdatedEvent {
123
+ id: string;
124
+ accountNumber: number;
125
+ oldKycStatus: KycStatus;
126
+ newKycStatus: KycStatus;
127
+ oldVerificationLevel: VerificationLevel;
128
+ newVerificationLevel: VerificationLevel;
129
+ updatedBy?: string;
130
+ updatedAt: Date;
131
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * User Event Types for Property Marketplace
4
+ * Updated to match auth-service User model schema
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,133 @@
1
+ export * from "./errors/bad-request-error";
2
+ export * from "./errors/custom-error";
3
+ export * from "./errors/database-connection-error";
4
+ export * from "./errors/not-authorized-error";
5
+ export * from "./errors/not-found-error";
6
+ export * from "./errors/request-validation-error";
7
+ export * from "./types/auth";
8
+ export * from "./middlewares/current-user";
9
+ export * from "./middlewares/error-handler";
10
+ export * from "./middlewares/require-auth";
11
+ export * from "./middlewares/validate-request";
12
+ export * from "./events/consumer";
13
+ export * from "./events/producer";
14
+ export * from "./events/types/request-events";
15
+ export * from "./events/types/user-events";
16
+ export * from "./events/types/property-events";
17
+ export * from "./events/types/notification-events";
18
+ export * from "./events/types/safety-events";
19
+ export * from "./events/types/geo-config-events";
20
+ export * from "./events/types/payment-events";
21
+ export * from "./events/types/chat-events";
22
+ export * from "./events/types/promotion-events";
23
+ export * from "./events/types";
24
+ export * from "./events/publishers/country-created-publisher";
25
+ export * from "./events/publishers/country-updated-publisher";
26
+ export * from "./events/publishers/country-status-changed-publisher";
27
+ export * from "./events/publishers/city-created-publisher";
28
+ export * from "./events/publishers/city-updated-publisher";
29
+ export * from "./events/publishers/city-status-changed-publisher";
30
+ export * from "./events/publishers/property-created-publisher";
31
+ export * from "./events/publishers/property-updated-publisher";
32
+ export * from "./events/publishers/property-status-changed-publisher";
33
+ export * from "./events/publishers/property-deleted-publisher";
34
+ export * from "./events/publishers/property-viewed-publisher";
35
+ export * from "./events/publishers/property-offer-created-publisher";
36
+ export * from "./events/publishers/property-offer-updated-publisher";
37
+ export * from "./events/publishers/property-offer-accepted-publisher";
38
+ export * from "./events/publishers/property-offer-rejected-publisher";
39
+ export * from "./events/publishers/property-offer-withdrawn-publisher";
40
+ export * from "./events/publishers/property-offer-expired-publisher";
41
+ export * from "./events/publishers/property-viewing-scheduled-publisher";
42
+ export * from "./events/publishers/property-viewing-confirmed-publisher";
43
+ export * from "./events/publishers/property-viewing-completed-publisher";
44
+ export * from "./events/publishers/property-viewing-cancelled-publisher";
45
+ export * from "./events/publishers/property-viewing-no-show-publisher";
46
+ export * from "./events/publishers/rental-agreement-created-publisher";
47
+ export * from "./events/publishers/rental-agreement-signed-publisher";
48
+ export * from "./events/publishers/rental-agreement-activated-publisher";
49
+ export * from "./events/publishers/rental-agreement-terminated-publisher";
50
+ export * from "./events/publishers/rental-agreement-expired-publisher";
51
+ export * from "./events/publishers/property-rating-submitted-publisher";
52
+ export * from "./events/publishers/property-rating-updated-publisher";
53
+ export * from "./events/publishers/property-report-created-publisher";
54
+ export * from "./events/publishers/property-report-updated-publisher";
55
+ export * from "./events/publishers/property-report-resolved-publisher";
56
+ export * from "./events/publishers/notification-created-publisher";
57
+ export * from "./events/publishers/notification-sent-publisher";
58
+ export * from "./events/publishers/notification-delivered-publisher";
59
+ export * from "./events/publishers/notification-failed-publisher";
60
+ export * from "./events/publishers/notification-read-publisher";
61
+ export * from "./events/publishers/notification-preferences-updated-publisher";
62
+ export * from "./events/publishers/notification-template-created-publisher";
63
+ export * from "./events/publishers/notification-template-updated-publisher";
64
+ export * from "./events/publishers/notification-bulk-send-initiated-publisher";
65
+ export * from "./events/publishers/notification-bulk-send-completed-publisher";
66
+ export * from "./events/publishers/incident-created-publisher";
67
+ export * from "./events/publishers/incident-updated-publisher";
68
+ export * from "./events/publishers/incident-resolved-publisher";
69
+ export * from "./events/publishers/sos-triggered-publisher";
70
+ export * from "./events/publishers/sos-acknowledged-publisher";
71
+ export * from "./events/publishers/sos-responding-publisher";
72
+ export * from "./events/publishers/sos-resolved-publisher";
73
+ export * from "./events/publishers/disciplinary-action-created-publisher";
74
+ export * from "./events/publishers/disciplinary-action-activated-publisher";
75
+ export * from "./events/publishers/disciplinary-action-revoked-publisher";
76
+ export * from "./events/publishers/safety-note-created-publisher";
77
+ export * from "./events/publishers/safety-audit-log-created-publisher";
78
+ export * from "./events/publishers/wallet-created-publisher";
79
+ export * from "./events/publishers/wallet-adjusted-publisher";
80
+ export * from "./events/publishers/wallet-balance-updated-publisher";
81
+ export * from "./events/publishers/wallet-status-changed-publisher";
82
+ export * from "./events/publishers/wallet-transaction-created-publisher";
83
+ export * from "./events/publishers/transaction-status-changed-publisher";
84
+ export * from "./events/publishers/payment-intent-created-publisher";
85
+ export * from "./events/publishers/payment-intent-succeeded-publisher";
86
+ export * from "./events/publishers/payment-intent-failed-publisher";
87
+ export * from "./events/publishers/payment-intent-cancelled-publisher";
88
+ export * from "./events/publishers/payment-charge-refunded-publisher";
89
+ export * from "./events/publishers/payout-requested-publisher";
90
+ export * from "./events/publishers/payout-approved-publisher";
91
+ export * from "./events/publishers/payout-processing-publisher";
92
+ export * from "./events/publishers/payout-succeeded-publisher";
93
+ export * from "./events/publishers/payout-failed-publisher";
94
+ export * from "./events/publishers/payout-cancelled-publisher";
95
+ export * from "./events/publishers/webhook-received-publisher";
96
+ export * from "./events/publishers/webhook-processed-publisher";
97
+ export * from "./events/publishers/chat-session-created-publisher";
98
+ export * from "./events/publishers/chat-session-closed-publisher";
99
+ export * from "./events/publishers/chat-participant-muted-publisher";
100
+ export * from "./events/publishers/message-sent-publisher";
101
+ export * from "./events/publishers/message-delivered-publisher";
102
+ export * from "./events/publishers/message-read-publisher";
103
+ export * from "./events/publishers/system-message-added-publisher";
104
+ export * from "./events/publishers/call-initiated-publisher";
105
+ export * from "./events/publishers/call-ringing-publisher";
106
+ export * from "./events/publishers/call-answered-publisher";
107
+ export * from "./events/publishers/call-rejected-publisher";
108
+ export * from "./events/publishers/call-missed-publisher";
109
+ export * from "./events/publishers/call-ended-publisher";
110
+ export * from "./events/publishers/call-failed-publisher";
111
+ export * from "./events/publishers/call-rated-publisher";
112
+ export * from "./events/publishers/call-provider-status-update-publisher";
113
+ export * from "./events/publishers/campaign-created-publisher";
114
+ export * from "./events/publishers/campaign-activated-publisher";
115
+ export * from "./events/publishers/campaign-status-changed-publisher";
116
+ export * from "./events/publishers/campaign-expired-publisher";
117
+ export * from "./events/publishers/promo-code-created-publisher";
118
+ export * from "./events/publishers/promo-code-bulk-created-publisher";
119
+ export * from "./events/publishers/promo-code-applied-publisher";
120
+ export * from "./events/publishers/promo-code-status-changed-publisher";
121
+ export * from "./events/publishers/referral-code-generated-publisher";
122
+ export * from "./events/publishers/referral-claimed-publisher";
123
+ export * from "./events/publishers/referral-qualified-publisher";
124
+ export * from "./events/publishers/referral-rewards-granted-publisher";
125
+ export * from "./events/publishers/referral-status-changed-publisher";
126
+ export * from "./events/publishers/reward-credit-issued-publisher";
127
+ export * from "./events/publishers/reward-credit-used-publisher";
128
+ export * from "./events/publishers/reward-credit-expired-publisher";
129
+ export * from "./events/publishers/reward-credit-cancelled-publisher";
130
+ export * from "./events/publishers/discount-calculated-publisher";
131
+ export * from "./events/publishers/discount-applied-publisher";
132
+ export * from "./events/publishers/campaign-redemption-publisher";
133
+ export * from "./events/publishers/referral-conversion-publisher";
package/build/index.js ADDED
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ // Re-export stuff from errors and middlewares
14
+ __exportStar(require("./errors/bad-request-error"), exports);
15
+ __exportStar(require("./errors/custom-error"), exports);
16
+ __exportStar(require("./errors/database-connection-error"), exports);
17
+ __exportStar(require("./errors/not-authorized-error"), exports);
18
+ __exportStar(require("./errors/not-found-error"), exports);
19
+ __exportStar(require("./errors/request-validation-error"), exports);
20
+ __exportStar(require("./types/auth"), exports);
21
+ __exportStar(require("./middlewares/current-user"), exports);
22
+ __exportStar(require("./middlewares/error-handler"), exports);
23
+ __exportStar(require("./middlewares/require-auth"), exports);
24
+ __exportStar(require("./middlewares/validate-request"), exports);
25
+ __exportStar(require("./events/consumer"), exports);
26
+ __exportStar(require("./events/producer"), exports);
27
+ __exportStar(require("./events/types/request-events"), exports);
28
+ __exportStar(require("./events/types/user-events"), exports);
29
+ __exportStar(require("./events/types/property-events"), exports);
30
+ __exportStar(require("./events/types/notification-events"), exports);
31
+ __exportStar(require("./events/types/safety-events"), exports);
32
+ __exportStar(require("./events/types/geo-config-events"), exports);
33
+ __exportStar(require("./events/types/payment-events"), exports);
34
+ __exportStar(require("./events/types/chat-events"), exports);
35
+ __exportStar(require("./events/types/promotion-events"), exports);
36
+ __exportStar(require("./events/types"), exports);
37
+ // Geo Config / Location event publishers
38
+ __exportStar(require("./events/publishers/country-created-publisher"), exports);
39
+ __exportStar(require("./events/publishers/country-updated-publisher"), exports);
40
+ __exportStar(require("./events/publishers/country-status-changed-publisher"), exports);
41
+ __exportStar(require("./events/publishers/city-created-publisher"), exports);
42
+ __exportStar(require("./events/publishers/city-updated-publisher"), exports);
43
+ __exportStar(require("./events/publishers/city-status-changed-publisher"), exports);
44
+ // Property event publishers
45
+ __exportStar(require("./events/publishers/property-created-publisher"), exports);
46
+ __exportStar(require("./events/publishers/property-updated-publisher"), exports);
47
+ __exportStar(require("./events/publishers/property-status-changed-publisher"), exports);
48
+ __exportStar(require("./events/publishers/property-deleted-publisher"), exports);
49
+ __exportStar(require("./events/publishers/property-viewed-publisher"), exports);
50
+ // Property Offer event publishers
51
+ __exportStar(require("./events/publishers/property-offer-created-publisher"), exports);
52
+ __exportStar(require("./events/publishers/property-offer-updated-publisher"), exports);
53
+ __exportStar(require("./events/publishers/property-offer-accepted-publisher"), exports);
54
+ __exportStar(require("./events/publishers/property-offer-rejected-publisher"), exports);
55
+ __exportStar(require("./events/publishers/property-offer-withdrawn-publisher"), exports);
56
+ __exportStar(require("./events/publishers/property-offer-expired-publisher"), exports);
57
+ // Property Viewing event publishers
58
+ __exportStar(require("./events/publishers/property-viewing-scheduled-publisher"), exports);
59
+ __exportStar(require("./events/publishers/property-viewing-confirmed-publisher"), exports);
60
+ __exportStar(require("./events/publishers/property-viewing-completed-publisher"), exports);
61
+ __exportStar(require("./events/publishers/property-viewing-cancelled-publisher"), exports);
62
+ __exportStar(require("./events/publishers/property-viewing-no-show-publisher"), exports);
63
+ // Rental Agreement event publishers
64
+ __exportStar(require("./events/publishers/rental-agreement-created-publisher"), exports);
65
+ __exportStar(require("./events/publishers/rental-agreement-signed-publisher"), exports);
66
+ __exportStar(require("./events/publishers/rental-agreement-activated-publisher"), exports);
67
+ __exportStar(require("./events/publishers/rental-agreement-terminated-publisher"), exports);
68
+ __exportStar(require("./events/publishers/rental-agreement-expired-publisher"), exports);
69
+ // Property Rating event publishers
70
+ __exportStar(require("./events/publishers/property-rating-submitted-publisher"), exports);
71
+ __exportStar(require("./events/publishers/property-rating-updated-publisher"), exports);
72
+ // Property Report event publishers
73
+ __exportStar(require("./events/publishers/property-report-created-publisher"), exports);
74
+ __exportStar(require("./events/publishers/property-report-updated-publisher"), exports);
75
+ __exportStar(require("./events/publishers/property-report-resolved-publisher"), exports);
76
+ // Notification event publishers
77
+ __exportStar(require("./events/publishers/notification-created-publisher"), exports);
78
+ __exportStar(require("./events/publishers/notification-sent-publisher"), exports);
79
+ __exportStar(require("./events/publishers/notification-delivered-publisher"), exports);
80
+ __exportStar(require("./events/publishers/notification-failed-publisher"), exports);
81
+ __exportStar(require("./events/publishers/notification-read-publisher"), exports);
82
+ __exportStar(require("./events/publishers/notification-preferences-updated-publisher"), exports);
83
+ __exportStar(require("./events/publishers/notification-template-created-publisher"), exports);
84
+ __exportStar(require("./events/publishers/notification-template-updated-publisher"), exports);
85
+ __exportStar(require("./events/publishers/notification-bulk-send-initiated-publisher"), exports);
86
+ __exportStar(require("./events/publishers/notification-bulk-send-completed-publisher"), exports);
87
+ // Safety & Reporting event publishers
88
+ __exportStar(require("./events/publishers/incident-created-publisher"), exports);
89
+ __exportStar(require("./events/publishers/incident-updated-publisher"), exports);
90
+ __exportStar(require("./events/publishers/incident-resolved-publisher"), exports);
91
+ __exportStar(require("./events/publishers/sos-triggered-publisher"), exports);
92
+ __exportStar(require("./events/publishers/sos-acknowledged-publisher"), exports);
93
+ __exportStar(require("./events/publishers/sos-responding-publisher"), exports);
94
+ __exportStar(require("./events/publishers/sos-resolved-publisher"), exports);
95
+ __exportStar(require("./events/publishers/disciplinary-action-created-publisher"), exports);
96
+ __exportStar(require("./events/publishers/disciplinary-action-activated-publisher"), exports);
97
+ __exportStar(require("./events/publishers/disciplinary-action-revoked-publisher"), exports);
98
+ __exportStar(require("./events/publishers/safety-note-created-publisher"), exports);
99
+ __exportStar(require("./events/publishers/safety-audit-log-created-publisher"), exports);
100
+ // Payment & Wallet event publishers
101
+ __exportStar(require("./events/publishers/wallet-created-publisher"), exports);
102
+ __exportStar(require("./events/publishers/wallet-adjusted-publisher"), exports);
103
+ __exportStar(require("./events/publishers/wallet-balance-updated-publisher"), exports);
104
+ __exportStar(require("./events/publishers/wallet-status-changed-publisher"), exports);
105
+ __exportStar(require("./events/publishers/wallet-transaction-created-publisher"), exports);
106
+ __exportStar(require("./events/publishers/transaction-status-changed-publisher"), exports);
107
+ // Payment Intent event publishers
108
+ __exportStar(require("./events/publishers/payment-intent-created-publisher"), exports);
109
+ __exportStar(require("./events/publishers/payment-intent-succeeded-publisher"), exports);
110
+ __exportStar(require("./events/publishers/payment-intent-failed-publisher"), exports);
111
+ __exportStar(require("./events/publishers/payment-intent-cancelled-publisher"), exports);
112
+ __exportStar(require("./events/publishers/payment-charge-refunded-publisher"), exports);
113
+ // Payout event publishers
114
+ __exportStar(require("./events/publishers/payout-requested-publisher"), exports);
115
+ __exportStar(require("./events/publishers/payout-approved-publisher"), exports);
116
+ __exportStar(require("./events/publishers/payout-processing-publisher"), exports);
117
+ __exportStar(require("./events/publishers/payout-succeeded-publisher"), exports);
118
+ __exportStar(require("./events/publishers/payout-failed-publisher"), exports);
119
+ __exportStar(require("./events/publishers/payout-cancelled-publisher"), exports);
120
+ // Webhook event publishers
121
+ __exportStar(require("./events/publishers/webhook-received-publisher"), exports);
122
+ __exportStar(require("./events/publishers/webhook-processed-publisher"), exports);
123
+ // Chat & Messaging event publishers
124
+ __exportStar(require("./events/publishers/chat-session-created-publisher"), exports);
125
+ __exportStar(require("./events/publishers/chat-session-closed-publisher"), exports);
126
+ __exportStar(require("./events/publishers/chat-participant-muted-publisher"), exports);
127
+ __exportStar(require("./events/publishers/message-sent-publisher"), exports);
128
+ __exportStar(require("./events/publishers/message-delivered-publisher"), exports);
129
+ __exportStar(require("./events/publishers/message-read-publisher"), exports);
130
+ __exportStar(require("./events/publishers/system-message-added-publisher"), exports);
131
+ // Call event publishers
132
+ __exportStar(require("./events/publishers/call-initiated-publisher"), exports);
133
+ __exportStar(require("./events/publishers/call-ringing-publisher"), exports);
134
+ __exportStar(require("./events/publishers/call-answered-publisher"), exports);
135
+ __exportStar(require("./events/publishers/call-rejected-publisher"), exports);
136
+ __exportStar(require("./events/publishers/call-missed-publisher"), exports);
137
+ __exportStar(require("./events/publishers/call-ended-publisher"), exports);
138
+ __exportStar(require("./events/publishers/call-failed-publisher"), exports);
139
+ __exportStar(require("./events/publishers/call-rated-publisher"), exports);
140
+ __exportStar(require("./events/publishers/call-provider-status-update-publisher"), exports);
141
+ // Promotion Campaign event publishers
142
+ __exportStar(require("./events/publishers/campaign-created-publisher"), exports);
143
+ __exportStar(require("./events/publishers/campaign-activated-publisher"), exports);
144
+ __exportStar(require("./events/publishers/campaign-status-changed-publisher"), exports);
145
+ __exportStar(require("./events/publishers/campaign-expired-publisher"), exports);
146
+ // Promo Code event publishers
147
+ __exportStar(require("./events/publishers/promo-code-created-publisher"), exports);
148
+ __exportStar(require("./events/publishers/promo-code-bulk-created-publisher"), exports);
149
+ __exportStar(require("./events/publishers/promo-code-applied-publisher"), exports);
150
+ __exportStar(require("./events/publishers/promo-code-status-changed-publisher"), exports);
151
+ // Referral event publishers
152
+ __exportStar(require("./events/publishers/referral-code-generated-publisher"), exports);
153
+ __exportStar(require("./events/publishers/referral-claimed-publisher"), exports);
154
+ __exportStar(require("./events/publishers/referral-qualified-publisher"), exports);
155
+ __exportStar(require("./events/publishers/referral-rewards-granted-publisher"), exports);
156
+ __exportStar(require("./events/publishers/referral-status-changed-publisher"), exports);
157
+ // Reward Credit event publishers
158
+ __exportStar(require("./events/publishers/reward-credit-issued-publisher"), exports);
159
+ __exportStar(require("./events/publishers/reward-credit-used-publisher"), exports);
160
+ __exportStar(require("./events/publishers/reward-credit-expired-publisher"), exports);
161
+ __exportStar(require("./events/publishers/reward-credit-cancelled-publisher"), exports);
162
+ // Discount event publishers
163
+ __exportStar(require("./events/publishers/discount-calculated-publisher"), exports);
164
+ __exportStar(require("./events/publishers/discount-applied-publisher"), exports);
165
+ // Campaign Analytics event publishers
166
+ __exportStar(require("./events/publishers/campaign-redemption-publisher"), exports);
167
+ __exportStar(require("./events/publishers/referral-conversion-publisher"), exports);
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ export declare const currentUser: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.currentUser = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const currentUser = (req, res, next) => {
9
+ var _a;
10
+ if (!((_a = req.session) === null || _a === void 0 ? void 0 : _a.jwt)) {
11
+ return next();
12
+ }
13
+ try {
14
+ const payload = jsonwebtoken_1.default.verify(req.session.jwt, process.env.JWT_KEY);
15
+ req.currentUser = payload;
16
+ }
17
+ catch (err) { }
18
+ next();
19
+ };
20
+ exports.currentUser = currentUser;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorHandler = void 0;
4
+ const custom_error_1 = require("../errors/custom-error");
5
+ const errorHandler = (err, req, res, next) => {
6
+ if (err instanceof custom_error_1.CustomError) {
7
+ return res.status(err.statusCode).send({ errors: err.serializeErrors() });
8
+ }
9
+ console.error(err);
10
+ res.status(400).send({
11
+ errors: [{ message: 'Something went wrong' }],
12
+ });
13
+ };
14
+ exports.errorHandler = errorHandler;
@@ -0,0 +1,12 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ /**
3
+ * Middleware: Require authentication
4
+ * Verifies JWT access token and attaches user payload to request
5
+ * Works across all microservices
6
+ */
7
+ export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
8
+ /**
9
+ * Middleware: Optional authentication
10
+ * Loads user if token is present, but doesn't require it
11
+ */
12
+ export declare const optionalAuth: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.optionalAuth = exports.requireAuth = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const not_authorized_error_1 = require("../errors/not-authorized-error");
9
+ const JWT_SECRET = process.env.JWT_SECRET || "your-secret-key-change-in-production";
10
+ /**
11
+ * Middleware: Require authentication
12
+ * Verifies JWT access token and attaches user payload to request
13
+ * Works across all microservices
14
+ */
15
+ const requireAuth = (req, res, next) => {
16
+ var _a;
17
+ try {
18
+ // Extract token from Authorization header or cookies
19
+ const authHeader = req.headers.authorization;
20
+ const token = (authHeader === null || authHeader === void 0 ? void 0 : authHeader.startsWith("Bearer "))
21
+ ? authHeader.substring(7)
22
+ : (_a = req.cookies) === null || _a === void 0 ? void 0 : _a.accessToken;
23
+ // Check if token exists
24
+ if (!token) {
25
+ throw new not_authorized_error_1.NotAuthorizedError();
26
+ }
27
+ // Verify token
28
+ const payload = jsonwebtoken_1.default.verify(token, JWT_SECRET);
29
+ // Attach user payload to request
30
+ req.currentUser = payload;
31
+ // Support both legacy 'id' and new 'userId' formats
32
+ req.userId = payload.userId || payload.id;
33
+ req.sessionId = payload.sessionId;
34
+ next();
35
+ }
36
+ catch (err) {
37
+ if (err.name === "TokenExpiredError") {
38
+ return res.status(401).json({
39
+ error: "TOKEN_EXPIRED",
40
+ message: "Authentication token has expired",
41
+ });
42
+ }
43
+ if (err.name === "JsonWebTokenError") {
44
+ return res.status(401).json({
45
+ error: "INVALID_TOKEN",
46
+ message: "Invalid authentication token",
47
+ });
48
+ }
49
+ // For NotAuthorizedError or other errors
50
+ return res.status(401).json({
51
+ error: "UNAUTHORIZED",
52
+ message: "Authentication required",
53
+ });
54
+ }
55
+ };
56
+ exports.requireAuth = requireAuth;
57
+ /**
58
+ * Middleware: Optional authentication
59
+ * Loads user if token is present, but doesn't require it
60
+ */
61
+ const optionalAuth = (req, res, next) => {
62
+ var _a;
63
+ try {
64
+ const authHeader = req.headers.authorization;
65
+ const token = (authHeader === null || authHeader === void 0 ? void 0 : authHeader.startsWith("Bearer "))
66
+ ? authHeader.substring(7)
67
+ : (_a = req.cookies) === null || _a === void 0 ? void 0 : _a.accessToken;
68
+ if (!token) {
69
+ return next();
70
+ }
71
+ const payload = jsonwebtoken_1.default.verify(token, JWT_SECRET);
72
+ req.currentUser = payload;
73
+ // Support both legacy 'id' and new 'userId' formats
74
+ req.userId = payload.userId || payload.id;
75
+ req.sessionId = payload.sessionId;
76
+ next();
77
+ }
78
+ catch (error) {
79
+ // Silently fail for optional auth
80
+ next();
81
+ }
82
+ };
83
+ exports.optionalAuth = optionalAuth;
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const validateRequest: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateRequest = void 0;
4
+ const express_validator_1 = require("express-validator");
5
+ const request_validation_error_1 = require("../errors/request-validation-error");
6
+ const validateRequest = (req, res, next) => {
7
+ const errors = (0, express_validator_1.validationResult)(req);
8
+ if (!errors.isEmpty()) {
9
+ throw new request_validation_error_1.RequestValidationError(errors.array());
10
+ }
11
+ next();
12
+ };
13
+ exports.validateRequest = validateRequest;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Common types for authentication across all services
3
+ */
4
+ export interface UserPayload {
5
+ id?: string;
6
+ userId?: string;
7
+ email?: string;
8
+ phoneNumber?: string;
9
+ roles?: string[];
10
+ activeMode?: string;
11
+ sessionId?: string;
12
+ [key: string]: any;
13
+ }
14
+ declare global {
15
+ namespace Express {
16
+ interface Request {
17
+ currentUser?: UserPayload;
18
+ userId?: string;
19
+ sessionId?: string;
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Common types for authentication across all services
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });