Add PinnedArticleService that always returns configured Naver articles
first to the front-end. Articles are built from a bare URL via a new
NewsApiClient.buildArticleFromUrl (OG/meta parsing + existing content and
image-localization pipeline), cached to disk with a TTL, and prepended
with de-duplication in NewsStorageService. Configurable via
NEWS_PINNED_ARTICLE_URLS / NEWS_PINNED_CATEGORIES / NEWS_PINNED_TTL_MS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add package.json for project configuration and dependencies.
- Implement NewsApplication class to manage service lifecycle and HTTP pipeline.
- Create CategoryCatalog for managing news categories.
- Introduce ServiceConfig for environment variable management.
- Load environment variables from .env files.
- Develop NewsApiCompatibilityController to mimic NewsAPI endpoints.
- Create NewsController for querying and refreshing news data.
- Establish AbstractJsonRepository for JSON storage operations.
- Implement main entry point in index.js to bootstrap the application.
- Create CategoryNewsRepository for category-specific news storage.
- Add ConsoleLogger for structured logging.
- Implement NewsApiClient for fetching articles from NewsAPI.
- Develop NewsRefreshScheduler for scheduling news refresh tasks.
- Create NewsStorageService to coordinate news data management.