@lyxa.ai/core 1.4.313-alpha-9 → 1.4.314
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/llm/interfaces/common-llm-interfaces.d.ts +4 -0
- package/dist/libraries/llm/interfaces/common-llm-interfaces.js.map +1 -1
- package/dist/libraries/llm/llm-provider-service.js +1 -1
- package/dist/libraries/llm/llm-provider-service.js.map +1 -1
- package/dist/libraries/llm/providers/openai-provider.d.ts +4 -0
- package/dist/libraries/llm/providers/openai-provider.js +47 -13
- package/dist/libraries/llm/providers/openai-provider.js.map +1 -1
- package/dist/libraries/map/providers/osrm.js.map +1 -1
- package/dist/libraries/mongo/models/banner.model.d.ts +6 -6
- package/dist/libraries/mongo/models/banner.model.js +6 -6
- package/dist/libraries/mongo/models/banner.model.js.map +1 -1
- package/dist/libraries/mongo/models/cart.model.d.ts +2 -2
- package/dist/libraries/mongo/models/cart.model.js +1 -1
- package/dist/libraries/mongo/models/cart.model.js.map +1 -1
- package/dist/libraries/mongo/models/category.model.d.ts +2 -2
- package/dist/libraries/mongo/models/category.model.js +1 -1
- package/dist/libraries/mongo/models/category.model.js.map +1 -1
- package/dist/libraries/mongo/models/deal-setting.model.d.ts +2 -1
- package/dist/libraries/mongo/models/deal-setting.model.js +2 -1
- package/dist/libraries/mongo/models/deal-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/featured-setting.model.d.ts +3 -2
- package/dist/libraries/mongo/models/featured-setting.model.js +3 -2
- package/dist/libraries/mongo/models/featured-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/filter-container.model.d.ts +2 -2
- package/dist/libraries/mongo/models/filter-container.model.js +1 -1
- package/dist/libraries/mongo/models/filter-container.model.js.map +1 -1
- package/dist/libraries/mongo/models/finance-settlement.model.js.map +1 -1
- package/dist/libraries/mongo/models/line-item.model.d.ts +2 -2
- package/dist/libraries/mongo/models/line-item.model.js +1 -1
- package/dist/libraries/mongo/models/line-item.model.js.map +1 -1
- package/dist/libraries/mongo/models/list-container.model.d.ts +2 -2
- package/dist/libraries/mongo/models/list-container.model.js +1 -1
- package/dist/libraries/mongo/models/list-container.model.js.map +1 -1
- package/dist/libraries/mongo/models/order.model.js.map +1 -1
- package/dist/libraries/mongo/models/parent.model.d.ts +2 -2
- package/dist/libraries/mongo/models/parent.model.js +1 -1
- package/dist/libraries/mongo/models/parent.model.js.map +1 -1
- package/dist/libraries/mongo/models/product.model.d.ts +2 -2
- package/dist/libraries/mongo/models/product.model.js +1 -1
- package/dist/libraries/mongo/models/product.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/custom-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/shops-categories-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/rider.model.d.ts +1 -0
- package/dist/libraries/mongo/models/rider.model.js +5 -0
- package/dist/libraries/mongo/models/rider.model.js.map +1 -1
- package/dist/libraries/mongo/models/service-control.model.d.ts +2 -16
- package/dist/libraries/mongo/models/service-control.model.js +6 -68
- package/dist/libraries/mongo/models/service-control.model.js.map +1 -1
- package/dist/libraries/mongo/models/shop.model.d.ts +2 -2
- package/dist/libraries/mongo/models/shop.model.js +1 -1
- package/dist/libraries/mongo/models/shop.model.js.map +1 -1
- package/dist/libraries/mongo/models/tag.model.d.ts +2 -2
- package/dist/libraries/mongo/models/tag.model.js +1 -1
- package/dist/libraries/mongo/models/tag.model.js.map +1 -1
- package/dist/libraries/mongo/models/user-app-section-setting.model.d.ts +2 -2
- package/dist/libraries/mongo/models/user-app-section-setting.model.js +1 -1
- package/dist/libraries/mongo/models/user-app-section-setting.model.js.map +1 -1
- package/dist/types/README.md +1 -1
- package/dist/types/package.json +1 -1
- package/dist/types/utilities/enum.d.ts +0 -9
- package/dist/types/utilities/enum.js +4 -15
- package/dist/types/utilities/enum.js.map +1 -1
- package/dist/types/utilities/shared/common-methods.d.ts +5 -9
- package/dist/types/utilities/shared/common-methods.js +14 -107
- package/dist/types/utilities/shared/common-methods.js.map +1 -1
- package/dist/utilities/enum.d.ts +0 -9
- package/dist/utilities/enum.js +4 -15
- package/dist/utilities/enum.js.map +1 -1
- package/dist/utilities/shared/common-methods.d.ts +5 -9
- package/dist/utilities/shared/common-methods.js +14 -107
- package/dist/utilities/shared/common-methods.js.map +1 -1
- package/package.json +1 -1
- package/dist/libraries/mongo/models/embedded/notification-content.model.d.ts +0 -5
- package/dist/libraries/mongo/models/embedded/notification-content.model.js +0 -32
- package/dist/libraries/mongo/models/embedded/notification-content.model.js.map +0 -1
- package/dist/libraries/mongo/models/embedded/service-control-product-config.model.d.ts +0 -9
- package/dist/libraries/mongo/models/embedded/service-control-product-config.model.js +0 -52
- package/dist/libraries/mongo/models/embedded/service-control-product-config.model.js.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/libraries/auth/index.d.ts +0 -77
- package/dist/types/libraries/auth/index.js +0 -270
- package/dist/types/libraries/auth/index.js.map +0 -1
- package/dist/types/libraries/auth/refreshtoken.d.ts +0 -15
- package/dist/types/libraries/auth/refreshtoken.js +0 -91
- package/dist/types/libraries/auth/refreshtoken.js.map +0 -1
- package/dist/types/libraries/auth/repository.d.ts +0 -18
- package/dist/types/libraries/auth/repository.js +0 -43
- package/dist/types/libraries/auth/repository.js.map +0 -1
- package/dist/types/libraries/bullmq/bull-mq-service.d.ts +0 -9
- package/dist/types/libraries/bullmq/bull-mq-service.js +0 -42
- package/dist/types/libraries/bullmq/bull-mq-service.js.map +0 -1
- package/dist/types/libraries/cache/settings/index.d.ts +0 -7
- package/dist/types/libraries/cache/settings/index.js +0 -56
- package/dist/types/libraries/cache/settings/index.js.map +0 -1
- package/dist/types/libraries/cash-settlement/cashSettlementService.d.ts +0 -16
- package/dist/types/libraries/cash-settlement/cashSettlementService.js +0 -53
- package/dist/types/libraries/cash-settlement/cashSettlementService.js.map +0 -1
- package/dist/types/libraries/cash-settlement/index.d.ts +0 -2
- package/dist/types/libraries/cash-settlement/index.js +0 -19
- package/dist/types/libraries/cash-settlement/index.js.map +0 -1
- package/dist/types/libraries/cash-settlement/interfaces/ICashSettlement.d.ts +0 -24
- package/dist/types/libraries/cash-settlement/interfaces/ICashSettlement.js +0 -10
- package/dist/types/libraries/cash-settlement/interfaces/ICashSettlement.js.map +0 -1
- package/dist/types/libraries/cash-settlement/providers/bob.d.ts +0 -45
- package/dist/types/libraries/cash-settlement/providers/bob.js +0 -634
- package/dist/types/libraries/cash-settlement/providers/bob.js.map +0 -1
- package/dist/types/libraries/cash-settlement/providers/index.d.ts +0 -1
- package/dist/types/libraries/cash-settlement/providers/index.js +0 -18
- package/dist/types/libraries/cash-settlement/providers/index.js.map +0 -1
- package/dist/types/libraries/cloud-storage/CloudStorageFactory.d.ts +0 -7
- package/dist/types/libraries/cloud-storage/CloudStorageFactory.js +0 -18
- package/dist/types/libraries/cloud-storage/CloudStorageFactory.js.map +0 -1
- package/dist/types/libraries/cloud-storage/index.d.ts +0 -4
- package/dist/types/libraries/cloud-storage/index.js +0 -21
- package/dist/types/libraries/cloud-storage/index.js.map +0 -1
- package/dist/types/libraries/cloud-storage/interfaces/ICloudStorage.d.ts +0 -8
- package/dist/types/libraries/cloud-storage/interfaces/ICloudStorage.js +0 -3
- package/dist/types/libraries/cloud-storage/interfaces/ICloudStorage.js.map +0 -1
- package/dist/types/libraries/cloud-storage/providers/GcsStorageService.d.ts +0 -11
- package/dist/types/libraries/cloud-storage/providers/GcsStorageService.js +0 -63
- package/dist/types/libraries/cloud-storage/providers/GcsStorageService.js.map +0 -1
- package/dist/types/libraries/cloud-storage/types/FileUploadResult.d.ts +0 -11
- package/dist/types/libraries/cloud-storage/types/FileUploadResult.js +0 -3
- package/dist/types/libraries/cloud-storage/types/FileUploadResult.js.map +0 -1
- package/dist/types/libraries/configuration/index.d.ts +0 -39
- package/dist/types/libraries/configuration/index.js +0 -84
- package/dist/types/libraries/configuration/index.js.map +0 -1
- package/dist/types/libraries/configuration/types/EnvironmentConfigurationType.d.ts +0 -9
- package/dist/types/libraries/configuration/types/EnvironmentConfigurationType.js +0 -14
- package/dist/types/libraries/configuration/types/EnvironmentConfigurationType.js.map +0 -1
- package/dist/types/libraries/dispatcher/index.d.ts +0 -10
- package/dist/types/libraries/dispatcher/index.js +0 -43
- package/dist/types/libraries/dispatcher/index.js.map +0 -1
- package/dist/types/libraries/event/BaseEvent.d.ts +0 -7
- package/dist/types/libraries/event/BaseEvent.js +0 -19
- package/dist/types/libraries/event/BaseEvent.js.map +0 -1
- package/dist/types/libraries/event/EventEnums.d.ts +0 -26
- package/dist/types/libraries/event/EventEnums.js +0 -31
- package/dist/types/libraries/event/EventEnums.js.map +0 -1
- package/dist/types/libraries/event/events/index.d.ts +0 -2
- package/dist/types/libraries/event/events/index.js +0 -19
- package/dist/types/libraries/event/events/index.js.map +0 -1
- package/dist/types/libraries/event/events/payout/index.d.ts +0 -1
- package/dist/types/libraries/event/events/payout/index.js +0 -18
- package/dist/types/libraries/event/events/payout/index.js.map +0 -1
- package/dist/types/libraries/event/events/payout/payout-schedule.event.d.ts +0 -9
- package/dist/types/libraries/event/events/payout/payout-schedule.event.js +0 -12
- package/dist/types/libraries/event/events/payout/payout-schedule.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/cash/index.d.ts +0 -5
- package/dist/types/libraries/event/events/rider/cash/index.js +0 -14
- package/dist/types/libraries/event/events/rider/cash/index.js.map +0 -1
- package/dist/types/libraries/event/events/rider/cash/rider-cash-added.event.d.ts +0 -11
- package/dist/types/libraries/event/events/rider/cash/rider-cash-added.event.js +0 -19
- package/dist/types/libraries/event/events/rider/cash/rider-cash-added.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/cash/rider-cash-event.d.ts +0 -11
- package/dist/types/libraries/event/events/rider/cash/rider-cash-event.js +0 -18
- package/dist/types/libraries/event/events/rider/cash/rider-cash-event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/cash/rider-cash-hold-period-changed.event.d.ts +0 -10
- package/dist/types/libraries/event/events/rider/cash/rider-cash-hold-period-changed.event.js +0 -17
- package/dist/types/libraries/event/events/rider/cash/rider-cash-hold-period-changed.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/cash/rider-cash-settled.event.d.ts +0 -11
- package/dist/types/libraries/event/events/rider/cash/rider-cash-settled.event.js +0 -19
- package/dist/types/libraries/event/events/rider/cash/rider-cash-settled.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/cash/rider-max-cash-balance-for-bob-payout-updated.event.d.ts +0 -10
- package/dist/types/libraries/event/events/rider/cash/rider-max-cash-balance-for-bob-payout-updated.event.js +0 -17
- package/dist/types/libraries/event/events/rider/cash/rider-max-cash-balance-for-bob-payout-updated.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/index.d.ts +0 -2
- package/dist/types/libraries/event/events/rider/index.js +0 -19
- package/dist/types/libraries/event/events/rider/index.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/index.d.ts +0 -7
- package/dist/types/libraries/event/events/rider/scoring/index.js +0 -18
- package/dist/types/libraries/event/events/rider/scoring/index.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-accepted-order.event.d.ts +0 -11
- package/dist/types/libraries/event/events/rider/scoring/rider-accepted-order.event.js +0 -20
- package/dist/types/libraries/event/events/rider/scoring/rider-accepted-order.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-arrived-at-store.event.d.ts +0 -13
- package/dist/types/libraries/event/events/rider/scoring/rider-arrived-at-store.event.js +0 -24
- package/dist/types/libraries/event/events/rider/scoring/rider-arrived-at-store.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-assigned-order.event.d.ts +0 -11
- package/dist/types/libraries/event/events/rider/scoring/rider-assigned-order.event.js +0 -20
- package/dist/types/libraries/event/events/rider/scoring/rider-assigned-order.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-delivered-order.event.d.ts +0 -13
- package/dist/types/libraries/event/events/rider/scoring/rider-delivered-order.event.js +0 -24
- package/dist/types/libraries/event/events/rider/scoring/rider-delivered-order.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-order-completed.event.d.ts +0 -19
- package/dist/types/libraries/event/events/rider/scoring/rider-order-completed.event.js +0 -36
- package/dist/types/libraries/event/events/rider/scoring/rider-order-completed.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-rating.event.d.ts +0 -13
- package/dist/types/libraries/event/events/rider/scoring/rider-rating.event.js +0 -18
- package/dist/types/libraries/event/events/rider/scoring/rider-rating.event.js.map +0 -1
- package/dist/types/libraries/event/events/rider/scoring/rider-score-event.d.ts +0 -14
- package/dist/types/libraries/event/events/rider/scoring/rider-score-event.js +0 -21
- package/dist/types/libraries/event/events/rider/scoring/rider-score-event.js.map +0 -1
- package/dist/types/libraries/event/index.d.ts +0 -11
- package/dist/types/libraries/event/index.js +0 -152
- package/dist/types/libraries/event/index.js.map +0 -1
- package/dist/types/libraries/event/registry/SubscriptionRegistry.d.ts +0 -11
- package/dist/types/libraries/event/registry/SubscriptionRegistry.js +0 -14
- package/dist/types/libraries/event/registry/SubscriptionRegistry.js.map +0 -1
- package/dist/types/libraries/firebase/index.d.ts +0 -16
- package/dist/types/libraries/firebase/index.js +0 -107
- package/dist/types/libraries/firebase/index.js.map +0 -1
- package/dist/types/libraries/google-translate/google-translate.client.d.ts +0 -5
- package/dist/types/libraries/google-translate/google-translate.client.js +0 -44
- package/dist/types/libraries/google-translate/google-translate.client.js.map +0 -1
- package/dist/types/libraries/google-translate/google-translate.dto.d.ts +0 -13
- package/dist/types/libraries/google-translate/google-translate.dto.js +0 -3
- package/dist/types/libraries/google-translate/google-translate.dto.js.map +0 -1
- package/dist/types/libraries/google-translate/google-translate.service.d.ts +0 -9
- package/dist/types/libraries/google-translate/google-translate.service.js +0 -102
- package/dist/types/libraries/google-translate/google-translate.service.js.map +0 -1
- package/dist/types/libraries/google-translate/index.d.ts +0 -1
- package/dist/types/libraries/google-translate/index.js +0 -18
- package/dist/types/libraries/google-translate/index.js.map +0 -1
- package/dist/types/libraries/index.d.ts +0 -49
- package/dist/types/libraries/index.js +0 -133
- package/dist/types/libraries/index.js.map +0 -1
- package/dist/types/libraries/llm/interfaces/common-llm-interfaces.d.ts +0 -28
- package/dist/types/libraries/llm/interfaces/common-llm-interfaces.js +0 -3
- package/dist/types/libraries/llm/interfaces/common-llm-interfaces.js.map +0 -1
- package/dist/types/libraries/llm/llm-provider-service.d.ts +0 -13
- package/dist/types/libraries/llm/llm-provider-service.js +0 -47
- package/dist/types/libraries/llm/llm-provider-service.js.map +0 -1
- package/dist/types/libraries/llm/providers/openai-provider.d.ts +0 -19
- package/dist/types/libraries/llm/providers/openai-provider.js +0 -223
- package/dist/types/libraries/llm/providers/openai-provider.js.map +0 -1
- package/dist/types/libraries/logger/index.d.ts +0 -8
- package/dist/types/libraries/logger/index.js +0 -75
- package/dist/types/libraries/logger/index.js.map +0 -1
- package/dist/types/libraries/logger-kit/index.d.ts +0 -3
- package/dist/types/libraries/logger-kit/index.js +0 -22
- package/dist/types/libraries/logger-kit/index.js.map +0 -1
- package/dist/types/libraries/logger-kit/logger.service.d.ts +0 -117
- package/dist/types/libraries/logger-kit/logger.service.js +0 -304
- package/dist/types/libraries/logger-kit/logger.service.js.map +0 -1
- package/dist/types/libraries/logger-kit/types.d.ts +0 -34
- package/dist/types/libraries/logger-kit/types.js +0 -3
- package/dist/types/libraries/logger-kit/types.js.map +0 -1
- package/dist/types/libraries/map/index.d.ts +0 -2
- package/dist/types/libraries/map/index.js +0 -19
- package/dist/types/libraries/map/index.js.map +0 -1
- package/dist/types/libraries/map/interfaces/IMapService.d.ts +0 -43
- package/dist/types/libraries/map/interfaces/IMapService.js +0 -9
- package/dist/types/libraries/map/interfaces/IMapService.js.map +0 -1
- package/dist/types/libraries/map/mapService.d.ts +0 -21
- package/dist/types/libraries/map/mapService.js +0 -57
- package/dist/types/libraries/map/mapService.js.map +0 -1
- package/dist/types/libraries/map/providers/google-maps.d.ts +0 -27
- package/dist/types/libraries/map/providers/google-maps.js +0 -462
- package/dist/types/libraries/map/providers/google-maps.js.map +0 -1
- package/dist/types/libraries/map/providers/index.d.ts +0 -1
- package/dist/types/libraries/map/providers/index.js +0 -18
- package/dist/types/libraries/map/providers/index.js.map +0 -1
- package/dist/types/libraries/map/providers/osrm.d.ts +0 -13
- package/dist/types/libraries/map/providers/osrm.js +0 -137
- package/dist/types/libraries/map/providers/osrm.js.map +0 -1
- package/dist/types/libraries/mongo/index.d.ts +0 -7
- package/dist/types/libraries/mongo/index.js +0 -87
- package/dist/types/libraries/mongo/index.js.map +0 -1
- package/dist/types/libraries/mongo/models/activity-log.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/activity-log.model.js +0 -48
- package/dist/types/libraries/mongo/models/activity-log.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/admin-access-control.model.d.ts +0 -11
- package/dist/types/libraries/mongo/models/admin-access-control.model.js +0 -75
- package/dist/types/libraries/mongo/models/admin-access-control.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/admin.model.d.ts +0 -11
- package/dist/types/libraries/mongo/models/admin.model.js +0 -65
- package/dist/types/libraries/mongo/models/admin.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/agent-performance.model.d.ts +0 -15
- package/dist/types/libraries/mongo/models/agent-performance.model.js +0 -73
- package/dist/types/libraries/mongo/models/agent-performance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/app-appearance.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/app-appearance.model.js +0 -102
- package/dist/types/libraries/mongo/models/app-appearance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/app-instance.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/app-instance.model.js +0 -54
- package/dist/types/libraries/mongo/models/app-instance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/attribute.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/attribute.model.js +0 -58
- package/dist/types/libraries/mongo/models/attribute.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/banner.model.d.ts +0 -27
- package/dist/types/libraries/mongo/models/banner.model.js +0 -118
- package/dist/types/libraries/mongo/models/banner.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/base/base-coupon.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/base/base-coupon.model.js +0 -90
- package/dist/types/libraries/mongo/models/base/base-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/bob-finance.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/bob-finance.model.js +0 -85
- package/dist/types/libraries/mongo/models/bob-finance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/booking-cancellation-rescheduling-rules.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/booking-cancellation-rescheduling-rules.model.js +0 -48
- package/dist/types/libraries/mongo/models/booking-cancellation-rescheduling-rules.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/brand.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/brand.model.js +0 -32
- package/dist/types/libraries/mongo/models/brand.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/cancellation-reason.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/cancellation-reason.model.js +0 -55
- package/dist/types/libraries/mongo/models/cancellation-reason.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/card.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/card.model.js +0 -88
- package/dist/types/libraries/mongo/models/card.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/cart-participant.model.d.ts +0 -29
- package/dist/types/libraries/mongo/models/cart-participant.model.js +0 -130
- package/dist/types/libraries/mongo/models/cart-participant.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/cart.model.d.ts +0 -39
- package/dist/types/libraries/mongo/models/cart.model.js +0 -184
- package/dist/types/libraries/mongo/models/cart.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/category.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/category.model.js +0 -68
- package/dist/types/libraries/mongo/models/category.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/chat-room.model.d.ts +0 -28
- package/dist/types/libraries/mongo/models/chat-room.model.js +0 -99
- package/dist/types/libraries/mongo/models/chat-room.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/copy-attribute-map.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/copy-attribute-map.model.js +0 -38
- package/dist/types/libraries/mongo/models/copy-attribute-map.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/copy-product-job.model.d.ts +0 -21
- package/dist/types/libraries/mongo/models/copy-product-job.model.js +0 -101
- package/dist/types/libraries/mongo/models/copy-product-job.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/copy-product-map.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/copy-product-map.model.js +0 -38
- package/dist/types/libraries/mongo/models/copy-product-map.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/copy-shop-category-map.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/copy-shop-category-map.model.js +0 -38
- package/dist/types/libraries/mongo/models/copy-shop-category-map.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/core-auth-identity.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/core-auth-identity.model.js +0 -32
- package/dist/types/libraries/mongo/models/core-auth-identity.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/core-user.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/core-user.model.js +0 -85
- package/dist/types/libraries/mongo/models/core-user.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/counter.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/counter.model.js +0 -42
- package/dist/types/libraries/mongo/models/counter.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/coupon.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/coupon.model.js +0 -60
- package/dist/types/libraries/mongo/models/coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/deal-setting.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/deal-setting.model.js +0 -51
- package/dist/types/libraries/mongo/models/deal-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/default-chat.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/default-chat.model.js +0 -26
- package/dist/types/libraries/mongo/models/default-chat.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/delivery-charges.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/delivery-charges.model.js +0 -63
- package/dist/types/libraries/mongo/models/delivery-charges.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/dish.model.d.ts +0 -18
- package/dist/types/libraries/mongo/models/dish.model.js +0 -92
- package/dist/types/libraries/mongo/models/dish.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/address-change-history.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/embedded/address-change-history.model.js +0 -112
- package/dist/types/libraries/mongo/models/embedded/address-change-history.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/adjustment-information.model.d.ts +0 -33
- package/dist/types/libraries/mongo/models/embedded/adjustment-information.model.js +0 -133
- package/dist/types/libraries/mongo/models/embedded/adjustment-information.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/agent-notification-setting.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/agent-notification-setting.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/agent-notification-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/app-force-update.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/app-force-update.js +0 -52
- package/dist/types/libraries/mongo/models/embedded/app-force-update.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/attribute-item.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/attribute-item.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/attribute-item.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/attribute-map.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/embedded/attribute-map.model.js +0 -29
- package/dist/types/libraries/mongo/models/embedded/attribute-map.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/business-development-setting.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/business-development-setting.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/business-development-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/cash-settlement.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/cash-settlement.model.js +0 -52
- package/dist/types/libraries/mongo/models/embedded/cash-settlement.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/cashback-amounts.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/cashback-amounts.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/cashback-amounts.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/charge.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/charge.model.js +0 -28
- package/dist/types/libraries/mongo/models/embedded/charge.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/chat-participant.model.d.ts +0 -18
- package/dist/types/libraries/mongo/models/embedded/chat-participant.model.js +0 -64
- package/dist/types/libraries/mongo/models/embedded/chat-participant.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/cleaning-material.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/cleaning-material.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/cleaning-material.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/company-info.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/embedded/company-info.model.js +0 -37
- package/dist/types/libraries/mongo/models/embedded/company-info.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/courier-order-finance.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/courier-order-finance.model.js +0 -36
- package/dist/types/libraries/mongo/models/embedded/courier-order-finance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/courier-setting.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/courier-setting.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/courier-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/currency-setting.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/embedded/currency-setting.model.js +0 -38
- package/dist/types/libraries/mongo/models/embedded/currency-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/currency.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/currency.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/currency.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/customer-support-batches.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/customer-support-batches.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/customer-support-batches.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/customer-support-numbers.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/customer-support-numbers.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/customer-support-numbers.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/delivery-charge-setting.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/embedded/delivery-charge-setting.model.js +0 -51
- package/dist/types/libraries/mongo/models/embedded/delivery-charge-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/delivery-info.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/delivery-info.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/delivery-info.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/external-ref.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/external-ref.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/external-ref.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/featured-item.mode.d.ts +0 -6
- package/dist/types/libraries/mongo/models/embedded/featured-item.mode.js +0 -33
- package/dist/types/libraries/mongo/models/embedded/featured-item.mode.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/frequency-configuration.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/embedded/frequency-configuration.model.js +0 -38
- package/dist/types/libraries/mongo/models/embedded/frequency-configuration.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/line-item-attribute.model.d.ts +0 -17
- package/dist/types/libraries/mongo/models/embedded/line-item-attribute.model.js +0 -63
- package/dist/types/libraries/mongo/models/embedded/line-item-attribute.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/marketing-cut.model.d.ts +0 -46
- package/dist/types/libraries/mongo/models/embedded/marketing-cut.model.js +0 -178
- package/dist/types/libraries/mongo/models/embedded/marketing-cut.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/notification-content.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/notification-content.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/notification-content.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/order-cancel.model.d.ts +0 -26
- package/dist/types/libraries/mongo/models/embedded/order-cancel.model.js +0 -110
- package/dist/types/libraries/mongo/models/embedded/order-cancel.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/order-delivery-information.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/embedded/order-delivery-information.model.js +0 -67
- package/dist/types/libraries/mongo/models/embedded/order-delivery-information.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/order-finance.model.d.ts +0 -18
- package/dist/types/libraries/mongo/models/embedded/order-finance.model.js +0 -64
- package/dist/types/libraries/mongo/models/embedded/order-finance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/order-pricing.model.d.ts +0 -34
- package/dist/types/libraries/mongo/models/embedded/order-pricing.model.js +0 -163
- package/dist/types/libraries/mongo/models/embedded/order-pricing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/order-refund.model.d.ts +0 -28
- package/dist/types/libraries/mongo/models/embedded/order-refund.model.js +0 -113
- package/dist/types/libraries/mongo/models/embedded/order-refund.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/otp-fields.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/embedded/otp-fields.model.js +0 -46
- package/dist/types/libraries/mongo/models/embedded/otp-fields.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/package.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/embedded/package.model.js +0 -86
- package/dist/types/libraries/mongo/models/embedded/package.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/parent-document.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/parent-document.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/parent-document.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/payment-infromation.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/embedded/payment-infromation.model.js +0 -38
- package/dist/types/libraries/mongo/models/embedded/payment-infromation.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/payment-record.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/embedded/payment-record.model.js +0 -53
- package/dist/types/libraries/mongo/models/embedded/payment-record.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/payout-setting.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/payout-setting.model.js +0 -28
- package/dist/types/libraries/mongo/models/embedded/payout-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/plus-settings.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/embedded/plus-settings.model.js +0 -33
- package/dist/types/libraries/mongo/models/embedded/plus-settings.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/preparing-time.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/preparing-time.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/preparing-time.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/price-breakdown.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/embedded/price-breakdown.model.js +0 -80
- package/dist/types/libraries/mongo/models/embedded/price-breakdown.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/product-category.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/product-category.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/product-category.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/product-marketing-info.model.d.ts +0 -17
- package/dist/types/libraries/mongo/models/embedded/product-marketing-info.model.js +0 -72
- package/dist/types/libraries/mongo/models/embedded/product-marketing-info.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/product-nutrition.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/product-nutrition.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/product-nutrition.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/product-search-fields.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/embedded/product-search-fields.model.js +0 -60
- package/dist/types/libraries/mongo/models/embedded/product-search-fields.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/product-snap.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/embedded/product-snap.model.js +0 -79
- package/dist/types/libraries/mongo/models/embedded/product-snap.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/profit.model.d.ts +0 -22
- package/dist/types/libraries/mongo/models/embedded/profit.model.js +0 -96
- package/dist/types/libraries/mongo/models/embedded/profit.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/referral-discount-config.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/embedded/referral-discount-config.model.js +0 -38
- package/dist/types/libraries/mongo/models/embedded/referral-discount-config.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/regular-order-finance.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/embedded/regular-order-finance.model.js +0 -78
- package/dist/types/libraries/mongo/models/embedded/regular-order-finance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/replacement-order.model.d.ts +0 -28
- package/dist/types/libraries/mongo/models/embedded/replacement-order.model.js +0 -109
- package/dist/types/libraries/mongo/models/embedded/replacement-order.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/rest-password.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/rest-password.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/rest-password.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/rider-assignment-model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/rider-assignment-model.js +0 -44
- package/dist/types/libraries/mongo/models/embedded/rider-assignment-model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/rider-batches.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/rider-batches.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/rider-batches.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/rider-equipment.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/rider-equipment.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/rider-equipment.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/rider-setting.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/rider-setting.model.js +0 -52
- package/dist/types/libraries/mongo/models/embedded/rider-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/rider-statistics.d.ts +0 -11
- package/dist/types/libraries/mongo/models/embedded/rider-statistics.js +0 -62
- package/dist/types/libraries/mongo/models/embedded/rider-statistics.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-booking-cancellation-details.model.d.ts +0 -18
- package/dist/types/libraries/mongo/models/embedded/service-booking-cancellation-details.model.js +0 -77
- package/dist/types/libraries/mongo/models/embedded/service-booking-cancellation-details.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-booking-finance.model.d.ts +0 -23
- package/dist/types/libraries/mongo/models/embedded/service-booking-finance.model.js +0 -85
- package/dist/types/libraries/mongo/models/embedded/service-booking-finance.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-booking-pricing.model.d.ts +0 -24
- package/dist/types/libraries/mongo/models/embedded/service-booking-pricing.model.js +0 -127
- package/dist/types/libraries/mongo/models/embedded/service-booking-pricing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-booking-refund-information.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/embedded/service-booking-refund-information.model.js +0 -70
- package/dist/types/libraries/mongo/models/embedded/service-booking-refund-information.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-booking-replacement-information.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/embedded/service-booking-replacement-information.model.js +0 -76
- package/dist/types/libraries/mongo/models/embedded/service-booking-replacement-information.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-booking-settings.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/service-booking-settings.model.js +0 -57
- package/dist/types/libraries/mongo/models/embedded/service-booking-settings.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-control-product-config.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/embedded/service-control-product-config.model.js +0 -52
- package/dist/types/libraries/mongo/models/embedded/service-control-product-config.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-fee-setting.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/service-fee-setting.model.js +0 -28
- package/dist/types/libraries/mongo/models/embedded/service-fee-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/service-line-item.model.d.ts +0 -40
- package/dist/types/libraries/mongo/models/embedded/service-line-item.model.js +0 -164
- package/dist/types/libraries/mongo/models/embedded/service-line-item.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/shop-company-details.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/shop-company-details.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/shop-company-details.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/shop-default-category.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/embedded/shop-default-category.model.js +0 -47
- package/dist/types/libraries/mongo/models/embedded/shop-default-category.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/shop-document.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/embedded/shop-document.model.js +0 -37
- package/dist/types/libraries/mongo/models/embedded/shop-document.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/shop-search-fields.model.d.ts +0 -15
- package/dist/types/libraries/mongo/models/embedded/shop-search-fields.model.js +0 -75
- package/dist/types/libraries/mongo/models/embedded/shop-search-fields.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/spend-to-get-tier.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/embedded/spend-to-get-tier.model.js +0 -43
- package/dist/types/libraries/mongo/models/embedded/spend-to-get-tier.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/status-timeline.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/embedded/status-timeline.model.js +0 -97
- package/dist/types/libraries/mongo/models/embedded/status-timeline.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/subscription-summary.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/embedded/subscription-summary.model.js +0 -47
- package/dist/types/libraries/mongo/models/embedded/subscription-summary.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/support-reason-info.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/embedded/support-reason-info.model.js +0 -27
- package/dist/types/libraries/mongo/models/embedded/support-reason-info.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/trip-leg.mode.d.ts +0 -28
- package/dist/types/libraries/mongo/models/embedded/trip-leg.mode.js +0 -134
- package/dist/types/libraries/mongo/models/embedded/trip-leg.mode.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/vat.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/vat.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/vat.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/wallet.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/wallet.model.js +0 -32
- package/dist/types/libraries/mongo/models/embedded/wallet.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/embedded/zone-geometry.mode.d.ts +0 -5
- package/dist/types/libraries/mongo/models/embedded/zone-geometry.mode.js +0 -28
- package/dist/types/libraries/mongo/models/embedded/zone-geometry.mode.js.map +0 -1
- package/dist/types/libraries/mongo/models/favourite.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/favourite.model.js +0 -52
- package/dist/types/libraries/mongo/models/favourite.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/featured-setting.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/featured-setting.model.js +0 -32
- package/dist/types/libraries/mongo/models/featured-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/filter-container.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/filter-container.model.js +0 -63
- package/dist/types/libraries/mongo/models/filter-container.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/finance-settlement.model.d.ts +0 -41
- package/dist/types/libraries/mongo/models/finance-settlement.model.js +0 -175
- package/dist/types/libraries/mongo/models/finance-settlement.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/flag.model.d.ts +0 -22
- package/dist/types/libraries/mongo/models/flag.model.js +0 -83
- package/dist/types/libraries/mongo/models/flag.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/gallery-upload.model.d.ts +0 -17
- package/dist/types/libraries/mongo/models/gallery-upload.model.js +0 -77
- package/dist/types/libraries/mongo/models/gallery-upload.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/gallery.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/gallery.model.js +0 -59
- package/dist/types/libraries/mongo/models/gallery.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/google-maps-usage.model.d.ts +0 -21
- package/dist/types/libraries/mongo/models/google-maps-usage.model.js +0 -255
- package/dist/types/libraries/mongo/models/google-maps-usage.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/index.d.ts +0 -398
- package/dist/types/libraries/mongo/models/index.js +0 -488
- package/dist/types/libraries/mongo/models/index.js.map +0 -1
- package/dist/types/libraries/mongo/models/integration-configuration.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/integration-configuration.model.js +0 -33
- package/dist/types/libraries/mongo/models/integration-configuration.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign-session.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign-session.model.js +0 -45
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign-session.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign.model.js +0 -76
- package/dist/types/libraries/mongo/models/limited-time-offer-campaign.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/limited-time-offer-config.d.ts +0 -6
- package/dist/types/libraries/mongo/models/limited-time-offer-config.js +0 -36
- package/dist/types/libraries/mongo/models/limited-time-offer-config.js.map +0 -1
- package/dist/types/libraries/mongo/models/limited-time-offer-participant.model.d.ts +0 -22
- package/dist/types/libraries/mongo/models/limited-time-offer-participant.model.js +0 -96
- package/dist/types/libraries/mongo/models/limited-time-offer-participant.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/line-item.model.d.ts +0 -47
- package/dist/types/libraries/mongo/models/line-item.model.js +0 -205
- package/dist/types/libraries/mongo/models/line-item.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/list-container.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/list-container.model.js +0 -92
- package/dist/types/libraries/mongo/models/list-container.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/log.model.d.ts +0 -35
- package/dist/types/libraries/mongo/models/log.model.js +0 -163
- package/dist/types/libraries/mongo/models/log.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/marketing.model.d.ts +0 -18
- package/dist/types/libraries/mongo/models/marketing.model.js +0 -88
- package/dist/types/libraries/mongo/models/marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/meal-plan.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/meal-plan.model.js +0 -51
- package/dist/types/libraries/mongo/models/meal-plan.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/message.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/message.model.js +0 -105
- package/dist/types/libraries/mongo/models/message.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/notification.model.d.ts +0 -53
- package/dist/types/libraries/mongo/models/notification.model.js +0 -201
- package/dist/types/libraries/mongo/models/notification.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/nutrition.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/nutrition.model.js +0 -33
- package/dist/types/libraries/mongo/models/nutrition.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/order.model.d.ts +0 -67
- package/dist/types/libraries/mongo/models/order.model.js +0 -355
- package/dist/types/libraries/mongo/models/order.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/parent.model.d.ts +0 -29
- package/dist/types/libraries/mongo/models/parent.model.js +0 -144
- package/dist/types/libraries/mongo/models/parent.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/payment-configuration.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/payment-configuration.model.js +0 -33
- package/dist/types/libraries/mongo/models/payment-configuration.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/payment-intent.model.d.ts +0 -17
- package/dist/types/libraries/mongo/models/payment-intent.model.js +0 -79
- package/dist/types/libraries/mongo/models/payment-intent.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/payout.model.d.ts +0 -15
- package/dist/types/libraries/mongo/models/payout.model.js +0 -86
- package/dist/types/libraries/mongo/models/payout.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/product-brand.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/product-brand.model.js +0 -38
- package/dist/types/libraries/mongo/models/product-brand.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/product-marketing.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/product-marketing.model.js +0 -57
- package/dist/types/libraries/mongo/models/product-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/product-stock-tracker.model.d.ts +0 -15
- package/dist/types/libraries/mongo/models/product-stock-tracker.model.js +0 -57
- package/dist/types/libraries/mongo/models/product-stock-tracker.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/product-upload.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/product-upload.model.js +0 -105
- package/dist/types/libraries/mongo/models/product-upload.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/product.model.d.ts +0 -63
- package/dist/types/libraries/mongo/models/product.model.js +0 -339
- package/dist/types/libraries/mongo/models/product.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/professional-blocked-time.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/professional-blocked-time.model.js +0 -49
- package/dist/types/libraries/mongo/models/professional-blocked-time.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/professional.model.d.ts +0 -17
- package/dist/types/libraries/mongo/models/professional.model.js +0 -91
- package/dist/types/libraries/mongo/models/professional.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/buy1-get1-marketing.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/providers/buy1-get1-marketing.model.js +0 -62
- package/dist/types/libraries/mongo/models/providers/buy1-get1-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/core-apple-auth-identity.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/providers/core-apple-auth-identity.model.js +0 -28
- package/dist/types/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/core-email-auth-identity.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/providers/core-email-auth-identity.model.js +0 -69
- package/dist/types/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/core-google-auth-identity.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/providers/core-google-auth-identity.model.js +0 -28
- package/dist/types/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/core-phone-auth-identity.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/providers/core-phone-auth-identity.model.js +0 -29
- package/dist/types/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/courier-order.model.d.ts +0 -41
- package/dist/types/libraries/mongo/models/providers/courier-order.model.js +0 -151
- package/dist/types/libraries/mongo/models/providers/courier-order.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/custom-coupon.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/providers/custom-coupon.model.js +0 -43
- package/dist/types/libraries/mongo/models/providers/custom-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/discount-marketing.model.d.ts +0 -22
- package/dist/types/libraries/mongo/models/providers/discount-marketing.model.js +0 -92
- package/dist/types/libraries/mongo/models/providers/discount-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/featured-marketing.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/providers/featured-marketing.model.js +0 -25
- package/dist/types/libraries/mongo/models/providers/featured-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/free-delivery-marketing.model.d.ts +0 -7
- package/dist/types/libraries/mongo/models/providers/free-delivery-marketing.model.js +0 -30
- package/dist/types/libraries/mongo/models/providers/free-delivery-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/global-coupon.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/providers/global-coupon.model.js +0 -10
- package/dist/types/libraries/mongo/models/providers/global-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/individual-store-coupon.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/providers/individual-store-coupon.model.js +0 -42
- package/dist/types/libraries/mongo/models/providers/individual-store-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/individual-user-coupon.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/providers/individual-user-coupon.model.js +0 -43
- package/dist/types/libraries/mongo/models/providers/individual-user-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/new-user-discount-marketing.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/providers/new-user-discount-marketing.model.js +0 -73
- package/dist/types/libraries/mongo/models/providers/new-user-discount-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/punch-marketing.model.d.ts +0 -11
- package/dist/types/libraries/mongo/models/providers/punch-marketing.model.js +0 -50
- package/dist/types/libraries/mongo/models/providers/punch-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/referral-code-coupon.model.d.ts +0 -9
- package/dist/types/libraries/mongo/models/providers/referral-code-coupon.model.js +0 -27
- package/dist/types/libraries/mongo/models/providers/referral-code-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/providers/referral-reward-coupon.model.js +0 -43
- package/dist/types/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/regular-order.model.d.ts +0 -54
- package/dist/types/libraries/mongo/models/providers/regular-order.model.js +0 -204
- package/dist/types/libraries/mongo/models/providers/regular-order.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/rider-payout.model.d.ts +0 -23
- package/dist/types/libraries/mongo/models/providers/rider-payout.model.js +0 -94
- package/dist/types/libraries/mongo/models/providers/rider-payout.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/rider-review.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/providers/rider-review.model.js +0 -32
- package/dist/types/libraries/mongo/models/providers/rider-review.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/service-package-review.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/providers/service-package-review.model.js +0 -44
- package/dist/types/libraries/mongo/models/providers/service-package-review.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/shop-courier.model.d.ts +0 -26
- package/dist/types/libraries/mongo/models/providers/shop-courier.model.js +0 -93
- package/dist/types/libraries/mongo/models/providers/shop-courier.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/shop-payout.model.d.ts +0 -62
- package/dist/types/libraries/mongo/models/providers/shop-payout.model.js +0 -244
- package/dist/types/libraries/mongo/models/providers/shop-payout.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/shop-review.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/providers/shop-review.model.js +0 -38
- package/dist/types/libraries/mongo/models/providers/shop-review.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/shops-categories-coupon.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/providers/shops-categories-coupon.model.js +0 -47
- package/dist/types/libraries/mongo/models/providers/shops-categories-coupon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/spend-to-get-marketing.model.d.ts +0 -11
- package/dist/types/libraries/mongo/models/providers/spend-to-get-marketing.model.js +0 -46
- package/dist/types/libraries/mongo/models/providers/spend-to-get-marketing.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/vendor-payout.model.d.ts +0 -50
- package/dist/types/libraries/mongo/models/providers/vendor-payout.model.js +0 -192
- package/dist/types/libraries/mongo/models/providers/vendor-payout.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/providers/vendor-review.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/providers/vendor-review.model.js +0 -38
- package/dist/types/libraries/mongo/models/providers/vendor-review.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/punch-marketing-history.model.d.ts +0 -24
- package/dist/types/libraries/mongo/models/punch-marketing-history.model.js +0 -101
- package/dist/types/libraries/mongo/models/punch-marketing-history.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/rating-setting.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/rating-setting.model.js +0 -46
- package/dist/types/libraries/mongo/models/rating-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/referral-setting.model.d.ts +0 -6
- package/dist/types/libraries/mongo/models/referral-setting.model.js +0 -32
- package/dist/types/libraries/mongo/models/referral-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/request-area.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/request-area.model.js +0 -33
- package/dist/types/libraries/mongo/models/request-area.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/review.model.d.ts +0 -15
- package/dist/types/libraries/mongo/models/review.model.js +0 -68
- package/dist/types/libraries/mongo/models/review.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/reward.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/reward.model.js +0 -70
- package/dist/types/libraries/mongo/models/reward.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/rider-timeout.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/rider-timeout.model.js +0 -47
- package/dist/types/libraries/mongo/models/rider-timeout.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/rider-tracking.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/rider-tracking.model.js +0 -47
- package/dist/types/libraries/mongo/models/rider-tracking.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/rider.model.d.ts +0 -70
- package/dist/types/libraries/mongo/models/rider.model.js +0 -358
- package/dist/types/libraries/mongo/models/rider.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-addon.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/service-addon.model.js +0 -86
- package/dist/types/libraries/mongo/models/service-addon.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-booking.model.d.ts +0 -69
- package/dist/types/libraries/mongo/models/service-booking.model.js +0 -315
- package/dist/types/libraries/mongo/models/service-booking.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-cart.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/service-cart.model.js +0 -51
- package/dist/types/libraries/mongo/models/service-cart.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-category.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/service-category.model.js +0 -87
- package/dist/types/libraries/mongo/models/service-category.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-control.model.d.ts +0 -22
- package/dist/types/libraries/mongo/models/service-control.model.js +0 -112
- package/dist/types/libraries/mongo/models/service-control.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-flag.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/service-flag.model.js +0 -72
- package/dist/types/libraries/mongo/models/service-flag.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-package.model.d.ts +0 -27
- package/dist/types/libraries/mongo/models/service-package.model.js +0 -142
- package/dist/types/libraries/mongo/models/service-package.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service-promotion.model.d.ts +0 -27
- package/dist/types/libraries/mongo/models/service-promotion.model.js +0 -120
- package/dist/types/libraries/mongo/models/service-promotion.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/service.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/service.model.js +0 -43
- package/dist/types/libraries/mongo/models/service.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/setting.model.d.ts +0 -50
- package/dist/types/libraries/mongo/models/setting.model.js +0 -196
- package/dist/types/libraries/mongo/models/setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shared/address.model.d.ts +0 -38
- package/dist/types/libraries/mongo/models/shared/address.model.js +0 -158
- package/dist/types/libraries/mongo/models/shared/address.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shared/duration.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/shared/duration.model.js +0 -59
- package/dist/types/libraries/mongo/models/shared/duration.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shared/geo-location.model.d.ts +0 -5
- package/dist/types/libraries/mongo/models/shared/geo-location.model.js +0 -28
- package/dist/types/libraries/mongo/models/shared/geo-location.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shared/work-hour.model.d.ts +0 -19
- package/dist/types/libraries/mongo/models/shared/work-hour.model.js +0 -81
- package/dist/types/libraries/mongo/models/shared/work-hour.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shop-access-control.model.d.ts +0 -16
- package/dist/types/libraries/mongo/models/shop-access-control.model.js +0 -81
- package/dist/types/libraries/mongo/models/shop-access-control.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shop-category.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/shop-category.model.js +0 -64
- package/dist/types/libraries/mongo/models/shop-category.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shop-meal-plan.model.d.ts +0 -12
- package/dist/types/libraries/mongo/models/shop-meal-plan.model.js +0 -45
- package/dist/types/libraries/mongo/models/shop-meal-plan.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shop-section.model.d.ts +0 -18
- package/dist/types/libraries/mongo/models/shop-section.model.js +0 -89
- package/dist/types/libraries/mongo/models/shop-section.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/shop.model.d.ts +0 -65
- package/dist/types/libraries/mongo/models/shop.model.js +0 -304
- package/dist/types/libraries/mongo/models/shop.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/spend-to-get-history.model.d.ts +0 -13
- package/dist/types/libraries/mongo/models/spend-to-get-history.model.js +0 -51
- package/dist/types/libraries/mongo/models/spend-to-get-history.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/subscription.model.d.ts +0 -20
- package/dist/types/libraries/mongo/models/subscription.model.js +0 -93
- package/dist/types/libraries/mongo/models/subscription.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/support-reason.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/support-reason.model.js +0 -61
- package/dist/types/libraries/mongo/models/support-reason.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/tag.model.d.ts +0 -10
- package/dist/types/libraries/mongo/models/tag.model.js +0 -64
- package/dist/types/libraries/mongo/models/tag.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/terms-and-conditions.model.d.ts +0 -8
- package/dist/types/libraries/mongo/models/terms-and-conditions.model.js +0 -51
- package/dist/types/libraries/mongo/models/terms-and-conditions.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/ticket-action.model.d.ts +0 -4
- package/dist/types/libraries/mongo/models/ticket-action.model.js +0 -31
- package/dist/types/libraries/mongo/models/ticket-action.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/ticket.model.d.ts +0 -35
- package/dist/types/libraries/mongo/models/ticket.model.js +0 -144
- package/dist/types/libraries/mongo/models/ticket.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/tournament-participant.model.d.ts +0 -22
- package/dist/types/libraries/mongo/models/tournament-participant.model.js +0 -84
- package/dist/types/libraries/mongo/models/tournament-participant.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/tournament.model.d.ts +0 -65
- package/dist/types/libraries/mongo/models/tournament.model.js +0 -273
- package/dist/types/libraries/mongo/models/tournament.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/user-action.model.d.ts +0 -29
- package/dist/types/libraries/mongo/models/user-action.model.js +0 -113
- package/dist/types/libraries/mongo/models/user-action.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/user-app-section-setting.model.d.ts +0 -24
- package/dist/types/libraries/mongo/models/user-app-section-setting.model.js +0 -103
- package/dist/types/libraries/mongo/models/user-app-section-setting.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/user.model.d.ts +0 -40
- package/dist/types/libraries/mongo/models/user.model.js +0 -155
- package/dist/types/libraries/mongo/models/user.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/vendor-access-control.model.d.ts +0 -14
- package/dist/types/libraries/mongo/models/vendor-access-control.model.js +0 -75
- package/dist/types/libraries/mongo/models/vendor-access-control.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/vendor-parent.model.d.ts +0 -25
- package/dist/types/libraries/mongo/models/vendor-parent.model.js +0 -121
- package/dist/types/libraries/mongo/models/vendor-parent.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/vendor.model.d.ts +0 -33
- package/dist/types/libraries/mongo/models/vendor.model.js +0 -150
- package/dist/types/libraries/mongo/models/vendor.model.js.map +0 -1
- package/dist/types/libraries/mongo/models/zone-extra-time.d.ts +0 -12
- package/dist/types/libraries/mongo/models/zone-extra-time.js +0 -54
- package/dist/types/libraries/mongo/models/zone-extra-time.js.map +0 -1
- package/dist/types/libraries/mongo/models/zone.model.d.ts +0 -17
- package/dist/types/libraries/mongo/models/zone.model.js +0 -80
- package/dist/types/libraries/mongo/models/zone.model.js.map +0 -1
- package/dist/types/libraries/mongo/plugins/normalize-field.plugin.d.ts +0 -4
- package/dist/types/libraries/mongo/plugins/normalize-field.plugin.js +0 -42
- package/dist/types/libraries/mongo/plugins/normalize-field.plugin.js.map +0 -1
- package/dist/types/libraries/mongo/plugins/soft-delete-plugin.d.ts +0 -32
- package/dist/types/libraries/mongo/plugins/soft-delete-plugin.js +0 -145
- package/dist/types/libraries/mongo/plugins/soft-delete-plugin.js.map +0 -1
- package/dist/types/libraries/mongo/utilities/shop.hooks.d.ts +0 -9
- package/dist/types/libraries/mongo/utilities/shop.hooks.js +0 -11
- package/dist/types/libraries/mongo/utilities/shop.hooks.js.map +0 -1
- package/dist/types/libraries/mongo/utilities/sorting-order.hooks.d.ts +0 -14
- package/dist/types/libraries/mongo/utilities/sorting-order.hooks.js +0 -58
- package/dist/types/libraries/mongo/utilities/sorting-order.hooks.js.map +0 -1
- package/dist/types/libraries/mongo/utilities/unique-id.hooks.d.ts +0 -6
- package/dist/types/libraries/mongo/utilities/unique-id.hooks.js +0 -17
- package/dist/types/libraries/mongo/utilities/unique-id.hooks.js.map +0 -1
- package/dist/types/libraries/notification/firebase-fcm.service.d.ts +0 -7
- package/dist/types/libraries/notification/firebase-fcm.service.js +0 -40
- package/dist/types/libraries/notification/firebase-fcm.service.js.map +0 -1
- package/dist/types/libraries/notification/firebase-message.builder.d.ts +0 -22
- package/dist/types/libraries/notification/firebase-message.builder.js +0 -107
- package/dist/types/libraries/notification/firebase-message.builder.js.map +0 -1
- package/dist/types/libraries/notification/lyxa-fcm-sender.d.ts +0 -19
- package/dist/types/libraries/notification/lyxa-fcm-sender.js +0 -127
- package/dist/types/libraries/notification/lyxa-fcm-sender.js.map +0 -1
- package/dist/types/libraries/notification/lyxa-fcm.service.d.ts +0 -40
- package/dist/types/libraries/notification/lyxa-fcm.service.js +0 -177
- package/dist/types/libraries/notification/lyxa-fcm.service.js.map +0 -1
- package/dist/types/libraries/redis/index.d.ts +0 -25
- package/dist/types/libraries/redis/index.js +0 -137
- package/dist/types/libraries/redis/index.js.map +0 -1
- package/dist/types/libraries/secrets/index.d.ts +0 -10
- package/dist/types/libraries/secrets/index.js +0 -64
- package/dist/types/libraries/secrets/index.js.map +0 -1
- package/dist/types/libraries/socket/connections/cache.d.ts +0 -9
- package/dist/types/libraries/socket/connections/cache.js +0 -36
- package/dist/types/libraries/socket/connections/cache.js.map +0 -1
- package/dist/types/libraries/socket/connections/instance-disconnect.d.ts +0 -2
- package/dist/types/libraries/socket/connections/instance-disconnect.js +0 -43
- package/dist/types/libraries/socket/connections/instance-disconnect.js.map +0 -1
- package/dist/types/libraries/socket/connections/keys.d.ts +0 -10
- package/dist/types/libraries/socket/connections/keys.js +0 -23
- package/dist/types/libraries/socket/connections/keys.js.map +0 -1
- package/dist/types/libraries/socket/connections/redis-helpers.d.ts +0 -2
- package/dist/types/libraries/socket/connections/redis-helpers.js +0 -14
- package/dist/types/libraries/socket/connections/redis-helpers.js.map +0 -1
- package/dist/types/libraries/trpc/context.d.ts +0 -37
- package/dist/types/libraries/trpc/context.js +0 -43
- package/dist/types/libraries/trpc/context.js.map +0 -1
- package/dist/types/libraries/trpc/index.d.ts +0 -75
- package/dist/types/libraries/trpc/index.js +0 -80
- package/dist/types/libraries/trpc/index.js.map +0 -1
- package/dist/types/libraries/twilio/index.d.ts +0 -6
- package/dist/types/libraries/twilio/index.js +0 -42
- package/dist/types/libraries/twilio/index.js.map +0 -1
- package/dist/types/libraries/upload/index.d.ts +0 -50
- package/dist/types/libraries/upload/index.js +0 -312
- package/dist/types/libraries/upload/index.js.map +0 -1
- package/dist/types/utilities/auth-ref.mapper.d.ts +0 -4
- package/dist/types/utilities/auth-ref.mapper.js +0 -22
- package/dist/types/utilities/auth-ref.mapper.js.map +0 -1
- package/dist/types/utilities/dayjs/dayjs.d.ts +0 -14
- package/dist/types/utilities/dayjs/dayjs.js +0 -47
- package/dist/types/utilities/dayjs/dayjs.js.map +0 -1
- package/dist/types/utilities/dayjs/index.d.ts +0 -2
- package/dist/types/utilities/dayjs/index.js +0 -9
- package/dist/types/utilities/dayjs/index.js.map +0 -1
- package/dist/types/utilities/environment/rabbitmq-environments.d.ts +0 -2
- package/dist/types/utilities/environment/rabbitmq-environments.js +0 -14
- package/dist/types/utilities/environment/rabbitmq-environments.js.map +0 -1
- package/dist/types/utilities/environment/redis-environments.d.ts +0 -2
- package/dist/types/utilities/environment/redis-environments.js +0 -14
- package/dist/types/utilities/environment/redis-environments.js.map +0 -1
- package/dist/types/utilities/error-common.d.ts +0 -10
- package/dist/types/utilities/error-common.js +0 -76
- package/dist/types/utilities/error-common.js.map +0 -1
- package/dist/types/utilities/id-generator.d.ts +0 -6
- package/dist/types/utilities/id-generator.js +0 -161
- package/dist/types/utilities/id-generator.js.map +0 -1
- package/dist/types/utilities/instance.utils.d.ts +0 -1
- package/dist/types/utilities/instance.utils.js +0 -12
- package/dist/types/utilities/instance.utils.js.map +0 -1
- package/dist/types/utilities/normalize.d.ts +0 -6
- package/dist/types/utilities/normalize.js +0 -51
- package/dist/types/utilities/normalize.js.map +0 -1
- package/dist/types/utilities/password.d.ts +0 -2
- package/dist/types/utilities/password.js +0 -20
- package/dist/types/utilities/password.js.map +0 -1
- package/dist/types/utilities/projection.d.ts +0 -8
- package/dist/types/utilities/projection.js +0 -37
- package/dist/types/utilities/projection.js.map +0 -1
- package/dist/types/utilities/time.d.ts +0 -13
- package/dist/types/utilities/time.js +0 -128
- package/dist/types/utilities/time.js.map +0 -1
|
@@ -15,14 +15,18 @@ export interface TextVariantResult {
|
|
|
15
15
|
arabic?: string[];
|
|
16
16
|
arabizi?: string[];
|
|
17
17
|
arabicTransliteration?: string[];
|
|
18
|
+
isProcessingFailed?: boolean;
|
|
19
|
+
isEmpty?: boolean;
|
|
18
20
|
}
|
|
19
21
|
export interface AiConfiguration {
|
|
20
22
|
provider: LLMProvider;
|
|
21
23
|
model?: string;
|
|
22
24
|
instructions?: string;
|
|
23
25
|
prompt?: string;
|
|
26
|
+
chunkSize?: number;
|
|
24
27
|
}
|
|
25
28
|
export interface ItemTextInput {
|
|
26
29
|
id: string;
|
|
27
30
|
text: string;
|
|
31
|
+
skipAutoTranslation?: boolean;
|
|
28
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-llm-interfaces.js","sourceRoot":"/","sources":["libraries/llm/interfaces/common-llm-interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import { LLMProvider } from '../llm-provider-service';\n\nexport interface IAICompletionProvider {\n\tgenerateSearchVariantsChunksInBatch(\n\t\titems: ItemTextInput[],\n\t\tmodel?: string,\n\t\tinstructions?: string,\n\t\toptions?: {\n\t\t\tchunkSize?: number;\n\t\t\tmaxArabic?: number;\n\t\t\tmaxArabizi?: number;\n\t\t\tmaxTransliteration?: number;\n\t\t\tpollIntervalMs?: number;\n\t\t\tmaxWaitMs?: number;\n\t\t}\n\t): Promise<TextVariantResult[]>;\n}\n\nexport interface TextVariantResult {\n\tid: string;\n\toriginal: string;\n\tarabic?: string[];\n\tarabizi?: string[];\n\tarabicTransliteration?: string[];\n}\n\nexport interface AiConfiguration {\n\tprovider: LLMProvider;\n\tmodel?: string;\n\tinstructions?: string;\n\tprompt?: string;\n}\n\nexport interface ItemTextInput {\n\tid: string;\n\ttext: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"common-llm-interfaces.js","sourceRoot":"/","sources":["libraries/llm/interfaces/common-llm-interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import { LLMProvider } from '../llm-provider-service';\n\nexport interface IAICompletionProvider {\n\tgenerateSearchVariantsChunksInBatch(\n\t\titems: ItemTextInput[],\n\t\tmodel?: string,\n\t\tinstructions?: string,\n\t\toptions?: {\n\t\t\tchunkSize?: number;\n\t\t\tmaxArabic?: number;\n\t\t\tmaxArabizi?: number;\n\t\t\tmaxTransliteration?: number;\n\t\t\tpollIntervalMs?: number;\n\t\t\tmaxWaitMs?: number;\n\t\t}\n\t): Promise<TextVariantResult[]>;\n}\n\nexport interface TextVariantResult {\n\tid: string;\n\toriginal: string;\n\tarabic?: string[];\n\tarabizi?: string[];\n\tarabicTransliteration?: string[];\n\tisProcessingFailed?: boolean;\n\tisEmpty?: boolean;\n}\n\nexport interface AiConfiguration {\n\tprovider: LLMProvider;\n\tmodel?: string;\n\tinstructions?: string;\n\tprompt?: string;\n\tchunkSize?: number;\n}\n\nexport interface ItemTextInput {\n\tid: string;\n\ttext: string;\n\tskipAutoTranslation?: boolean;\n}\n"]}
|
|
@@ -30,7 +30,7 @@ class LLMCompletionService {
|
|
|
30
30
|
async generateSearchVariants(payload, aiConfigurations) {
|
|
31
31
|
const provider = await this.getProvider();
|
|
32
32
|
console.log(`You are using llm provider: ${this.provider} with model: ${aiConfigurations.model ?? 'gpt-5-nano'}`);
|
|
33
|
-
return provider.generateSearchVariantsChunksInBatch(payload, aiConfigurations.model, aiConfigurations.instructions);
|
|
33
|
+
return provider.generateSearchVariantsChunksInBatch(payload, aiConfigurations.model, aiConfigurations.instructions, { chunkSize: aiConfigurations.chunkSize });
|
|
34
34
|
}
|
|
35
35
|
async getProvider() {
|
|
36
36
|
if (!this.providerInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider-service.js","sourceRoot":"/","sources":["libraries/llm/llm-provider-service.ts"],"names":[],"mappings":";;;AAAA,6BAAqC;AAOrC,+DAA+D;AAC/D,iEAAuE;AAEvE,IAAY,WAGX;AAHD,WAAY,WAAW;IACtB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AAClB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAID,MAAa,oBAAoB;IAgBH;IAfrB,gBAAgB,GAAiC,IAAI,CAAC;IAE7C,SAAS,GAAyC;QAClE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAY,GAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAA,8BAAe,EAAC,iCAAiC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,IAAI,0CAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,IAAA,8BAAe,EAAC,YAAY,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;QAChF,CAAC;KACD,CAAC;IAEF,YAA6B,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;IAAG,CAAC;IAEtD,KAAK,CAAC,sBAAsB,CAC3B,OAAwB,EACxB,gBAAiC;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CACV,+BAA+B,IAAI,CAAC,QAAQ,gBAAgB,gBAAgB,CAAC,KAAK,IAAI,YAAY,EAAE,CACpG,CAAC;QACF,OAAO,QAAQ,CAAC,mCAAmC,CAClD,OAAO,EACP,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"llm-provider-service.js","sourceRoot":"/","sources":["libraries/llm/llm-provider-service.ts"],"names":[],"mappings":";;;AAAA,6BAAqC;AAOrC,+DAA+D;AAC/D,iEAAuE;AAEvE,IAAY,WAGX;AAHD,WAAY,WAAW;IACtB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AAClB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAID,MAAa,oBAAoB;IAgBH;IAfrB,gBAAgB,GAAiC,IAAI,CAAC;IAE7C,SAAS,GAAyC;QAClE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAY,GAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAA,8BAAe,EAAC,iCAAiC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,IAAI,0CAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,IAAA,8BAAe,EAAC,YAAY,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;QAChF,CAAC;KACD,CAAC;IAEF,YAA6B,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;IAAG,CAAC;IAEtD,KAAK,CAAC,sBAAsB,CAC3B,OAAwB,EACxB,gBAAiC;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CACV,+BAA+B,IAAI,CAAC,QAAQ,gBAAgB,gBAAgB,CAAC,KAAK,IAAI,YAAY,EAAE,CACpG,CAAC;QACF,OAAO,QAAQ,CAAC,mCAAmC,CAClD,OAAO,EACP,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,YAAY,EAC7B,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CACzC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW;QACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAA,8BAAe,EAAC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,MAAM,OAAO,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;CACD;AA5CD,oDA4CC","sourcesContent":["import { getLibraries } from '../..';\nimport {\n\tItemTextInput,\n\tAiConfiguration,\n\tTextVariantResult,\n\tIAICompletionProvider,\n} from './interfaces/common-llm-interfaces';\nimport { badRequestError } from '../../utilities/error-common';\nimport { OpenAICompletionProvider } from './providers/openai-provider';\n\nexport enum LLMProvider {\n\tOPENAI = 'openai',\n\tGEMINI = 'gemini',\n}\n\ntype ProviderFactory = () => Promise<IAICompletionProvider>;\n\nexport class LLMCompletionService {\n\tprivate providerInstance: IAICompletionProvider | null = null;\n\n\tprivate readonly factories: Record<LLMProvider, ProviderFactory> = {\n\t\t[LLMProvider.OPENAI]: async () => {\n\t\t\tconst apiKey = await getLibraries().getSecretsService().getKey('OPENAI_API_KEY');\n\t\t\tif (!apiKey) {\n\t\t\t\tthrow badRequestError(`No API key found for provider ${LLMProvider.OPENAI}`);\n\t\t\t}\n\t\t\treturn new OpenAICompletionProvider(apiKey, 'gpt-5-mini');\n\t\t},\n\t\t[LLMProvider.GEMINI]: async () => {\n\t\t\tthrow badRequestError(`Provider ${LLMProvider.GEMINI} is not implemented yet`);\n\t\t},\n\t};\n\n\tconstructor(private readonly provider: LLMProvider) {}\n\n\tasync generateSearchVariants(\n\t\tpayload: ItemTextInput[],\n\t\taiConfigurations: AiConfiguration\n\t): Promise<TextVariantResult[]> {\n\t\tconst provider = await this.getProvider();\n\t\tconsole.log(\n\t\t\t`You are using llm provider: ${this.provider} with model: ${aiConfigurations.model ?? 'gpt-5-nano'}`\n\t\t);\n\t\treturn provider.generateSearchVariantsChunksInBatch(\n\t\t\tpayload,\n\t\t\taiConfigurations.model,\n\t\t\taiConfigurations.instructions,\n\t\t\t{ chunkSize: aiConfigurations.chunkSize }\n\t\t);\n\t}\n\n\tprivate async getProvider(): Promise<IAICompletionProvider> {\n\t\tif (!this.providerInstance) {\n\t\t\tconst factory = this.factories[this.provider];\n\t\t\tif (!factory) {\n\t\t\t\tthrow badRequestError(`Unsupported LLM provider: ${this.provider}`);\n\t\t\t}\n\t\t\tthis.providerInstance = await factory();\n\t\t}\n\t\treturn this.providerInstance;\n\t}\n}"]}
|
|
@@ -2,6 +2,7 @@ import { IAICompletionProvider, ItemTextInput, TextVariantResult } from '../inte
|
|
|
2
2
|
export declare class OpenAICompletionProvider implements IAICompletionProvider {
|
|
3
3
|
private readonly client;
|
|
4
4
|
private readonly model;
|
|
5
|
+
private readonly ARABIC_CHAR_REGEX;
|
|
5
6
|
constructor(apiKey: string | undefined, model?: string);
|
|
6
7
|
generateSearchVariantsChunksInBatch(items: ItemTextInput[], model?: string, instructions?: string, options?: {
|
|
7
8
|
chunkSize?: number;
|
|
@@ -11,9 +12,12 @@ export declare class OpenAICompletionProvider implements IAICompletionProvider {
|
|
|
11
12
|
pollIntervalMs?: number;
|
|
12
13
|
maxWaitMs?: number;
|
|
13
14
|
}): Promise<TextVariantResult[]>;
|
|
15
|
+
private sanitizeArabicArray;
|
|
16
|
+
private sanitizeLatinArray;
|
|
14
17
|
private buildOptimizedInstructions;
|
|
15
18
|
private buildOptimizedChunkSchema;
|
|
16
19
|
private chunkItems;
|
|
17
20
|
private pollBatch;
|
|
18
21
|
private readJsonlFile;
|
|
22
|
+
private isEmptyValue;
|
|
19
23
|
}
|
|
@@ -38,6 +38,7 @@ const openai_1 = __importStar(require("openai"));
|
|
|
38
38
|
class OpenAICompletionProvider {
|
|
39
39
|
client;
|
|
40
40
|
model;
|
|
41
|
+
ARABIC_CHAR_REGEX = /[\u0600-\u06FF]/;
|
|
41
42
|
constructor(apiKey, model = 'gpt-5-nano') {
|
|
42
43
|
if (!apiKey) {
|
|
43
44
|
throw new Error('OPENAI_API_KEY is required to construct OpenAICompletionProvider');
|
|
@@ -51,19 +52,22 @@ class OpenAICompletionProvider {
|
|
|
51
52
|
const maxArabic = options?.maxArabic ?? 1;
|
|
52
53
|
const maxArabizi = options?.maxArabizi ?? 2;
|
|
53
54
|
const maxTransliteration = options?.maxTransliteration ?? 1;
|
|
55
|
+
const itemsToSend = items.filter(i => !i.skipAutoTranslation);
|
|
56
|
+
const skippedItems = items.filter(i => i.skipAutoTranslation);
|
|
57
|
+
if (skippedItems.length) {
|
|
58
|
+
console.log(`generateSearchVariantsChunksInBatch: skipping ${skippedItems.length}/${items.length} items due to skipAutoTranslation=true`);
|
|
59
|
+
}
|
|
60
|
+
if (!itemsToSend.length) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
54
63
|
try {
|
|
55
|
-
const finalInstructions = instructions ??
|
|
56
|
-
this.buildOptimizedInstructions({
|
|
57
|
-
maxArabic,
|
|
58
|
-
maxArabizi,
|
|
59
|
-
maxTransliteration,
|
|
60
|
-
});
|
|
64
|
+
const finalInstructions = instructions ?? this.buildOptimizedInstructions({ maxArabic, maxArabizi, maxTransliteration });
|
|
61
65
|
const chunkSchema = this.buildOptimizedChunkSchema({ maxArabic, maxArabizi, maxTransliteration });
|
|
62
|
-
const chunks = this.chunkItems(
|
|
66
|
+
const chunks = this.chunkItems(itemsToSend, chunkSize);
|
|
63
67
|
if (chunks.length > 50_000) {
|
|
64
68
|
throw new Error(`Too many chunks (${chunks.length}) for a single batch file — increase chunkSize or split into multiple batch submissions.`);
|
|
65
69
|
}
|
|
66
|
-
console.log(`generateSearchVariantsChunksInBatch: model=${finalModel} items=${
|
|
70
|
+
console.log(`generateSearchVariantsChunksInBatch: model=${finalModel} items=${itemsToSend.length} (${skippedItems.length} skipped) chunkSize=${chunkSize} chunks=${chunks.length}`);
|
|
67
71
|
const jsonl = chunks
|
|
68
72
|
.map((chunkItems, i) => JSON.stringify({
|
|
69
73
|
custom_id: `chunk-${i}`,
|
|
@@ -94,6 +98,11 @@ class OpenAICompletionProvider {
|
|
|
94
98
|
completion_window: '24h',
|
|
95
99
|
});
|
|
96
100
|
batch = await this.pollBatch(batch.id, options?.pollIntervalMs, options?.maxWaitMs);
|
|
101
|
+
console.log({
|
|
102
|
+
status: batch.status,
|
|
103
|
+
request_counts: batch.request_counts,
|
|
104
|
+
errors: batch.errors,
|
|
105
|
+
});
|
|
97
106
|
if (batch.status !== 'completed') {
|
|
98
107
|
throw new Error(`Batch ${batch.id} ended with status "${batch.status}" (${batch.request_counts?.failed ?? 0} failed)`);
|
|
99
108
|
}
|
|
@@ -114,10 +123,20 @@ class OpenAICompletionProvider {
|
|
|
114
123
|
try {
|
|
115
124
|
const parsed = JSON.parse(outputText);
|
|
116
125
|
for (const r of parsed.results) {
|
|
126
|
+
const ar = this.sanitizeArabicArray(r.ar);
|
|
127
|
+
const tr = this.sanitizeArabicArray(r.tr);
|
|
128
|
+
const az = this.sanitizeLatinArray(r.az);
|
|
129
|
+
const isEmpty = this.isEmptyValue(r.ar) || this.isEmptyValue(r.az) || this.isEmptyValue(r.tr);
|
|
130
|
+
const isProcessingFailed = (!ar.length && !tr.length) || !az.length;
|
|
131
|
+
if (isProcessingFailed) {
|
|
132
|
+
console.warn(`generateSearchVariantsChunksInBatch: marking id=${r.id} as processingFailed — ar=${JSON.stringify(r.ar)} az=${JSON.stringify(r.az)} tr=${JSON.stringify(r.tr)}`);
|
|
133
|
+
}
|
|
117
134
|
resultsById.set(r.id, {
|
|
118
|
-
arabic:
|
|
119
|
-
arabizi:
|
|
120
|
-
arabicTransliteration:
|
|
135
|
+
arabic: ar,
|
|
136
|
+
arabizi: az,
|
|
137
|
+
arabicTransliteration: tr,
|
|
138
|
+
isProcessingFailed,
|
|
139
|
+
isEmpty,
|
|
121
140
|
});
|
|
122
141
|
}
|
|
123
142
|
}
|
|
@@ -125,11 +144,15 @@ class OpenAICompletionProvider {
|
|
|
125
144
|
console.error(`generateSearchVariantsChunksInBatch: failed to parse output for ${chunkId}`, outputText);
|
|
126
145
|
}
|
|
127
146
|
}
|
|
147
|
+
const missingIds = itemsToSend.filter(i => !resultsById.has(i.id)).map(i => i.id);
|
|
148
|
+
if (missingIds.length) {
|
|
149
|
+
console.error(`generateSearchVariantsChunksInBatch: ${missingIds.length}/${itemsToSend.length} items missing from LLM output`, missingIds);
|
|
150
|
+
}
|
|
128
151
|
return items.map(({ id, text }) => {
|
|
129
152
|
const r = resultsById.get(id);
|
|
130
153
|
if (!r) {
|
|
131
154
|
console.error(`generateSearchVariantsChunksInBatch: no result for itemId=${id}`);
|
|
132
|
-
return { id, original: text };
|
|
155
|
+
return { id, original: text, processingFailed: true, isEmpty: true };
|
|
133
156
|
}
|
|
134
157
|
return { id, original: text, ...r };
|
|
135
158
|
});
|
|
@@ -137,12 +160,18 @@ class OpenAICompletionProvider {
|
|
|
137
160
|
catch (error) {
|
|
138
161
|
console.error('generateSearchVariantsChunksInBatch failed', {
|
|
139
162
|
error,
|
|
140
|
-
itemCount:
|
|
163
|
+
itemCount: itemsToSend.length,
|
|
141
164
|
model: finalModel,
|
|
142
165
|
});
|
|
143
166
|
throw error;
|
|
144
167
|
}
|
|
145
168
|
}
|
|
169
|
+
sanitizeArabicArray(values) {
|
|
170
|
+
return (values ?? []).filter(v => typeof v === 'string' && v.trim() && this.ARABIC_CHAR_REGEX.test(v));
|
|
171
|
+
}
|
|
172
|
+
sanitizeLatinArray(values) {
|
|
173
|
+
return (values ?? []).filter(v => typeof v === 'string' && v.trim() && !this.ARABIC_CHAR_REGEX.test(v));
|
|
174
|
+
}
|
|
146
175
|
buildOptimizedInstructions(caps) {
|
|
147
176
|
return [
|
|
148
177
|
'You generate search-name variants for a food delivery app product/shop name.',
|
|
@@ -218,6 +247,11 @@ class OpenAICompletionProvider {
|
|
|
218
247
|
}
|
|
219
248
|
return result;
|
|
220
249
|
}
|
|
250
|
+
isEmptyValue(values) {
|
|
251
|
+
if (!values || values.length === 0)
|
|
252
|
+
return true;
|
|
253
|
+
return values.every(v => typeof v !== 'string' || !v.trim());
|
|
254
|
+
}
|
|
221
255
|
}
|
|
222
256
|
exports.OpenAICompletionProvider = OpenAICompletionProvider;
|
|
223
257
|
//# sourceMappingURL=openai-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.js","sourceRoot":"/","sources":["libraries/llm/providers/openai-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import OpenAI, { toFile } from 'openai';\nimport { IAICompletionProvider, ItemTextInput, TextVariantResult } from '../interfaces/common-llm-interfaces';\n\nexport class OpenAICompletionProvider implements IAICompletionProvider {\n\tprivate readonly client: OpenAI;\n\tprivate readonly model: string;\n\n\tconstructor(apiKey: string | undefined, model: string = 'gpt-5-nano') {\n\t\tif (!apiKey) {\n\t\t\tthrow new Error('OPENAI_API_KEY is required to construct OpenAICompletionProvider');\n\t\t}\n\t\tthis.client = new OpenAI({ apiKey });\n\t\tthis.model = model;\n\t}\n\n\t// ── Cost-optimized batch path ────────────────────────────────────\n\t// Implements everything discussed:\n\t// 1. Chunking — groups items (default 200/chunk) into one line per\n\t// chunk, so `instructions` is billed once per chunk instead of\n\t// once per item (biggest single cost lever).\n\t// 2. Short output keys — model emits {id, ar, az, tr} instead of\n\t// {id, arabic, arabizi, arabicTransliteration}; mapped back\n\t// to full field names locally, at zero token cost.\n\t// 3. Capped array lengths — schema enforces maxItems (not just a\n\t// prose suggestion), so the model can't drift to longer arrays.\n\t// 4. No echoed fields — model never re-emits id/original text;\n\t// both are re-attached locally from the input you already have.\n\tasync generateSearchVariantsChunksInBatch(\n\t\titems: ItemTextInput[],\n\t\tmodel?: string,\n\t\tinstructions?: string,\n\t\toptions?: {\n\t\t\tchunkSize?: number; // items per chunk/line — tune after testing token usage\n\t\t\tmaxArabic?: number; // cap on `arabic` variants (set to 1 for a single string-like result)\n\t\t\tmaxArabizi?: number; // cap on `arabizi` variants\n\t\t\tmaxTransliteration?: number; // cap on `arabicTransliteration` variants\n\t\t\tpollIntervalMs?: number;\n\t\t\tmaxWaitMs?: number;\n\t\t}\n\t): Promise<TextVariantResult[]> {\n\t\tconst finalModel = model ?? this.model;\n\t\tconst chunkSize = options?.chunkSize ?? 200;\n\t\tconst maxArabic = options?.maxArabic ?? 1;\n\t\tconst maxArabizi = options?.maxArabizi ?? 2;\n\t\tconst maxTransliteration = options?.maxTransliteration ?? 1;\n\n\t\ttry {\n\t\t\tconst finalInstructions =\n\t\t\t\tinstructions ??\n\t\t\t\tthis.buildOptimizedInstructions({\n\t\t\t\t\tmaxArabic,\n\t\t\t\t\tmaxArabizi,\n\t\t\t\t\tmaxTransliteration,\n\t\t\t\t});\n\n\t\t\tconst chunkSchema = this.buildOptimizedChunkSchema({ maxArabic, maxArabizi, maxTransliteration });\n\n\t\t\tconst chunks = this.chunkItems(items, chunkSize);\n\n\t\t\tif (chunks.length > 50_000) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Too many chunks (${chunks.length}) for a single batch file — increase chunkSize or split into multiple batch submissions.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconsole.log(\n\t\t\t\t`generateSearchVariantsChunksInBatch: model=${finalModel} items=${items.length} chunkSize=${chunkSize} chunks=${chunks.length}`\n\t\t\t);\n\n\t\t\t// 1. Build JSONL — ONE line per chunk, not per item\n\t\t\tconst jsonl = chunks\n\t\t\t\t.map((chunkItems, i) =>\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\tcustom_id: `chunk-${i}`,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: '/v1/responses',\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tmodel: finalModel,\n\t\t\t\t\t\t\tinstructions: finalInstructions,\n\t\t\t\t\t\t\t// Only send what the model needs to generate from: id + text.\n\t\t\t\t\t\t\t// No other fields, no restating of instructions per item.\n\t\t\t\t\t\t\tinput: JSON.stringify(chunkItems.map(({ id, text }) => ({ id: id, text }))),\n\t\t\t\t\t\t\ttext: {\n\t\t\t\t\t\t\t\tformat: {\n\t\t\t\t\t\t\t\t\ttype: 'json_schema',\n\t\t\t\t\t\t\t\t\tname: 'text_variants_batch',\n\t\t\t\t\t\t\t\t\tschema: chunkSchema,\n\t\t\t\t\t\t\t\t\tstrict: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t.join('\\n');\n\n\t\t\t// 2. Upload input file\n\t\t\tconst inputFile = await this.client.files.create({\n\t\t\t\tfile: await toFile(Buffer.from(jsonl, 'utf-8'), 'batch-input-optimized.jsonl'),\n\t\t\t\tpurpose: 'batch',\n\t\t\t});\n\n\t\t\t// 3. Create batch job\n\t\t\tlet batch = await this.client.batches.create({\n\t\t\t\tinput_file_id: inputFile.id,\n\t\t\t\tendpoint: '/v1/responses',\n\t\t\t\tcompletion_window: '24h',\n\t\t\t});\n\n\t\t\t// 4. Poll until done\n\t\t\tbatch = await this.pollBatch(batch.id, options?.pollIntervalMs, options?.maxWaitMs);\n\n\t\t\tif (batch.status !== 'completed') {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Batch ${batch.id} ended with status \"${batch.status}\" (${batch.request_counts?.failed ?? 0} failed)`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// 5. Parse output — keyed by chunk custom_id, each containing an array of per-item results\n\t\t\tconst outputByChunk = await this.readJsonlFile(batch.output_file_id);\n\t\t\tconst errorsByChunk = await this.readJsonlFile(batch.error_file_id);\n\n\t\t\t// 6. Flatten chunk results into a per-itemId map, expanding short keys back to full field names\n\t\t\tconst resultsById = new Map<string, Partial<TextVariantResult>>();\n\n\t\t\tfor (const [chunkId, record] of outputByChunk.entries()) {\n\t\t\t\tconst body = record?.response?.body;\n\t\t\t\tconst outputText =\n\t\t\t\t\tbody?.output_text ??\n\t\t\t\t\tbody?.output\n\t\t\t\t\t\t?.find((o: any) => o.type === 'message')\n\t\t\t\t\t\t?.content?.find((c: any) => c.type === 'output_text')?.text;\n\n\t\t\t\tif (!outputText) {\n\t\t\t\t\tconst err = errorsByChunk.get(chunkId);\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`generateSearchVariantsChunksInBatch: no output for ${chunkId}`,\n\t\t\t\t\t\terr ?? record?.error\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(outputText) as {\n\t\t\t\t\t\tresults: Array<{ id: string; ar: string[]; az: string[]; tr: string[] }>;\n\t\t\t\t\t};\n\t\t\t\t\tfor (const r of parsed.results) {\n\t\t\t\t\t\tresultsById.set(r.id, {\n\t\t\t\t\t\t\tarabic: r.ar,\n\t\t\t\t\t\t\tarabizi: r.az,\n\t\t\t\t\t\t\tarabicTransliteration: r.tr,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`generateSearchVariantsChunksInBatch: failed to parse output for ${chunkId}`,\n\t\t\t\t\t\toutputText\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 7. Merge back with original items, preserving order and filling gaps\n\t\t\treturn items.map(({ id, text }) => {\n\t\t\t\tconst r = resultsById.get(id);\n\t\t\t\tif (!r) {\n\t\t\t\t\tconsole.error(`generateSearchVariantsChunksInBatch: no result for itemId=${id}`);\n\t\t\t\t\treturn { id, original: text };\n\t\t\t\t}\n\t\t\t\treturn { id, original: text, ...r } as TextVariantResult;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error('generateSearchVariantsChunksInBatch failed', {\n\t\t\t\terror,\n\t\t\t\titemCount: items.length,\n\t\t\t\tmodel: finalModel,\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t// ── Helpers ──────────────────────────────────────────────────────\n\n\t// Compact instructions for the optimized path: short-key output format,\n\t// explicit array caps stated in prose (schema also enforces them),\n\t// and an explicit \"no commentary inside values\" rule to stop the model\n\t// padding fields with parenthetical notes.\n\tprivate buildOptimizedInstructions(caps: {\n\t\tmaxArabic: number;\n\t\tmaxArabizi: number;\n\t\tmaxTransliteration: number;\n\t}): string {\n\t\treturn [\n\t\t\t'You generate search-name variants for a food delivery app product/shop name.',\n\t\t\t'You will receive a JSON array of items, each with \"id\" and \"text\".',\n\t\t\t'For EACH item, return an object with:',\n\t\t\t`- id: the exact id provided (unchanged)`,\n\t\t\t`- ar: Arabic translation(s) in Arabic script, max ${caps.maxArabic}.`,\n\t\t\t`- az: Arabizi spelling(s) (Latin script/numerals, e.g. \"zaytoon\"), max ${caps.maxArabizi}.`,\n\t\t\t`- tr: Arabic-script transliteration(s) of the original word (not translated), max ${caps.maxTransliteration}.`,\n\t\t\t'Return one result per input item, same order, no items skipped or merged.',\n\t\t\t'Values must contain only the term itself — no parenthetical notes, no commentary.',\n\t\t\t'Return strict JSON matching the schema. No extra commentary, no extra fields.',\n\t\t].join('\\n');\n\t}\n\n\t// Schema for the OPTIMIZED chunk path: wraps a `results` array (one\n\t// entry per item in the chunk), short keys, and hard maxItems caps.\n\tprivate buildOptimizedChunkSchema(caps: {\n\t\tmaxArabic: number;\n\t\tmaxArabizi: number;\n\t\tmaxTransliteration: number;\n\t}) {\n\t\treturn {\n\t\t\ttype: 'object',\n\t\t\tproperties: {\n\t\t\t\tresults: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tid: { type: 'string' },\n\t\t\t\t\t\t\tar: { type: 'array', items: { type: 'string' }, minItems: 1, maxItems: caps.maxArabic },\n\t\t\t\t\t\t\taz: { type: 'array', items: { type: 'string' }, minItems: 1, maxItems: caps.maxArabizi },\n\t\t\t\t\t\t\ttr: {\n\t\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\t\titems: { type: 'string' },\n\t\t\t\t\t\t\t\tminItems: 1,\n\t\t\t\t\t\t\t\tmaxItems: caps.maxTransliteration,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\trequired: ['id', 'ar', 'az', 'tr'],\n\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: ['results'],\n\t\t\tadditionalProperties: false,\n\t\t};\n\t}\n\n\tprivate chunkItems<T>(items: T[], size: number): T[][] {\n\t\tconst out: T[][] = [];\n\t\tfor (let i = 0; i < items.length; i += size) {\n\t\t\tout.push(items.slice(i, i + size));\n\t\t}\n\t\treturn out;\n\t}\n\n\tprivate async pollBatch(\n\t\tbatchId: string,\n\t\tintervalMs = 5000,\n\t\tmaxWaitMs = 24 * 60 * 60 * 1000\n\t): Promise<OpenAI.Batches.Batch> {\n\t\tconst terminal = new Set(['completed', 'failed', 'expired', 'cancelled']);\n\t\tconst start = Date.now();\n\n\t\twhile (true) {\n\t\t\tconst batch = await this.client.batches.retrieve(batchId);\n\t\t\tconsole.log(\n\t\t\t\t`pollBatch: ${batchId} status=${batch.status} elapsed=${Math.round((Date.now() - start) / 1000)}s`\n\t\t\t);\n\t\t\tif (terminal.has(batch.status)) return batch;\n\n\t\t\tif (Date.now() - start > maxWaitMs) {\n\t\t\t\tthrow new Error(`Batch ${batchId} did not finish within ${maxWaitMs}ms (status: ${batch.status})`);\n\t\t\t}\n\n\t\t\tawait new Promise(resolve => setTimeout(resolve, intervalMs));\n\t\t}\n\t}\n\n\tprivate async readJsonlFile(fileId: string | null | undefined): Promise<Map<string, any>> {\n\t\tconst result = new Map<string, any>();\n\t\tif (!fileId) return result;\n\n\t\tconst fileResponse = await this.client.files.content(fileId);\n\t\tconst text = await fileResponse.text();\n\n\t\tfor (const line of text.split('\\n').filter(Boolean)) {\n\t\t\tconst record = JSON.parse(line);\n\t\t\tresult.set(record.custom_id, record);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"openai-provider.js","sourceRoot":"/","sources":["libraries/llm/providers/openai-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import OpenAI, { toFile } from 'openai';\nimport { IAICompletionProvider, ItemTextInput, TextVariantResult } from '../interfaces/common-llm-interfaces';\n\nexport class OpenAICompletionProvider implements IAICompletionProvider {\n\tprivate readonly client: OpenAI;\n\tprivate readonly model: string;\n\tprivate readonly ARABIC_CHAR_REGEX = /[\\u0600-\\u06FF]/;\n\n\tconstructor(apiKey: string | undefined, model: string = 'gpt-5-nano') {\n\t\tif (!apiKey) {\n\t\t\tthrow new Error('OPENAI_API_KEY is required to construct OpenAICompletionProvider');\n\t\t}\n\t\tthis.client = new OpenAI({ apiKey });\n\t\tthis.model = model;\n\t}\n\n\t// ── Cost-optimized batch path ────────────────────────────────────\n\t// Implements everything discussed:\n\t// 1. Chunking — groups items (default 200/chunk) into one line per\n\t// chunk, so `instructions` is billed once per chunk instead of\n\t// once per item (biggest single cost lever).\n\t// 2. Short output keys — model emits {id, ar, az, tr} instead of\n\t// {id, arabic, arabizi, arabicTransliteration}; mapped back\n\t// to full field names locally, at zero token cost.\n\t// 3. Capped array lengths — schema enforces maxItems (not just a\n\t// prose suggestion), so the model can't drift to longer arrays.\n\t// 4. No echoed fields — model never re-emits id/original text;\n\t// both are re-attached locally from the input you already have.\n\tasync generateSearchVariantsChunksInBatch(\n\t\titems: ItemTextInput[],\n\t\tmodel?: string,\n\t\tinstructions?: string,\n\t\toptions?: {\n\t\t\tchunkSize?: number;\n\t\t\tmaxArabic?: number;\n\t\t\tmaxArabizi?: number;\n\t\t\tmaxTransliteration?: number;\n\t\t\tpollIntervalMs?: number;\n\t\t\tmaxWaitMs?: number;\n\t\t}\n\t): Promise<TextVariantResult[]> {\n\t\tconst finalModel = model ?? this.model;\n\t\tconst chunkSize = options?.chunkSize ?? 200;\n\t\tconst maxArabic = options?.maxArabic ?? 1;\n\t\tconst maxArabizi = options?.maxArabizi ?? 2;\n\t\tconst maxTransliteration = options?.maxTransliteration ?? 1;\n\n\t\t// Items explicitly opted out — never sent to the model, just passed through.\n\t\tconst itemsToSend = items.filter(i => !i.skipAutoTranslation);\n\t\tconst skippedItems = items.filter(i => i.skipAutoTranslation);\n\n\t\tif (skippedItems.length) {\n\t\t\tconsole.log(\n\t\t\t\t`generateSearchVariantsChunksInBatch: skipping ${skippedItems.length}/${items.length} items due to skipAutoTranslation=true`\n\t\t\t);\n\t\t}\n\n\t\t// Nothing left to actually send — short-circuit before touching the OpenAI API at all.\n\t\tif (!itemsToSend.length) {\n\t\t\t// return skippedItems.map(({ id, text }) => ({ id, original: text, skipped: true }));\n\t\t\treturn [];\n\t\t}\n\n\t\ttry {\n\t\t\tconst finalInstructions =\n\t\t\t\tinstructions ?? this.buildOptimizedInstructions({ maxArabic, maxArabizi, maxTransliteration });\n\n\t\t\tconst chunkSchema = this.buildOptimizedChunkSchema({ maxArabic, maxArabizi, maxTransliteration });\n\n\t\t\tconst chunks = this.chunkItems(itemsToSend, chunkSize);\n\n\t\t\tif (chunks.length > 50_000) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Too many chunks (${chunks.length}) for a single batch file — increase chunkSize or split into multiple batch submissions.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconsole.log(\n\t\t\t\t`generateSearchVariantsChunksInBatch: model=${finalModel} items=${itemsToSend.length} (${skippedItems.length} skipped) chunkSize=${chunkSize} chunks=${chunks.length}`\n\t\t\t);\n\n\t\t\t// 1. Build JSONL — ONE line per chunk, not per item\n\t\t\tconst jsonl = chunks\n\t\t\t\t.map((chunkItems, i) =>\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\tcustom_id: `chunk-${i}`,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: '/v1/responses',\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tmodel: finalModel,\n\t\t\t\t\t\t\tinstructions: finalInstructions,\n\t\t\t\t\t\t\tinput: JSON.stringify(chunkItems.map(({ id, text }) => ({ id: id, text }))),\n\t\t\t\t\t\t\ttext: {\n\t\t\t\t\t\t\t\tformat: {\n\t\t\t\t\t\t\t\t\ttype: 'json_schema',\n\t\t\t\t\t\t\t\t\tname: 'text_variants_batch',\n\t\t\t\t\t\t\t\t\tschema: chunkSchema,\n\t\t\t\t\t\t\t\t\tstrict: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t.join('\\n');\n\n\t\t\t// 2. Upload input file\n\t\t\tconst inputFile = await this.client.files.create({\n\t\t\t\tfile: await toFile(Buffer.from(jsonl, 'utf-8'), 'batch-input-optimized.jsonl'),\n\t\t\t\tpurpose: 'batch',\n\t\t\t});\n\n\t\t\t// 3. Create batch job\n\t\t\tlet batch = await this.client.batches.create({\n\t\t\t\tinput_file_id: inputFile.id,\n\t\t\t\tendpoint: '/v1/responses',\n\t\t\t\tcompletion_window: '24h',\n\t\t\t});\n\n\t\t\t// 4. Poll until done\n\t\t\tbatch = await this.pollBatch(batch.id, options?.pollIntervalMs, options?.maxWaitMs);\n\n\t\t\tconsole.log({\n\t\t\t\tstatus: batch.status,\n\t\t\t\trequest_counts: batch.request_counts,\n\t\t\t\terrors: batch.errors,\n\t\t\t});\n\n\t\t\tif (batch.status !== 'completed') {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Batch ${batch.id} ended with status \"${batch.status}\" (${batch.request_counts?.failed ?? 0} failed)`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// 5. Parse output\n\t\t\tconst outputByChunk = await this.readJsonlFile(batch.output_file_id);\n\t\t\tconst errorsByChunk = await this.readJsonlFile(batch.error_file_id);\n\n\t\t\t// 6. Flatten chunk results into a per-itemId map\n\t\t\tconst resultsById = new Map<string, Partial<TextVariantResult>>();\n\n\t\t\tfor (const [chunkId, record] of outputByChunk.entries()) {\n\t\t\t\tconst body = record?.response?.body;\n\t\t\t\tconst outputText =\n\t\t\t\t\tbody?.output_text ??\n\t\t\t\t\tbody?.output\n\t\t\t\t\t\t?.find((o: any) => o.type === 'message')\n\t\t\t\t\t\t?.content?.find((c: any) => c.type === 'output_text')?.text;\n\n\t\t\t\tif (!outputText) {\n\t\t\t\t\tconst err = errorsByChunk.get(chunkId);\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`generateSearchVariantsChunksInBatch: no output for ${chunkId}`,\n\t\t\t\t\t\terr ?? record?.error\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(outputText) as {\n\t\t\t\t\t\tresults: Array<{ id: string; ar: string[]; az: string[]; tr: string[] }>;\n\t\t\t\t\t};\n\t\t\t\t\tfor (const r of parsed.results) {\n\t\t\t\t\t\tconst ar = this.sanitizeArabicArray(r.ar);\n\t\t\t\t\t\tconst tr = this.sanitizeArabicArray(r.tr);\n\t\t\t\t\t\tconst az = this.sanitizeLatinArray(r.az);\n\n\t\t\t\t\t\tconst isEmpty = this.isEmptyValue(r.ar) || this.isEmptyValue(r.az) || this.isEmptyValue(r.tr);\n\t\t\t\t\t\tconst isProcessingFailed = (!ar.length && !tr.length) || !az.length;\n\n\t\t\t\t\t\tif (isProcessingFailed) {\n\t\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\t`generateSearchVariantsChunksInBatch: marking id=${r.id} as processingFailed — ar=${JSON.stringify(r.ar)} az=${JSON.stringify(r.az)} tr=${JSON.stringify(r.tr)}`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresultsById.set(r.id, {\n\t\t\t\t\t\t\tarabic: ar,\n\t\t\t\t\t\t\tarabizi: az,\n\t\t\t\t\t\t\tarabicTransliteration: tr,\n\t\t\t\t\t\t\tisProcessingFailed,\n\t\t\t\t\t\t\tisEmpty,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`generateSearchVariantsChunksInBatch: failed to parse output for ${chunkId}`,\n\t\t\t\t\t\toutputText\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 7. Surface items the model silently dropped (only checked against what we actually sent)\n\t\t\tconst missingIds = itemsToSend.filter(i => !resultsById.has(i.id)).map(i => i.id);\n\t\t\tif (missingIds.length) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`generateSearchVariantsChunksInBatch: ${missingIds.length}/${itemsToSend.length} items missing from LLM output`,\n\t\t\t\t\tmissingIds\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// 8. Merge back with the FULL original item list — skipped items pass through untouched,\n\t\t\t// everything else is looked up in resultsById.\n\t\t\treturn items.map(({ id, text }) => {\n\t\t\t\tconst r = resultsById.get(id);\n\t\t\t\tif (!r) {\n\t\t\t\t\tconsole.error(`generateSearchVariantsChunksInBatch: no result for itemId=${id}`);\n\t\t\t\t\treturn { id, original: text, processingFailed: true, isEmpty: true };\n\t\t\t\t}\n\t\t\t\treturn { id, original: text, ...r } as TextVariantResult;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error('generateSearchVariantsChunksInBatch failed', {\n\t\t\t\terror,\n\t\t\t\titemCount: itemsToSend.length,\n\t\t\t\tmodel: finalModel,\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t// ── Helpers ──────────────────────────────────────────────────────\n\n\t// Keeps only entries that actually contain Arabic-script characters — used for `ar`/`tr`,\n\t// which must never contain the raw English/Latin text the model was given.\n\tprivate sanitizeArabicArray(values: string[] | undefined): string[] {\n\t\treturn (values ?? []).filter(v => typeof v === 'string' && v.trim() && this.ARABIC_CHAR_REGEX.test(v));\n\t}\n\n\t// Keeps only entries that do NOT contain Arabic-script characters — used for `az`\n\t// (Latin/Arabizi variants), which must never contain Arabic script.\n\tprivate sanitizeLatinArray(values: string[] | undefined): string[] {\n\t\treturn (values ?? []).filter(v => typeof v === 'string' && v.trim() && !this.ARABIC_CHAR_REGEX.test(v));\n\t}\n\n\t// Compact instructions for the optimized path: short-key output format,\n\t// explicit array caps stated in prose (schema also enforces them),\n\t// and an explicit \"no commentary inside values\" rule to stop the model\n\t// padding fields with parenthetical notes.\n\tprivate buildOptimizedInstructions(caps: {\n\t\tmaxArabic: number;\n\t\tmaxArabizi: number;\n\t\tmaxTransliteration: number;\n\t}): string {\n\t\treturn [\n\t\t\t'You generate search-name variants for a food delivery app product/shop name.',\n\t\t\t'You will receive a JSON array of items, each with \"id\" and \"text\".',\n\t\t\t'For EACH item, return an object with:',\n\t\t\t`- id: the exact id provided (unchanged)`,\n\t\t\t`- ar: Arabic translation(s) in Arabic script, max ${caps.maxArabic}.`,\n\t\t\t`- az: Arabizi spelling(s) (Latin script/numerals, e.g. \"zaytoon\"), max ${caps.maxArabizi}.`,\n\t\t\t`- tr: Arabic-script transliteration(s) of the original word (not translated), max ${caps.maxTransliteration}.`,\n\t\t\t'Return one result per input item, same order, no items skipped or merged.',\n\t\t\t'Values must contain only the term itself — no parenthetical notes, no commentary.',\n\t\t\t'Return strict JSON matching the schema. No extra commentary, no extra fields.',\n\t\t].join('\\n');\n\t}\n\n\t// Schema for the OPTIMIZED chunk path: wraps a `results` array (one\n\t// entry per item in the chunk), short keys, and hard maxItems caps.\n\tprivate buildOptimizedChunkSchema(caps: {\n\t\tmaxArabic: number;\n\t\tmaxArabizi: number;\n\t\tmaxTransliteration: number;\n\t}) {\n\t\treturn {\n\t\t\ttype: 'object',\n\t\t\tproperties: {\n\t\t\t\tresults: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tid: { type: 'string' },\n\t\t\t\t\t\t\tar: { type: 'array', items: { type: 'string' }, minItems: 1, maxItems: caps.maxArabic },\n\t\t\t\t\t\t\taz: { type: 'array', items: { type: 'string' }, minItems: 1, maxItems: caps.maxArabizi },\n\t\t\t\t\t\t\ttr: {\n\t\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\t\titems: { type: 'string' },\n\t\t\t\t\t\t\t\tminItems: 1,\n\t\t\t\t\t\t\t\tmaxItems: caps.maxTransliteration,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\trequired: ['id', 'ar', 'az', 'tr'],\n\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: ['results'],\n\t\t\tadditionalProperties: false,\n\t\t};\n\t}\n\n\tprivate chunkItems<T>(items: T[], size: number): T[][] {\n\t\tconst out: T[][] = [];\n\t\tfor (let i = 0; i < items.length; i += size) {\n\t\t\tout.push(items.slice(i, i + size));\n\t\t}\n\t\treturn out;\n\t}\n\n\tprivate async pollBatch(\n\t\tbatchId: string,\n\t\tintervalMs = 5000,\n\t\tmaxWaitMs = 24 * 60 * 60 * 1000\n\t): Promise<OpenAI.Batches.Batch> {\n\t\tconst terminal = new Set(['completed', 'failed', 'expired', 'cancelled']);\n\t\tconst start = Date.now();\n\n\t\twhile (true) {\n\t\t\tconst batch = await this.client.batches.retrieve(batchId);\n\t\t\tconsole.log(\n\t\t\t\t`pollBatch: ${batchId} status=${batch.status} elapsed=${Math.round((Date.now() - start) / 1000)}s`\n\t\t\t);\n\t\t\tif (terminal.has(batch.status)) return batch;\n\n\t\t\tif (Date.now() - start > maxWaitMs) {\n\t\t\t\tthrow new Error(`Batch ${batchId} did not finish within ${maxWaitMs}ms (status: ${batch.status})`);\n\t\t\t}\n\n\t\t\tawait new Promise(resolve => setTimeout(resolve, intervalMs));\n\t\t}\n\t}\n\n\tprivate async readJsonlFile(fileId: string | null | undefined): Promise<Map<string, any>> {\n\t\tconst result = new Map<string, any>();\n\t\tif (!fileId) return result;\n\n\t\tconst fileResponse = await this.client.files.content(fileId);\n\t\tconst text = await fileResponse.text();\n\n\t\tfor (const line of text.split('\\n').filter(Boolean)) {\n\t\t\tconst record = JSON.parse(line);\n\t\t\tresult.set(record.custom_id, record);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// Checks whether ar/az/tr came back empty in any sense the model might produce:\n\t// missing entirely (null/undefined), an empty array, or an array whose entries\n\t// are just empty/whitespace strings.\n\tprivate isEmptyValue(values: string[] | null | undefined): boolean {\n\t\tif (!values || values.length === 0) return true;\n\t\treturn values.every(v => typeof v !== 'string' || !v.trim());\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"osrm.js","sourceRoot":"/","sources":["libraries/map/providers/osrm.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tICoordinate,\n\tIDistanceInfo,\n\tIMapService,\n\tIRouteMatrixDTO,\n\tIWaypointDistanceInfo,\n} from '../interfaces/IMapService';\nimport { Zone, ZoneExtraTimeModel, ZoneModel } from '../../mongo/models';\nimport { SoftDeleteModel } from '../../mongo/plugins/soft-delete-plugin';\nimport dayjs from 'dayjs';\nimport { WeekDay } from '../../../utilities/enum';\nimport { DocumentType } from '@typegoose/typegoose';\n\nexport class OsrmMapService implements IMapService {\n\tprivate zoneModel: typeof ZoneModel & SoftDeleteModel<Zone>;\n\tprivate zoneExtraTimeModel: typeof ZoneExtraTimeModel;\n\tprivate readonly DEFAULT_EXTRA_TIME = 0;\n\tprivate readonly _url = 'https://api-v2-development.lyxa.ai/distance';\n\n\tconstructor() {\n\t\tthis.zoneModel = ZoneModel as typeof ZoneModel & SoftDeleteModel<Zone>;\n\t\tthis.zoneExtraTimeModel = ZoneExtraTimeModel as typeof ZoneExtraTimeModel;\n\t}\n\n\tasync getDistanceInfo(origin: ICoordinate, destination: ICoordinate): Promise<IDistanceInfo> {\n\t\tconst profile = 'driving';\n\t\tconst originStr = `${origin.longitude},${origin.latitude}`;\n\t\tconst destinationStr = `${destination.longitude},${destination.latitude}`;\n\t\tconst url = `${this._url}/route/v1/${profile}/${originStr};${destinationStr}?overview=false`;\n\n\t\tconst resp = await fetch(url);\n\t\tif (!resp.ok) throw new Error(`OSRM request failed with status ${resp.status}`);\n\n\t\tconst data: any = await resp.json();\n\t\tif (data.code !== 'Ok' || !data.routes || !data.routes.length) {\n\t\t\tthrow new Error('OSRM route request failed');\n\t\t}\n\n\t\tconst route = data.routes[0];\n\t\treturn {\n\t\t\tdistance: { value: route.distance, text: `${(route.distance / 1000).toFixed(2)} km` },\n\t\t\tduration: { value: route.duration, text: `${Math.ceil(route.duration / 60)} mins` },\n\t\t};\n\t}\n\n\tasync getDistanceMatrix(origins: ICoordinate[], destinations: ICoordinate[]): Promise<IRouteMatrixDTO[]> {\n\t\tconst allCoords = [...origins, ...destinations];\n\t\tconst coordString = allCoords.map(({ longitude, latitude }) => `${longitude},${latitude}`).join(';');\n\t\tconst originIndices = origins.map((_, idx) => idx).join(';');\n\t\tconst destIndices = destinations.map((_, idx) => origins.length + idx).join(';');\n\n\t\tconst url = `${this._url}/table/v1/bike/${coordString}?sources=${originIndices}&destinations=${destIndices}&annotations=distance,duration`;\n\n\t\tconst resp = await fetch(url);\n\t\tif (!resp.ok) throw new Error(`OSRM table request failed with status ${resp.status}`);\n\n\t\tconst data: any = await resp.json();\n\t\tif (data.code !== 'Ok' || !data.durations) throw new Error('OSRM table request failed');\n\n\t\tconst durations: number[][] = data.durations;\n\t\tconst distances: number[][] = data.distances;\n\n\t\tconst zones = await this.findZonesByPoints(origins);\n\t\tconst extraTimes = await this.getExtraTimeForZones(zones);\n\n\t\tconst result: IRouteMatrixDTO[] = [];\n\n\t\torigins.forEach((_, i) => {\n\t\t\tdestinations.forEach((_, j) => {\n\t\t\t\tconst dur = durations[i][j] + (extraTimes[j] || this.DEFAULT_EXTRA_TIME);\n\t\t\t\tconst dist = distances.length ? distances[i][j] : 0;\n\n\t\t\t\tresult.push({\n\t\t\t\t\tdistance: { value: dist, text: distances.length ? `${(dist / 1000).toFixed(2)} km` : 'N/A' },\n\t\t\t\t\tduration: { value: dur, text: `${Math.ceil(dur / 60)} mins` },\n\t\t\t\t\tcondition: 'OK',\n\t\t\t\t\toriginIndex: i,\n\t\t\t\t\tdestinationIndex: j,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tasync getWaypointsDistanceInfo(\n\t\torigin: ICoordinate,\n\t\tdestination: ICoordinate,\n\t\twaypoints: ICoordinate[]\n\t): Promise<IWaypointDistanceInfo> {\n\t\tconst profile = 'driving';\n\t\tconst coordsArr = [origin, ...waypoints, destination];\n\t\tconst coordsStr = coordsArr.map(({ longitude, latitude }) => `${longitude},${latitude}`).join(';');\n\t\tconst url = `${this._url}/route/v1/${profile}/${coordsStr}?overview=full&steps=true&geometries=geojson`;\n\n\t\tconst resp = await fetch(url);\n\t\tif (!resp.ok) throw new Error(`OSRM request failed with status ${resp.status}`);\n\n\t\tconst data: any = await resp.json();\n\t\tif (data.code !== 'Ok' || !data.routes || !data.routes.length) {\n\t\t\tthrow new Error('OSRM route request failed');\n\t\t}\n\n\t\tconst route = data.routes[0];\n\t\tconst overviewPolyline = route.geometry?.coordinates || [];\n\t\tconst legs = (route.legs ?? []).map((leg: any) => ({\n\t\t\tdistance: { value: leg.distance, text: `${(leg.distance / 1000).toFixed(2)} km` },\n\t\t\tduration: { value: leg.duration, text: `${Math.ceil(leg.duration / 60)} mins` },\n\t\t\toverviewPolyline: leg.steps?.flatMap((step: any) => step.geometry?.coordinates || []) || [],\n\t\t}));\n\n\t\treturn {\n\t\t\tdistance: { value: route.distance, text: `${(route.distance / 1000).toFixed(2)} km` },\n\t\t\tduration: { value: route.duration, text: `${Math.ceil(route.duration / 60)} mins` },\n\t\t\toverviewPolyline,\n\t\t\tlegs,\n\t\t};\n\t}\n\n\tprivate async getExtraTimeForZones(zones: Array<DocumentType<Zone> | null>): Promise<number[]> {\n\t\tconst now = new Date();\n\t\tconst today = dayjs(now).day() as WeekDay;\n\t\tconst currentTime = dayjs(now).format('HH:mm');\n\n\t\tconst validZones = zones.filter((z): z is DocumentType<Zone> => z !== null);\n\t\tconst zoneIds = validZones.map(zone => zone._id);\n\n\t\tif (zoneIds.length === 0) return zones.map(_ => this.DEFAULT_EXTRA_TIME);\n\n\t\tconst applicableSlots = await this.zoneExtraTimeModel\n\t\t\t.find({\n\t\t\t\tzone: { $in: zoneIds },\n\t\t\t\tday: today,\n\t\t\t\tisActive: true,\n\t\t\t\tstart: { $lte: currentTime },\n\t\t\t\tend: { $gte: currentTime },\n\t\t\t})\n\t\t\t.lean()\n\t\t\t.exec();\n\n\t\tconst extraTimeMap = new Map<string, number>();\n\t\tfor (const slot of applicableSlots) {\n\t\t\textraTimeMap.set(slot.zone.toString(), slot.extraTimeInSeconds);\n\t\t}\n\n\t\treturn zones.map(zone => {\n\t\t\tif (!zone) return this.DEFAULT_EXTRA_TIME;\n\t\t\treturn extraTimeMap.get(zone._id.toString()) ?? this.DEFAULT_EXTRA_TIME;\n\t\t});\n\t}\n\tprivate async findZonesByPoints(points: ICoordinate[]): Promise<(DocumentType<Zone> | null)[]> {\n\t\tif (!points.length) return [];\n\t\treturn Promise.all(\n\t\t\tpoints.map(point =>\n\t\t\t\tthis.zoneModel\n\t\t\t\t\t.findOne({\n\t\t\t\t\t\tgeometry: {\n\t\t\t\t\t\t\t$geoIntersects: {\n\t\t\t\t\t\t\t\t$geometry: { type: 'Point', coordinates: [point.longitude, point.latitude] },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.exec()\n\t\t\t)\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"osrm.js","sourceRoot":"/","sources":["libraries/map/providers/osrm.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tICoordinate,\n\tIDistanceInfo,\n\tIMapService,\n\tIRouteMatrixDTO,\n\tIWaypointDistanceInfo,\n} from '../interfaces/IMapService';\nimport { Zone, ZoneExtraTimeModel, ZoneModel } from '../../mongo/models';\nimport { SoftDeleteModel } from '../../mongo/plugins/soft-delete-plugin';\nimport dayjs from 'dayjs';\nimport { WeekDay } from '../../../utilities/enum';\nimport { DocumentType } from '@typegoose/typegoose';\n\nexport class OsrmMapService implements IMapService {\n\tprivate zoneModel: typeof ZoneModel & SoftDeleteModel<Zone>;\n\tprivate zoneExtraTimeModel: typeof ZoneExtraTimeModel;\n\tprivate readonly DEFAULT_EXTRA_TIME = 0;\n\tprivate readonly _url = 'https://api-v2-development.lyxa.ai/distance';\n\n\tconstructor() {\n\t\tthis.zoneModel = ZoneModel as typeof ZoneModel & SoftDeleteModel<Zone>;\n\t\tthis.zoneExtraTimeModel = ZoneExtraTimeModel as typeof ZoneExtraTimeModel;\n\t}\n\n\tasync getDistanceInfo(origin: ICoordinate, destination: ICoordinate): Promise<IDistanceInfo> {\n\t\tconst profile = 'driving';\n\t\tconst originStr = `${origin.longitude},${origin.latitude}`;\n\t\tconst destinationStr = `${destination.longitude},${destination.latitude}`;\n\t\tconst url = `${this._url}/route/v1/${profile}/${originStr};${destinationStr}?overview=false`;\n\n\t\tconst resp = await fetch(url);\n\t\tif (!resp.ok) throw new Error(`OSRM request failed with status ${resp.status}`);\n\n\t\tconst data = await resp.json();\n\t\tif (data.code !== 'Ok' || !data.routes || !data.routes.length) {\n\t\t\tthrow new Error('OSRM route request failed');\n\t\t}\n\n\t\tconst route = data.routes[0];\n\t\treturn {\n\t\t\tdistance: { value: route.distance, text: `${(route.distance / 1000).toFixed(2)} km` },\n\t\t\tduration: { value: route.duration, text: `${Math.ceil(route.duration / 60)} mins` },\n\t\t};\n\t}\n\n\tasync getDistanceMatrix(origins: ICoordinate[], destinations: ICoordinate[]): Promise<IRouteMatrixDTO[]> {\n\t\tconst allCoords = [...origins, ...destinations];\n\t\tconst coordString = allCoords.map(({ longitude, latitude }) => `${longitude},${latitude}`).join(';');\n\t\tconst originIndices = origins.map((_, idx) => idx).join(';');\n\t\tconst destIndices = destinations.map((_, idx) => origins.length + idx).join(';');\n\n\t\tconst url = `${this._url}/table/v1/bike/${coordString}?sources=${originIndices}&destinations=${destIndices}&annotations=distance,duration`;\n\n\t\tconst resp = await fetch(url);\n\t\tif (!resp.ok) throw new Error(`OSRM table request failed with status ${resp.status}`);\n\n\t\tconst data = await resp.json();\n\t\tif (data.code !== 'Ok' || !data.durations) throw new Error('OSRM table request failed');\n\n\t\tconst durations: number[][] = data.durations;\n\t\tconst distances: number[][] = data.distances;\n\n\t\tconst zones = await this.findZonesByPoints(origins);\n\t\tconst extraTimes = await this.getExtraTimeForZones(zones);\n\n\t\tconst result: IRouteMatrixDTO[] = [];\n\n\t\torigins.forEach((_, i) => {\n\t\t\tdestinations.forEach((_, j) => {\n\t\t\t\tconst dur = durations[i][j] + (extraTimes[j] || this.DEFAULT_EXTRA_TIME);\n\t\t\t\tconst dist = distances.length ? distances[i][j] : 0;\n\n\t\t\t\tresult.push({\n\t\t\t\t\tdistance: { value: dist, text: distances.length ? `${(dist / 1000).toFixed(2)} km` : 'N/A' },\n\t\t\t\t\tduration: { value: dur, text: `${Math.ceil(dur / 60)} mins` },\n\t\t\t\t\tcondition: 'OK',\n\t\t\t\t\toriginIndex: i,\n\t\t\t\t\tdestinationIndex: j,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tasync getWaypointsDistanceInfo(\n\t\torigin: ICoordinate,\n\t\tdestination: ICoordinate,\n\t\twaypoints: ICoordinate[]\n\t): Promise<IWaypointDistanceInfo> {\n\t\tconst profile = 'driving';\n\t\tconst coordsArr = [origin, ...waypoints, destination];\n\t\tconst coordsStr = coordsArr.map(({ longitude, latitude }) => `${longitude},${latitude}`).join(';');\n\t\tconst url = `${this._url}/route/v1/${profile}/${coordsStr}?overview=full&steps=true&geometries=geojson`;\n\n\t\tconst resp = await fetch(url);\n\t\tif (!resp.ok) throw new Error(`OSRM request failed with status ${resp.status}`);\n\n\t\tconst data = await resp.json();\n\t\tif (data.code !== 'Ok' || !data.routes || !data.routes.length) {\n\t\t\tthrow new Error('OSRM route request failed');\n\t\t}\n\n\t\tconst route = data.routes[0];\n\t\tconst overviewPolyline = route.geometry?.coordinates || [];\n\t\tconst legs = (route.legs ?? []).map((leg: any) => ({\n\t\t\tdistance: { value: leg.distance, text: `${(leg.distance / 1000).toFixed(2)} km` },\n\t\t\tduration: { value: leg.duration, text: `${Math.ceil(leg.duration / 60)} mins` },\n\t\t\toverviewPolyline: leg.steps?.flatMap((step: any) => step.geometry?.coordinates || []) || [],\n\t\t}));\n\n\t\treturn {\n\t\t\tdistance: { value: route.distance, text: `${(route.distance / 1000).toFixed(2)} km` },\n\t\t\tduration: { value: route.duration, text: `${Math.ceil(route.duration / 60)} mins` },\n\t\t\toverviewPolyline,\n\t\t\tlegs,\n\t\t};\n\t}\n\n\tprivate async getExtraTimeForZones(zones: Array<DocumentType<Zone> | null>): Promise<number[]> {\n\t\tconst now = new Date();\n\t\tconst today = dayjs(now).day() as WeekDay;\n\t\tconst currentTime = dayjs(now).format('HH:mm');\n\n\t\tconst validZones = zones.filter((z): z is DocumentType<Zone> => z !== null);\n\t\tconst zoneIds = validZones.map(zone => zone._id);\n\n\t\tif (zoneIds.length === 0) return zones.map(_ => this.DEFAULT_EXTRA_TIME);\n\n\t\tconst applicableSlots = await this.zoneExtraTimeModel\n\t\t\t.find({\n\t\t\t\tzone: { $in: zoneIds },\n\t\t\t\tday: today,\n\t\t\t\tisActive: true,\n\t\t\t\tstart: { $lte: currentTime },\n\t\t\t\tend: { $gte: currentTime },\n\t\t\t})\n\t\t\t.lean()\n\t\t\t.exec();\n\n\t\tconst extraTimeMap = new Map<string, number>();\n\t\tfor (const slot of applicableSlots) {\n\t\t\textraTimeMap.set(slot.zone.toString(), slot.extraTimeInSeconds);\n\t\t}\n\n\t\treturn zones.map(zone => {\n\t\t\tif (!zone) return this.DEFAULT_EXTRA_TIME;\n\t\t\treturn extraTimeMap.get(zone._id.toString()) ?? this.DEFAULT_EXTRA_TIME;\n\t\t});\n\t}\n\tprivate async findZonesByPoints(points: ICoordinate[]): Promise<(DocumentType<Zone> | null)[]> {\n\t\tif (!points.length) return [];\n\t\treturn Promise.all(\n\t\t\tpoints.map(point =>\n\t\t\t\tthis.zoneModel\n\t\t\t\t\t.findOne({\n\t\t\t\t\t\tgeometry: {\n\t\t\t\t\t\t\t$geoIntersects: {\n\t\t\t\t\t\t\t\t$geometry: { type: 'Point', coordinates: [point.longitude, point.latitude] },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.exec()\n\t\t\t)\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Ref } from '@typegoose/typegoose';
|
|
2
|
+
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
3
|
+
import { BannerClickType, BannerLinkType, BannerUserType, Status, UserAppSectionItemType } from '../../../utilities/enum';
|
|
3
4
|
import { Shop } from './shop.model';
|
|
4
5
|
import { Product } from './product.model';
|
|
6
|
+
import { ServicePackage } from './service-package.model';
|
|
7
|
+
import { Zone } from './zone.model';
|
|
5
8
|
import { ListContainer } from './list-container.model';
|
|
6
9
|
import { UserAppSectionSetting } from '.';
|
|
7
|
-
import { ServicePackage } from './service-package.model';
|
|
8
|
-
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
9
|
-
import { Ref } from '@typegoose/typegoose';
|
|
10
10
|
export declare class Banner extends TimeStamps {
|
|
11
11
|
title: string;
|
|
12
12
|
image: string;
|
|
13
|
-
itemType:
|
|
13
|
+
itemType: UserAppSectionItemType;
|
|
14
14
|
status?: Status;
|
|
15
15
|
visibility?: BannerUserType;
|
|
16
16
|
zones?: Ref<Zone>[];
|
|
@@ -10,16 +10,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.Banner = void 0;
|
|
13
|
+
const typegoose_1 = require("@typegoose/typegoose");
|
|
14
|
+
const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
|
|
13
15
|
const enum_1 = require("../../../utilities/enum");
|
|
14
|
-
const zone_model_1 = require("./zone.model");
|
|
15
16
|
const shop_model_1 = require("./shop.model");
|
|
16
17
|
const product_model_1 = require("./product.model");
|
|
17
|
-
const
|
|
18
|
+
const service_package_model_1 = require("./service-package.model");
|
|
19
|
+
const zone_model_1 = require("./zone.model");
|
|
18
20
|
const list_container_model_1 = require("./list-container.model");
|
|
19
21
|
const _1 = require(".");
|
|
20
|
-
const
|
|
21
|
-
const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
|
|
22
|
-
const typegoose_1 = require("@typegoose/typegoose");
|
|
22
|
+
const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
|
|
23
23
|
let Banner = class Banner extends defaultClasses_1.TimeStamps {
|
|
24
24
|
title;
|
|
25
25
|
image;
|
|
@@ -48,7 +48,7 @@ __decorate([
|
|
|
48
48
|
__metadata("design:type", String)
|
|
49
49
|
], Banner.prototype, "image", void 0);
|
|
50
50
|
__decorate([
|
|
51
|
-
(0, typegoose_1.prop)({ required: true, type: String }),
|
|
51
|
+
(0, typegoose_1.prop)({ required: true, type: String, enum: enum_1.UserAppSectionItemType }),
|
|
52
52
|
__metadata("design:type", String)
|
|
53
53
|
], Banner.prototype, "itemType", void 0);
|
|
54
54
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.model.js","sourceRoot":"/","sources":["libraries/mongo/models/banner.model.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"banner.model.js","sourceRoot":"/","sources":["libraries/mongo/models/banner.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport {\n\tBannerClickType,\n\tBannerLinkType,\n\tBannerUserType,\n\tStatus,\n\tUserAppSectionItemType,\n} from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { Product } from './product.model';\nimport { ServicePackage } from './service-package.model';\n\nimport { Zone } from './zone.model';\nimport { ListContainer } from './list-container.model';\nimport { BannerModel, UserAppSectionSetting } from '.';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sorting-order.hooks';\n\n@modelOptions({ schemaOptions: { collection: 'banners' } })\n@pre<Banner>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, BannerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<Banner>('findOneAndUpdate', async function (this: Query<any, Banner>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, BannerModel, ['itemType']);\n\n\tnext();\n})\n@index({ title: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\nexport class Banner extends TimeStamps {\n\t@prop({ required: true, type: String, trim: true, maxlength: 50 })\n\tpublic title!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic image!: string;\n\n\t@prop({ required: true, type: String, enum: UserAppSectionItemType })\n\tpublic itemType!: UserAppSectionItemType;\n \n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String, enum: BannerUserType, default: BannerUserType.ALL })\n\tpublic visibility?: BannerUserType;\n\n\t@prop({ ref: () => Zone, default: [] })\n\tpublic zones?: Ref<Zone>[];\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isClickable?: boolean;\n \n\t@prop({ type: String, enum: BannerClickType })\n\tpublic clickType?: BannerClickType;\n\n\t@prop({ type: String, enum: BannerLinkType })\n\tpublic linkType?: BannerLinkType;\n \n\t@prop({ type: String, trim: true })\n\tpublic link?: string;\n\n\t@prop({ ref: () => Shop })\n\tpublic shop?: Ref<Shop>;\n\n\t@prop({ ref: () => Product })\n\tpublic product?: Ref<Product>;\n\n\t@prop({ ref: () => ServicePackage })\n\tpublic servicePackage?: Ref<ServicePackage>;\n\n\t@prop({ ref: () => ListContainer })\n\tpublic listContainer?: Ref<ListContainer>;\n\n\t@prop({ ref: () => UserAppSectionSetting })\n\tpublic section?: Ref<UserAppSectionSetting>;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { Ref } from '@typegoose/typegoose';
|
|
|
2
2
|
import { Shop } from './shop.model';
|
|
3
3
|
import { Parent } from './parent.model';
|
|
4
4
|
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
5
|
-
import { CartStatus, CartType, ChargeType, PaymentPreference } from '../../../utilities/enum';
|
|
5
|
+
import { CartStatus, CartType, ChargeType, ItemType, PaymentPreference } from '../../../utilities/enum';
|
|
6
6
|
import { Address } from './shared/address.model';
|
|
7
7
|
import { User } from './user.model';
|
|
8
8
|
import { LineItem } from './line-item.model';
|
|
@@ -11,7 +11,7 @@ export declare class ShopSnap {
|
|
|
11
11
|
name: string;
|
|
12
12
|
chargeType: ChargeType;
|
|
13
13
|
charge: Charge;
|
|
14
|
-
itemType:
|
|
14
|
+
itemType: ItemType;
|
|
15
15
|
address: Address;
|
|
16
16
|
logo?: string;
|
|
17
17
|
isShopDelivery?: boolean;
|
|
@@ -45,7 +45,7 @@ __decorate([
|
|
|
45
45
|
__metadata("design:type", charge_model_1.Charge)
|
|
46
46
|
], ShopSnap.prototype, "charge", void 0);
|
|
47
47
|
__decorate([
|
|
48
|
-
(0, typegoose_1.prop)({ required: true, type: String }),
|
|
48
|
+
(0, typegoose_1.prop)({ required: true, type: String, enum: enum_1.ItemType }),
|
|
49
49
|
__metadata("design:type", String)
|
|
50
50
|
], ShopSnap.prototype, "itemType", void 0);
|
|
51
51
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart.model.js","sourceRoot":"/","sources":["libraries/mongo/models/cart.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAqF;AACrF,6CAAoC;AACpC,iDAAwC;AACxC,4EAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"cart.model.js","sourceRoot":"/","sources":["libraries/mongo/models/cart.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAqF;AACrF,6CAAoC;AACpC,iDAAwC;AACxC,4EAAqE;AACrE,kDAAwG;AACxG,0DAAiD;AACjD,6CAAoC;AACpC,uDAA6C;AAC7C,kEAAwE;AACxE,wBAA8B;AAC9B,0DAAiD;AAEjD,MAAa,QAAQ;IAEb,IAAI,CAAU;IAGd,UAAU,CAAc;IAGxB,MAAM,CAAU;IAGhB,QAAQ,CAAY;IAGpB,OAAO,CAAW;IAGlB,IAAI,CAAU;IAGd,cAAc,CAAW;IAGzB,sBAAsB,CAAU;CACvC;AAxBD,4BAwBC;AAtBO;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAU,EAAE,OAAO,EAAE,iBAAU,CAAC,MAAM,EAAE,CAAC;;4CACtD;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAM,EAAE,CAAC;8BACvB,qBAAM;wCAAC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;0CAC5B;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAO,EAAE,CAAC;8BACvB,uBAAO;yCAAC;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCACF;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;gDACR;AAGzB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;wDACG;AA0BjC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,2BAAU;IAE5B,MAAM,CAAU;IAIhB,QAAQ,CAAY;IAGpB,KAAK,CAAU;IAGf,YAAY,CAAU;IAGtB,YAAY,CAAU;IAGtB,IAAI,CAAa;IAIjB,MAAM,CAAe;IAIrB,IAAI,CAAa;IAGjB,QAAQ,CAAY;IAGpB,YAAY,CAAW;IAGvB,iBAAiB,CAAqB;IAGtC,qBAAqB,CAAU;IAG/B,8BAA8B,CAAU;IAGxC,YAAY,CAAW;IAGvB,YAAY,CAAW;IAGvB,MAAM,CAAc;IAGpB,UAAU,CAAU;IAQpB,SAAS,CAAmB;CACnC,CAAA;AA9DY,oBAAI;AAET;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;oCAC3B;AAIhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,OAAO,EAAE,eAAQ,CAAC,OAAO,EAAE,CAAC;;sCACvC;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;;mCACf;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;0CACN;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;0CACN;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;kCAClB;AAIjB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAM,EAAE,CAAC;;oCACA;AAIrB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;kCACF;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8BACP,QAAQ;sCAAC;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0CACV;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAiB,EAAE,CAAC;;+CACH;AAGtC;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;mDACJ;AAG/B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;4DACK;AAGxC;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0CACV;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;0CACV;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,iBAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCAC1D;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wCACR;AAQpB;IALN,IAAA,gBAAI,EAAC;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,0BAAQ;QACnB,YAAY,EAAE,MAAM;QACpB,UAAU,EAAE,KAAK;KACjB,CAAC;;uCACiC;eA7DvB,IAAI;IAvBhB,IAAA,wBAAY,EAAC;QACb,aAAa,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAChG,OAAO,EAAE,EAAE,UAAU,EAAE,oBAAQ,CAAC,KAAK,EAAE;KACvC,CAAC;IACD,IAAA,iBAAK,EAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClB,IAAA,iBAAK,EAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClB,IAAA,iBAAK,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACpB,IAAA,iBAAK,EACL,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAC/B;QACC,MAAM,EAAE,IAAI;QACZ,uBAAuB,EAAE;YACxB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAU,CAAC,MAAM,EAAE,iBAAU,CAAC,MAAM,CAAC,EAAE;YACvD,SAAS,EAAE,IAAI;SACf;KACD,CACD;IACA,IAAA,eAAG,EAAO,MAAM,EAAE,KAAK,WAAW,IAAI;QAEtC,MAAM,0CAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAS,EAAE,QAAQ,CAAC,CAAC;QAE/D,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,IAAI,CA8DhB","sourcesContent":["import { prop, Ref, index, modelOptions, Severity, pre } from '@typegoose/typegoose';\nimport { Shop } from './shop.model';\nimport { Parent } from './parent.model';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CartStatus, CartType, ChargeType, ItemType, PaymentPreference } from '../../../utilities/enum';\nimport { Address } from './shared/address.model';\nimport { User } from './user.model';\nimport { LineItem } from './line-item.model';\nimport { handlePreSaveForUniqueId } from '../utilities/unique-id.hooks';\nimport { CartModel } from '.';\nimport { Charge } from './embedded/charge.model';\n\nexport class ShopSnap {\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String, enum: ChargeType, default: ChargeType.CUSTOM })\n\tpublic chargeType!: ChargeType;\n\n\t@prop({ required: true, type: Charge })\n\tpublic charge!: Charge;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: Address })\n\tpublic address!: Address;\n\n\t@prop({ type: String })\n\tpublic logo?: string;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isShopDelivery?: boolean;\n\n\t@prop({ type: Number, default: 10 })\n\tpublic defaultPreparationTime?: number;\n}\n\n@modelOptions({\n\tschemaOptions: { collection: 'carts', toJSON: { virtuals: true }, toObject: { virtuals: true } },\n\toptions: { allowMixed: Severity.ALLOW },\n})\n@index({ user: 1 })\n@index({ shop: 1 })\n@index({ status: 1 })\n@index(\n\t{ user: 1, shop: 1, vendor: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\tstatus: { $in: [CartStatus.ACTIVE, CartStatus.LOCKED] },\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\n@pre<Cart>('save', async function (next) {\n\t// Generate unique id if not exists\n\tawait handlePreSaveForUniqueId.call(this, CartModel, 'cartId');\n\n\tnext();\n})\nexport class Cart extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic cartId?: string;\n\n\t// this should be inside abstract cart\n\t@prop({ type: String, enum: CartType, default: CartType.REGULAR })\n\tpublic cartType?: CartType;\n\n\t@prop({ trim: true, maxlength: 100 })\n\tpublic title?: string;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic exchangeRate?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic cashbackRate?: number;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user!: Ref<User>;\n\n\t// parent is required for regular cart but optional for service cart\n\t@prop({ ref: () => Parent })\n\tpublic parent?: Ref<Parent>;\n\n\t// shop is required for regular cart but optional for service cart\n\t@prop({ ref: () => Shop })\n\tpublic shop?: Ref<Shop>;\n\n\t@prop({ type: ShopSnap })\n\tpublic shopSnap?: ShopSnap;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isGroupOrder?: boolean;\n\n\t@prop({ type: String, enum: PaymentPreference })\n\tpublic paymentPreference?: PaymentPreference;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic spendingLimitForGuest?: number;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic secondarySpendingLimitForGuest?: number;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic stockChanged?: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic priceChanged?: boolean;\n\n\t@prop({ enum: CartStatus, type: String, default: CartStatus.ACTIVE, required: true })\n\tpublic status!: CartStatus;\n\n\t@prop({ type: String, trim: true })\n\tpublic couponCode?: string;\n\n\t//todo: we need to keep embedded line items and remove line item model\n\t@prop({\n\t\tref: () => LineItem,\n\t\tforeignField: 'cart',\n\t\tlocalField: '_id',\n\t})\n\tpublic lineItems?: Ref<LineItem>[];\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Ref } from '@typegoose/typegoose';
|
|
2
2
|
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
3
|
-
import { Status } from '../../../utilities/enum';
|
|
3
|
+
import { ItemType, Status } from '../../../utilities/enum';
|
|
4
4
|
export declare class Category extends TimeStamps {
|
|
5
5
|
name: string;
|
|
6
6
|
nameNormalized?: string;
|
|
7
7
|
image?: string;
|
|
8
|
-
itemType:
|
|
8
|
+
itemType: ItemType;
|
|
9
9
|
parentCategory?: Ref<Category>;
|
|
10
10
|
status?: Status;
|
|
11
11
|
note?: string;
|
|
@@ -37,7 +37,7 @@ __decorate([
|
|
|
37
37
|
__metadata("design:type", String)
|
|
38
38
|
], Category.prototype, "image", void 0);
|
|
39
39
|
__decorate([
|
|
40
|
-
(0, typegoose_1.prop)({ required: true, type: String }),
|
|
40
|
+
(0, typegoose_1.prop)({ required: true, type: String, enum: enum_1.ItemType }),
|
|
41
41
|
__metadata("design:type", String)
|
|
42
42
|
], Category.prototype, "itemType", void 0);
|
|
43
43
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.model.js","sourceRoot":"/","sources":["libraries/mongo/models/category.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA8E;AAC9E,4EAAqE;AACrE,kDAA2D;AAC3D,8EAAyE;AAgBlE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,cAAc,CAAU;IAGxB,KAAK,CAAU;IAGf,QAAQ,
|
|
1
|
+
{"version":3,"file":"category.model.js","sourceRoot":"/","sources":["libraries/mongo/models/category.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA8E;AAC9E,4EAAqE;AACrE,kDAA2D;AAC3D,8EAAyE;AAgBlE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,cAAc,CAAU;IAGxB,KAAK,CAAU;IAGf,QAAQ,CAAY;IAGpB,cAAc,CAAiB;IAG/B,MAAM,CAAU;IAGhB,IAAI,CAAU;CACrB,CAAA;AArBY,4BAAQ;AAEb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;;sCAC7C;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;gDACpC;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;0CAC5B;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;;gDACQ;AAG/B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;wCACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;;sCAClB;mBApBT,QAAQ;IAdpB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7D,IAAA,iBAAK,EACL,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAClC;QACC,MAAM,EAAE,IAAI;QACZ,uBAAuB,EAAE;YACxB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,eAAQ,CAAC,OAAO,EAAE,eAAQ,CAAC,GAAG,CAAC,EAAE;YACnD,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SACf;KACD,CACD;IACA,IAAA,iBAAK,EAAC,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;IAC9E,IAAA,kBAAM,EAAC,6CAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;GACnC,QAAQ,CAqBpB","sourcesContent":["import { index, modelOptions, plugin, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ItemType, Status } from '../../../utilities/enum';\nimport { normalizeFieldPlugin } from '../plugins/normalize-field.plugin';\n\n@modelOptions({ schemaOptions: { collection: 'categories' } })\n@index(\n\t{ nameNormalized: 1, itemType: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\titemType: { $in: [ItemType.GROCERY, ItemType.PET] },\n\t\t\tparentCategory: null,\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\n@index({ nameNormalized: 1 }, { partialFilterExpression: { deletedAt: null } })\n@plugin(normalizeFieldPlugin, { field: 'name' })\nexport class Category extends TimeStamps {\n\t@prop({ required: true, type: String, trim: true, maxlength: 50 })\n\tpublic name!: string;\n\n\t@prop({ type: String, trim: true, lowercase: true, select: false })\n\tpublic nameNormalized?: string;\n\n\t@prop({ type: String })\n\tpublic image?: string;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ ref: () => Category })\n\tpublic parentCategory?: Ref<Category>;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String, maxlength: 250 })\n\tpublic note?: string;\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
2
|
+
import { ItemType } from '../../../utilities/enum';
|
|
2
3
|
export declare class DealSetting extends TimeStamps {
|
|
3
|
-
itemType?:
|
|
4
|
+
itemType?: ItemType;
|
|
4
5
|
percentageBundles?: number[];
|
|
5
6
|
isDiscount?: boolean;
|
|
6
7
|
isBuy1Get1?: boolean;
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.DealSetting = void 0;
|
|
13
13
|
const typegoose_1 = require("@typegoose/typegoose");
|
|
14
14
|
const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
|
|
15
|
+
const enum_1 = require("../../../utilities/enum");
|
|
15
16
|
let DealSetting = class DealSetting extends defaultClasses_1.TimeStamps {
|
|
16
17
|
itemType;
|
|
17
18
|
percentageBundles;
|
|
@@ -22,7 +23,7 @@ let DealSetting = class DealSetting extends defaultClasses_1.TimeStamps {
|
|
|
22
23
|
};
|
|
23
24
|
exports.DealSetting = DealSetting;
|
|
24
25
|
__decorate([
|
|
25
|
-
(0, typegoose_1.prop)({ required: true, type: String }),
|
|
26
|
+
(0, typegoose_1.prop)({ required: true, type: String, enum: enum_1.ItemType }),
|
|
26
27
|
__metadata("design:type", String)
|
|
27
28
|
], DealSetting.prototype, "itemType", void 0);
|
|
28
29
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deal-setting.model.js","sourceRoot":"/","sources":["libraries/mongo/models/deal-setting.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0D;AAC1D,4EAAqE;
|
|
1
|
+
{"version":3,"file":"deal-setting.model.js","sourceRoot":"/","sources":["libraries/mongo/models/deal-setting.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0D;AAC1D,4EAAqE;AACrE,kDAAmD;AAG5C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,2BAAU;IAEnC,QAAQ,CAAY;IAGpB,iBAAiB,CAAY;IAG7B,UAAU,CAAW;IAGrB,UAAU,CAAW;IAGrB,cAAc,CAAW;IAGzB,gBAAgB,CAAW;CAClC,CAAA;AAlBY,kCAAW;AAEhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;6CAC5B;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;sDACF;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;+CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;+CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;mDACP;AAGzB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;qDACL;sBAjBtB,WAAW;IADvB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC;GACnD,WAAW,CAkBvB","sourcesContent":["import { modelOptions, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ItemType } from '../../../utilities/enum';\n\n@modelOptions({ schemaOptions: { collection: 'dealSettings' } })\nexport class DealSetting extends TimeStamps {\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType?: ItemType;\n\n\t@prop({ type: [Number], default: [] })\n\tpublic percentageBundles?: number[];\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isDiscount?: boolean;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isBuy1Get1?: boolean;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isFreeDelivery?: boolean;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isPunchMarketing?: boolean;\n}\n"]}
|