/** * \@formspec/config * * Constraint validation for FormSpec - restrict features based on target * environment capabilities. * * This package provides: * - Type definitions for constraint configuration * - YAML/TypeScript config file loading * - Core validation logic for FormSpec elements * - JSON Schema for .formspec.yml validation * * @example * ```ts * import { loadConfig, validateFormSpecElements } from '@formspec/config'; * import { formspec, field } from '@formspec/dsl'; * * // Load constraints from .formspec.yml * const { config } = await loadConfig(); * * // Create a form * const form = formspec( * field.text("name"), * field.dynamicEnum("country", "countries"), * ); * * // Validate against constraints * const result = validateFormSpecElements(form.elements, { constraints: config }); * * if (!result.valid) { * console.error('Validation failed:', result.issues); * } * ``` * * @packageDocumentation */ export type { Severity, FieldTypeConstraints, LayoutConstraints, LayoutTypeConstraints, RuleEffectConstraints, RuleConstraints, UISchemaConstraints, FieldOptionConstraints, ControlOptionConstraints, ConstraintConfig, ResolvedConstraintConfig, ResolvedUISchemaConstraints, ResolvedRuleConstraints, FormSpecConfig, FormSpecPackageOverride, ValidationIssue, ValidationResult, } from "./types.js"; export type { AnyField, ArrayField, BooleanField, Conditional, DynamicEnumField, DynamicSchemaField, EnumOption, EnumOptionValue, FormElement, FormSpec, Group, NumberField, ObjectField, StaticEnumField, TextField, } from "@formspec/core"; export type { LoggerLike } from "@formspec/core"; export { loadFormSpecConfig, loadConfig, defineConstraints, type LoadConfigOptions, type LoadConfigResult, type LoadConfigFoundResult, type LoadConfigNotFoundResult, } from "./loader.js"; export { defineFormSpecConfig } from "./define.js"; export { resolveConfigForFile, type ResolvedFormSpecConfig } from "./resolve.js"; export { DEFAULT_CONSTRAINTS, DEFAULT_CONFIG, mergeWithDefaults } from "./defaults.js"; export { validateFormSpecElements, validateFormSpec, type FormSpecValidationOptions, } from "./validators/formspec.js"; export { validateFieldTypes, isFieldTypeAllowed, getFieldTypeSeverity, type FieldTypeContext, } from "./validators/field-types.js"; export { validateLayout, isLayoutTypeAllowed, isNestingDepthAllowed, type LayoutContext, } from "./validators/layout.js"; export { validateFieldOptions, extractFieldOptions, isFieldOptionAllowed, getFieldOptionSeverity, type FieldOptionsContext, type FieldOption, } from "./validators/field-options.js"; //# sourceMappingURL=index.d.ts.map