@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.
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -7
- package/dist/index.js.map +1 -1
- package/dist/libraries/auth/index.d.ts +3 -3
- package/dist/libraries/auth/index.js +26 -26
- package/dist/libraries/auth/index.js.map +1 -1
- package/dist/libraries/auth/refreshtoken.d.ts +1 -1
- package/dist/libraries/auth/refreshtoken.js +6 -10
- package/dist/libraries/auth/refreshtoken.js.map +1 -1
- package/dist/libraries/auth/repository.d.ts +3 -3
- package/dist/libraries/auth/repository.js +1 -5
- package/dist/libraries/auth/repository.js.map +1 -1
- package/dist/libraries/configuration/index.d.ts +2 -2
- package/dist/libraries/configuration/index.js +20 -20
- package/dist/libraries/configuration/index.js.map +1 -1
- package/dist/libraries/configuration/types/EnvironmentConfigurationType.js.map +1 -1
- package/dist/libraries/dispatcher/index.d.ts +2 -2
- package/dist/libraries/dispatcher/index.js +2 -2
- package/dist/libraries/dispatcher/index.js.map +1 -1
- package/dist/libraries/event/BaseEvent.js.map +1 -1
- package/dist/libraries/event/decorators/metadata.d.ts +1 -1
- package/dist/libraries/event/decorators/metadata.js.map +1 -1
- package/dist/libraries/event/decorators/subscribe.js.map +1 -1
- package/dist/libraries/event/index.d.ts +1 -1
- package/dist/libraries/event/index.js +6 -6
- package/dist/libraries/event/index.js.map +1 -1
- package/dist/libraries/event/registry/SubscriptionRegistry.js.map +1 -1
- package/dist/libraries/event/test/OrderCreationEvent.d.ts +1 -1
- package/dist/libraries/event/test/OrderCreationEvent.js +9 -6
- package/dist/libraries/event/test/OrderCreationEvent.js.map +1 -1
- package/dist/libraries/firebase/index.d.ts +1 -1
- package/dist/libraries/firebase/index.js.map +1 -1
- package/dist/libraries/index.d.ts +9 -9
- package/dist/libraries/index.js +1 -1
- package/dist/libraries/index.js.map +1 -1
- package/dist/libraries/logger/index.d.ts +1 -1
- package/dist/libraries/logger/index.js +9 -9
- package/dist/libraries/logger/index.js.map +1 -1
- package/dist/libraries/mongo/index.d.ts +1 -1
- package/dist/libraries/mongo/index.js +11 -11
- package/dist/libraries/mongo/index.js.map +1 -1
- package/dist/libraries/mongo/models/activity-log.model.d.ts +1 -2
- package/dist/libraries/mongo/models/activity-log.model.js +1 -2
- package/dist/libraries/mongo/models/activity-log.model.js.map +1 -1
- package/dist/libraries/mongo/models/admin-access-control.model.d.ts +1 -2
- package/dist/libraries/mongo/models/admin-access-control.model.js +1 -2
- package/dist/libraries/mongo/models/admin-access-control.model.js.map +1 -1
- package/dist/libraries/mongo/models/admin.model.d.ts +3 -2
- package/dist/libraries/mongo/models/admin.model.js +20 -3
- package/dist/libraries/mongo/models/admin.model.js.map +1 -1
- package/dist/libraries/mongo/models/app-screen-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/app-screen-setting.model.js +1 -2
- package/dist/libraries/mongo/models/app-screen-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/attribute.model.d.ts +1 -2
- package/dist/libraries/mongo/models/attribute.model.js +1 -2
- package/dist/libraries/mongo/models/attribute.model.js.map +1 -1
- package/dist/libraries/mongo/models/banner.model.d.ts +1 -2
- package/dist/libraries/mongo/models/banner.model.js +1 -2
- package/dist/libraries/mongo/models/banner.model.js.map +1 -1
- package/dist/libraries/mongo/models/base/base-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/base/base-review.model.d.ts +1 -1
- package/dist/libraries/mongo/models/base/base-review.model.js +2 -2
- package/dist/libraries/mongo/models/base/base-review.model.js.map +1 -1
- package/dist/libraries/mongo/models/bob-finance.model.d.ts +2 -3
- package/dist/libraries/mongo/models/bob-finance.model.js +2 -3
- package/dist/libraries/mongo/models/bob-finance.model.js.map +1 -1
- package/dist/libraries/mongo/models/brand.model.d.ts +0 -2
- package/dist/libraries/mongo/models/brand.model.js +1 -2
- package/dist/libraries/mongo/models/brand.model.js.map +1 -1
- package/dist/libraries/mongo/models/category.model.d.ts +1 -2
- package/dist/libraries/mongo/models/category.model.js +1 -2
- package/dist/libraries/mongo/models/category.model.js.map +1 -1
- package/dist/libraries/mongo/models/core-auth-identity.model.js.map +1 -1
- package/dist/libraries/mongo/models/core-user.model.js.map +1 -1
- package/dist/libraries/mongo/models/counter.model.d.ts +0 -2
- package/dist/libraries/mongo/models/counter.model.js +1 -2
- package/dist/libraries/mongo/models/counter.model.js.map +1 -1
- package/dist/libraries/mongo/models/coupon.model.d.ts +0 -2
- package/dist/libraries/mongo/models/coupon.model.js +4 -3
- package/dist/libraries/mongo/models/coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/deal-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/deal-setting.model.js +1 -2
- package/dist/libraries/mongo/models/deal-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/dish.model.d.ts +1 -2
- package/dist/libraries/mongo/models/dish.model.js +1 -2
- package/dist/libraries/mongo/models/dish.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/attribute-item.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/attribute-map.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/business-development-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/charge-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/charge.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/courier-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/currency-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/currency.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/featured-item.mode.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/otp-fields.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/package.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/parent-document.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/payout-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/price.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/product-nutrition.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/referral-discount-config.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/rider-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/service-fee-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/shop-document.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/subscription-summary.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/zone-geometry.mode.js.map +1 -1
- package/dist/libraries/mongo/models/faq.model.d.ts +0 -2
- package/dist/libraries/mongo/models/faq.model.js +1 -2
- package/dist/libraries/mongo/models/faq.model.js.map +1 -1
- package/dist/libraries/mongo/models/favourite.model.d.ts +3 -4
- package/dist/libraries/mongo/models/favourite.model.js +3 -4
- package/dist/libraries/mongo/models/favourite.model.js.map +1 -1
- package/dist/libraries/mongo/models/featured-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/featured-setting.model.js +1 -2
- package/dist/libraries/mongo/models/featured-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/filter-container.model.d.ts +0 -1
- package/dist/libraries/mongo/models/filter-container.model.js +1 -2
- package/dist/libraries/mongo/models/filter-container.model.js.map +1 -1
- package/dist/libraries/mongo/models/index.d.ts +114 -7
- package/dist/libraries/mongo/models/index.js +118 -7
- package/dist/libraries/mongo/models/index.js.map +1 -1
- package/dist/libraries/mongo/models/list-container.model.d.ts +2 -3
- package/dist/libraries/mongo/models/list-container.model.js +2 -3
- package/dist/libraries/mongo/models/list-container.model.js.map +1 -1
- package/dist/libraries/mongo/models/loyalty-point-category.model.d.ts +0 -2
- package/dist/libraries/mongo/models/loyalty-point-category.model.js +1 -2
- package/dist/libraries/mongo/models/loyalty-point-category.model.js.map +1 -1
- package/dist/libraries/mongo/models/loyalty-point-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/loyalty-point-setting.model.js +1 -2
- package/dist/libraries/mongo/models/loyalty-point-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/marketing.model.d.ts +2 -3
- package/dist/libraries/mongo/models/marketing.model.js +13 -5
- package/dist/libraries/mongo/models/marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/meal-plan.model.d.ts +0 -2
- package/dist/libraries/mongo/models/meal-plan.model.js +1 -2
- package/dist/libraries/mongo/models/meal-plan.model.js.map +1 -1
- package/dist/libraries/mongo/models/notification.model.d.ts +8 -9
- package/dist/libraries/mongo/models/notification.model.js +8 -9
- package/dist/libraries/mongo/models/notification.model.js.map +1 -1
- package/dist/libraries/mongo/models/nutrition.model.d.ts +0 -2
- package/dist/libraries/mongo/models/nutrition.model.js +1 -2
- package/dist/libraries/mongo/models/nutrition.model.js.map +1 -1
- package/dist/libraries/mongo/models/order.model.js.map +1 -1
- package/dist/libraries/mongo/models/parent.model.d.ts +3 -4
- package/dist/libraries/mongo/models/parent.model.js +8 -5
- package/dist/libraries/mongo/models/parent.model.js.map +1 -1
- package/dist/libraries/mongo/models/payout.model.js.map +1 -1
- package/dist/libraries/mongo/models/product-marketing.model.d.ts +3 -4
- package/dist/libraries/mongo/models/product-marketing.model.js +3 -4
- package/dist/libraries/mongo/models/product-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/product.model.d.ts +1 -3
- package/dist/libraries/mongo/models/product.model.js +8 -4
- package/dist/libraries/mongo/models/product.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.js +1 -2
- package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/custom-coupon.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/custom-coupon.model.js +1 -3
- package/dist/libraries/mongo/models/providers/custom-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/discount-marketing.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/discount-marketing.model.js +1 -2
- package/dist/libraries/mongo/models/providers/discount-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/featured-marketing.model.d.ts +0 -2
- package/dist/libraries/mongo/models/providers/featured-marketing.model.js +1 -2
- package/dist/libraries/mongo/models/providers/featured-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.d.ts +0 -2
- package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.js +1 -2
- package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/global-coupon.model.d.ts +0 -2
- package/dist/libraries/mongo/models/providers/global-coupon.model.js +1 -4
- package/dist/libraries/mongo/models/providers/global-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/individual-store-coupon.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js +1 -3
- package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/individual-user-coupon.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js +1 -3
- package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.js +1 -2
- package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/punch-marketing.model.d.ts +0 -2
- package/dist/libraries/mongo/models/providers/punch-marketing.model.js +1 -2
- package/dist/libraries/mongo/models/providers/punch-marketing.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/referral-code-coupon.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/referral-code-coupon.model.js +1 -2
- package/dist/libraries/mongo/models/providers/referral-code-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +1 -2
- package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js +1 -3
- package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/punch-marketing-history.model.d.ts +1 -2
- package/dist/libraries/mongo/models/punch-marketing-history.model.js +1 -2
- package/dist/libraries/mongo/models/punch-marketing-history.model.js.map +1 -1
- package/dist/libraries/mongo/models/rating-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/rating-setting.model.js +1 -2
- package/dist/libraries/mongo/models/rating-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/referral-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/referral-setting.model.js +1 -2
- package/dist/libraries/mongo/models/referral-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/request-area.model.d.ts +1 -2
- package/dist/libraries/mongo/models/request-area.model.js +1 -2
- package/dist/libraries/mongo/models/request-area.model.js.map +1 -1
- package/dist/libraries/mongo/models/rider-review.model.d.ts +1 -2
- package/dist/libraries/mongo/models/rider-review.model.js +1 -2
- package/dist/libraries/mongo/models/rider-review.model.js.map +1 -1
- package/dist/libraries/mongo/models/rider.model.js.map +1 -1
- package/dist/libraries/mongo/models/role.model.d.ts +0 -2
- package/dist/libraries/mongo/models/role.model.js +1 -3
- package/dist/libraries/mongo/models/role.model.js.map +1 -1
- package/dist/libraries/mongo/models/setting.model.d.ts +6 -8
- package/dist/libraries/mongo/models/setting.model.js +7 -8
- package/dist/libraries/mongo/models/setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/shared/address.model.d.ts +1 -1
- package/dist/libraries/mongo/models/shared/address.model.js.map +1 -1
- package/dist/libraries/mongo/models/shared/duration.model.js.map +1 -1
- package/dist/libraries/mongo/models/shared/work-hour.model.d.ts +1 -1
- package/dist/libraries/mongo/models/shared/work-hour.model.js +1 -1
- package/dist/libraries/mongo/models/shared/work-hour.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop-access-control.model.d.ts +1 -2
- package/dist/libraries/mongo/models/shop-access-control.model.js +1 -2
- package/dist/libraries/mongo/models/shop-access-control.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop-category.model.d.ts +2 -3
- package/dist/libraries/mongo/models/shop-category.model.js +2 -3
- package/dist/libraries/mongo/models/shop-category.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop-meal-plan.model.d.ts +2 -3
- package/dist/libraries/mongo/models/shop-meal-plan.model.js +2 -3
- package/dist/libraries/mongo/models/shop-meal-plan.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop-product.model.d.ts +4 -5
- package/dist/libraries/mongo/models/shop-product.model.js +4 -5
- package/dist/libraries/mongo/models/shop-product.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop-review.model.d.ts +1 -2
- package/dist/libraries/mongo/models/shop-review.model.js +1 -2
- package/dist/libraries/mongo/models/shop-review.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop.model.d.ts +3 -4
- package/dist/libraries/mongo/models/shop.model.js +12 -6
- package/dist/libraries/mongo/models/shop.model.js.map +1 -1
- package/dist/libraries/mongo/models/subscription-setting.model.d.ts +0 -2
- package/dist/libraries/mongo/models/subscription-setting.model.js +7 -3
- package/dist/libraries/mongo/models/subscription-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/subscription.model.d.ts +3 -4
- package/dist/libraries/mongo/models/subscription.model.js +13 -6
- package/dist/libraries/mongo/models/subscription.model.js.map +1 -1
- package/dist/libraries/mongo/models/tag.model.d.ts +0 -2
- package/dist/libraries/mongo/models/tag.model.js +1 -2
- package/dist/libraries/mongo/models/tag.model.js.map +1 -1
- package/dist/libraries/mongo/models/transaction.model.js.map +1 -1
- package/dist/libraries/mongo/models/zone.model.d.ts +0 -2
- package/dist/libraries/mongo/models/zone.model.js +1 -2
- package/dist/libraries/mongo/models/zone.model.js.map +1 -1
- package/dist/libraries/mongo/plugins/soft-delete-plugin.d.ts +8 -7
- package/dist/libraries/mongo/plugins/soft-delete-plugin.js +6 -6
- package/dist/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -1
- package/dist/libraries/redis/index.d.ts +1 -1
- package/dist/libraries/redis/index.js +4 -1
- package/dist/libraries/redis/index.js.map +1 -1
- package/dist/libraries/secrets/index.d.ts +2 -2
- package/dist/libraries/secrets/index.js +13 -13
- package/dist/libraries/secrets/index.js.map +1 -1
- package/dist/libraries/trpc/context.d.ts +4 -4
- package/dist/libraries/trpc/context.js +1 -1
- package/dist/libraries/trpc/context.js.map +1 -1
- package/dist/libraries/trpc/index.js.map +1 -1
- package/dist/libraries/trpc/middlewares/auth.d.ts +1 -1
- package/dist/libraries/trpc/middlewares/auth.js +12 -13
- package/dist/libraries/trpc/middlewares/auth.js.map +1 -1
- package/dist/libraries/trpc/middlewares/cors.d.ts +12 -0
- package/dist/libraries/trpc/middlewares/cors.js +50 -0
- package/dist/libraries/trpc/middlewares/cors.js.map +1 -0
- package/dist/libraries/twilio/index.d.ts +1 -1
- package/dist/libraries/twilio/index.js +2 -3
- package/dist/libraries/twilio/index.js.map +1 -1
- package/dist/libraries/upload/index.js +3 -3
- package/dist/libraries/upload/index.js.map +1 -1
- package/dist/utilities/enum.js.map +1 -1
- package/dist/utilities/error-handler.js.map +1 -1
- package/dist/utilities/error-middleware.js.map +1 -1
- package/dist/utilities/pagination.d.ts +4 -4
- package/dist/utilities/pagination.js +3 -8
- package/dist/utilities/pagination.js.map +1 -1
- package/dist/utilities/transformers.d.ts +2 -2
- package/dist/utilities/transformers.js +6 -6
- package/dist/utilities/transformers.js.map +1 -1
- package/dist/utilities/validation/common-validation.js.map +1 -1
- package/dist/utilities/validation/global-validation.js.map +1 -1
- package/dist/utilities/validation/index.js.map +1 -1
- 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;
|
|
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
|
|
2
|
-
import { SecretManagerService } from
|
|
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(
|
|
22
|
+
const deploymentURL = await this._secretService.getKey('DEPLOYMENTS_MICROSERVICE_' + serviceName.toUpperCase() + '_ENDPOINT');
|
|
23
23
|
if (!deploymentURL) {
|
|
24
|
-
throw new Error(
|
|
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,
|
|
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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"/","sources":["libraries/event/decorators/metadata.ts"],"names":[],"mappings":";;;
|
|
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,
|
|
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
|
|
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 =
|
|
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,
|
|
17
|
-
console.log(
|
|
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(
|
|
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:
|
|
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(
|
|
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;
|
|
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":";;;
|
|
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"]}
|
|
@@ -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(
|
|
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)(
|
|
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)(
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/firebase/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,mCAAiC;AAEjC,
|
|
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
|
|
2
|
-
import { LyxaLogger } from
|
|
3
|
-
import { MicroServiceDispatcher } from
|
|
4
|
-
import { SecretManagerService } from
|
|
5
|
-
import { RedisService } from
|
|
6
|
-
import { ConfigurationService } from
|
|
7
|
-
import { UploadService } from
|
|
8
|
-
import { FirebaseService } from
|
|
9
|
-
import { TokenRepository } from
|
|
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;
|
package/dist/libraries/index.js
CHANGED
|
@@ -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(
|
|
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,
|
|
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"]}
|
|
@@ -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:
|
|
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,
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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 {
|
|
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>;
|