@lyxa.ai/core 1.4.297 → 1.4.298
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/libraries/index.d.ts +6 -0
- package/dist/libraries/index.js +57 -26
- package/dist/libraries/index.js.map +1 -1
- package/dist/libraries/mongo/models/bob-finance.model.js +2 -5
- package/dist/libraries/mongo/models/bob-finance.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +2 -0
- package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js +6 -0
- package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +1 -1
- package/dist/libraries/upload/index.js +3 -3
- package/dist/libraries/upload/index.js.map +1 -1
- package/dist/types/README.md +1 -1
- package/dist/types/index.js.map +1 -0
- package/dist/types/libraries/auth/index.d.ts +77 -0
- package/dist/types/libraries/auth/index.js +270 -0
- package/dist/types/libraries/auth/index.js.map +1 -0
- package/dist/types/libraries/auth/refreshtoken.d.ts +15 -0
- package/dist/types/libraries/auth/refreshtoken.js +91 -0
- package/dist/types/libraries/auth/refreshtoken.js.map +1 -0
- package/dist/types/libraries/auth/repository.d.ts +18 -0
- package/dist/types/libraries/auth/repository.js +43 -0
- package/dist/types/libraries/auth/repository.js.map +1 -0
- package/dist/types/libraries/bullmq/bull-mq-service.d.ts +9 -0
- package/dist/types/libraries/bullmq/bull-mq-service.js +42 -0
- package/dist/types/libraries/bullmq/bull-mq-service.js.map +1 -0
- package/dist/types/libraries/cache/settings/index.d.ts +7 -0
- package/dist/types/libraries/cache/settings/index.js +56 -0
- package/dist/types/libraries/cache/settings/index.js.map +1 -0
- package/dist/types/libraries/cash-settlement/cashSettlementService.d.ts +16 -0
- package/dist/types/libraries/cash-settlement/cashSettlementService.js +53 -0
- package/dist/types/libraries/cash-settlement/cashSettlementService.js.map +1 -0
- package/dist/types/libraries/cash-settlement/index.d.ts +2 -0
- package/dist/types/libraries/cash-settlement/index.js +19 -0
- package/dist/types/libraries/cash-settlement/index.js.map +1 -0
- package/dist/types/libraries/cash-settlement/interfaces/ICashSettlement.d.ts +24 -0
- package/dist/types/libraries/cash-settlement/interfaces/ICashSettlement.js +10 -0
- package/dist/types/libraries/cash-settlement/interfaces/ICashSettlement.js.map +1 -0
- package/dist/types/libraries/cash-settlement/providers/bob.d.ts +45 -0
- package/dist/types/libraries/cash-settlement/providers/bob.js +634 -0
- package/dist/types/libraries/cash-settlement/providers/bob.js.map +1 -0
- package/dist/types/libraries/cash-settlement/providers/index.d.ts +1 -0
- package/dist/types/libraries/cash-settlement/providers/index.js +18 -0
- package/dist/types/libraries/cash-settlement/providers/index.js.map +1 -0
- package/dist/types/libraries/cloud-storage/CloudStorageFactory.d.ts +7 -0
- package/dist/types/libraries/cloud-storage/CloudStorageFactory.js +18 -0
- package/dist/types/libraries/cloud-storage/CloudStorageFactory.js.map +1 -0
- package/dist/types/libraries/cloud-storage/index.d.ts +4 -0
- package/dist/types/libraries/cloud-storage/index.js +21 -0
- package/dist/types/libraries/cloud-storage/index.js.map +1 -0
- package/dist/types/libraries/cloud-storage/interfaces/ICloudStorage.d.ts +8 -0
- package/dist/types/libraries/cloud-storage/interfaces/ICloudStorage.js +3 -0
- package/dist/types/libraries/cloud-storage/interfaces/ICloudStorage.js.map +1 -0
- package/dist/types/libraries/cloud-storage/providers/GcsStorageService.d.ts +11 -0
- package/dist/types/libraries/cloud-storage/providers/GcsStorageService.js +63 -0
- package/dist/types/libraries/cloud-storage/providers/GcsStorageService.js.map +1 -0
- package/dist/types/libraries/cloud-storage/types/FileUploadResult.d.ts +11 -0
- package/dist/types/libraries/cloud-storage/types/FileUploadResult.js +3 -0
- package/dist/types/libraries/cloud-storage/types/FileUploadResult.js.map +1 -0
- package/dist/types/libraries/configuration/index.d.ts +39 -0
- package/dist/types/libraries/configuration/index.js +84 -0
- package/dist/types/libraries/configuration/index.js.map +1 -0
- package/dist/types/libraries/configuration/types/EnvironmentConfigurationType.d.ts +9 -0
- package/dist/types/libraries/configuration/types/EnvironmentConfigurationType.js +14 -0
- package/dist/types/libraries/configuration/types/EnvironmentConfigurationType.js.map +1 -0
- package/dist/types/libraries/dispatcher/index.d.ts +10 -0
- package/dist/types/libraries/dispatcher/index.js +43 -0
- package/dist/types/libraries/dispatcher/index.js.map +1 -0
- package/dist/types/libraries/event/BaseEvent.d.ts +7 -0
- package/dist/types/libraries/event/BaseEvent.js +19 -0
- package/dist/types/libraries/event/BaseEvent.js.map +1 -0
- package/dist/types/libraries/event/EventEnums.d.ts +26 -0
- package/dist/types/libraries/event/EventEnums.js +31 -0
- package/dist/types/libraries/event/EventEnums.js.map +1 -0
- package/dist/types/libraries/event/decorators/metadata.d.ts +13 -0
- package/dist/types/libraries/event/decorators/metadata.js +20 -0
- package/dist/types/libraries/event/decorators/metadata.js.map +1 -0
- package/dist/types/libraries/event/events/index.d.ts +2 -0
- package/dist/types/libraries/event/events/index.js +19 -0
- package/dist/types/libraries/event/events/index.js.map +1 -0
- package/dist/types/libraries/event/events/payout/index.d.ts +1 -0
- package/dist/types/libraries/event/events/payout/index.js +18 -0
- package/dist/types/libraries/event/events/payout/index.js.map +1 -0
- package/dist/types/libraries/event/events/payout/payout-schedule.event.d.ts +9 -0
- package/dist/types/libraries/event/events/payout/payout-schedule.event.js +12 -0
- package/dist/types/libraries/event/events/payout/payout-schedule.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/cash/index.d.ts +5 -0
- package/dist/types/libraries/event/events/rider/cash/index.js +14 -0
- package/dist/types/libraries/event/events/rider/cash/index.js.map +1 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-added.event.d.ts +11 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-added.event.js +19 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-added.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-event.d.ts +11 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-event.js +18 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-hold-period-changed.event.d.ts +10 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-hold-period-changed.event.js +17 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-hold-period-changed.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-settled.event.d.ts +11 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-settled.event.js +19 -0
- package/dist/types/libraries/event/events/rider/cash/rider-cash-settled.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/cash/rider-max-cash-balance-for-bob-payout-updated.event.d.ts +10 -0
- package/dist/types/libraries/event/events/rider/cash/rider-max-cash-balance-for-bob-payout-updated.event.js +17 -0
- package/dist/types/libraries/event/events/rider/cash/rider-max-cash-balance-for-bob-payout-updated.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/index.d.ts +2 -0
- package/dist/types/libraries/event/events/rider/index.js +19 -0
- package/dist/types/libraries/event/events/rider/index.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/index.d.ts +7 -0
- package/dist/types/libraries/event/events/rider/scoring/index.js +18 -0
- package/dist/types/libraries/event/events/rider/scoring/index.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-accepted-order.event.d.ts +11 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-accepted-order.event.js +20 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-accepted-order.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-arrived-at-store.event.d.ts +13 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-arrived-at-store.event.js +24 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-arrived-at-store.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-assigned-order.event.d.ts +11 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-assigned-order.event.js +20 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-assigned-order.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-delivered-order.event.d.ts +13 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-delivered-order.event.js +24 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-delivered-order.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-order-completed.event.d.ts +19 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-order-completed.event.js +36 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-order-completed.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-rating.event.d.ts +13 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-rating.event.js +18 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-rating.event.js.map +1 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-score-event.d.ts +14 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-score-event.js +21 -0
- package/dist/types/libraries/event/events/rider/scoring/rider-score-event.js.map +1 -0
- package/dist/types/libraries/event/index.d.ts +11 -0
- package/dist/types/libraries/event/index.js +152 -0
- package/dist/types/libraries/event/index.js.map +1 -0
- package/dist/types/libraries/event/registry/SubscriptionRegistry.d.ts +11 -0
- package/dist/types/libraries/event/registry/SubscriptionRegistry.js +14 -0
- package/dist/types/libraries/event/registry/SubscriptionRegistry.js.map +1 -0
- package/dist/types/libraries/firebase/index.d.ts +16 -0
- package/dist/types/libraries/firebase/index.js +107 -0
- package/dist/types/libraries/firebase/index.js.map +1 -0
- package/dist/types/libraries/google-translate/google-translate.client.d.ts +5 -0
- package/dist/types/libraries/google-translate/google-translate.client.js +44 -0
- package/dist/types/libraries/google-translate/google-translate.client.js.map +1 -0
- package/dist/types/libraries/google-translate/google-translate.dto.d.ts +13 -0
- package/dist/types/libraries/google-translate/google-translate.dto.js +3 -0
- package/dist/types/libraries/google-translate/google-translate.dto.js.map +1 -0
- package/dist/types/libraries/google-translate/google-translate.service.d.ts +9 -0
- package/dist/types/libraries/google-translate/google-translate.service.js +102 -0
- package/dist/types/libraries/google-translate/google-translate.service.js.map +1 -0
- package/dist/types/libraries/google-translate/index.d.ts +1 -0
- package/dist/types/libraries/google-translate/index.js +18 -0
- package/dist/types/libraries/google-translate/index.js.map +1 -0
- package/dist/types/libraries/index.d.ts +43 -0
- package/dist/types/libraries/index.js +102 -0
- package/dist/types/libraries/index.js.map +1 -0
- package/dist/types/libraries/llm/interfaces/common-llm-interfaces.d.ts +28 -0
- package/dist/types/libraries/llm/interfaces/common-llm-interfaces.js +3 -0
- package/dist/types/libraries/llm/interfaces/common-llm-interfaces.js.map +1 -0
- package/dist/types/libraries/llm/llm-provider-service.d.ts +13 -0
- package/dist/types/libraries/llm/llm-provider-service.js +47 -0
- package/dist/types/libraries/llm/llm-provider-service.js.map +1 -0
- package/dist/types/libraries/llm/providers/openai-provider.d.ts +19 -0
- package/dist/types/libraries/llm/providers/openai-provider.js +223 -0
- package/dist/types/libraries/llm/providers/openai-provider.js.map +1 -0
- package/dist/types/libraries/logger/index.d.ts +8 -0
- package/dist/types/libraries/logger/index.js +75 -0
- package/dist/types/libraries/logger/index.js.map +1 -0
- package/dist/types/libraries/logger-kit/index.d.ts +3 -0
- package/dist/types/libraries/logger-kit/index.js +22 -0
- package/dist/types/libraries/logger-kit/index.js.map +1 -0
- package/dist/types/libraries/logger-kit/logger.service.d.ts +117 -0
- package/dist/types/libraries/logger-kit/logger.service.js +304 -0
- package/dist/types/libraries/logger-kit/logger.service.js.map +1 -0
- package/dist/types/libraries/logger-kit/types.d.ts +34 -0
- package/dist/types/libraries/logger-kit/types.js +3 -0
- package/dist/types/libraries/logger-kit/types.js.map +1 -0
- package/dist/types/libraries/map/index.d.ts +2 -0
- package/dist/types/libraries/map/index.js +19 -0
- package/dist/types/libraries/map/index.js.map +1 -0
- package/dist/types/libraries/map/interfaces/IMapService.d.ts +43 -0
- package/dist/types/libraries/map/interfaces/IMapService.js +9 -0
- package/dist/types/libraries/map/interfaces/IMapService.js.map +1 -0
- package/dist/types/libraries/map/mapService.d.ts +21 -0
- package/dist/types/libraries/map/mapService.js +57 -0
- package/dist/types/libraries/map/mapService.js.map +1 -0
- package/dist/types/libraries/map/providers/google-maps.d.ts +27 -0
- package/dist/types/libraries/map/providers/google-maps.js +462 -0
- package/dist/types/libraries/map/providers/google-maps.js.map +1 -0
- package/dist/types/libraries/map/providers/index.d.ts +1 -0
- package/dist/types/libraries/map/providers/index.js +18 -0
- package/dist/types/libraries/map/providers/index.js.map +1 -0
- package/dist/types/libraries/map/providers/osrm.d.ts +13 -0
- package/dist/types/libraries/map/providers/osrm.js +137 -0
- package/dist/types/libraries/map/providers/osrm.js.map +1 -0
- package/dist/types/libraries/mongo/index.d.ts +7 -0
- package/dist/types/libraries/mongo/index.js +87 -0
- package/dist/types/libraries/mongo/index.js.map +1 -0
- package/dist/types/libraries/mongo/models/activity-log.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/activity-log.model.js +48 -0
- package/dist/types/libraries/mongo/models/activity-log.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/admin-access-control.model.d.ts +11 -0
- package/dist/types/libraries/mongo/models/admin-access-control.model.js +75 -0
- package/dist/types/libraries/mongo/models/admin-access-control.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/admin.model.d.ts +11 -0
- package/dist/types/libraries/mongo/models/admin.model.js +65 -0
- package/dist/types/libraries/mongo/models/admin.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/agent-performance.model.d.ts +15 -0
- package/dist/types/libraries/mongo/models/agent-performance.model.js +73 -0
- package/dist/types/libraries/mongo/models/agent-performance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/app-appearance.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/app-appearance.model.js +102 -0
- package/dist/types/libraries/mongo/models/app-appearance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/app-instance.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/app-instance.model.js +54 -0
- package/dist/types/libraries/mongo/models/app-instance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/attribute.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/attribute.model.js +58 -0
- package/dist/types/libraries/mongo/models/attribute.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/banner.model.d.ts +27 -0
- package/dist/types/libraries/mongo/models/banner.model.js +118 -0
- package/dist/types/libraries/mongo/models/banner.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/base/base-coupon.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/base/base-coupon.model.js +90 -0
- package/dist/types/libraries/mongo/models/base/base-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/bob-finance.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/bob-finance.model.js +88 -0
- package/dist/types/libraries/mongo/models/bob-finance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/booking-cancellation-rescheduling-rules.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/booking-cancellation-rescheduling-rules.model.js +48 -0
- package/dist/types/libraries/mongo/models/booking-cancellation-rescheduling-rules.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/brand.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/brand.model.js +32 -0
- package/dist/types/libraries/mongo/models/brand.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/cancellation-reason.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/cancellation-reason.model.js +55 -0
- package/dist/types/libraries/mongo/models/cancellation-reason.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/card.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/card.model.js +88 -0
- package/dist/types/libraries/mongo/models/card.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/cart-participant.model.d.ts +29 -0
- package/dist/types/libraries/mongo/models/cart-participant.model.js +130 -0
- package/dist/types/libraries/mongo/models/cart-participant.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/cart.model.d.ts +39 -0
- package/dist/types/libraries/mongo/models/cart.model.js +184 -0
- package/dist/types/libraries/mongo/models/cart.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/category.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/category.model.js +68 -0
- package/dist/types/libraries/mongo/models/category.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/chat-room.model.d.ts +28 -0
- package/dist/types/libraries/mongo/models/chat-room.model.js +99 -0
- package/dist/types/libraries/mongo/models/chat-room.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/copy-attribute-map.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/copy-attribute-map.model.js +38 -0
- package/dist/types/libraries/mongo/models/copy-attribute-map.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/copy-product-job.model.d.ts +21 -0
- package/dist/types/libraries/mongo/models/copy-product-job.model.js +101 -0
- package/dist/types/libraries/mongo/models/copy-product-job.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/copy-product-map.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/copy-product-map.model.js +38 -0
- package/dist/types/libraries/mongo/models/copy-product-map.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/copy-shop-category-map.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/copy-shop-category-map.model.js +38 -0
- package/dist/types/libraries/mongo/models/copy-shop-category-map.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/core-auth-identity.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/core-auth-identity.model.js +32 -0
- package/dist/types/libraries/mongo/models/core-auth-identity.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/core-user.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/core-user.model.js +85 -0
- package/dist/types/libraries/mongo/models/core-user.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/counter.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/counter.model.js +42 -0
- package/dist/types/libraries/mongo/models/counter.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/coupon.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/coupon.model.js +60 -0
- package/dist/types/libraries/mongo/models/coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/deal-setting.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/deal-setting.model.js +52 -0
- package/dist/types/libraries/mongo/models/deal-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/default-chat.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/default-chat.model.js +26 -0
- package/dist/types/libraries/mongo/models/default-chat.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/delivery-charges.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/delivery-charges.model.js +63 -0
- package/dist/types/libraries/mongo/models/delivery-charges.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/dish.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/dish.model.js +92 -0
- package/dist/types/libraries/mongo/models/dish.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/address-change-history.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/embedded/address-change-history.model.js +112 -0
- package/dist/types/libraries/mongo/models/embedded/address-change-history.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/adjustment-information.model.d.ts +33 -0
- package/dist/types/libraries/mongo/models/embedded/adjustment-information.model.js +133 -0
- package/dist/types/libraries/mongo/models/embedded/adjustment-information.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/agent-notification-setting.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/agent-notification-setting.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/agent-notification-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/app-force-update.d.ts +9 -0
- package/dist/types/libraries/mongo/models/embedded/app-force-update.js +52 -0
- package/dist/types/libraries/mongo/models/embedded/app-force-update.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/attribute-item.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/attribute-item.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/attribute-item.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/attribute-map.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/embedded/attribute-map.model.js +29 -0
- package/dist/types/libraries/mongo/models/embedded/attribute-map.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/business-development-setting.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/business-development-setting.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/business-development-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/cash-settlement.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/embedded/cash-settlement.model.js +52 -0
- package/dist/types/libraries/mongo/models/embedded/cash-settlement.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/cashback-amounts.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/cashback-amounts.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/cashback-amounts.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/charge.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/charge.model.js +28 -0
- package/dist/types/libraries/mongo/models/embedded/charge.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/chat-participant.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/embedded/chat-participant.model.js +64 -0
- package/dist/types/libraries/mongo/models/embedded/chat-participant.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/cleaning-material.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/cleaning-material.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/cleaning-material.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/company-info.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/embedded/company-info.model.js +37 -0
- package/dist/types/libraries/mongo/models/embedded/company-info.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/courier-order-finance.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/embedded/courier-order-finance.model.js +36 -0
- package/dist/types/libraries/mongo/models/embedded/courier-order-finance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/courier-setting.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/courier-setting.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/courier-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/currency-setting.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/embedded/currency-setting.model.js +38 -0
- package/dist/types/libraries/mongo/models/embedded/currency-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/currency.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/currency.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/currency.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/customer-support-batches.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/customer-support-batches.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/customer-support-batches.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/customer-support-numbers.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/customer-support-numbers.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/customer-support-numbers.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/delivery-charge-setting.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/embedded/delivery-charge-setting.model.js +51 -0
- package/dist/types/libraries/mongo/models/embedded/delivery-charge-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/delivery-info.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/delivery-info.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/delivery-info.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/external-ref.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/external-ref.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/external-ref.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/featured-item.mode.d.ts +6 -0
- package/dist/types/libraries/mongo/models/embedded/featured-item.mode.js +33 -0
- package/dist/types/libraries/mongo/models/embedded/featured-item.mode.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/frequency-configuration.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/embedded/frequency-configuration.model.js +38 -0
- package/dist/types/libraries/mongo/models/embedded/frequency-configuration.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/line-item-attribute.model.d.ts +17 -0
- package/dist/types/libraries/mongo/models/embedded/line-item-attribute.model.js +63 -0
- package/dist/types/libraries/mongo/models/embedded/line-item-attribute.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/marketing-cut.model.d.ts +46 -0
- package/dist/types/libraries/mongo/models/embedded/marketing-cut.model.js +178 -0
- package/dist/types/libraries/mongo/models/embedded/marketing-cut.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/order-cancel.model.d.ts +26 -0
- package/dist/types/libraries/mongo/models/embedded/order-cancel.model.js +110 -0
- package/dist/types/libraries/mongo/models/embedded/order-cancel.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/order-delivery-information.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/embedded/order-delivery-information.model.js +67 -0
- package/dist/types/libraries/mongo/models/embedded/order-delivery-information.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/order-finance.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/embedded/order-finance.model.js +64 -0
- package/dist/types/libraries/mongo/models/embedded/order-finance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/order-pricing.model.d.ts +34 -0
- package/dist/types/libraries/mongo/models/embedded/order-pricing.model.js +163 -0
- package/dist/types/libraries/mongo/models/embedded/order-pricing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/order-refund.model.d.ts +28 -0
- package/dist/types/libraries/mongo/models/embedded/order-refund.model.js +113 -0
- package/dist/types/libraries/mongo/models/embedded/order-refund.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/otp-fields.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/embedded/otp-fields.model.js +46 -0
- package/dist/types/libraries/mongo/models/embedded/otp-fields.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/package.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/embedded/package.model.js +86 -0
- package/dist/types/libraries/mongo/models/embedded/package.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/parent-document.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/parent-document.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/parent-document.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/payment-infromation.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/embedded/payment-infromation.model.js +38 -0
- package/dist/types/libraries/mongo/models/embedded/payment-infromation.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/payment-record.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/embedded/payment-record.model.js +53 -0
- package/dist/types/libraries/mongo/models/embedded/payment-record.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/payout-setting.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/payout-setting.model.js +28 -0
- package/dist/types/libraries/mongo/models/embedded/payout-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/plus-settings.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/embedded/plus-settings.model.js +33 -0
- package/dist/types/libraries/mongo/models/embedded/plus-settings.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/preparing-time.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/preparing-time.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/preparing-time.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/price-breakdown.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/embedded/price-breakdown.model.js +80 -0
- package/dist/types/libraries/mongo/models/embedded/price-breakdown.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/product-category.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/product-category.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/product-category.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/product-marketing-info.model.d.ts +17 -0
- package/dist/types/libraries/mongo/models/embedded/product-marketing-info.model.js +72 -0
- package/dist/types/libraries/mongo/models/embedded/product-marketing-info.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/product-nutrition.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/product-nutrition.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/product-nutrition.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/product-search-fields.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/embedded/product-search-fields.model.js +60 -0
- package/dist/types/libraries/mongo/models/embedded/product-search-fields.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/product-snap.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/embedded/product-snap.model.js +79 -0
- package/dist/types/libraries/mongo/models/embedded/product-snap.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/profit.model.d.ts +22 -0
- package/dist/types/libraries/mongo/models/embedded/profit.model.js +96 -0
- package/dist/types/libraries/mongo/models/embedded/profit.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/referral-discount-config.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/embedded/referral-discount-config.model.js +38 -0
- package/dist/types/libraries/mongo/models/embedded/referral-discount-config.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/regular-order-finance.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/embedded/regular-order-finance.model.js +73 -0
- package/dist/types/libraries/mongo/models/embedded/regular-order-finance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/replacement-order.model.d.ts +28 -0
- package/dist/types/libraries/mongo/models/embedded/replacement-order.model.js +109 -0
- package/dist/types/libraries/mongo/models/embedded/replacement-order.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/rest-password.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/rest-password.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/rest-password.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/rider-assignment-model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/embedded/rider-assignment-model.js +44 -0
- package/dist/types/libraries/mongo/models/embedded/rider-assignment-model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/rider-batches.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/rider-batches.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/rider-batches.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/rider-equipment.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/rider-equipment.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/rider-equipment.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/rider-setting.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/embedded/rider-setting.model.js +47 -0
- package/dist/types/libraries/mongo/models/embedded/rider-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/rider-statistics.d.ts +11 -0
- package/dist/types/libraries/mongo/models/embedded/rider-statistics.js +62 -0
- package/dist/types/libraries/mongo/models/embedded/rider-statistics.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-cancellation-details.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-cancellation-details.model.js +77 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-cancellation-details.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-finance.model.d.ts +23 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-finance.model.js +85 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-finance.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-pricing.model.d.ts +24 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-pricing.model.js +127 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-pricing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-refund-information.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-refund-information.model.js +70 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-refund-information.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-replacement-information.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-replacement-information.model.js +76 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-replacement-information.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-settings.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-settings.model.js +57 -0
- package/dist/types/libraries/mongo/models/embedded/service-booking-settings.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-fee-setting.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/service-fee-setting.model.js +28 -0
- package/dist/types/libraries/mongo/models/embedded/service-fee-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/service-line-item.model.d.ts +38 -0
- package/dist/types/libraries/mongo/models/embedded/service-line-item.model.js +154 -0
- package/dist/types/libraries/mongo/models/embedded/service-line-item.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/shop-company-details.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/shop-company-details.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/shop-company-details.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/shop-default-category.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/embedded/shop-default-category.model.js +47 -0
- package/dist/types/libraries/mongo/models/embedded/shop-default-category.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/shop-document.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/embedded/shop-document.model.js +37 -0
- package/dist/types/libraries/mongo/models/embedded/shop-document.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/shop-search-fields.model.d.ts +15 -0
- package/dist/types/libraries/mongo/models/embedded/shop-search-fields.model.js +75 -0
- package/dist/types/libraries/mongo/models/embedded/shop-search-fields.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/spend-to-get-tier.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/embedded/spend-to-get-tier.model.js +43 -0
- package/dist/types/libraries/mongo/models/embedded/spend-to-get-tier.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/status-timeline.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/embedded/status-timeline.model.js +97 -0
- package/dist/types/libraries/mongo/models/embedded/status-timeline.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/subscription-summary.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/embedded/subscription-summary.model.js +47 -0
- package/dist/types/libraries/mongo/models/embedded/subscription-summary.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/support-reason-info.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/embedded/support-reason-info.model.js +27 -0
- package/dist/types/libraries/mongo/models/embedded/support-reason-info.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/trip-leg.mode.d.ts +28 -0
- package/dist/types/libraries/mongo/models/embedded/trip-leg.mode.js +134 -0
- package/dist/types/libraries/mongo/models/embedded/trip-leg.mode.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/vat.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/vat.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/vat.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/wallet.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/wallet.model.js +32 -0
- package/dist/types/libraries/mongo/models/embedded/wallet.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/embedded/zone-geometry.mode.d.ts +5 -0
- package/dist/types/libraries/mongo/models/embedded/zone-geometry.mode.js +28 -0
- package/dist/types/libraries/mongo/models/embedded/zone-geometry.mode.js.map +1 -0
- package/dist/types/libraries/mongo/models/favourite.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/favourite.model.js +52 -0
- package/dist/types/libraries/mongo/models/favourite.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/featured-setting.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/featured-setting.model.js +33 -0
- package/dist/types/libraries/mongo/models/featured-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/filter-container.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/filter-container.model.js +63 -0
- package/dist/types/libraries/mongo/models/filter-container.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/finance-settlement.model.d.ts +41 -0
- package/dist/types/libraries/mongo/models/finance-settlement.model.js +175 -0
- package/dist/types/libraries/mongo/models/finance-settlement.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/flag.model.d.ts +22 -0
- package/dist/types/libraries/mongo/models/flag.model.js +83 -0
- package/dist/types/libraries/mongo/models/flag.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/gallery-upload.model.d.ts +17 -0
- package/dist/types/libraries/mongo/models/gallery-upload.model.js +77 -0
- package/dist/types/libraries/mongo/models/gallery-upload.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/gallery.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/gallery.model.js +59 -0
- package/dist/types/libraries/mongo/models/gallery.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/google-maps-usage.model.d.ts +21 -0
- package/dist/types/libraries/mongo/models/google-maps-usage.model.js +255 -0
- package/dist/types/libraries/mongo/models/google-maps-usage.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/index.d.ts +395 -0
- package/dist/types/libraries/mongo/models/index.js +485 -0
- package/dist/types/libraries/mongo/models/index.js.map +1 -0
- package/dist/types/libraries/mongo/models/integration-configuration.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/integration-configuration.model.js +33 -0
- package/dist/types/libraries/mongo/models/integration-configuration.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign-session.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign-session.model.js +45 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign-session.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign.model.js +76 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-config.d.ts +6 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-config.js +36 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-config.js.map +1 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-participant.model.d.ts +22 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-participant.model.js +96 -0
- package/dist/types/libraries/mongo/models/limited-time-offer-participant.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/line-item.model.d.ts +47 -0
- package/dist/types/libraries/mongo/models/line-item.model.js +205 -0
- package/dist/types/libraries/mongo/models/line-item.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/list-container.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/list-container.model.js +92 -0
- package/dist/types/libraries/mongo/models/list-container.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/log.model.d.ts +35 -0
- package/dist/types/libraries/mongo/models/log.model.js +163 -0
- package/dist/types/libraries/mongo/models/log.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/marketing.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/marketing.model.js +88 -0
- package/dist/types/libraries/mongo/models/marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/meal-plan.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/meal-plan.model.js +51 -0
- package/dist/types/libraries/mongo/models/meal-plan.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/message.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/message.model.js +105 -0
- package/dist/types/libraries/mongo/models/message.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/notification.model.d.ts +53 -0
- package/dist/types/libraries/mongo/models/notification.model.js +201 -0
- package/dist/types/libraries/mongo/models/notification.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/nutrition.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/nutrition.model.js +33 -0
- package/dist/types/libraries/mongo/models/nutrition.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/order.model.d.ts +66 -0
- package/dist/types/libraries/mongo/models/order.model.js +350 -0
- package/dist/types/libraries/mongo/models/order.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/parent.model.d.ts +29 -0
- package/dist/types/libraries/mongo/models/parent.model.js +144 -0
- package/dist/types/libraries/mongo/models/parent.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/payment-configuration.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/payment-configuration.model.js +33 -0
- package/dist/types/libraries/mongo/models/payment-configuration.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/payment-intent.model.d.ts +17 -0
- package/dist/types/libraries/mongo/models/payment-intent.model.js +79 -0
- package/dist/types/libraries/mongo/models/payment-intent.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/payout.model.d.ts +15 -0
- package/dist/types/libraries/mongo/models/payout.model.js +86 -0
- package/dist/types/libraries/mongo/models/payout.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/product-brand.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/product-brand.model.js +38 -0
- package/dist/types/libraries/mongo/models/product-brand.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/product-marketing.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/product-marketing.model.js +57 -0
- package/dist/types/libraries/mongo/models/product-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/product-stock-tracker.model.d.ts +15 -0
- package/dist/types/libraries/mongo/models/product-stock-tracker.model.js +57 -0
- package/dist/types/libraries/mongo/models/product-stock-tracker.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/product-upload.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/product-upload.model.js +105 -0
- package/dist/types/libraries/mongo/models/product-upload.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/product.model.d.ts +63 -0
- package/dist/types/libraries/mongo/models/product.model.js +339 -0
- package/dist/types/libraries/mongo/models/product.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/professional-blocked-time.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/professional-blocked-time.model.js +49 -0
- package/dist/types/libraries/mongo/models/professional-blocked-time.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/professional.model.d.ts +17 -0
- package/dist/types/libraries/mongo/models/professional.model.js +91 -0
- package/dist/types/libraries/mongo/models/professional.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/buy1-get1-marketing.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/providers/buy1-get1-marketing.model.js +62 -0
- package/dist/types/libraries/mongo/models/providers/buy1-get1-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/core-apple-auth-identity.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/providers/core-apple-auth-identity.model.js +28 -0
- package/dist/types/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/core-email-auth-identity.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/providers/core-email-auth-identity.model.js +69 -0
- package/dist/types/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/core-google-auth-identity.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/providers/core-google-auth-identity.model.js +28 -0
- package/dist/types/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/core-phone-auth-identity.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/providers/core-phone-auth-identity.model.js +29 -0
- package/dist/types/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/courier-order.model.d.ts +41 -0
- package/dist/types/libraries/mongo/models/providers/courier-order.model.js +151 -0
- package/dist/types/libraries/mongo/models/providers/courier-order.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/custom-coupon.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/providers/custom-coupon.model.js +43 -0
- package/dist/types/libraries/mongo/models/providers/custom-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/discount-marketing.model.d.ts +22 -0
- package/dist/types/libraries/mongo/models/providers/discount-marketing.model.js +92 -0
- package/dist/types/libraries/mongo/models/providers/discount-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/featured-marketing.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/providers/featured-marketing.model.js +25 -0
- package/dist/types/libraries/mongo/models/providers/featured-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/free-delivery-marketing.model.d.ts +7 -0
- package/dist/types/libraries/mongo/models/providers/free-delivery-marketing.model.js +30 -0
- package/dist/types/libraries/mongo/models/providers/free-delivery-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/global-coupon.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/providers/global-coupon.model.js +10 -0
- package/dist/types/libraries/mongo/models/providers/global-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/individual-store-coupon.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/providers/individual-store-coupon.model.js +42 -0
- package/dist/types/libraries/mongo/models/providers/individual-store-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/individual-user-coupon.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/providers/individual-user-coupon.model.js +43 -0
- package/dist/types/libraries/mongo/models/providers/individual-user-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/punch-marketing.model.d.ts +11 -0
- package/dist/types/libraries/mongo/models/providers/punch-marketing.model.js +50 -0
- package/dist/types/libraries/mongo/models/providers/punch-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/referral-code-coupon.model.d.ts +9 -0
- package/dist/types/libraries/mongo/models/providers/referral-code-coupon.model.js +27 -0
- package/dist/types/libraries/mongo/models/providers/referral-code-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +11 -0
- package/dist/types/libraries/mongo/models/providers/referral-reward-coupon.model.js +37 -0
- package/dist/types/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/regular-order.model.d.ts +54 -0
- package/dist/types/libraries/mongo/models/providers/regular-order.model.js +204 -0
- package/dist/types/libraries/mongo/models/providers/regular-order.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/rider-payout.model.d.ts +23 -0
- package/dist/types/libraries/mongo/models/providers/rider-payout.model.js +94 -0
- package/dist/types/libraries/mongo/models/providers/rider-payout.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/rider-review.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/providers/rider-review.model.js +32 -0
- package/dist/types/libraries/mongo/models/providers/rider-review.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/service-package-review.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/providers/service-package-review.model.js +44 -0
- package/dist/types/libraries/mongo/models/providers/service-package-review.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/shop-courier.model.d.ts +26 -0
- package/dist/types/libraries/mongo/models/providers/shop-courier.model.js +93 -0
- package/dist/types/libraries/mongo/models/providers/shop-courier.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/shop-payout.model.d.ts +62 -0
- package/dist/types/libraries/mongo/models/providers/shop-payout.model.js +244 -0
- package/dist/types/libraries/mongo/models/providers/shop-payout.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/shop-review.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/providers/shop-review.model.js +38 -0
- package/dist/types/libraries/mongo/models/providers/shop-review.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/shops-categories-coupon.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/providers/shops-categories-coupon.model.js +47 -0
- package/dist/types/libraries/mongo/models/providers/shops-categories-coupon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/spend-to-get-marketing.model.d.ts +11 -0
- package/dist/types/libraries/mongo/models/providers/spend-to-get-marketing.model.js +46 -0
- package/dist/types/libraries/mongo/models/providers/spend-to-get-marketing.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/vendor-payout.model.d.ts +50 -0
- package/dist/types/libraries/mongo/models/providers/vendor-payout.model.js +192 -0
- package/dist/types/libraries/mongo/models/providers/vendor-payout.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/providers/vendor-review.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/providers/vendor-review.model.js +38 -0
- package/dist/types/libraries/mongo/models/providers/vendor-review.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/punch-marketing-history.model.d.ts +24 -0
- package/dist/types/libraries/mongo/models/punch-marketing-history.model.js +101 -0
- package/dist/types/libraries/mongo/models/punch-marketing-history.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/rating-setting.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/rating-setting.model.js +46 -0
- package/dist/types/libraries/mongo/models/rating-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/referral-setting.model.d.ts +6 -0
- package/dist/types/libraries/mongo/models/referral-setting.model.js +32 -0
- package/dist/types/libraries/mongo/models/referral-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/request-area.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/request-area.model.js +33 -0
- package/dist/types/libraries/mongo/models/request-area.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/review.model.d.ts +15 -0
- package/dist/types/libraries/mongo/models/review.model.js +68 -0
- package/dist/types/libraries/mongo/models/review.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/reward.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/reward.model.js +70 -0
- package/dist/types/libraries/mongo/models/reward.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/rider-timeout.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/rider-timeout.model.js +47 -0
- package/dist/types/libraries/mongo/models/rider-timeout.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/rider-tracking.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/rider-tracking.model.js +47 -0
- package/dist/types/libraries/mongo/models/rider-tracking.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/rider.model.d.ts +70 -0
- package/dist/types/libraries/mongo/models/rider.model.js +358 -0
- package/dist/types/libraries/mongo/models/rider.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-addon.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/service-addon.model.js +86 -0
- package/dist/types/libraries/mongo/models/service-addon.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-booking.model.d.ts +68 -0
- package/dist/types/libraries/mongo/models/service-booking.model.js +310 -0
- package/dist/types/libraries/mongo/models/service-booking.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-cart.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/service-cart.model.js +51 -0
- package/dist/types/libraries/mongo/models/service-cart.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-category.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/service-category.model.js +87 -0
- package/dist/types/libraries/mongo/models/service-category.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-control.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/service-control.model.js +50 -0
- package/dist/types/libraries/mongo/models/service-control.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-flag.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/service-flag.model.js +72 -0
- package/dist/types/libraries/mongo/models/service-flag.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-package.model.d.ts +27 -0
- package/dist/types/libraries/mongo/models/service-package.model.js +142 -0
- package/dist/types/libraries/mongo/models/service-package.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service-promotion.model.d.ts +27 -0
- package/dist/types/libraries/mongo/models/service-promotion.model.js +120 -0
- package/dist/types/libraries/mongo/models/service-promotion.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/service.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/service.model.js +43 -0
- package/dist/types/libraries/mongo/models/service.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/setting.model.d.ts +51 -0
- package/dist/types/libraries/mongo/models/setting.model.js +201 -0
- package/dist/types/libraries/mongo/models/setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shared/address.model.d.ts +38 -0
- package/dist/types/libraries/mongo/models/shared/address.model.js +158 -0
- package/dist/types/libraries/mongo/models/shared/address.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shared/duration.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/shared/duration.model.js +59 -0
- package/dist/types/libraries/mongo/models/shared/duration.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shared/geo-location.model.d.ts +5 -0
- package/dist/types/libraries/mongo/models/shared/geo-location.model.js +28 -0
- package/dist/types/libraries/mongo/models/shared/geo-location.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shared/work-hour.model.d.ts +19 -0
- package/dist/types/libraries/mongo/models/shared/work-hour.model.js +81 -0
- package/dist/types/libraries/mongo/models/shared/work-hour.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shop-access-control.model.d.ts +16 -0
- package/dist/types/libraries/mongo/models/shop-access-control.model.js +81 -0
- package/dist/types/libraries/mongo/models/shop-access-control.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shop-category.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/shop-category.model.js +64 -0
- package/dist/types/libraries/mongo/models/shop-category.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shop-meal-plan.model.d.ts +12 -0
- package/dist/types/libraries/mongo/models/shop-meal-plan.model.js +45 -0
- package/dist/types/libraries/mongo/models/shop-meal-plan.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shop-section.model.d.ts +18 -0
- package/dist/types/libraries/mongo/models/shop-section.model.js +89 -0
- package/dist/types/libraries/mongo/models/shop-section.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/shop.model.d.ts +65 -0
- package/dist/types/libraries/mongo/models/shop.model.js +304 -0
- package/dist/types/libraries/mongo/models/shop.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/spend-to-get-history.model.d.ts +13 -0
- package/dist/types/libraries/mongo/models/spend-to-get-history.model.js +51 -0
- package/dist/types/libraries/mongo/models/spend-to-get-history.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/subscription.model.d.ts +20 -0
- package/dist/types/libraries/mongo/models/subscription.model.js +93 -0
- package/dist/types/libraries/mongo/models/subscription.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/support-reason.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/support-reason.model.js +61 -0
- package/dist/types/libraries/mongo/models/support-reason.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/tag.model.d.ts +10 -0
- package/dist/types/libraries/mongo/models/tag.model.js +64 -0
- package/dist/types/libraries/mongo/models/tag.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/terms-and-conditions.model.d.ts +8 -0
- package/dist/types/libraries/mongo/models/terms-and-conditions.model.js +51 -0
- package/dist/types/libraries/mongo/models/terms-and-conditions.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/ticket-action.model.d.ts +4 -0
- package/dist/types/libraries/mongo/models/ticket-action.model.js +31 -0
- package/dist/types/libraries/mongo/models/ticket-action.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/ticket.model.d.ts +35 -0
- package/dist/types/libraries/mongo/models/ticket.model.js +144 -0
- package/dist/types/libraries/mongo/models/ticket.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/tournament-participant.model.d.ts +22 -0
- package/dist/types/libraries/mongo/models/tournament-participant.model.js +84 -0
- package/dist/types/libraries/mongo/models/tournament-participant.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/tournament.model.d.ts +65 -0
- package/dist/types/libraries/mongo/models/tournament.model.js +273 -0
- package/dist/types/libraries/mongo/models/tournament.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/user-action.model.d.ts +29 -0
- package/dist/types/libraries/mongo/models/user-action.model.js +113 -0
- package/dist/types/libraries/mongo/models/user-action.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/user-app-section-setting.model.d.ts +24 -0
- package/dist/types/libraries/mongo/models/user-app-section-setting.model.js +103 -0
- package/dist/types/libraries/mongo/models/user-app-section-setting.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/user.model.d.ts +39 -0
- package/dist/types/libraries/mongo/models/user.model.js +150 -0
- package/dist/types/libraries/mongo/models/user.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/vendor-access-control.model.d.ts +14 -0
- package/dist/types/libraries/mongo/models/vendor-access-control.model.js +75 -0
- package/dist/types/libraries/mongo/models/vendor-access-control.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/vendor-parent.model.d.ts +25 -0
- package/dist/types/libraries/mongo/models/vendor-parent.model.js +121 -0
- package/dist/types/libraries/mongo/models/vendor-parent.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/vendor.model.d.ts +33 -0
- package/dist/types/libraries/mongo/models/vendor.model.js +150 -0
- package/dist/types/libraries/mongo/models/vendor.model.js.map +1 -0
- package/dist/types/libraries/mongo/models/zone-extra-time.d.ts +12 -0
- package/dist/types/libraries/mongo/models/zone-extra-time.js +54 -0
- package/dist/types/libraries/mongo/models/zone-extra-time.js.map +1 -0
- package/dist/types/libraries/mongo/models/zone.model.d.ts +17 -0
- package/dist/types/libraries/mongo/models/zone.model.js +80 -0
- package/dist/types/libraries/mongo/models/zone.model.js.map +1 -0
- package/dist/types/libraries/mongo/plugins/normalize-field.plugin.d.ts +4 -0
- package/dist/types/libraries/mongo/plugins/normalize-field.plugin.js +42 -0
- package/dist/types/libraries/mongo/plugins/normalize-field.plugin.js.map +1 -0
- package/dist/types/libraries/mongo/plugins/soft-delete-plugin.d.ts +32 -0
- package/dist/types/libraries/mongo/plugins/soft-delete-plugin.js +145 -0
- package/dist/types/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -0
- package/dist/types/libraries/mongo/utilities/shop.hooks.d.ts +9 -0
- package/dist/types/libraries/mongo/utilities/shop.hooks.js +11 -0
- package/dist/types/libraries/mongo/utilities/shop.hooks.js.map +1 -0
- package/dist/types/libraries/mongo/utilities/sorting-order.hooks.d.ts +14 -0
- package/dist/types/libraries/mongo/utilities/sorting-order.hooks.js +58 -0
- package/dist/types/libraries/mongo/utilities/sorting-order.hooks.js.map +1 -0
- package/dist/types/libraries/mongo/utilities/unique-id.hooks.d.ts +6 -0
- package/dist/types/libraries/mongo/utilities/unique-id.hooks.js +17 -0
- package/dist/types/libraries/mongo/utilities/unique-id.hooks.js.map +1 -0
- package/dist/types/libraries/notification/firebase-fcm.service.d.ts +7 -0
- package/dist/types/libraries/notification/firebase-fcm.service.js +40 -0
- package/dist/types/libraries/notification/firebase-fcm.service.js.map +1 -0
- package/dist/types/libraries/notification/firebase-message.builder.d.ts +22 -0
- package/dist/types/libraries/notification/firebase-message.builder.js +107 -0
- package/dist/types/libraries/notification/firebase-message.builder.js.map +1 -0
- package/dist/types/libraries/notification/lyxa-fcm-sender.d.ts +19 -0
- package/dist/types/libraries/notification/lyxa-fcm-sender.js +127 -0
- package/dist/types/libraries/notification/lyxa-fcm-sender.js.map +1 -0
- package/dist/types/libraries/notification/lyxa-fcm.service.d.ts +40 -0
- package/dist/types/libraries/notification/lyxa-fcm.service.js +177 -0
- package/dist/types/libraries/notification/lyxa-fcm.service.js.map +1 -0
- package/dist/types/libraries/redis/index.d.ts +25 -0
- package/dist/types/libraries/redis/index.js +137 -0
- package/dist/types/libraries/redis/index.js.map +1 -0
- package/dist/types/libraries/secrets/index.d.ts +10 -0
- package/dist/types/libraries/secrets/index.js +64 -0
- package/dist/types/libraries/secrets/index.js.map +1 -0
- package/dist/types/libraries/socket/BaseSocketEvent.d.ts +27 -0
- package/dist/types/libraries/socket/BaseSocketEvent.js +47 -0
- package/dist/types/libraries/socket/BaseSocketEvent.js.map +1 -0
- package/dist/types/libraries/socket/PushNotificationEvent.d.ts +36 -0
- package/dist/types/libraries/socket/PushNotificationEvent.js +45 -0
- package/dist/types/libraries/socket/PushNotificationEvent.js.map +1 -0
- package/dist/types/libraries/socket/connections/batch.d.ts +12 -0
- package/dist/types/libraries/socket/connections/batch.js +58 -0
- package/dist/types/libraries/socket/connections/batch.js.map +1 -0
- package/dist/types/libraries/socket/connections/cache.d.ts +9 -0
- package/dist/types/libraries/socket/connections/cache.js +36 -0
- package/dist/types/libraries/socket/connections/cache.js.map +1 -0
- package/dist/types/libraries/socket/connections/constants.d.ts +2 -0
- package/dist/types/libraries/socket/connections/constants.js +6 -0
- package/dist/types/libraries/socket/connections/constants.js.map +1 -0
- package/dist/types/libraries/socket/connections/index.d.ts +7 -0
- package/dist/types/libraries/socket/connections/index.js +24 -0
- package/dist/types/libraries/socket/connections/index.js.map +1 -0
- package/dist/types/libraries/socket/connections/instance-disconnect.d.ts +2 -0
- package/dist/types/libraries/socket/connections/instance-disconnect.js +43 -0
- package/dist/types/libraries/socket/connections/instance-disconnect.js.map +1 -0
- package/dist/types/libraries/socket/connections/keys.d.ts +10 -0
- package/dist/types/libraries/socket/connections/keys.js +23 -0
- package/dist/types/libraries/socket/connections/keys.js.map +1 -0
- package/dist/types/libraries/socket/connections/presence.d.ts +6 -0
- package/dist/types/libraries/socket/connections/presence.js +39 -0
- package/dist/types/libraries/socket/connections/presence.js.map +1 -0
- package/dist/types/libraries/socket/connections/redis-helpers.d.ts +2 -0
- package/dist/types/libraries/socket/connections/redis-helpers.js +14 -0
- package/dist/types/libraries/socket/connections/redis-helpers.js.map +1 -0
- package/dist/types/libraries/socket/connections/subscription.d.ts +13 -0
- package/dist/types/libraries/socket/connections/subscription.js +73 -0
- package/dist/types/libraries/socket/connections/subscription.js.map +1 -0
- package/dist/types/libraries/socket/core/index.d.ts +6 -0
- package/dist/types/libraries/socket/core/index.js +23 -0
- package/dist/types/libraries/socket/core/index.js.map +1 -0
- package/dist/types/libraries/socket/core/local-subscription-registry.d.ts +17 -0
- package/dist/types/libraries/socket/core/local-subscription-registry.js +60 -0
- package/dist/types/libraries/socket/core/local-subscription-registry.js.map +1 -0
- package/dist/types/libraries/socket/core/socket-event-consumer.d.ts +1 -0
- package/dist/types/libraries/socket/core/socket-event-consumer.js +14 -0
- package/dist/types/libraries/socket/core/socket-event-consumer.js.map +1 -0
- package/dist/types/libraries/socket/core/socket-event-publisher.d.ts +6 -0
- package/dist/types/libraries/socket/core/socket-event-publisher.js +82 -0
- package/dist/types/libraries/socket/core/socket-event-publisher.js.map +1 -0
- package/dist/types/libraries/socket/core/socket-event-registry.d.ts +12 -0
- package/dist/types/libraries/socket/core/socket-event-registry.js +23 -0
- package/dist/types/libraries/socket/core/socket-event-registry.js.map +1 -0
- package/dist/types/libraries/socket/core/socket-event-registry.map.d.ts +34 -0
- package/dist/types/libraries/socket/core/socket-event-registry.map.js +34 -0
- package/dist/types/libraries/socket/core/socket-event-registry.map.js.map +1 -0
- package/dist/types/libraries/socket/core/zAsyncIterable.d.ts +7 -0
- package/dist/types/libraries/socket/core/zAsyncIterable.js +35 -0
- package/dist/types/libraries/socket/core/zAsyncIterable.js.map +1 -0
- package/dist/types/libraries/socket/events/chatlist-message-send.socket.event.d.ts +153 -0
- package/dist/types/libraries/socket/events/chatlist-message-send.socket.event.js +44 -0
- package/dist/types/libraries/socket/events/chatlist-message-send.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/chatroom-message-send.socket.event.d.ts +286 -0
- package/dist/types/libraries/socket/events/chatroom-message-send.socket.event.js +96 -0
- package/dist/types/libraries/socket/events/chatroom-message-send.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/index.d.ts +7 -0
- package/dist/types/libraries/socket/events/index.js +24 -0
- package/dist/types/libraries/socket/events/index.js.map +1 -0
- package/dist/types/libraries/socket/events/order-actions.socket.event.d.ts +297 -0
- package/dist/types/libraries/socket/events/order-actions.socket.event.js +82 -0
- package/dist/types/libraries/socket/events/order-actions.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/rider-connect.socket.event.d.ts +13 -0
- package/dist/types/libraries/socket/events/rider-connect.socket.event.js +22 -0
- package/dist/types/libraries/socket/events/rider-connect.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/rider-location-update.socket.event.d.ts +76 -0
- package/dist/types/libraries/socket/events/rider-location-update.socket.event.js +39 -0
- package/dist/types/libraries/socket/events/rider-location-update.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/socketNotificationEvent.d.ts +46 -0
- package/dist/types/libraries/socket/events/socketNotificationEvent.js +29 -0
- package/dist/types/libraries/socket/events/socketNotificationEvent.js.map +1 -0
- package/dist/types/libraries/socket/events/ticket-actions.socket.event.d.ts +106 -0
- package/dist/types/libraries/socket/events/ticket-actions.socket.event.js +62 -0
- package/dist/types/libraries/socket/events/ticket-actions.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/ticket-assign.socket.event.d.ts +161 -0
- package/dist/types/libraries/socket/events/ticket-assign.socket.event.js +42 -0
- package/dist/types/libraries/socket/events/ticket-assign.socket.event.js.map +1 -0
- package/dist/types/libraries/socket/events/ticket-unassign.socket.event.d.ts +27 -0
- package/dist/types/libraries/socket/events/ticket-unassign.socket.event.js +31 -0
- package/dist/types/libraries/socket/events/ticket-unassign.socket.event.js.map +1 -0
- package/dist/types/libraries/trpc/context.d.ts +37 -0
- package/dist/types/libraries/trpc/context.js +43 -0
- package/dist/types/libraries/trpc/context.js.map +1 -0
- package/dist/types/libraries/trpc/index.d.ts +75 -0
- package/dist/types/libraries/trpc/index.js +80 -0
- package/dist/types/libraries/trpc/index.js.map +1 -0
- package/dist/types/libraries/twilio/index.d.ts +6 -0
- package/dist/types/libraries/twilio/index.js +42 -0
- package/dist/types/libraries/twilio/index.js.map +1 -0
- package/dist/types/libraries/upload/index.d.ts +50 -0
- package/dist/types/libraries/upload/index.js +312 -0
- package/dist/types/libraries/upload/index.js.map +1 -0
- package/dist/types/package.json +1 -1
- package/dist/types/utilities/auth-ref.mapper.d.ts +4 -0
- package/dist/types/utilities/auth-ref.mapper.js +22 -0
- package/dist/types/utilities/auth-ref.mapper.js.map +1 -0
- package/dist/types/utilities/dayjs/dayjs.d.ts +14 -0
- package/dist/types/utilities/dayjs/dayjs.js +47 -0
- package/dist/types/utilities/dayjs/dayjs.js.map +1 -0
- package/dist/types/utilities/dayjs/index.d.ts +2 -0
- package/dist/types/utilities/dayjs/index.js +9 -0
- package/dist/types/utilities/dayjs/index.js.map +1 -0
- package/dist/types/utilities/environment/rabbitmq-environments.d.ts +2 -0
- package/dist/types/utilities/environment/rabbitmq-environments.js +14 -0
- package/dist/types/utilities/environment/rabbitmq-environments.js.map +1 -0
- package/dist/types/utilities/environment/redis-environments.d.ts +2 -0
- package/dist/types/utilities/environment/redis-environments.js +14 -0
- package/dist/types/utilities/environment/redis-environments.js.map +1 -0
- package/dist/types/utilities/error-common.d.ts +10 -0
- package/dist/types/utilities/error-common.js +76 -0
- package/dist/types/utilities/error-common.js.map +1 -0
- package/dist/types/utilities/id-generator.d.ts +6 -0
- package/dist/types/utilities/id-generator.js +161 -0
- package/dist/types/utilities/id-generator.js.map +1 -0
- package/dist/types/utilities/instance.utils.d.ts +1 -0
- package/dist/types/utilities/instance.utils.js +12 -0
- package/dist/types/utilities/instance.utils.js.map +1 -0
- package/dist/types/utilities/normalize.d.ts +6 -0
- package/dist/types/utilities/normalize.js +51 -0
- package/dist/types/utilities/normalize.js.map +1 -0
- package/dist/types/utilities/password.d.ts +2 -0
- package/dist/types/utilities/password.js +20 -0
- package/dist/types/utilities/password.js.map +1 -0
- package/dist/types/utilities/projection.d.ts +8 -0
- package/dist/types/utilities/projection.js +37 -0
- package/dist/types/utilities/projection.js.map +1 -0
- package/dist/types/utilities/time.d.ts +13 -0
- package/dist/types/utilities/time.js +128 -0
- package/dist/types/utilities/time.js.map +1 -0
- package/package.json +1 -5
|
@@ -18,6 +18,12 @@ import { LyxaFcmService } from './notification/lyxa-fcm.service';
|
|
|
18
18
|
import { GoogleTranslateService } from './google-translate';
|
|
19
19
|
import { LLMCompletionService } from './llm/llm-provider-service';
|
|
20
20
|
export declare class LibraryManager {
|
|
21
|
+
private readonly _singletons;
|
|
22
|
+
private _globalUpload?;
|
|
23
|
+
private readonly _tenetUpload;
|
|
24
|
+
private readonly _globalStorage;
|
|
25
|
+
private readonly _tenetStorage;
|
|
26
|
+
private resolve;
|
|
21
27
|
getLogger(): LyxaLogger;
|
|
22
28
|
getGoogleTranslateService(): GoogleTranslateService;
|
|
23
29
|
getLoggerKit(): LyxaLoggerKit;
|
package/dist/libraries/index.js
CHANGED
|
@@ -28,71 +28,102 @@ const lyxa_fcm_service_1 = require("./notification/lyxa-fcm.service");
|
|
|
28
28
|
const google_translate_1 = require("./google-translate");
|
|
29
29
|
const llm_provider_service_1 = require("./llm/llm-provider-service");
|
|
30
30
|
let LibraryManager = class LibraryManager {
|
|
31
|
+
_singletons = new Map();
|
|
32
|
+
_globalUpload;
|
|
33
|
+
_tenetUpload = new Map();
|
|
34
|
+
_globalStorage = new Map();
|
|
35
|
+
_tenetStorage = new Map();
|
|
36
|
+
resolve(token) {
|
|
37
|
+
let instance = this._singletons.get(token);
|
|
38
|
+
if (instance === undefined) {
|
|
39
|
+
instance = typedi_1.Container.get(token);
|
|
40
|
+
this._singletons.set(token, instance);
|
|
41
|
+
}
|
|
42
|
+
return instance;
|
|
43
|
+
}
|
|
31
44
|
getLogger() {
|
|
32
|
-
return
|
|
45
|
+
return this.resolve(logger_1.LyxaLogger);
|
|
33
46
|
}
|
|
34
47
|
getGoogleTranslateService() {
|
|
35
|
-
return
|
|
48
|
+
return this.resolve(google_translate_1.GoogleTranslateService);
|
|
36
49
|
}
|
|
37
50
|
getLoggerKit() {
|
|
38
|
-
return
|
|
51
|
+
return this.resolve(logger_kit_1.LyxaLoggerKit);
|
|
39
52
|
}
|
|
40
53
|
getMicroServiceDispatcher() {
|
|
41
|
-
return
|
|
54
|
+
return this.resolve(dispatcher_1.MicroServiceDispatcher);
|
|
42
55
|
}
|
|
43
56
|
getTwilioService() {
|
|
44
|
-
return
|
|
57
|
+
return this.resolve(twilio_1.TwilioService);
|
|
45
58
|
}
|
|
46
59
|
getSecretsService() {
|
|
47
|
-
return
|
|
60
|
+
return this.resolve(secrets_1.SecretManagerService);
|
|
48
61
|
}
|
|
49
62
|
getRedisService() {
|
|
50
|
-
return
|
|
63
|
+
return this.resolve(redis_1.RedisService);
|
|
51
64
|
}
|
|
52
65
|
getConfigurationService() {
|
|
53
|
-
return
|
|
66
|
+
return this.resolve(configuration_1.ConfigurationService);
|
|
54
67
|
}
|
|
55
68
|
getFirebaseService() {
|
|
56
|
-
return
|
|
69
|
+
return this.resolve(firebase_1.FirebaseService);
|
|
57
70
|
}
|
|
58
71
|
getAuthTokenRepository() {
|
|
59
|
-
return
|
|
72
|
+
return this.resolve(repository_1.TokenRepository);
|
|
60
73
|
}
|
|
61
74
|
getGlobalUploadService() {
|
|
62
|
-
return new upload_1.UploadService();
|
|
75
|
+
return (this._globalUpload ??= new upload_1.UploadService());
|
|
63
76
|
}
|
|
64
77
|
getTenetUploadService() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return
|
|
78
|
+
const bucket = 'lyxa-' + this.getConfigurationService().options.tenet;
|
|
79
|
+
let service = this._tenetUpload.get(bucket);
|
|
80
|
+
if (!service) {
|
|
81
|
+
service = new upload_1.UploadService(bucket);
|
|
82
|
+
this._tenetUpload.set(bucket, service);
|
|
83
|
+
}
|
|
84
|
+
return service;
|
|
85
|
+
}
|
|
86
|
+
getGlobalStorageService(provider = cloud_storage_1.StorageProvider.GCS) {
|
|
87
|
+
let service = this._globalStorage.get(provider);
|
|
88
|
+
if (!service) {
|
|
89
|
+
service = cloud_storage_1.CloudStorageFactory.create(undefined, provider);
|
|
90
|
+
this._globalStorage.set(provider, service);
|
|
91
|
+
}
|
|
92
|
+
return service;
|
|
93
|
+
}
|
|
94
|
+
getTenetStorageService(provider = cloud_storage_1.StorageProvider.GCS) {
|
|
95
|
+
const bucket = 'lyxa-' + this.getConfigurationService().options.tenet;
|
|
96
|
+
const key = `${bucket}:${provider}`;
|
|
97
|
+
let service = this._tenetStorage.get(key);
|
|
98
|
+
if (!service) {
|
|
99
|
+
service = cloud_storage_1.CloudStorageFactory.create(bucket, provider);
|
|
100
|
+
this._tenetStorage.set(key, service);
|
|
101
|
+
}
|
|
102
|
+
return service;
|
|
72
103
|
}
|
|
73
104
|
getMapService() {
|
|
74
|
-
return
|
|
105
|
+
return this.resolve(map_1.MapService);
|
|
75
106
|
}
|
|
76
107
|
getCachedSettingsService() {
|
|
77
|
-
return
|
|
108
|
+
return this.resolve(settings_1.CachedSettingsService);
|
|
78
109
|
}
|
|
79
110
|
getLyxaFcmService() {
|
|
80
|
-
return
|
|
111
|
+
return this.resolve(lyxa_fcm_service_1.LyxaFcmService);
|
|
81
112
|
}
|
|
82
113
|
getFCMService() {
|
|
83
|
-
return
|
|
114
|
+
return this.resolve(firebase_fcm_service_1.FirebaseFcmService);
|
|
84
115
|
}
|
|
85
116
|
getBullMQService() {
|
|
86
|
-
return
|
|
117
|
+
return this.resolve(bull_mq_service_1.BullMQService);
|
|
87
118
|
}
|
|
88
119
|
getCashSettlementService() {
|
|
89
|
-
return
|
|
120
|
+
return this.resolve(cash_settlement_1.CashSettlementService);
|
|
90
121
|
}
|
|
91
122
|
getBOBService() {
|
|
92
|
-
return
|
|
123
|
+
return this.resolve(cash_settlement_1.BOBService);
|
|
93
124
|
}
|
|
94
125
|
getLLMService() {
|
|
95
|
-
return
|
|
126
|
+
return this.resolve(llm_provider_service_1.LLMCompletionService);
|
|
96
127
|
}
|
|
97
128
|
};
|
|
98
129
|
exports.LibraryManager = LibraryManager;
|
|
@@ -1 +1 @@
|
|
|
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;AACpD,+BAAmC;AACnC,+CAAyD;AACzD,8EAAyE;AACzE,8DAAyD;AACzD,uDAAsE;AACtE,6CAA6C;AAC7C,mDAAsF;AACtF,sEAAiE;AACjE,yDAA4D;AAC5D,qEAAkE;AAG3D,IAAM,cAAc,GAApB,MAAM,cAAc;
|
|
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;AACpD,+BAAmC;AACnC,+CAAyD;AACzD,8EAAyE;AACzE,8DAAyD;AACzD,uDAAsE;AACtE,6CAA6C;AAC7C,mDAAsF;AACtF,sEAAiE;AACjE,yDAA4D;AAC5D,qEAAkE;AAG3D,IAAM,cAAc,GAApB,MAAM,cAAc;IAIT,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAMnD,aAAa,CAAiB;IACrB,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,cAAc,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC3D,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE1D,OAAO,CAAI,KAAgC;QAClD,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAkB,CAAC;QAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,GAAG,kBAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEM,SAAS;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAU,CAAC,CAAC;IACjC,CAAC;IACM,yBAAyB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,yCAAsB,CAAC,CAAC;IAC7C,CAAC;IACM,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,0BAAa,CAAC,CAAC;IACpC,CAAC;IACM,yBAAyB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,mCAAsB,CAAC,CAAC;IAC7C,CAAC;IACM,gBAAgB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAa,CAAC,CAAC;IACpC,CAAC;IACM,iBAAiB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,8BAAoB,CAAC,CAAC;IAC3C,CAAC;IACM,eAAe;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAY,CAAC,CAAC;IACnC,CAAC;IACM,uBAAuB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,oCAAoB,CAAC,CAAC;IAC3C,CAAC;IACM,kBAAkB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,0BAAe,CAAC,CAAC;IACtC,CAAC;IACM,sBAAsB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,4BAAe,CAAC,CAAC;IACtC,CAAC;IACM,sBAAsB;QAC5B,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,sBAAa,EAAE,CAAC,CAAC;IACrD,CAAC;IACM,qBAAqB;QAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACtE,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,IAAI,sBAAa,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEM,uBAAuB,CAAC,WAA4B,+BAAe,CAAC,GAAG;QAC7E,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,mCAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEM,sBAAsB,CAAC,WAA4B,+BAAe,CAAC,GAAG;QAC5E,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACtE,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,mCAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IACM,aAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAU,CAAC,CAAC;IACjC,CAAC;IACM,wBAAwB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAqB,CAAC,CAAC;IAC5C,CAAC;IAEM,iBAAiB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,iCAAc,CAAC,CAAC;IACrC,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,yCAAkB,CAAC,CAAC;IACzC,CAAC;IACM,gBAAgB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,+BAAa,CAAC,CAAC;IACpC,CAAC;IACM,wBAAwB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,uCAAqB,CAAC,CAAC;IAC5C,CAAC;IACM,aAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,4BAAU,CAAC,CAAC;IACjC,CAAC;IACM,aAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,2CAAoB,CAAC,CAAC;IAC3C,CAAC;CACD,CAAA;AAhHY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,gBAAO,GAAE;GACG,cAAc,CAgH1B","sourcesContent":["import { Container, Service } from 'typedi';\nimport { TwilioService } from './twilio';\nimport { LyxaLogger } from './logger';\nimport { MicroServiceDispatcher } from './dispatcher';\nimport { SecretManagerService } from './secrets';\nimport { RedisService } from './redis';\nimport { ConfigurationService } from './configuration';\nimport { UploadService } from './upload';\nimport { FirebaseService } from './firebase';\nimport { TokenRepository } from './auth/repository';\nimport { MapService } from './map';\nimport { CachedSettingsService } from './cache/settings';\nimport { FirebaseFcmService } from './notification/firebase-fcm.service';\nimport { BullMQService } from './bullmq/bull-mq-service';\nimport { BOBService, CashSettlementService } from './cash-settlement';\nimport { LyxaLoggerKit } from './logger-kit';\nimport { CloudStorageFactory, ICloudStorage, StorageProvider } from './cloud-storage';\nimport { LyxaFcmService } from './notification/lyxa-fcm.service';\nimport { GoogleTranslateService } from './google-translate';\nimport { LLMCompletionService } from './llm/llm-provider-service';\n\n@Service()\nexport class LibraryManager {\n\t// Memoized TypeDI singletons — resolved from the Container once, then reused.\n\t// LibraryManager itself is a @Service() singleton (getLibraries() -> Container.get),\n\t// so these caches live for the process lifetime.\n\tprivate readonly _singletons = new Map<unknown, unknown>();\n\n\t// Upload/storage services are constructed (not Container-managed). They hold only\n\t// immutable state derived from their bucket name + the process-fixed tenet, so a\n\t// single instance per (bucket, provider) is safe. Keyed by bucket/tenet to preserve\n\t// isolation should the resolved tenet ever differ.\n\tprivate _globalUpload?: UploadService;\n\tprivate readonly _tenetUpload = new Map<string, UploadService>();\n\tprivate readonly _globalStorage = new Map<StorageProvider, ICloudStorage>();\n\tprivate readonly _tenetStorage = new Map<string, ICloudStorage>();\n\n\tprivate resolve<T>(token: new (...args: any[]) => T): T {\n\t\tlet instance = this._singletons.get(token) as T | undefined;\n\t\tif (instance === undefined) {\n\t\t\tinstance = Container.get(token);\n\t\t\tthis._singletons.set(token, instance);\n\t\t}\n\t\treturn instance;\n\t}\n\n\tpublic getLogger(): LyxaLogger {\n\t\treturn this.resolve(LyxaLogger);\n\t}\n\tpublic getGoogleTranslateService() {\n\t\treturn this.resolve(GoogleTranslateService);\n\t}\n\tpublic getLoggerKit(): LyxaLoggerKit {\n\t\treturn this.resolve(LyxaLoggerKit);\n\t}\n\tpublic getMicroServiceDispatcher(): MicroServiceDispatcher {\n\t\treturn this.resolve(MicroServiceDispatcher);\n\t}\n\tpublic getTwilioService(): TwilioService {\n\t\treturn this.resolve(TwilioService);\n\t}\n\tpublic getSecretsService(): SecretManagerService {\n\t\treturn this.resolve(SecretManagerService);\n\t}\n\tpublic getRedisService(): RedisService {\n\t\treturn this.resolve(RedisService);\n\t}\n\tpublic getConfigurationService(): ConfigurationService {\n\t\treturn this.resolve(ConfigurationService);\n\t}\n\tpublic getFirebaseService(): FirebaseService {\n\t\treturn this.resolve(FirebaseService);\n\t}\n\tpublic getAuthTokenRepository(): TokenRepository {\n\t\treturn this.resolve(TokenRepository);\n\t}\n\tpublic getGlobalUploadService(): UploadService {\n\t\treturn (this._globalUpload ??= new UploadService());\n\t}\n\tpublic getTenetUploadService(): UploadService {\n\t\tconst bucket = 'lyxa-' + this.getConfigurationService().options.tenet;\n\t\tlet service = this._tenetUpload.get(bucket);\n\t\tif (!service) {\n\t\t\tservice = new UploadService(bucket);\n\t\t\tthis._tenetUpload.set(bucket, service);\n\t\t}\n\t\treturn service;\n\t}\n\n\tpublic getGlobalStorageService(provider: StorageProvider = StorageProvider.GCS): ICloudStorage {\n\t\tlet service = this._globalStorage.get(provider);\n\t\tif (!service) {\n\t\t\tservice = CloudStorageFactory.create(undefined, provider);\n\t\t\tthis._globalStorage.set(provider, service);\n\t\t}\n\t\treturn service;\n\t}\n\n\tpublic getTenetStorageService(provider: StorageProvider = StorageProvider.GCS): ICloudStorage {\n\t\tconst bucket = 'lyxa-' + this.getConfigurationService().options.tenet;\n\t\tconst key = `${bucket}:${provider}`;\n\t\tlet service = this._tenetStorage.get(key);\n\t\tif (!service) {\n\t\t\tservice = CloudStorageFactory.create(bucket, provider);\n\t\t\tthis._tenetStorage.set(key, service);\n\t\t}\n\t\treturn service;\n\t}\n\tpublic getMapService(): MapService {\n\t\treturn this.resolve(MapService);\n\t}\n\tpublic getCachedSettingsService(): CachedSettingsService {\n\t\treturn this.resolve(CachedSettingsService);\n\t}\n\n\tpublic getLyxaFcmService(): LyxaFcmService {\n\t\treturn this.resolve(LyxaFcmService);\n\t}\n\n\tpublic getFCMService(): FirebaseFcmService {\n\t\treturn this.resolve(FirebaseFcmService);\n\t}\n\tpublic getBullMQService(): BullMQService {\n\t\treturn this.resolve(BullMQService);\n\t}\n\tpublic getCashSettlementService(): CashSettlementService {\n\t\treturn this.resolve(CashSettlementService);\n\t}\n\tpublic getBOBService(): BOBService {\n\t\treturn this.resolve(BOBService);\n\t}\n\tpublic getLLMService(): LLMCompletionService {\n\t\treturn this.resolve(LLMCompletionService);\n\t}\n}\n"]}
|
|
@@ -8,15 +8,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.BOBFinance = void 0;
|
|
16
13
|
const typegoose_1 = require("@typegoose/typegoose");
|
|
17
14
|
const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
|
|
18
15
|
const enum_1 = require("../../../utilities/enum");
|
|
19
|
-
const
|
|
16
|
+
const nanoid_1 = require("nanoid");
|
|
20
17
|
const rider_model_1 = require("./rider.model");
|
|
21
18
|
const payout_model_1 = require("./payout.model");
|
|
22
19
|
let BOBFinance = class BOBFinance extends defaultClasses_1.TimeStamps {
|
|
@@ -35,7 +32,7 @@ let BOBFinance = class BOBFinance extends defaultClasses_1.TimeStamps {
|
|
|
35
32
|
};
|
|
36
33
|
exports.BOBFinance = BOBFinance;
|
|
37
34
|
__decorate([
|
|
38
|
-
(0, typegoose_1.prop)({ required: true, type: String, default: () =>
|
|
35
|
+
(0, typegoose_1.prop)({ required: true, type: String, default: () => (0, nanoid_1.nanoid)() }),
|
|
39
36
|
__metadata("design:type", String)
|
|
40
37
|
], BOBFinance.prototype, "referenceId", void 0);
|
|
41
38
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bob-finance.model.js","sourceRoot":"/","sources":["libraries/mongo/models/bob-finance.model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bob-finance.model.js","sourceRoot":"/","sources":["libraries/mongo/models/bob-finance.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+D;AAC/D,4EAAqE;AACrE,kDAMiC;AACjC,mCAAgC;AAChC,+CAAsC;AACtC,iDAAwC;AAGjC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,2BAAU;IAElC,WAAW,CAAU;IAGrB,SAAS,CAAU;IAGnB,WAAW,CAAkB;IAG7B,cAAc,CAAqB;IAGnC,KAAK,CAAc;IAGnB,MAAM,CAAU;IAGhB,eAAe,CAAU;IAGzB,MAAM,CAAuB;IAG7B,QAAQ,CAAY;IAGpB,OAAO,CAAW;IAGlB,WAAW,CAAU;IAGrB,MAAM,CAAe;CAC5B,CAAA;AApCY,gCAAU;AAEf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,eAAM,GAAE,EAAE,CAAC;;+CACpC;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACb;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAc,EAAE,OAAO,EAAE,qBAAc,CAAC,KAAK,EAAE,CAAC;;+CACxD;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAiB,EAAE,OAAO,EAAE,wBAAiB,CAAC,WAAW,EAAE,CAAC;;kDAC9D;AAGnC;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAK,EAAE,CAAC;;yCACD;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;0CACZ;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;mDACH;AAGzB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAAmB,EAAE,OAAO,EAAE,0BAAmB,CAAC,QAAQ,EAAE,CAAC;;0CACrD;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;4CAC5B;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAO,EAAE,CAAC;;2CAC7B;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACK;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAM,EAAE,CAAC;;0CACA;qBAnChB,UAAU;IADtB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC;GAClD,UAAU,CAoCtB","sourcesContent":["import { modelOptions, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport {\n\tBobAccountType,\n\tBobModel,\n\tBobSettlementStatus,\n\tBobSettlementType,\n\tBobType,\n} from '../../../utilities/enum';\nimport { nanoid } from 'nanoid';\nimport { Rider } from './rider.model';\nimport { Payout } from './payout.model';\n\n@modelOptions({ schemaOptions: { collection: 'bobFinances' } })\nexport class BOBFinance extends TimeStamps {\n\t@prop({ required: true, type: String, default: () => nanoid() })\n\tpublic referenceId!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic crmNumber!: string;\n\n\t@prop({ required: true, type: String, enum: BobAccountType, default: BobAccountType.RIDER })\n\tpublic accountType!: BobAccountType;\n\n\t@prop({ required: true, type: String, enum: BobSettlementType, default: BobSettlementType.SETTLE_CASH })\n\tpublic settlementType!: BobSettlementType;\n\n\t@prop({ ref: () => Rider })\n\tpublic rider?: Ref<Rider>;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amount?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmount?: number;\n\n\t@prop({ type: String, enum: BobSettlementStatus, default: BobSettlementStatus.NOT_PAID })\n\tpublic status?: BobSettlementStatus;\n\n\t@prop({ required: true, type: String, enum: BobModel })\n\tpublic bobModel!: BobModel;\n\n\t@prop({ required: true, type: String, enum: BobType })\n\tpublic bobType!: BobType;\n\n\t@prop({ type: String })\n\tpublic bobLocation?: string;\n\n\t@prop({ ref: () => Payout })\n\tpublic payout?: Ref<Payout>;\n}\n"]}
|
|
@@ -3,9 +3,11 @@ import { CouponType } from '../../../../utilities/enum';
|
|
|
3
3
|
import { BaseCoupon } from '../base/base-coupon.model';
|
|
4
4
|
import { Order } from '../order.model';
|
|
5
5
|
import { User } from '../user.model';
|
|
6
|
+
import { ReferralSetting } from '../referral-setting.model';
|
|
6
7
|
export declare class ReferralRewardCoupon extends BaseCoupon {
|
|
7
8
|
couponType: CouponType.REFERRAL_REWARD;
|
|
8
9
|
user: Ref<User>;
|
|
9
10
|
referralCodeUsedBy: Ref<User>;
|
|
10
11
|
referralCodeUsedOnOrder: Ref<Order>;
|
|
12
|
+
referralSettingSnapShot?: ReferralSetting;
|
|
11
13
|
}
|
|
@@ -15,11 +15,13 @@ const enum_1 = require("../../../../utilities/enum");
|
|
|
15
15
|
const base_coupon_model_1 = require("../base/base-coupon.model");
|
|
16
16
|
const order_model_1 = require("../order.model");
|
|
17
17
|
const user_model_1 = require("../user.model");
|
|
18
|
+
const referral_setting_model_1 = require("../referral-setting.model");
|
|
18
19
|
class ReferralRewardCoupon extends base_coupon_model_1.BaseCoupon {
|
|
19
20
|
couponType = enum_1.CouponType.REFERRAL_REWARD;
|
|
20
21
|
user;
|
|
21
22
|
referralCodeUsedBy;
|
|
22
23
|
referralCodeUsedOnOrder;
|
|
24
|
+
referralSettingSnapShot;
|
|
23
25
|
}
|
|
24
26
|
exports.ReferralRewardCoupon = ReferralRewardCoupon;
|
|
25
27
|
__decorate([
|
|
@@ -34,4 +36,8 @@ __decorate([
|
|
|
34
36
|
(0, typegoose_1.prop)({ required: true, ref: () => order_model_1.Order }),
|
|
35
37
|
__metadata("design:type", Object)
|
|
36
38
|
], ReferralRewardCoupon.prototype, "referralCodeUsedOnOrder", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typegoose_1.prop)({ type: () => referral_setting_model_1.ReferralSetting }),
|
|
41
|
+
__metadata("design:type", referral_setting_model_1.ReferralSetting)
|
|
42
|
+
], ReferralRewardCoupon.prototype, "referralSettingSnapShot", void 0);
|
|
37
43
|
//# sourceMappingURL=referral-reward-coupon.model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referral-reward-coupon.model.js","sourceRoot":"/","sources":["libraries/mongo/models/providers/referral-reward-coupon.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAiD;AACjD,qDAAwD;AACxD,iEAAuD;AACvD,gDAAuC;AACvC,8CAAqC;
|
|
1
|
+
{"version":3,"file":"referral-reward-coupon.model.js","sourceRoot":"/","sources":["libraries/mongo/models/providers/referral-reward-coupon.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAiD;AACjD,qDAAwD;AACxD,iEAAuD;AACvD,gDAAuC;AACvC,8CAAqC;AACrC,sEAA4D;AAE5D,MAAa,oBAAqB,SAAQ,8BAAU;IAC5C,UAAU,GAAG,iBAAU,CAAC,eAAwB,CAAC;IAGjD,IAAI,CAAa;IAGjB,kBAAkB,CAAa;IAG/B,uBAAuB,CAAc;IAGrC,uBAAuB,CAAmB;CACjD;AAdD,oDAcC;AAVO;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;kDAClB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;gEACJ;AAG/B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAK,EAAE,CAAC;;qEACC;AAGrC;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,wCAAe,EAAE,CAAC;8BACL,wCAAe;qEAAC","sourcesContent":["import { prop, Ref } from '@typegoose/typegoose';\nimport { CouponType } from '../../../../utilities/enum';\nimport { BaseCoupon } from '../base/base-coupon.model';\nimport { Order } from '../order.model';\nimport { User } from '../user.model';\nimport { ReferralSetting } from '../referral-setting.model';\n\nexport class ReferralRewardCoupon extends BaseCoupon {\n\tpublic couponType = CouponType.REFERRAL_REWARD as const;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user!: Ref<User>;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic referralCodeUsedBy!: Ref<User>;\n\n\t@prop({ required: true, ref: () => Order })\n\tpublic referralCodeUsedOnOrder!: Ref<Order>;\n\n\t@prop({ type: () => ReferralSetting })\n\tpublic referralSettingSnapShot?: ReferralSetting;\n}\n"]}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.UploadService = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const sharp_1 = __importDefault(require("sharp"));
|
|
9
|
-
const
|
|
9
|
+
const dayjs_1 = require("../../utilities/dayjs");
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const index_1 = require("../../index");
|
|
12
12
|
const mime_types_1 = __importDefault(require("mime-types"));
|
|
@@ -31,7 +31,7 @@ class UploadService {
|
|
|
31
31
|
generateFilename(originalFilename, extension) {
|
|
32
32
|
const nameWithoutExt = path_1.default.parse(originalFilename).name;
|
|
33
33
|
const newExtension = extension || path_1.default.extname(originalFilename);
|
|
34
|
-
const timestamp = (0,
|
|
34
|
+
const timestamp = (0, dayjs_1.dayjs)().format('DDMMYYHmmss');
|
|
35
35
|
const randomId = Math.floor(Math.random() * 100);
|
|
36
36
|
const baseName = `${makeSlug(nameWithoutExt)}-${this.websiteName}-${timestamp}-${randomId}`;
|
|
37
37
|
return baseName + newExtension;
|
|
@@ -94,7 +94,7 @@ class UploadService {
|
|
|
94
94
|
async transcodeImage(buffer, originalFilename, resolutions) {
|
|
95
95
|
const extension = path_1.default.extname(originalFilename);
|
|
96
96
|
const contentType = `image/${extension.replace('.', '') || 'jpeg'}`;
|
|
97
|
-
const timestamp = (0,
|
|
97
|
+
const timestamp = (0, dayjs_1.dayjs)().format('DDMMYYHmmss');
|
|
98
98
|
const randomId = Math.floor(Math.random() * 100);
|
|
99
99
|
const baseFilename = `${makeSlug(path_1.default.parse(originalFilename).name)}-${this.websiteName}-${timestamp}-${randomId}`;
|
|
100
100
|
const originalFileName = `${baseFilename}${extension}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/upload/index.ts"],"names":[],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport sharp from 'sharp';\nimport moment from 'moment';\nimport path from 'path';\nimport { getLibraries } from '../../index';\nimport mime from 'mime-types';\nimport FileType from 'file-type';\nimport pRetry from 'p-retry';\n\nfunction makeSlug(input: string): string {\n\treturn input\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, '-')\n\t\t.replace(/(^-|-$)/g, '');\n}\n\nexport class UploadService {\n\tprivate bucket;\n\tprivate readonly websiteName;\n\n\tconstructor(bucketName?: string) {\n\t\tif (!bucketName) {\n\t\t\tbucketName = 'lyxa-global';\n\t\t}\n\n\t\tthis.bucket = getLibraries().getFirebaseService().superApp.storage().bucket(bucketName);\n\t\tthis.websiteName = 'lyxa-' + getLibraries().getConfigurationService().options.tenet;\n\t}\n\n\t/**\n\t * Generates a unique filename using the original filename.\n\t */\n\tprivate generateFilename(originalFilename: string, extension?: string): string {\n\t\tconst nameWithoutExt = path.parse(originalFilename).name;\n\t\tconst newExtension = extension || path.extname(originalFilename);\n\t\tconst timestamp = moment().format('DDMMYYHmmss');\n\t\tconst randomId = Math.floor(Math.random() * 100);\n\t\tconst baseName = `${makeSlug(nameWithoutExt)}-${this.websiteName}-${timestamp}-${randomId}`;\n\t\treturn baseName + newExtension;\n\t}\n\n\t/**\n\t * Uploads an image buffer after processing it with Sharp.\n\t * An optional destinationPath can be provided (e.g., 'images/product.jpg').\n\t */\n\tasync uploadImage(buffer: Buffer, originalFilename: string): Promise<{ filename: string; url: string }> {\n\t\tlet fileType: string | undefined;\n\n\t\ttry {\n\t\t\t// Detect actual file type\n\t\t\tfileType = (await FileType.fileTypeFromBuffer(buffer))?.ext;\n\t\t\tif (!fileType) throw new Error('Unable to detect image type');\n\n\t\t\tconst newFilename = this.generateFilename(originalFilename);\n\t\t\tconst extension = path.extname(newFilename).toLowerCase();\n\t\t\tlet processedImage: sharp.Sharp;\n\t\t\tlet contentType: string;\n\t\t\tif (extension === '.png') {\n\t\t\t\tprocessedImage = sharp(buffer).png({ quality: 80 });\n\t\t\t\tcontentType = 'image/png';\n\t\t\t} else if (extension === '.webp') {\n\t\t\t\tprocessedImage = sharp(buffer).webp({ quality: 80 });\n\t\t\t\tcontentType = 'image/webp';\n\t\t\t} else {\n\t\t\t\tprocessedImage = sharp(buffer).jpeg({ quality: 80 });\n\t\t\t\tcontentType = 'image/jpeg';\n\t\t\t}\n\n\t\t\tconst file = this.bucket.file(newFilename);\n\t\t\treturn await new Promise((resolve, reject) => {\n\t\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\t\tresumable: false,\n\t\t\t\t\tcontentType,\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('finish', async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.pipe(blobStream);\n\t\t\t});\n\t\t} catch (err: any) {\n\t\t\tconsole.error('Image upload failed:', err);\n\t\t\tif (fileType) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`${fileType.toUpperCase()} format not supported. Please use JPEG, PNG, or WebP format instead.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(`Image upload failed: ${err.message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Transcodes (resizes) an image buffer into multiple resolutions.\n\t * An optional destinationPrefix can be provided to force a specific path or filename base.\n\t *\n\t * For example, if destinationPrefix is 'images/product', then the original might be\n\t * uploaded as 'images/product.jpg' and the resized versions as 'images/product-480.jpg', etc.\n\t */\n\tasync transcodeImage(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\tresolutions: number[]\n\t): Promise<{\n\t\toriginalUrl: string;\n\t\tresizedResults: Array<{ resolution: number; url: string }>;\n\t}> {\n\t\tconst extension = path.extname(originalFilename);\n\t\tconst contentType = `image/${extension.replace('.', '') || 'jpeg'}`;\n\t\tconst timestamp = moment().format('DDMMYYHmmss');\n\t\tconst randomId = Math.floor(Math.random() * 100);\n\n\t\tconst baseFilename = `${makeSlug(path.parse(originalFilename).name)}-${this.websiteName}-${timestamp}-${randomId}`;\n\n\t\tconst originalFileName = `${baseFilename}${extension}`;\n\t\tconst originalUrl = await this.uploadBuffer(buffer, originalFileName, contentType);\n\n\t\tconst metadata = await sharp(buffer).metadata();\n\t\tconst isLandscape = metadata.width && metadata.height ? metadata.width > metadata.height : true;\n\n\t\tconst resizedResults = await Promise.all(\n\t\t\tresolutions.map(async resolution => {\n\t\t\t\tconst resizeOptions = isLandscape ? { width: resolution } : { height: resolution };\n\t\t\t\tconst formatKey = (extension.replace('.', '') || 'jpeg') as keyof sharp.FormatEnum;\n\t\t\t\tconst resizedBuffer = await sharp(buffer)\n\t\t\t\t\t.resize({\n\t\t\t\t\t\t...resizeOptions,\n\t\t\t\t\t\twithoutEnlargement: true,\n\t\t\t\t\t})\n\t\t\t\t\t.toFormat(formatKey, { quality: 80 })\n\t\t\t\t\t.toBuffer();\n\t\t\t\tconst resizedFilename = `${baseFilename}-${resolution}${extension}`;\n\t\t\t\tconst resizedUrl = await this.uploadBuffer(resizedBuffer, resizedFilename, contentType);\n\t\t\t\treturn { resolution, url: resizedUrl };\n\t\t\t})\n\t\t);\n\n\t\treturn { originalUrl, resizedResults };\n\t}\n\n\t/**\n\t * Helper function to upload a buffer to a specified filename.\n\t */\n\tprivate async uploadBuffer(buffer: Buffer, filename: string, contentType: string): Promise<string> {\n\t\tconst file = this.bucket.file(filename);\n\t\tawait file.save(buffer, {\n\t\t\tresumable: false,\n\t\t\tcontentType,\n\t\t});\n\t\tawait file.makePublic();\n\t\treturn `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t}\n\n\tasync getListFiles(): Promise<Array<{ name: string; url: string }>> {\n\t\tconst [files] = await this.bucket.getFiles();\n\t\treturn files.map(file => ({\n\t\t\tname: file.name!,\n\t\t\turl: file.metadata.mediaLink!,\n\t\t}));\n\t}\n\n\tasync downloadFile(filename: string): Promise<Buffer> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [buffer] = await file.download();\n\t\treturn buffer;\n\t}\n\n\tasync deleteFile(filename: string): Promise<void> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\t\tif (!exists) {\n\t\t\tthrow new Error('File does not exist.');\n\t\t}\n\t\tawait file.delete();\n\t}\n\n\tasync getPublicUrlFromFilename(filename: string): Promise<{ status: boolean; url: string }> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\n\t\tif (!exists) {\n\t\t\treturn { status: false, url: '' };\n\t\t}\n\n\t\treturn {\n\t\t\tstatus: true,\n\t\t\turl: `https://storage.googleapis.com/${this.bucket.name}/${filename}`,\n\t\t};\n\t}\n\n\tpublic extractFilenameFromUrl(url: string): string {\n\t\ttry {\n\t\t\tconst urlObj = new URL(url);\n\t\t\tconst pathParts = urlObj.pathname.split('/');\n\t\t\treturn decodeURIComponent(pathParts[pathParts.length - 1]);\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid URL: ${url}`);\n\t\t}\n\t}\n\n\tasync deleteFileByUrl(url: string): Promise<void> {\n\t\tconst filename = this.extractFilenameFromUrl(url);\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\t\tif (!exists) {\n\t\t\tthrow new Error('File does not exist.');\n\t\t}\n\t\tawait file.delete();\n\t}\n\n\tasync downloadImage(url: string, retryTimes = 0): Promise<Buffer> {\n\t\tconst attemptDownload = async (): Promise<Buffer> => {\n\t\t\tconst response = await axios.get(url, {\n\t\t\t\tresponseType: 'arraybuffer',\n\t\t\t\ttimeout: 10000,\n\t\t\t\tmaxRedirects: 3,\n\t\t\t\tvalidateStatus: status => status >= 200 && status < 400,\n\t\t\t});\n\t\t\treturn Buffer.from(response.data, 'binary');\n\t\t};\n\n\t\ttry {\n\t\t\tconst buffer = await pRetry(attemptDownload, {\n\t\t\t\tretries: retryTimes,\n\t\t\t\tfactor: 2,\n\t\t\t\tminTimeout: 1000,\n\t\t\t\tmaxTimeout: 5000,\n\t\t\t\trandomize: true, // adds jitter for better efficiency\n\t\t\t\tonFailedAttempt: (error: any) => {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`[downloadImage] Attempt ${error.attemptNumber} failed (${error.retriesLeft} retries left): ${error.message}`\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn buffer;\n\t\t} catch (error: any) {\n\t\t\tif (axios.isAxiosError(error)) {\n\t\t\t\tconst status = error.response?.status;\n\t\t\t\tlet reason = 'Image download failed';\n\n\t\t\t\tswitch (status) {\n\t\t\t\t\tcase 403:\n\t\t\t\t\t\treason = 'Image URL is not valid or access forbidden (403)';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 404:\n\t\t\t\t\t\treason = 'Image not found (404)';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 429:\n\t\t\t\t\t\treason = 'Too many requests (429) — rate limited by server';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treason = status\n\t\t\t\t\t\t\t? `Image download failed with status ${status}`\n\t\t\t\t\t\t\t: `Network or unknown error: ${error.message}`;\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(reason);\n\t\t\t}\n\n\t\t\tthrow new Error(`Unexpected error downloading image: ${error.message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Uploads a buffer to Google Cloud Storage and makes it public\n\t */\n\tprivate async uploadToGCS(\n\t\tbuffer: Buffer,\n\t\tfilename: string,\n\t\tcontentType: string\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst file = this.bucket.file(filename);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Create a write stream to upload the file\n\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\tresumable: false,\n\t\t\t\tcontentType,\n\t\t\t});\n\n\t\t\tblobStream.on('error', reject);\n\n\t\t\tblobStream.on('finish', async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// Make the file publicly accessible\n\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t} catch (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Start uploading the buffer\n\t\t\tblobStream.end(buffer);\n\t\t});\n\t}\n\n\t/**\n\t * Uploads and converts an image to WebP format, resizes if needed, and uploads to GCS\n\t */\n\tasync uploadProcessedImageToWebp(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\toptions?: { quality?: number; width?: number; height?: number }\n\t): Promise<{ filename: string; url: string }> {\n\t\tlet fileType: string | undefined;\n\n\t\ttry {\n\t\t\tconst newFilename = this.generateFilename(originalFilename, '.webp');\n\t\t\tconst quality = options?.quality ?? 90;\n\n\t\t\t// Detect actual file type\n\t\t\tfileType = (await FileType.fileTypeFromBuffer(buffer))?.ext;\n\t\t\tif (!fileType) throw new Error('Unable to detect image type');\n\n\t\t\t// Get original image dimensions if width or height is missing\n\t\t\tconst metadata = await sharp(buffer).metadata();\n\t\t\tconst width = options?.width || metadata.width;\n\t\t\tconst height = options?.height || metadata.height;\n\n\t\t\t// Convert to WebP and resize\n\t\t\tconst processedImage: sharp.Sharp = sharp(buffer)\n\t\t\t\t.resize({ width, height, fit: 'inside', withoutEnlargement: true })\n\t\t\t\t.webp({ quality });\n\n\t\t\tconst file = this.bucket.file(newFilename);\n\n\t\t\treturn await new Promise((resolve, reject) => {\n\t\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\t\tresumable: false,\n\t\t\t\t\tcontentType: 'image/webp',\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('finish', async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.pipe(blobStream);\n\t\t\t});\n\t\t} catch (err: any) {\n\t\t\tconsole.error('Processed image upload failed:', err);\n\t\t\tif (fileType) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`${fileType.toUpperCase()} format not supported. Please use JPEG, PNG, or WebP format instead.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(`Processed image upload failed: ${err.message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Uploads any supported file type to GCS and returns its public URL\n\t */\n\tasync uploadFile(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\toptions?: {\n\t\t\tquality?: number;\n\t\t\twidth?: number;\n\t\t\theight?: number;\n\t\t\twithExtension?: boolean;\n\t\t\twithOriginalFilename?: boolean;\n\t\t}\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst newFilename = options?.withOriginalFilename\n\t\t\t? originalFilename\n\t\t\t: this.generateFilename(originalFilename);\n\t\tconst extension = path.extname(newFilename).toLowerCase();\n\n\t\t// Guess the MIME type using the mime-types library\n\t\tconst contentType = mime.lookup(extension) || 'application/octet-stream';\n\n\t\t// Special image handling (compression)\n\t\tif (contentType.startsWith('image/')) {\n\t\t\tif (options?.withExtension) {\n\t\t\t\treturn this.uploadImage(buffer, originalFilename);\n\t\t\t} else {\n\t\t\t\treturn this.uploadProcessedImageToWebp(buffer, originalFilename, options);\n\t\t\t}\n\t\t}\n\n\t\treturn this.uploadToGCS(buffer, newFilename, contentType);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/upload/index.ts"],"names":[],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport sharp from 'sharp';\nimport { dayjs } from '../../utilities/dayjs';\nimport path from 'path';\nimport { getLibraries } from '../../index';\nimport mime from 'mime-types';\nimport FileType from 'file-type';\nimport pRetry from 'p-retry';\n\nfunction makeSlug(input: string): string {\n\treturn input\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, '-')\n\t\t.replace(/(^-|-$)/g, '');\n}\n\nexport class UploadService {\n\tprivate bucket;\n\tprivate readonly websiteName;\n\n\tconstructor(bucketName?: string) {\n\t\tif (!bucketName) {\n\t\t\tbucketName = 'lyxa-global';\n\t\t}\n\n\t\tthis.bucket = getLibraries().getFirebaseService().superApp.storage().bucket(bucketName);\n\t\tthis.websiteName = 'lyxa-' + getLibraries().getConfigurationService().options.tenet;\n\t}\n\n\t/**\n\t * Generates a unique filename using the original filename.\n\t */\n\tprivate generateFilename(originalFilename: string, extension?: string): string {\n\t\tconst nameWithoutExt = path.parse(originalFilename).name;\n\t\tconst newExtension = extension || path.extname(originalFilename);\n\t\tconst timestamp = dayjs().format('DDMMYYHmmss');\n\t\tconst randomId = Math.floor(Math.random() * 100);\n\t\tconst baseName = `${makeSlug(nameWithoutExt)}-${this.websiteName}-${timestamp}-${randomId}`;\n\t\treturn baseName + newExtension;\n\t}\n\n\t/**\n\t * Uploads an image buffer after processing it with Sharp.\n\t * An optional destinationPath can be provided (e.g., 'images/product.jpg').\n\t */\n\tasync uploadImage(buffer: Buffer, originalFilename: string): Promise<{ filename: string; url: string }> {\n\t\tlet fileType: string | undefined;\n\n\t\ttry {\n\t\t\t// Detect actual file type\n\t\t\tfileType = (await FileType.fileTypeFromBuffer(buffer))?.ext;\n\t\t\tif (!fileType) throw new Error('Unable to detect image type');\n\n\t\t\tconst newFilename = this.generateFilename(originalFilename);\n\t\t\tconst extension = path.extname(newFilename).toLowerCase();\n\t\t\tlet processedImage: sharp.Sharp;\n\t\t\tlet contentType: string;\n\t\t\tif (extension === '.png') {\n\t\t\t\tprocessedImage = sharp(buffer).png({ quality: 80 });\n\t\t\t\tcontentType = 'image/png';\n\t\t\t} else if (extension === '.webp') {\n\t\t\t\tprocessedImage = sharp(buffer).webp({ quality: 80 });\n\t\t\t\tcontentType = 'image/webp';\n\t\t\t} else {\n\t\t\t\tprocessedImage = sharp(buffer).jpeg({ quality: 80 });\n\t\t\t\tcontentType = 'image/jpeg';\n\t\t\t}\n\n\t\t\tconst file = this.bucket.file(newFilename);\n\t\t\treturn await new Promise((resolve, reject) => {\n\t\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\t\tresumable: false,\n\t\t\t\t\tcontentType,\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('finish', async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.pipe(blobStream);\n\t\t\t});\n\t\t} catch (err: any) {\n\t\t\tconsole.error('Image upload failed:', err);\n\t\t\tif (fileType) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`${fileType.toUpperCase()} format not supported. Please use JPEG, PNG, or WebP format instead.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(`Image upload failed: ${err.message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Transcodes (resizes) an image buffer into multiple resolutions.\n\t * An optional destinationPrefix can be provided to force a specific path or filename base.\n\t *\n\t * For example, if destinationPrefix is 'images/product', then the original might be\n\t * uploaded as 'images/product.jpg' and the resized versions as 'images/product-480.jpg', etc.\n\t */\n\tasync transcodeImage(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\tresolutions: number[]\n\t): Promise<{\n\t\toriginalUrl: string;\n\t\tresizedResults: Array<{ resolution: number; url: string }>;\n\t}> {\n\t\tconst extension = path.extname(originalFilename);\n\t\tconst contentType = `image/${extension.replace('.', '') || 'jpeg'}`;\n\t\tconst timestamp = dayjs().format('DDMMYYHmmss');\n\t\tconst randomId = Math.floor(Math.random() * 100);\n\n\t\tconst baseFilename = `${makeSlug(path.parse(originalFilename).name)}-${this.websiteName}-${timestamp}-${randomId}`;\n\n\t\tconst originalFileName = `${baseFilename}${extension}`;\n\t\tconst originalUrl = await this.uploadBuffer(buffer, originalFileName, contentType);\n\n\t\tconst metadata = await sharp(buffer).metadata();\n\t\tconst isLandscape = metadata.width && metadata.height ? metadata.width > metadata.height : true;\n\n\t\tconst resizedResults = await Promise.all(\n\t\t\tresolutions.map(async resolution => {\n\t\t\t\tconst resizeOptions = isLandscape ? { width: resolution } : { height: resolution };\n\t\t\t\tconst formatKey = (extension.replace('.', '') || 'jpeg') as keyof sharp.FormatEnum;\n\t\t\t\tconst resizedBuffer = await sharp(buffer)\n\t\t\t\t\t.resize({\n\t\t\t\t\t\t...resizeOptions,\n\t\t\t\t\t\twithoutEnlargement: true,\n\t\t\t\t\t})\n\t\t\t\t\t.toFormat(formatKey, { quality: 80 })\n\t\t\t\t\t.toBuffer();\n\t\t\t\tconst resizedFilename = `${baseFilename}-${resolution}${extension}`;\n\t\t\t\tconst resizedUrl = await this.uploadBuffer(resizedBuffer, resizedFilename, contentType);\n\t\t\t\treturn { resolution, url: resizedUrl };\n\t\t\t})\n\t\t);\n\n\t\treturn { originalUrl, resizedResults };\n\t}\n\n\t/**\n\t * Helper function to upload a buffer to a specified filename.\n\t */\n\tprivate async uploadBuffer(buffer: Buffer, filename: string, contentType: string): Promise<string> {\n\t\tconst file = this.bucket.file(filename);\n\t\tawait file.save(buffer, {\n\t\t\tresumable: false,\n\t\t\tcontentType,\n\t\t});\n\t\tawait file.makePublic();\n\t\treturn `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t}\n\n\tasync getListFiles(): Promise<Array<{ name: string; url: string }>> {\n\t\tconst [files] = await this.bucket.getFiles();\n\t\treturn files.map(file => ({\n\t\t\tname: file.name!,\n\t\t\turl: file.metadata.mediaLink!,\n\t\t}));\n\t}\n\n\tasync downloadFile(filename: string): Promise<Buffer> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [buffer] = await file.download();\n\t\treturn buffer;\n\t}\n\n\tasync deleteFile(filename: string): Promise<void> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\t\tif (!exists) {\n\t\t\tthrow new Error('File does not exist.');\n\t\t}\n\t\tawait file.delete();\n\t}\n\n\tasync getPublicUrlFromFilename(filename: string): Promise<{ status: boolean; url: string }> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\n\t\tif (!exists) {\n\t\t\treturn { status: false, url: '' };\n\t\t}\n\n\t\treturn {\n\t\t\tstatus: true,\n\t\t\turl: `https://storage.googleapis.com/${this.bucket.name}/${filename}`,\n\t\t};\n\t}\n\n\tpublic extractFilenameFromUrl(url: string): string {\n\t\ttry {\n\t\t\tconst urlObj = new URL(url);\n\t\t\tconst pathParts = urlObj.pathname.split('/');\n\t\t\treturn decodeURIComponent(pathParts[pathParts.length - 1]);\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid URL: ${url}`);\n\t\t}\n\t}\n\n\tasync deleteFileByUrl(url: string): Promise<void> {\n\t\tconst filename = this.extractFilenameFromUrl(url);\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\t\tif (!exists) {\n\t\t\tthrow new Error('File does not exist.');\n\t\t}\n\t\tawait file.delete();\n\t}\n\n\tasync downloadImage(url: string, retryTimes = 0): Promise<Buffer> {\n\t\tconst attemptDownload = async (): Promise<Buffer> => {\n\t\t\tconst response = await axios.get(url, {\n\t\t\t\tresponseType: 'arraybuffer',\n\t\t\t\ttimeout: 10000,\n\t\t\t\tmaxRedirects: 3,\n\t\t\t\tvalidateStatus: status => status >= 200 && status < 400,\n\t\t\t});\n\t\t\treturn Buffer.from(response.data, 'binary');\n\t\t};\n\n\t\ttry {\n\t\t\tconst buffer = await pRetry(attemptDownload, {\n\t\t\t\tretries: retryTimes,\n\t\t\t\tfactor: 2,\n\t\t\t\tminTimeout: 1000,\n\t\t\t\tmaxTimeout: 5000,\n\t\t\t\trandomize: true, // adds jitter for better efficiency\n\t\t\t\tonFailedAttempt: (error: any) => {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`[downloadImage] Attempt ${error.attemptNumber} failed (${error.retriesLeft} retries left): ${error.message}`\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn buffer;\n\t\t} catch (error: any) {\n\t\t\tif (axios.isAxiosError(error)) {\n\t\t\t\tconst status = error.response?.status;\n\t\t\t\tlet reason = 'Image download failed';\n\n\t\t\t\tswitch (status) {\n\t\t\t\t\tcase 403:\n\t\t\t\t\t\treason = 'Image URL is not valid or access forbidden (403)';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 404:\n\t\t\t\t\t\treason = 'Image not found (404)';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 429:\n\t\t\t\t\t\treason = 'Too many requests (429) — rate limited by server';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treason = status\n\t\t\t\t\t\t\t? `Image download failed with status ${status}`\n\t\t\t\t\t\t\t: `Network or unknown error: ${error.message}`;\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(reason);\n\t\t\t}\n\n\t\t\tthrow new Error(`Unexpected error downloading image: ${error.message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Uploads a buffer to Google Cloud Storage and makes it public\n\t */\n\tprivate async uploadToGCS(\n\t\tbuffer: Buffer,\n\t\tfilename: string,\n\t\tcontentType: string\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst file = this.bucket.file(filename);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Create a write stream to upload the file\n\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\tresumable: false,\n\t\t\t\tcontentType,\n\t\t\t});\n\n\t\t\tblobStream.on('error', reject);\n\n\t\t\tblobStream.on('finish', async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// Make the file publicly accessible\n\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t} catch (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Start uploading the buffer\n\t\t\tblobStream.end(buffer);\n\t\t});\n\t}\n\n\t/**\n\t * Uploads and converts an image to WebP format, resizes if needed, and uploads to GCS\n\t */\n\tasync uploadProcessedImageToWebp(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\toptions?: { quality?: number; width?: number; height?: number }\n\t): Promise<{ filename: string; url: string }> {\n\t\tlet fileType: string | undefined;\n\n\t\ttry {\n\t\t\tconst newFilename = this.generateFilename(originalFilename, '.webp');\n\t\t\tconst quality = options?.quality ?? 90;\n\n\t\t\t// Detect actual file type\n\t\t\tfileType = (await FileType.fileTypeFromBuffer(buffer))?.ext;\n\t\t\tif (!fileType) throw new Error('Unable to detect image type');\n\n\t\t\t// Get original image dimensions if width or height is missing\n\t\t\tconst metadata = await sharp(buffer).metadata();\n\t\t\tconst width = options?.width || metadata.width;\n\t\t\tconst height = options?.height || metadata.height;\n\n\t\t\t// Convert to WebP and resize\n\t\t\tconst processedImage: sharp.Sharp = sharp(buffer)\n\t\t\t\t.resize({ width, height, fit: 'inside', withoutEnlargement: true })\n\t\t\t\t.webp({ quality });\n\n\t\t\tconst file = this.bucket.file(newFilename);\n\n\t\t\treturn await new Promise((resolve, reject) => {\n\t\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\t\tresumable: false,\n\t\t\t\t\tcontentType: 'image/webp',\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('error', (err: Error) => {\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\n\t\t\t\tblobStream.on('finish', async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tprocessedImage.pipe(blobStream);\n\t\t\t});\n\t\t} catch (err: any) {\n\t\t\tconsole.error('Processed image upload failed:', err);\n\t\t\tif (fileType) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`${fileType.toUpperCase()} format not supported. Please use JPEG, PNG, or WebP format instead.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(`Processed image upload failed: ${err.message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Uploads any supported file type to GCS and returns its public URL\n\t */\n\tasync uploadFile(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\toptions?: {\n\t\t\tquality?: number;\n\t\t\twidth?: number;\n\t\t\theight?: number;\n\t\t\twithExtension?: boolean;\n\t\t\twithOriginalFilename?: boolean;\n\t\t}\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst newFilename = options?.withOriginalFilename\n\t\t\t? originalFilename\n\t\t\t: this.generateFilename(originalFilename);\n\t\tconst extension = path.extname(newFilename).toLowerCase();\n\n\t\t// Guess the MIME type using the mime-types library\n\t\tconst contentType = mime.lookup(extension) || 'application/octet-stream';\n\n\t\t// Special image handling (compression)\n\t\tif (contentType.startsWith('image/')) {\n\t\t\tif (options?.withExtension) {\n\t\t\t\treturn this.uploadImage(buffer, originalFilename);\n\t\t\t} else {\n\t\t\t\treturn this.uploadProcessedImageToWebp(buffer, originalFilename, options);\n\t\t\t}\n\t\t}\n\n\t\treturn this.uploadToGCS(buffer, newFilename, contentType);\n\t}\n}\n"]}
|
package/dist/types/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// Apply the soft delete plugin globally before any connections or models\nimport { applySoftDeletePlugin } from './libraries/mongo/plugins/soft-delete-plugin';\n\napplySoftDeletePlugin();\n\nimport { LibraryManager } from './libraries';\nimport { Container } from 'typedi';\nimport { ConfigurationOptions, ConfigurationService } from './libraries/configuration';\nimport { LyxaLogger } from './libraries/logger';\nimport { RedisService } from './libraries/redis';\nimport { initGlobalConnection, initLyxaMongoDbConnection } from './libraries/mongo';\nimport { SecretManagerService } from './libraries/secrets';\nimport { MicroServiceDispatcher } from './libraries/dispatcher';\nimport { TwilioService } from './libraries/twilio';\nimport { FirebaseService } from './libraries/firebase';\nimport { initRabbitMQConnection, subscribeToEvent } from './libraries/event';\nimport { SubscriptionRegistry } from './libraries/event/registry/SubscriptionRegistry';\nimport { GoogleMapsService, MapService } from './libraries/map';\nimport { CachedSettingsService } from './libraries/cache/settings';\nimport { FirebaseFcmService } from './libraries/notification/firebase-fcm.service';\nimport { BullMQService } from './libraries/bullmq/bull-mq-service';\nimport { BOBSecrets, BOBService, CashSettlementService } from './libraries/cash-settlement';\nimport { EnvironmentConfigurationType } from './libraries/configuration/types/EnvironmentConfigurationType';\nimport { OsrmMapService } from './libraries/map/providers/osrm';\nimport { RabbitMQUrlMap } from './utilities/environment/rabbitmq-environments';\nimport { disconnectAllEntitiesFromInstance } from './libraries/socket/connections/instance-disconnect';\nimport { LyxaLoggerKit } from './libraries/logger-kit';\nimport { LyxaFcmService } from './libraries/notification/lyxa-fcm.service';\nimport { LyxaFcmSender } from './libraries/notification/lyxa-fcm-sender';\nimport { FirebaseMessageBuilderFactory } from './libraries/notification/firebase-message.builder';\nimport { GoogleTranslateService } from './libraries/google-translate';\nimport { LLMCompletionService, LLMProvider } from './libraries/llm/llm-provider-service';\n\nexport { ConfigurationOptions } from './libraries/configuration';\nexport { EnvironmentConfigurationType } from './libraries/configuration/types/EnvironmentConfigurationType';\nexport { initGlobalConnection } from './libraries/mongo';\nexport * from './libraries/google-translate';\n\nexport async function bootstrapCore(options?: ConfigurationOptions) {\n\ttry {\n\t\tawait registerLibraries(options);\n\t\tgetLibraries().getLogger().logger.info('Successfully bootstrapped lyxa-core.');\n\n\t\tconst gracefulShutdown = async () => {\n\t\t\tgetLibraries().getLogger().logger.info('Received shutdown signal, shutting down gracefully...');\n\t\t\tif (options?.instanceType == 'socket') await disconnectAllEntitiesFromInstance();\n\t\t\tprocess.exit();\n\t\t};\n\n\t\tprocess.on('SIGTERM', gracefulShutdown);\n\t\tprocess.on('SIGINT', gracefulShutdown);\n\t\tprocess.on('uncaughtException', err => {\n\t\t\tconsole.log('err', err);\n\t\t\tgetLibraries().getLogger().logger.error('Uncaught exception, shutting down...', err);\n\t\t\tgracefulShutdown();\n\t\t});\n\t\tprocess.on('exit', code => {\n\t\t\tgetLibraries().getLogger().logger.info(`Exiting with code: ${code}`);\n\t\t});\n\n\t\tconsole.log('Created hooks.');\n\t} catch (e) {\n\t\tconsole.error(e);\n\t}\n}\n\nexport async function registerLibraries(options?: ConfigurationOptions) {\n\t// Setup configuration.\n\tconst configurationInstance = new ConfigurationService(options);\n\tContainer.set(ConfigurationService, configurationInstance);\n\n\t// Setup redis.\n\tconst redisInstance = new RedisService(configurationInstance.redisURL);\n\tContainer.set(RedisService, redisInstance);\n\n\t// Setup secret\n\tconst secretInstance = new SecretManagerService(configurationInstance, redisInstance);\n\tContainer.set(SecretManagerService, secretInstance);\n\n\t// Setup BullMQ\n\tconst bullMQInstance = new BullMQService(redisInstance);\n\tContainer.set(BullMQService, bullMQInstance);\n\n\tconst mongoUrl = options?.mongoDbUrl\n\t\t? options.mongoDbUrl\n\t\t: await getLibraries().getSecretsService().getKey('MONGO_URL');\n\n\tawait initLyxaMongoDbConnection(mongoUrl!, options);\n\tawait initGlobalConnection(mongoUrl!, options!.environment);\n\n\tconst loggerInstance = new LyxaLogger(options!.instanceType!, mongoUrl!);\n\tContainer.set(LyxaLogger, loggerInstance);\n\n\tconst loggerKit = new LyxaLoggerKit({ instanceType: options!.instanceType! });\n\tContainer.set(LyxaLoggerKit, loggerKit);\n\n\t// Setup firebase\n\tconst firebaseInstance = new FirebaseService(configurationInstance!);\n\tContainer.set(FirebaseService, firebaseInstance);\n\n\t//Setup google translate\n\t// Container.set(GoogleTranslateService, Container.get(GoogleTranslateService));\n\n\t// Setup microservice dispatcher\n\tconst microserviceDispatcherInstance = new MicroServiceDispatcher(secretInstance);\n\tContainer.set(MicroServiceDispatcher, microserviceDispatcherInstance);\n\n\t// Setup twilio\n\tconst twilioServiceInstance = new TwilioService();\n\tContainer.set(TwilioService, twilioServiceInstance);\n\n\t// Setup LLM service\n\tconst llmCompletionService = new LLMCompletionService(LLMProvider.OPENAI);\n\tContainer.set(LLMCompletionService, llmCompletionService);\n\n\t// Setup map service\n\tconst googleMapsKey = await getLibraries().getSecretsService().getKey('GOOGLE_MAPS_API_KEY');\n\tconst googleMapService = new GoogleMapsService(redisInstance, googleMapsKey as string);\n\tconst osrmMapService = new OsrmMapService();\n\tconst mapServiceInstance = new MapService(googleMapService, osrmMapService);\n\tContainer.set(MapService, mapServiceInstance);\n\n\t// Setup cash settlement service\n\tconst bobUsername = await getLibraries().getSecretsService().getKey('BOB_USER_NAME');\n\tconst bobPassword = await getLibraries().getSecretsService().getKey('BOB_PASSWORD');\n\tconst bobURL = await getLibraries().getSecretsService().getKey('BOB_URL');\n\n\tconst bobService = new BOBService({\n\t\tBOB_USER_NAME: bobUsername,\n\t\tBOB_PASSWORD: bobPassword,\n\t\tBOB_URL: bobURL,\n\t} as BOBSecrets);\n\tconst cashSettlementServiceInstance = new CashSettlementService(bobService);\n\tContainer.set(CashSettlementService, cashSettlementServiceInstance);\n\tContainer.set(BOBService, bobService);\n\n\tconst settingsServiceInstance = new CachedSettingsService(redisInstance);\n\tContainer.set(CachedSettingsService, settingsServiceInstance);\n\n\ttry {\n\t\tconst settings = await settingsServiceInstance.getSettings();\n\t\tconst { _setTimezone } = await import('./utilities/dayjs/dayjs');\n\t\t_setTimezone(settings?.timezone || 'Asia/Beirut');\n\t\tconsole.log('Timezone initialized:', settings?.timezone || 'Asia/Beirut');\n\t} catch (error) {\n\t\tconsole.error('Failed to initialize timezone:', error);\n\t}\n\n\t// Setup fcm service\n\tconst fcmService = new FirebaseFcmService();\n\tconst builder = new FirebaseMessageBuilderFactory();\n\tconst lyxaFcmSender = new LyxaFcmSender(fcmService, builder);\n\tconst lyxaFcmService = new LyxaFcmService(lyxaFcmSender);\n\n\tContainer.set(FirebaseFcmService, fcmService);\n\tContainer.set(LyxaFcmService, lyxaFcmService);\n\n\tconsole.log('Initialized everything');\n\n\tawait initRabbitMQConnection(RabbitMQUrlMap[options?.environment ?? EnvironmentConfigurationType.DEV]);\n\n\tconst allSubscriptions = SubscriptionRegistry.getAllSubscriptions();\n\n\tconst instantiatedServices = new Map<Function, any>();\n\n\tfor (const { eventId, targetConstructor, methodName } of allSubscriptions) {\n\t\tlet instance = instantiatedServices.get(targetConstructor);\n\t\tif (!instance) {\n\t\t\tinstance = Container.get(targetConstructor as any);\n\t\t\tinstantiatedServices.set(targetConstructor, instance);\n\t\t}\n\n\t\tawait subscribeToEvent(eventId, async payload => instance[methodName](payload));\n\t}\n}\n\nexport function getLibraries(): LibraryManager {\n\treturn Container.get(LibraryManager);\n}\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { SignOptions } from 'jsonwebtoken';
|
|
2
|
+
import { EntityContext } from '../trpc/context';
|
|
3
|
+
import { RefreshToken } from './refreshtoken';
|
|
4
|
+
import { ReturnModelType } from '@typegoose/typegoose';
|
|
5
|
+
import { Rider } from '../mongo/models';
|
|
6
|
+
import { AuthEntityType } from '../../utilities/enum';
|
|
7
|
+
export { AuthEntityType };
|
|
8
|
+
export declare enum TokenType {
|
|
9
|
+
ACCESS = "ACCESS",
|
|
10
|
+
REFRESH = "REFRESH"
|
|
11
|
+
}
|
|
12
|
+
export interface RefreshTokenRecord {
|
|
13
|
+
token: string;
|
|
14
|
+
entityId: string;
|
|
15
|
+
entityType: AuthEntityType;
|
|
16
|
+
expiresAt: Date;
|
|
17
|
+
isRevoked: boolean;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export declare function getRefreshTokenModel(): ReturnModelType<typeof RefreshToken>;
|
|
21
|
+
export declare function getRiderModel(): ReturnModelType<typeof Rider>;
|
|
22
|
+
export declare function initializeRefreshTokenModel(globalConnection: any): void;
|
|
23
|
+
export declare function signAccessToken(entity: {
|
|
24
|
+
id: string;
|
|
25
|
+
type: AuthEntityType;
|
|
26
|
+
parameters: Record<string, unknown>;
|
|
27
|
+
}, options?: SignOptions): Promise<string>;
|
|
28
|
+
export declare function generateRefreshToken(entity: {
|
|
29
|
+
id: string;
|
|
30
|
+
type: AuthEntityType;
|
|
31
|
+
parameters?: Record<string, unknown>;
|
|
32
|
+
}, options?: {
|
|
33
|
+
expiresIn?: string | number;
|
|
34
|
+
}): Promise<string>;
|
|
35
|
+
export declare function verifyAccessToken(entityTypes: AuthEntityType[], token: string): Promise<EntityContext | undefined>;
|
|
36
|
+
export declare function validateRefreshToken(token: string): Promise<{
|
|
37
|
+
valid: boolean;
|
|
38
|
+
entity?: {
|
|
39
|
+
id: string;
|
|
40
|
+
type: AuthEntityType;
|
|
41
|
+
parameters?: Record<string, unknown>;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
export declare function refreshTokens(refreshToken: string): Promise<{
|
|
45
|
+
accessToken: string;
|
|
46
|
+
refreshToken: string;
|
|
47
|
+
entity: {
|
|
48
|
+
id: string;
|
|
49
|
+
type: AuthEntityType;
|
|
50
|
+
};
|
|
51
|
+
} | null>;
|
|
52
|
+
export declare function revokeRefreshToken(token: string): Promise<boolean>;
|
|
53
|
+
export declare function revokeAllRefreshTokens(entityId: string, entityType: AuthEntityType): Promise<boolean>;
|
|
54
|
+
export declare function signTokenPair(entity: {
|
|
55
|
+
id: string;
|
|
56
|
+
type: AuthEntityType;
|
|
57
|
+
parameters?: Record<string, unknown>;
|
|
58
|
+
}, options?: {
|
|
59
|
+
accessTokenOptions?: SignOptions;
|
|
60
|
+
refreshTokenExpiresIn?: string | number;
|
|
61
|
+
}): Promise<{
|
|
62
|
+
accessToken: string;
|
|
63
|
+
refreshToken: string;
|
|
64
|
+
}>;
|
|
65
|
+
export declare function handleTokenRenewal(refreshToken: string): Promise<{
|
|
66
|
+
success: boolean;
|
|
67
|
+
entity?: {
|
|
68
|
+
id: string;
|
|
69
|
+
type: AuthEntityType;
|
|
70
|
+
parameters: Record<string, unknown>;
|
|
71
|
+
};
|
|
72
|
+
tokenStatus: 'valid' | 'expired' | 'revoked' | 'invalid';
|
|
73
|
+
newTokens?: {
|
|
74
|
+
accessToken: string;
|
|
75
|
+
refreshToken?: string | null;
|
|
76
|
+
};
|
|
77
|
+
}>;
|