{"version":3,"sources":["../src/waitlist/waitlist.enums.ts","../src/waitlist/waitlist.schemas.ts"],"names":["WaitlistHeardFrom","WAITLIST_EMAIL_MAX","WAITLIST_ROLES","UserRole","JoinWaitlistRequestSchema","z","roles","JoinWaitlistResponseSchema"],"mappings":"gEAIO,IAAMA,CAAAA,CAAoB,CAC/B,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,QAAA,CACR,CAAA,CAAG,GAAA,CACH,QAAA,CAAU,UAAA,CACV,gBAAA,CAAkB,kBAAA,CAClB,MAAO,OAAA,CACP,KAAA,CAAO,OACT,MCRaC,CAAAA,CAAqB,GAAA,CAErBC,CAAAA,CAAiB,CAACC,GAAAA,CAAS,MAAA,CAAQA,GAAAA,CAAS,IAAA,CAAMA,IAAS,MAAM,CAAA,CAEjEC,CAAAA,CAA4BC,CAAAA,CAAE,YAAA,CACzC,CACE,KAAA,CAAOA,CAAAA,CACJ,MAAA,CAAO,CAAE,KAAA,CAAO,2BAA4B,CAAC,CAAA,CAC7C,IAAA,EAAK,CACL,aAAY,CACZ,GAAA,CAAIJ,CAAAA,CAAoB,8BAA8B,CAAA,CACtD,IAAA,CAAKI,CAAAA,CAAE,KAAA,CAAM,CAAE,KAAA,CAAO,8BAA+B,CAAC,CAAC,CAAA,CAC1D,KAAA,CAAOA,CAAAA,CAAE,IAAA,CAAK,CAAE,KAAA,CAAO,qDAAsD,CAAC,CAAA,CAAE,QAAA,EAAS,CACzF,KAAA,CAAOA,CAAAA,CACJ,KAAA,CAAMA,CAAAA,CAAE,OAAA,CAAQH,CAAAA,CAAgB,CAAE,KAAA,CAAO,mCAAoC,CAAC,EAAG,CAChF,KAAA,CAAO,oBACT,CAAC,CAAA,CACA,GAAA,CAAI,CAAA,CAAG,oBAAoB,EAC3B,GAAA,CAAIA,CAAAA,CAAe,MAAA,CAAQ,2BAA2B,CAAA,CACtD,MAAA,CAAQI,CAAAA,EAAU,IAAI,IAAIA,CAAK,CAAA,CAAE,IAAA,GAASA,CAAAA,CAAM,MAAA,CAAQ,CACvD,OAAA,CAAS,2BACX,CAAC,CAAA,CAGH,SAAA,CAAWD,CAAAA,CACR,IAAA,CAAKL,CAAAA,CAAmB,CAAE,KAAA,CAAO,uCAAwC,CAAC,CAAA,CAC1E,QAAA,EACL,CAAA,CACA,CAAE,KAAA,CAAO,kCAAmC,CAC9C,EAEaO,CAAAA,CAA6BF,CAAAA,CAAE,MAAA,CAAO,CAAE,MAAA,CAAQA,CAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAE,CAAC","file":"chunk-OYIU7ZBZ.mjs","sourcesContent":["/**\n * Where someone says they heard about LivDot, asked on the waitlist form.\n * Values are stable slugs for storage and reporting; the web app owns the labels.\n */\nexport const WaitlistHeardFrom = {\n  INSTAGRAM: 'instagram',\n  TIKTOK: 'tiktok',\n  X: 'x',\n  WHATSAPP: 'whatsapp',\n  FRIEND_OR_FAMILY: 'friend_or_family',\n  EVENT: 'event',\n  OTHER: 'other',\n} as const;\nexport type WaitlistHeardFrom = (typeof WaitlistHeardFrom)[keyof typeof WaitlistHeardFrom];\n","import { z } from 'zod';\nimport { UserRole } from '../user';\nimport { WaitlistHeardFrom } from './waitlist.enums';\n\nexport const WAITLIST_EMAIL_MAX = 255;\n\nexport const WAITLIST_ROLES = [UserRole.VIEWER, UserRole.HOST, UserRole.VENDOR];\n\nexport const JoinWaitlistRequestSchema = z.strictObject(\n  {\n    email: z\n      .string({ error: 'Enter your email address.' })\n      .trim()\n      .toLowerCase()\n      .max(WAITLIST_EMAIL_MAX, 'Enter a valid email address.')\n      .pipe(z.email({ error: 'Enter a valid email address.' })),\n    phone: z.e164({ error: 'Enter a valid phone number, with your country code.' }).optional(),\n    roles: z\n      .array(z.literal(WAITLIST_ROLES, { error: 'Choose watch, host, or get hired.' }), {\n        error: 'Pick at least one.',\n      })\n      .min(1, 'Pick at least one.')\n      .max(WAITLIST_ROLES.length, 'Pick each role only once.')\n      .refine((roles) => new Set(roles).size === roles.length, {\n        message: 'Pick each role only once.',\n      }),\n    // Optional here so pages already open in a browser keep working while a\n    // release rolls out; the web form makes it required.\n    heardFrom: z\n      .enum(WaitlistHeardFrom, { error: 'Tell us where you heard about LivDot.' })\n      .optional(),\n  },\n  { error: 'Please provide a valid response!' },\n);\n\nexport const JoinWaitlistResponseSchema = z.object({ status: z.literal('joined') });\n"]}