{"version":3,"file":"shared-BAE3ceND.mjs","names":[],"sources":["../src/models/shared.ts"],"sourcesContent":["import z from \"zod\";\nimport { ListAzureTableEntitiesOptions } from \"../utils/azure-data-tables\";\nimport { PATTERNS } from \"../utils/constants\";\n\nexport interface BaseModel<\n  Data extends Record<string, unknown>,\n  CreateData = Data,\n  UpdateData = Partial<Data>\n> {\n  list(options?: ListAzureTableEntitiesOptions<Data>): Promise<Data[]>;\n  create(data: CreateData): Promise<void>;\n  get(id: string): Promise<Data | null>;\n  has(id: string): Promise<boolean>;\n  update(id: string, data: UpdateData): Promise<void>;\n  delete(id: string): Promise<void>;\n}\n\n/** @private */\nexport const ProjectIdSchema = z\n  .string()\n  .refine(\n    (val) => new RegExp(PATTERNS.projectId.pattern).test(val),\n    PATTERNS.projectId.message\n  )\n  .meta({ id: \"projectId\", description: \"The ID of the project.\" });\n\n/** @private */\nexport const BuildSHASchema = z\n  .string()\n  .check(z.minLength(7))\n  .meta({ id: \"buildSHA\", description: \"The SHA of the build.\" });\n\n/** @private */\nexport const LabelSlugSchema = z\n  .string()\n  .meta({ id: \"labelSlug\", description: \"The slug of the label.\" });\n\n/** @private */\nexport const EmptyObjectSchema = z.object();\n"],"mappings":";;;;;AAkBA,MAAa,kBAAkB,EAC5B,QAAQ,CACR,OACC,CAAC,QAAQ,IAAI,OAAO,SAAS,UAAU,SAAS,KAAK,IAAI,EACzD,SAAS,UAAU,QACpB,CACA,KAAK;CAAE,IAAI;CAAa,aAAa;AAA0B,EAAC;;AAGnE,MAAa,iBAAiB,EAC3B,QAAQ,CACR,MAAM,EAAE,UAAU,EAAE,CAAC,CACrB,KAAK;CAAE,IAAI;CAAY,aAAa;AAAyB,EAAC;;AAGjE,MAAa,kBAAkB,EAC5B,QAAQ,CACR,KAAK;CAAE,IAAI;CAAa,aAAa;AAA0B,EAAC;;AAGnE,MAAa,oBAAoB,EAAE,QAAQ"}