- Changed main entry point from `index.js` to `server.js` in package.json.
- Created a new `app.ts` file to encapsulate Express app configuration.
- Removed old `index.ts` file and moved server logic to `server.ts`.
- Updated nodemon configurations to point to the new `server.ts`.
- Added new middleware for API key authentication with public endpoint support.
- Modified validators to accept any string for IPs, allowing handlers to determine validity.
- Added integration tests for batch lookup and health endpoints.
- Implemented unit tests for error handling and validation middleware.
- Updated `tsup` and `vitest` configurations to reflect new entry points and testing setup.
feat: Implement BitipClient for GeoIP service integration
- Add BitipClient class for interacting with the Bitip GeoIP Service.
- Implement methods for health check, version info, IP location lookup, detailed IP location, and batch IP lookup.
- Introduce validation for IP addresses with IpValidator utility.
- Normalize URLs with UrlNormalizer utility.
- Create constants for API keys and routes.
- Add TypeScript types for client options, responses, and errors.
- Set up ESLint and Prettier configurations for code quality.
- Add unit tests for BitipClient and IpValidator.
- Configure TypeScript and build settings with tsup.
- Set up Vitest for testing framework and coverage reporting.