Fuaran.UI.Validator
0.81.0
Prefix Reserved
dotnet add package Fuaran.UI.Validator --version 0.81.0
NuGet\Install-Package Fuaran.UI.Validator -Version 0.81.0
<PackageReference Include="Fuaran.UI.Validator" Version="0.81.0" />
<PackageVersion Include="Fuaran.UI.Validator" Version="0.81.0" />
<PackageReference Include="Fuaran.UI.Validator" />
paket add Fuaran.UI.Validator --version 0.81.0
#r "nuget: Fuaran.UI.Validator, 0.81.0"
#:package Fuaran.UI.Validator@0.81.0
#addin nuget:?package=Fuaran.UI.Validator&version=0.81.0
#tool nuget:?package=Fuaran.UI.Validator&version=0.81.0
Fuaran.UI.Validator
Build-time validator for Fuaran UI trees — an F# AST walker that gates Fuaran.X "id" { ... } author code against the schema contract in fuaran-validator.manifest.json before runtime. Surfaces structural defects (duplicate NodeIds, malformed Bindings, Action.Dispatch payloads against unknown Msg cases, RowType mismatches) as CLI findings with file:line locations, with FUARAN9xx warning + error codes mirroring the §4d AI-recovery error format.
Usage
Fuaran.UI.Validator <project.fsproj> [--module-pattern SUBSTR]
[--manifest PATH]
[--format plain|json]
Exit codes: 0 on no Error-severity findings, 1 on at least one Error, 2 on malformed CLI arguments or missing project file. Warnings do not affect the exit code; an absent manifest emits FUARAN900 (warning) and silences the schema-coupled checks. See Fuaran/docs/VALIDATOR-MANIFEST.md for the manifest schema; see Fuaran/docs/TECHNICAL_GUIDE.md for how the validator integrates with the wider Phase 12 pipeline.
Suppressing a finding
Some source deliberately holds a shape the validator is right to reject in application code — most often a negative test, whose whole purpose is to construct the defect and assert the runtime reports it. There the finding is correct about the code and wrong about the intent, and no edit fixes it without destroying the test. Two comment pragmas opt a source out:
// fuaran-validator: disable FUARAN047, FUARAN048 — negative-test fixtures
File-scoped: suppresses the listed codes anywhere in the file, wherever the comment sits (convention: beside the module's doc comment, so a reader meets it before the fixtures).
// fuaran-validator: disable-next-line FUARAN044
Line-scoped: suppresses the listed codes on the following source line only — the precise form, for a single exceptional call site in a file that should otherwise stay gated.
Any text after the codes is free prose, so a pragma carries its justification on the same line. A pragma naming a code that never fires is inert, and a pragma naming no code at all suppresses nothing (a bare disable is a typo, not a blanket). Suppression applies to warnings as well as errors, and filters only the reporting layer — every check still runs. Suppressed findings are counted in the run summary (… 0 error(s), 3 warning(s), 2 suppressed, …) so a silenced rule stays visible in the build log.
Apache-2.0 licensed — see the repo LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Fable.Core (>= 5.0.0)
- FSharp.Compiler.Service (>= 43.12.204)
- FSharp.Core (>= 10.1.300)
- Fuaran.Core.Column (>= 0.22.0)
- Fuaran.Core.Conformance (>= 0.22.0)
- Fuaran.Core.DataFrame (>= 0.22.0)
- Fuaran.Core.Function (>= 0.22.0)
- Fuaran.Core.Ops (>= 0.22.0)
- Fuaran.Core.OpStream (>= 0.22.0)
- Fuaran.Core.Tree (>= 0.22.0)
- Fuaran.Core.Validator (>= 0.22.0)
- Fuaran.Core.Wire (>= 0.22.0)
- Fuaran.UI (>= 0.81.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.81.0 | 40 | 9/12/2026 |
| 0.80.0 | 123 | 9/9/2026 |
| 0.79.0 | 69 | 9/9/2026 |
| 0.78.1 | 150 | 9/8/2026 |
| 0.78.0 | 92 | 9/7/2026 |
| 0.77.0 | 89 | 9/6/2026 |
| 0.76.0 | 167 | 9/6/2026 |
| 0.75.0 | 133 | 9/4/2026 |
| 0.71.0 | 84 | 9/4/2026 |
| 0.70.0 | 107 | 9/4/2026 |
| 0.46.0 | 159 | 8/28/2026 |
| 0.39.0 | 106 | 8/27/2026 |
| 0.35.0 | 147 | 8/24/2026 |
| 0.32.0 | 109 | 8/23/2026 |
| 0.31.0 | 126 | 8/21/2026 |
| 0.30.0 | 105 | 8/21/2026 |
| 0.29.0 | 104 | 8/19/2026 |
| 0.28.0 | 99 | 8/18/2026 |
| 0.27.0 | 98 | 8/18/2026 |
| 0.26.0 | 124 | 8/18/2026 |