@valentine-efagene/qshelter-common 2.0.2 → 2.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 (325) hide show
  1. package/dist/{src/config → config}/config.service.d.ts +44 -0
  2. package/dist/{src/config → config}/config.service.js +64 -17
  3. package/dist/config/index.js +1 -0
  4. package/dist/generated/client/browser.d.ts +174 -0
  5. package/dist/generated/client/browser.js +17 -0
  6. package/dist/generated/client/client.d.ts +191 -0
  7. package/dist/generated/client/client.js +32 -0
  8. package/dist/generated/client/commonInputTypes.d.ts +403 -0
  9. package/dist/generated/client/commonInputTypes.js +10 -0
  10. package/dist/generated/client/enums.d.ts +1 -0
  11. package/dist/generated/client/enums.js +10 -0
  12. package/dist/generated/client/internal/class.d.ts +489 -0
  13. package/dist/generated/client/internal/class.js +40 -0
  14. package/dist/generated/client/internal/prismaNamespace.d.ts +3406 -0
  15. package/dist/generated/client/internal/prismaNamespace.js +712 -0
  16. package/dist/generated/client/internal/prismaNamespaceBrowser.d.ts +739 -0
  17. package/dist/generated/client/internal/prismaNamespaceBrowser.js +683 -0
  18. package/dist/generated/client/models/Amenity.d.ts +1020 -0
  19. package/dist/generated/client/models/Amenity.js +1 -0
  20. package/dist/generated/client/models/Contract.d.ts +2099 -0
  21. package/dist/generated/client/models/Contract.js +1 -0
  22. package/dist/generated/client/models/ContractDocument.d.ts +1118 -0
  23. package/dist/generated/client/models/ContractDocument.js +1 -0
  24. package/dist/generated/client/models/DeviceEndpoint.d.ts +1118 -0
  25. package/dist/generated/client/models/DeviceEndpoint.js +1 -0
  26. package/dist/generated/client/models/EmailPreference.d.ts +1151 -0
  27. package/dist/generated/client/models/EmailPreference.js +1 -0
  28. package/dist/generated/client/models/Mortgage.d.ts +2777 -0
  29. package/dist/generated/client/models/Mortgage.js +1 -0
  30. package/dist/generated/client/models/MortgageDocument.d.ts +1118 -0
  31. package/dist/generated/client/models/MortgageDocument.js +1 -0
  32. package/dist/generated/client/models/MortgageDownpaymentInstallment.d.ts +1189 -0
  33. package/dist/generated/client/models/MortgageDownpaymentInstallment.js +1 -0
  34. package/dist/generated/client/models/MortgageDownpaymentPayment.d.ts +1189 -0
  35. package/dist/generated/client/models/MortgageDownpaymentPayment.js +1 -0
  36. package/dist/generated/client/models/MortgageDownpaymentPlan.d.ts +1428 -0
  37. package/dist/generated/client/models/MortgageDownpaymentPlan.js +1 -0
  38. package/dist/generated/client/models/MortgageStep.d.ts +1222 -0
  39. package/dist/generated/client/models/MortgageStep.js +1 -0
  40. package/dist/generated/client/models/MortgageTransition.d.ts +1118 -0
  41. package/dist/generated/client/models/MortgageTransition.js +1 -0
  42. package/dist/generated/client/models/MortgageTransitionEvent.d.ts +1052 -0
  43. package/dist/generated/client/models/MortgageTransitionEvent.js +1 -0
  44. package/dist/generated/client/models/MortgageType.d.ts +1052 -0
  45. package/dist/generated/client/models/MortgageType.js +1 -0
  46. package/dist/generated/client/models/PasswordReset.d.ts +1085 -0
  47. package/dist/generated/client/models/PasswordReset.js +1 -0
  48. package/dist/generated/client/models/Payment.d.ts +2026 -0
  49. package/dist/generated/client/models/Payment.js +1 -0
  50. package/dist/generated/client/models/PaymentInstallment.d.ts +1539 -0
  51. package/dist/generated/client/models/PaymentInstallment.js +1 -0
  52. package/dist/generated/client/models/PaymentPlan.d.ts +2148 -0
  53. package/dist/generated/client/models/PaymentPlan.js +1 -0
  54. package/dist/generated/client/models/PaymentSchedule.d.ts +1450 -0
  55. package/dist/generated/client/models/PaymentSchedule.js +1 -0
  56. package/dist/generated/client/models/Permission.d.ts +1115 -0
  57. package/dist/generated/client/models/Permission.js +1 -0
  58. package/dist/generated/client/models/Property.d.ts +3254 -0
  59. package/dist/generated/client/models/Property.js +1 -0
  60. package/dist/generated/client/models/PropertyAmenity.d.ts +1080 -0
  61. package/dist/generated/client/models/PropertyAmenity.js +1 -0
  62. package/dist/generated/client/models/PropertyDocument.d.ts +1118 -0
  63. package/dist/generated/client/models/PropertyDocument.js +1 -0
  64. package/dist/generated/client/models/PropertyMedia.d.ts +1331 -0
  65. package/dist/generated/client/models/PropertyMedia.js +1 -0
  66. package/dist/generated/client/models/RefreshToken.d.ts +1052 -0
  67. package/dist/generated/client/models/RefreshToken.js +1 -0
  68. package/dist/generated/client/models/Role.d.ts +1159 -0
  69. package/dist/generated/client/models/Role.js +1 -0
  70. package/dist/generated/client/models/RolePermission.d.ts +1080 -0
  71. package/dist/generated/client/models/RolePermission.js +1 -0
  72. package/dist/generated/client/models/Settings.d.ts +916 -0
  73. package/dist/generated/client/models/Settings.js +1 -0
  74. package/dist/generated/client/models/Social.d.ts +1090 -0
  75. package/dist/generated/client/models/Social.js +1 -0
  76. package/dist/generated/client/models/Tenant.d.ts +1082 -0
  77. package/dist/generated/client/models/Tenant.js +1 -0
  78. package/dist/generated/client/models/Transaction.d.ts +1222 -0
  79. package/dist/generated/client/models/Transaction.js +1 -0
  80. package/dist/generated/client/models/User.d.ts +4049 -0
  81. package/dist/generated/client/models/User.js +1 -0
  82. package/dist/generated/client/models/UserSuspension.d.ts +1085 -0
  83. package/dist/generated/client/models/UserSuspension.js +1 -0
  84. package/dist/generated/client/models/Wallet.d.ts +1191 -0
  85. package/dist/generated/client/models/Wallet.js +1 -0
  86. package/dist/generated/client/models/index.d.ts +34 -0
  87. package/dist/generated/client/models/index.js +34 -0
  88. package/dist/generated/client/models.d.ts +35 -0
  89. package/dist/generated/client/models.js +1 -0
  90. package/dist/index.d.ts +5 -16
  91. package/dist/index.js +5 -33
  92. package/dist/types/response.d.ts +15 -0
  93. package/dist/types/response.js +6 -0
  94. package/dist/utils/errors.d.ts +21 -0
  95. package/dist/utils/errors.js +28 -0
  96. package/package.json +35 -99
  97. package/prisma/schema.prisma +636 -0
  98. package/dist/OpenApiHelper.d.ts +0 -9
  99. package/dist/OpenApiHelper.js +0 -118
  100. package/dist/OpenApiHelper.js.map +0 -1
  101. package/dist/decorator/index.d.ts +0 -2
  102. package/dist/decorator/index.js +0 -19
  103. package/dist/decorator/index.js.map +0 -1
  104. package/dist/decorator/permission.decorator.d.ts +0 -2
  105. package/dist/decorator/permission.decorator.js +0 -6
  106. package/dist/decorator/permission.decorator.js.map +0 -1
  107. package/dist/decorator/tenant.decorator.d.ts +0 -2
  108. package/dist/decorator/tenant.decorator.js +0 -13
  109. package/dist/decorator/tenant.decorator.js.map +0 -1
  110. package/dist/encryption/encryption.module.d.ts +0 -2
  111. package/dist/encryption/encryption.module.js +0 -24
  112. package/dist/encryption/encryption.module.js.map +0 -1
  113. package/dist/encryption/encryption.service.d.ts +0 -17
  114. package/dist/encryption/encryption.service.js +0 -85
  115. package/dist/encryption/encryption.service.js.map +0 -1
  116. package/dist/entities/TenantAwareEntity.d.ts +0 -9
  117. package/dist/entities/TenantAwareEntity.js +0 -48
  118. package/dist/entities/TenantAwareEntity.js.map +0 -1
  119. package/dist/entities/TenantAwareRepository.d.ts +0 -13
  120. package/dist/entities/TenantAwareRepository.js +0 -65
  121. package/dist/entities/TenantAwareRepository.js.map +0 -1
  122. package/dist/entities/amenity.entity.d.ts +0 -4
  123. package/dist/entities/amenity.entity.js +0 -28
  124. package/dist/entities/amenity.entity.js.map +0 -1
  125. package/dist/entities/common.entity.d.ts +0 -16
  126. package/dist/entities/common.entity.js +0 -63
  127. package/dist/entities/common.entity.js.map +0 -1
  128. package/dist/entities/common.pure.entity.d.ts +0 -11
  129. package/dist/entities/common.pure.entity.js +0 -52
  130. package/dist/entities/common.pure.entity.js.map +0 -1
  131. package/dist/entities/contract-document.entity.d.ts +0 -39
  132. package/dist/entities/contract-document.entity.js +0 -115
  133. package/dist/entities/contract-document.entity.js.map +0 -1
  134. package/dist/entities/contract.entity.d.ts +0 -62
  135. package/dist/entities/contract.entity.js +0 -191
  136. package/dist/entities/contract.entity.js.map +0 -1
  137. package/dist/entities/device_endpoint.entity.d.ts +0 -10
  138. package/dist/entities/device_endpoint.entity.js +0 -50
  139. package/dist/entities/device_endpoint.entity.js.map +0 -1
  140. package/dist/entities/email_preference.entity.d.ts +0 -6
  141. package/dist/entities/email_preference.entity.js +0 -45
  142. package/dist/entities/email_preference.entity.js.map +0 -1
  143. package/dist/entities/index.d.ts +0 -36
  144. package/dist/entities/index.js +0 -53
  145. package/dist/entities/index.js.map +0 -1
  146. package/dist/entities/mortgage-document.entity.d.ts +0 -14
  147. package/dist/entities/mortgage-document.entity.js +0 -58
  148. package/dist/entities/mortgage-document.entity.js.map +0 -1
  149. package/dist/entities/mortgage-downpayment-installment.entity.d.ts +0 -19
  150. package/dist/entities/mortgage-downpayment-installment.entity.js +0 -63
  151. package/dist/entities/mortgage-downpayment-installment.entity.js.map +0 -1
  152. package/dist/entities/mortgage-downpayment-payment.entity.d.ts +0 -28
  153. package/dist/entities/mortgage-downpayment-payment.entity.js +0 -84
  154. package/dist/entities/mortgage-downpayment-payment.entity.js.map +0 -1
  155. package/dist/entities/mortgage-downpayment.entity.d.ts +0 -22
  156. package/dist/entities/mortgage-downpayment.entity.js +0 -66
  157. package/dist/entities/mortgage-downpayment.entity.js.map +0 -1
  158. package/dist/entities/mortgage-step.entity.d.ts +0 -12
  159. package/dist/entities/mortgage-step.entity.js +0 -52
  160. package/dist/entities/mortgage-step.entity.js.map +0 -1
  161. package/dist/entities/mortgage-transition-event.entity.d.ts +0 -26
  162. package/dist/entities/mortgage-transition-event.entity.js +0 -111
  163. package/dist/entities/mortgage-transition-event.entity.js.map +0 -1
  164. package/dist/entities/mortgage-transition.entity.d.ts +0 -25
  165. package/dist/entities/mortgage-transition.entity.js +0 -91
  166. package/dist/entities/mortgage-transition.entity.js.map +0 -1
  167. package/dist/entities/mortgage-type.entity.d.ts +0 -10
  168. package/dist/entities/mortgage-type.entity.js +0 -46
  169. package/dist/entities/mortgage-type.entity.js.map +0 -1
  170. package/dist/entities/mortgage.entity.d.ts +0 -37
  171. package/dist/entities/mortgage.entity.js +0 -124
  172. package/dist/entities/mortgage.entity.js.map +0 -1
  173. package/dist/entities/password_reset_tokens.entity.d.ts +0 -7
  174. package/dist/entities/password_reset_tokens.entity.js +0 -45
  175. package/dist/entities/password_reset_tokens.entity.js.map +0 -1
  176. package/dist/entities/payment-installment.entity.d.ts +0 -39
  177. package/dist/entities/payment-installment.entity.js +0 -134
  178. package/dist/entities/payment-installment.entity.js.map +0 -1
  179. package/dist/entities/payment-plan.entity.d.ts +0 -62
  180. package/dist/entities/payment-plan.entity.js +0 -174
  181. package/dist/entities/payment-plan.entity.js.map +0 -1
  182. package/dist/entities/payment-schedule.entity.d.ts +0 -44
  183. package/dist/entities/payment-schedule.entity.js +0 -134
  184. package/dist/entities/payment-schedule.entity.js.map +0 -1
  185. package/dist/entities/payment.entity.d.ts +0 -55
  186. package/dist/entities/payment.entity.js +0 -157
  187. package/dist/entities/payment.entity.js.map +0 -1
  188. package/dist/entities/permission.entity.d.ts +0 -6
  189. package/dist/entities/permission.entity.js +0 -30
  190. package/dist/entities/permission.entity.js.map +0 -1
  191. package/dist/entities/property-document.entity.d.ts +0 -6
  192. package/dist/entities/property-document.entity.js +0 -34
  193. package/dist/entities/property-document.entity.js.map +0 -1
  194. package/dist/entities/property-media.entity.d.ts +0 -6
  195. package/dist/entities/property-media.entity.js +0 -37
  196. package/dist/entities/property-media.entity.js.map +0 -1
  197. package/dist/entities/property.entity.d.ts +0 -40
  198. package/dist/entities/property.entity.js +0 -202
  199. package/dist/entities/property.entity.js.map +0 -1
  200. package/dist/entities/refresh_token.entity.d.ts +0 -7
  201. package/dist/entities/refresh_token.entity.js +0 -35
  202. package/dist/entities/refresh_token.entity.js.map +0 -1
  203. package/dist/entities/role.entity.d.ts +0 -8
  204. package/dist/entities/role.entity.js +0 -39
  205. package/dist/entities/role.entity.js.map +0 -1
  206. package/dist/entities/settings.entity.d.ts +0 -17
  207. package/dist/entities/settings.entity.js +0 -81
  208. package/dist/entities/settings.entity.js.map +0 -1
  209. package/dist/entities/social.entity.d.ts +0 -8
  210. package/dist/entities/social.entity.js +0 -48
  211. package/dist/entities/social.entity.js.map +0 -1
  212. package/dist/entities/tenant.entity.d.ts +0 -32
  213. package/dist/entities/tenant.entity.js +0 -101
  214. package/dist/entities/tenant.entity.js.map +0 -1
  215. package/dist/entities/transaction.entity.d.ts +0 -17
  216. package/dist/entities/transaction.entity.js +0 -87
  217. package/dist/entities/transaction.entity.js.map +0 -1
  218. package/dist/entities/user.entity.d.ts +0 -28
  219. package/dist/entities/user.entity.js +0 -109
  220. package/dist/entities/user.entity.js.map +0 -1
  221. package/dist/entities/user_suspensions.entity.d.ts +0 -7
  222. package/dist/entities/user_suspensions.entity.js +0 -44
  223. package/dist/entities/user_suspensions.entity.js.map +0 -1
  224. package/dist/entities/wallet.entity.d.ts +0 -17
  225. package/dist/entities/wallet.entity.js +0 -79
  226. package/dist/entities/wallet.entity.js.map +0 -1
  227. package/dist/guard/index.d.ts +0 -2
  228. package/dist/guard/index.js +0 -19
  229. package/dist/guard/index.js.map +0 -1
  230. package/dist/guard/permission.guard.d.ts +0 -10
  231. package/dist/guard/permission.guard.js +0 -47
  232. package/dist/guard/permission.guard.js.map +0 -1
  233. package/dist/guard/swagger-auth.guard.d.ts +0 -1
  234. package/dist/guard/swagger-auth.guard.js +0 -9
  235. package/dist/guard/swagger-auth.guard.js.map +0 -1
  236. package/dist/helpers/ArrayHelper.d.ts +0 -2
  237. package/dist/helpers/ArrayHelper.js +0 -6
  238. package/dist/helpers/ArrayHelper.js.map +0 -1
  239. package/dist/helpers/ConstantHelper.d.ts +0 -36
  240. package/dist/helpers/ConstantHelper.js +0 -90
  241. package/dist/helpers/ConstantHelper.js.map +0 -1
  242. package/dist/helpers/CustomNamingStrategy.d.ts +0 -7
  243. package/dist/helpers/CustomNamingStrategy.js +0 -22
  244. package/dist/helpers/CustomNamingStrategy.js.map +0 -1
  245. package/dist/helpers/DateHelper.d.ts +0 -3
  246. package/dist/helpers/DateHelper.js +0 -20
  247. package/dist/helpers/DateHelper.js.map +0 -1
  248. package/dist/helpers/EmailHelper.d.ts +0 -4
  249. package/dist/helpers/EmailHelper.js +0 -55
  250. package/dist/helpers/EmailHelper.js.map +0 -1
  251. package/dist/helpers/FileSystemHelper.d.ts +0 -15
  252. package/dist/helpers/FileSystemHelper.js +0 -102
  253. package/dist/helpers/FileSystemHelper.js.map +0 -1
  254. package/dist/helpers/index.d.ts +0 -5
  255. package/dist/helpers/index.js +0 -22
  256. package/dist/helpers/index.js.map +0 -1
  257. package/dist/index.js.map +0 -1
  258. package/dist/middleware/AccessLoggerMiddleware.d.ts +0 -6
  259. package/dist/middleware/AccessLoggerMiddleware.js +0 -64
  260. package/dist/middleware/AccessLoggerMiddleware.js.map +0 -1
  261. package/dist/middleware/AuthenticationMiddleware.d.ts +0 -5
  262. package/dist/middleware/AuthenticationMiddleware.js +0 -19
  263. package/dist/middleware/AuthenticationMiddleware.js.map +0 -1
  264. package/dist/middleware/TenantMiddleware.d.ts +0 -14
  265. package/dist/middleware/TenantMiddleware.js +0 -49
  266. package/dist/middleware/TenantMiddleware.js.map +0 -1
  267. package/dist/middleware/index.d.ts +0 -3
  268. package/dist/middleware/index.js +0 -20
  269. package/dist/middleware/index.js.map +0 -1
  270. package/dist/pagination/index.d.ts +0 -2
  271. package/dist/pagination/index.js +0 -19
  272. package/dist/pagination/index.js.map +0 -1
  273. package/dist/pagination/pagination.helper.d.ts +0 -7
  274. package/dist/pagination/pagination.helper.js +0 -40
  275. package/dist/pagination/pagination.helper.js.map +0 -1
  276. package/dist/pagination/pagination.types.d.ts +0 -19
  277. package/dist/pagination/pagination.types.js +0 -3
  278. package/dist/pagination/pagination.types.js.map +0 -1
  279. package/dist/qr-code/qr-code.dto.d.ts +0 -3
  280. package/dist/qr-code/qr-code.dto.js +0 -21
  281. package/dist/qr-code/qr-code.dto.js.map +0 -1
  282. package/dist/qr-code/qr-code.module.d.ts +0 -2
  283. package/dist/qr-code/qr-code.module.js +0 -24
  284. package/dist/qr-code/qr-code.module.js.map +0 -1
  285. package/dist/qr-code/qr-code.service.d.ts +0 -11
  286. package/dist/qr-code/qr-code.service.js +0 -89
  287. package/dist/qr-code/qr-code.service.js.map +0 -1
  288. package/dist/qr-code/qr-code.type.d.ts +0 -5
  289. package/dist/qr-code/qr-code.type.js +0 -3
  290. package/dist/qr-code/qr-code.type.js.map +0 -1
  291. package/dist/src/config/config.service.js.map +0 -1
  292. package/dist/src/config/index.js +0 -18
  293. package/dist/src/config/index.js.map +0 -1
  294. package/dist/standard-response.d.ts +0 -7
  295. package/dist/standard-response.js +0 -27
  296. package/dist/standard-response.js.map +0 -1
  297. package/dist/tsconfig.tsbuildinfo +0 -1
  298. package/dist/types/common.type.d.ts +0 -54
  299. package/dist/types/common.type.js +0 -55
  300. package/dist/types/common.type.js.map +0 -1
  301. package/dist/types/index.d.ts +0 -8
  302. package/dist/types/index.js +0 -25
  303. package/dist/types/index.js.map +0 -1
  304. package/dist/types/mortgage-fsm.type.d.ts +0 -180
  305. package/dist/types/mortgage-fsm.type.js +0 -130
  306. package/dist/types/mortgage-fsm.type.js.map +0 -1
  307. package/dist/types/permission.type.d.ts +0 -42
  308. package/dist/types/permission.type.js +0 -47
  309. package/dist/types/permission.type.js.map +0 -1
  310. package/dist/types/policy.type.d.ts +0 -18
  311. package/dist/types/policy.type.js +0 -3
  312. package/dist/types/policy.type.js.map +0 -1
  313. package/dist/types/property.type.d.ts +0 -13
  314. package/dist/types/property.type.js +0 -20
  315. package/dist/types/property.type.js.map +0 -1
  316. package/dist/types/tenant.type.d.ts +0 -13
  317. package/dist/types/tenant.type.js +0 -19
  318. package/dist/types/tenant.type.js.map +0 -1
  319. package/dist/types/transaction.type.d.ts +0 -8
  320. package/dist/types/transaction.type.js +0 -14
  321. package/dist/types/transaction.type.js.map +0 -1
  322. package/dist/types/user.type.d.ts +0 -10
  323. package/dist/types/user.type.js +0 -16
  324. package/dist/types/user.type.js.map +0 -1
  325. /package/dist/{src/config → config}/index.d.ts +0 -0
@@ -44,18 +44,62 @@ export declare class ConfigService {
44
44
  private readonly CACHE_TTL;
45
45
  private constructor();
46
46
  static getInstance(region?: string): ConfigService;
47
+ /**
48
+ * Get all infrastructure configuration from SSM Parameter Store
49
+ */
47
50
  getInfrastructureConfig(stage?: string): Promise<InfrastructureConfig>;
51
+ /**
52
+ * Get a single parameter from SSM
53
+ */
48
54
  getParameter(name: string): Promise<string>;
55
+ /**
56
+ * Get JWT secrets from Secrets Manager
57
+ */
49
58
  getJwtSecret(stage?: string): Promise<JwtSecrets>;
59
+ /**
60
+ * Get refresh token secret from Secrets Manager
61
+ */
50
62
  getRefreshTokenSecret(stage?: string): Promise<JwtSecrets>;
63
+ /**
64
+ * Get encryption secrets from Secrets Manager
65
+ */
51
66
  getEncryptionSecrets(stage?: string): Promise<EncryptionSecrets>;
67
+ /**
68
+ * Get OAuth secrets from Secrets Manager
69
+ */
52
70
  getOAuthSecrets(stage?: string): Promise<OAuthSecrets>;
71
+ /**
72
+ * Get Paystack secrets from Secrets Manager
73
+ */
53
74
  getPaystackSecrets(stage?: string): Promise<PaystackSecrets>;
75
+ /**
76
+ * Get Email secrets from Secrets Manager
77
+ */
54
78
  getEmailSecrets(stage?: string): Promise<EmailSecrets>;
79
+ /**
80
+ * Generic method to get any secret from Secrets Manager
81
+ */
55
82
  private getSecret;
83
+ /**
84
+ * Helper to extract parameter value from SSM response
85
+ */
56
86
  private getParamValue;
87
+ /**
88
+ * Get value from cache if valid
89
+ */
57
90
  private getFromCache;
91
+ /**
92
+ * Set value in cache with timestamp
93
+ */
58
94
  private setCache;
95
+ /**
96
+ * Clear the cache (useful for testing or forcing refresh)
97
+ */
59
98
  clearCache(): void;
99
+ /**
100
+ * Get a configuration value from environment variables
101
+ * This is useful for local development when AWS services are not available
102
+ */
103
+ get(key: string): string;
60
104
  }
61
105
  export declare const configService: ConfigService;
@@ -1,15 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configService = exports.ConfigService = void 0;
4
- const client_ssm_1 = require("@aws-sdk/client-ssm");
5
- const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
6
- class ConfigService {
1
+ import { SSMClient, GetParameterCommand, GetParametersByPathCommand } from '@aws-sdk/client-ssm';
2
+ import { SecretsManagerClient, GetSecretValueCommand } from '@aws-sdk/client-secrets-manager';
3
+ export class ConfigService {
4
+ static instance;
5
+ ssmClient;
6
+ secretsClient;
7
+ cache = new Map();
8
+ cacheTimestamps = new Map();
9
+ CACHE_TTL = 5 * 60 * 1000; // 5 minutes
7
10
  constructor(region = 'us-east-1') {
8
- this.cache = new Map();
9
- this.cacheTimestamps = new Map();
10
- this.CACHE_TTL = 5 * 60 * 1000;
11
- this.ssmClient = new client_ssm_1.SSMClient({ region });
12
- this.secretsClient = new client_secrets_manager_1.SecretsManagerClient({ region });
11
+ this.ssmClient = new SSMClient({ region });
12
+ this.secretsClient = new SecretsManagerClient({ region });
13
13
  }
14
14
  static getInstance(region) {
15
15
  if (!ConfigService.instance) {
@@ -17,6 +17,9 @@ class ConfigService {
17
17
  }
18
18
  return ConfigService.instance;
19
19
  }
20
+ /**
21
+ * Get all infrastructure configuration from SSM Parameter Store
22
+ */
20
23
  async getInfrastructureConfig(stage = process.env.NODE_ENV || 'dev') {
21
24
  const cacheKey = `infra-${stage}`;
22
25
  const cached = this.getFromCache(cacheKey);
@@ -24,7 +27,7 @@ class ConfigService {
24
27
  return cached;
25
28
  const pathPrefix = `/qshelter/${stage}/`;
26
29
  try {
27
- const command = new client_ssm_1.GetParametersByPathCommand({
30
+ const command = new GetParametersByPathCommand({
28
31
  Path: pathPrefix,
29
32
  Recursive: true,
30
33
  WithDecryption: false,
@@ -53,12 +56,15 @@ class ConfigService {
53
56
  throw new Error(`Failed to load infrastructure configuration: ${error.message}`);
54
57
  }
55
58
  }
59
+ /**
60
+ * Get a single parameter from SSM
61
+ */
56
62
  async getParameter(name) {
57
63
  const cached = this.getFromCache(name);
58
64
  if (cached)
59
65
  return cached;
60
66
  try {
61
- const command = new client_ssm_1.GetParameterCommand({
67
+ const command = new GetParameterCommand({
62
68
  Name: name,
63
69
  WithDecryption: false,
64
70
  });
@@ -72,39 +78,62 @@ class ConfigService {
72
78
  throw new Error(`Failed to load parameter ${name}: ${error.message}`);
73
79
  }
74
80
  }
81
+ /**
82
+ * Get JWT secrets from Secrets Manager
83
+ */
75
84
  async getJwtSecret(stage = process.env.NODE_ENV || 'dev') {
76
85
  return this.getSecret(`qshelter/${stage}/jwt-secret`);
77
86
  }
87
+ /**
88
+ * Get refresh token secret from Secrets Manager
89
+ */
78
90
  async getRefreshTokenSecret(stage = process.env.NODE_ENV || 'dev') {
79
91
  return this.getSecret(`qshelter/${stage}/refresh-token-secret`);
80
92
  }
93
+ /**
94
+ * Get encryption secrets from Secrets Manager
95
+ */
81
96
  async getEncryptionSecrets(stage = process.env.NODE_ENV || 'dev') {
82
97
  return this.getSecret(`qshelter/${stage}/encryption`);
83
98
  }
99
+ /**
100
+ * Get OAuth secrets from Secrets Manager
101
+ */
84
102
  async getOAuthSecrets(stage = process.env.NODE_ENV || 'dev') {
85
103
  return this.getSecret(`qshelter/${stage}/oauth`);
86
104
  }
105
+ /**
106
+ * Get Paystack secrets from Secrets Manager
107
+ */
87
108
  async getPaystackSecrets(stage = process.env.NODE_ENV || 'dev') {
88
109
  return this.getSecret(`qshelter/${stage}/paystack`);
89
110
  }
111
+ /**
112
+ * Get Email secrets from Secrets Manager
113
+ */
90
114
  async getEmailSecrets(stage = process.env.NODE_ENV || 'dev') {
91
115
  return this.getSecret(`qshelter/${stage}/email`);
92
116
  }
117
+ /**
118
+ * Generic method to get any secret from Secrets Manager
119
+ */
93
120
  async getSecret(secretName) {
94
121
  const cached = this.getFromCache(secretName);
95
122
  if (cached)
96
123
  return cached;
97
124
  try {
98
- const command = new client_secrets_manager_1.GetSecretValueCommand({
125
+ const command = new GetSecretValueCommand({
99
126
  SecretId: secretName,
100
127
  });
101
128
  const response = await this.secretsClient.send(command);
102
129
  const secretString = response.SecretString || '{}';
130
+ // Try to parse as JSON first, if it fails treat as plain text
103
131
  let secret;
104
132
  try {
105
133
  secret = JSON.parse(secretString);
106
134
  }
107
135
  catch {
136
+ // If not JSON, treat as plain text and wrap in object with 'secret' key
108
137
  secret = { secret: secretString };
109
138
  }
110
139
  this.setCache(secretName, secret);
@@ -115,6 +144,9 @@ class ConfigService {
115
144
  throw new Error(`Failed to load secret ${secretName}: ${error.message}`);
116
145
  }
117
146
  }
147
+ /**
148
+ * Helper to extract parameter value from SSM response
149
+ */
118
150
  getParamValue(params, name) {
119
151
  const param = params.find(p => p.Name === name);
120
152
  if (!param) {
@@ -122,6 +154,9 @@ class ConfigService {
122
154
  }
123
155
  return param.Value || '';
124
156
  }
157
+ /**
158
+ * Get value from cache if valid
159
+ */
125
160
  getFromCache(key) {
126
161
  const now = Date.now();
127
162
  const cachedTime = this.cacheTimestamps.get(key);
@@ -130,15 +165,27 @@ class ConfigService {
130
165
  }
131
166
  return null;
132
167
  }
168
+ /**
169
+ * Set value in cache with timestamp
170
+ */
133
171
  setCache(key, value) {
134
172
  this.cache.set(key, value);
135
173
  this.cacheTimestamps.set(key, Date.now());
136
174
  }
175
+ /**
176
+ * Clear the cache (useful for testing or forcing refresh)
177
+ */
137
178
  clearCache() {
138
179
  this.cache.clear();
139
180
  this.cacheTimestamps.clear();
140
181
  }
182
+ /**
183
+ * Get a configuration value from environment variables
184
+ * This is useful for local development when AWS services are not available
185
+ */
186
+ get(key) {
187
+ return process.env[key] || '';
188
+ }
141
189
  }
142
- exports.ConfigService = ConfigService;
143
- exports.configService = ConfigService.getInstance();
144
- //# sourceMappingURL=config.service.js.map
190
+ // Export singleton instance
191
+ export const configService = ConfigService.getInstance();
@@ -0,0 +1 @@
1
+ export * from './config.service';
@@ -0,0 +1,174 @@
1
+ import * as Prisma from './internal/prismaNamespaceBrowser.js';
2
+ export { Prisma };
3
+ export * as $Enums from './enums.js';
4
+ export * from './enums.js';
5
+ /**
6
+ * Model User
7
+ *
8
+ */
9
+ export type User = Prisma.UserModel;
10
+ /**
11
+ * Model Role
12
+ *
13
+ */
14
+ export type Role = Prisma.RoleModel;
15
+ /**
16
+ * Model Permission
17
+ *
18
+ */
19
+ export type Permission = Prisma.PermissionModel;
20
+ /**
21
+ * Model RolePermission
22
+ *
23
+ */
24
+ export type RolePermission = Prisma.RolePermissionModel;
25
+ /**
26
+ * Model Tenant
27
+ *
28
+ */
29
+ export type Tenant = Prisma.TenantModel;
30
+ /**
31
+ * Model RefreshToken
32
+ *
33
+ */
34
+ export type RefreshToken = Prisma.RefreshTokenModel;
35
+ /**
36
+ * Model PasswordReset
37
+ *
38
+ */
39
+ export type PasswordReset = Prisma.PasswordResetModel;
40
+ /**
41
+ * Model UserSuspension
42
+ *
43
+ */
44
+ export type UserSuspension = Prisma.UserSuspensionModel;
45
+ /**
46
+ * Model EmailPreference
47
+ *
48
+ */
49
+ export type EmailPreference = Prisma.EmailPreferenceModel;
50
+ /**
51
+ * Model DeviceEndpoint
52
+ *
53
+ */
54
+ export type DeviceEndpoint = Prisma.DeviceEndpointModel;
55
+ /**
56
+ * Model Social
57
+ *
58
+ */
59
+ export type Social = Prisma.SocialModel;
60
+ /**
61
+ * Model Wallet
62
+ *
63
+ */
64
+ export type Wallet = Prisma.WalletModel;
65
+ /**
66
+ * Model Transaction
67
+ *
68
+ */
69
+ export type Transaction = Prisma.TransactionModel;
70
+ /**
71
+ * Model Settings
72
+ *
73
+ */
74
+ export type Settings = Prisma.SettingsModel;
75
+ /**
76
+ * Model Property
77
+ *
78
+ */
79
+ export type Property = Prisma.PropertyModel;
80
+ /**
81
+ * Model PropertyMedia
82
+ *
83
+ */
84
+ export type PropertyMedia = Prisma.PropertyMediaModel;
85
+ /**
86
+ * Model PropertyDocument
87
+ *
88
+ */
89
+ export type PropertyDocument = Prisma.PropertyDocumentModel;
90
+ /**
91
+ * Model Amenity
92
+ *
93
+ */
94
+ export type Amenity = Prisma.AmenityModel;
95
+ /**
96
+ * Model PropertyAmenity
97
+ *
98
+ */
99
+ export type PropertyAmenity = Prisma.PropertyAmenityModel;
100
+ /**
101
+ * Model Mortgage
102
+ *
103
+ */
104
+ export type Mortgage = Prisma.MortgageModel;
105
+ /**
106
+ * Model MortgageType
107
+ *
108
+ */
109
+ export type MortgageType = Prisma.MortgageTypeModel;
110
+ /**
111
+ * Model MortgageDocument
112
+ *
113
+ */
114
+ export type MortgageDocument = Prisma.MortgageDocumentModel;
115
+ /**
116
+ * Model MortgageStep
117
+ *
118
+ */
119
+ export type MortgageStep = Prisma.MortgageStepModel;
120
+ /**
121
+ * Model MortgageDownpaymentPlan
122
+ *
123
+ */
124
+ export type MortgageDownpaymentPlan = Prisma.MortgageDownpaymentPlanModel;
125
+ /**
126
+ * Model MortgageDownpaymentInstallment
127
+ *
128
+ */
129
+ export type MortgageDownpaymentInstallment = Prisma.MortgageDownpaymentInstallmentModel;
130
+ /**
131
+ * Model MortgageDownpaymentPayment
132
+ *
133
+ */
134
+ export type MortgageDownpaymentPayment = Prisma.MortgageDownpaymentPaymentModel;
135
+ /**
136
+ * Model MortgageTransition
137
+ *
138
+ */
139
+ export type MortgageTransition = Prisma.MortgageTransitionModel;
140
+ /**
141
+ * Model MortgageTransitionEvent
142
+ *
143
+ */
144
+ export type MortgageTransitionEvent = Prisma.MortgageTransitionEventModel;
145
+ /**
146
+ * Model PaymentPlan
147
+ *
148
+ */
149
+ export type PaymentPlan = Prisma.PaymentPlanModel;
150
+ /**
151
+ * Model PaymentSchedule
152
+ *
153
+ */
154
+ export type PaymentSchedule = Prisma.PaymentScheduleModel;
155
+ /**
156
+ * Model PaymentInstallment
157
+ *
158
+ */
159
+ export type PaymentInstallment = Prisma.PaymentInstallmentModel;
160
+ /**
161
+ * Model Payment
162
+ *
163
+ */
164
+ export type Payment = Prisma.PaymentModel;
165
+ /**
166
+ * Model Contract
167
+ *
168
+ */
169
+ export type Contract = Prisma.ContractModel;
170
+ /**
171
+ * Model ContractDocument
172
+ *
173
+ */
174
+ export type ContractDocument = Prisma.ContractDocumentModel;
@@ -0,0 +1,17 @@
1
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
+ /* eslint-disable */
3
+ // biome-ignore-all lint: generated file
4
+ // @ts-nocheck
5
+ /*
6
+ * This file should be your main import to use Prisma-related types and utilities in a browser.
7
+ * Use it to get access to models, enums, and input types.
8
+ *
9
+ * This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only.
10
+ * See `client.ts` for the standard, server-side entry point.
11
+ *
12
+ * 🟢 You can import this file directly.
13
+ */
14
+ import * as Prisma from './internal/prismaNamespaceBrowser.js';
15
+ export { Prisma };
16
+ export * as $Enums from './enums.js';
17
+ export * from './enums.js';
@@ -0,0 +1,191 @@
1
+ import * as runtime from "@prisma/client/runtime/client";
2
+ import * as $Class from "./internal/class.js";
3
+ import * as Prisma from "./internal/prismaNamespace.js";
4
+ export * as $Enums from './enums.js';
5
+ export * from "./enums.js";
6
+ /**
7
+ * ## Prisma Client
8
+ *
9
+ * Type-safe database client for TypeScript
10
+ * @example
11
+ * ```
12
+ * const prisma = new PrismaClient()
13
+ * // Fetch zero or more Users
14
+ * const users = await prisma.user.findMany()
15
+ * ```
16
+ *
17
+ * Read more in our [docs](https://pris.ly/d/client).
18
+ */
19
+ export declare const PrismaClient: $Class.PrismaClientConstructor;
20
+ export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>;
21
+ export { Prisma };
22
+ /**
23
+ * Model User
24
+ *
25
+ */
26
+ export type User = Prisma.UserModel;
27
+ /**
28
+ * Model Role
29
+ *
30
+ */
31
+ export type Role = Prisma.RoleModel;
32
+ /**
33
+ * Model Permission
34
+ *
35
+ */
36
+ export type Permission = Prisma.PermissionModel;
37
+ /**
38
+ * Model RolePermission
39
+ *
40
+ */
41
+ export type RolePermission = Prisma.RolePermissionModel;
42
+ /**
43
+ * Model Tenant
44
+ *
45
+ */
46
+ export type Tenant = Prisma.TenantModel;
47
+ /**
48
+ * Model RefreshToken
49
+ *
50
+ */
51
+ export type RefreshToken = Prisma.RefreshTokenModel;
52
+ /**
53
+ * Model PasswordReset
54
+ *
55
+ */
56
+ export type PasswordReset = Prisma.PasswordResetModel;
57
+ /**
58
+ * Model UserSuspension
59
+ *
60
+ */
61
+ export type UserSuspension = Prisma.UserSuspensionModel;
62
+ /**
63
+ * Model EmailPreference
64
+ *
65
+ */
66
+ export type EmailPreference = Prisma.EmailPreferenceModel;
67
+ /**
68
+ * Model DeviceEndpoint
69
+ *
70
+ */
71
+ export type DeviceEndpoint = Prisma.DeviceEndpointModel;
72
+ /**
73
+ * Model Social
74
+ *
75
+ */
76
+ export type Social = Prisma.SocialModel;
77
+ /**
78
+ * Model Wallet
79
+ *
80
+ */
81
+ export type Wallet = Prisma.WalletModel;
82
+ /**
83
+ * Model Transaction
84
+ *
85
+ */
86
+ export type Transaction = Prisma.TransactionModel;
87
+ /**
88
+ * Model Settings
89
+ *
90
+ */
91
+ export type Settings = Prisma.SettingsModel;
92
+ /**
93
+ * Model Property
94
+ *
95
+ */
96
+ export type Property = Prisma.PropertyModel;
97
+ /**
98
+ * Model PropertyMedia
99
+ *
100
+ */
101
+ export type PropertyMedia = Prisma.PropertyMediaModel;
102
+ /**
103
+ * Model PropertyDocument
104
+ *
105
+ */
106
+ export type PropertyDocument = Prisma.PropertyDocumentModel;
107
+ /**
108
+ * Model Amenity
109
+ *
110
+ */
111
+ export type Amenity = Prisma.AmenityModel;
112
+ /**
113
+ * Model PropertyAmenity
114
+ *
115
+ */
116
+ export type PropertyAmenity = Prisma.PropertyAmenityModel;
117
+ /**
118
+ * Model Mortgage
119
+ *
120
+ */
121
+ export type Mortgage = Prisma.MortgageModel;
122
+ /**
123
+ * Model MortgageType
124
+ *
125
+ */
126
+ export type MortgageType = Prisma.MortgageTypeModel;
127
+ /**
128
+ * Model MortgageDocument
129
+ *
130
+ */
131
+ export type MortgageDocument = Prisma.MortgageDocumentModel;
132
+ /**
133
+ * Model MortgageStep
134
+ *
135
+ */
136
+ export type MortgageStep = Prisma.MortgageStepModel;
137
+ /**
138
+ * Model MortgageDownpaymentPlan
139
+ *
140
+ */
141
+ export type MortgageDownpaymentPlan = Prisma.MortgageDownpaymentPlanModel;
142
+ /**
143
+ * Model MortgageDownpaymentInstallment
144
+ *
145
+ */
146
+ export type MortgageDownpaymentInstallment = Prisma.MortgageDownpaymentInstallmentModel;
147
+ /**
148
+ * Model MortgageDownpaymentPayment
149
+ *
150
+ */
151
+ export type MortgageDownpaymentPayment = Prisma.MortgageDownpaymentPaymentModel;
152
+ /**
153
+ * Model MortgageTransition
154
+ *
155
+ */
156
+ export type MortgageTransition = Prisma.MortgageTransitionModel;
157
+ /**
158
+ * Model MortgageTransitionEvent
159
+ *
160
+ */
161
+ export type MortgageTransitionEvent = Prisma.MortgageTransitionEventModel;
162
+ /**
163
+ * Model PaymentPlan
164
+ *
165
+ */
166
+ export type PaymentPlan = Prisma.PaymentPlanModel;
167
+ /**
168
+ * Model PaymentSchedule
169
+ *
170
+ */
171
+ export type PaymentSchedule = Prisma.PaymentScheduleModel;
172
+ /**
173
+ * Model PaymentInstallment
174
+ *
175
+ */
176
+ export type PaymentInstallment = Prisma.PaymentInstallmentModel;
177
+ /**
178
+ * Model Payment
179
+ *
180
+ */
181
+ export type Payment = Prisma.PaymentModel;
182
+ /**
183
+ * Model Contract
184
+ *
185
+ */
186
+ export type Contract = Prisma.ContractModel;
187
+ /**
188
+ * Model ContractDocument
189
+ *
190
+ */
191
+ export type ContractDocument = Prisma.ContractDocumentModel;
@@ -0,0 +1,32 @@
1
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
+ /* eslint-disable */
3
+ // biome-ignore-all lint: generated file
4
+ // @ts-nocheck
5
+ /*
6
+ * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
7
+ * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
8
+ *
9
+ * 🟢 You can import this file directly.
10
+ */
11
+ import * as path from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url));
14
+ import * as $Class from "./internal/class.js";
15
+ import * as Prisma from "./internal/prismaNamespace.js";
16
+ export * as $Enums from './enums.js';
17
+ export * from "./enums.js";
18
+ /**
19
+ * ## Prisma Client
20
+ *
21
+ * Type-safe database client for TypeScript
22
+ * @example
23
+ * ```
24
+ * const prisma = new PrismaClient()
25
+ * // Fetch zero or more Users
26
+ * const users = await prisma.user.findMany()
27
+ * ```
28
+ *
29
+ * Read more in our [docs](https://pris.ly/d/client).
30
+ */
31
+ export const PrismaClient = $Class.getPrismaClientClass();
32
+ export { Prisma };