Commit Graph

176 Commits

Author SHA1 Message Date
8283912c50 fix: update Husky hooks for v10 compatibility and fix test scripts
- Remove deprecated shebang lines from Husky hooks
- Fix test:run to properly exclude integration tests
- Update test:integration to directly specify integration test file
- All test suites now working correctly (85 unit + 3 integration tests)
2025-10-22 09:55:34 -05:00
98ab01158e fix: correct vitest integration test script for v3.x compatibility 2025-10-22 02:51:44 -05:00
c17f733da1 ci: implement comprehensive CI/CD and workflow automation
- Add GitHub Actions workflows for CI, release, and deployment
- Configure Renovate for automated dependency updates
- Set up Husky pre-commit hooks with lint-staged
- Add commitlint for enforcing Conventional Commits
- Configure semantic-release for automated versioning
- Add Prettier configuration for consistent formatting
- Reformat codebase with new formatting rules
2025-10-22 02:48:18 -05:00
2c1f882cd9 refactor: replace Google Fonts with FontSource packages and migrate to cn utility
- Replace Google Fonts CDN with self-hosted FontSource packages
- Add @fontsource-variable/inter for variable Inter font
- Add @fontsource/ibm-plex-mono with weight 400 for monospace font
- Create src/lib/utils.ts with shadcn's cn utility function
- Install tailwind-merge for intelligent Tailwind class merging
- Replace all clsx usages with cn utility across components
  - LookupInput.tsx: 7 replacements
  - ErrorCard.tsx: 1 replacement
  - Property.tsx: 2 replacements
- Remove Google Fonts URL import from globals.css
2025-10-22 02:22:39 -05:00
771a27da29 build: upgrade Tailwind CSS from v3 to v4
- Migrate from Tailwind CSS 3.x to 4.1.15
- Replace autoprefixer with @tailwindcss/postcss 4.1.15
- Update PostCSS configuration for Tailwind v4 compatibility
- Convert globals.scss to globals.css for CSS-first configuration
- Remove legacy tailwind.config.cjs in favor of CSS-based config
- Update all component imports to use new globals.css
- Remove old.tsx.disabled file
2025-10-22 02:11:09 -05:00
66bf588647 feat: upgrade to Next.js 15, React 19, and migrate to ESLint 9 flat config
Major framework upgrades:
- Next.js 13 → 15.5.6
- React 18.2.0 → 19.2.0
- ESLint 8 → 9 with flat config migration

Dependency updates:
- @headlessui/react, date-fns, zod, true-myth, usehooks-ts
- @typescript-eslint packages to v8
- TypeScript to v5.9.3
- Prettier to v3.6.2

Breaking changes:
- Migrate from .eslintrc.json to eslint.config.mjs
- Remove deprecated swcMinify option from next.config.mjs
- Update all React type definitions
2025-10-22 01:53:58 -05:00
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
09cd0bf49b build: migrate to pnpm and add vitest testing infrastructure
- Replace Yarn with pnpm as package manager
- Add Vitest with React Testing Library and happy-dom
- Configure test setup and add test scripts (test, test:ui, test:run)
- Add IPCard component and update lookup components
- Remove unused react-ogp dependency
- Add type-check script
2025-10-22 00:34:53 -05:00
ae81ce3ba0 fml 2024-05-12 16:34:27 -05:00
bb4ba75b38 Vercel linting error, removed unused import, add getTypeEasy callback dependency 2024-05-12 16:31:56 -05:00
ea8f1ac92b Update project version to 0.2.0, improve JSON placeholder 2024-05-12 16:22:13 -05:00
b3048086c3 Add await registry-informed getTypes method with smart entity tag validation
fuck type coloring madness
2024-05-12 02:10:15 -05:00
15666716a6 Fix multi-line CSS import broken 2024-05-12 01:14:27 -05:00
c6a31f341c fix entity placeholder, pulse animate autodetected target, remove completed todo 2024-05-11 05:27:21 -05:00
88e822e286 Force nodeLinker node-modules for Yarn Berry v4 2024-05-11 02:50:42 -05:00
4acd1ae701 Fix query detection for Autnum 2024-05-11 02:50:30 -05:00
9f23ba979b Implement querying for TLD, URL, and JSON target types 2024-05-11 02:50:17 -05:00
431bb7b022 Update to yarn berry 2024-05-11 01:36:09 -05:00
abb6df7383 Add lock icon to non-autodetect target types 2024-05-11 01:33:16 -05:00
cdea57b6bf Update next to 13.5.6 2024-05-11 01:32:58 -05:00
19c3442144 type/import fixes, improve placeholder examples 2024-05-11 01:19:57 -05:00
83402d54f5 Update 'next' and '@headlessui/react'
Using latest v2 of HeadlessUI
Also removed unused text-left class on LookupInputButton
2024-05-11 01:19:35 -05:00
71a52ba2e3 Fix anchor HTML spec 2024-05-10 23:46:09 -05:00
9e48075d53 add repo/personal links to header 2024-05-10 06:05:53 -05:00
34a3c8efa6 Use placeholders constants with SimplifiedTargetType 2024-05-10 05:58:35 -05:00
e1ad2a8692 note de jure/de facto schema in README 2024-05-10 05:54:59 -05:00
ad9671c9fe implement de-facto schema 2024-05-10 05:52:05 -05:00
29e294d951 Add actions: copy to clipboard, download response file 2024-05-10 05:43:55 -05:00
597863ea70 Add metadata to ParsedGeneric submit response 2024-05-10 05:42:43 -05:00
670e8c377a Improve unexpected status code handling 2024-05-10 02:45:39 -05:00
f95e0de5bb type assert bootstrapItem as min length 1 2024-05-10 02:36:25 -05:00
06e1b603fc Fix selectable targets type 2024-05-10 02:36:02 -05:00
4ff929105e cut down additional padding
useful for mobile viewports
2024-05-10 02:35:47 -05:00
1f93c8568f fix minor linting/type errors 2024-05-10 02:25:44 -05:00
00088afa5c Make search icon clickable button 2024-05-10 02:25:17 -05:00
2f2a34efcf provide shorthand precise target type naming, fix ip / ip4-6 issue with LookupInput under refined TargetType definition 2024-05-10 02:15:10 -05:00
a88f3dcff3 Simplify ip4/ip6 handling with refined TargetType 2024-05-10 02:14:20 -05:00
16584baef4 Switch URIPatterns to TypeValidators, Record, add typing to Object.entries with type-fest pkg 2024-05-10 02:14:03 -05:00
f1fb5d422e Remove unused CSS classes 2024-05-10 01:49:39 -05:00
ae17a912e4 Fix annoying warnings 2024-05-10 01:49:33 -05:00
abab1b357b Make proper, cohesive TargetType/SimplifiedTargetType types
why didn't I do this before? maybe i'll find out soon
2024-05-10 01:47:59 -05:00
d819920f8a Use .dashed class instead of global attribute selector for title indication 2024-05-10 01:47:09 -05:00
5390c697e2 reduce card header padding on mobile viewport 2024-05-10 01:38:10 -05:00
4e9ba2fe19 Add @types/react-timeago, solve build typecheck 2024-05-10 01:37:47 -05:00
d071c73756 Switch registryDataRef initial value type to match ref type
No fucking clue why I used a non-matching type for this; makes no sense
2024-05-10 01:37:14 -05:00
4b7691fed7 Switch UriType calculated value to Maybe<> 2024-05-10 01:36:28 -05:00
3fa293a237 allow x scrolling on overflowing viewports (mobile) 2024-05-09 23:08:54 -05:00
bd49b57376 begin adding URL, link action on AbstractCard 2024-05-09 23:08:32 -05:00
28f58a362f clerical: import/doc/format fixes 2024-05-09 23:07:40 -05:00
590908ac68 notate domain card type in rendered html 2024-05-09 23:06:44 -05:00