@lyxa.ai/core 1.3.129 → 1.3.130
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/types/README.md
CHANGED
package/dist/types/package.json
CHANGED
|
@@ -4,6 +4,7 @@ import { MongoStreamsBatchProcessShopsDTO } from '../libraries/event/events/mong
|
|
|
4
4
|
import { BulkUpdateShopsZoneStatusDTO } from '../libraries/event/events/bulk-update-zone-status-in-shops-event';
|
|
5
5
|
import { SynchronizeAllProductsProductMarketingInfoDTO } from '../libraries/event/events/sync-all-products-product-marketing-info-event';
|
|
6
6
|
import { SynchronizeAllShopsAvgPreparationTimeDTO } from '../libraries/event/events/sync-avg-prep-time-in-all-shops-event';
|
|
7
|
+
import { SyncSingleShopCacheDTO } from '../libraries/event/events/sync-single-shop-in-cache-event';
|
|
7
8
|
export declare function getChangedFields<T extends Record<string, any>>(oldDoc: T, newDoc: T, payload?: Partial<T>): Record<keyof T, {
|
|
8
9
|
old: any;
|
|
9
10
|
new: any;
|
|
@@ -31,3 +32,4 @@ export declare function publishUpdateShopsSearchFieldsBulkProcessEvent(payload:
|
|
|
31
32
|
export declare function publishBulkUpdateShopsZoneStatusProcessEvent(payload: BulkUpdateShopsZoneStatusDTO): Promise<void>;
|
|
32
33
|
export declare function publishAllProductsProductMarketingInfoProcessEvent(payload: SynchronizeAllProductsProductMarketingInfoDTO): Promise<void>;
|
|
33
34
|
export declare function publishAllShopsAvgPreperationTimeSyncProcessEvent(payload: SynchronizeAllShopsAvgPreparationTimeDTO): Promise<void>;
|
|
35
|
+
export declare function publishSyncSingleShopInCacheProcessEvent(payload: SyncSingleShopCacheDTO): Promise<void>;
|
|
@@ -10,6 +10,7 @@ exports.publishUpdateShopsSearchFieldsBulkProcessEvent = publishUpdateShopsSearc
|
|
|
10
10
|
exports.publishBulkUpdateShopsZoneStatusProcessEvent = publishBulkUpdateShopsZoneStatusProcessEvent;
|
|
11
11
|
exports.publishAllProductsProductMarketingInfoProcessEvent = publishAllProductsProductMarketingInfoProcessEvent;
|
|
12
12
|
exports.publishAllShopsAvgPreperationTimeSyncProcessEvent = publishAllShopsAvgPreperationTimeSyncProcessEvent;
|
|
13
|
+
exports.publishSyncSingleShopInCacheProcessEvent = publishSyncSingleShopInCacheProcessEvent;
|
|
13
14
|
const event_1 = require("../libraries/event");
|
|
14
15
|
const mongo_stream_changes_batch_process_shops_event_1 = require("../libraries/event/events/mongo-stream-changes-batch-process-shops-event");
|
|
15
16
|
const admin_logs_event_1 = require("../libraries/event/events/admin-logs-event");
|
|
@@ -18,6 +19,7 @@ const bulk_update_shops_search_fields_batch_process_event_1 = require("../librar
|
|
|
18
19
|
const bulk_update_zone_status_in_shops_event_1 = require("../libraries/event/events/bulk-update-zone-status-in-shops-event");
|
|
19
20
|
const sync_all_products_product_marketing_info_event_1 = require("../libraries/event/events/sync-all-products-product-marketing-info-event");
|
|
20
21
|
const sync_avg_prep_time_in_all_shops_event_1 = require("../libraries/event/events/sync-avg-prep-time-in-all-shops-event");
|
|
22
|
+
const sync_single_shop_in_cache_event_1 = require("../libraries/event/events/sync-single-shop-in-cache-event");
|
|
21
23
|
function getChangedFields(oldDoc, newDoc, payload) {
|
|
22
24
|
const changes = {};
|
|
23
25
|
const oldObj = typeof oldDoc.toObject === 'function' ? oldDoc.toObject() : oldDoc;
|
|
@@ -102,4 +104,8 @@ async function publishAllShopsAvgPreperationTimeSyncProcessEvent(payload) {
|
|
|
102
104
|
const SyncAllShopsAvgPreperationTimeSyncProcessEvent = new sync_avg_prep_time_in_all_shops_event_1.SynchronizeAllShopsAvgPreparationTimeEvent({});
|
|
103
105
|
await (0, event_1.publishEvent)(SyncAllShopsAvgPreperationTimeSyncProcessEvent);
|
|
104
106
|
}
|
|
107
|
+
async function publishSyncSingleShopInCacheProcessEvent(payload) {
|
|
108
|
+
const syncSingleShopCacheSyncEvent = new sync_single_shop_in_cache_event_1.SyncSingleShopInCacheEvent(payload);
|
|
109
|
+
await (0, event_1.publishEvent)(syncSingleShopCacheSyncEvent);
|
|
110
|
+
}
|
|
105
111
|
//# sourceMappingURL=events-common-methods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-common-methods.js","sourceRoot":"/","sources":["utilities/events-common-methods.ts"],"names":[],"mappings":"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","sourcesContent":["import { mongoose } from '@typegoose/typegoose';\nimport { publishEvent } from '../libraries/event';\nimport { AdminLogsUpdatedFieldsType } from './enum';\nimport { BaseEvent } from '../libraries/event/BaseEvent';\nimport {\n\tMongoStreamsBatchProcessShopsDTO,\n\tMongoStreamsBatchProcessShopsEvent,\n} from '../libraries/event/events/mongo-stream-changes-batch-process-shops-event';\nimport { AdminActivityLogsEvent } from '../libraries/event/events/admin-logs-event';\nimport { ShopActiveTimingsBatchProcessEvent } from '../libraries/event/events/shop-active-timings-batch-process-event';\nimport { BulkUpdateShopsSearchFieldsBatchProcessEvent } from '../libraries/event/events/bulk-update-shops-search-fields-batch-process-event';\nimport {\n\tBulkUpdateShopsZoneStatusDTO,\n\tBulkUpdateShopsZoneStatusEvent,\n} from '../libraries/event/events/bulk-update-zone-status-in-shops-event';\nimport {\n\tSynchronizeAllProductsProductMarketingInfoDTO,\n\tSynchronizeAllProductsProductMarketingInfoEvent,\n} from '../libraries/event/events/sync-all-products-product-marketing-info-event';\nimport {\n\tSynchronizeAllShopsAvgPreparationTimeDTO,\n\tSynchronizeAllShopsAvgPreparationTimeEvent,\n} from '../libraries/event/events/sync-avg-prep-time-in-all-shops-event';\n\n/**\n * Returns changed fields between two objects (shallow comparison).\n */\nexport function getChangedFields<T extends Record<string, any>>(\n\toldDoc: T,\n\tnewDoc: T,\n\tpayload?: Partial<T>\n): Record<keyof T, { old: any; new: any }> {\n\tconst changes = {} as Record<keyof T, { old: any; new: any }>;\n\n\tconst oldObj = typeof oldDoc.toObject === 'function' ? oldDoc.toObject() : oldDoc;\n\tconst newObj = typeof newDoc.toObject === 'function' ? newDoc.toObject() : newDoc;\n\n\tconst keysToCheck = payload\n\t\t? Object.keys(payload)\n\t\t: Array.from(new Set([...Object.keys(oldObj), ...Object.keys(newObj)]));\n\n\tfor (const key of keysToCheck) {\n\t\tconst oldValue = oldObj[key];\n\t\tconst newValue = newObj[key];\n\t\tconst cleanedOld = deepCleanSettingsValues(oldValue);\n\t\tconst cleanedNew = deepCleanSettingsValues(newValue);\n\t\tif (payload || JSON.stringify(cleanedOld) !== JSON.stringify(cleanedNew)) {\n\t\t\tchanges[key as keyof T] = { old: oldValue, new: newValue };\n\t\t}\n\t}\n\n\treturn changes;\n}\n\n// removes _id and deletedAt fields from objects, array of objects and prepares for data that has setting changes\nfunction deepCleanSettingsValues(value: any): any {\n\t// CASE 1: Array\n\tif (Array.isArray(value)) {\n\t\t// If array contains primitives → return as-is\n\t\tif (value.every(v => v === null || typeof v !== 'object')) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// If array contains objects → deep clean each object\n\t\treturn value.map(item => deepCleanSettingsValues(item));\n\t}\n\n\t// CASE 2: Null → return as is\n\tif (value === null) return value;\n\n\t// CASE 3: Plain Object\n\tif (typeof value === 'object') {\n\t\tconst cleanedObj: any = {};\n\n\t\tfor (const key in value) {\n\t\t\tif (key === '_id' || key === 'deletedAt' || value[key] === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcleanedObj[key] = deepCleanSettingsValues(value[key]);\n\t\t}\n\n\t\treturn cleanedObj;\n\t}\n\n\t// CASE 4: Primitive (string, number, boolean)\n\treturn value;\n}\n\n/**\n * Filters changed fields to only those that exist in the payload.\n */\nexport function filterRelevantChanges<T>(\n\tallChanges: Record<string, { old: any; new: any }>,\n\tpayload: Partial<T>\n): Record<string, { old: any; new: any }> {\n\treturn Object.keys(payload).reduce(\n\t\t(acc, key) => {\n\t\t\tif (allChanges[key]) {\n\t\t\t\tacc[key] = allChanges[key];\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<string, { old: any; new: any }>\n\t);\n}\n\n/**\n * Extracts either 'old' or 'new' values from the changes object.\n */\nexport function extractChangedDocument(\n\tchanges: Record<string, { old: any; new: any }>,\n\ttype: 'old' | 'new'\n): Record<string, any> {\n\treturn Object.fromEntries(Object.entries(changes).map(([key, value]) => [key, value[type]]));\n}\n\nexport async function publishAdminLogsEvent(payload: {\n\tadmin: mongoose.Types.ObjectId;\n\tupdatedField: AdminLogsUpdatedFieldsType;\n\toldDoc: any;\n\tnewDoc: any;\n}) {\n\tconst { admin, updatedField, oldDoc, newDoc } = payload;\n\tconst adminActivityLogsEvent: BaseEvent<Record<string, unknown>> = new AdminActivityLogsEvent({\n\t\tadmin: admin,\n\t\tupdatedField: updatedField,\n\t\toldDocument: oldDoc,\n\t\tnewDocument: newDoc,\n\t});\n\tawait publishEvent(adminActivityLogsEvent);\n}\n\nexport async function publishShopActiveBatchProcessEvent() {\n\tconst shopActiveTimingsBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew ShopActiveTimingsBatchProcessEvent({});\n\tawait publishEvent(shopActiveTimingsBatchProcessEvent);\n}\n\nexport async function publishMongodbStreamsChangesBatchProcessShopsEvent(\n\tpayload: MongoStreamsBatchProcessShopsDTO\n) {\n\tconst mongodbStreamsBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew MongoStreamsBatchProcessShopsEvent(payload);\n\tawait publishEvent(mongodbStreamsBatchProcessEvent);\n}\n\nexport async function publishUpdateShopsSearchFieldsBulkProcessEvent(payload: any) {\n\tconst bulkUpdateShopsSearchFieldsBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew BulkUpdateShopsSearchFieldsBatchProcessEvent(payload);\n\tawait publishEvent(bulkUpdateShopsSearchFieldsBatchProcessEvent);\n}\n\nexport async function publishBulkUpdateShopsZoneStatusProcessEvent(payload: BulkUpdateShopsZoneStatusDTO) {\n\tconst shopsZoneStatusBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew BulkUpdateShopsZoneStatusEvent(payload);\n\tawait publishEvent(shopsZoneStatusBatchProcessEvent);\n}\n\nexport async function publishAllProductsProductMarketingInfoProcessEvent(\n\tpayload: SynchronizeAllProductsProductMarketingInfoDTO\n) {\n\tconst SyncAllProductsProductMarketingInfoProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew SynchronizeAllProductsProductMarketingInfoEvent({});\n\tawait publishEvent(SyncAllProductsProductMarketingInfoProcessEvent);\n}\n\nexport async function publishAllShopsAvgPreperationTimeSyncProcessEvent(\n\tpayload: SynchronizeAllShopsAvgPreparationTimeDTO\n) {\n\tconst SyncAllShopsAvgPreperationTimeSyncProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew SynchronizeAllShopsAvgPreparationTimeEvent({});\n\tawait publishEvent(SyncAllShopsAvgPreperationTimeSyncProcessEvent);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"events-common-methods.js","sourceRoot":"/","sources":["utilities/events-common-methods.ts"],"names":[],"mappings":"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","sourcesContent":["import { mongoose } from '@typegoose/typegoose';\nimport { publishEvent } from '../libraries/event';\nimport { AdminLogsUpdatedFieldsType } from './enum';\nimport { BaseEvent } from '../libraries/event/BaseEvent';\nimport {\n\tMongoStreamsBatchProcessShopsDTO,\n\tMongoStreamsBatchProcessShopsEvent,\n} from '../libraries/event/events/mongo-stream-changes-batch-process-shops-event';\nimport { AdminActivityLogsEvent } from '../libraries/event/events/admin-logs-event';\nimport { ShopActiveTimingsBatchProcessEvent } from '../libraries/event/events/shop-active-timings-batch-process-event';\nimport { BulkUpdateShopsSearchFieldsBatchProcessEvent } from '../libraries/event/events/bulk-update-shops-search-fields-batch-process-event';\nimport {\n\tBulkUpdateShopsZoneStatusDTO,\n\tBulkUpdateShopsZoneStatusEvent,\n} from '../libraries/event/events/bulk-update-zone-status-in-shops-event';\nimport {\n\tSynchronizeAllProductsProductMarketingInfoDTO,\n\tSynchronizeAllProductsProductMarketingInfoEvent,\n} from '../libraries/event/events/sync-all-products-product-marketing-info-event';\nimport {\n\tSynchronizeAllShopsAvgPreparationTimeDTO,\n\tSynchronizeAllShopsAvgPreparationTimeEvent,\n} from '../libraries/event/events/sync-avg-prep-time-in-all-shops-event';\nimport {\n\tSyncSingleShopCacheDTO,\n\tSyncSingleShopInCacheEvent,\n} from '../libraries/event/events/sync-single-shop-in-cache-event';\n\n/**\n * Returns changed fields between two objects (shallow comparison).\n */\nexport function getChangedFields<T extends Record<string, any>>(\n\toldDoc: T,\n\tnewDoc: T,\n\tpayload?: Partial<T>\n): Record<keyof T, { old: any; new: any }> {\n\tconst changes = {} as Record<keyof T, { old: any; new: any }>;\n\n\tconst oldObj = typeof oldDoc.toObject === 'function' ? oldDoc.toObject() : oldDoc;\n\tconst newObj = typeof newDoc.toObject === 'function' ? newDoc.toObject() : newDoc;\n\n\tconst keysToCheck = payload\n\t\t? Object.keys(payload)\n\t\t: Array.from(new Set([...Object.keys(oldObj), ...Object.keys(newObj)]));\n\n\tfor (const key of keysToCheck) {\n\t\tconst oldValue = oldObj[key];\n\t\tconst newValue = newObj[key];\n\t\tconst cleanedOld = deepCleanSettingsValues(oldValue);\n\t\tconst cleanedNew = deepCleanSettingsValues(newValue);\n\t\tif (payload || JSON.stringify(cleanedOld) !== JSON.stringify(cleanedNew)) {\n\t\t\tchanges[key as keyof T] = { old: oldValue, new: newValue };\n\t\t}\n\t}\n\n\treturn changes;\n}\n\n// removes _id and deletedAt fields from objects, array of objects and prepares for data that has setting changes\nfunction deepCleanSettingsValues(value: any): any {\n\t// CASE 1: Array\n\tif (Array.isArray(value)) {\n\t\t// If array contains primitives → return as-is\n\t\tif (value.every(v => v === null || typeof v !== 'object')) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// If array contains objects → deep clean each object\n\t\treturn value.map(item => deepCleanSettingsValues(item));\n\t}\n\n\t// CASE 2: Null → return as is\n\tif (value === null) return value;\n\n\t// CASE 3: Plain Object\n\tif (typeof value === 'object') {\n\t\tconst cleanedObj: any = {};\n\n\t\tfor (const key in value) {\n\t\t\tif (key === '_id' || key === 'deletedAt' || value[key] === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcleanedObj[key] = deepCleanSettingsValues(value[key]);\n\t\t}\n\n\t\treturn cleanedObj;\n\t}\n\n\t// CASE 4: Primitive (string, number, boolean)\n\treturn value;\n}\n\n/**\n * Filters changed fields to only those that exist in the payload.\n */\nexport function filterRelevantChanges<T>(\n\tallChanges: Record<string, { old: any; new: any }>,\n\tpayload: Partial<T>\n): Record<string, { old: any; new: any }> {\n\treturn Object.keys(payload).reduce(\n\t\t(acc, key) => {\n\t\t\tif (allChanges[key]) {\n\t\t\t\tacc[key] = allChanges[key];\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<string, { old: any; new: any }>\n\t);\n}\n\n/**\n * Extracts either 'old' or 'new' values from the changes object.\n */\nexport function extractChangedDocument(\n\tchanges: Record<string, { old: any; new: any }>,\n\ttype: 'old' | 'new'\n): Record<string, any> {\n\treturn Object.fromEntries(Object.entries(changes).map(([key, value]) => [key, value[type]]));\n}\n\nexport async function publishAdminLogsEvent(payload: {\n\tadmin: mongoose.Types.ObjectId;\n\tupdatedField: AdminLogsUpdatedFieldsType;\n\toldDoc: any;\n\tnewDoc: any;\n}) {\n\tconst { admin, updatedField, oldDoc, newDoc } = payload;\n\tconst adminActivityLogsEvent: BaseEvent<Record<string, unknown>> = new AdminActivityLogsEvent({\n\t\tadmin: admin,\n\t\tupdatedField: updatedField,\n\t\toldDocument: oldDoc,\n\t\tnewDocument: newDoc,\n\t});\n\tawait publishEvent(adminActivityLogsEvent);\n}\n\nexport async function publishShopActiveBatchProcessEvent() {\n\tconst shopActiveTimingsBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew ShopActiveTimingsBatchProcessEvent({});\n\tawait publishEvent(shopActiveTimingsBatchProcessEvent);\n}\n\nexport async function publishMongodbStreamsChangesBatchProcessShopsEvent(\n\tpayload: MongoStreamsBatchProcessShopsDTO\n) {\n\tconst mongodbStreamsBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew MongoStreamsBatchProcessShopsEvent(payload);\n\tawait publishEvent(mongodbStreamsBatchProcessEvent);\n}\n\nexport async function publishUpdateShopsSearchFieldsBulkProcessEvent(payload: any) {\n\tconst bulkUpdateShopsSearchFieldsBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew BulkUpdateShopsSearchFieldsBatchProcessEvent(payload);\n\tawait publishEvent(bulkUpdateShopsSearchFieldsBatchProcessEvent);\n}\n\nexport async function publishBulkUpdateShopsZoneStatusProcessEvent(payload: BulkUpdateShopsZoneStatusDTO) {\n\tconst shopsZoneStatusBatchProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew BulkUpdateShopsZoneStatusEvent(payload);\n\tawait publishEvent(shopsZoneStatusBatchProcessEvent);\n}\n\nexport async function publishAllProductsProductMarketingInfoProcessEvent(\n\tpayload: SynchronizeAllProductsProductMarketingInfoDTO\n) {\n\tconst SyncAllProductsProductMarketingInfoProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew SynchronizeAllProductsProductMarketingInfoEvent({});\n\tawait publishEvent(SyncAllProductsProductMarketingInfoProcessEvent);\n}\n\nexport async function publishAllShopsAvgPreperationTimeSyncProcessEvent(\n\tpayload: SynchronizeAllShopsAvgPreparationTimeDTO\n) {\n\tconst SyncAllShopsAvgPreperationTimeSyncProcessEvent: BaseEvent<Record<string, unknown>> =\n\t\tnew SynchronizeAllShopsAvgPreparationTimeEvent({});\n\tawait publishEvent(SyncAllShopsAvgPreperationTimeSyncProcessEvent);\n}\n\nexport async function publishSyncSingleShopInCacheProcessEvent(payload: SyncSingleShopCacheDTO) {\n\tconst syncSingleShopCacheSyncEvent: BaseEvent<Record<string, unknown>> = new SyncSingleShopInCacheEvent(\n\t\tpayload\n\t);\n\tawait publishEvent(syncSingleShopCacheSyncEvent);\n}"]}
|