Repository navigation
Expand file tree
/
Copy pathcontext7.json
More file actions
36 lines (36 loc) · 2.31 KB
/
Copy pathcontext7.json
File metadata and controls
36 lines (36 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
"$schema": "https://context7.com/schema/context7.json",
"url": "https://context7.com/lyconiq/herokit",
"public_key": "pk_PdTGdFhLp52wFzxBj66ad",
"projectTitle": "HeroKit",
"description": "Extension methods for .NET with built-in Turkish data rules. It validates Turkish identity numbers, tax numbers, IBANs, phone numbers and vehicle plates, and covers provinces, districts, public holidays, business days and amounts in words. Separate packages add file type detection, safe upload checks, ASP.NET Core support and FluentValidation rules.",
"folders": [
"docs/articles",
"HeroKit.FileTypes",
"HeroKit.FileTypes.AspNetCore",
"HeroKit.FluentValidation",
"samples"
],
"excludeFolders": [
"bin",
"obj"
],
"excludeFiles": [
"README.TR.md",
"CONTRIBUTING.md",
"SECURITY.md",
"CHANGELOG.md",
"LICENSE",
"PublicAPI.Shipped.txt",
"PublicAPI.Unshipped.txt"
],
"rules": [
"Packages: HeroKit (core), HeroKit.FileTypes (file type detection, uploads, no dependencies), HeroKit.FileTypes.AspNetCore (IFormFile) and HeroKit.FluentValidation. Install only what you use.",
"Country rules take a Country object, for example value.IsValidPhone(Countries.Turkey). Since 3.0 there are no Tr-suffixed methods. Türkiye-only checks (IsValidTckn, IsValidVkn, Tckn) are in HeroKit.Globalization.Turkey.",
"Keep TCKN, VKN and IBAN values as string, never as long or int. Validate with IsValidTckn, IsValidVkn and IsValidIban; pass the Tckn value type once a number is validated.",
"Use CountBusinessDays (decimal, half-day holidays count 0.5) instead of the obsolete BusinessDaysUntil. Use Countries.Turkey.Today() instead of DateTime.Today on servers that run in UTC.",
"Conversions such as ToInt(defaultValue) never throw; use the TryToX(out) form to know whether parsing worked. Parsing is culture-invariant unless you pass an IFormatProvider.",
"Check uploads by content with UploadValidator or FileTypes.CheckUpload, never by extension or Content-Type alone. In minimal APIs use .ValidateUploads(policy); in models use [AllowedFileTypes].",
"Upload checks are a first line of defense, not proof that a file is harmless. Also limit the request size, store files under generated names outside the web root, serve them as downloads and scan them when the risk calls for it."
]
}