
| Current Path : /var/www/html/konvbav/vendor/twbs/bootstrap/site/src/libs/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/konvbav/vendor/twbs/bootstrap/site/src/libs/validation.ts |
import { z } from 'zod'
export const zVersionMajorMinor = z.string().regex(/^\d+\.\d+$/)
// https://ihateregex.io/expr/semver/
const unboundSemverRegex =
/(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?/
export const zVersionSemver = z.string().regex(new RegExp(`^${unboundSemverRegex.source}$`))
export const zPrefixedVersionSemver = z.string().regex(new RegExp(`^v${unboundSemverRegex.source}$`))
export const zHexColor = z.string().regex(/^#(?:[0-9a-fA-F]{3}){1,2}$/)
export const zNamedHexColors = (count: number) => {
return z
.object({
name: z.union([z.string(), z.number()]),
hex: zHexColor
})
.array()
.length(count)
}
export const zPxSizeOrEmpty = z.string().regex(/^(?:\d+px)?$/)
export const zLanguageCode = z.string().regex(/^[a-z]{2}(?:-[a-zA-Z]{2})?$/)