{"version":3,"sources":["../../../../src/modules/groups/schemas/find-by-invite-code.ts","../../../../src/modules/groups/schemas/common.ts","../../../../src/types/tags.ts","../../../../src/utils/phone-numer-from-jid.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport {\n\tGroupWithParticipantsResponseSchema,\n\tGroupWithParticipantsResponseSchemaTransform,\n} from \"./common\";\n\nexport const FindGroupByInviteCodeResponseSchema =\n\tGroupWithParticipantsResponseSchema.extend({\n\t\tisCommunity: z.boolean(),\n\t\tisCommunityAnnounce: z.boolean(),\n\t\tjoinApprovalMode: z.boolean(),\n\t\tmemberAddMode: z.boolean(),\n\t})\n\t\t.omit({ pictureUrl: true })\n\t\t.transform((group) => ({\n\t\t\t...GroupWithParticipantsResponseSchemaTransform({\n\t\t\t\t...group,\n\t\t\t\tpictureUrl: null,\n\t\t\t}),\n\t\t\tisCommunity: group.isCommunity,\n\t\t\tisCommunityAnnounce: group.isCommunityAnnounce,\n\t\t\tjoinApprovalMode: group.joinApprovalMode,\n\t\t\tmemberAddMode: group.memberAddMode,\n\t\t}));\n\nexport type FindGroupByInviteCodeResponse = z.infer<\n\ttypeof FindGroupByInviteCodeResponseSchema\n>;\n\nexport { FindGroupByInviteCodeResponseSchema as ResponseSchema };\n","import { z } from \"zod\";\n\nimport { GroupJid, Jid } from \"@/types/tags\";\nimport { phoneNumberFromJid } from \"@/utils/phone-numer-from-jid\";\n\nexport const GroupResponseSchema = z.object({\n\tid: z.string(),\n\tsubject: z.string(),\n\tsubjectOwner: z.string(),\n\tsubjectTime: z.coerce.date(),\n\tpictureUrl: z.string().url().nullish(),\n\tsize: z.number(),\n\tcreation: z.coerce.date(),\n\towner: z.string(),\n\trestrict: z.boolean(),\n\tannounce: z.boolean(),\n});\n\nexport const ParticipantResponseSchema = z.object({\n\tid: z.string(),\n\tadmin: z.enum([\"admin\", \"superadmin\"]).nullish(),\n});\n\nexport const GroupWithParticipantsResponseSchema = GroupResponseSchema.extend({\n\tparticipants: z.array(ParticipantResponseSchema),\n});\n\nexport const GroupResponseSchemaTransform = (\n\tgroup: z.infer<typeof GroupResponseSchema>,\n) => ({\n\tjid: GroupJid(group.id),\n\tname: group.subject,\n\tpictureUrl: group.pictureUrl || undefined,\n\tsize: group.size,\n\tsubject: {\n\t\towner: Jid(group.subjectOwner),\n\t\ttime: group.subjectTime,\n\t},\n\towner: {\n\t\tjid: Jid(group.owner),\n\t\tphoneNumber: phoneNumberFromJid(group.owner),\n\t},\n\tcreatedAt: group.creation,\n\trestrict: group.restrict,\n\tannounce: group.announce,\n});\n\nexport const ParticipantResponseSchemaTransform = (\n\tparticipant: z.infer<typeof ParticipantResponseSchema>,\n) => ({\n\tid: participant.id,\n\trole: participant.admin || (\"member\" as const),\n});\n\nexport const GroupWithParticipantsResponseSchemaTransform = (\n\tgroup: z.infer<typeof GroupWithParticipantsResponseSchema>,\n) => ({\n\t...GroupResponseSchemaTransform(group),\n\tparticipants: group.participants.map(ParticipantResponseSchemaTransform),\n});\n\nexport type GroupResponse = z.infer<typeof GroupResponseSchema>;\nexport type ParticipantResponse = z.infer<typeof ParticipantResponseSchema>;\nexport type GroupWithParticipantsResponse = z.infer<\n\ttypeof GroupWithParticipantsResponseSchema\n>;\n","export type Jid = `${string}@s.whatsapp.net`;\nexport const Jid = (jid: string) => jid as Jid;\n\nexport type GroupJid = `${string}@g.us`;\nexport const GroupJid = (jid: string) => jid as GroupJid;\n\nexport type GroupInviteCode = string & { __tag: \"GroupInviteCode\" };\nexport const GroupInviteCode = (code: string) => code as GroupInviteCode;\n\nexport type MessageId = string & { __tag: \"MessageId\" };\nexport const MessageId = (id: string) => id as MessageId;\n\nexport type ChatId = string & { __tag: \"ChatId\" };\nexport const ChatId = (id: string) => id as ChatId;\n","import { parsePhoneNumber } from \"libphonenumber-js\";\n\n/**\n * Get phone number from JID\n * @param jid - JID (remote JID)\n */\nexport function phoneNumberFromJid(jid: string) {\n\treturn parsePhoneNumber(`+${jid.split(\"@\")[0]}`).number;\n}\n"],"mappings":";AAAA,SAAS,KAAAA,UAAS;;;ACAlB,SAAS,SAAS;;;ACCX,IAAM,MAAM,CAAC,QAAgB;AAG7B,IAAM,WAAW,CAAC,QAAgB;;;ACJzC,SAAS,wBAAwB;AAM1B,SAAS,mBAAmB,KAAa;AAC/C,SAAO,iBAAiB,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AAClD;;;AFHO,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC3C,IAAI,EAAE,OAAO;AAAA,EACb,SAAS,EAAE,OAAO;AAAA,EAClB,cAAc,EAAE,OAAO;AAAA,EACvB,aAAa,EAAE,OAAO,KAAK;AAAA,EAC3B,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ;AAAA,EACrC,MAAM,EAAE,OAAO;AAAA,EACf,UAAU,EAAE,OAAO,KAAK;AAAA,EACxB,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,QAAQ;AAAA,EACpB,UAAU,EAAE,QAAQ;AACrB,CAAC;AAEM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EACjD,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,KAAK,CAAC,SAAS,YAAY,CAAC,EAAE,QAAQ;AAChD,CAAC;AAEM,IAAM,sCAAsC,oBAAoB,OAAO;AAAA,EAC7E,cAAc,EAAE,MAAM,yBAAyB;AAChD,CAAC;AAEM,IAAM,+BAA+B,CAC3C,WACK;AAAA,EACL,KAAK,SAAS,MAAM,EAAE;AAAA,EACtB,MAAM,MAAM;AAAA,EACZ,YAAY,MAAM,cAAc;AAAA,EAChC,MAAM,MAAM;AAAA,EACZ,SAAS;AAAA,IACR,OAAO,IAAI,MAAM,YAAY;AAAA,IAC7B,MAAM,MAAM;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACN,KAAK,IAAI,MAAM,KAAK;AAAA,IACpB,aAAa,mBAAmB,MAAM,KAAK;AAAA,EAC5C;AAAA,EACA,WAAW,MAAM;AAAA,EACjB,UAAU,MAAM;AAAA,EAChB,UAAU,MAAM;AACjB;AAEO,IAAM,qCAAqC,CACjD,iBACK;AAAA,EACL,IAAI,YAAY;AAAA,EAChB,MAAM,YAAY,SAAU;AAC7B;AAEO,IAAM,+CAA+C,CAC3D,WACK;AAAA,EACL,GAAG,6BAA6B,KAAK;AAAA,EACrC,cAAc,MAAM,aAAa,IAAI,kCAAkC;AACxE;;;ADpDO,IAAM,sCACZ,oCAAoC,OAAO;AAAA,EAC1C,aAAaC,GAAE,QAAQ;AAAA,EACvB,qBAAqBA,GAAE,QAAQ;AAAA,EAC/B,kBAAkBA,GAAE,QAAQ;AAAA,EAC5B,eAAeA,GAAE,QAAQ;AAC1B,CAAC,EACC,KAAK,EAAE,YAAY,KAAK,CAAC,EACzB,UAAU,CAAC,WAAW;AAAA,EACtB,GAAG,6CAA6C;AAAA,IAC/C,GAAG;AAAA,IACH,YAAY;AAAA,EACb,CAAC;AAAA,EACD,aAAa,MAAM;AAAA,EACnB,qBAAqB,MAAM;AAAA,EAC3B,kBAAkB,MAAM;AAAA,EACxB,eAAe,MAAM;AACtB,EAAE;","names":["z","z"]}