Files
rdap/package.json
Xevion 5fb095a498 test: add comprehensive testing infrastructure with critical bug fixes
- Add Vitest testing framework with 88 passing tests across 4 test files
- Fix critical entity validator bug (service array index)
- Implement validator architecture with 'matched but invalid' state support
- Add strict IPv4/IPv6 validation with detailed error messages
- Add case-insensitive domain and ASN matching
- Add explicit validator priority ordering (url→json→tld→ip→domain)
- Add integration tests with real IANA registry validation
- Add AutnumCard component for AS number display
- Update dependencies: prettier 2.8.1→2.8.8

Test coverage:
- helpers.test.ts: IPv4/IPv6 CIDR matching (27 tests)
- helpers.asn.test.ts: ASN range validation (22 tests)
- rdap.test.ts: Type detection with edge cases (36 tests)
- rdap.integration.test.ts: Real IANA registry tests (3 tests)

Bug fixes:
- Entity validator now correctly uses service[1] for tags (0=email, 1=tags, 2=urls)
- IPv4 validation rejects octets >255 with specific error messages
- IPv6 validation checks for invalid hex chars and multiple ::
- Domain regex supports multi-label domains (a.b.c.d.example.net)
- Type detection priority prevents URL/JSON false matches as domains
2025-10-22 01:23:15 -05:00

62 lines
1.7 KiB
JSON

{
"name": "rdap",
"version": "0.2.0",
"private": true,
"scripts": {
"build": "next build",
"dev": "next dev",
"lint": "next lint",
"start": "next start",
"test": "vitest",
"test:ui": "vitest --ui",
"test:run": "vitest run --exclude '**/*.integration.test.ts'",
"test:integration": "vitest run --include '**/*.integration.test.ts'",
"test:all": "vitest run",
"type-check": "tsc --noEmit"
},
"dependencies": {
"@headlessui/react": "^2.0.3",
"@heroicons/react": "^2.0.16",
"@swc/helpers": "^0.5.11",
"clsx": "^2.1.1",
"date-fns": "^2.29.3",
"immutability-helper": "^3.1.1",
"next": "^13",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-hook-form": "^7.42.1",
"react-timeago": "^7.2.0",
"sass": "^1.57.1",
"true-myth": "^7.1.0",
"usehooks-ts": "^2.9.1",
"zod": "^3.20.2"
},
"devDependencies": {
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@types/node": "^18.11.18",
"@types/prettier": "^2.7.2",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"@types/react-timeago": "^4.1.7",
"@typescript-eslint/eslint-plugin": "^5.47.1",
"@typescript-eslint/parser": "^5.47.1",
"@vitest/ui": "^3.2.4",
"autoprefixer": "^10.4.7",
"eslint": "^8.30.0",
"eslint-config-next": "13.1.1",
"happy-dom": "^20.0.8",
"postcss": "^8.4.14",
"prettier": "^2.8.8",
"prettier-plugin-tailwindcss": "^0.2.1",
"tailwindcss": "^3.2.0",
"type-fest": "^4.18.2",
"typescript": "^4.9.4",
"vitest": "^3.2.4"
},
"ct3aMetadata": {
"initVersion": "7.2.0"
},
"packageManager": "pnpm@9.0.0"
}