Commit Graph

39 Commits

Author SHA1 Message Date
renovate[bot]
41d7de5fe8 chore(deps): update pnpm to v10 2025-11-24 10:29:54 +00:00
renovate[bot]
d296068f9b chore(deps): update dependency lint-staged to v16 (#7)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 13:28:06 +00:00
renovate[bot]
0af52f5d10 chore(deps): update commitlint monorepo to v20 (#6)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 09:34:10 +00:00
renovate[bot]
359b9da7ae chore(deps): update pnpm to v9.15.9 (#2)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 07:13:36 +00:00
5fde7d249f feat: add PostHog telemetry with privacy-focused tracking
Integrate optional PostHog telemetry to track page views, RDAP queries,
user interactions, and errors while maintaining user privacy.

Key features:
- Type-safe event tracking with discriminated unions
- Automatic source map upload for production error tracking
- Privacy protections (query targets excluded from successful lookups)
- Do Not Track (DNT) header support
- Optional telemetry (disabled by default without environment variables)
- Error boundary with automatic error tracking
- Context-based telemetry integration throughout UI components

Environment variables required for telemetry:
- NEXT_PUBLIC_POSTHOG_KEY: PostHog project API key (client-side)
- NEXT_PUBLIC_POSTHOG_HOST: PostHog API endpoint (client-side)
- POSTHOG_PERSONAL_API_KEY: Source map upload key (server-side)
2025-10-23 18:00:24 -05:00
2f23dd33e9 refactor: simplify npm scripts and streamline CI workflow
Consolidate package.json scripts from 17 to 10 by removing
redundant test variants and combining type-check + lint into
a single 'check' command. Update CI workflow to use simplified
commands and merge separate unit/integration test steps into
unified test execution. Update documentation to reflect new
script structure.
2025-10-23 16:05:11 -05:00
a2a83e9593 feat: add OverlayScrollbars for improved scrolling UI
Replace native ScrollArea with OverlayScrollbars library in
AbstractCard raw view and main page layout. Provides consistent,
customizable scrollbars with auto-hide behavior across the
application.
2025-10-23 10:21:48 -05:00
ec9509e880 refactor: replace lucide-react with Radix icons and add GitHub link
Replace lucide-react dependency with Radix UI's native icon system.
Increase theme toggle icon size from 18px to 22px for better visibility.
Add GitHub repository link with icon button in the navigation header.
2025-10-23 10:06:54 -05:00
83556e950b feat: add global date format preferences with timezone support
Implements a synchronized date format toggle across all timestamps
with persistent user preferences. Timestamps now support three format
views (relative, absolute, ISO) with tooltips and copy functionality.
Adds automatic timezone detection and display.
2025-10-23 09:58:09 -05:00
852277d648 ci: enhanced CI/CD and test coverage
- Update version from 0.2.0 to 0.9.0
- Upgrade Vitest from v3 to v4 for improved testing capabilities
- Add @vitest/coverage-v8 for comprehensive code coverage reporting
- Enhance GitHub Actions CI workflow with separate unit and integration
test runs
- Integrate Codecov v5 for coverage reporting and test results tracking
- Add JUnit reporter for better test result analysis
- Configure @codecov/vite-plugin for automated coverage collection
2025-10-23 01:04:52 -05:00
99b65363b4 fix: address code quality issues and critical bugs
- Fix getBestURL HTTPS prioritization bug (critical security issue)
- Standardize equality operators to === for status code checks
- Add JSON parsing error handling with try-catch
- Improve IP address validation with explicit error messages
- Fix ARIA label accessibility (add id="search" to TextField)
- Remove unused callback hook in useLookup
- Add type detection debouncing (150ms) using @mantine/hooks
- Remove duplicate LookupInput component from src/components/form/
2025-10-22 16:56:42 -05:00
48eb1c630b chore: remove semantic-release configuration and dependencies
Remove semantic-release workflow, configuration, and related dependencies as
they are no longer needed for this project's release process.
2025-10-22 13:00:35 -05:00
7073936e6c feat: migrate to Radix UI and implement dark mode with next-themes
Replace @headlessui/react and @heroicons/react with @radix-ui/themes and
@radix-ui/react-icons for a more comprehensive component library. Add
next-themes for dark mode support with a new ThemeToggle component. Update
all components to use Radix UI primitives and theming system, including
AbstractCard, DynamicDate, ErrorCard, Property, PropertyList, LookupInput,
and all card components (AutnumCard, DomainCard, EntityCard, IPCard,
NameserverCard). Update global styles and app configuration to support theme
switching.
2025-10-22 11:59:52 -05:00
611074b546 feat: implement Entity and Nameserver cards with type safety improvements
- Add EntityCard component to display entity information with handle, roles, and public IDs
- Add NameserverCard component to display nameserver details
- Integrate new cards into Generic component for proper object rendering
- Remove unused dependencies (immutability-helper, type-fest)
- Enhance type safety in LookupInput with Zod validation
- Replace console.log statements with appropriate comments
- Initialize registryDataRef with proper typed default values
- Remove unused code and debug logging from rdap.ts and useLookup hook
- Update Object.entries type definition without external dependency
2025-10-22 11:02:50 -05:00
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
ea8f1ac92b Update project version to 0.2.0, improve JSON placeholder 2024-05-12 16:22:13 -05:00
431bb7b022 Update to yarn berry 2024-05-11 01:36:09 -05:00
cdea57b6bf Update next to 13.5.6 2024-05-11 01:32:58 -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
16584baef4 Switch URIPatterns to TypeValidators, Record, add typing to Object.entries with type-fest pkg 2024-05-10 02:14:03 -05:00
4e9ba2fe19 Add @types/react-timeago, solve build typecheck 2024-05-10 01:37:47 -05:00
757adcf385 Use react-timeago for DynamicDate component, improve relative timing display 2024-05-09 22:09:42 -05:00
f37e6f87a2 add clsx, add bottom padding for ErrorCard 2024-05-09 02:15:11 -05:00
3b9153fb97 internal: add true-myth for result/maybe types, test maybe on getType() handler, disable /old page 2024-05-09 01:21:37 -05:00
800e4f745f Add relevant TailwindUI libraries (headlessui, heroicons) 2023-05-21 23:06:09 -05:00
Xevion
9907772020 Remove axios, use fetch API 2023-02-20 00:37:48 -06:00
Xevion
063397625c Rewrite index with useLookup hook, add react-ogp 2023-02-20 00:17:28 -06:00
Xevion
9994f76dd9 Add react-hook-form pkg 2023-02-19 23:28:14 -06:00
Xevion
742b370ee3 Improve date rendering with toggleable rendering 2023-01-22 04:42:44 -06:00
Xevion
0fa1cfaabd Add primitive dark mode 2023-01-15 02:28:14 -06:00
Xevion
496a25cf59 Prototype commit 2023-01-14 13:58:36 -06:00
Xevion
40441ed328 Project init 2023-01-12 20:58:40 -06:00