@lyxa.ai/core 1.1.31 → 1.1.33

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.
@@ -22,6 +22,6 @@ export declare class Parent extends TimeStamps {
22
22
  profilePhoto?: string;
23
23
  document?: ParentDocument;
24
24
  shopCount?: number;
25
- allowTakingOrders?: boolean;
26
- showCustomerNumber?: boolean;
25
+ allowTakingOrders: boolean;
26
+ showCustomerNumber: boolean;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parent.model.js","sourceRoot":"/","sources":["libraries/mongo/models/parent.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref, Severity } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ChargeType, CounterType, ItemType, Status } from '../../../utilities/enum';\nimport { Admin } from './admin.model';\nimport { Charge } from './embedded/charge.model';\nimport { ParentDocument } from './embedded/parent-document.model';\nimport { Address } from './shared/address.model';\nimport { Duration } from './shared/duration.model';\nimport { Shop } from './shop.model';\nimport { generateId } from '../../../utilities/id-generator';\nimport { CounterModel } from '.';\n\n@index({ name: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@index({ email: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@pre<Parent>('save',async function(){\n\tif(this.isNew){\n this.parentId = await generateId(CounterModel,CounterType.PARENT);\n\t}\n})\n@modelOptions({\n\tschemaOptions: { collection: 'parents', toJSON: { virtuals: true }, toObject: { virtuals: true } },\n\toptions: {\n\t\tallowMixed: Severity.ALLOW,\n\t},\n})\nexport class Parent extends TimeStamps {\n\t@prop({ required: true, type: String, maxlength: 50 })\n\tpublic name!: string;\n\n\t@prop({type: String,unique: true})\n\tpublic parentId: string\n\n\t@prop({ required: true, type: String })\n\tpublic email!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic phoneNumber!: string;\n\n\t@prop({ required: true, type: Address })\n\tpublic address!: Address;\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: Duration })\n\tpublic commissionDuration!: Duration;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: Boolean, default: true })\n\tpublic isServiceFeeCharged!: boolean;\n\n\t@prop({ ref: () => Admin })\n\tpublic businessDevExecutive?: Ref<Admin>;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String })\n\tpublic profilePhoto?: string;\n\n\t@prop({ type: ParentDocument })\n\tpublic document?: ParentDocument;\n\n\t@prop({\n\t\tref: () => Shop,\n\t\tforeignField: 'parent',\n\t\tlocalField: '_id',\n\t\tcount: true,\n\t\tmatch: { deletedAt: null },\n\t})\n\tpublic shopCount?: number;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic allowTakingOrders?: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic showCustomerNumber?: boolean;\n}\n"]}
1
+ {"version":3,"file":"parent.model.js","sourceRoot":"/","sources":["libraries/mongo/models/parent.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref, Severity } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ChargeType, CounterType, ItemType, Status } from '../../../utilities/enum';\nimport { Admin } from './admin.model';\nimport { Charge } from './embedded/charge.model';\nimport { ParentDocument } from './embedded/parent-document.model';\nimport { Address } from './shared/address.model';\nimport { Duration } from './shared/duration.model';\nimport { Shop } from './shop.model';\nimport { generateId } from '../../../utilities/id-generator';\nimport { CounterModel } from '.';\n\n@index({ name: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@index({ email: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@pre<Parent>('save',async function(){\n\tif(this.isNew){\n this.parentId = await generateId(CounterModel,CounterType.PARENT);\n\t}\n})\n@modelOptions({\n\tschemaOptions: { collection: 'parents', toJSON: { virtuals: true }, toObject: { virtuals: true } },\n\toptions: {\n\t\tallowMixed: Severity.ALLOW,\n\t},\n})\nexport class Parent extends TimeStamps {\n\t@prop({ required: true, type: String, maxlength: 50 })\n\tpublic name!: string;\n\n\t@prop({type: String,unique: true})\n\tpublic parentId: string\n\n\t@prop({ required: true, type: String })\n\tpublic email!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic phoneNumber!: string;\n\n\t@prop({ required: true, type: Address })\n\tpublic address!: Address;\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: Duration })\n\tpublic commissionDuration!: Duration;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: Boolean, default: true })\n\tpublic isServiceFeeCharged!: boolean;\n\n\t@prop({ ref: () => Admin })\n\tpublic businessDevExecutive?: Ref<Admin>;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String })\n\tpublic profilePhoto?: string;\n\n\t@prop({ type: ParentDocument })\n\tpublic document?: ParentDocument;\n\n\t@prop({\n\t\tref: () => Shop,\n\t\tforeignField: 'parent',\n\t\tlocalField: '_id',\n\t\tcount: true,\n\t\tmatch: { deletedAt: null },\n\t})\n\tpublic shopCount?: number;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic allowTakingOrders: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic showCustomerNumber: boolean;\n}\n"]}
@@ -57,4 +57,6 @@ export declare class Shop extends TimeStamps {
57
57
  vat_reg_number?: number;
58
58
  fcmTokens?: string[];
59
59
  searchFields?: ShopSearchFields;
60
+ allowTakingOrders: boolean;
61
+ showCustomerNumber: boolean;
60
62
  }
@@ -72,6 +72,8 @@ let Shop = class Shop extends defaultClasses_1.TimeStamps {
72
72
  vat_reg_number;
73
73
  fcmTokens;
74
74
  searchFields;
75
+ allowTakingOrders;
76
+ showCustomerNumber;
75
77
  };
76
78
  exports.Shop = Shop;
77
79
  __decorate([
@@ -266,6 +268,14 @@ __decorate([
266
268
  (0, typegoose_1.prop)({ type: shop_search_fields_model_1.ShopSearchFields }),
267
269
  __metadata("design:type", shop_search_fields_model_1.ShopSearchFields)
268
270
  ], Shop.prototype, "searchFields", void 0);
271
+ __decorate([
272
+ (0, typegoose_1.prop)({ type: Boolean, default: false }),
273
+ __metadata("design:type", Boolean)
274
+ ], Shop.prototype, "allowTakingOrders", void 0);
275
+ __decorate([
276
+ (0, typegoose_1.prop)({ type: Boolean, default: false }),
277
+ __metadata("design:type", Boolean)
278
+ ], Shop.prototype, "showCustomerNumber", void 0);
269
279
  exports.Shop = Shop = __decorate([
270
280
  (0, typegoose_1.modelOptions)({
271
281
  schemaOptions: { collection: 'shops' },
@@ -1 +1 @@
1
- {"version":3,"file":"shop.model.js","sourceRoot":"/","sources":["libraries/mongo/models/shop.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { modelOptions, prop, Ref, Severity, index, pre } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CounterType, ItemType, ShopOnlineStatus, Status } from '../../../utilities/enum';\nimport { Brand } from './brand.model';\nimport { ShopDocument } from './embedded/shop-document.model';\nimport { Parent } from './parent.model';\nimport { Address } from './shared/address.model';\nimport { StartEndTime, WorkHourSetting } from './shared/work-hour.model';\nimport { Tag } from './tag.model';\nimport { DeliveryInfo } from './embedded/delivery-info.model';\nimport { handleShopPreSave } from '../utilities/shop.hooks';\nimport { ShopSearchFields } from './embedded/shop-search-fields.model';\nimport { generateId } from '../../../utilities/id-generator';\nimport { CounterModel } from '.';\n\n@modelOptions({\n\tschemaOptions: { collection: 'shops' },\n\toptions: { allowMixed: Severity.ALLOW },\n})\n@index({ name: 1, itemType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@index({ parent: 1, status: 1, isVisibleToUser: 1 }, { partialFilterExpression: { deletedAt: null } })\n@index({ status: 1, createdAt: -1 }, { partialFilterExpression: { deletedAt: null } })\n@pre<Shop>('save', async function (next) {\n\tawait handleShopPreSave.call(this);\n\n\tnext();\n})\n\n@pre<Shop>('save', async function () {\n\tif (this.isNew) {\n\t\tthis.shopId = await generateId(CounterModel, CounterType.SHOP);\n\t}\n})\nexport class Shop extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic shopId: string;\n\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic ownerName!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic email!: string;\n\n\t@prop({ required: true, ref: () => Parent })\n\tpublic parent: Ref<Parent>;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status!: Status;\n\n\t@prop({ required: true, ref: () => Brand })\n\tpublic brand: Ref<Brand>;\n\n\t@prop({ type: Number, default: 1, min: 1, max: 4 })\n\tpublic priceRange?: number;\n\n\t@prop({ required: true, type: String })\n\tpublic phoneNumber!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic userPhoneNumber!: string;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic additionalPhoneNumbers?: string[];\n\n\t@prop({ type: String, maxlength: 100 })\n\tpublic bobContactName?: string;\n\n\t@prop({ type: String, maxlength: 15 })\n\tpublic bobContactPhoneNumber?: string;\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: String })\n\tpublic banner?: string;\n\n\t@prop({ type: ShopDocument })\n\tpublic document?: ShopDocument;\n\n\t@prop({\n\t\ttype: String,\n\t\tenum: ShopOnlineStatus,\n\t\tdefault: ShopOnlineStatus.OFFLINE,\n\t})\n\tpublic onlineStatus?: ShopOnlineStatus;\n\n\t@prop({ type: WorkHourSetting })\n\tpublic workHourSetting?: WorkHourSetting;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic dietaries?: string[];\n\n\t@prop({ ref: () => Tag, default: [] })\n\tpublic tags?: Ref<Tag>[];\n\n\t@prop({ required: true, type: Boolean })\n\tpublic isBeirutAuthentic!: boolean;\n\n\t@prop({ required: true, type: Boolean })\n\tpublic isVisibleToUser!: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isShopDelivery?: boolean;\n\n\t@prop({ type: Number })\n\tpublic deliveryFee?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic minimumOrderAmount?: number;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic orderCapacity?: number;\n\n\t@prop({ type: () => [StartEndTime], default: [] })\n\tpublic shopActiveTimingsOfCurrentDate?: StartEndTime[];\n\n\t@prop({ type: DeliveryInfo })\n\tpublic deliveryInfo?: DeliveryInfo;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n\n\t// Setting\n\t@prop({ type: Boolean, default: false })\n\tpublic allowSpecialInstructions?: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isRiderNoteVisible?: boolean;\n\n\t@prop({ type: String })\n\tpublic riderNote?: string;\n\n\t@prop({ type: Number, default: 10 })\n\tpublic defaultPreparationTime?: number;\n\n\t@prop({ type: Number, default: null })\n\texchangeRate?: number;\n\n\t@prop({ required: false, type: () => Boolean })\n\tpublic isFavouriteCategoryVisible?: boolean;\n\n\t@prop({ required: false, type: () => String })\n\tpublic favouriteCategoryTitle?: string;\n\n\t@prop({ required: false, type: () => Boolean })\n\tpublic isBestSellerCategoryVisible?: boolean;\n\n\t@prop({ required: false, type: () => String })\n\tpublic bestSellerCategoryTitle?: string;\n\n\t@prop({ required: true, type: () => Boolean })\n\tpublic orderCapacityEnabled!: boolean;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic avgRating?: number;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic ordersCount?: number;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic customersCount?: number;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic vat_reg_number?: number;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic fcmTokens?: string[];\n\n\t@prop({ type: ShopSearchFields })\n\tpublic searchFields?: ShopSearchFields\n}\n"]}
1
+ {"version":3,"file":"shop.model.js","sourceRoot":"/","sources":["libraries/mongo/models/shop.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { modelOptions, prop, Ref, Severity, index, pre } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CounterType, ItemType, ShopOnlineStatus, Status } from '../../../utilities/enum';\nimport { Brand } from './brand.model';\nimport { ShopDocument } from './embedded/shop-document.model';\nimport { Parent } from './parent.model';\nimport { Address } from './shared/address.model';\nimport { StartEndTime, WorkHourSetting } from './shared/work-hour.model';\nimport { Tag } from './tag.model';\nimport { DeliveryInfo } from './embedded/delivery-info.model';\nimport { handleShopPreSave } from '../utilities/shop.hooks';\nimport { ShopSearchFields } from './embedded/shop-search-fields.model';\nimport { generateId } from '../../../utilities/id-generator';\nimport { CounterModel } from '.';\n\n@modelOptions({\n\tschemaOptions: { collection: 'shops' },\n\toptions: { allowMixed: Severity.ALLOW },\n})\n@index({ name: 1, itemType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@index({ parent: 1, status: 1, isVisibleToUser: 1 }, { partialFilterExpression: { deletedAt: null } })\n@index({ status: 1, createdAt: -1 }, { partialFilterExpression: { deletedAt: null } })\n@pre<Shop>('save', async function (next) {\n\tawait handleShopPreSave.call(this);\n\n\tnext();\n})\n\n@pre<Shop>('save', async function () {\n\tif (this.isNew) {\n\t\tthis.shopId = await generateId(CounterModel, CounterType.SHOP);\n\t}\n})\nexport class Shop extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic shopId: string;\n\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic ownerName!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic email!: string;\n\n\t@prop({ required: true, ref: () => Parent })\n\tpublic parent: Ref<Parent>;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status!: Status;\n\n\t@prop({ required: true, ref: () => Brand })\n\tpublic brand: Ref<Brand>;\n\n\t@prop({ type: Number, default: 1, min: 1, max: 4 })\n\tpublic priceRange?: number;\n\n\t@prop({ required: true, type: String })\n\tpublic phoneNumber!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic userPhoneNumber!: string;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic additionalPhoneNumbers?: string[];\n\n\t@prop({ type: String, maxlength: 100 })\n\tpublic bobContactName?: string;\n\n\t@prop({ type: String, maxlength: 15 })\n\tpublic bobContactPhoneNumber?: string;\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: String })\n\tpublic banner?: string;\n\n\t@prop({ type: ShopDocument })\n\tpublic document?: ShopDocument;\n\n\t@prop({\n\t\ttype: String,\n\t\tenum: ShopOnlineStatus,\n\t\tdefault: ShopOnlineStatus.OFFLINE,\n\t})\n\tpublic onlineStatus?: ShopOnlineStatus;\n\n\t@prop({ type: WorkHourSetting })\n\tpublic workHourSetting?: WorkHourSetting;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic dietaries?: string[];\n\n\t@prop({ ref: () => Tag, default: [] })\n\tpublic tags?: Ref<Tag>[];\n\n\t@prop({ required: true, type: Boolean })\n\tpublic isBeirutAuthentic!: boolean;\n\n\t@prop({ required: true, type: Boolean })\n\tpublic isVisibleToUser!: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isShopDelivery?: boolean;\n\n\t@prop({ type: Number })\n\tpublic deliveryFee?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic minimumOrderAmount?: number;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic orderCapacity?: number;\n\n\t@prop({ type: () => [StartEndTime], default: [] })\n\tpublic shopActiveTimingsOfCurrentDate?: StartEndTime[];\n\n\t@prop({ type: DeliveryInfo })\n\tpublic deliveryInfo?: DeliveryInfo;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n\n\t// Setting\n\t@prop({ type: Boolean, default: false })\n\tpublic allowSpecialInstructions?: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isRiderNoteVisible?: boolean;\n\n\t@prop({ type: String })\n\tpublic riderNote?: string;\n\n\t@prop({ type: Number, default: 10 })\n\tpublic defaultPreparationTime?: number;\n\n\t@prop({ type: Number, default: null })\n\texchangeRate?: number;\n\n\t@prop({ required: false, type: () => Boolean })\n\tpublic isFavouriteCategoryVisible?: boolean;\n\n\t@prop({ required: false, type: () => String })\n\tpublic favouriteCategoryTitle?: string;\n\n\t@prop({ required: false, type: () => Boolean })\n\tpublic isBestSellerCategoryVisible?: boolean;\n\n\t@prop({ required: false, type: () => String })\n\tpublic bestSellerCategoryTitle?: string;\n\n\t@prop({ required: true, type: () => Boolean })\n\tpublic orderCapacityEnabled!: boolean;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic avgRating?: number;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic ordersCount?: number;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic customersCount?: number;\n\n\t@prop({ default: 0, type: () => Number })\n\tpublic vat_reg_number?: number;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic fcmTokens?: string[];\n\n\t@prop({ type: ShopSearchFields })\n\tpublic searchFields?: ShopSearchFields\n\n\t@prop({ type: Boolean, default: false })\n\tpublic allowTakingOrders: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic showCustomerNumber: boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"socket-event-registry.js","sourceRoot":"/","sources":["libraries/socket/core/socket-event-registry.ts"],"names":[],"mappings":";;;AAGA,2EAAiE;AAajE,MAAa,YAAY;IACxB,MAAM,CAAC,eAAe,CAA4B,SAAY;QAC7D,OAAO,oCAAQ,CAAC,SAAS,CAAgB,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,kBAAkB,CAA4B,eAAkB,EAAE,KAAkB;QAC1F,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;QACtD,OAAO,GAAG,eAAe,IAAI,GAAG,EAAE,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,WAAW,CAA4B,eAAkB,EAAE,IAAkB;QAC1F,MAAM,EAAE,IAAI,EAAE,GAAG,oCAAQ,CAAC,eAAe,CAAC,CAAC;QAC3C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAgB,CAAC;IACtC,CAAC;CAED;AAjBD,oCAiBC","sourcesContent":["import { z } from 'zod';\nimport { SocketEventType } from '../../../utilities/enum';\nimport { BaseSocketEvent } from '../BaseSocketEvent';\nimport { Registry, REGISTRY } from './socket-event-registry.map';\nimport { EventRegistry } from '../../event/decorators/metadata';\n\ninterface EventRegistration<TEvent extends BaseSocketEvent<any, any>> {\n\tctor: new (payload: z.input<TEvent['outputSchema']>) => TEvent;\n\tschemas: { input: TEvent['inputSchema']; output: TEvent['outputSchema'] };\n\tidentifier?: (input: z.infer<TEvent['inputSchema']>) => string;\n}\n\ntype InputFor<T extends SocketEventType> = z.infer<Registry[T]['schemas']['input']>;\ntype OutputFor<T extends SocketEventType> = z.infer<Registry[T]['schemas']['output']>;\ntype EventFor<T extends SocketEventType> = InstanceType<Registry[T]['ctor']>;\n\nexport class EventFactory {\n\tstatic getRegistration<T extends SocketEventType>(eventType: T) {\n\t\treturn REGISTRY[eventType] as Registry[T];\n\t}\n\n\tstatic getSubscriptionKey<T extends SocketEventType>(SocketEventType: T, input: InputFor<T>) {\n\t\tconst { identifier, schemas } = this.getRegistration(SocketEventType);\n\t\tconst validatedInput = schemas.input.parse(input);\n\t\tconst key = identifier?.(validatedInput) ?? 'default';\n\t\treturn `${SocketEventType}:${key}`;\n\t}\n\n\tpublic static createEvent<T extends SocketEventType>(SocketEventType: T, data: OutputFor<T>): EventFor<T> {\n\t\tconst { ctor } = REGISTRY[SocketEventType];\n\t\treturn new ctor(data) as EventFor<T>;\n\t}\n\n}\n\nexport type { Registry, EventFor, InputFor, OutputFor, EventRegistration };\n"]}
1
+ {"version":3,"file":"socket-event-registry.js","sourceRoot":"/","sources":["libraries/socket/core/socket-event-registry.ts"],"names":[],"mappings":";;;AAGA,2EAA+D;AAiB/D,MAAa,YAAY;IACrB,MAAM,CAAC,eAAe,CAA4B,SAAY;QAC1D,OAAO,oCAAQ,CAAC,SAAS,CAAgB,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,kBAAkB,CAA4B,eAAkB,EAAE,KAAkB;QACvF,MAAM,EAAC,UAAU,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;QACtD,OAAO,GAAG,eAAe,IAAI,GAAG,EAAE,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,WAAW,CAA4B,eAAkB,EAAE,IAAkB;QACvF,MAAM,EAAC,IAAI,EAAC,GAAG,oCAAQ,CAAC,eAAe,CAAC,CAAC;QACzC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAgB,CAAC;IACzC,CAAC;CAEJ;AAjBD,oCAiBC","sourcesContent":["import {z} from 'zod';\nimport {SocketEventType} from '../../../utilities/enum';\nimport {BaseSocketEvent} from '../BaseSocketEvent';\nimport {Registry, REGISTRY} from './socket-event-registry.map';\nimport {TrackedData} from \"@trpc/server/unstable-core-do-not-import\";\n\ninterface EventRegistration<TEvent extends BaseSocketEvent<any, any>> {\n ctor: new (payload: z.input<TEvent['outputSchema']>) => TEvent;\n schemas: { input: TEvent['inputSchema']; output: TEvent['outputSchema'] };\n identifier?: (input: z.infer<TEvent['inputSchema']>) => string;\n}\n\ntype InputFor<T extends SocketEventType> =\n z.infer<Registry[T]['schemas']['input']>;\ntype OutputFor<T extends SocketEventType> =\n z.infer<Registry[T]['schemas']['output']>;\ntype EventFor<T extends SocketEventType> =\n InstanceType<Registry[T]['ctor']>;\n\n\nexport class EventFactory {\n static getRegistration<T extends SocketEventType>(eventType: T) {\n return REGISTRY[eventType] as Registry[T];\n }\n\n static getSubscriptionKey<T extends SocketEventType>(SocketEventType: T, input: InputFor<T>) {\n const {identifier, schemas} = this.getRegistration(SocketEventType);\n const validatedInput = schemas.input.parse(input);\n const key = identifier?.(validatedInput) ?? 'default';\n return `${SocketEventType}:${key}`;\n }\n\n public static createEvent<T extends SocketEventType>(SocketEventType: T, data: OutputFor<T>): EventFor<T> {\n const {ctor} = REGISTRY[SocketEventType];\n return new ctor(data) as EventFor<T>;\n }\n\n}\n\nexport type {Registry, EventFor, InputFor, OutputFor, EventRegistration};\n"]}
@@ -1,12 +1,21 @@
1
1
  import { SocketEventType } from '../../../utilities/enum';
2
- import { AuthEntityType } from '../../auth';
3
2
  import { OutputFor } from '../../socket';
4
- export declare function createSocketSubscriptionProcedure<T extends SocketEventType>({ eventType, entityTypes, getId, }: {
5
- eventType: T;
6
- entityTypes: AuthEntityType[];
7
- getId: (out: OutputFor<T>) => string;
8
- }): import("@trpc/server").TRPCSubscriptionProcedure<{
9
- input: unknown;
10
- output: AsyncIterable<import("@trpc/server/dist/unstable-core-do-not-import.d-C8vB_hCN.cjs").TrackedData<unknown>, void, unknown>;
11
- meta: object;
12
- }>;
3
+ interface SubscriptionContext {
4
+ entity?: {
5
+ id: string;
6
+ };
7
+ signal?: AbortSignal;
8
+ }
9
+ interface SubscriptionOpts<TInput = any> {
10
+ ctx: SubscriptionContext;
11
+ input: TInput;
12
+ }
13
+ interface CreateSubscriptionOptions<TEventType extends SocketEventType> {
14
+ eventType: TEventType;
15
+ ctx: SubscriptionContext;
16
+ input: any;
17
+ getTrackingId?: (payload: OutputFor<TEventType>) => string;
18
+ }
19
+ export declare function createSocketSubscription<TEventType extends SocketEventType>(options: CreateSubscriptionOptions<TEventType>): AsyncGenerator<import("@trpc/server").TrackedEnvelope<OutputFor<TEventType>>, void, unknown>;
20
+ export declare function socketSubscription<TEventType extends SocketEventType>(eventType: TEventType, getTrackingId?: (payload: OutputFor<TEventType>) => string): (opts: SubscriptionOpts) => AsyncGenerator<import("@trpc/server").TrackedEnvelope<OutputFor<TEventType>>, void, unknown>;
21
+ export {};
@@ -1,40 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSocketSubscriptionProcedure = createSocketSubscriptionProcedure;
4
- const auth_1 = require("./auth");
3
+ exports.createSocketSubscription = createSocketSubscription;
4
+ exports.socketSubscription = socketSubscription;
5
5
  const socket_1 = require("../../socket");
6
6
  const crypto_1 = require("crypto");
7
7
  const instance_utils_1 = require("../../../utilities/instance.utils");
8
8
  const ws_1 = require("ws");
9
9
  const server_1 = require("@trpc/server");
10
- function createSocketSubscriptionProcedure({ eventType, entityTypes, getId, }) {
10
+ async function* createSocketSubscription(options) {
11
+ const { eventType, ctx, input, getTrackingId } = options;
11
12
  const registration = socket_1.EventFactory.getRegistration(eventType);
12
- const { schemas } = registration;
13
- return (0, auth_1.createAuthenticatedProcedure)({ entityTypes })
14
- .input(schemas.input)
15
- .output((0, socket_1.zAsyncIterable)({
16
- yield: schemas.output,
17
- tracked: true,
18
- }))
19
- .subscription(async function* (opts) {
20
- const socketId = (0, crypto_1.randomUUID)();
21
- const localEE = new socket_1.LocalEventEmitter(socketId);
22
- const entityId = opts.ctx.entity.id;
23
- const eventKey = socket_1.EventFactory.getSubscriptionKey(eventType, opts.input);
24
- const instanceId = (0, instance_utils_1.getInstanceId)();
25
- const socketInfo = { socketId, eventKey, instanceId };
26
- await (0, socket_1.connectEntityToSocketEvent)(entityId, socketInfo);
27
- socket_1.LocalSubs.bind(entityId, eventKey, localEE);
28
- opts.signal?.addEventListener('abort', () => {
29
- socket_1.LocalSubs.unbind(entityId, eventKey, localEE);
30
- (0, socket_1.disconnectEntityFromSocketEvent)(entityId, socketInfo).catch(console.error);
31
- });
32
- for await (const [data] of (0, ws_1.on)(localEE.ee, eventKey, {
33
- signal: opts.signal,
34
- })) {
35
- const payload = data;
36
- yield (0, server_1.tracked)(getId(payload), payload);
37
- }
13
+ const socketId = (0, crypto_1.randomUUID)();
14
+ const localEE = new socket_1.LocalEventEmitter(socketId);
15
+ const entityId = ctx.entity.id;
16
+ const eventKey = socket_1.EventFactory.getSubscriptionKey(eventType, input);
17
+ const instanceId = (0, instance_utils_1.getInstanceId)();
18
+ const socketInfo = { socketId, eventKey, instanceId };
19
+ await (0, socket_1.connectEntityToSocketEvent)(entityId, socketInfo);
20
+ socket_1.LocalSubs.bind(entityId, eventKey, localEE);
21
+ ctx.signal?.addEventListener('abort', () => {
22
+ socket_1.LocalSubs.unbind(entityId, eventKey, localEE);
23
+ (0, socket_1.disconnectEntityFromSocketEvent)(entityId, socketInfo).catch(console.error);
24
+ });
25
+ for await (const [data] of (0, ws_1.on)(localEE.ee, eventKey, { signal: ctx.signal })) {
26
+ const payload = data;
27
+ const id = getTrackingId
28
+ ? getTrackingId(payload)
29
+ : payload._id?.toString() ?? (0, crypto_1.randomUUID)();
30
+ yield (0, server_1.tracked)(id, payload);
31
+ }
32
+ }
33
+ function socketSubscription(eventType, getTrackingId) {
34
+ return (opts) => createSocketSubscription({
35
+ eventType,
36
+ ctx: opts.ctx,
37
+ input: opts.input,
38
+ getTrackingId,
38
39
  });
39
40
  }
40
41
  //# sourceMappingURL=createSocketSubscriptionProcedure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSocketSubscriptionProcedure.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/createSocketSubscriptionProcedure.ts"],"names":[],"mappings":";;AAiBA,8EA+CC;AA9DD,iCAAsD;AACtD,yCAQsB;AACtB,mCAAoC;AACpC,sEAAkE;AAClE,2BAAwB;AACxB,yCAAuC;AAEvC,SAAgB,iCAAiC,CAA4B,EAC5E,SAAS,EACT,WAAW,EACX,KAAK,GAKL;IACA,MAAM,YAAY,GAAG,qBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,OAAO,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC;SAClD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;SACpB,MAAM,CACN,IAAA,uBAAc,EAAC;QACd,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,OAAO,EAAE,IAAI;KACb,CAAC,CACF;SACA,YAAY,CAAC,KAAK,SAAS,CAAC,EAAE,IAAI;QAClC,MAAM,QAAQ,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,0BAAiB,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,qBAAY,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAC;QACnC,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QAEtD,MAAM,IAAA,mCAA0B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvD,kBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3C,kBAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAA,wCAA+B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAIH,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAA,OAAE,EAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC,EAAE,CAAC;YACJ,MAAM,OAAO,GAAG,IAAW,CAAC;YAC5B,MAAM,IAAA,gBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { SocketEventType } from '../../../utilities/enum';\nimport { AuthEntityType } from '../../auth';\nimport { createAuthenticatedProcedure } from './auth';\nimport {\n\tconnectEntityToSocketEvent,\n\tdisconnectEntityFromSocketEvent,\n\tEventFactory,\n\tLocalEventEmitter,\n\tLocalSubs,\n\tOutputFor,\n\tzAsyncIterable,\n} from '../../socket';\nimport { randomUUID } from 'crypto';\nimport { getInstanceId } from '../../../utilities/instance.utils';\nimport { on } from 'ws';\nimport { tracked } from '@trpc/server';\n\nexport function createSocketSubscriptionProcedure<T extends SocketEventType>({\n\teventType,\n\tentityTypes,\n\tgetId,\n}: {\n\teventType: T;\n\tentityTypes: AuthEntityType[];\n\tgetId: (out: OutputFor<T>) => string;\n}) {\n\tconst registration = EventFactory.getRegistration(eventType);\n\tconst { schemas } = registration;\n\n\treturn createAuthenticatedProcedure({ entityTypes })\n\t\t.input(schemas.input)\n\t\t.output(\n\t\t\tzAsyncIterable({\n\t\t\t\tyield: schemas.output,\n\t\t\t\ttracked: true,\n\t\t\t})\n\t\t)\n\t\t.subscription(async function* (opts) {\n\t\t\tconst socketId = randomUUID();\n\t\t\tconst localEE = new LocalEventEmitter(socketId);\n\n\t\t\tconst entityId = opts.ctx.entity!.id;\n\t\t\tconst eventKey = EventFactory.getSubscriptionKey(eventType, opts.input);\n\n\t\t\tconst instanceId = getInstanceId();\n\t\t\tconst socketInfo = { socketId, eventKey, instanceId };\n\n\t\t\tawait connectEntityToSocketEvent(entityId, socketInfo);\n\t\t\tLocalSubs.bind(entityId, eventKey, localEE);\n\n\t\t\topts.signal?.addEventListener('abort', () => {\n\t\t\t\tLocalSubs.unbind(entityId, eventKey, localEE);\n\t\t\t\tdisconnectEntityFromSocketEvent(entityId, socketInfo).catch(console.error);\n\t\t\t});\n\n\t\t\ttype Out = OutputFor<T>;\n\n\t\t\tfor await (const [data] of on(localEE.ee, eventKey, {\n\t\t\t\tsignal: opts.signal,\n\t\t\t})) {\n\t\t\t\tconst payload = data as Out;\n\t\t\t\tyield tracked(getId(payload), payload);\n\t\t\t}\n\t\t});\n}"]}
1
+ {"version":3,"file":"createSocketSubscriptionProcedure.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/createSocketSubscriptionProcedure.ts"],"names":[],"mappings":";;AA+BA,4DAgCC;AAED,gDAWC;AA3ED,yCAOsB;AACtB,mCAAkC;AAClC,sEAAgE;AAChE,2BAAsB;AACtB,yCAAqC;AAmB9B,KAAK,SAAS,CAAC,CAAC,wBAAwB,CAC3C,OAA8C;IAE9C,MAAM,EAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,GAAG,OAAO,CAAC;IAEvD,MAAM,YAAY,GAAG,qBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,0BAAiB,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAO,CAAC,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,qBAAY,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAC;IACnC,MAAM,UAAU,GAAG,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC;IAEpD,MAAM,IAAA,mCAA0B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,kBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE5C,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACvC,kBAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAA,wCAA+B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAGH,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAA,OAAE,EAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAC,CAAC,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,IAAW,CAAC;QAC5B,MAAM,EAAE,GAAG,aAAa;YACpB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;YACxB,CAAC,CAAE,OAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAA,mBAAU,GAAE,CAAC;QAEvD,MAAM,IAAA,gBAAO,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAC9B,SAAqB,EACrB,aAA0D;IAE1D,OAAO,CAAC,IAAsB,EAAE,EAAE,CAC9B,wBAAwB,CAAC;QACrB,SAAS;QACT,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa;KAChB,CAAC,CAAC;AACX,CAAC","sourcesContent":["import {SocketEventType} from '../../../utilities/enum';\nimport {\n connectEntityToSocketEvent,\n disconnectEntityFromSocketEvent,\n EventFactory,\n LocalEventEmitter,\n LocalSubs,\n OutputFor,\n} from '../../socket';\nimport {randomUUID} from 'crypto';\nimport {getInstanceId} from '../../../utilities/instance.utils';\nimport {on} from 'ws';\nimport {tracked} from '@trpc/server';\n\ninterface SubscriptionContext {\n entity?: { id: string };\n signal?: AbortSignal;\n}\n\ninterface SubscriptionOpts<TInput = any> {\n ctx: SubscriptionContext;\n input: TInput;\n}\n\ninterface CreateSubscriptionOptions<TEventType extends SocketEventType> {\n eventType: TEventType;\n ctx: SubscriptionContext;\n input: any;\n getTrackingId?: (payload: OutputFor<TEventType>) => string;\n}\n\nexport async function* createSocketSubscription<TEventType extends SocketEventType>(\n options: CreateSubscriptionOptions<TEventType>\n) {\n const {eventType, ctx, input, getTrackingId} = options;\n\n const registration = EventFactory.getRegistration(eventType);\n const socketId = randomUUID();\n const localEE = new LocalEventEmitter(socketId);\n\n const entityId = ctx.entity!.id;\n const eventKey = EventFactory.getSubscriptionKey(eventType, input);\n\n const instanceId = getInstanceId();\n const socketInfo = {socketId, eventKey, instanceId};\n\n await connectEntityToSocketEvent(entityId, socketInfo);\n LocalSubs.bind(entityId, eventKey, localEE);\n\n ctx.signal?.addEventListener('abort', () => {\n LocalSubs.unbind(entityId, eventKey, localEE);\n disconnectEntityFromSocketEvent(entityId, socketInfo).catch(console.error);\n });\n\n type Out = OutputFor<TEventType>;\n for await (const [data] of on(localEE.ee, eventKey, {signal: ctx.signal})) {\n const payload = data as Out;\n const id = getTrackingId\n ? getTrackingId(payload)\n : (payload as any)._id?.toString() ?? randomUUID();\n\n yield tracked(id, payload);\n }\n}\n\nexport function socketSubscription<TEventType extends SocketEventType>(\n eventType: TEventType,\n getTrackingId?: (payload: OutputFor<TEventType>) => string\n) {\n return (opts: SubscriptionOpts) =>\n createSocketSubscription({\n eventType,\n ctx: opts.ctx,\n input: opts.input,\n getTrackingId,\n });\n}\n\n/**\n * @Example\n * const socketRouterTwo = createTRPCRouter({\n * onMessage: createAuthenticatedProcedure({entityTypes: [AuthEntityType.CRM]})\n * .input(ChatroomMessageSendSocketInputSchema)\n * .output(\n * zAsyncIterable({\n * yield: ChatroomMessageSendOutputSchema,\n * tracked: true,\n * })\n * )\n * .subscription(socketSubscription(SocketEventType.CHATROOM_MESSAGE_SEND)),\n *\n * onChatMessage: createAuthenticatedProcedure({entityTypes: [AuthEntityType.CRM]})\n * .input(ChatlistMessageSendSocketInputSchema)\n * .output(\n * zAsyncIterable({\n * yield: ChatlistMessageSendSocketOutputSchema,\n * tracked: true,\n * })\n * )\n * .subscription(socketSubscription(SocketEventType.CHATLIST_MESSAGE_RECEIVED)),\n * });\n */\n\n"]}
@@ -22,7 +22,7 @@ Perfect for sharing types between frontend and backend applications.
22
22
 
23
23
  ## Version
24
24
 
25
- Version: 1.1.31
25
+ Version: 1.1.33
26
26
 
27
27
  ## Dependencies
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/types",
3
- "version": "1.1.31",
3
+ "version": "1.1.33",
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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/core",
3
- "version": "1.1.31",
3
+ "version": "1.1.33",
4
4
  "description": "The Core system of the Lyxa services.",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",