@lyxa.ai/core 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.js +6 -7
  3. package/dist/index.js.map +1 -1
  4. package/dist/libraries/auth/index.d.ts +3 -3
  5. package/dist/libraries/auth/index.js +26 -26
  6. package/dist/libraries/auth/index.js.map +1 -1
  7. package/dist/libraries/auth/refreshtoken.d.ts +1 -1
  8. package/dist/libraries/auth/refreshtoken.js +6 -10
  9. package/dist/libraries/auth/refreshtoken.js.map +1 -1
  10. package/dist/libraries/auth/repository.d.ts +3 -3
  11. package/dist/libraries/auth/repository.js +1 -5
  12. package/dist/libraries/auth/repository.js.map +1 -1
  13. package/dist/libraries/configuration/index.d.ts +2 -2
  14. package/dist/libraries/configuration/index.js +20 -20
  15. package/dist/libraries/configuration/index.js.map +1 -1
  16. package/dist/libraries/configuration/types/EnvironmentConfigurationType.js.map +1 -1
  17. package/dist/libraries/dispatcher/index.d.ts +2 -2
  18. package/dist/libraries/dispatcher/index.js +2 -2
  19. package/dist/libraries/dispatcher/index.js.map +1 -1
  20. package/dist/libraries/event/BaseEvent.js.map +1 -1
  21. package/dist/libraries/event/decorators/metadata.d.ts +1 -1
  22. package/dist/libraries/event/decorators/metadata.js.map +1 -1
  23. package/dist/libraries/event/decorators/subscribe.js.map +1 -1
  24. package/dist/libraries/event/index.d.ts +1 -1
  25. package/dist/libraries/event/index.js +6 -6
  26. package/dist/libraries/event/index.js.map +1 -1
  27. package/dist/libraries/event/registry/SubscriptionRegistry.js.map +1 -1
  28. package/dist/libraries/event/test/OrderCreationEvent.d.ts +1 -1
  29. package/dist/libraries/event/test/OrderCreationEvent.js +9 -6
  30. package/dist/libraries/event/test/OrderCreationEvent.js.map +1 -1
  31. package/dist/libraries/firebase/index.d.ts +1 -1
  32. package/dist/libraries/firebase/index.js.map +1 -1
  33. package/dist/libraries/index.d.ts +9 -9
  34. package/dist/libraries/index.js +1 -1
  35. package/dist/libraries/index.js.map +1 -1
  36. package/dist/libraries/logger/index.d.ts +1 -1
  37. package/dist/libraries/logger/index.js +9 -9
  38. package/dist/libraries/logger/index.js.map +1 -1
  39. package/dist/libraries/mongo/index.d.ts +1 -1
  40. package/dist/libraries/mongo/index.js +11 -11
  41. package/dist/libraries/mongo/index.js.map +1 -1
  42. package/dist/libraries/mongo/models/activity-log.model.d.ts +1 -2
  43. package/dist/libraries/mongo/models/activity-log.model.js +1 -2
  44. package/dist/libraries/mongo/models/activity-log.model.js.map +1 -1
  45. package/dist/libraries/mongo/models/admin-access-control.model.d.ts +1 -2
  46. package/dist/libraries/mongo/models/admin-access-control.model.js +1 -2
  47. package/dist/libraries/mongo/models/admin-access-control.model.js.map +1 -1
  48. package/dist/libraries/mongo/models/admin.model.d.ts +3 -2
  49. package/dist/libraries/mongo/models/admin.model.js +20 -3
  50. package/dist/libraries/mongo/models/admin.model.js.map +1 -1
  51. package/dist/libraries/mongo/models/app-screen-setting.model.d.ts +0 -2
  52. package/dist/libraries/mongo/models/app-screen-setting.model.js +1 -2
  53. package/dist/libraries/mongo/models/app-screen-setting.model.js.map +1 -1
  54. package/dist/libraries/mongo/models/attribute.model.d.ts +1 -2
  55. package/dist/libraries/mongo/models/attribute.model.js +1 -2
  56. package/dist/libraries/mongo/models/attribute.model.js.map +1 -1
  57. package/dist/libraries/mongo/models/banner.model.d.ts +1 -2
  58. package/dist/libraries/mongo/models/banner.model.js +1 -2
  59. package/dist/libraries/mongo/models/banner.model.js.map +1 -1
  60. package/dist/libraries/mongo/models/base/base-coupon.model.js.map +1 -1
  61. package/dist/libraries/mongo/models/base/base-review.model.d.ts +1 -1
  62. package/dist/libraries/mongo/models/base/base-review.model.js +2 -2
  63. package/dist/libraries/mongo/models/base/base-review.model.js.map +1 -1
  64. package/dist/libraries/mongo/models/bob-finance.model.d.ts +2 -3
  65. package/dist/libraries/mongo/models/bob-finance.model.js +2 -3
  66. package/dist/libraries/mongo/models/bob-finance.model.js.map +1 -1
  67. package/dist/libraries/mongo/models/brand.model.d.ts +0 -2
  68. package/dist/libraries/mongo/models/brand.model.js +1 -2
  69. package/dist/libraries/mongo/models/brand.model.js.map +1 -1
  70. package/dist/libraries/mongo/models/category.model.d.ts +1 -2
  71. package/dist/libraries/mongo/models/category.model.js +1 -2
  72. package/dist/libraries/mongo/models/category.model.js.map +1 -1
  73. package/dist/libraries/mongo/models/core-auth-identity.model.js.map +1 -1
  74. package/dist/libraries/mongo/models/core-user.model.js.map +1 -1
  75. package/dist/libraries/mongo/models/counter.model.d.ts +0 -2
  76. package/dist/libraries/mongo/models/counter.model.js +1 -2
  77. package/dist/libraries/mongo/models/counter.model.js.map +1 -1
  78. package/dist/libraries/mongo/models/coupon.model.d.ts +0 -2
  79. package/dist/libraries/mongo/models/coupon.model.js +4 -3
  80. package/dist/libraries/mongo/models/coupon.model.js.map +1 -1
  81. package/dist/libraries/mongo/models/deal-setting.model.d.ts +0 -2
  82. package/dist/libraries/mongo/models/deal-setting.model.js +1 -2
  83. package/dist/libraries/mongo/models/deal-setting.model.js.map +1 -1
  84. package/dist/libraries/mongo/models/dish.model.d.ts +1 -2
  85. package/dist/libraries/mongo/models/dish.model.js +1 -2
  86. package/dist/libraries/mongo/models/dish.model.js.map +1 -1
  87. package/dist/libraries/mongo/models/embedded/attribute-item.model.js.map +1 -1
  88. package/dist/libraries/mongo/models/embedded/attribute-map.model.js.map +1 -1
  89. package/dist/libraries/mongo/models/embedded/business-development-setting.model.js.map +1 -1
  90. package/dist/libraries/mongo/models/embedded/charge-setting.model.js.map +1 -1
  91. package/dist/libraries/mongo/models/embedded/charge.model.js.map +1 -1
  92. package/dist/libraries/mongo/models/embedded/courier-setting.model.js.map +1 -1
  93. package/dist/libraries/mongo/models/embedded/currency-setting.model.js.map +1 -1
  94. package/dist/libraries/mongo/models/embedded/currency.model.js.map +1 -1
  95. package/dist/libraries/mongo/models/embedded/featured-item.mode.js.map +1 -1
  96. package/dist/libraries/mongo/models/embedded/otp-fields.model.js.map +1 -1
  97. package/dist/libraries/mongo/models/embedded/package.model.js.map +1 -1
  98. package/dist/libraries/mongo/models/embedded/parent-document.model.js.map +1 -1
  99. package/dist/libraries/mongo/models/embedded/payout-setting.model.js.map +1 -1
  100. package/dist/libraries/mongo/models/embedded/price.model.js.map +1 -1
  101. package/dist/libraries/mongo/models/embedded/product-nutrition.model.js.map +1 -1
  102. package/dist/libraries/mongo/models/embedded/referral-discount-config.model.js.map +1 -1
  103. package/dist/libraries/mongo/models/embedded/rider-setting.model.js.map +1 -1
  104. package/dist/libraries/mongo/models/embedded/service-fee-setting.model.js.map +1 -1
  105. package/dist/libraries/mongo/models/embedded/shop-document.model.js.map +1 -1
  106. package/dist/libraries/mongo/models/embedded/subscription-summary.model.js.map +1 -1
  107. package/dist/libraries/mongo/models/embedded/zone-geometry.mode.js.map +1 -1
  108. package/dist/libraries/mongo/models/faq.model.d.ts +0 -2
  109. package/dist/libraries/mongo/models/faq.model.js +1 -2
  110. package/dist/libraries/mongo/models/faq.model.js.map +1 -1
  111. package/dist/libraries/mongo/models/favourite.model.d.ts +3 -4
  112. package/dist/libraries/mongo/models/favourite.model.js +3 -4
  113. package/dist/libraries/mongo/models/favourite.model.js.map +1 -1
  114. package/dist/libraries/mongo/models/featured-setting.model.d.ts +0 -2
  115. package/dist/libraries/mongo/models/featured-setting.model.js +1 -2
  116. package/dist/libraries/mongo/models/featured-setting.model.js.map +1 -1
  117. package/dist/libraries/mongo/models/filter-container.model.d.ts +0 -1
  118. package/dist/libraries/mongo/models/filter-container.model.js +1 -2
  119. package/dist/libraries/mongo/models/filter-container.model.js.map +1 -1
  120. package/dist/libraries/mongo/models/index.d.ts +114 -7
  121. package/dist/libraries/mongo/models/index.js +118 -7
  122. package/dist/libraries/mongo/models/index.js.map +1 -1
  123. package/dist/libraries/mongo/models/list-container.model.d.ts +2 -3
  124. package/dist/libraries/mongo/models/list-container.model.js +2 -3
  125. package/dist/libraries/mongo/models/list-container.model.js.map +1 -1
  126. package/dist/libraries/mongo/models/loyalty-point-category.model.d.ts +0 -2
  127. package/dist/libraries/mongo/models/loyalty-point-category.model.js +1 -2
  128. package/dist/libraries/mongo/models/loyalty-point-category.model.js.map +1 -1
  129. package/dist/libraries/mongo/models/loyalty-point-setting.model.d.ts +0 -2
  130. package/dist/libraries/mongo/models/loyalty-point-setting.model.js +1 -2
  131. package/dist/libraries/mongo/models/loyalty-point-setting.model.js.map +1 -1
  132. package/dist/libraries/mongo/models/marketing.model.d.ts +2 -3
  133. package/dist/libraries/mongo/models/marketing.model.js +13 -5
  134. package/dist/libraries/mongo/models/marketing.model.js.map +1 -1
  135. package/dist/libraries/mongo/models/meal-plan.model.d.ts +0 -2
  136. package/dist/libraries/mongo/models/meal-plan.model.js +1 -2
  137. package/dist/libraries/mongo/models/meal-plan.model.js.map +1 -1
  138. package/dist/libraries/mongo/models/notification.model.d.ts +8 -9
  139. package/dist/libraries/mongo/models/notification.model.js +8 -9
  140. package/dist/libraries/mongo/models/notification.model.js.map +1 -1
  141. package/dist/libraries/mongo/models/nutrition.model.d.ts +0 -2
  142. package/dist/libraries/mongo/models/nutrition.model.js +1 -2
  143. package/dist/libraries/mongo/models/nutrition.model.js.map +1 -1
  144. package/dist/libraries/mongo/models/order.model.js.map +1 -1
  145. package/dist/libraries/mongo/models/parent.model.d.ts +3 -4
  146. package/dist/libraries/mongo/models/parent.model.js +8 -5
  147. package/dist/libraries/mongo/models/parent.model.js.map +1 -1
  148. package/dist/libraries/mongo/models/payout.model.js.map +1 -1
  149. package/dist/libraries/mongo/models/product-marketing.model.d.ts +3 -4
  150. package/dist/libraries/mongo/models/product-marketing.model.js +3 -4
  151. package/dist/libraries/mongo/models/product-marketing.model.js.map +1 -1
  152. package/dist/libraries/mongo/models/product.model.d.ts +1 -3
  153. package/dist/libraries/mongo/models/product.model.js +8 -4
  154. package/dist/libraries/mongo/models/product.model.js.map +1 -1
  155. package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.d.ts +1 -2
  156. package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.js +1 -2
  157. package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.js.map +1 -1
  158. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +1 -1
  159. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -1
  160. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +1 -1
  161. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +1 -1
  162. package/dist/libraries/mongo/models/providers/custom-coupon.model.d.ts +1 -2
  163. package/dist/libraries/mongo/models/providers/custom-coupon.model.js +1 -3
  164. package/dist/libraries/mongo/models/providers/custom-coupon.model.js.map +1 -1
  165. package/dist/libraries/mongo/models/providers/discount-marketing.model.d.ts +1 -2
  166. package/dist/libraries/mongo/models/providers/discount-marketing.model.js +1 -2
  167. package/dist/libraries/mongo/models/providers/discount-marketing.model.js.map +1 -1
  168. package/dist/libraries/mongo/models/providers/featured-marketing.model.d.ts +0 -2
  169. package/dist/libraries/mongo/models/providers/featured-marketing.model.js +1 -2
  170. package/dist/libraries/mongo/models/providers/featured-marketing.model.js.map +1 -1
  171. package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.d.ts +0 -2
  172. package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.js +1 -2
  173. package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.js.map +1 -1
  174. package/dist/libraries/mongo/models/providers/global-coupon.model.d.ts +0 -2
  175. package/dist/libraries/mongo/models/providers/global-coupon.model.js +1 -4
  176. package/dist/libraries/mongo/models/providers/global-coupon.model.js.map +1 -1
  177. package/dist/libraries/mongo/models/providers/individual-store-coupon.model.d.ts +1 -2
  178. package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js +1 -3
  179. package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js.map +1 -1
  180. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.d.ts +1 -2
  181. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js +1 -3
  182. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js.map +1 -1
  183. package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.d.ts +1 -2
  184. package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.js +1 -2
  185. package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.js.map +1 -1
  186. package/dist/libraries/mongo/models/providers/punch-marketing.model.d.ts +0 -2
  187. package/dist/libraries/mongo/models/providers/punch-marketing.model.js +1 -2
  188. package/dist/libraries/mongo/models/providers/punch-marketing.model.js.map +1 -1
  189. package/dist/libraries/mongo/models/providers/referral-code-coupon.model.d.ts +1 -2
  190. package/dist/libraries/mongo/models/providers/referral-code-coupon.model.js +1 -2
  191. package/dist/libraries/mongo/models/providers/referral-code-coupon.model.js.map +1 -1
  192. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +1 -2
  193. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js +1 -3
  194. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +1 -1
  195. package/dist/libraries/mongo/models/punch-marketing-history.model.d.ts +1 -2
  196. package/dist/libraries/mongo/models/punch-marketing-history.model.js +1 -2
  197. package/dist/libraries/mongo/models/punch-marketing-history.model.js.map +1 -1
  198. package/dist/libraries/mongo/models/rating-setting.model.d.ts +0 -2
  199. package/dist/libraries/mongo/models/rating-setting.model.js +1 -2
  200. package/dist/libraries/mongo/models/rating-setting.model.js.map +1 -1
  201. package/dist/libraries/mongo/models/referral-setting.model.d.ts +0 -2
  202. package/dist/libraries/mongo/models/referral-setting.model.js +1 -2
  203. package/dist/libraries/mongo/models/referral-setting.model.js.map +1 -1
  204. package/dist/libraries/mongo/models/request-area.model.d.ts +1 -2
  205. package/dist/libraries/mongo/models/request-area.model.js +1 -2
  206. package/dist/libraries/mongo/models/request-area.model.js.map +1 -1
  207. package/dist/libraries/mongo/models/rider-review.model.d.ts +1 -2
  208. package/dist/libraries/mongo/models/rider-review.model.js +1 -2
  209. package/dist/libraries/mongo/models/rider-review.model.js.map +1 -1
  210. package/dist/libraries/mongo/models/rider.model.js.map +1 -1
  211. package/dist/libraries/mongo/models/role.model.d.ts +0 -2
  212. package/dist/libraries/mongo/models/role.model.js +1 -3
  213. package/dist/libraries/mongo/models/role.model.js.map +1 -1
  214. package/dist/libraries/mongo/models/setting.model.d.ts +6 -8
  215. package/dist/libraries/mongo/models/setting.model.js +7 -8
  216. package/dist/libraries/mongo/models/setting.model.js.map +1 -1
  217. package/dist/libraries/mongo/models/shared/address.model.d.ts +1 -1
  218. package/dist/libraries/mongo/models/shared/address.model.js.map +1 -1
  219. package/dist/libraries/mongo/models/shared/duration.model.js.map +1 -1
  220. package/dist/libraries/mongo/models/shared/work-hour.model.d.ts +1 -1
  221. package/dist/libraries/mongo/models/shared/work-hour.model.js +1 -1
  222. package/dist/libraries/mongo/models/shared/work-hour.model.js.map +1 -1
  223. package/dist/libraries/mongo/models/shop-access-control.model.d.ts +1 -2
  224. package/dist/libraries/mongo/models/shop-access-control.model.js +1 -2
  225. package/dist/libraries/mongo/models/shop-access-control.model.js.map +1 -1
  226. package/dist/libraries/mongo/models/shop-category.model.d.ts +2 -3
  227. package/dist/libraries/mongo/models/shop-category.model.js +2 -3
  228. package/dist/libraries/mongo/models/shop-category.model.js.map +1 -1
  229. package/dist/libraries/mongo/models/shop-meal-plan.model.d.ts +2 -3
  230. package/dist/libraries/mongo/models/shop-meal-plan.model.js +2 -3
  231. package/dist/libraries/mongo/models/shop-meal-plan.model.js.map +1 -1
  232. package/dist/libraries/mongo/models/shop-product.model.d.ts +4 -5
  233. package/dist/libraries/mongo/models/shop-product.model.js +4 -5
  234. package/dist/libraries/mongo/models/shop-product.model.js.map +1 -1
  235. package/dist/libraries/mongo/models/shop-review.model.d.ts +1 -2
  236. package/dist/libraries/mongo/models/shop-review.model.js +1 -2
  237. package/dist/libraries/mongo/models/shop-review.model.js.map +1 -1
  238. package/dist/libraries/mongo/models/shop.model.d.ts +3 -4
  239. package/dist/libraries/mongo/models/shop.model.js +12 -6
  240. package/dist/libraries/mongo/models/shop.model.js.map +1 -1
  241. package/dist/libraries/mongo/models/subscription-setting.model.d.ts +0 -2
  242. package/dist/libraries/mongo/models/subscription-setting.model.js +7 -3
  243. package/dist/libraries/mongo/models/subscription-setting.model.js.map +1 -1
  244. package/dist/libraries/mongo/models/subscription.model.d.ts +3 -4
  245. package/dist/libraries/mongo/models/subscription.model.js +13 -6
  246. package/dist/libraries/mongo/models/subscription.model.js.map +1 -1
  247. package/dist/libraries/mongo/models/tag.model.d.ts +0 -2
  248. package/dist/libraries/mongo/models/tag.model.js +1 -2
  249. package/dist/libraries/mongo/models/tag.model.js.map +1 -1
  250. package/dist/libraries/mongo/models/transaction.model.js.map +1 -1
  251. package/dist/libraries/mongo/models/zone.model.d.ts +0 -2
  252. package/dist/libraries/mongo/models/zone.model.js +1 -2
  253. package/dist/libraries/mongo/models/zone.model.js.map +1 -1
  254. package/dist/libraries/mongo/plugins/soft-delete-plugin.d.ts +8 -7
  255. package/dist/libraries/mongo/plugins/soft-delete-plugin.js +6 -6
  256. package/dist/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -1
  257. package/dist/libraries/redis/index.d.ts +1 -1
  258. package/dist/libraries/redis/index.js +4 -1
  259. package/dist/libraries/redis/index.js.map +1 -1
  260. package/dist/libraries/secrets/index.d.ts +2 -2
  261. package/dist/libraries/secrets/index.js +13 -13
  262. package/dist/libraries/secrets/index.js.map +1 -1
  263. package/dist/libraries/trpc/context.d.ts +4 -4
  264. package/dist/libraries/trpc/context.js +1 -1
  265. package/dist/libraries/trpc/context.js.map +1 -1
  266. package/dist/libraries/trpc/index.js.map +1 -1
  267. package/dist/libraries/trpc/middlewares/auth.d.ts +1 -1
  268. package/dist/libraries/trpc/middlewares/auth.js +12 -13
  269. package/dist/libraries/trpc/middlewares/auth.js.map +1 -1
  270. package/dist/libraries/trpc/middlewares/cors.d.ts +12 -0
  271. package/dist/libraries/trpc/middlewares/cors.js +50 -0
  272. package/dist/libraries/trpc/middlewares/cors.js.map +1 -0
  273. package/dist/libraries/twilio/index.d.ts +1 -1
  274. package/dist/libraries/twilio/index.js +2 -3
  275. package/dist/libraries/twilio/index.js.map +1 -1
  276. package/dist/libraries/upload/index.js +3 -3
  277. package/dist/libraries/upload/index.js.map +1 -1
  278. package/dist/utilities/enum.js.map +1 -1
  279. package/dist/utilities/error-handler.js.map +1 -1
  280. package/dist/utilities/error-middleware.js.map +1 -1
  281. package/dist/utilities/pagination.d.ts +4 -4
  282. package/dist/utilities/pagination.js +3 -8
  283. package/dist/utilities/pagination.js.map +1 -1
  284. package/dist/utilities/transformers.d.ts +2 -2
  285. package/dist/utilities/transformers.js +6 -6
  286. package/dist/utilities/transformers.js.map +1 -1
  287. package/dist/utilities/validation/common-validation.js.map +1 -1
  288. package/dist/utilities/validation/global-validation.js.map +1 -1
  289. package/dist/utilities/validation/index.js.map +1 -1
  290. package/package.json +44 -41
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/configuration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mCAA+B;AAC/B,uFAAkF;AA6B3E,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAEZ,eAAe,GAAyB;QACrD,QAAQ,EAAE,mHAAmH;QAC7H,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE;YACX,KAAK,EAAE;gBACH,2BAA2B,EAAE;oBACzB,SAAS,EAAE,gBAAgB;oBAC3B,UAAU,EAAE,ssDAAssD;oBACltD,WAAW,EAAE,kDAAkD;iBAClE;aACJ;YACD,IAAI,EAAE;gBACF,2BAA2B,EAAE;oBACzB,SAAS,EAAE,gBAAgB;oBAC3B,UAAU,EAAE,ssDAAssD;oBACltD,WAAW,EAAE,gEAAgE;iBAChF;gBACD,oBAAoB,EAAE,WAAW;aACpC;YACD,KAAK,EAAE;gBACH,2BAA2B,EAAE;oBACzB,SAAS,EAAE,kBAAkB;oBAC7B,UAAU,EAAE,ssDAAssD;oBACltD,WAAW,EAAE,kEAAkE;iBAClF;gBACD,oBAAoB,EAAE,YAAY;aACrC;YACD,IAAI,EAAE;gBACF,2BAA2B,EAAE;oBACzB,SAAS,EAAE,WAAW;oBACtB,UAAU,EAAE,ssDAAssD;oBACltD,WAAW,EAAE,2DAA2D;iBAC3E;gBACD,oBAAoB,EAAE,WAAW;aACpC;SACJ;QACD,WAAW,EAAE,2DAA4B,CAAC,GAAG;KAChD,CAAC;IAEe,QAAQ,CAAuB;IAEhD,YAAY,OAA8B;QACtC,IAAI,CAAC,QAAQ,GAAG;YACZ,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,OAAO;SACb,CAAC;IACN,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ,CAAA;AAtDY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,gBAAO,GAAE;;GACG,oBAAoB,CAsDhC","sourcesContent":["import {FirebaseOptions} from \"firebase/app\";\r\nimport {ServiceAccount} from \"firebase-admin\";\r\nimport {Service} from \"typedi\";\r\nimport {EnvironmentConfigurationType} from \"./types/EnvironmentConfigurationType\";\r\n\r\nexport interface ConfigurationOptions {\r\n tenet?: string;\r\n redisURL?: string;\r\n instanceType?: string;\r\n firebaseAdmin?: {\r\n super: {\r\n firebaseAdminServiceAccount: ServiceAccount,\r\n firebaseAdminAppName?: string,\r\n },\r\n user: {\r\n firebaseAdminServiceAccount: ServiceAccount,\r\n firebaseAdminAppName?: string,\r\n },\r\n shop: {\r\n firebaseAdminServiceAccount: ServiceAccount,\r\n firebaseAdminAppName?: string,\r\n },\r\n rider: {\r\n firebaseAdminServiceAccount: ServiceAccount,\r\n firebaseAdminAppName?: string,\r\n }\r\n },\r\n environment: EnvironmentConfigurationType\r\n}\r\n\r\n\r\n@Service()\r\nexport class ConfigurationService {\r\n\r\n private readonly _defaultOptions: ConfigurationOptions = {\r\n redisURL: \"redis://default:8RCVCiwXRMo6isHgJanL1pE86cRt29YP@redis-12296.fcrce173.eu-west-1-1.ec2.redns.redis-cloud.com:12296\",\r\n tenet: \"default\",\r\n instanceType: \"unknown\",\r\n firebaseAdmin: {\r\n super: {\r\n firebaseAdminServiceAccount: {\r\n projectId: \"for-poc-325210\",\r\n privateKey: \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5aI2nsMHkJbZf\\nem9ycpd57RjRDsBt9Nb/uMjsFcBRuAKcKgh4lgNO6ZmcRwK10IRygCmbY5XxmtVA\\nq9CT5tYlVN4SDzN1y4lL8/CL5owW2RZOURKcM0lsNOB9uGwkv1t3bfbBNc2hh9JX\\n72t7URAtrtPAkUxtgEPm6WL03uNu8KCZ0G9uoA/oM7o8OIGkjC575D9V6QjYC9fn\\nPjBRQ3K42fUWFmf31jtUBSHB0xE5qJI+MOi+OcXAJLxKQBbW+vqr2KfMwVYpNclp\\nk0Ptfe8xZxVfKEJAAkacQ36Hp14wFK/q+2mmhOQlbruksOZCpaIkh5IdvGkkG8ZH\\n566FgFHDAgMBAAECggEAJkuuqprLSZTyiOEQoOqDWBc9X3z1CSEfwV0I/x51BUwF\\nGf1il4mgsE12wX03VZd2q/HF5kcZAvjQoFV8tPfidn6DieZi4itCthHyNutNNzDq\\ntw1u0x2SxktbrQwJJkPyIAZyB7FVwk38B9a3dBanyU/JhAZe62UpYUoGev6IqnKm\\nIiw7r4lc47XgJNrDjXhCtTwHBmXA6qt/HrBcu4fSZlnZMhvsgnO6iafXaBo15Rpy\\nyVBVCPCGJBqpbqI8w3lVTcUqvD2DS+wGJAZSNFagt5qg+vCN8xVUsyQKrM1qIXZm\\nxvPX5oE6CWaD5a7yzpwqKLghKIpsb+3gezyQiFw5rQKBgQDh9U+VdFipH2o8Rezd\\n2d9Kp+ya8+kAog4NMeMyD/xyvKbmv6hW2SZqLhc5MacO0GiCnFR+dMLJxRBGnn+e\\ngYP26OE2fG9Kn7JrSGafu7siKnonfaN/1IcHcZe/77P/s/o2lNxaVl9i1iPQlzr/\\nN8RRaYa+pvazR4VNMS+Z6keD5QKBgQDSDxfKGwOt/GlPKRDmw3bKD4tseK36JsJw\\n5u7im6CpiTEgSSbOCr1ggITv6VbHUK/Nv3mExJH6uuzd9szb94JUAxGbZ16Liwn4\\nse+K2XlnLEnqxzFSkprOJAJkfbffrH+IxW8gNrK/UbjKT/xgEVH1ZeKUMPLCQG+y\\nLAW6NY50hwKBgCYQTPfAQa87u4mrvdsheJv67cCslfOlWPigDsXAK6aoYPU+E/2N\\nVwtL+F2KH7o/IVvfOdyTjryula9Pw+/PoYtWb5neHGFVxZiM+byuwzdeMHW2lHRU\\nOOroF8gdeRT6HIxVR0lwg2EC8cWRtD6KBmgwfqJfPe+1fJ8kSgCDlsiBAoGBAI1D\\nOyNeYW4bBhMHMeeOYY9nPsL2sUE92Zslolbgg/4fVds5dpAvpsWECGJy0Dn/6Ap8\\njtMbgnRUSsDGnWP8IjgvTCLvNCSxn0YRG1+L+tnIbfkmdePq1ZJ1oupDpWkVTzsC\\nU0Ydor2IzrW3bqiIXU6jculntYmu3a67biqYo7F3AoGBALoinJdtNLLqOqf/MumD\\n+YmbzHqsuID2dGyct7GESIBx3a67hwyJQfCK8nyHNyWN7lFg+H1rZlu1Cjmo0hlu\\nOxzdbWON5Rg2n3TbGw3AM1M55khsedbmm8MOSRdhIkz5RuYESSNAvVC6CBcfg5gb\\nCPq8jrR+oljMjBwAaQmFlPF7\\n-----END PRIVATE KEY-----\\n\",\r\n clientEmail: \"lyxa-core@for-poc-325210.iam.gserviceaccount.com\"\r\n }\r\n },\r\n user: {\r\n firebaseAdminServiceAccount: {\r\n projectId: \"for-poc-325210\",\r\n privateKey: \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9yUnAC2pQ+dhe\\ndJVMS7RQeQdQO7JhT0BXz0MbpCXlEdc3j/GQAY9UfKxQLg1VZh+4An8aUZevOy/v\\nUaHsvqSWcWg7UHTOjk861brpjdjhM4S4ahwU2NyVI/o0Bpc5ob4nhHebny9FGqEP\\nauwUXiVw7UjA/yGeTN6delZwCxejHxI6zDjFQveo8Ljkfu49CMyyf1XhN9q0So4Q\\n2pZ3Xmdz0fZGykSGT9TVBDnPE8Zc3VCQ1XQ7aEKr0e9L+YYidw+iurSNwQSo72uk\\nf/G2wCtlAaoDh0lKObEbi1b925BOthP2XpmQ7Kv+iWVFouCY54Md56FxtjKOyYll\\n0nS6MkAJAgMBAAECggEAEeee83UoPjQ6BVxAlxJ31BU8+0TshOlwB7C8MywC7rfm\\nit2Dw8sf4W/DJmvX0nAYazjiEqKyuaOO98gm64HHX5GarKjgIjoTD7kJAZ6CIOnm\\nOis5k75rXg8nPFgIVZW0rb/9tEL5984ltoGG/PtuUxdxwxJ20ptML8VySO8E93yt\\n203zMlm/QdlUBBO+XDlpsEoXvUjQ6MzmCSF2LCFD1uBVmj0sVFuPt5fyodhV8gQM\\nvDfG4duZ7AE6Nbc5ANgJw8fHMdx+AS+I0P50et936tuFOOeHUWGbg1RMOM1GrWLZ\\nH83zfHp33R3rlUgleZetKh/5vLaW29MdJmACk2Z14QKBgQDtrywbz60ULHiyNvDP\\nHFweJF/9EBq6MZeo/lYrBDZXuP3sBM7uUa+oYzYad3Lsxo1Vz/Zqb6atWX/BRbHT\\nfyy6yTGPRn6geaqYEFuFwfBau3qju6DRwoqplVVlLo8lgOQzIDgXkk0nt7C/bM87\\nmkxQI6Xi0TAjIpd3k6miw52laQKBgQDMaTnlL2OGlJlcycBZGxrKdsIwvK2jCLPi\\njPTKM163htuzaItEVpJaCPjWaU3k3E1UXjFp9oxxvtDZOZP+DcFwGKvBe2vntFYz\\nafCNlYK7wT/t7ChlCUSXuU/bSrXe4Wc4KGnJ6YzNmykMJku2b845layB1PxEhHHA\\nRl2NEx9RoQKBgHJvETx+m2UIGEAtZXlBvTQh7TkIxOV6NPt/IHtrdsJ7ZX15vytM\\nltbqlUTe160Z1zhGfOw3vzbczT5/UKN0KlPvw/WoShT3HuRBk97tRcxZUS19i2sS\\nT/Jf3JJvfSngSX439+mZXZ5OuUEgoRGgMzeuQhLXBmcUI3rF1DlyFvdpAoGAfmq5\\nbn8fSzUNn+/6MGFt8Tb/JAscS87vCTZpkb+xXUlfCJaoQqxTuLEBzAC2Nsr0XDAg\\n2UqsUxBSs3VDjIRPVJc9adx9wH+sLAHhzn5fquR6OBesZ8gSjs8BjzqmPeAi6P09\\nZ60z8lh6S1RH0N1WqhBh7q2dEnbirqoV41CnNuECgYEAr26tTBIvEeZY3gmAmOVl\\nCw6gkxaHdzZplFl8Qnv272VllQpwbR1zaF6RfWsTEsrhrT+VtrZO6DDh9O6iJkbB\\n7Re3BnMOhGfUS3HlPCFnkdodeaoeVpg4llYwuunmyj+SmNxnC56TiznML1owmUYd\\ndLFeY+JZ0GpSBO0qYlY5QGk=\\n-----END PRIVATE KEY-----\\n\",\r\n clientEmail: \"firebase-adminsdk-onusy@for-poc-325210.iam.gserviceaccount.com\"\r\n },\r\n firebaseAdminAppName: \"lyxa-user\"\r\n },\r\n rider: {\r\n firebaseAdminServiceAccount: {\r\n projectId: \"lyxa-rider-88939\",\r\n privateKey: \"-----BEGIN PRIVATE KEY-----\\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC08zRqUjHFO7Ir\\n4UNHIjxVp7oJkK3rrV1UGfHeHsijm6CSWjViVqsFKUZliYXTjg9S8rIMmC3OAMrh\\n5FTdNfDell8YHPbVRWZ0OFBNWglvKMgMKMoyQuBKtvEAdZwgVMreOf+51QlZnPxy\\nTBNh4Du2ahb8TtAjwxXt7CgMjNIfoMjQFJTrBTAmsxhtOEpYvPU2iX+OtAkHgrs1\\nNeWpBGpN4GSwOfA8MdgvorLYbeRDnkY4cH/ReNymTW9nbX1vgsx2AE1NR5PTNxv0\\nIuVZQWxMMGPnT5bjzAlCR4z/Nbe89V2zl5kFtBxDBCDqxp+qZxCinJj1QqwC5qzZ\\nYLbNVKVPAgMBAAECggEAEHEGwrW24v/NF9KZ3S/zASoX1oBTD+vf4+E69QlMBshV\\nxeaKHOYuF5khVd7cjj/wDC6ULLPJJFjga7e7rvaUl80G//cQcIl5STcdXiHqYzN2\\nldrroGHWOm5hUJQ0fEroEgV9bc0PJ+7X5f9xRWlCqQz+YKzn7vqYwVZovyyDzS6/\\nTus2SeWg0Qh1Uw4+FqveEqGBAMF9COTYJ/rZ5sDE34cYRJeZOgVDeSanF/CW6+VS\\nLT5+ysRS8xY/mUFIgs6zvJQr7whDj22OzvZr31LReNUl1IGI1V0wHxCJs3y934dq\\nuiAf4iX2w0uwiQs7+IQc6T6GhTEajWHSQqUtbDeecQKBgQDAW/mHk1PCCxZQtc6C\\nCkFYONeY0zz7JAk7AvcbeVB6icq9Zv/9botFOvJ/4dduN39+sO/SIvLV+zQzmUGA\\nygY58AQIqtYurIc8OjftQ5qZ6t9H1plmj/W+GVAYWadA68P95UBjwVcZySht47s/\\ngOje4TF9wXVn9oTuP8XmLpce/wKBgQDw0Onl7EVmkgnyHl1qomqHR+2+xNDZNYMv\\njdX0tq2KOXa6JpbO32Yf7LVKQo7bmSOy3M1kn2+lwCXsDufr/a+1GNRxuPucsYiM\\nlQeLEKRqfNUni1NnbIUOkZV0fO0Me76Ow5BKqEWrda0E5k9g46p8EgVO5zWUE00w\\nZZFTUn7JsQKBgDh9SiREYb6EXwNIwOJzfIkZ+EaLEkd2Z7eKwWKyF65EtOM2Ukrs\\nob2s9/YSLp/RcIGWGHePh9zLLqNQiGn36igtkiGxecCvLe/D8RSeW9KDpRqFrPrv\\nn+05pcng2js4gZAYOPaSmq+Z4WOUEzMs+jYpz8zseTwUqykEVWuplvulAoGAF8y9\\n4RBZx4pVW01u9BP7LUWJlJoE/gKQ5YlCBP5s5kVJm5omu2lOwYb2X9F2JvPamFnE\\nHta3BQ2ZcdwDRcp7rA05KcgbbeAJ28L6zN6nMTMHKfJWGtmZyNfQioOyNdKhAaEI\\nSKiawhhOMjbEz5GQjtSFG8gz/l9t+IOBOlfj2fECgYBC8gGC7YHm+PvV5F1CVRZD\\nUYVlAnqOMJ1VvfTemW/kPzuCMd/JEKSE+b21h3rObMvUZU5AnkM3VT1+hDv6tyEt\\nblgh89YsHUor7wXSrYnVmYsrm91JABTWsLhLy92iqylg0xBs3Q5RGCt/s9f3YFFw\\nKghNmTDraGggnf5U/Z4LJw==\\n-----END PRIVATE KEY-----\\n\",\r\n clientEmail: \"firebase-adminsdk-qwhrd@lyxa-rider-88939.iam.gserviceaccount.com\"\r\n },\r\n firebaseAdminAppName: \"lyxa-rider\"\r\n },\r\n shop: {\r\n firebaseAdminServiceAccount: {\r\n projectId: \"lyxa-shop\",\r\n privateKey: \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTWaf/QGSjk7po\\nri+6Nzo/tep1UtgMSY4KscT3iCbepiAsw7C8NCQqz3wYEAFRwywbaCwUcUs5KUC7\\n/e9TvpSQQksu10P9uP+c7wnAy+l0ay/15vWUV0usmDhMMvfjtDwS2RYTMEAdNUiZ\\nOuMC3/DDCBHt0SC5WCNzz11jj/n5bdVOS02qHd8V/lbd46iVEYfFswkI5NBgV7CY\\nnR2CoVcakPIeu9kEKdjXsJvf8+zCYtXPaFvcubQcnybOcg6usU+AHD1iwCRd6BrK\\n2PpM3gy/eASLJtzg/JoU0CgqJICmfR8LvGk6iHTp7VMfPuCfggwYtO3W1kSHuW4I\\nswbXYOJbAgMBAAECggEAMHKZ5xIsv66KiZp8SFSGnrolv7U430AxNlRf0Vo9hsZQ\\nE9Lb/Zh6PfIIAUAR/VsfDj1H9XuvAbBqLW3dYbYLOjJoJ5mi9VNmDORiuPZFUrGL\\ncfP6kYGdUDgol5cLagAT0UJAJC/oUom3VaDBDxSkjSCZc4l/1dzVa6O6RatoYvuW\\nqtJa5WzPH6flqj9HuFZaaNSZKXSYLwMeQC7bzxjbX0lB6b1WM2EIxQopeewrSfKg\\nvaw7zYHnu9cO6oA6I4A3VXhySp3G2VIMOIezfI24mP2Bnzori6xCVXcM7R1B2Trr\\nlFUrdXb9Rp3ZR0Ul0jSqCmopmMPVgob8lyHhiqk5+QKBgQDd/PcIRP7OE0ZnfXtd\\nxWMz1ggp9ub6bN/mFxw/OoyEVSfmlshDCvEeqoo2DxWGC+/0uiGuPHnDKDX+R0Ho\\nqmlWcVPTSBmrQvi3+VBKfr6ZCwxoutCQo3SMlEMvqHDkjGhAsDg/yjkI8yS5jqZ5\\nXtG+dYQpd9qY3t46Uar1+7lpJwKBgQDzu3CzElfr3xHAEdE+1pkiPixPuW+fHw1v\\nwoc5e7hJA1Mtu0Gdj7g41mF37bUXYxIg3FgV5sS76XCxw1a3plj/y0n+qZXMq5xs\\nZwgqrh4APjVXVRp9SSOvEXT0NanhWKiHMNncvteqThSEal27MDghEzqDmebkuOII\\ng+KDmYp1rQKBgA0dhPrYGLXULbSvlTpVDydg3dqc28iv5gqSEvkpXGP1JAZbojlT\\nzCsjqEbJXVwuGF89IABLUmZVWdtMGnjEmLSivXEeMWYM7uTvte6wzlH8dR866leh\\nUKF9oPqP2RunsAEiaDBcokIFG4ZbBzrkfz/hcY2Bp0ig4kBP0un1lV7BAoGBAJ4L\\n4MOt1Gd2KetzYk0uGPS0fkVgSLpVB4B+EvO6f0CRMGHKOH00UdBBa8i50qEMtBes\\n6k2ha9cyQ8pxkYzbCIEuUJgbXbDvYyqEES6j435i2HH+FIRDZilC16T4G2Wt+PJZ\\nQhy7f9vGb9WBp7AXT35bGql1pdyQ6rl80+hkKv2tAoGAe4yFOvIdEEdgEokp5Dem\\nuPf1rikk5mYPMkXhrX0cH9Wd2rh9MiP2gJuL3PD3R9LLon+9EzdBs31MwpP9C06Y\\nZmnuEfgYIewBHZbpRO+nsGX+AK15gbJUNk1RbWmUU7AvkHyo4eE6NnNVbygxaFSk\\n0+8aYRpYzZRnyAn8Oo6o2No=\\n-----END PRIVATE KEY-----\\n\",\r\n clientEmail: \"firebase-adminsdk-w4v98@lyxa-shop.iam.gserviceaccount.com\"\r\n },\r\n firebaseAdminAppName: \"lyxa-shop\"\r\n },\r\n },\r\n environment: EnvironmentConfigurationType.DEV\r\n };\r\n\r\n private readonly _options: ConfigurationOptions;\r\n\r\n constructor(options?: ConfigurationOptions) {\r\n this._options = {\r\n ...this._defaultOptions,\r\n ...options,\r\n };\r\n }\r\n\r\n get options(): ConfigurationOptions {\r\n return this._options;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/configuration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mCAAiC;AACjC,uFAAoF;AA4B7E,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,eAAe,GAAyB;QACxD,QAAQ,EACP,mHAAmH;QACpH,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE;YACd,KAAK,EAAE;gBACN,2BAA2B,EAAE;oBAC5B,SAAS,EAAE,gBAAgB;oBAC3B,UAAU,EACT,ssDAAssD;oBACvsD,WAAW,EAAE,kDAAkD;iBAC/D;aACD;YACD,IAAI,EAAE;gBACL,2BAA2B,EAAE;oBAC5B,SAAS,EAAE,gBAAgB;oBAC3B,UAAU,EACT,ssDAAssD;oBACvsD,WAAW,EAAE,gEAAgE;iBAC7E;gBACD,oBAAoB,EAAE,WAAW;aACjC;YACD,KAAK,EAAE;gBACN,2BAA2B,EAAE;oBAC5B,SAAS,EAAE,kBAAkB;oBAC7B,UAAU,EACT,ssDAAssD;oBACvsD,WAAW,EAAE,kEAAkE;iBAC/E;gBACD,oBAAoB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE;gBACL,2BAA2B,EAAE;oBAC5B,SAAS,EAAE,WAAW;oBACtB,UAAU,EACT,ssDAAssD;oBACvsD,WAAW,EAAE,2DAA2D;iBACxE;gBACD,oBAAoB,EAAE,WAAW;aACjC;SACD;QACD,WAAW,EAAE,2DAA4B,CAAC,GAAG;KAC7C,CAAC;IAEe,QAAQ,CAAuB;IAEhD,YAAY,OAA8B;QACzC,IAAI,CAAC,QAAQ,GAAG;YACf,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,OAAO;SACV,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD,CAAA;AA1DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,gBAAO,GAAE;;GACG,oBAAoB,CA0DhC","sourcesContent":["import { FirebaseOptions } from 'firebase/app';\r\nimport { ServiceAccount } from 'firebase-admin';\r\nimport { Service } from 'typedi';\r\nimport { EnvironmentConfigurationType } from './types/EnvironmentConfigurationType';\r\n\r\nexport interface ConfigurationOptions {\r\n\ttenet?: string;\r\n\tredisURL?: string;\r\n\tinstanceType?: string;\r\n\tfirebaseAdmin?: {\r\n\t\tsuper: {\r\n\t\t\tfirebaseAdminServiceAccount: ServiceAccount;\r\n\t\t\tfirebaseAdminAppName?: string;\r\n\t\t};\r\n\t\tuser: {\r\n\t\t\tfirebaseAdminServiceAccount: ServiceAccount;\r\n\t\t\tfirebaseAdminAppName?: string;\r\n\t\t};\r\n\t\tshop: {\r\n\t\t\tfirebaseAdminServiceAccount: ServiceAccount;\r\n\t\t\tfirebaseAdminAppName?: string;\r\n\t\t};\r\n\t\trider: {\r\n\t\t\tfirebaseAdminServiceAccount: ServiceAccount;\r\n\t\t\tfirebaseAdminAppName?: string;\r\n\t\t};\r\n\t};\r\n\tenvironment: EnvironmentConfigurationType;\r\n}\r\n\r\n@Service()\r\nexport class ConfigurationService {\r\n\tprivate readonly _defaultOptions: ConfigurationOptions = {\r\n\t\tredisURL:\r\n\t\t\t'redis://default:8RCVCiwXRMo6isHgJanL1pE86cRt29YP@redis-12296.fcrce173.eu-west-1-1.ec2.redns.redis-cloud.com:12296',\r\n\t\ttenet: 'default',\r\n\t\tinstanceType: 'unknown',\r\n\t\tfirebaseAdmin: {\r\n\t\t\tsuper: {\r\n\t\t\t\tfirebaseAdminServiceAccount: {\r\n\t\t\t\t\tprojectId: 'for-poc-325210',\r\n\t\t\t\t\tprivateKey:\r\n\t\t\t\t\t\t'-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5aI2nsMHkJbZf\\nem9ycpd57RjRDsBt9Nb/uMjsFcBRuAKcKgh4lgNO6ZmcRwK10IRygCmbY5XxmtVA\\nq9CT5tYlVN4SDzN1y4lL8/CL5owW2RZOURKcM0lsNOB9uGwkv1t3bfbBNc2hh9JX\\n72t7URAtrtPAkUxtgEPm6WL03uNu8KCZ0G9uoA/oM7o8OIGkjC575D9V6QjYC9fn\\nPjBRQ3K42fUWFmf31jtUBSHB0xE5qJI+MOi+OcXAJLxKQBbW+vqr2KfMwVYpNclp\\nk0Ptfe8xZxVfKEJAAkacQ36Hp14wFK/q+2mmhOQlbruksOZCpaIkh5IdvGkkG8ZH\\n566FgFHDAgMBAAECggEAJkuuqprLSZTyiOEQoOqDWBc9X3z1CSEfwV0I/x51BUwF\\nGf1il4mgsE12wX03VZd2q/HF5kcZAvjQoFV8tPfidn6DieZi4itCthHyNutNNzDq\\ntw1u0x2SxktbrQwJJkPyIAZyB7FVwk38B9a3dBanyU/JhAZe62UpYUoGev6IqnKm\\nIiw7r4lc47XgJNrDjXhCtTwHBmXA6qt/HrBcu4fSZlnZMhvsgnO6iafXaBo15Rpy\\nyVBVCPCGJBqpbqI8w3lVTcUqvD2DS+wGJAZSNFagt5qg+vCN8xVUsyQKrM1qIXZm\\nxvPX5oE6CWaD5a7yzpwqKLghKIpsb+3gezyQiFw5rQKBgQDh9U+VdFipH2o8Rezd\\n2d9Kp+ya8+kAog4NMeMyD/xyvKbmv6hW2SZqLhc5MacO0GiCnFR+dMLJxRBGnn+e\\ngYP26OE2fG9Kn7JrSGafu7siKnonfaN/1IcHcZe/77P/s/o2lNxaVl9i1iPQlzr/\\nN8RRaYa+pvazR4VNMS+Z6keD5QKBgQDSDxfKGwOt/GlPKRDmw3bKD4tseK36JsJw\\n5u7im6CpiTEgSSbOCr1ggITv6VbHUK/Nv3mExJH6uuzd9szb94JUAxGbZ16Liwn4\\nse+K2XlnLEnqxzFSkprOJAJkfbffrH+IxW8gNrK/UbjKT/xgEVH1ZeKUMPLCQG+y\\nLAW6NY50hwKBgCYQTPfAQa87u4mrvdsheJv67cCslfOlWPigDsXAK6aoYPU+E/2N\\nVwtL+F2KH7o/IVvfOdyTjryula9Pw+/PoYtWb5neHGFVxZiM+byuwzdeMHW2lHRU\\nOOroF8gdeRT6HIxVR0lwg2EC8cWRtD6KBmgwfqJfPe+1fJ8kSgCDlsiBAoGBAI1D\\nOyNeYW4bBhMHMeeOYY9nPsL2sUE92Zslolbgg/4fVds5dpAvpsWECGJy0Dn/6Ap8\\njtMbgnRUSsDGnWP8IjgvTCLvNCSxn0YRG1+L+tnIbfkmdePq1ZJ1oupDpWkVTzsC\\nU0Ydor2IzrW3bqiIXU6jculntYmu3a67biqYo7F3AoGBALoinJdtNLLqOqf/MumD\\n+YmbzHqsuID2dGyct7GESIBx3a67hwyJQfCK8nyHNyWN7lFg+H1rZlu1Cjmo0hlu\\nOxzdbWON5Rg2n3TbGw3AM1M55khsedbmm8MOSRdhIkz5RuYESSNAvVC6CBcfg5gb\\nCPq8jrR+oljMjBwAaQmFlPF7\\n-----END PRIVATE KEY-----\\n',\r\n\t\t\t\t\tclientEmail: 'lyxa-core@for-poc-325210.iam.gserviceaccount.com',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tuser: {\r\n\t\t\t\tfirebaseAdminServiceAccount: {\r\n\t\t\t\t\tprojectId: 'for-poc-325210',\r\n\t\t\t\t\tprivateKey:\r\n\t\t\t\t\t\t'-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9yUnAC2pQ+dhe\\ndJVMS7RQeQdQO7JhT0BXz0MbpCXlEdc3j/GQAY9UfKxQLg1VZh+4An8aUZevOy/v\\nUaHsvqSWcWg7UHTOjk861brpjdjhM4S4ahwU2NyVI/o0Bpc5ob4nhHebny9FGqEP\\nauwUXiVw7UjA/yGeTN6delZwCxejHxI6zDjFQveo8Ljkfu49CMyyf1XhN9q0So4Q\\n2pZ3Xmdz0fZGykSGT9TVBDnPE8Zc3VCQ1XQ7aEKr0e9L+YYidw+iurSNwQSo72uk\\nf/G2wCtlAaoDh0lKObEbi1b925BOthP2XpmQ7Kv+iWVFouCY54Md56FxtjKOyYll\\n0nS6MkAJAgMBAAECggEAEeee83UoPjQ6BVxAlxJ31BU8+0TshOlwB7C8MywC7rfm\\nit2Dw8sf4W/DJmvX0nAYazjiEqKyuaOO98gm64HHX5GarKjgIjoTD7kJAZ6CIOnm\\nOis5k75rXg8nPFgIVZW0rb/9tEL5984ltoGG/PtuUxdxwxJ20ptML8VySO8E93yt\\n203zMlm/QdlUBBO+XDlpsEoXvUjQ6MzmCSF2LCFD1uBVmj0sVFuPt5fyodhV8gQM\\nvDfG4duZ7AE6Nbc5ANgJw8fHMdx+AS+I0P50et936tuFOOeHUWGbg1RMOM1GrWLZ\\nH83zfHp33R3rlUgleZetKh/5vLaW29MdJmACk2Z14QKBgQDtrywbz60ULHiyNvDP\\nHFweJF/9EBq6MZeo/lYrBDZXuP3sBM7uUa+oYzYad3Lsxo1Vz/Zqb6atWX/BRbHT\\nfyy6yTGPRn6geaqYEFuFwfBau3qju6DRwoqplVVlLo8lgOQzIDgXkk0nt7C/bM87\\nmkxQI6Xi0TAjIpd3k6miw52laQKBgQDMaTnlL2OGlJlcycBZGxrKdsIwvK2jCLPi\\njPTKM163htuzaItEVpJaCPjWaU3k3E1UXjFp9oxxvtDZOZP+DcFwGKvBe2vntFYz\\nafCNlYK7wT/t7ChlCUSXuU/bSrXe4Wc4KGnJ6YzNmykMJku2b845layB1PxEhHHA\\nRl2NEx9RoQKBgHJvETx+m2UIGEAtZXlBvTQh7TkIxOV6NPt/IHtrdsJ7ZX15vytM\\nltbqlUTe160Z1zhGfOw3vzbczT5/UKN0KlPvw/WoShT3HuRBk97tRcxZUS19i2sS\\nT/Jf3JJvfSngSX439+mZXZ5OuUEgoRGgMzeuQhLXBmcUI3rF1DlyFvdpAoGAfmq5\\nbn8fSzUNn+/6MGFt8Tb/JAscS87vCTZpkb+xXUlfCJaoQqxTuLEBzAC2Nsr0XDAg\\n2UqsUxBSs3VDjIRPVJc9adx9wH+sLAHhzn5fquR6OBesZ8gSjs8BjzqmPeAi6P09\\nZ60z8lh6S1RH0N1WqhBh7q2dEnbirqoV41CnNuECgYEAr26tTBIvEeZY3gmAmOVl\\nCw6gkxaHdzZplFl8Qnv272VllQpwbR1zaF6RfWsTEsrhrT+VtrZO6DDh9O6iJkbB\\n7Re3BnMOhGfUS3HlPCFnkdodeaoeVpg4llYwuunmyj+SmNxnC56TiznML1owmUYd\\ndLFeY+JZ0GpSBO0qYlY5QGk=\\n-----END PRIVATE KEY-----\\n',\r\n\t\t\t\t\tclientEmail: 'firebase-adminsdk-onusy@for-poc-325210.iam.gserviceaccount.com',\r\n\t\t\t\t},\r\n\t\t\t\tfirebaseAdminAppName: 'lyxa-user',\r\n\t\t\t},\r\n\t\t\trider: {\r\n\t\t\t\tfirebaseAdminServiceAccount: {\r\n\t\t\t\t\tprojectId: 'lyxa-rider-88939',\r\n\t\t\t\t\tprivateKey:\r\n\t\t\t\t\t\t'-----BEGIN PRIVATE KEY-----\\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC08zRqUjHFO7Ir\\n4UNHIjxVp7oJkK3rrV1UGfHeHsijm6CSWjViVqsFKUZliYXTjg9S8rIMmC3OAMrh\\n5FTdNfDell8YHPbVRWZ0OFBNWglvKMgMKMoyQuBKtvEAdZwgVMreOf+51QlZnPxy\\nTBNh4Du2ahb8TtAjwxXt7CgMjNIfoMjQFJTrBTAmsxhtOEpYvPU2iX+OtAkHgrs1\\nNeWpBGpN4GSwOfA8MdgvorLYbeRDnkY4cH/ReNymTW9nbX1vgsx2AE1NR5PTNxv0\\nIuVZQWxMMGPnT5bjzAlCR4z/Nbe89V2zl5kFtBxDBCDqxp+qZxCinJj1QqwC5qzZ\\nYLbNVKVPAgMBAAECggEAEHEGwrW24v/NF9KZ3S/zASoX1oBTD+vf4+E69QlMBshV\\nxeaKHOYuF5khVd7cjj/wDC6ULLPJJFjga7e7rvaUl80G//cQcIl5STcdXiHqYzN2\\nldrroGHWOm5hUJQ0fEroEgV9bc0PJ+7X5f9xRWlCqQz+YKzn7vqYwVZovyyDzS6/\\nTus2SeWg0Qh1Uw4+FqveEqGBAMF9COTYJ/rZ5sDE34cYRJeZOgVDeSanF/CW6+VS\\nLT5+ysRS8xY/mUFIgs6zvJQr7whDj22OzvZr31LReNUl1IGI1V0wHxCJs3y934dq\\nuiAf4iX2w0uwiQs7+IQc6T6GhTEajWHSQqUtbDeecQKBgQDAW/mHk1PCCxZQtc6C\\nCkFYONeY0zz7JAk7AvcbeVB6icq9Zv/9botFOvJ/4dduN39+sO/SIvLV+zQzmUGA\\nygY58AQIqtYurIc8OjftQ5qZ6t9H1plmj/W+GVAYWadA68P95UBjwVcZySht47s/\\ngOje4TF9wXVn9oTuP8XmLpce/wKBgQDw0Onl7EVmkgnyHl1qomqHR+2+xNDZNYMv\\njdX0tq2KOXa6JpbO32Yf7LVKQo7bmSOy3M1kn2+lwCXsDufr/a+1GNRxuPucsYiM\\nlQeLEKRqfNUni1NnbIUOkZV0fO0Me76Ow5BKqEWrda0E5k9g46p8EgVO5zWUE00w\\nZZFTUn7JsQKBgDh9SiREYb6EXwNIwOJzfIkZ+EaLEkd2Z7eKwWKyF65EtOM2Ukrs\\nob2s9/YSLp/RcIGWGHePh9zLLqNQiGn36igtkiGxecCvLe/D8RSeW9KDpRqFrPrv\\nn+05pcng2js4gZAYOPaSmq+Z4WOUEzMs+jYpz8zseTwUqykEVWuplvulAoGAF8y9\\n4RBZx4pVW01u9BP7LUWJlJoE/gKQ5YlCBP5s5kVJm5omu2lOwYb2X9F2JvPamFnE\\nHta3BQ2ZcdwDRcp7rA05KcgbbeAJ28L6zN6nMTMHKfJWGtmZyNfQioOyNdKhAaEI\\nSKiawhhOMjbEz5GQjtSFG8gz/l9t+IOBOlfj2fECgYBC8gGC7YHm+PvV5F1CVRZD\\nUYVlAnqOMJ1VvfTemW/kPzuCMd/JEKSE+b21h3rObMvUZU5AnkM3VT1+hDv6tyEt\\nblgh89YsHUor7wXSrYnVmYsrm91JABTWsLhLy92iqylg0xBs3Q5RGCt/s9f3YFFw\\nKghNmTDraGggnf5U/Z4LJw==\\n-----END PRIVATE KEY-----\\n',\r\n\t\t\t\t\tclientEmail: 'firebase-adminsdk-qwhrd@lyxa-rider-88939.iam.gserviceaccount.com',\r\n\t\t\t\t},\r\n\t\t\t\tfirebaseAdminAppName: 'lyxa-rider',\r\n\t\t\t},\r\n\t\t\tshop: {\r\n\t\t\t\tfirebaseAdminServiceAccount: {\r\n\t\t\t\t\tprojectId: 'lyxa-shop',\r\n\t\t\t\t\tprivateKey:\r\n\t\t\t\t\t\t'-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTWaf/QGSjk7po\\nri+6Nzo/tep1UtgMSY4KscT3iCbepiAsw7C8NCQqz3wYEAFRwywbaCwUcUs5KUC7\\n/e9TvpSQQksu10P9uP+c7wnAy+l0ay/15vWUV0usmDhMMvfjtDwS2RYTMEAdNUiZ\\nOuMC3/DDCBHt0SC5WCNzz11jj/n5bdVOS02qHd8V/lbd46iVEYfFswkI5NBgV7CY\\nnR2CoVcakPIeu9kEKdjXsJvf8+zCYtXPaFvcubQcnybOcg6usU+AHD1iwCRd6BrK\\n2PpM3gy/eASLJtzg/JoU0CgqJICmfR8LvGk6iHTp7VMfPuCfggwYtO3W1kSHuW4I\\nswbXYOJbAgMBAAECggEAMHKZ5xIsv66KiZp8SFSGnrolv7U430AxNlRf0Vo9hsZQ\\nE9Lb/Zh6PfIIAUAR/VsfDj1H9XuvAbBqLW3dYbYLOjJoJ5mi9VNmDORiuPZFUrGL\\ncfP6kYGdUDgol5cLagAT0UJAJC/oUom3VaDBDxSkjSCZc4l/1dzVa6O6RatoYvuW\\nqtJa5WzPH6flqj9HuFZaaNSZKXSYLwMeQC7bzxjbX0lB6b1WM2EIxQopeewrSfKg\\nvaw7zYHnu9cO6oA6I4A3VXhySp3G2VIMOIezfI24mP2Bnzori6xCVXcM7R1B2Trr\\nlFUrdXb9Rp3ZR0Ul0jSqCmopmMPVgob8lyHhiqk5+QKBgQDd/PcIRP7OE0ZnfXtd\\nxWMz1ggp9ub6bN/mFxw/OoyEVSfmlshDCvEeqoo2DxWGC+/0uiGuPHnDKDX+R0Ho\\nqmlWcVPTSBmrQvi3+VBKfr6ZCwxoutCQo3SMlEMvqHDkjGhAsDg/yjkI8yS5jqZ5\\nXtG+dYQpd9qY3t46Uar1+7lpJwKBgQDzu3CzElfr3xHAEdE+1pkiPixPuW+fHw1v\\nwoc5e7hJA1Mtu0Gdj7g41mF37bUXYxIg3FgV5sS76XCxw1a3plj/y0n+qZXMq5xs\\nZwgqrh4APjVXVRp9SSOvEXT0NanhWKiHMNncvteqThSEal27MDghEzqDmebkuOII\\ng+KDmYp1rQKBgA0dhPrYGLXULbSvlTpVDydg3dqc28iv5gqSEvkpXGP1JAZbojlT\\nzCsjqEbJXVwuGF89IABLUmZVWdtMGnjEmLSivXEeMWYM7uTvte6wzlH8dR866leh\\nUKF9oPqP2RunsAEiaDBcokIFG4ZbBzrkfz/hcY2Bp0ig4kBP0un1lV7BAoGBAJ4L\\n4MOt1Gd2KetzYk0uGPS0fkVgSLpVB4B+EvO6f0CRMGHKOH00UdBBa8i50qEMtBes\\n6k2ha9cyQ8pxkYzbCIEuUJgbXbDvYyqEES6j435i2HH+FIRDZilC16T4G2Wt+PJZ\\nQhy7f9vGb9WBp7AXT35bGql1pdyQ6rl80+hkKv2tAoGAe4yFOvIdEEdgEokp5Dem\\nuPf1rikk5mYPMkXhrX0cH9Wd2rh9MiP2gJuL3PD3R9LLon+9EzdBs31MwpP9C06Y\\nZmnuEfgYIewBHZbpRO+nsGX+AK15gbJUNk1RbWmUU7AvkHyo4eE6NnNVbygxaFSk\\n0+8aYRpYzZRnyAn8Oo6o2No=\\n-----END PRIVATE KEY-----\\n',\r\n\t\t\t\t\tclientEmail: 'firebase-adminsdk-w4v98@lyxa-shop.iam.gserviceaccount.com',\r\n\t\t\t\t},\r\n\t\t\t\tfirebaseAdminAppName: 'lyxa-shop',\r\n\t\t\t},\r\n\t\t},\r\n\t\tenvironment: EnvironmentConfigurationType.DEV,\r\n\t};\r\n\r\n\tprivate readonly _options: ConfigurationOptions;\r\n\r\n\tconstructor(options?: ConfigurationOptions) {\r\n\t\tthis._options = {\r\n\t\t\t...this._defaultOptions,\r\n\t\t\t...options,\r\n\t\t};\r\n\t}\r\n\r\n\tget options(): ConfigurationOptions {\r\n\t\treturn this._options;\r\n\t}\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentConfigurationType.js","sourceRoot":"/","sources":["libraries/configuration/types/EnvironmentConfigurationType.ts"],"names":[],"mappings":";;;AAAA,IAAY,4BAMX;AAND,WAAY,4BAA4B;IACpC,+CAAe,CAAA;IACf,6CAAa,CAAA;IACb,2CAAW,CAAA;IACX,mDAAmB,CAAA;IACnB,6CAAa,CAAA;AACjB,CAAC,EANW,4BAA4B,4CAA5B,4BAA4B,QAMvC","sourcesContent":["export enum EnvironmentConfigurationType {\r\n LOCAL = \"LOCAL\",\r\n MOCK = \"MOCK\",\r\n DEV = \"DEV\",\r\n PREPROD = \"PREPROD\",\r\n PROD = \"PROD\"\r\n}\r\n"]}
1
+ {"version":3,"file":"EnvironmentConfigurationType.js","sourceRoot":"/","sources":["libraries/configuration/types/EnvironmentConfigurationType.ts"],"names":[],"mappings":";;;AAAA,IAAY,4BAMX;AAND,WAAY,4BAA4B;IACvC,+CAAe,CAAA;IACf,6CAAa,CAAA;IACb,2CAAW,CAAA;IACX,mDAAmB,CAAA;IACnB,6CAAa,CAAA;AACd,CAAC,EANW,4BAA4B,4CAA5B,4BAA4B,QAMvC","sourcesContent":["export enum EnvironmentConfigurationType {\r\n\tLOCAL = 'LOCAL',\r\n\tMOCK = 'MOCK',\r\n\tDEV = 'DEV',\r\n\tPREPROD = 'PREPROD',\r\n\tPROD = 'PROD',\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
- import { AnyRouter } from "@trpc/server";
2
- import { SecretManagerService } from "../secrets";
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { SecretManagerService } from '../secrets';
3
3
  export declare class MicroServiceDispatcher {
4
4
  private _secretService;
5
5
  constructor(secretService: SecretManagerService);
@@ -19,9 +19,9 @@ let MicroServiceDispatcher = class MicroServiceDispatcher {
19
19
  this._secretService = secretService;
20
20
  }
21
21
  async getMicroService(serviceName) {
22
- const deploymentURL = await this._secretService.getKey("DEPLOYMENTS_MICROSERVICE_" + serviceName.toUpperCase() + "_ENDPOINT");
22
+ const deploymentURL = await this._secretService.getKey('DEPLOYMENTS_MICROSERVICE_' + serviceName.toUpperCase() + '_ENDPOINT');
23
23
  if (!deploymentURL) {
24
- throw new Error("The request service does not have a configure secret URL");
24
+ throw new Error('The request service does not have a configure secret URL');
25
25
  }
26
26
  return (0, client_1.createTRPCProxyClient)({
27
27
  links: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/dispatcher/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA+B;AAC/B,yCAAkE;AAElE,wCAAgD;AAGzC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACvB,cAAc,CAAwB;IAE9C,YAAY,aAAmC;QAC3C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAsB,WAAmB;QACjE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,2BAA2B,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;QAE9H,IAAG,CAAC,aAAa,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAChF,CAAC;QAGD,OAAO,IAAA,8BAAqB,EAAI;YAC5B,KAAK,EAAE;gBACH,IAAA,sBAAa,EAAC;oBACV,GAAG,EAAE,aAAa;iBACrB,CAAC;aACL;SACJ,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAvBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,gBAAO,GAAE;qCAIqB,8BAAoB;GAHtC,sBAAsB,CAuBlC","sourcesContent":["import {Service} from \"typedi\";\r\nimport {createTRPCProxyClient, httpBatchLink} from \"@trpc/client\";\r\nimport {AnyRouter} from \"@trpc/server\";\r\nimport {SecretManagerService} from \"../secrets\";\r\n\r\n@Service()\r\nexport class MicroServiceDispatcher {\r\n private _secretService!: SecretManagerService;\r\n\r\n constructor(secretService: SecretManagerService) {\r\n this._secretService = secretService;\r\n }\r\n\r\n public async getMicroService<T extends AnyRouter>(serviceName: string) {\r\n const deploymentURL = await this._secretService.getKey(\"DEPLOYMENTS_MICROSERVICE_\" + serviceName.toUpperCase() + \"_ENDPOINT\");\r\n\r\n if(!deploymentURL) {\r\n throw new Error(\"The request service does not have a configure secret URL\");\r\n }\r\n\r\n // @ts-ignore\r\n return createTRPCProxyClient<T>({\r\n links: [\r\n httpBatchLink({\r\n url: deploymentURL,\r\n }),\r\n ],\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/dispatcher/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAiC;AACjC,yCAAoE;AAEpE,wCAAkD;AAG3C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC1B,cAAc,CAAwB;IAE9C,YAAY,aAAmC;QAC9C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAsB,WAAmB;QACpE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CACrD,2BAA2B,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,WAAW,CACrE,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC7E,CAAC;QAGD,OAAO,IAAA,8BAAqB,EAAI;YAC/B,KAAK,EAAE;gBACN,IAAA,sBAAa,EAAC;oBACb,GAAG,EAAE,aAAa;iBAClB,CAAC;aACF;SACD,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAzBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,gBAAO,GAAE;qCAIkB,8BAAoB;GAHnC,sBAAsB,CAyBlC","sourcesContent":["import { Service } from 'typedi';\r\nimport { createTRPCProxyClient, httpBatchLink } from '@trpc/client';\r\nimport { AnyRouter } from '@trpc/server';\r\nimport { SecretManagerService } from '../secrets';\r\n\r\n@Service()\r\nexport class MicroServiceDispatcher {\r\n\tprivate _secretService!: SecretManagerService;\r\n\r\n\tconstructor(secretService: SecretManagerService) {\r\n\t\tthis._secretService = secretService;\r\n\t}\r\n\r\n\tpublic async getMicroService<T extends AnyRouter>(serviceName: string) {\r\n\t\tconst deploymentURL = await this._secretService.getKey(\r\n\t\t\t'DEPLOYMENTS_MICROSERVICE_' + serviceName.toUpperCase() + '_ENDPOINT'\r\n\t\t);\r\n\r\n\t\tif (!deploymentURL) {\r\n\t\t\tthrow new Error('The request service does not have a configure secret URL');\r\n\t\t}\r\n\r\n\t\t// @ts-ignore\r\n\t\treturn createTRPCProxyClient<T>({\r\n\t\t\tlinks: [\r\n\t\t\t\thttpBatchLink({\r\n\t\t\t\t\turl: deploymentURL,\r\n\t\t\t\t}),\r\n\t\t\t],\r\n\t\t});\r\n\t}\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEvent.js","sourceRoot":"/","sources":["libraries/event/BaseEvent.ts"],"names":[],"mappings":";;;AAAA,MAAsB,SAAS;IACV,QAAQ,CAAS;IACjB,QAAQ,CAAW;IAEpC,YAAsB,OAAe,EAAE,OAAiB;QACpD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAhBD,8BAgBC","sourcesContent":["export abstract class BaseEvent<TPayload extends Record<string, unknown>> {\r\n private readonly _eventId: string;\r\n private readonly _payload: TPayload;\r\n \r\n protected constructor(eventId: string, payload: TPayload) {\r\n this._eventId = eventId;\r\n this._payload = payload;\r\n }\r\n\r\n get eventId(): string {\r\n return this._eventId;\r\n }\r\n\r\n get payload(): TPayload {\r\n return this._payload;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"BaseEvent.js","sourceRoot":"/","sources":["libraries/event/BaseEvent.ts"],"names":[],"mappings":";;;AAAA,MAAsB,SAAS;IACb,QAAQ,CAAS;IACjB,QAAQ,CAAW;IAEpC,YAAsB,OAAe,EAAE,OAAiB;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD;AAhBD,8BAgBC","sourcesContent":["export abstract class BaseEvent<TPayload extends Record<string, unknown>> {\r\n\tprivate readonly _eventId: string;\r\n\tprivate readonly _payload: TPayload;\r\n\r\n\tprotected constructor(eventId: string, payload: TPayload) {\r\n\t\tthis._eventId = eventId;\r\n\t\tthis._payload = payload;\r\n\t}\r\n\r\n\tget eventId(): string {\r\n\t\treturn this._eventId;\r\n\t}\r\n\r\n\tget payload(): TPayload {\r\n\t\treturn this._payload;\r\n\t}\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { BaseEvent } from "../BaseEvent";
1
+ import { BaseEvent } from '../BaseEvent';
2
2
  export interface EventParameter {
3
3
  name: string;
4
4
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"/","sources":["libraries/event/decorators/metadata.ts"],"names":[],"mappings":";;;AA6BA,sCASC;AA/BD,MAAa,aAAa;IAEd,MAAM,CAAC,cAAc,GAAqC,EAAE,CAAC;IAE9D,MAAM,CAAC,gBAAgB,CAC1B,OAAe,EACf,QAA0B;QAE1B,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAAe;QACrC,OAAO,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;;AAbL,sCAcC;AAQD,SAAgB,aAAa,CACzB,OAAe,EACf,aAA+B,EAAE;IAEjC,OAAO,UACH,WAAc;QAEd,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC;AACN,CAAC","sourcesContent":["import { BaseEvent } from \"../BaseEvent\";\r\n\r\nexport interface EventParameter {\r\n name: string;\r\n type: string;\r\n}\r\n\r\nexport class EventRegistry {\r\n // A static registry that maps an event ID to a list of parameters (metadata).\r\n private static eventsMetadata: Record<string, EventParameter[]> = {};\r\n\r\n public static registerMetadata(\r\n eventId: string,\r\n metadata: EventParameter[]\r\n ): void {\r\n EventRegistry.eventsMetadata[eventId] = metadata;\r\n }\r\n\r\n public static getMetadata(eventId: string): EventParameter[] | undefined {\r\n return EventRegistry.eventsMetadata[eventId];\r\n }\r\n}\r\n\r\n/**\r\n * Decorator to attach metadata to an event.\r\n * Example usage:\r\n * @EventMetadata(\"UserCreated\", [{name: \"userId\", type: \"string\"}])\r\n * export class UserCreatedEvent extends BaseEvent<{ userId: string }> {}\r\n */\r\nexport function EventMetadata(\r\n eventId: string,\r\n parameters: EventParameter[] = []\r\n) {\r\n return function <T extends { new (...args: any[]): BaseEvent<any> }>(\r\n constructor: T\r\n ) {\r\n EventRegistry.registerMetadata(eventId, parameters);\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"/","sources":["libraries/event/decorators/metadata.ts"],"names":[],"mappings":";;;AA0BA,sCAIC;AAvBD,MAAa,aAAa;IAEjB,MAAM,CAAC,cAAc,GAAqC,EAAE,CAAC;IAE9D,MAAM,CAAC,gBAAgB,CAAC,OAAe,EAAE,QAA0B;QACzE,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAAe;QACxC,OAAO,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;;AAVF,sCAWC;AAQD,SAAgB,aAAa,CAAC,OAAe,EAAE,aAA+B,EAAE;IAC/E,OAAO,UAA8D,WAAc;QAClF,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC;AACH,CAAC","sourcesContent":["import { BaseEvent } from '../BaseEvent';\r\n\r\nexport interface EventParameter {\r\n\tname: string;\r\n\ttype: string;\r\n}\r\n\r\nexport class EventRegistry {\r\n\t// A static registry that maps an event ID to a list of parameters (metadata).\r\n\tprivate static eventsMetadata: Record<string, EventParameter[]> = {};\r\n\r\n\tpublic static registerMetadata(eventId: string, metadata: EventParameter[]): void {\r\n\t\tEventRegistry.eventsMetadata[eventId] = metadata;\r\n\t}\r\n\r\n\tpublic static getMetadata(eventId: string): EventParameter[] | undefined {\r\n\t\treturn EventRegistry.eventsMetadata[eventId];\r\n\t}\r\n}\r\n\r\n/**\r\n * Decorator to attach metadata to an event.\r\n * Example usage:\r\n * @EventMetadata(\"UserCreated\", [{name: \"userId\", type: \"string\"}])\r\n * export class UserCreatedEvent extends BaseEvent<{ userId: string }> {}\r\n */\r\nexport function EventMetadata(eventId: string, parameters: EventParameter[] = []) {\r\n\treturn function <T extends { new (...args: any[]): BaseEvent<any> }>(constructor: T) {\r\n\t\tEventRegistry.registerMetadata(eventId, parameters);\r\n\t};\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"/","sources":["libraries/event/decorators/subscribe.ts"],"names":[],"mappings":";;AAEA,8BAQC;AAVD,2EAAsE;AAEtE,SAAgB,SAAS,CAAC,OAAe;IACrC,OAAO,UACH,MAAW,EACX,WAAmB,EACnB,UAA8B;QAE9B,2CAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SubscriptionRegistry} from \"../registry/SubscriptionRegistry\";\r\n\r\nexport function Subscribe(eventId: string) {\r\n return function (\r\n target: any,\r\n propertyKey: string,\r\n descriptor: PropertyDescriptor\r\n ) {\r\n SubscriptionRegistry.register(eventId, target.constructor, propertyKey);\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"/","sources":["libraries/event/decorators/subscribe.ts"],"names":[],"mappings":";;AAEA,8BAIC;AAND,2EAAwE;AAExE,SAAgB,SAAS,CAAC,OAAe;IACxC,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAChF,2CAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC,CAAC;AACH,CAAC","sourcesContent":["import { SubscriptionRegistry } from '../registry/SubscriptionRegistry';\r\n\r\nexport function Subscribe(eventId: string) {\r\n\treturn function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\r\n\t\tSubscriptionRegistry.register(eventId, target.constructor, propertyKey);\r\n\t};\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { BaseEvent } from "./BaseEvent";
1
+ import { BaseEvent } from './BaseEvent';
2
2
  export declare function initEventBus(rabbitUrl: string): Promise<void>;
3
3
  export declare function publishEvent<TPayload extends Record<string, unknown>>(event: BaseEvent<TPayload>): Promise<void>;
4
4
  export declare function subscribeToEvent(eventId: string, onMessage: (payload: any) => Promise<void>): Promise<void>;
@@ -9,25 +9,25 @@ exports.subscribeToEvent = subscribeToEvent;
9
9
  const amqplib_1 = __importDefault(require("amqplib"));
10
10
  let connection;
11
11
  let channel;
12
- const EXCHANGE_NAME = "lyxa.events";
12
+ const EXCHANGE_NAME = 'lyxa.events';
13
13
  async function initEventBus(rabbitUrl) {
14
14
  connection = await amqplib_1.default.connect(rabbitUrl);
15
15
  channel = await connection.createChannel();
16
- await channel.assertExchange(EXCHANGE_NAME, "topic", { durable: true });
17
- console.log("EventBus initialized and exchange asserted");
16
+ await channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });
17
+ console.log('EventBus initialized and exchange asserted');
18
18
  }
19
19
  async function publishEvent(event) {
20
20
  if (!channel)
21
- throw new Error("Channel not initialized. Call initEventBus first.");
21
+ throw new Error('Channel not initialized. Call initEventBus first.');
22
22
  const messageBuffer = Buffer.from(JSON.stringify(event.payload));
23
23
  channel.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {
24
- contentType: "application/json",
24
+ contentType: 'application/json',
25
25
  });
26
26
  console.log(`Published event [${event.eventId}] with payload`, event.payload);
27
27
  }
28
28
  async function subscribeToEvent(eventId, onMessage) {
29
29
  if (!channel)
30
- throw new Error("Channel not initialized. Call initEventBus first.");
30
+ throw new Error('Channel not initialized. Call initEventBus first.');
31
31
  const queueName = `${eventId}-queue`;
32
32
  await channel.assertQueue(queueName, {
33
33
  durable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":";;;;;AAQA,oCAOC;AAED,oCAYC;AAED,4CAmCC;AAlED,sDAA2B;AAG3B,IAAI,UAA6B,CAAC;AAClC,IAAI,OAAqB,CAAC;AAE1B,MAAM,aAAa,GAAG,aAAa,CAAC;AAE7B,KAAK,UAAU,YAAY,CAAC,SAAiB;IAChD,UAAU,GAAG,MAAM,iBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;IAE3C,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,YAAY,CAC9B,KAA0B;IAE1B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;QACzD,WAAW,EAAE,kBAAkB;KAClC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,OAAO,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAClF,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAClC,OAAe,EACf,SAA0C;IAE1C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,GAAG,OAAO,QAAQ,CAAC;IAErC,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE;QACjC,OAAO,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAE3D,MAAM,OAAO,CAAC,OAAO,CACjB,SAAS,EACT,KAAK,EAAE,GAAG,EAAE,EAAE;QACV,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACD,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;gBAEzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YAE5D,CAAC;QACL,CAAC;IACL,CAAC,EACD,EAAC,KAAK,EAAE,KAAK,EAAC,CACjB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,eAAe,SAAS,GAAG,CAAC,CAAC;AAC5E,CAAC","sourcesContent":["import amqp from \"amqplib\";\r\nimport { BaseEvent } from \"./BaseEvent\";\r\n\r\nlet connection: amqp.ChannelModel;\r\nlet channel: amqp.Channel;\r\n\r\nconst EXCHANGE_NAME = \"lyxa.events\";\r\n\r\nexport async function initEventBus(rabbitUrl: string) {\r\n connection = await amqp.connect(rabbitUrl);\r\n channel = await connection.createChannel();\r\n\r\n await channel.assertExchange(EXCHANGE_NAME, \"topic\", { durable: true });\r\n\r\n console.log(\"EventBus initialized and exchange asserted\");\r\n}\r\n\r\nexport async function publishEvent<TPayload extends Record<string, unknown>>(\r\n event: BaseEvent<TPayload>\r\n): Promise<void> {\r\n if (!channel) throw new Error(\"Channel not initialized. Call initEventBus first.\");\r\n\r\n const messageBuffer = Buffer.from(JSON.stringify(event.payload));\r\n\r\n channel.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {\r\n contentType: \"application/json\",\r\n });\r\n\r\n console.log(`Published event [${event.eventId}] with payload`, event.payload);\r\n}\r\n\r\nexport async function subscribeToEvent(\r\n eventId: string,\r\n onMessage: (payload: any) => Promise<void>\r\n): Promise<void> {\r\n if (!channel) throw new Error(\"Channel not initialized. Call initEventBus first.\");\r\n\r\n const queueName = `${eventId}-queue`;\r\n\r\n await channel.assertQueue(queueName, {\r\n durable: true,\r\n });\r\n\r\n await channel.bindQueue(queueName, EXCHANGE_NAME, eventId);\r\n\r\n await channel.consume(\r\n queueName,\r\n async (msg) => {\r\n if (msg !== null) {\r\n const payloadString = msg.content.toString();\r\n const payload = JSON.parse(payloadString);\r\n\r\n try {\r\n await onMessage(payload);\r\n // Acknowledge the message as processed\r\n channel.ack(msg);\r\n } catch (err) {\r\n console.error(`Error handling event [${eventId}]`, err);\r\n // Optional: channel.nack(msg) for requeue\r\n }\r\n }\r\n },\r\n {noAck: false}\r\n );\r\n\r\n console.log(`Subscribed to event [${eventId}] on queue [${queueName}]`);\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":";;;;;AAQA,oCAOC;AAED,oCAYC;AAED,4CAmCC;AAlED,sDAA2B;AAG3B,IAAI,UAA6B,CAAC;AAClC,IAAI,OAAqB,CAAC;AAE1B,MAAM,aAAa,GAAG,aAAa,CAAC;AAE7B,KAAK,UAAU,YAAY,CAAC,SAAiB;IACnD,UAAU,GAAG,MAAM,iBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;IAE3C,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,YAAY,CACjC,KAA0B;IAE1B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;QAC5D,WAAW,EAAE,kBAAkB;KAC/B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,OAAO,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/E,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACrC,OAAe,EACf,SAA0C;IAE1C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,GAAG,OAAO,QAAQ,CAAC;IAErC,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE;QACpC,OAAO,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAE3D,MAAM,OAAO,CAAC,OAAO,CACpB,SAAS,EACT,KAAK,EAAC,GAAG,EAAC,EAAE;QACX,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;gBAEzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YAEzD,CAAC;QACF,CAAC;IACF,CAAC,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CAChB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,eAAe,SAAS,GAAG,CAAC,CAAC;AACzE,CAAC","sourcesContent":["import amqp from 'amqplib';\r\nimport { BaseEvent } from './BaseEvent';\r\n\r\nlet connection: amqp.ChannelModel;\r\nlet channel: amqp.Channel;\r\n\r\nconst EXCHANGE_NAME = 'lyxa.events';\r\n\r\nexport async function initEventBus(rabbitUrl: string) {\r\n\tconnection = await amqp.connect(rabbitUrl);\r\n\tchannel = await connection.createChannel();\r\n\r\n\tawait channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });\r\n\r\n\tconsole.log('EventBus initialized and exchange asserted');\r\n}\r\n\r\nexport async function publishEvent<TPayload extends Record<string, unknown>>(\r\n\tevent: BaseEvent<TPayload>\r\n): Promise<void> {\r\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\r\n\r\n\tconst messageBuffer = Buffer.from(JSON.stringify(event.payload));\r\n\r\n\tchannel.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {\r\n\t\tcontentType: 'application/json',\r\n\t});\r\n\r\n\tconsole.log(`Published event [${event.eventId}] with payload`, event.payload);\r\n}\r\n\r\nexport async function subscribeToEvent(\r\n\teventId: string,\r\n\tonMessage: (payload: any) => Promise<void>\r\n): Promise<void> {\r\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\r\n\r\n\tconst queueName = `${eventId}-queue`;\r\n\r\n\tawait channel.assertQueue(queueName, {\r\n\t\tdurable: true,\r\n\t});\r\n\r\n\tawait channel.bindQueue(queueName, EXCHANGE_NAME, eventId);\r\n\r\n\tawait channel.consume(\r\n\t\tqueueName,\r\n\t\tasync msg => {\r\n\t\t\tif (msg !== null) {\r\n\t\t\t\tconst payloadString = msg.content.toString();\r\n\t\t\t\tconst payload = JSON.parse(payloadString);\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait onMessage(payload);\r\n\t\t\t\t\t// Acknowledge the message as processed\r\n\t\t\t\t\tchannel.ack(msg);\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tconsole.error(`Error handling event [${eventId}]`, err);\r\n\t\t\t\t\t// Optional: channel.nack(msg) for requeue\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t{ noAck: false }\r\n\t);\r\n\r\n\tconsole.log(`Subscribed to event [${eventId}] on queue [${queueName}]`);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionRegistry.js","sourceRoot":"/","sources":["libraries/event/registry/SubscriptionRegistry.ts"],"names":[],"mappings":";;;AAQA,MAAa,oBAAoB;IACrB,MAAM,CAAC,aAAa,GAA2B,EAAE,CAAC;IAMnD,MAAM,CAAC,QAAQ,CAClB,OAAe,EACf,iBAA2B,EAC3B,UAAkB;QAElB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpB,OAAO;YACP,iBAAiB;YACjB,UAAU;SACb,CAAC,CAAC;IACP,CAAC;IAMM,MAAM,CAAC,mBAAmB;QAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;;AAzBL,oDA0BC","sourcesContent":["\r\n\r\ninterface SubscriptionMetadata {\r\n eventId: string;\r\n targetConstructor: Function;\r\n methodName: string;\r\n}\r\n\r\nexport class SubscriptionRegistry {\r\n private static subscriptions: SubscriptionMetadata[] = [];\r\n\r\n /**\r\n * Called by the decorator to record which class method\r\n * is subscribed to which eventId.\r\n */\r\n public static register(\r\n eventId: string,\r\n targetConstructor: Function,\r\n methodName: string\r\n ) {\r\n this.subscriptions.push({\r\n eventId,\r\n targetConstructor,\r\n methodName,\r\n });\r\n }\r\n\r\n /**\r\n * Called at bootstrap to retrieve all known subscriptions\r\n * so we can actually wire them up.\r\n */\r\n public static getAllSubscriptions(): SubscriptionMetadata[] {\r\n return [...this.subscriptions];\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SubscriptionRegistry.js","sourceRoot":"/","sources":["libraries/event/registry/SubscriptionRegistry.ts"],"names":[],"mappings":";;;AAMA,MAAa,oBAAoB;IACxB,MAAM,CAAC,aAAa,GAA2B,EAAE,CAAC;IAMnD,MAAM,CAAC,QAAQ,CAAC,OAAe,EAAE,iBAA2B,EAAE,UAAkB;QACtF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACvB,OAAO;YACP,iBAAiB;YACjB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAMM,MAAM,CAAC,mBAAmB;QAChC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;;AArBF,oDAsBC","sourcesContent":["interface SubscriptionMetadata {\r\n\teventId: string;\r\n\ttargetConstructor: Function;\r\n\tmethodName: string;\r\n}\r\n\r\nexport class SubscriptionRegistry {\r\n\tprivate static subscriptions: SubscriptionMetadata[] = [];\r\n\r\n\t/**\r\n\t * Called by the decorator to record which class method\r\n\t * is subscribed to which eventId.\r\n\t */\r\n\tpublic static register(eventId: string, targetConstructor: Function, methodName: string) {\r\n\t\tthis.subscriptions.push({\r\n\t\t\teventId,\r\n\t\t\ttargetConstructor,\r\n\t\t\tmethodName,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Called at bootstrap to retrieve all known subscriptions\r\n\t * so we can actually wire them up.\r\n\t */\r\n\tpublic static getAllSubscriptions(): SubscriptionMetadata[] {\r\n\t\treturn [...this.subscriptions];\r\n\t}\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { BaseEvent } from "../BaseEvent";
1
+ import { BaseEvent } from '../BaseEvent';
2
2
  export type OrderCreationEventParams = {
3
3
  user: string;
4
4
  shop: string;
@@ -16,26 +16,29 @@ const index_1 = require("../index");
16
16
  const subscribe_1 = require("../decorators/subscribe");
17
17
  let OrderCreationEvent = class OrderCreationEvent extends BaseEvent_1.BaseEvent {
18
18
  constructor(parameters) {
19
- super("order.creation", parameters);
19
+ super('order.creation', parameters);
20
20
  }
21
21
  };
22
22
  exports.OrderCreationEvent = OrderCreationEvent;
23
23
  exports.OrderCreationEvent = OrderCreationEvent = __decorate([
24
- (0, metadata_1.EventMetadata)("order.creation", [{ name: "user", type: "string" }, { name: "shop", type: "string" }]),
24
+ (0, metadata_1.EventMetadata)('order.creation', [
25
+ { name: 'user', type: 'string' },
26
+ { name: 'shop', type: 'string' },
27
+ ]),
25
28
  __metadata("design:paramtypes", [Object])
26
29
  ], OrderCreationEvent);
27
30
  (0, index_1.publishEvent)(new OrderCreationEvent({
28
- user: "",
29
- shop: ""
31
+ user: '',
32
+ shop: '',
30
33
  }));
31
34
  class OrderListenEvent {
32
35
  doSomethingWithOrderCreation(parameters) {
33
- parameters[""];
36
+ parameters[''];
34
37
  }
35
38
  }
36
39
  exports.OrderListenEvent = OrderListenEvent;
37
40
  __decorate([
38
- (0, subscribe_1.Subscribe)("order.creation"),
41
+ (0, subscribe_1.Subscribe)('order.creation'),
39
42
  __metadata("design:type", Function),
40
43
  __metadata("design:paramtypes", [Object]),
41
44
  __metadata("design:returntype", void 0)
@@ -1 +1 @@
1
- {"version":3,"file":"OrderCreationEvent.js","sourceRoot":"/","sources":["libraries/event/test/OrderCreationEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAuC;AACvC,qDAAqD;AACrD,oCAAsC;AACtC,uDAAkD;AAQ3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,qBAAmC;IACvE,YAAY,UAAoC;QAC5C,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;CACJ,CAAA;AAJY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,wBAAa,EAAC,gBAAgB,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC;;GACrF,kBAAkB,CAI9B;AAED,IAAA,oBAAY,EAAC,IAAI,kBAAkB,CAAC;IAChC,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;CACX,CAAC,CAAC,CAAA;AAEH,MAAa,gBAAgB;IAElB,4BAA4B,CAAC,UAAmC;QACnE,UAAU,CAAC,EAAE,CAAC,CAAA;IAClB,CAAC;CACJ;AALD,4CAKC;AAHU;IADN,IAAA,qBAAS,EAAC,gBAAgB,CAAC;;;;oEAG3B","sourcesContent":["import {BaseEvent} from \"../BaseEvent\";\r\nimport {EventMetadata} from \"../decorators/metadata\";\r\nimport {publishEvent} from \"../index\";\r\nimport {Subscribe} from \"../decorators/subscribe\";\r\n\r\nexport type OrderCreationEventParams = {\r\n user: string;\r\n shop: string;\r\n}\r\n\r\n@EventMetadata(\"order.creation\", [{name: \"user\", type: \"string\"}, {name: \"shop\", type: \"string\"}])\r\nexport class OrderCreationEvent extends BaseEvent<OrderCreationEventParams> {\r\n constructor(parameters: OrderCreationEventParams) {\r\n super(\"order.creation\", parameters);\r\n }\r\n}\r\n\r\npublishEvent(new OrderCreationEvent({\r\n user: \"\",\r\n shop: \"\"\r\n}))\r\n\r\nexport class OrderListenEvent {\r\n @Subscribe(\"order.creation\")\r\n public doSomethingWithOrderCreation(parameters: Record<string, unknown>) {\r\n parameters[\"\"]\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"OrderCreationEvent.js","sourceRoot":"/","sources":["libraries/event/test/OrderCreationEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyC;AACzC,qDAAuD;AACvD,oCAAwC;AACxC,uDAAoD;AAW7C,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,qBAAmC;IAC1E,YAAY,UAAoC;QAC/C,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;CACD,CAAA;AAJY,gDAAkB;6BAAlB,kBAAkB;IAJ9B,IAAA,wBAAa,EAAC,gBAAgB,EAAE;QAChC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC,CAAC;;GACW,kBAAkB,CAI9B;AAED,IAAA,oBAAY,EACX,IAAI,kBAAkB,CAAC;IACtB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;CACR,CAAC,CACF,CAAC;AAEF,MAAa,gBAAgB;IAErB,4BAA4B,CAAC,UAAmC;QACtE,UAAU,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;CACD;AALD,4CAKC;AAHO;IADN,IAAA,qBAAS,EAAC,gBAAgB,CAAC;;;;oEAG3B","sourcesContent":["import { BaseEvent } from '../BaseEvent';\r\nimport { EventMetadata } from '../decorators/metadata';\r\nimport { publishEvent } from '../index';\r\nimport { Subscribe } from '../decorators/subscribe';\r\n\r\nexport type OrderCreationEventParams = {\r\n\tuser: string;\r\n\tshop: string;\r\n};\r\n\r\n@EventMetadata('order.creation', [\r\n\t{ name: 'user', type: 'string' },\r\n\t{ name: 'shop', type: 'string' },\r\n])\r\nexport class OrderCreationEvent extends BaseEvent<OrderCreationEventParams> {\r\n\tconstructor(parameters: OrderCreationEventParams) {\r\n\t\tsuper('order.creation', parameters);\r\n\t}\r\n}\r\n\r\npublishEvent(\r\n\tnew OrderCreationEvent({\r\n\t\tuser: '',\r\n\t\tshop: '',\r\n\t})\r\n);\r\n\r\nexport class OrderListenEvent {\r\n\t@Subscribe('order.creation')\r\n\tpublic doSomethingWithOrderCreation(parameters: Record<string, unknown>) {\r\n\t\tparameters[''];\r\n\t}\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import * as admin from 'firebase-admin';
2
- import { ConfigurationService } from "../configuration";
2
+ import { ConfigurationService } from '../configuration';
3
3
  export declare class FirebaseService {
4
4
  private configService;
5
5
  private readonly _superApp;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/firebase/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,mCAAiC;AAEjC,oDAAsD;AACtD,uCAA+B;AAE/B,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,cAAc,CAAC;AAG9E,IAAM,eAAe,GAArB,MAAM,eAAe;IAMJ;IALH,SAAS,CAAgB;IACzB,QAAQ,CAAgB;IACxB,QAAQ,CAAgB;IACxB,SAAS,CAAgB;IAE1C,YAAoB,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,gBAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;QAEvE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;YACjC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA6C,CAAC;YAC5F,aAAa,EAAE,sBAAsB;SACxC,EAAE,WAAW,CAAC,oBAAoB,IAAI,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA6C,CAAC;YACrF,aAAa,EAAE,sBAAsB;SACxC,EAAE,IAAI,CAAC,oBAAoB,IAAI,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA6C,CAAC;YACrF,aAAa,EAAE,sBAAsB;SACxC,EAAE,IAAI,CAAC,oBAAoB,IAAI,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;YACjC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA6C,CAAC;YACtF,aAAa,EAAE,sBAAsB;SACxC,EAAE,KAAK,CAAC,oBAAoB,IAAI,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ,CAAA;AAnDY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,gBAAO,GAAE;qCAO6B,oCAAoB;GAN9C,eAAe,CAmD3B","sourcesContent":["import * as admin from 'firebase-admin';\r\nimport { Service } from 'typedi';\r\nimport { ServiceAccount } from 'firebase-admin';\r\nimport {ConfigurationService} from \"../configuration\";\r\nimport {Error} from \"mongoose\";\r\n\r\nconst DEFAULT_STORAGE_BUCKET = process.env.FIREBASE_STORAGE_BUCKET || 'lyxa-default';\r\n\r\n@Service()\r\nexport class FirebaseService {\r\n private readonly _superApp: admin.app.App;\r\n private readonly _userApp: admin.app.App;\r\n private readonly _shopApp: admin.app.App;\r\n private readonly _riderApp: admin.app.App;\r\n\r\n constructor(private configService: ConfigurationService) {\r\n const config = this.configService.options;\r\n\r\n if (!config.firebaseAdmin) {\r\n throw new Error('Firebase Admin configuration is missing.');\r\n }\r\n\r\n const { super: superConfig, user, shop, rider } = config.firebaseAdmin;\r\n\r\n this._superApp = admin.initializeApp({\r\n credential: admin.credential.cert(superConfig.firebaseAdminServiceAccount as ServiceAccount),\r\n storageBucket: DEFAULT_STORAGE_BUCKET,\r\n }, superConfig.firebaseAdminAppName || 'super-app');\r\n\r\n this._userApp = admin.initializeApp({\r\n credential: admin.credential.cert(user.firebaseAdminServiceAccount as ServiceAccount),\r\n storageBucket: DEFAULT_STORAGE_BUCKET,\r\n }, user.firebaseAdminAppName || 'user-app');\r\n\r\n this._shopApp = admin.initializeApp({\r\n credential: admin.credential.cert(shop.firebaseAdminServiceAccount as ServiceAccount),\r\n storageBucket: DEFAULT_STORAGE_BUCKET,\r\n }, shop.firebaseAdminAppName || 'shop-app');\r\n\r\n this._riderApp = admin.initializeApp({\r\n credential: admin.credential.cert(rider.firebaseAdminServiceAccount as ServiceAccount),\r\n storageBucket: DEFAULT_STORAGE_BUCKET,\r\n }, rider.firebaseAdminAppName || 'rider-app');\r\n }\r\n\r\n get superApp(): admin.app.App {\r\n return this._superApp;\r\n }\r\n\r\n get userApp(): admin.app.App {\r\n return this._userApp;\r\n }\r\n\r\n get shopApp(): admin.app.App {\r\n return this._shopApp;\r\n }\r\n\r\n get riderApp(): admin.app.App {\r\n return this._riderApp;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/firebase/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,mCAAiC;AAEjC,oDAAwD;AACxD,uCAAiC;AAEjC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,cAAc,CAAC;AAG9E,IAAM,eAAe,GAArB,MAAM,eAAe;IAMP;IALH,SAAS,CAAgB;IACzB,QAAQ,CAAgB;IACxB,QAAQ,CAAgB;IACxB,SAAS,CAAgB;IAE1C,YAAoB,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,gBAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;QAEvE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CACnC;YACC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA6C,CAAC;YAC5F,aAAa,EAAE,sBAAsB;SACrC,EACD,WAAW,CAAC,oBAAoB,IAAI,WAAW,CAC/C,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,aAAa,CAClC;YACC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA6C,CAAC;YACrF,aAAa,EAAE,sBAAsB;SACrC,EACD,IAAI,CAAC,oBAAoB,IAAI,UAAU,CACvC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,aAAa,CAClC;YACC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA6C,CAAC;YACrF,aAAa,EAAE,sBAAsB;SACrC,EACD,IAAI,CAAC,oBAAoB,IAAI,UAAU,CACvC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CACnC;YACC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA6C,CAAC;YACtF,aAAa,EAAE,sBAAsB;SACrC,EACD,KAAK,CAAC,oBAAoB,IAAI,WAAW,CACzC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;CACD,CAAA;AA/DY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,gBAAO,GAAE;qCAO0B,oCAAoB;GAN3C,eAAe,CA+D3B","sourcesContent":["import * as admin from 'firebase-admin';\r\nimport { Service } from 'typedi';\r\nimport { ServiceAccount } from 'firebase-admin';\r\nimport { ConfigurationService } from '../configuration';\r\nimport { Error } from 'mongoose';\r\n\r\nconst DEFAULT_STORAGE_BUCKET = process.env.FIREBASE_STORAGE_BUCKET || 'lyxa-default';\r\n\r\n@Service()\r\nexport class FirebaseService {\r\n\tprivate readonly _superApp: admin.app.App;\r\n\tprivate readonly _userApp: admin.app.App;\r\n\tprivate readonly _shopApp: admin.app.App;\r\n\tprivate readonly _riderApp: admin.app.App;\r\n\r\n\tconstructor(private configService: ConfigurationService) {\r\n\t\tconst config = this.configService.options;\r\n\r\n\t\tif (!config.firebaseAdmin) {\r\n\t\t\tthrow new Error('Firebase Admin configuration is missing.');\r\n\t\t}\r\n\r\n\t\tconst { super: superConfig, user, shop, rider } = config.firebaseAdmin;\r\n\r\n\t\tthis._superApp = admin.initializeApp(\r\n\t\t\t{\r\n\t\t\t\tcredential: admin.credential.cert(superConfig.firebaseAdminServiceAccount as ServiceAccount),\r\n\t\t\t\tstorageBucket: DEFAULT_STORAGE_BUCKET,\r\n\t\t\t},\r\n\t\t\tsuperConfig.firebaseAdminAppName || 'super-app'\r\n\t\t);\r\n\r\n\t\tthis._userApp = admin.initializeApp(\r\n\t\t\t{\r\n\t\t\t\tcredential: admin.credential.cert(user.firebaseAdminServiceAccount as ServiceAccount),\r\n\t\t\t\tstorageBucket: DEFAULT_STORAGE_BUCKET,\r\n\t\t\t},\r\n\t\t\tuser.firebaseAdminAppName || 'user-app'\r\n\t\t);\r\n\r\n\t\tthis._shopApp = admin.initializeApp(\r\n\t\t\t{\r\n\t\t\t\tcredential: admin.credential.cert(shop.firebaseAdminServiceAccount as ServiceAccount),\r\n\t\t\t\tstorageBucket: DEFAULT_STORAGE_BUCKET,\r\n\t\t\t},\r\n\t\t\tshop.firebaseAdminAppName || 'shop-app'\r\n\t\t);\r\n\r\n\t\tthis._riderApp = admin.initializeApp(\r\n\t\t\t{\r\n\t\t\t\tcredential: admin.credential.cert(rider.firebaseAdminServiceAccount as ServiceAccount),\r\n\t\t\t\tstorageBucket: DEFAULT_STORAGE_BUCKET,\r\n\t\t\t},\r\n\t\t\trider.firebaseAdminAppName || 'rider-app'\r\n\t\t);\r\n\t}\r\n\r\n\tget superApp(): admin.app.App {\r\n\t\treturn this._superApp;\r\n\t}\r\n\r\n\tget userApp(): admin.app.App {\r\n\t\treturn this._userApp;\r\n\t}\r\n\r\n\tget shopApp(): admin.app.App {\r\n\t\treturn this._shopApp;\r\n\t}\r\n\r\n\tget riderApp(): admin.app.App {\r\n\t\treturn this._riderApp;\r\n\t}\r\n}\r\n"]}
@@ -1,12 +1,12 @@
1
- import { TwilioService } from "./twilio";
2
- import { LyxaLogger } from "./logger";
3
- import { MicroServiceDispatcher } from "./dispatcher";
4
- import { SecretManagerService } from "./secrets";
5
- import { RedisService } from "./redis";
6
- import { ConfigurationService } from "./configuration";
7
- import { UploadService } from "./upload";
8
- import { FirebaseService } from "./firebase";
9
- import { TokenRepository } from "./auth/repository";
1
+ import { TwilioService } from './twilio';
2
+ import { LyxaLogger } from './logger';
3
+ import { MicroServiceDispatcher } from './dispatcher';
4
+ import { SecretManagerService } from './secrets';
5
+ import { RedisService } from './redis';
6
+ import { ConfigurationService } from './configuration';
7
+ import { UploadService } from './upload';
8
+ import { FirebaseService } from './firebase';
9
+ import { TokenRepository } from './auth/repository';
10
10
  export declare class LibraryManager {
11
11
  getLogger(): LyxaLogger;
12
12
  getMicroServiceDispatcher(): MicroServiceDispatcher;
@@ -46,7 +46,7 @@ let LibraryManager = class LibraryManager {
46
46
  return new upload_1.UploadService();
47
47
  }
48
48
  getTenetUploadService() {
49
- return new upload_1.UploadService("lyxa-" + this.getConfigurationService().options.tenet);
49
+ return new upload_1.UploadService('lyxa-' + this.getConfigurationService().options.tenet);
50
50
  }
51
51
  };
52
52
  exports.LibraryManager = LibraryManager;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAA0C;AAC1C,qCAAuC;AACvC,qCAAoC;AACpC,6CAAoD;AACpD,uCAA+C;AAC/C,mCAAqC;AACrC,mDAAqD;AACrD,qCAAuC;AACvC,yCAA2C;AAC3C,kDAAkD;AAG3C,IAAM,cAAc,GAApB,MAAM,cAAc;IAChB,SAAS;QACZ,OAAO,kBAAS,CAAC,GAAG,CAAC,mBAAU,CAAC,CAAC;IACrC,CAAC;IACM,yBAAyB;QAC5B,OAAO,kBAAS,CAAC,GAAG,CAAC,mCAAsB,CAAC,CAAC;IACjD,CAAC;IACM,gBAAgB;QACnB,OAAO,kBAAS,CAAC,GAAG,CAAC,sBAAa,CAAC,CAAC;IACxC,CAAC;IACM,iBAAiB;QACpB,OAAO,kBAAS,CAAC,GAAG,CAAC,8BAAoB,CAAC,CAAC;IAC/C,CAAC;IACM,eAAe;QAClB,OAAO,kBAAS,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;IACvC,CAAC;IACM,uBAAuB;QAC1B,OAAO,kBAAS,CAAC,GAAG,CAAC,oCAAoB,CAAC,CAAC;IAC/C,CAAC;IACM,kBAAkB;QACrB,OAAO,kBAAS,CAAC,GAAG,CAAC,0BAAe,CAAC,CAAC;IAC1C,CAAC;IACM,sBAAsB;QACzB,OAAO,kBAAS,CAAC,GAAG,CAAC,4BAAe,CAAC,CAAC;IAC1C,CAAC;IACM,sBAAsB;QACzB,OAAO,IAAI,sBAAa,EAAE,CAAC;IAC/B,CAAC;IACM,qBAAqB;QACxB,OAAO,IAAI,sBAAa,CAAC,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;CACJ,CAAA;AA/BY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,gBAAO,GAAE;GACG,cAAc,CA+B1B","sourcesContent":["import {Container, Service} from \"typedi\";\r\nimport {TwilioService} from \"./twilio\";\r\nimport {LyxaLogger} from \"./logger\";\r\nimport {MicroServiceDispatcher} from \"./dispatcher\";\r\nimport {SecretManagerService} from \"./secrets\";\r\nimport {RedisService} from \"./redis\";\r\nimport {ConfigurationService} from \"./configuration\";\r\nimport {UploadService} from \"./upload\";\r\nimport {FirebaseService} from \"./firebase\";\r\nimport {TokenRepository} from \"./auth/repository\";\r\n\r\n@Service()\r\nexport class LibraryManager {\r\n public getLogger(): LyxaLogger {\r\n return Container.get(LyxaLogger);\r\n }\r\n public getMicroServiceDispatcher(): MicroServiceDispatcher {\r\n return Container.get(MicroServiceDispatcher);\r\n }\r\n public getTwilioService(): TwilioService {\r\n return Container.get(TwilioService);\r\n }\r\n public getSecretsService(): SecretManagerService {\r\n return Container.get(SecretManagerService);\r\n }\r\n public getRedisService(): RedisService {\r\n return Container.get(RedisService);\r\n }\r\n public getConfigurationService(): ConfigurationService {\r\n return Container.get(ConfigurationService);\r\n }\r\n public getFirebaseService(): FirebaseService {\r\n return Container.get(FirebaseService);\r\n }\r\n public getAuthTokenRepository(): TokenRepository {\r\n return Container.get(TokenRepository);\r\n }\r\n public getGlobalUploadService(): UploadService {\r\n return new UploadService();\r\n }\r\n public getTenetUploadService(): UploadService {\r\n return new UploadService(\"lyxa-\" + this.getConfigurationService().options.tenet);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAA4C;AAC5C,qCAAyC;AACzC,qCAAsC;AACtC,6CAAsD;AACtD,uCAAiD;AACjD,mCAAuC;AACvC,mDAAuD;AACvD,qCAAyC;AACzC,yCAA6C;AAC7C,kDAAoD;AAG7C,IAAM,cAAc,GAApB,MAAM,cAAc;IACnB,SAAS;QACf,OAAO,kBAAS,CAAC,GAAG,CAAC,mBAAU,CAAC,CAAC;IAClC,CAAC;IACM,yBAAyB;QAC/B,OAAO,kBAAS,CAAC,GAAG,CAAC,mCAAsB,CAAC,CAAC;IAC9C,CAAC;IACM,gBAAgB;QACtB,OAAO,kBAAS,CAAC,GAAG,CAAC,sBAAa,CAAC,CAAC;IACrC,CAAC;IACM,iBAAiB;QACvB,OAAO,kBAAS,CAAC,GAAG,CAAC,8BAAoB,CAAC,CAAC;IAC5C,CAAC;IACM,eAAe;QACrB,OAAO,kBAAS,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;IACpC,CAAC;IACM,uBAAuB;QAC7B,OAAO,kBAAS,CAAC,GAAG,CAAC,oCAAoB,CAAC,CAAC;IAC5C,CAAC;IACM,kBAAkB;QACxB,OAAO,kBAAS,CAAC,GAAG,CAAC,0BAAe,CAAC,CAAC;IACvC,CAAC;IACM,sBAAsB;QAC5B,OAAO,kBAAS,CAAC,GAAG,CAAC,4BAAe,CAAC,CAAC;IACvC,CAAC;IACM,sBAAsB;QAC5B,OAAO,IAAI,sBAAa,EAAE,CAAC;IAC5B,CAAC;IACM,qBAAqB;QAC3B,OAAO,IAAI,sBAAa,CAAC,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;CACD,CAAA;AA/BY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,gBAAO,GAAE;GACG,cAAc,CA+B1B","sourcesContent":["import { Container, Service } from 'typedi';\r\nimport { TwilioService } from './twilio';\r\nimport { LyxaLogger } from './logger';\r\nimport { MicroServiceDispatcher } from './dispatcher';\r\nimport { SecretManagerService } from './secrets';\r\nimport { RedisService } from './redis';\r\nimport { ConfigurationService } from './configuration';\r\nimport { UploadService } from './upload';\r\nimport { FirebaseService } from './firebase';\r\nimport { TokenRepository } from './auth/repository';\r\n\r\n@Service()\r\nexport class LibraryManager {\r\n\tpublic getLogger(): LyxaLogger {\r\n\t\treturn Container.get(LyxaLogger);\r\n\t}\r\n\tpublic getMicroServiceDispatcher(): MicroServiceDispatcher {\r\n\t\treturn Container.get(MicroServiceDispatcher);\r\n\t}\r\n\tpublic getTwilioService(): TwilioService {\r\n\t\treturn Container.get(TwilioService);\r\n\t}\r\n\tpublic getSecretsService(): SecretManagerService {\r\n\t\treturn Container.get(SecretManagerService);\r\n\t}\r\n\tpublic getRedisService(): RedisService {\r\n\t\treturn Container.get(RedisService);\r\n\t}\r\n\tpublic getConfigurationService(): ConfigurationService {\r\n\t\treturn Container.get(ConfigurationService);\r\n\t}\r\n\tpublic getFirebaseService(): FirebaseService {\r\n\t\treturn Container.get(FirebaseService);\r\n\t}\r\n\tpublic getAuthTokenRepository(): TokenRepository {\r\n\t\treturn Container.get(TokenRepository);\r\n\t}\r\n\tpublic getGlobalUploadService(): UploadService {\r\n\t\treturn new UploadService();\r\n\t}\r\n\tpublic getTenetUploadService(): UploadService {\r\n\t\treturn new UploadService('lyxa-' + this.getConfigurationService().options.tenet);\r\n\t}\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { Logger } from "pino";
1
+ import { Logger } from 'pino';
2
2
  export declare class LyxaLogger {
3
3
  private readonly _logger;
4
4
  constructor(identifier: string, mongoURI: string);
@@ -20,30 +20,30 @@ let LyxaLogger = class LyxaLogger {
20
20
  {
21
21
  target: 'pino-pretty',
22
22
  options: {
23
- colorize: true
23
+ colorize: true,
24
24
  },
25
- level: 'info'
25
+ level: 'info',
26
26
  },
27
27
  {
28
28
  target: 'pino/file',
29
29
  options: {
30
- destination: './logs/error.log'
30
+ destination: './logs/error.log',
31
31
  },
32
- level: 'error'
32
+ level: 'error',
33
33
  },
34
34
  {
35
35
  target: 'pino-mongodb',
36
36
  options: {
37
37
  uri: mongoURI,
38
38
  database: 'lyxa-logs',
39
- collection: identifier
39
+ collection: identifier,
40
40
  },
41
- level: 'error'
42
- }
43
- ]
41
+ level: 'error',
42
+ },
43
+ ],
44
44
  });
45
45
  this._logger = (0, pino_1.pino)({
46
- level: "info"
46
+ level: 'info',
47
47
  }, transports);
48
48
  }
49
49
  get logger() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAAoC;AACpC,mCAA+B;AAGxB,IAAM,UAAU,GAAhB,MAAM,UAAU;IACF,OAAO,CAAS;IAEjC,YAAY,UAAkB,EAAE,QAAgB;QAC5C,MAAM,UAAU,GAAG,WAAI,CAAC,SAAS,CAAC;YAC9B,OAAO,EAAE;gBACL;oBACI,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE;wBACL,QAAQ,EAAE,IAAI;qBACjB;oBACD,KAAK,EAAE,MAAM;iBAChB;gBACD;oBACI,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE;wBACL,WAAW,EAAE,kBAAkB;qBAClC;oBACD,KAAK,EAAE,OAAO;iBACjB;gBACD;oBACI,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE;wBACL,GAAG,EAAE,QAAQ;wBACb,QAAQ,EAAE,WAAW;wBACrB,UAAU,EAAE,UAAU;qBACzB;oBACD,KAAK,EAAE,OAAO;iBACjB;aACJ;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EACf;YACI,KAAK,EAAE,MAAM;SAChB,EACD,UAAU,CACb,CAAC;IACN,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ,CAAA;AA3CY,gCAAU;qBAAV,UAAU;IADtB,IAAA,gBAAO,GAAE;;GACG,UAAU,CA2CtB","sourcesContent":["import { pino, Logger } from \"pino\";\r\nimport {Service} from \"typedi\";\r\n\r\n@Service()\r\nexport class LyxaLogger {\r\n private readonly _logger: Logger;\r\n\r\n constructor(identifier: string, mongoURI: string) {\r\n const transports = pino.transport({\r\n targets: [\r\n {\r\n target: 'pino-pretty',\r\n options: {\r\n colorize: true\r\n },\r\n level: 'info'\r\n },\r\n {\r\n target: 'pino/file',\r\n options: {\r\n destination: './logs/error.log'\r\n },\r\n level: 'error'\r\n },\r\n {\r\n target: 'pino-mongodb',\r\n options: {\r\n uri: mongoURI,\r\n database: 'lyxa-logs',\r\n collection: identifier\r\n },\r\n level: 'error'\r\n }\r\n ]\r\n });\r\n\r\n this._logger = pino(\r\n {\r\n level: \"info\"\r\n },\r\n transports\r\n );\r\n }\r\n\r\n get logger(): Logger {\r\n return this._logger;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAAoC;AACpC,mCAAiC;AAG1B,IAAM,UAAU,GAAhB,MAAM,UAAU;IACL,OAAO,CAAS;IAEjC,YAAY,UAAkB,EAAE,QAAgB;QAC/C,MAAM,UAAU,GAAG,WAAI,CAAC,SAAS,CAAC;YACjC,OAAO,EAAE;gBACR;oBACC,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE;wBACR,QAAQ,EAAE,IAAI;qBACd;oBACD,KAAK,EAAE,MAAM;iBACb;gBACD;oBACC,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE;wBACR,WAAW,EAAE,kBAAkB;qBAC/B;oBACD,KAAK,EAAE,OAAO;iBACd;gBACD;oBACC,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE;wBACR,GAAG,EAAE,QAAQ;wBACb,QAAQ,EAAE,WAAW;wBACrB,UAAU,EAAE,UAAU;qBACtB;oBACD,KAAK,EAAE,OAAO;iBACd;aACD;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EAClB;YACC,KAAK,EAAE,MAAM;SACb,EACD,UAAU,CACV,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CACD,CAAA;AA3CY,gCAAU;qBAAV,UAAU;IADtB,IAAA,gBAAO,GAAE;;GACG,UAAU,CA2CtB","sourcesContent":["import { pino, Logger } from 'pino';\r\nimport { Service } from 'typedi';\r\n\r\n@Service()\r\nexport class LyxaLogger {\r\n\tprivate readonly _logger: Logger;\r\n\r\n\tconstructor(identifier: string, mongoURI: string) {\r\n\t\tconst transports = pino.transport({\r\n\t\t\ttargets: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttarget: 'pino-pretty',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tcolorize: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlevel: 'info',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttarget: 'pino/file',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdestination: './logs/error.log',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlevel: 'error',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttarget: 'pino-mongodb',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\turi: mongoURI,\r\n\t\t\t\t\t\tdatabase: 'lyxa-logs',\r\n\t\t\t\t\t\tcollection: identifier,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlevel: 'error',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t});\r\n\r\n\t\tthis._logger = pino(\r\n\t\t\t{\r\n\t\t\t\tlevel: 'info',\r\n\t\t\t},\r\n\t\t\ttransports\r\n\t\t);\r\n\t}\r\n\r\n\tget logger(): Logger {\r\n\t\treturn this._logger;\r\n\t}\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Connection } from 'mongoose';
2
2
  import { ReturnModelType } from '@typegoose/typegoose';
3
- import { AnyParamConstructor, IModelOptions } from "@typegoose/typegoose/lib/types";
3
+ import { AnyParamConstructor, IModelOptions } from '@typegoose/typegoose/lib/types';
4
4
  export declare function initGlobalConnection(uri: string, environment: string): Promise<Connection>;
5
5
  export declare function createGlobalModel<T extends AnyParamConstructor<any>>(Class: T, options?: IModelOptions): ReturnModelType<T>;
6
6
  export declare function createGlobalDiscriminatorModel<Base extends AnyParamConstructor<any>, Sub extends AnyParamConstructor<any>>(baseModel: ReturnModelType<Base>, subClass: Sub, discriminatorName?: string, options?: IModelOptions): ReturnModelType<Sub>;
@@ -13,7 +13,7 @@ let pendingModels = new Map();
13
13
  let pendingDiscriminatorModels = new Map();
14
14
  async function initGlobalConnection(uri, environment) {
15
15
  if (!connectionPromise) {
16
- connectionPromise = new Promise((resolve) => {
16
+ connectionPromise = new Promise(resolve => {
17
17
  console.log(`Initializing global connection for environment: ${environment}`);
18
18
  const connection = (0, mongoose_1.createConnection)(uri, {
19
19
  dbName: `lyxa-${environment}-global`,
@@ -24,15 +24,15 @@ async function initGlobalConnection(uri, environment) {
24
24
  for (const [modelName, { Class, options, resolve }] of pendingModels.entries()) {
25
25
  const model = (0, typegoose_1.getModelForClass)(Class, {
26
26
  existingConnection: globalConnection,
27
- ...options
27
+ ...options,
28
28
  });
29
29
  resolve(model);
30
30
  }
31
31
  pendingModels.clear();
32
- for (const [modelName, { baseModel, subClass, discriminatorName, options, resolve }] of pendingDiscriminatorModels.entries()) {
32
+ for (const [modelName, { baseModel, subClass, discriminatorName, options, resolve },] of pendingDiscriminatorModels.entries()) {
33
33
  const model = (0, typegoose_1.getDiscriminatorModelForClass)(baseModel, subClass, discriminatorName, {
34
34
  existingConnection: globalConnection,
35
- ...options
35
+ ...options,
36
36
  });
37
37
  resolve(model);
38
38
  }
@@ -48,13 +48,13 @@ function createGlobalModel(Class, options) {
48
48
  if (globalConnection) {
49
49
  return (0, typegoose_1.getModelForClass)(Class, {
50
50
  existingConnection: globalConnection,
51
- ...options
51
+ ...options,
52
52
  });
53
53
  }
54
54
  console.log(`Registering model ${modelName} to be initialized when global connection is ready`);
55
55
  let actualModel = null;
56
56
  let modelReadyPromise = null;
57
- modelReadyPromise = new Promise((resolve) => {
57
+ modelReadyPromise = new Promise(resolve => {
58
58
  pendingModels.set(modelName, { Class, options, resolve });
59
59
  });
60
60
  const modelProxy = new Proxy({}, {
@@ -69,7 +69,7 @@ function createGlobalModel(Class, options) {
69
69
  }
70
70
  return propValue;
71
71
  };
72
- }
72
+ },
73
73
  });
74
74
  return modelProxy;
75
75
  }
@@ -78,19 +78,19 @@ function createGlobalDiscriminatorModel(baseModel, subClass, discriminatorName,
78
78
  if (globalConnection) {
79
79
  return (0, typegoose_1.getDiscriminatorModelForClass)(baseModel, subClass, discriminatorName, {
80
80
  existingConnection: globalConnection,
81
- ...options
81
+ ...options,
82
82
  });
83
83
  }
84
84
  console.log(`Registering discriminator model ${modelName} to be initialized when global connection is ready`);
85
85
  let actualModel = null;
86
86
  let modelReadyPromise = null;
87
- modelReadyPromise = new Promise((resolve) => {
87
+ modelReadyPromise = new Promise(resolve => {
88
88
  pendingDiscriminatorModels.set(modelName, {
89
89
  baseModel,
90
90
  subClass,
91
91
  discriminatorName,
92
92
  options,
93
- resolve
93
+ resolve,
94
94
  });
95
95
  });
96
96
  const modelProxy = new Proxy({}, {
@@ -105,7 +105,7 @@ function createGlobalDiscriminatorModel(baseModel, subClass, discriminatorName,
105
105
  }
106
106
  return propValue;
107
107
  };
108
- }
108
+ },
109
109
  });
110
110
  return modelProxy;
111
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/mongo/index.ts"],"names":[],"mappings":"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","sourcesContent":["import mongoose, { Connection, createConnection } from 'mongoose';\r\nimport { getDiscriminatorModelForClass, getModelForClass, ReturnModelType } from '@typegoose/typegoose';\r\nimport { AnyParamConstructor, IModelOptions } from \"@typegoose/typegoose/lib/types\";\r\nimport { applySoftDeletePlugin } from './plugins/soft-delete-plugin';\r\n\r\n// Apply the soft delete plugin globally before any connections or models\r\napplySoftDeletePlugin();\r\n\r\n// Track connection status\r\nlet globalConnection: Connection | undefined;\r\nlet connectionPromise: Promise<Connection> | null = null;\r\nlet pendingModels = new Map<string, {\r\n Class: AnyParamConstructor<any>,\r\n options?: IModelOptions,\r\n resolve: (model: any) => void\r\n}>();\r\n\r\nlet pendingDiscriminatorModels = new Map<string, {\r\n baseModel: any,\r\n subClass: AnyParamConstructor<any>,\r\n discriminatorName?: string,\r\n options?: IModelOptions,\r\n resolve: (model: any) => void\r\n}>();\r\n\r\n/**\r\n * Initialize the global database connection\r\n */\r\nexport async function initGlobalConnection(uri: string, environment: string): Promise<Connection> {\r\n if (!connectionPromise) {\r\n connectionPromise = new Promise<Connection>((resolve) => {\r\n console.log(`Initializing global connection for environment: ${environment}`);\r\n const connection = createConnection(uri, {\r\n dbName: `lyxa-${environment}-global`,\r\n });\r\n\r\n connection.once('connected', () => {\r\n console.log('Global connection successfully established');\r\n globalConnection = connection;\r\n\r\n // Initialize any pending models with the real connection\r\n for (const [modelName, { Class, options, resolve }] of pendingModels.entries()) {\r\n const model = getModelForClass(Class, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n resolve(model);\r\n }\r\n pendingModels.clear();\r\n\r\n // Initialize any pending discriminator models\r\n for (const [modelName, { baseModel, subClass, discriminatorName, options, resolve }] of pendingDiscriminatorModels.entries()) {\r\n const model = getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n resolve(model);\r\n }\r\n pendingDiscriminatorModels.clear();\r\n\r\n resolve(connection);\r\n });\r\n });\r\n }\r\n return connectionPromise;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose model that will use the global connection when it's ready.\r\n * Safe to call during module initialization before initGlobalConnection.\r\n */\r\nexport function createGlobalModel<T extends AnyParamConstructor<any>>(\r\n Class: T,\r\n options?: IModelOptions\r\n): ReturnModelType<T> {\r\n const modelName = options?.schemaOptions?.collection || Class.name;\r\n\r\n // If the connection is already initialized, create the model directly\r\n if (globalConnection) {\r\n return getModelForClass(Class, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n }\r\n\r\n console.log(`Registering model ${modelName} to be initialized when global connection is ready`);\r\n\r\n // Create a lazy-loaded model instance that will initialize once the connection is ready\r\n let actualModel: ReturnModelType<T> | null = null;\r\n let modelReadyPromise: Promise<ReturnModelType<T>> | null = null;\r\n\r\n // Setup the promise that will resolve once the model is ready\r\n modelReadyPromise = new Promise<ReturnModelType<T>>((resolve) => {\r\n // Register this model to be initialized when connection is ready\r\n pendingModels.set(modelName, { Class, options, resolve });\r\n });\r\n\r\n // Create a proxy that forwards operations to the real model once it's available\r\n const modelProxy = new Proxy({} as ReturnModelType<T>, {\r\n get(target, prop, receiver) {\r\n return async function(...args: any[]) {\r\n if (!actualModel) {\r\n actualModel = await modelReadyPromise!;\r\n }\r\n\r\n const propValue = (actualModel as any)[prop];\r\n if (typeof propValue === 'function') {\r\n return propValue.apply(actualModel, args);\r\n }\r\n return propValue;\r\n };\r\n }\r\n });\r\n\r\n return modelProxy;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose discriminator model that will use the global connection when it's ready.\r\n * Safe to call during module initialization before initGlobalConnection.\r\n */\r\nexport function createGlobalDiscriminatorModel<\r\n Base extends AnyParamConstructor<any>,\r\n Sub extends AnyParamConstructor<any>,\r\n>(\r\n baseModel: ReturnModelType<Base>,\r\n subClass: Sub,\r\n discriminatorName?: string,\r\n options?: IModelOptions,\r\n): ReturnModelType<Sub> {\r\n const modelName = discriminatorName || subClass.name;\r\n\r\n // If the connection is already initialized, create the model directly\r\n if (globalConnection) {\r\n return getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n }\r\n\r\n console.log(`Registering discriminator model ${modelName} to be initialized when global connection is ready`);\r\n\r\n // Create a lazy-loaded model instance that will initialize once the connection is ready\r\n let actualModel: ReturnModelType<Sub> | null = null;\r\n let modelReadyPromise: Promise<ReturnModelType<Sub>> | null = null;\r\n\r\n // Setup the promise that will resolve once the model is ready\r\n modelReadyPromise = new Promise<ReturnModelType<Sub>>((resolve) => {\r\n // Register this discriminator model to be initialized when connection is ready\r\n pendingDiscriminatorModels.set(modelName, {\r\n baseModel,\r\n subClass,\r\n discriminatorName,\r\n options,\r\n resolve\r\n });\r\n });\r\n\r\n // Create a proxy that forwards operations to the real model once it's available\r\n const modelProxy = new Proxy({} as ReturnModelType<Sub>, {\r\n get(target, prop, receiver) {\r\n return async function(...args: any[]) {\r\n if (!actualModel) {\r\n actualModel = await modelReadyPromise!;\r\n }\r\n\r\n const propValue = (actualModel as any)[prop];\r\n if (typeof propValue === 'function') {\r\n return propValue.apply(actualModel, args);\r\n }\r\n return propValue;\r\n };\r\n }\r\n });\r\n\r\n return modelProxy;\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/mongo/index.ts"],"names":[],"mappings":"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","sourcesContent":["import mongoose, { Connection, createConnection } from 'mongoose';\r\nimport { getDiscriminatorModelForClass, getModelForClass, ReturnModelType } from '@typegoose/typegoose';\r\nimport { AnyParamConstructor, IModelOptions } from '@typegoose/typegoose/lib/types';\r\nimport { applySoftDeletePlugin } from './plugins/soft-delete-plugin';\r\n\r\n// Apply the soft delete plugin globally before any connections or models\r\napplySoftDeletePlugin();\r\n\r\n// Track connection status\r\nlet globalConnection: Connection | undefined;\r\nlet connectionPromise: Promise<Connection> | null = null;\r\nlet pendingModels = new Map<\r\n\tstring,\r\n\t{\r\n\t\tClass: AnyParamConstructor<any>;\r\n\t\toptions?: IModelOptions;\r\n\t\tresolve: (model: any) => void;\r\n\t}\r\n>();\r\n\r\nlet pendingDiscriminatorModels = new Map<\r\n\tstring,\r\n\t{\r\n\t\tbaseModel: any;\r\n\t\tsubClass: AnyParamConstructor<any>;\r\n\t\tdiscriminatorName?: string;\r\n\t\toptions?: IModelOptions;\r\n\t\tresolve: (model: any) => void;\r\n\t}\r\n>();\r\n\r\n/**\r\n * Initialize the global database connection\r\n */\r\nexport async function initGlobalConnection(uri: string, environment: string): Promise<Connection> {\r\n\tif (!connectionPromise) {\r\n\t\tconnectionPromise = new Promise<Connection>(resolve => {\r\n\t\t\tconsole.log(`Initializing global connection for environment: ${environment}`);\r\n\t\t\tconst connection = createConnection(uri, {\r\n\t\t\t\tdbName: `lyxa-${environment}-global`,\r\n\t\t\t});\r\n\r\n\t\t\tconnection.once('connected', () => {\r\n\t\t\t\tconsole.log('Global connection successfully established');\r\n\t\t\t\tglobalConnection = connection;\r\n\r\n\t\t\t\t// Initialize any pending models with the real connection\r\n\t\t\t\tfor (const [modelName, { Class, options, resolve }] of pendingModels.entries()) {\r\n\t\t\t\t\tconst model = getModelForClass(Class, {\r\n\t\t\t\t\t\texistingConnection: globalConnection,\r\n\t\t\t\t\t\t...options,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tresolve(model);\r\n\t\t\t\t}\r\n\t\t\t\tpendingModels.clear();\r\n\r\n\t\t\t\t// Initialize any pending discriminator models\r\n\t\t\t\tfor (const [\r\n\t\t\t\t\tmodelName,\r\n\t\t\t\t\t{ baseModel, subClass, discriminatorName, options, resolve },\r\n\t\t\t\t] of pendingDiscriminatorModels.entries()) {\r\n\t\t\t\t\tconst model = getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n\t\t\t\t\t\texistingConnection: globalConnection,\r\n\t\t\t\t\t\t...options,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tresolve(model);\r\n\t\t\t\t}\r\n\t\t\t\tpendingDiscriminatorModels.clear();\r\n\r\n\t\t\t\tresolve(connection);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\treturn connectionPromise;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose model that will use the global connection when it's ready.\r\n * Safe to call during module initialization before initGlobalConnection.\r\n */\r\nexport function createGlobalModel<T extends AnyParamConstructor<any>>(\r\n\tClass: T,\r\n\toptions?: IModelOptions\r\n): ReturnModelType<T> {\r\n\tconst modelName = options?.schemaOptions?.collection || Class.name;\r\n\r\n\t// If the connection is already initialized, create the model directly\r\n\tif (globalConnection) {\r\n\t\treturn getModelForClass(Class, {\r\n\t\t\texistingConnection: globalConnection,\r\n\t\t\t...options,\r\n\t\t});\r\n\t}\r\n\r\n\tconsole.log(`Registering model ${modelName} to be initialized when global connection is ready`);\r\n\r\n\t// Create a lazy-loaded model instance that will initialize once the connection is ready\r\n\tlet actualModel: ReturnModelType<T> | null = null;\r\n\tlet modelReadyPromise: Promise<ReturnModelType<T>> | null = null;\r\n\r\n\t// Setup the promise that will resolve once the model is ready\r\n\tmodelReadyPromise = new Promise<ReturnModelType<T>>(resolve => {\r\n\t\t// Register this model to be initialized when connection is ready\r\n\t\tpendingModels.set(modelName, { Class, options, resolve });\r\n\t});\r\n\r\n\t// Create a proxy that forwards operations to the real model once it's available\r\n\tconst modelProxy = new Proxy({} as ReturnModelType<T>, {\r\n\t\tget(target, prop, receiver) {\r\n\t\t\treturn async function (...args: any[]) {\r\n\t\t\t\tif (!actualModel) {\r\n\t\t\t\t\tactualModel = await modelReadyPromise!;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst propValue = (actualModel as any)[prop];\r\n\t\t\t\tif (typeof propValue === 'function') {\r\n\t\t\t\t\treturn propValue.apply(actualModel, args);\r\n\t\t\t\t}\r\n\t\t\t\treturn propValue;\r\n\t\t\t};\r\n\t\t},\r\n\t});\r\n\r\n\treturn modelProxy;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose discriminator model that will use the global connection when it's ready.\r\n * Safe to call during module initialization before initGlobalConnection.\r\n */\r\nexport function createGlobalDiscriminatorModel<\r\n\tBase extends AnyParamConstructor<any>,\r\n\tSub extends AnyParamConstructor<any>,\r\n>(\r\n\tbaseModel: ReturnModelType<Base>,\r\n\tsubClass: Sub,\r\n\tdiscriminatorName?: string,\r\n\toptions?: IModelOptions\r\n): ReturnModelType<Sub> {\r\n\tconst modelName = discriminatorName || subClass.name;\r\n\r\n\t// If the connection is already initialized, create the model directly\r\n\tif (globalConnection) {\r\n\t\treturn getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n\t\t\texistingConnection: globalConnection,\r\n\t\t\t...options,\r\n\t\t});\r\n\t}\r\n\r\n\tconsole.log(\r\n\t\t`Registering discriminator model ${modelName} to be initialized when global connection is ready`\r\n\t);\r\n\r\n\t// Create a lazy-loaded model instance that will initialize once the connection is ready\r\n\tlet actualModel: ReturnModelType<Sub> | null = null;\r\n\tlet modelReadyPromise: Promise<ReturnModelType<Sub>> | null = null;\r\n\r\n\t// Setup the promise that will resolve once the model is ready\r\n\tmodelReadyPromise = new Promise<ReturnModelType<Sub>>(resolve => {\r\n\t\t// Register this discriminator model to be initialized when connection is ready\r\n\t\tpendingDiscriminatorModels.set(modelName, {\r\n\t\t\tbaseModel,\r\n\t\t\tsubClass,\r\n\t\t\tdiscriminatorName,\r\n\t\t\toptions,\r\n\t\t\tresolve,\r\n\t\t});\r\n\t});\r\n\r\n\t// Create a proxy that forwards operations to the real model once it's available\r\n\tconst modelProxy = new Proxy({} as ReturnModelType<Sub>, {\r\n\t\tget(target, prop, receiver) {\r\n\t\t\treturn async function (...args: any[]) {\r\n\t\t\t\tif (!actualModel) {\r\n\t\t\t\t\tactualModel = await modelReadyPromise!;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst propValue = (actualModel as any)[prop];\r\n\t\t\t\tif (typeof propValue === 'function') {\r\n\t\t\t\t\treturn propValue.apply(actualModel, args);\r\n\t\t\t\t}\r\n\t\t\t\treturn propValue;\r\n\t\t\t};\r\n\t\t},\r\n\t});\r\n\r\n\treturn modelProxy;\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { ReturnModelType, Ref } from '@typegoose/typegoose';
1
+ import { Ref } from '@typegoose/typegoose';
2
2
  import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
3
3
  import { UpdatedField } from '../../../utilities/enum';
4
4
  import { Admin } from './admin.model';
@@ -8,4 +8,3 @@ export declare class ActivityLog extends TimeStamps {
8
8
  oldDocument: any;
9
9
  newDocument: any;
10
10
  }
11
- export declare const ActivityLogModel: ReturnModelType<typeof ActivityLog>;