UNPKG

@mesh-tech/mesh-cli

Version:

CLI for Mesh platform development utilities

45 lines (44 loc) 1.08 kB
import { z } from "zod"; export const RESERVED_SEGMENTS = [ "plans", "designs", "proposals", "incidents", "handoffs", "reviews", "runbooks", "hran", "superpowers", "templates", "archive", "internal", "drafts", "node_modules", "__tests__", ".claude", ".pi", ]; export const docsJsonSchema = z .object({ title: z.string().min(1), order: z.number().int().default(50), slug: z .string() .regex(/^$|^[a-z0-9]+(?:-[a-z0-9]+)*$/, 'slug must be lower-kebab-case or ""') .optional(), include: z.array(z.string().min(1)).default([]), }) .strict(); export function isReservedSegment(segment) { const lowered = segment.toLowerCase(); return RESERVED_SEGMENTS.some((reserved) => reserved === lowered); } export function hasReservedSegment(relPath) { return relPath.split("/").some(isReservedSegment); } export function slugify(value) { return (value .toLowerCase() .replace(/[^a-z0-9]+/g, "-") .replace(/^-+|-+$/g, "") || "index"); }