UNPKG

roadmap-gen

Version:

Professional HTML roadmap generator from YAML data with multiple themes

180 lines (128 loc) โ€ข 8.72 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.4.0] - 2025-08-11 ### Added - ๐Ÿ”’ **Internal/Public Content Control**: Major new feature for controlling content visibility - `--with-internal` CLI flag to include confidential content - `internal: true` flag for projects, quarters, details, and metrics - `internal_notes` field for sensitive quarter information (always excluded from public view) - Granular control at multiple levels: entire projects, specific quarters, individual details, or metrics - Automatic filtering of empty categories after internal content removal ### Enhanced - **TypeScript Types**: Extended with `DetailItem`, `MetricItem`, and union types (`DetailEntry`, `MetricEntry`) - **HTML Generation**: Updated utilities with `detailEntriesToStrings()` and `metricEntriesToStrings()` helpers - **Build Process**: Enhanced filtering pipeline with comprehensive content processing - **Template System**: Support for new data structures while maintaining backward compatibility ### Technical - **New Filtering Logic**: `filterInternalContent()` function with multi-level content filtering - **Helper Functions**: `filterDetailEntries()` and `filterMetricEntries()` for granular filtering - **Code Quality**: Refactored build function to reduce complexity (split into smaller functions) - **Test Coverage**: 4 new comprehensive tests for internal content filtering scenarios ### Security - **Content Privacy**: Ensures sensitive information is never leaked to public roadmaps - **Default Behavior**: Public-first approach - internal content hidden by default - **Validation**: Comprehensive filtering at all data structure levels ## [0.3.1] - 2025-08-11 ### Added - ๐Ÿ“ฆ **Embedded Default Theme**: Default theme is now fully embedded in the binary for self-contained usage - ๐ŸŽฏ **Smart Theme Resolution**: Automatic detection between embedded default and external themes ### Fixed - **Code Quality**: Resolved ESLint warnings and formatting issues ### Technical - **Embedded Assets**: Complete default theme embedded in `src/core/embedded-assets.ts` - **Theme Loading**: Enhanced `loadThemeAssets()` with embedded vs external theme detection - **Template System**: Improved template variable consistency across all generators - **Build Process**: Streamlined asset copying for both embedded and external themes ## [0.3.0] - 2025-08-10 ### Added - ๐Ÿ“ **Custom Output Directory**: `--output` / `-o` option to specify custom output directories - ๐ŸŽฏ **Template System**: `--template` / `-t` option to use different theme directories - ๐ŸŽจ **Multiple Themes**: Example themes for different audiences and use cases ### Enhanced - **API**: `build()` function now accepts `templateDir` and `outputDir` parameters - **CLI Interface**: Extended help documentation with new theme and output options - **Asset Management**: Smart asset copying that handles both default and themed assets - **Template Loading**: Enhanced template loader to work with different theme directories ### Technical - **Theme Architecture**: Modular theme system with individual asset directories - **Asset Resolution**: Intelligent asset path resolution for default vs themed templates - **Code Quality**: All code passes ESLint, Prettier, and EditorConfig validation - **Test Coverage**: Comprehensive test suite continues to pass with new functionality ## [0.2.2] - 2025-08-10 ### Added - **Workflows**: Composite action for Bun setup to reduce code duplication across workflows ### Changed - **CI/CD**: Optimized workflow architecture - CI runs on push/PR, Build validates and builds on release, Publish depends on successful Build - **Validation**: Moved validation logic out of composite action to individual workflows for better control ### Fixed - **TypeScript**: Resolved strict mode errors with proper null safety and optional chaining - **Tests**: Enhanced test robustness with safe navigation operators - **Workflows**: Fixed softprops/action-gh-release requiring proper release context - **Code Quality**: Improved regex validation with capture group verification ## [0.2.1] - 2025-08-10 ### Fixed - ๐Ÿงน **Code Cleanup**: Removed unused CSS rules, optimized JavaScript event handlers for better maintainability - โœ… **Test Updates**: Fixed test assertions to match updated UI text labels - ๐Ÿ“ **Code Quality**: Improved ESLint compliance with proper line length and quote consistency ### Changed - **UI**: Issue links now appear directly on project titles with arrow indicators instead of separate links - **Visual**: Project row borders increased from 1px to 2px for better visual separation - **Assets**: Removed redundant CSS classes and optimized file structure ## [0.2.0] - 2025-08-10 ### Added - ๐ŸŽ›๏ธ **CLI Arguments Support**: `--source` / `-s` option to specify custom YAML files - ๐Ÿ“‹ **Help Command**: `--help` / `-h` displays comprehensive usage information - ๐ŸŽจ **Typography Enhancement**: Replaced `...` with proper ellipse character `โ€ฆ` - ๐Ÿ“„ **Example File**: Repository example moved to `example.yml` for better structure - โš™๏ธ **Configuration**: Use constants instead of hard coded values throughout codebase - ๐Ÿ”ง **Dependencies**: Added `@bomb.sh/args` for CLI parsing and TypeScript for compilation checks ### Changed - **Breaking**: Default source file is now `roadmap.yaml` instead of `data.yaml` - **CLI**: Enhanced error messages with helpful suggestions for `--source` option - **API**: `build()` function now accepts optional `sourceFile` parameter - **CI/CD**: Refactored GitHub Actions workflows with sequential CI โ†’ Build/Publish architecture - **Scripts**: Reorganized npm scripts - `build` for roadmap generation, `validate` for CI ### Fixed - ๐Ÿ”ง **ESLint Configuration**: Improved ESLint rules without disabling checks unnecessarily - ๐Ÿ—๏ธ **TypeScript Configuration**: Fixed `allowImportingTsExtensions` compatibility with `noEmit` - โœจ **Code Style**: Enhanced build function modularity and removed trailing spaces - ๐Ÿงช **Test Improvements**: Better test structure with named constants instead of magic numbers ## [0.1.0] - 2025-01-14 ### Added - ๐ŸŽฏ HTML roadmap generator from YAML data - ๐Ÿ“Š Interactive roadmap visualizations with project tracking - ๐ŸŽจ Professional dark theme with responsive design - ๐Ÿ“ YAML configuration support with comprehensive validation - ๐Ÿ—๏ธ Modular template system with external HTML templates - โšก Template caching for improved performance with memory limits - ๐Ÿงช Comprehensive test suite with 66+ tests and 201 assertions - ๐Ÿ”ง ESLint configuration with code quality rules - โœจ Prettier formatting with EditorConfig standards - ๐Ÿ“ EditorConfig for consistent code style across editors - ๐Ÿ›‰ EditorConfig-checker for automated style validation in lint phase - ๐Ÿ“ฆ Dual usage: CLI tool and programmatic API - ๐Ÿš€ Cross-platform binary compilation support - ๐Ÿ“ˆ Flexible progress format support (percentages, fractions, phases, custom text) - ๐ŸŒ Dynamic year detection (no hardcoded dates) - ๐Ÿ”’ Built-in XSS protection with HTML escaping - ๐Ÿ›ก๏ธ URL sanitization to block dangerous schemes ### Features - **Project Status Tracking**: Visual indicators for completed, in-progress, planned, and on-hold projects - **Quarter-based Timeline**: Organize projects across multiple quarters with highlighted periods - **Rich Project Data**: Support for responsible parties, issue links, progress tracking - **Metrics Dashboard**: KPIs and risk management - **Interactive Elements**: Keyboard navigation, hover effects, and smooth scrolling - **Export Ready**: Generate standalone HTML files for sharing ### Technical - **Modern Architecture**: TypeScript with strict configuration and modular design - **Template System**: External HTML templates with secure variable replacement - **Code Quality**: KISS and DRY principles, comprehensive linting, EditorConfig standards - **Industry Standards**: Follows npm/Node.js conventions with root index.ts - **Organized Structure**: Logical grouping in core/, data/, and template/ modules - **Bun Runtime**: Optimized for performance with Bun's native features - **CI/CD Pipeline**: Automated quality checks and multi-platform binary builds - **Security First**: Input sanitization, XSS protection, and URL validation built-in - **Error Handling**: Comprehensive validation with clear error messages - **Separated Concerns**: Quality checks (`check`) independent from build validation (`validate`)