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.
- Shifting version number to single file,
version.js, which is used across project. - Accidentally forgot to update CHANGELOG before updating on NPM.
- Part of eeb functionality broken into smaller part,
getGlobalObject.js, to improve testing code coverage. - Code coverage increased from ~90% to ~98%.
- Added more JSDocs comments.
- Updated ESLint usage to better support Windows platforms.
- Removed Node 20.x support and added Node 24.x support for GitHub CI Action.
- Updated dependencies.
- Updated dependencies.
- CHANGELOG.md to track project changes
- CONTRIBUTING.md with development guidelines
- GitHub issue templates (bug reports, feature requests)
- GitHub pull request template
- .npmignore to optimize package size
- Script-tagged passages now automatically added to
storyJavaScriptproperty instead of passages array - Comprehensive Snowman story format compatibility tests
- Enhanced HTML entity handling for passage content
- CI/CD testing across multiple Node.js versions (20.x, 22.x, 23.x)
- CI/CD testing across multiple operating systems (Ubuntu, Windows, macOS)
- Passage text content no longer HTML-encoded in output (attributes still encoded)
- Improved round-trip compatibility between formats
- Enhanced GitHub Actions workflow for better test coverage
- HTML entity encoding bug that broke JavaScript and HTML content in passages
- Snowman story format compatibility issues with dynamic content
- Regression of encoding behavior back to original, correct encoding of HTML-like entities
- Accidentally introduced encoding issue from 2.3.9
- Issue with parsing of Twee passages using "script" and "stylesheet" keywords
- Passages not always being processed as Story JavaScript and Story Stylesheet
- Duplication of passages and incorrect encoding into Twine 2 HTML
- Edge case issue when encoding special symbols in writing and confirming when reading
- Native crypto.randomUUID() for IFID generation (Node.js)
- Browser-based Crypto API randomUUID() for web builds
- Performance improvement: UUID generation is much faster
- Updated dependencies
- uuid package dependency (replaced with native crypto APIs)
- Monthly maintenance update
- Updated dependencies (jest, eslint, webpack, eslint-plugin-jsdoc, @inquirer/prompts)
- May impact older browsers (pre-2021) for web builds
- New decompile demo showing Twine 2 HTML analysis with statistics
- Issues with web parsing of attributes inside
<tw-storydata>and<tw-passagedata>elements
- Minor release to re-align versions on NPM and GitHub
- Exports for various web builds to help with packaging
- "Compiler" demo showing browser-based Twee compilation with Story Formats Archive
- Internal WebPack changes to fix edge cases with loading Extwee in browser
- Updated dependencies
- Fixed code scanning alert #133: Exception text reinterpreted as HTML
- Web-specific versions of major HTML parsers (Twine1HTML, Twine2HTML, Twine2ArchiveHTML) using DOM functionality
- Separate build files: core, TWS, Twine2Archive, Twine1HTML
- Optimized web build from 290 KiB to 78.5 KiB (core)
- Updated UUID to pure ESM module
- Rewrote Jest mocking functions for compatibility
- Support for Twine 2 JSON format
- Enhanced web build exports
- Tree-shaking support for better bundle optimization
- Improved command-line interface with better error messages
- Updated documentation with more examples
- Separated short and long command-line option flags
- Improved CLI help documentation
- Config file support (extwee.config.json)
- Better story format version handling
- Enhanced error messages throughout the application
- Twine 2 Archive HTML support
- Round-trip testing for format conversions
- Various parser edge cases
- Complete rewrite using ES modules
- TypeScript type definitions
- Web builds for browser usage
- Comprehensive test suite with Jest
- Modern JavaScript (ES2020+)
- Improved API design
- Better separation of concerns
- API incompatible with 1.x versions
- Node.js 14+ required
- Twee 3 specification support
- StoryFormat parsing improvements
- Version 1.x line (replaced by 2.x)
- Update Node.js to version 14 or higher
- Change CommonJS
require()to ESimport - Review API changes in object constructors
- Update file paths to use absolute paths in CLI
- No user action required - internal change only
- IFID generation is now 3.6x faster