UNPKG

oneie

Version:

Build apps, websites, and AI agents in English. Zero-interaction setup for AI agents (Claude Code, Cursor, Windsurf). Download to your computer, run in the cloud, deploy to the edge. Open source and free forever.

73 lines 2.11 kB
/** * Validation utilities for CLI */ /** * Validates email address format * @param email Email address to validate * @returns True if valid, false otherwise */ export function isValidEmail(email) { const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailPattern.test(email); } /** * Validates URL format * @param url URL to validate * @returns True if valid, false otherwise */ export function isValidUrl(url) { try { const parsed = new URL(url); return parsed.protocol === "http:" || parsed.protocol === "https:"; } catch { return false; } } /** * Generates a URL-safe slug from a string * @param text Text to slugify * @returns URL-safe slug (lowercase, hyphens) */ export function slugify(text) { return text .toLowerCase() .replace(/[^a-z0-9]+/g, "-") .replace(/^-|-$/g, ""); } /** * Reserved names that cannot be used by customers */ export const RESERVED_NAMES = { name: ["one"], folder: ["onegroup", "one"], website: ["https://one.ie", "http://one.ie", "one.ie", "www.one.ie"], }; /** * Validates that organization name is not reserved * @param name Organization name to validate * @returns True if valid (not reserved), false if reserved */ export function isReservedName(name) { const normalized = name.toLowerCase().trim(); return RESERVED_NAMES.name.includes(normalized); } /** * Validates that folder name is not reserved * @param folder Folder name to validate * @returns True if reserved, false if valid */ export function isReservedFolder(folder) { const normalized = folder.toLowerCase().trim(); return RESERVED_NAMES.folder.includes(normalized); } /** * Validates that website URL is not reserved * @param website Website URL to validate * @returns True if reserved, false if valid */ export function isReservedWebsite(website) { const normalized = website.toLowerCase().trim().replace(/\/$/, ""); return RESERVED_NAMES.website.some((reserved) => normalized.includes(reserved.replace(/^https?:\/\//, ""))); } //# sourceMappingURL=validation.js.map