* route(naver): add Naver search RSS route
Supports all search categories: all (통합검색), blog (블로그), cafe (카페), news (뉴스), video (동영상)
* fix: use string replaceAll instead of regex in cleanText
Replace regex patterns with plain strings to satisfy oxlint unicorn/prefer-string-replace-all rule.
* fix: remove console.log and fix cleanText double-unescaping
- Remove console.log to satisfy oxlint no-console rule
- Use single-pass regex replaceAll to prevent HTML entity double-unescaping (CodeQL)
* fix(naver): address review comments and fix cafe/all category bugs
- Fix ALL category: use templateIds array to extract all content types (web, blog, news, video) instead of only webItem
- Fix CAFE category: change URL to ssc=tab.m_cafe.all format and use cheerio HTML parsing since cafe page returns pure HTML instead of JSON SSR
- Address Rule 11: move author/source metadata from description to dedicated author field
- Address Rule 14: return undefined for unparseable dates instead of fake current time
- Use single route path instead of array
- Add maintainer GitHub ID
- Fix cleanText double-unescaping issue with single-pass regex callback
* refactor(naver): split extractItems to reduce cyclomatic complexity
Split the 37-complexity extractItems into extractVideoItem and extractGenericItem.
Fixes CodeFactor "Complex Method" warning.
* refactor(naver): split functions to pass CodeFactor complexity check
Extract extractLink, buildItemFromTemplate, buildVideoDescription, and
buildVideoResult helpers to bring all methods under complexity threshold.
* fix(route): address review - use DataItem, Array.map, and entities package
- Replace manual item type with DataItem from @/types
- Use toArray().map().filter() instead of each() + push()
- Use decodeHTML from 'entities' instead of manual replaceAll
* fix(route): fix oxlint regex warnings
- Use non-capturing groups for regex used only with .test()
- Escape { } in regex literal
- Use character class [분일주] for single-char alternatives