@lyxa.ai/core 1.4.118 → 1.4.120

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.
@@ -16,7 +16,7 @@ export declare enum PublishEventEnums {
16
16
  SYNC_ALL_CUSTOMIZED_SHOP_SECTIONS_CACHE_EVENT = "sync_all_customized_shop_sections_cache_event",
17
17
  SYNC_ALL_USERS_PUNCH_MARKETING_HISTORY_CACHE_EVENT = "sync_all_users_punch_marketing_history_cache_event",
18
18
  SYNC_USER_SHOP_PUNCH_MARKETING_HISTORY_CACHE_EVENT = "sync_user_shop_punch_marketing_history_cache_event",
19
- RIDER_SCORE_EVENT = "rider_score_event",
19
+ RIDER_SCORE_EVENT = "rider.score.calculate",
20
20
  RIDER_ORDER_COMPLETED_EVENT = "rider_order_completed_event",
21
21
  MARKETING_RETURN_PUNCH_COUPON_EVENT = "marketing_return_punch_coupon_event"
22
22
  }
@@ -20,7 +20,7 @@ var PublishEventEnums;
20
20
  PublishEventEnums["SYNC_ALL_CUSTOMIZED_SHOP_SECTIONS_CACHE_EVENT"] = "sync_all_customized_shop_sections_cache_event";
21
21
  PublishEventEnums["SYNC_ALL_USERS_PUNCH_MARKETING_HISTORY_CACHE_EVENT"] = "sync_all_users_punch_marketing_history_cache_event";
22
22
  PublishEventEnums["SYNC_USER_SHOP_PUNCH_MARKETING_HISTORY_CACHE_EVENT"] = "sync_user_shop_punch_marketing_history_cache_event";
23
- PublishEventEnums["RIDER_SCORE_EVENT"] = "rider_score_event";
23
+ PublishEventEnums["RIDER_SCORE_EVENT"] = "rider.score.calculate";
24
24
  PublishEventEnums["RIDER_ORDER_COMPLETED_EVENT"] = "rider_order_completed_event";
25
25
  PublishEventEnums["MARKETING_RETURN_PUNCH_COUPON_EVENT"] = "marketing_return_punch_coupon_event";
26
26
  })(PublishEventEnums || (exports.PublishEventEnums = PublishEventEnums = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"EventEnums.js","sourceRoot":"/","sources":["libraries/event/EventEnums.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAqBX;AArBD,WAAY,iBAAiB;IAC5B,4EAAuD,CAAA;IACvD,sEAAiD,CAAA;IACjD,4EAAuD,CAAA;IACvD,sEAAiD,CAAA;IACjD,wGAAmF,CAAA;IACnF,sHAAiG,CAAA;IACjG,oGAA+E,CAAA;IAC/E,sFAAiE,CAAA;IACjE,8FAAyE,CAAA;IACzE,sHAAiG,CAAA;IACjG,4GAAuF,CAAA;IACvF,kFAA6D,CAAA;IAC7D,0GAAqF,CAAA;IACrF,oGAA+E,CAAA;IAC/E,oHAA+F,CAAA;IAC/F,8HAAyG,CAAA;IACzG,8HAAyG,CAAA;IACzG,4DAAuC,CAAA;IACvC,gFAA2D,CAAA;IAC3D,gGAA2E,CAAA;AAC5E,CAAC,EArBW,iBAAiB,iCAAjB,iBAAiB,QAqB5B","sourcesContent":["export enum PublishEventEnums {\n\tADMIN_ACTIVITY_LOGS_EVENT = 'admin_activity_logs_event',\n\tMESSAGE_RECEIVED_EVENT = 'message_received_event',\n\tTICKET_NOTIFICATION_EVENT = 'ticket_notification_event',\n\tCART_ITEM_UPSERT_EVENT = 'cart_item_upsert_event',\n\tSHOP_ACTIVE_TIMINGS_BATCH_PROCESS_EVENT = 'shop_active_timings_batch_process_event',\n\tMONGO_STREAM_CHANGES_BATCH_PROCESS_SHOPS_EVENT = 'mongo_stream_changes_batch_process_shops_event',\n\tBULK_UPDATE_SHOPS_SEARCH_FIELDS_EVENT = 'bulk_update_shops_search_fields_event',\n\tSOCKET_PUSH_NOTIFICATION_EVENT = 'socket_push_notification_event',\n\tBULK_UPDATE_SHOP_ZONE_STATUS_EVENT = 'bulk_update_shop_zone_status_event',\n\tSYNC_ALL_PRODUCTS_PRODUCT_MARKETING_INFO_EVENT = 'sync_all_products_product_marketing_info_event',\n\tSYNC_ALL_SHOPS_AVG_PREPARATION_TIME_EVENT = 'sync_all_shops_avg_preperation_time_event',\n\tSYNC_SINGLE_SHOP_CACHE_EVENT = 'sync_single_shop_cache_event',\n\tSYNC_SINGLE_SHOP_ORDER_AGAIN_CACHE_EVENT = 'sync_single_shop_order_again_cache_event',\n\tSYNC_SINGLE_SHOP_SECTIONS_CACHE_EVENT = 'sync_single_shop_sections_cache_event',\n\tSYNC_ALL_CUSTOMIZED_SHOP_SECTIONS_CACHE_EVENT = 'sync_all_customized_shop_sections_cache_event',\n\tSYNC_ALL_USERS_PUNCH_MARKETING_HISTORY_CACHE_EVENT = 'sync_all_users_punch_marketing_history_cache_event',\n\tSYNC_USER_SHOP_PUNCH_MARKETING_HISTORY_CACHE_EVENT = 'sync_user_shop_punch_marketing_history_cache_event',\n\tRIDER_SCORE_EVENT = 'rider_score_event',\n\tRIDER_ORDER_COMPLETED_EVENT = 'rider_order_completed_event',\n\tMARKETING_RETURN_PUNCH_COUPON_EVENT = 'marketing_return_punch_coupon_event',\n}\n \n"]}
1
+ {"version":3,"file":"EventEnums.js","sourceRoot":"/","sources":["libraries/event/EventEnums.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAqBX;AArBD,WAAY,iBAAiB;IAC5B,4EAAuD,CAAA;IACvD,sEAAiD,CAAA;IACjD,4EAAuD,CAAA;IACvD,sEAAiD,CAAA;IACjD,wGAAmF,CAAA;IACnF,sHAAiG,CAAA;IACjG,oGAA+E,CAAA;IAC/E,sFAAiE,CAAA;IACjE,8FAAyE,CAAA;IACzE,sHAAiG,CAAA;IACjG,4GAAuF,CAAA;IACvF,kFAA6D,CAAA;IAC7D,0GAAqF,CAAA;IACrF,oGAA+E,CAAA;IAC/E,oHAA+F,CAAA;IAC/F,8HAAyG,CAAA;IACzG,8HAAyG,CAAA;IACzG,gEAA2C,CAAA;IAC3C,gFAA2D,CAAA;IAC3D,gGAA2E,CAAA;AAC5E,CAAC,EArBW,iBAAiB,iCAAjB,iBAAiB,QAqB5B","sourcesContent":["export enum PublishEventEnums {\n\tADMIN_ACTIVITY_LOGS_EVENT = 'admin_activity_logs_event',\n\tMESSAGE_RECEIVED_EVENT = 'message_received_event',\n\tTICKET_NOTIFICATION_EVENT = 'ticket_notification_event',\n\tCART_ITEM_UPSERT_EVENT = 'cart_item_upsert_event',\n\tSHOP_ACTIVE_TIMINGS_BATCH_PROCESS_EVENT = 'shop_active_timings_batch_process_event',\n\tMONGO_STREAM_CHANGES_BATCH_PROCESS_SHOPS_EVENT = 'mongo_stream_changes_batch_process_shops_event',\n\tBULK_UPDATE_SHOPS_SEARCH_FIELDS_EVENT = 'bulk_update_shops_search_fields_event',\n\tSOCKET_PUSH_NOTIFICATION_EVENT = 'socket_push_notification_event',\n\tBULK_UPDATE_SHOP_ZONE_STATUS_EVENT = 'bulk_update_shop_zone_status_event',\n\tSYNC_ALL_PRODUCTS_PRODUCT_MARKETING_INFO_EVENT = 'sync_all_products_product_marketing_info_event',\n\tSYNC_ALL_SHOPS_AVG_PREPARATION_TIME_EVENT = 'sync_all_shops_avg_preperation_time_event',\n\tSYNC_SINGLE_SHOP_CACHE_EVENT = 'sync_single_shop_cache_event',\n\tSYNC_SINGLE_SHOP_ORDER_AGAIN_CACHE_EVENT = 'sync_single_shop_order_again_cache_event',\n\tSYNC_SINGLE_SHOP_SECTIONS_CACHE_EVENT = 'sync_single_shop_sections_cache_event',\n\tSYNC_ALL_CUSTOMIZED_SHOP_SECTIONS_CACHE_EVENT = 'sync_all_customized_shop_sections_cache_event',\n\tSYNC_ALL_USERS_PUNCH_MARKETING_HISTORY_CACHE_EVENT = 'sync_all_users_punch_marketing_history_cache_event',\n\tSYNC_USER_SHOP_PUNCH_MARKETING_HISTORY_CACHE_EVENT = 'sync_user_shop_punch_marketing_history_cache_event',\n\tRIDER_SCORE_EVENT = 'rider.score.calculate',\n\tRIDER_ORDER_COMPLETED_EVENT = 'rider_order_completed_event',\n\tMARKETING_RETURN_PUNCH_COUPON_EVENT = 'marketing_return_punch_coupon_event',\n}\n \n"]}
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RiderScoreEvent = void 0;
4
4
  const BaseEvent_1 = require("../../../BaseEvent");
5
+ const EventEnums_1 = require("../../../EventEnums");
5
6
  class RiderScoreEvent extends BaseEvent_1.BaseEvent {
6
7
  constructor(payload) {
7
- super(payload.tag, payload);
8
+ super(EventEnums_1.PublishEventEnums.RIDER_SCORE_EVENT, payload);
8
9
  }
9
10
  get tag() {
10
11
  return this.payload.tag;
@@ -1 +1 @@
1
- {"version":3,"file":"rider-score-event.js","sourceRoot":"/","sources":["libraries/event/events/rider/scoring/rider-score-event.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAQ/C,MAAsB,eAEpB,SAAQ,qBAAmB;IAC5B,YAAsB,OAAiB;QACtC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;CACD;AAlBD,0CAkBC","sourcesContent":["import { Types } from 'mongoose';\nimport { RiderScoreEventTag } from '../../../../../utilities/enum';\nimport { BaseEvent } from '../../../BaseEvent';\n\nexport interface RiderScoreEventPayload {\n\ttag: RiderScoreEventTag;\n\triderId: Types.ObjectId;\n\ttimestamp: Date;\n}\n\nexport abstract class RiderScoreEvent<\n\tTPayload extends RiderScoreEventPayload = RiderScoreEventPayload,\n> extends BaseEvent<TPayload> {\n\tprotected constructor(payload: TPayload) {\n\t\tsuper(payload.tag, payload);\n\t}\n\n\tget tag(): RiderScoreEventTag {\n\t\treturn this.payload.tag;\n\t}\n\n\tget riderId(): Types.ObjectId {\n\t\treturn this.payload.riderId;\n\t}\n\n\tget timestamp(): Date {\n\t\treturn this.payload.timestamp;\n\t}\n}\n"]}
1
+ {"version":3,"file":"rider-score-event.js","sourceRoot":"/","sources":["libraries/event/events/rider/scoring/rider-score-event.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAC/C,oDAAwD;AAQxD,MAAsB,eAEpB,SAAQ,qBAAmB;IAC5B,YAAsB,OAAiB;QACtC,KAAK,CAAC,8BAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;CACD;AAlBD,0CAkBC","sourcesContent":["import { Types } from 'mongoose';\nimport { RiderScoreEventTag } from '../../../../../utilities/enum';\nimport { BaseEvent } from '../../../BaseEvent';\nimport { PublishEventEnums } from '../../../EventEnums';\n\nexport interface RiderScoreEventPayload {\n\ttag: RiderScoreEventTag;\n\triderId: Types.ObjectId;\n\ttimestamp: Date;\n}\n\nexport abstract class RiderScoreEvent<\n\tTPayload extends RiderScoreEventPayload = RiderScoreEventPayload,\n> extends BaseEvent<TPayload> {\n\tprotected constructor(payload: TPayload) {\n\t\tsuper(PublishEventEnums.RIDER_SCORE_EVENT, payload);\n\t}\n\n\tget tag(): RiderScoreEventTag {\n\t\treturn this.payload.tag;\n\t}\n\n\tget riderId(): Types.ObjectId {\n\t\treturn this.payload.riderId;\n\t}\n\n\tget timestamp(): Date {\n\t\treturn this.payload.timestamp;\n\t}\n}\n"]}
@@ -7,5 +7,5 @@ export declare function subscribeToQueue(queueName: string, routingKey: string,
7
7
  export declare function publish(routingKey: string, payload: object): Promise<void>;
8
8
  export declare function publishEvent<TPayload extends object>(event: BaseEvent<TPayload>): Promise<void>;
9
9
  export declare function subscribeToEvent(eventId: string, onMessage: (payload: any) => Promise<void>): Promise<void>;
10
- export declare function pollEventMessages(eventId: string, onMessage: (payload: any) => Promise<void>, limit?: number): Promise<void>;
10
+ export declare function pollEventMessages(eventId: string, onMessage: (payloads: any[]) => Promise<void>, limit?: number): Promise<void>;
11
11
  export declare function closeRabbitMQConnection(): Promise<void>;
@@ -101,13 +101,25 @@ async function pollEventMessages(eventId, onMessage, limit) {
101
101
  }
102
102
  const wrapper = pollChannels.get(eventId);
103
103
  const max = limit ?? Infinity;
104
- let count = 0;
105
- while (count < max) {
104
+ const msgs = [];
105
+ while (msgs.length < max) {
106
106
  const msg = await wrapper.get(eventId, { noAck: false });
107
107
  if (!msg)
108
108
  break;
109
- if (await handleMsg(wrapper, msg, onMessage, eventId))
110
- count++;
109
+ msgs.push(msg);
110
+ }
111
+ if (msgs.length === 0)
112
+ return;
113
+ try {
114
+ const payloads = msgs.map(msg => JSON.parse(msg.content.toString()));
115
+ await onMessage(payloads);
116
+ msgs.forEach(msg => wrapper.ack(msg));
117
+ }
118
+ catch (err) {
119
+ await (0, index_1.getLibraries)()
120
+ .getLoggerKit()
121
+ .error(`Error handling [${eventId}]`, err, { tag: enum_1.LogTag.INFRA_QUEUE });
122
+ msgs.forEach(msg => wrapper.nack(msg, false, true));
111
123
  }
112
124
  }
113
125
  async function closeRabbitMQConnection() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":"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","sourcesContent":["import amqp from 'amqplib';\nimport { BaseEvent } from './BaseEvent';\nimport { getInstanceId } from '../../utilities/instance.utils';\nimport { getLibraries } from '../../index';\nimport { LogTag } from '../../utilities/enum';\n\nimport amqpManager, { Channel, ChannelWrapper } from 'amqp-connection-manager';\nimport { IAmqpConnectionManager } from 'amqp-connection-manager/dist/types/AmqpConnectionManager';\n\nlet connection: IAmqpConnectionManager;\nlet pubChannelWrapper: ChannelWrapper;\nconst pollChannels = new Map<string, ChannelWrapper>();\n\nconst EXCHANGE_NAME = 'lyxa.events';\n\ntype PublishOptions = Parameters<ChannelWrapper['publish']>[3];\nconst AMQP_PUBLISH_OPTIONS = {\n\tcontentType: 'application/json',\n\tpersistent: true,\n} as amqp.Options.Publish as unknown as PublishOptions;\n\nexport async function initRabbitMQConnection(rabbitUrl: string): Promise<void> {\n\tconnection = amqpManager.connect([rabbitUrl]);\n\tconnection.on('connect', () => console.log('RabbitMQ connected'));\n\tconnection.on('disconnect', err => console.error('RabbitMQ disconnected', err));\n\n\tpubChannelWrapper = connection.createChannel({\n\t\tconfirm: true,\n\t\tsetup: async (ch: Channel) => {\n\t\t\tawait ch.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });\n\t\t},\n\t});\n\n\tawait pubChannelWrapper.waitForConnect();\n\tconsole.log(`EventBus initialized with instance ID: ${getInstanceId()}`);\n}\n\nasync function createQueueChannel(eventId: string): Promise<ChannelWrapper> {\n\tconst wrapper = connection.createChannel({\n\t\tsetup: async (ch: Channel) => {\n\t\t\tawait ch.assertQueue(eventId, { durable: true, exclusive: false, autoDelete: false });\n\t\t\tawait ch.bindQueue(eventId, EXCHANGE_NAME, eventId);\n\t\t},\n\t});\n\tawait wrapper.waitForConnect();\n\treturn wrapper;\n}\n\nasync function handleMsg(\n\twrapper: ChannelWrapper,\n\tmsg: amqp.Message,\n\thandler: (payload: any) => void | Promise<void>,\n\tlabel: string,\n\trequeue = true\n): Promise<boolean> {\n\ttry {\n\t\tconst payload = JSON.parse(msg.content.toString());\n\t\tawait handler(payload);\n\t\twrapper.ack(msg);\n\t\treturn true;\n\t} catch (err) {\n\t\tgetLibraries()\n\t\t\t.getLoggerKit()\n\t\t\t.error(`Error handling [${label}]`, err, { tag: LogTag.INFRA_QUEUE });\n\t\twrapper.nack(msg, false, requeue);\n\t\treturn false;\n\t}\n}\n\nexport async function subscribeToQueue(\n\tqueueName: string,\n\troutingKey: string,\n\tonMessage: (payload: unknown) => void | Promise<void>,\n\toptions: { requeue?: boolean; durable?: boolean } = {}\n): Promise<void> {\n\tif (!connection) {\n\t\tconsole.warn(`[RabbitMQ] subscribeToQueue called before connection initialized, skipping [${queueName}]`);\n\t\treturn;\n\t}\n\n\tconst { requeue = true, durable = true } = options;\n\n\tconst wrapper = connection.createChannel({\n\t\tsetup: async (ch: Channel) => {\n\t\t\tawait ch.assertQueue(queueName, { durable });\n\t\t\tawait ch.bindQueue(queueName, EXCHANGE_NAME, routingKey);\n\t\t},\n\t});\n\tawait wrapper.waitForConnect();\n\n\tawait wrapper.consume(queueName, msg => handleMsg(wrapper, msg, onMessage, queueName, requeue));\n\tconsole.log(`Subscribed to queue [${queueName}]`);\n}\n\nexport async function publish(routingKey: string, payload: object): Promise<void> {\n\tawait pubChannelWrapper.publish(\n\t\tEXCHANGE_NAME,\n\t\troutingKey,\n\t\tBuffer.from(JSON.stringify(payload)),\n\t\tAMQP_PUBLISH_OPTIONS\n\t);\n}\n\nexport async function publishEvent<TPayload extends object>(event: BaseEvent<TPayload>): Promise<void> {\n\tawait publish(event.eventId, event.payload);\n}\n\nexport async function subscribeToEvent(\n\teventId: string,\n\tonMessage: (payload: any) => Promise<void>\n): Promise<void> {\n\tif (!connection) {\n\t\tconsole.warn(`[RabbitMQ] subscribe called before connection initialized, skipping [${eventId}]`);\n\t\treturn;\n\t}\n\n\tconst wrapper = await createQueueChannel(eventId);\n\tawait wrapper.consume(eventId, msg => handleMsg(wrapper, msg, onMessage, eventId));\n\tconsole.log(`Subscribed to event [${eventId}]`);\n}\n\nexport async function pollEventMessages(\n\teventId: string,\n\tonMessage: (payload: any) => Promise<void>,\n\tlimit?: number\n): Promise<void> {\n\tif (!connection) {\n\t\tconsole.warn(`[RabbitMQ] poll called before connection initialized, skipping [${eventId}]`);\n\t\treturn;\n\t}\n\n\tif (!pollChannels.has(eventId)) {\n\t\tpollChannels.set(eventId, await createQueueChannel(eventId));\n\t}\n\n\tconst wrapper = pollChannels.get(eventId)!;\n\tconst max = limit ?? Infinity;\n\tlet count = 0;\n\n\twhile (count < max) {\n\t\tconst msg = await wrapper.get(eventId, { noAck: false });\n\t\tif (!msg) break;\n\t\tif (await handleMsg(wrapper, msg, onMessage, eventId)) count++;\n\t}\n}\n\nexport async function closeRabbitMQConnection(): Promise<void> {\n\tif (pubChannelWrapper) await pubChannelWrapper.close();\n\tawait Promise.all([...pollChannels.values()].map(ch => ch.close()));\n\tif (connection) await connection.close();\n\tconsole.log(`EventBus closed for instance [${getInstanceId()}]`);\n}"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":"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","sourcesContent":["import amqp from 'amqplib';\nimport { BaseEvent } from './BaseEvent';\nimport { getInstanceId } from '../../utilities/instance.utils';\nimport { getLibraries } from '../../index';\nimport { LogTag } from '../../utilities/enum';\n\nimport amqpManager, { Channel, ChannelWrapper } from 'amqp-connection-manager';\nimport { IAmqpConnectionManager } from 'amqp-connection-manager/dist/types/AmqpConnectionManager';\n\nlet connection: IAmqpConnectionManager;\nlet pubChannelWrapper: ChannelWrapper;\nconst pollChannels = new Map<string, ChannelWrapper>();\n\nconst EXCHANGE_NAME = 'lyxa.events';\n\ntype PublishOptions = Parameters<ChannelWrapper['publish']>[3];\nconst AMQP_PUBLISH_OPTIONS = {\n\tcontentType: 'application/json',\n\tpersistent: true,\n} as amqp.Options.Publish as unknown as PublishOptions;\n\nexport async function initRabbitMQConnection(rabbitUrl: string): Promise<void> {\n\tconnection = amqpManager.connect([rabbitUrl]);\n\tconnection.on('connect', () => console.log('RabbitMQ connected'));\n\tconnection.on('disconnect', err => console.error('RabbitMQ disconnected', err));\n\n\tpubChannelWrapper = connection.createChannel({\n\t\tconfirm: true,\n\t\tsetup: async (ch: Channel) => {\n\t\t\tawait ch.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });\n\t\t},\n\t});\n\n\tawait pubChannelWrapper.waitForConnect();\n\tconsole.log(`EventBus initialized with instance ID: ${getInstanceId()}`);\n}\n\nasync function createQueueChannel(eventId: string): Promise<ChannelWrapper> {\n\tconst wrapper = connection.createChannel({\n\t\tsetup: async (ch: Channel) => {\n\t\t\tawait ch.assertQueue(eventId, { durable: true, exclusive: false, autoDelete: false });\n\t\t\tawait ch.bindQueue(eventId, EXCHANGE_NAME, eventId);\n\t\t},\n\t});\n\tawait wrapper.waitForConnect();\n\treturn wrapper;\n}\n\nasync function handleMsg(\n\twrapper: ChannelWrapper,\n\tmsg: amqp.Message,\n\thandler: (payload: any) => void | Promise<void>,\n\tlabel: string,\n\trequeue = true\n): Promise<boolean> {\n\ttry {\n\t\tconst payload = JSON.parse(msg.content.toString());\n\t\tawait handler(payload);\n\t\twrapper.ack(msg);\n\t\treturn true;\n\t} catch (err) {\n\t\tgetLibraries()\n\t\t\t.getLoggerKit()\n\t\t\t.error(`Error handling [${label}]`, err, { tag: LogTag.INFRA_QUEUE });\n\t\twrapper.nack(msg, false, requeue);\n\t\treturn false;\n\t}\n}\n\nexport async function subscribeToQueue(\n\tqueueName: string,\n\troutingKey: string,\n\tonMessage: (payload: unknown) => void | Promise<void>,\n\toptions: { requeue?: boolean; durable?: boolean } = {}\n): Promise<void> {\n\tif (!connection) {\n\t\tconsole.warn(`[RabbitMQ] subscribeToQueue called before connection initialized, skipping [${queueName}]`);\n\t\treturn;\n\t}\n\n\tconst { requeue = true, durable = true } = options;\n\n\tconst wrapper = connection.createChannel({\n\t\tsetup: async (ch: Channel) => {\n\t\t\tawait ch.assertQueue(queueName, { durable });\n\t\t\tawait ch.bindQueue(queueName, EXCHANGE_NAME, routingKey);\n\t\t},\n\t});\n\tawait wrapper.waitForConnect();\n\n\tawait wrapper.consume(queueName, msg => handleMsg(wrapper, msg, onMessage, queueName, requeue));\n\tconsole.log(`Subscribed to queue [${queueName}]`);\n}\n\nexport async function publish(routingKey: string, payload: object): Promise<void> {\n\tawait pubChannelWrapper.publish(\n\t\tEXCHANGE_NAME,\n\t\troutingKey,\n\t\tBuffer.from(JSON.stringify(payload)),\n\t\tAMQP_PUBLISH_OPTIONS\n\t);\n}\n\nexport async function publishEvent<TPayload extends object>(event: BaseEvent<TPayload>): Promise<void> {\n\tawait publish(event.eventId, event.payload);\n}\n\nexport async function subscribeToEvent(\n\teventId: string,\n\tonMessage: (payload: any) => Promise<void>\n): Promise<void> {\n\tif (!connection) {\n\t\tconsole.warn(`[RabbitMQ] subscribe called before connection initialized, skipping [${eventId}]`);\n\t\treturn;\n\t}\n\n\tconst wrapper = await createQueueChannel(eventId);\n\tawait wrapper.consume(eventId, msg => handleMsg(wrapper, msg, onMessage, eventId));\n\tconsole.log(`Subscribed to event [${eventId}]`);\n}\n\nexport async function pollEventMessages(\n\teventId: string,\n\tonMessage: (payloads: any[]) => Promise<void>,\n\tlimit?: number\n): Promise<void> {\n\tif (!connection) {\n\t\tconsole.warn(`[RabbitMQ] poll called before connection initialized, skipping [${eventId}]`);\n\t\treturn;\n\t}\n\n\tif (!pollChannels.has(eventId)) {\n\t\tpollChannels.set(eventId, await createQueueChannel(eventId));\n\t}\n\n\tconst wrapper = pollChannels.get(eventId)!;\n\tconst max = limit ?? Infinity;\n\tconst msgs: amqp.Message[] = [];\n\n\twhile (msgs.length < max) {\n\t\tconst msg = await wrapper.get(eventId, { noAck: false });\n\t\tif (!msg) break;\n\t\tmsgs.push(msg);\n\t}\n\n\tif (msgs.length === 0) return;\n\n\ttry {\n\t\tconst payloads = msgs.map(msg => JSON.parse(msg.content.toString()));\n\t\tawait onMessage(payloads);\n\t\tmsgs.forEach(msg => wrapper.ack(msg));\n\t} catch (err) {\n\t\tawait getLibraries()\n\t\t\t.getLoggerKit()\n\t\t\t.error(`Error handling [${eventId}]`, err, { tag: LogTag.INFRA_QUEUE });\n\t\tmsgs.forEach(msg => wrapper.nack(msg, false, true));\n\t}\n}\n\nexport async function closeRabbitMQConnection(): Promise<void> {\n\tif (pubChannelWrapper) await pubChannelWrapper.close();\n\tawait Promise.all([...pollChannels.values()].map(ch => ch.close()));\n\tif (connection) await connection.close();\n\tconsole.log(`EventBus closed for instance [${getInstanceId()}]`);\n}"]}
@@ -5,9 +5,9 @@ interface AuthOptions {
5
5
  autoRefresh?: boolean;
6
6
  }
7
7
  export declare function createAuthenticatedProcedure(options: AuthOptions): import("@trpc/server").TRPCProcedureBuilder<import("../context").LyxaHTTPContext, object, {
8
- req: import("http").IncomingMessage;
9
8
  res: import("http").ServerResponse<import("http").IncomingMessage>;
10
9
  tokenType: TokenType | undefined;
10
+ req: import("http").IncomingMessage;
11
11
  requestId: string | undefined;
12
12
  entity: import("../context").EntityContext | undefined;
13
13
  usedRefreshToken: boolean | undefined;
@@ -4,9 +4,9 @@ interface RoleProtectedOptions {
4
4
  allowedRoles: string[];
5
5
  }
6
6
  export declare function createRoleProtectedProcedure(options: RoleProtectedOptions): import("@trpc/server").TRPCProcedureBuilder<import("../context").LyxaHTTPContext, object, {
7
- req: import("http").IncomingMessage;
8
7
  res: import("http").ServerResponse<import("http").IncomingMessage>;
9
8
  tokenType: import("../../auth").TokenType | undefined;
9
+ req: import("http").IncomingMessage;
10
10
  requestId: string | undefined;
11
11
  entity: import("../context").EntityContext | undefined;
12
12
  usedRefreshToken: boolean | undefined;
@@ -3,9 +3,9 @@ interface PhoneVerifiedOptions {
3
3
  entityTypes: AuthEntityType[];
4
4
  }
5
5
  export declare function createPhoneVerifiedProcedure(options: PhoneVerifiedOptions): import("@trpc/server").TRPCProcedureBuilder<import("../context").LyxaHTTPContext, object, {
6
- req: import("http").IncomingMessage;
7
6
  res: import("http").ServerResponse<import("http").IncomingMessage>;
8
7
  tokenType: import("../../auth").TokenType | undefined;
8
+ req: import("http").IncomingMessage;
9
9
  requestId: string | undefined;
10
10
  entity: import("../context").EntityContext | undefined;
11
11
  usedRefreshToken: boolean | undefined;
@@ -5,9 +5,9 @@ interface AuthOptions {
5
5
  autoRefresh?: boolean;
6
6
  }
7
7
  export declare function publicUserDecoder(options: AuthOptions): import("@trpc/server").TRPCProcedureBuilder<import("../context").LyxaHTTPContext, object, {
8
- req: import("http").IncomingMessage;
9
8
  res: import("http").ServerResponse<import("http").IncomingMessage>;
10
9
  tokenType: TokenType | undefined;
10
+ req: import("http").IncomingMessage;
11
11
  requestId: string | undefined;
12
12
  entity: import("../context").EntityContext | undefined;
13
13
  usedRefreshToken: boolean | undefined;
@@ -22,7 +22,7 @@ Perfect for sharing types between frontend and backend applications.
22
22
 
23
23
  ## Version
24
24
 
25
- Version: 1.4.118
25
+ Version: 1.4.120
26
26
 
27
27
  ## Dependencies
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/types",
3
- "version": "1.4.118",
3
+ "version": "1.4.120",
4
4
  "description": "Lyxa type definitions and validation schemas for both frontend and backend",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",
@@ -26,8 +26,8 @@ export declare const FilterSchema: z.ZodOptional<z.ZodObject<{
26
26
  searchFields?: string[] | undefined;
27
27
  } | undefined;
28
28
  sort?: Record<string, 1 | -1> | undefined;
29
- populate?: any;
30
29
  select?: Record<string, 0 | 1> | undefined;
30
+ populate?: any;
31
31
  query?: Record<string, any> | undefined;
32
32
  }, {
33
33
  search?: {
@@ -36,8 +36,8 @@ export declare const FilterSchema: z.ZodOptional<z.ZodObject<{
36
36
  } | undefined;
37
37
  sort?: Record<string, 1 | -1> | undefined;
38
38
  size?: number | undefined;
39
- populate?: any;
40
39
  select?: Record<string, 0 | 1> | undefined;
40
+ populate?: any;
41
41
  query?: Record<string, any> | undefined;
42
42
  page?: number | undefined;
43
43
  }>>;
@@ -736,12 +736,12 @@ export declare const GetByIdInputSchema: z.ZodObject<{
736
736
  populate: z.ZodOptional<z.ZodUnion<[z.ZodType<any, z.ZodTypeDef, any>, z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">]>>;
737
737
  }, "strip", z.ZodTypeAny, {
738
738
  _id: import("mongoose").Types.ObjectId;
739
- populate?: any;
740
739
  select?: Record<string, 0 | 1> | undefined;
740
+ populate?: any;
741
741
  }, {
742
742
  _id: string | import("mongoose").Types.ObjectId;
743
- populate?: any;
744
743
  select?: Record<string, 0 | 1> | undefined;
744
+ populate?: any;
745
745
  }>;
746
746
  export type GetByIdInputDTO = DTO<typeof GetByIdInputSchema>;
747
747
  export declare const GetProductByIdInputSchema: z.ZodObject<{
@@ -754,12 +754,12 @@ export declare const GetProductByIdInputSchema: z.ZodObject<{
754
754
  _id: import("mongoose").Types.ObjectId;
755
755
  withAttributeHiddenItems: boolean;
756
756
  withAddonsHiddenItems: boolean;
757
- populate?: any;
758
757
  select?: Record<string, 0 | 1> | undefined;
758
+ populate?: any;
759
759
  }, {
760
760
  _id: string | import("mongoose").Types.ObjectId;
761
- populate?: any;
762
761
  select?: Record<string, 0 | 1> | undefined;
762
+ populate?: any;
763
763
  withAttributeHiddenItems?: boolean | undefined;
764
764
  withAddonsHiddenItems?: boolean | undefined;
765
765
  }>;
@@ -773,15 +773,15 @@ export declare const GetOrderByIdInputSchema: z.ZodObject<{
773
773
  userOrderCompletionScope: z.ZodOptional<z.ZodNativeEnum<typeof UserOrderCompletionScope>>;
774
774
  }, "strip", z.ZodTypeAny, {
775
775
  _id: import("mongoose").Types.ObjectId;
776
- populate?: any;
777
776
  select?: Record<string, 0 | 1> | undefined;
777
+ populate?: any;
778
778
  groupByCategories?: boolean | undefined;
779
779
  getParentCategory?: boolean | undefined;
780
780
  userOrderCompletionScope?: UserOrderCompletionScope | undefined;
781
781
  }, {
782
782
  _id: string | import("mongoose").Types.ObjectId;
783
- populate?: any;
784
783
  select?: Record<string, 0 | 1> | undefined;
784
+ populate?: any;
785
785
  groupByCategories?: boolean | undefined;
786
786
  getParentCategory?: boolean | undefined;
787
787
  userOrderCompletionScope?: UserOrderCompletionScope | undefined;
@@ -791,11 +791,11 @@ export declare const GetByTokenInputSchema: z.ZodOptional<z.ZodObject<{
791
791
  select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
792
792
  populate: z.ZodOptional<z.ZodUnion<[z.ZodType<any, z.ZodTypeDef, any>, z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">]>>;
793
793
  }, "strip", z.ZodTypeAny, {
794
- populate?: any;
795
794
  select?: Record<string, 0 | 1> | undefined;
796
- }, {
797
795
  populate?: any;
796
+ }, {
798
797
  select?: Record<string, 0 | 1> | undefined;
798
+ populate?: any;
799
799
  }>>;
800
800
  export type GetByTokenInputDTO = DTO<typeof GetByTokenInputSchema>;
801
801
  export declare const GetOneQuerySchema: z.ZodObject<{
@@ -803,12 +803,12 @@ export declare const GetOneQuerySchema: z.ZodObject<{
803
803
  select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
804
804
  populate: z.ZodOptional<z.ZodUnion<[z.ZodType<any, z.ZodTypeDef, any>, z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">]>>;
805
805
  }, "strip", z.ZodTypeAny, {
806
- populate?: any;
807
806
  select?: Record<string, 0 | 1> | undefined;
807
+ populate?: any;
808
808
  query?: Record<string, any> | undefined;
809
809
  }, {
810
- populate?: any;
811
810
  select?: Record<string, 0 | 1> | undefined;
811
+ populate?: any;
812
812
  query?: Record<string, any> | undefined;
813
813
  }>;
814
814
  export type GetOneQueryDTO = DTO<typeof GetOneQuerySchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/core",
3
- "version": "1.4.118",
3
+ "version": "1.4.120",
4
4
  "description": "The Core system of the Lyxa services.",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",