All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Switch capstring dependency from GitHub branch reference to npm package (
^1.0.0)
- Node.js 18+ required - Dropped support for older Node.js versions
- ESM only - Package now uses ES modules (
import/export) - HTML output is now XSS-escaped - Special characters (
<,>,&,",') are escaped in HTML responses - Spell check now uses nspell - Replaced Bing Spell Check API with open-source nspell (no API key required)
- 29 capitalization styles - All styles powered by capstring v1.0.0
- New Endpoints
GET /count/:string- Word and character countGET /lorem/:count?- Lorem ipsum generatorPOST /batch- Batch transform up to 100 stringsGET /chain/:styles/:string- Chain multiple transformations (e.g.,/chain/upper+reverse/hello)
- New output formats - XML, YAML, YML, CSV in addition to JSON, JSONP, HTML, TXT
GET /stylesendpoint to list all available stylescreateApp()export for testing and programmatic use- Open-source spell checking with nspell (Hunspell-compatible)
- Full test suite with supertest (78 tests)
- XSS protection for HTML output
- GitHub Actions CI
- Vitest test framework with 84% coverage
- ESLint 9 with flat config
- PR and issue templates
- XSS vulnerability - HTML output now properly escapes user input
- Security hardening - Added fetch timeout (5s), input length limits (10k chars), batch limits (100 items)
- Fixed YAML/CSV escaping for newlines and special characters
- Extracted duplicate spell-check logic to shared function
- Complete ES2022+ rewrite (const/let, arrow functions, async/await, template literals)
- Replaced deprecated
requestpackage with nativefetch(Node 18+) - Migrated from callbacks to async/await
asyncdependency (unused)requestdependency (replaced with native fetch)- CommonJS support (
require())
- Initial release