# Changelog of CodePen Scraper (`codingfrontend/codepen-scraper`) Actor

- **URL**: https://apify.com/codingfrontend/codepen-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/codingfrontend/codepen-scraper.md

## Changelog

### \[1.0.1] - 2025-05-20

#### Added

- `validate-datasets.js` for local dataset schema validation
- `src/schema/input.js` — centralised input validation module
- `src/errors/` — ScraperError, ErrorTypes, and ErrorHandler classes
- `src/filters/index.js` — result deduplication
- `storage/` directory structure for local runs
- `storage/key_value_stores/default/INPUT.json` example input
- Proper `dataset_schema.json` with full field definitions (penId, title, views, loves, html, css, js, author, etc.)

#### Changed

- `src/main.js` refactored to use `validateInput()` from schema module
- `failedRequestHandler` now uses `ErrorHandler.handle()` for structured error reporting
- Updated `actor.json` to add `storages.dataset` reference

### \[1.0.0] - 2025-01-01

#### Added

- Initial release of CodePen Scraper
- Supports modes: `pen`, `author`, `author_pens`, `trending`, `search`
- Puppeteer-based scraper with stealth and user-agent rotation
- Extracts pen code (HTML, CSS, JS), metadata, views, loves, comments, forks
- Optional login support for accessing trending/search content
- Author profile scraping with avatar download
- Pen thumbnail download to Apify key-value store
- Multiple handlers: penHandler, authorHandler, collectionHandler, trendingHandler, searchHandler, penListHandler
