@lyxa.ai/core 1.1.33 → 1.1.35

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.
@@ -4,7 +4,7 @@ import { User } from './user.model';
4
4
  import { Shop } from './shop.model';
5
5
  import { Order } from './order.model';
6
6
  import { Admin } from './admin.model';
7
- import { TicketType, TicketStatus, UserRef } from '../../../utilities/enum';
7
+ import { TicketStatus, TicketType, UserRef } from '../../../utilities/enum';
8
8
  import { Chatroom } from './chat-room.model';
9
9
  import { TicketAction } from './ticket-action.model';
10
10
  import { SupportReason } from './support-reason.model';
@@ -22,6 +22,7 @@ export declare class Ticket extends TimeStamps {
22
22
  assignmentAttempts?: number;
23
23
  chatroom: Ref<Chatroom>;
24
24
  resolvedAt?: Date;
25
+ resolvedBy?: UserRef;
25
26
  closedAt?: Date;
26
27
  resolutionTimeMinutes?: number;
27
28
  customerRating?: number;
@@ -32,6 +32,7 @@ let Ticket = class Ticket extends defaultClasses_1.TimeStamps {
32
32
  assignmentAttempts;
33
33
  chatroom;
34
34
  resolvedAt;
35
+ resolvedBy;
35
36
  closedAt;
36
37
  resolutionTimeMinutes;
37
38
  customerRating;
@@ -91,6 +92,10 @@ __decorate([
91
92
  (0, typegoose_1.prop)({ type: Date }),
92
93
  __metadata("design:type", Date)
93
94
  ], Ticket.prototype, "resolvedAt", void 0);
95
+ __decorate([
96
+ (0, typegoose_1.prop)({ type: String, enum: enum_1.UserRef }),
97
+ __metadata("design:type", String)
98
+ ], Ticket.prototype, "resolvedBy", void 0);
94
99
  __decorate([
95
100
  (0, typegoose_1.prop)({ type: Date }),
96
101
  __metadata("design:type", Date)
@@ -1 +1 @@
1
- {"version":3,"file":"ticket.model.js","sourceRoot":"/","sources":["libraries/mongo/models/ticket.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { prop, Ref, index, modelOptions } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { User } from './user.model';\nimport { Shop } from './shop.model';\nimport { Order } from './order.model';\nimport { Admin } from './admin.model';\nimport { TicketType, TicketStatus, UserRef } from '../../../utilities/enum';\nimport { Chatroom } from './chat-room.model';\nimport { DefaultChat } from './default-chat.model';\nimport { TicketAction } from './ticket-action.model';\nimport { SupportReason } from './support-reason.model';\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'tickets',\n\t\ttimestamps: true,\n\t},\n})\n@index({ assignedAgent: 1, status: 1 })\n@index({ type: 1, status: 1, priority: 1 })\n@index({ client: 1, clientType: 1, status: 1 })\n@index({ createdAt: -1 })\n@index({ chatroom: 1 })\nexport class Ticket extends TimeStamps {\n\t@prop({ required: true, type: String, unique: true })\n\tpublic ticketId!: string;\n\n\t@prop({ required: true, type: String, enum: TicketType })\n\tpublic type!: TicketType;\n\n\t@prop({ required: true, type: String, enum: TicketStatus, default: TicketStatus.PENDING })\n\tpublic status!: TicketStatus;\n\n\t@prop({ type: String, required: true })\n\tpublic title!: string;\n\n\t@prop({ ref: () => SupportReason, required: false })\n\tpublic supportReason?: Ref<SupportReason>;\n\n\t@prop({ refPath: 'clientType', required: true })\n\tpublic client!: Ref<User | Shop>;\n\n\t@prop({ required: true, type: String, enum: UserRef })\n\tpublic clientType!: UserRef;\n\n\t@prop({ ref: () => Order })\n\tpublic order?: Ref<Order>;\n\n\t@prop({ ref: () => Admin })\n\tpublic assignedAgent?: Ref<Admin>;\n\n\t@prop({ type: Date })\n\tpublic assignedAt?: Date;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic assignmentAttempts?: number;\n\n\t@prop({ ref: () => Chatroom, required: true })\n\tpublic chatroom!: Ref<Chatroom>;\n\n\t@prop({ type: Date })\n\tpublic resolvedAt?: Date;\n\n\t@prop({ type: Date })\n\tpublic closedAt?: Date;\n\n\t@prop({ type: Number })\n\tpublic resolutionTimeMinutes?: number;\n\n\t@prop({ type: Number, min: 1, max: 5 })\n\tpublic customerRating?: number;\n\n\t@prop({ type: Number })\n\tpublic agentScore?: number;\n\n\t@prop({ ref: () => TicketAction, required: false })\n\tpublic action?: Ref<TicketAction>;\n}\n"]}
1
+ {"version":3,"file":"ticket.model.js","sourceRoot":"/","sources":["libraries/mongo/models/ticket.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { User } from './user.model';\nimport { Shop } from './shop.model';\nimport { Order } from './order.model';\nimport { Admin } from './admin.model';\nimport { TicketStatus, TicketType, UserRef } from '../../../utilities/enum';\nimport { Chatroom } from './chat-room.model';\nimport { TicketAction } from './ticket-action.model';\nimport { SupportReason } from './support-reason.model';\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'tickets',\n\t\ttimestamps: true,\n\t},\n})\n@index({ assignedAgent: 1, status: 1 })\n@index({ type: 1, status: 1, priority: 1 })\n@index({ client: 1, clientType: 1, status: 1 })\n@index({ createdAt: -1 })\n@index({ chatroom: 1 })\nexport class Ticket extends TimeStamps {\n\t@prop({ required: true, type: String, unique: true })\n\tpublic ticketId!: string;\n\n\t@prop({ required: true, type: String, enum: TicketType })\n\tpublic type!: TicketType;\n\n\t@prop({ required: true, type: String, enum: TicketStatus, default: TicketStatus.PENDING })\n\tpublic status!: TicketStatus;\n\n\t@prop({ type: String, required: true })\n\tpublic title!: string;\n\n\t@prop({ ref: () => SupportReason, required: false })\n\tpublic supportReason?: Ref<SupportReason>;\n\n\t@prop({ refPath: 'clientType', required: true })\n\tpublic client!: Ref<User | Shop>;\n\n\t@prop({ required: true, type: String, enum: UserRef })\n\tpublic clientType!: UserRef;\n\n\t@prop({ ref: () => Order })\n\tpublic order?: Ref<Order>;\n\n\t@prop({ ref: () => Admin })\n\tpublic assignedAgent?: Ref<Admin>;\n\n\t@prop({ type: Date })\n\tpublic assignedAt?: Date;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic assignmentAttempts?: number;\n\n\t@prop({ ref: () => Chatroom, required: true })\n\tpublic chatroom!: Ref<Chatroom>;\n\n\t@prop({ type: Date })\n\tpublic resolvedAt?: Date;\n\n\t@prop({ type: String, enum: UserRef })\n\tpublic resolvedBy?: UserRef;\n\n\t@prop({ type: Date })\n\tpublic closedAt?: Date;\n\n\t@prop({ type: Number })\n\tpublic resolutionTimeMinutes?: number;\n\n\t@prop({ type: Number, min: 1, max: 5 })\n\tpublic customerRating?: number;\n\n\t@prop({ type: Number })\n\tpublic agentScore?: number;\n\n\t@prop({ ref: () => TicketAction, required: false })\n\tpublic action?: Ref<TicketAction>;\n}\n"]}
@@ -32,7 +32,7 @@ export declare class User extends TimeStamps {
32
32
  isPhoneVerified?: boolean;
33
33
  onlineStatus?: OnlineStatus;
34
34
  fcmTokens?: string[];
35
- static updateWallet(this: ReturnModelType<typeof User>, userId: string, amount: number): Promise<(import("mongoose").Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, User, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<User & {
35
+ static updateWallet(this: ReturnModelType<typeof User>, userId: string, amount: number): Promise<(import("mongoose").Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, User, import("@typegoose/typegoose/lib/types").BeAnyObject> & Omit<User & {
36
36
  _id: import("mongoose").Types.ObjectId;
37
37
  } & {
38
38
  __v: number;
@@ -0,0 +1,14 @@
1
+ import { SocketEventType } from '../../../utilities/enum';
2
+ import { OutputFor } from '../index';
3
+ interface _SubscriptionContext {
4
+ entity?: {
5
+ id: string;
6
+ };
7
+ signal?: AbortSignal;
8
+ }
9
+ interface _SubscriptionOpts<TEventType extends SocketEventType, TInput> {
10
+ ctx: _SubscriptionContext;
11
+ input: TInput;
12
+ }
13
+ export declare function createSocketSubscriptionAdapter<TEventType extends SocketEventType, TInput>(eventType: TEventType, getTrackingId?: (payload: OutputFor<TEventType>) => string): (opts: _SubscriptionOpts<TEventType, TInput>) => AsyncGenerator<import("@trpc/server").TrackedEnvelope<OutputFor<TEventType>>, void, unknown>;
14
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSocketSubscriptionAdapter = createSocketSubscriptionAdapter;
4
+ const index_1 = require("../index");
5
+ const crypto_1 = require("crypto");
6
+ const instance_utils_1 = require("../../../utilities/instance.utils");
7
+ const ws_1 = require("ws");
8
+ const server_1 = require("@trpc/server");
9
+ async function* _createSocketSubscription(options) {
10
+ const { eventType, ctx, input, getTrackingId } = options;
11
+ const registration = index_1.EventFactory.getRegistration(eventType);
12
+ const socketId = (0, crypto_1.randomUUID)();
13
+ const localEE = new index_1.LocalEventEmitter(socketId);
14
+ const entityId = ctx.entity.id;
15
+ const eventKey = index_1.EventFactory.getSubscriptionKey(eventType, input);
16
+ const instanceId = (0, instance_utils_1.getInstanceId)();
17
+ const socketInfo = { socketId, eventKey, instanceId };
18
+ await (0, index_1.connectEntityToSocketEvent)(entityId, socketInfo);
19
+ index_1.LocalSubs.bind(entityId, eventKey, localEE);
20
+ ctx.signal?.addEventListener('abort', () => {
21
+ index_1.LocalSubs.unbind(entityId, eventKey, localEE);
22
+ (0, index_1.disconnectEntityFromSocketEvent)(entityId, socketInfo).catch(console.error);
23
+ });
24
+ for await (const [data] of (0, ws_1.on)(localEE.ee, eventKey, { signal: ctx.signal })) {
25
+ const payload = data;
26
+ const id = getTrackingId ? getTrackingId(payload) : (payload._id?.toString() ?? (0, crypto_1.randomUUID)());
27
+ yield (0, server_1.tracked)(id, payload);
28
+ }
29
+ }
30
+ function createSocketSubscriptionAdapter(eventType, getTrackingId) {
31
+ return (opts) => _createSocketSubscription({
32
+ eventType,
33
+ ctx: opts.ctx,
34
+ input: opts.input,
35
+ getTrackingId,
36
+ });
37
+ }
38
+ //# sourceMappingURL=socket-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-subscription.js","sourceRoot":"/","sources":["libraries/socket/adapters/socket-subscription.ts"],"names":[],"mappings":";;AA+DA,0EAWC;AAzED,oCAOkB;AAClB,mCAAoC;AACpC,sEAAkE;AAClE,2BAAwB;AACxB,yCAAuC;AAmBvC,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACxC,OAAuD;IAEvD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEzD,MAAM,YAAY,GAAG,oBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,yBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAO,CAAC,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,oBAAY,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAC;IACnC,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEtD,MAAM,IAAA,kCAA0B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,iBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE5C,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC1C,iBAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAA,uCAA+B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAGH,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAA,OAAE,EAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC7E,MAAM,OAAO,GAAG,IAAW,CAAC;QAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,OAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAA,mBAAU,GAAE,CAAC,CAAC;QAEvG,MAAM,IAAA,gBAAO,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC;AAED,SAAgB,+BAA+B,CAC9C,SAAqB,EACrB,aAA0D;IAE1D,OAAO,CAAC,IAA2C,EAAE,EAAE,CACtD,yBAAyB,CAAC;QACzB,SAAS;QACT,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa;KACb,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { SocketEventType } from '../../../utilities/enum';\nimport {\n\tconnectEntityToSocketEvent,\n\tdisconnectEntityFromSocketEvent,\n\tEventFactory,\n\tLocalEventEmitter,\n\tLocalSubs,\n\tOutputFor,\n} from '../index';\nimport { randomUUID } from 'crypto';\nimport { getInstanceId } from '../../../utilities/instance.utils';\nimport { on } from 'ws';\nimport { tracked } from '@trpc/server';\n\ninterface _SubscriptionContext {\n\tentity?: { id: string };\n\tsignal?: AbortSignal;\n}\n\ninterface _SubscriptionOpts<TEventType extends SocketEventType, TInput> {\n\tctx: _SubscriptionContext;\n\tinput: TInput;\n}\n\ninterface _CreateSubscriptionOptions<TEventType extends SocketEventType, TInput> {\n\teventType: TEventType;\n\tctx: _SubscriptionContext;\n\tinput: TInput;\n\tgetTrackingId?: (payload: OutputFor<TEventType>) => string;\n}\n\nasync function* _createSocketSubscription<TEventType extends SocketEventType, TInput>(\n\toptions: _CreateSubscriptionOptions<TEventType, TInput>\n) {\n\tconst { eventType, ctx, input, getTrackingId } = options;\n\n\tconst registration = EventFactory.getRegistration(eventType);\n\tconst socketId = randomUUID();\n\tconst localEE = new LocalEventEmitter(socketId);\n\n\tconst entityId = ctx.entity!.id;\n\tconst eventKey = EventFactory.getSubscriptionKey(eventType, input);\n\n\tconst instanceId = getInstanceId();\n\tconst socketInfo = { socketId, eventKey, instanceId };\n\n\tawait connectEntityToSocketEvent(entityId, socketInfo);\n\tLocalSubs.bind(entityId, eventKey, localEE);\n\n\tctx.signal?.addEventListener('abort', () => {\n\t\tLocalSubs.unbind(entityId, eventKey, localEE);\n\t\tdisconnectEntityFromSocketEvent(entityId, socketInfo).catch(console.error);\n\t});\n\n\ttype Out = OutputFor<TEventType>;\n\tfor await (const [data] of on(localEE.ee, eventKey, { signal: ctx.signal })) {\n\t\tconst payload = data as Out;\n\t\tconst id = getTrackingId ? getTrackingId(payload) : ((payload as any)._id?.toString() ?? randomUUID());\n\n\t\tyield tracked(id, payload);\n\t}\n}\n\nexport function createSocketSubscriptionAdapter<TEventType extends SocketEventType, TInput>(\n\teventType: TEventType,\n\tgetTrackingId?: (payload: OutputFor<TEventType>) => string\n) {\n\treturn (opts: _SubscriptionOpts<TEventType, TInput>) =>\n\t\t_createSocketSubscription({\n\t\t\teventType,\n\t\t\tctx: opts.ctx,\n\t\t\tinput: opts.input,\n\t\t\tgetTrackingId,\n\t\t});\n}\n\n/**\n * @Example\n * const socketRouterTwo = createTRPCRouter({\n * \tonMessage: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n * \t\t.input(ChatroomMessageSendSocketInputSchema)\n * \t\t.output(\n * \t\t\tzAsyncIterable({\n * \t\t\t\tyield: ChatroomMessageSendOutputSchema,\n * \t\t\t\ttracked: true,\n * \t\t\t})\n * \t\t)\n * \t\t.subscription(createSocketSubscriptionAdapter(SocketEventType.CHATROOM_MESSAGE_SEND)),\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.33
25
+ Version: 1.1.35
26
26
 
27
27
  ## Dependencies
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/types",
3
- "version": "1.1.33",
3
+ "version": "1.1.35",
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",
@@ -647,7 +647,7 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
647
647
  totalPages: number;
648
648
  } | undefined;
649
649
  }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
650
- }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
650
+ }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
651
651
  success: z.ZodBoolean;
652
652
  message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
653
653
  data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
@@ -685,7 +685,83 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
685
685
  totalPages: number;
686
686
  } | undefined;
687
687
  }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
688
- }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
688
+ }>, any>[k]; } : never, z.baseObjectInputType<{
689
+ success: z.ZodBoolean;
690
+ message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
691
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
692
+ metadata: z.ZodOptional<z.ZodObject<{
693
+ page: z.ZodNumber;
694
+ size: z.ZodNumber;
695
+ totalElements: z.ZodNumber;
696
+ totalPages: z.ZodNumber;
697
+ }, "strip", z.ZodTypeAny, {
698
+ size: number;
699
+ page: number;
700
+ totalElements: number;
701
+ totalPages: number;
702
+ }, {
703
+ size: number;
704
+ page: number;
705
+ totalElements: number;
706
+ totalPages: number;
707
+ }>>;
708
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
709
+ }, "strip", z.ZodTypeAny, {
710
+ documents: T[];
711
+ metadata?: {
712
+ size: number;
713
+ page: number;
714
+ totalElements: number;
715
+ totalPages: number;
716
+ } | undefined;
717
+ }, {
718
+ documents: T[];
719
+ metadata?: {
720
+ size: number;
721
+ page: number;
722
+ totalElements: number;
723
+ totalPages: number;
724
+ } | undefined;
725
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
726
+ }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
727
+ success: z.ZodBoolean;
728
+ message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
729
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
730
+ metadata: z.ZodOptional<z.ZodObject<{
731
+ page: z.ZodNumber;
732
+ size: z.ZodNumber;
733
+ totalElements: z.ZodNumber;
734
+ totalPages: z.ZodNumber;
735
+ }, "strip", z.ZodTypeAny, {
736
+ size: number;
737
+ page: number;
738
+ totalElements: number;
739
+ totalPages: number;
740
+ }, {
741
+ size: number;
742
+ page: number;
743
+ totalElements: number;
744
+ totalPages: number;
745
+ }>>;
746
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
747
+ }, "strip", z.ZodTypeAny, {
748
+ documents: T[];
749
+ metadata?: {
750
+ size: number;
751
+ page: number;
752
+ totalElements: number;
753
+ totalPages: number;
754
+ } | undefined;
755
+ }, {
756
+ documents: T[];
757
+ metadata?: {
758
+ size: number;
759
+ page: number;
760
+ totalElements: number;
761
+ totalPages: number;
762
+ } | undefined;
763
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
764
+ }>[k_1]; } : never>;
689
765
  export type PaginatedDTO<T> = {
690
766
  metadata: DTO<typeof metadataSchema>;
691
767
  documents: T[];
@@ -76,22 +76,34 @@ export declare class SchemaBuilder<T extends z.ZodRawShape> {
76
76
  private baseSchema;
77
77
  constructor(baseFields: T, includeTimestamps?: boolean, includeTracking?: boolean);
78
78
  private createBaseSchema;
79
- getBaseSchema(): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
79
+ getBaseSchema(): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>;
80
80
  getEntitySchema(): z.ZodObject<z.objectUtil.extendShape<T, {
81
81
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
82
- }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<T_1[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
82
+ }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<z.objectUtil.extendShape<T, {
83
83
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
84
- }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<T_2[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
84
+ }>[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
85
85
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
86
- }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<T_3[k]>; } : never, z.ZodTypeAny, "passthrough">>;
86
+ }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<z.objectUtil.extendShape<T, {
87
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
88
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
89
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
90
+ }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
91
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
92
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">>;
87
93
  getIdSchema(): z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
88
94
  getUpdateSchema(excludeFields?: ExcludeFromUpdate): z.ZodObject<z.objectUtil.extendShape<T, {
89
95
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
90
- }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<T_1[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
96
+ }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<z.objectUtil.extendShape<T, {
97
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
98
+ }>[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
99
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
100
+ }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<z.objectUtil.extendShape<T, {
101
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
102
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
91
103
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
92
- }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<T_2[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
104
+ }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
93
105
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
94
- }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<T_3[k]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
106
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
95
107
  [x: string]: z.ZodOptional<z.ZodTypeAny>;
96
108
  }, "strict", z.ZodTypeAny, {
97
109
  [x: string]: any;
@@ -114,22 +126,34 @@ export declare class SchemaBuilder<T extends z.ZodRawShape> {
114
126
  [x: string]: any;
115
127
  }>;
116
128
  getAllSchemas(excludeFromUpdate?: ExcludeFromUpdate): {
117
- BaseSchema: z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
129
+ BaseSchema: z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>;
118
130
  EntitySchema: z.ZodObject<z.objectUtil.extendShape<T, {
119
131
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
120
- }> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<T_3[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
132
+ }> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
121
133
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
122
- }> extends infer T_4 extends z.ZodRawShape ? { [k_2 in keyof T_4]: z.ZodOptional<T_4[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
134
+ }>[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
123
135
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
124
- }> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<T_5[k_2]>; } : never, z.ZodTypeAny, "passthrough">>;
136
+ }> extends infer T_4 extends z.ZodRawShape ? { [k_2 in keyof T_4]: z.ZodOptional<z.objectUtil.extendShape<T, {
137
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
138
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
139
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
140
+ }> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<z.objectUtil.extendShape<T, {
141
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
142
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">>;
125
143
  IdSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
126
144
  UpdateSchema: z.ZodObject<z.objectUtil.extendShape<T, {
127
145
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
128
- }> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<T_6[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
146
+ }> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<z.objectUtil.extendShape<T, {
147
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
148
+ }>[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
149
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
150
+ }> extends infer T_7 extends z.ZodRawShape ? { [k_2 in keyof T_7]: z.ZodOptional<z.objectUtil.extendShape<T, {
151
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
152
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
129
153
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
130
- }> extends infer T_7 extends z.ZodRawShape ? { [k_2 in keyof T_7]: z.ZodOptional<T_7[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
154
+ }> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<z.objectUtil.extendShape<T, {
131
155
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
132
- }> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<T_8[k_2]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
156
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
133
157
  [x: string]: z.ZodOptional<z.ZodTypeAny>;
134
158
  }, "strict", z.ZodTypeAny, {
135
159
  [x: string]: any;
@@ -647,7 +647,7 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
647
647
  totalPages: number;
648
648
  } | undefined;
649
649
  }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
650
- }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
650
+ }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
651
651
  success: z.ZodBoolean;
652
652
  message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
653
653
  data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
@@ -685,7 +685,83 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
685
685
  totalPages: number;
686
686
  } | undefined;
687
687
  }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
688
- }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
688
+ }>, any>[k]; } : never, z.baseObjectInputType<{
689
+ success: z.ZodBoolean;
690
+ message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
691
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
692
+ metadata: z.ZodOptional<z.ZodObject<{
693
+ page: z.ZodNumber;
694
+ size: z.ZodNumber;
695
+ totalElements: z.ZodNumber;
696
+ totalPages: z.ZodNumber;
697
+ }, "strip", z.ZodTypeAny, {
698
+ page: number;
699
+ size: number;
700
+ totalElements: number;
701
+ totalPages: number;
702
+ }, {
703
+ page: number;
704
+ size: number;
705
+ totalElements: number;
706
+ totalPages: number;
707
+ }>>;
708
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
709
+ }, "strip", z.ZodTypeAny, {
710
+ documents: T[];
711
+ metadata?: {
712
+ page: number;
713
+ size: number;
714
+ totalElements: number;
715
+ totalPages: number;
716
+ } | undefined;
717
+ }, {
718
+ documents: T[];
719
+ metadata?: {
720
+ page: number;
721
+ size: number;
722
+ totalElements: number;
723
+ totalPages: number;
724
+ } | undefined;
725
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
726
+ }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
727
+ success: z.ZodBoolean;
728
+ message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
729
+ data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
730
+ metadata: z.ZodOptional<z.ZodObject<{
731
+ page: z.ZodNumber;
732
+ size: z.ZodNumber;
733
+ totalElements: z.ZodNumber;
734
+ totalPages: z.ZodNumber;
735
+ }, "strip", z.ZodTypeAny, {
736
+ page: number;
737
+ size: number;
738
+ totalElements: number;
739
+ totalPages: number;
740
+ }, {
741
+ page: number;
742
+ size: number;
743
+ totalElements: number;
744
+ totalPages: number;
745
+ }>>;
746
+ documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
747
+ }, "strip", z.ZodTypeAny, {
748
+ documents: T[];
749
+ metadata?: {
750
+ page: number;
751
+ size: number;
752
+ totalElements: number;
753
+ totalPages: number;
754
+ } | undefined;
755
+ }, {
756
+ documents: T[];
757
+ metadata?: {
758
+ page: number;
759
+ size: number;
760
+ totalElements: number;
761
+ totalPages: number;
762
+ } | undefined;
763
+ }>, z.ZodType<T, z.ZodTypeDef, T>]>>;
764
+ }>[k_1]; } : never>;
689
765
  export type PaginatedDTO<T> = {
690
766
  metadata: DTO<typeof metadataSchema>;
691
767
  documents: T[];
@@ -76,22 +76,34 @@ export declare class SchemaBuilder<T extends z.ZodRawShape> {
76
76
  private baseSchema;
77
77
  constructor(baseFields: T, includeTimestamps?: boolean, includeTracking?: boolean);
78
78
  private createBaseSchema;
79
- getBaseSchema(): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
79
+ getBaseSchema(): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>;
80
80
  getEntitySchema(): z.ZodObject<z.objectUtil.extendShape<T, {
81
81
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
82
- }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<T_1[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
82
+ }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<z.objectUtil.extendShape<T, {
83
83
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
84
- }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<T_2[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
84
+ }>[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
85
85
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
86
- }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<T_3[k]>; } : never, z.ZodTypeAny, "passthrough">>;
86
+ }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<z.objectUtil.extendShape<T, {
87
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
88
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
89
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
90
+ }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
91
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
92
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">>;
87
93
  getIdSchema(): z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
88
94
  getUpdateSchema(excludeFields?: ExcludeFromUpdate): z.ZodObject<z.objectUtil.extendShape<T, {
89
95
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
90
- }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<T_1[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
96
+ }> extends infer T_1 extends z.ZodRawShape ? { [k in keyof T_1]: z.ZodOptional<z.objectUtil.extendShape<T, {
97
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
98
+ }>[k]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
99
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
100
+ }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<z.objectUtil.extendShape<T, {
101
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
102
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
91
103
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
92
- }> extends infer T_2 extends z.ZodRawShape ? { [k in keyof T_2]: z.ZodOptional<T_2[k]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
104
+ }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
93
105
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
94
- }> extends infer T_3 extends z.ZodRawShape ? { [k in keyof T_3]: z.ZodOptional<T_3[k]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
106
+ }>[k]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
95
107
  [x: string]: z.ZodOptional<z.ZodTypeAny>;
96
108
  }, "strict", z.ZodTypeAny, {
97
109
  [x: string]: any;
@@ -114,22 +126,34 @@ export declare class SchemaBuilder<T extends z.ZodRawShape> {
114
126
  [x: string]: any;
115
127
  }>;
116
128
  getAllSchemas(excludeFromUpdate?: ExcludeFromUpdate): {
117
- BaseSchema: z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
129
+ BaseSchema: z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>;
118
130
  EntitySchema: z.ZodObject<z.objectUtil.extendShape<T, {
119
131
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
120
- }> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<T_3[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
132
+ }> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<z.objectUtil.extendShape<T, {
121
133
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
122
- }> extends infer T_4 extends z.ZodRawShape ? { [k_2 in keyof T_4]: z.ZodOptional<T_4[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
134
+ }>[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
123
135
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
124
- }> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<T_5[k_2]>; } : never, z.ZodTypeAny, "passthrough">>;
136
+ }> extends infer T_4 extends z.ZodRawShape ? { [k_2 in keyof T_4]: z.ZodOptional<z.objectUtil.extendShape<T, {
137
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
138
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
139
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
140
+ }> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<z.objectUtil.extendShape<T, {
141
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
142
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">>;
125
143
  IdSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
126
144
  UpdateSchema: z.ZodObject<z.objectUtil.extendShape<T, {
127
145
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
128
- }> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<T_6[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
146
+ }> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<z.objectUtil.extendShape<T, {
147
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
148
+ }>[k_2]>; } : never, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<T, {
149
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
150
+ }> extends infer T_7 extends z.ZodRawShape ? { [k_2 in keyof T_7]: z.ZodOptional<z.objectUtil.extendShape<T, {
151
+ _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
152
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
129
153
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
130
- }> extends infer T_7 extends z.ZodRawShape ? { [k_2 in keyof T_7]: z.ZodOptional<T_7[k_2]>; } : never, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<T, {
154
+ }> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<z.objectUtil.extendShape<T, {
131
155
  _id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
132
- }> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<T_8[k_2]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
156
+ }>[k_2]>; } : never, z.ZodTypeAny, "passthrough">> | z.ZodObject<{
133
157
  [x: string]: z.ZodOptional<z.ZodTypeAny>;
134
158
  }, "strict", z.ZodTypeAny, {
135
159
  [x: string]: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/core",
3
- "version": "1.1.33",
3
+ "version": "1.1.35",
4
4
  "description": "The Core system of the Lyxa services.",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",
@@ -1,21 +0,0 @@
1
- import { SocketEventType } from '../../../utilities/enum';
2
- import { OutputFor } from '../../socket';
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,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSocketSubscription = createSocketSubscription;
4
- exports.socketSubscription = socketSubscription;
5
- const socket_1 = require("../../socket");
6
- const crypto_1 = require("crypto");
7
- const instance_utils_1 = require("../../../utilities/instance.utils");
8
- const ws_1 = require("ws");
9
- const server_1 = require("@trpc/server");
10
- async function* createSocketSubscription(options) {
11
- const { eventType, ctx, input, getTrackingId } = options;
12
- const registration = socket_1.EventFactory.getRegistration(eventType);
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,
39
- });
40
- }
41
- //# sourceMappingURL=createSocketSubscriptionProcedure.js.map
@@ -1 +0,0 @@
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"]}