Releases: cm45t3r/candlestick
Release v1.2.0
Changelog
[v1.2.0] - 2025-10-18
✨ New Features
New Patterns (3 patterns, 8 variants):
- feat: Add Marubozu pattern (generic, bullish, bearish variants)
- feat: Add Spinning Top pattern (generic, bullish, bearish variants)
- feat: Add Tweezers patterns (top, bottom variants)
- Now supporting 19 unique patterns with 29 total variants
Streaming API:
- feat: Add streaming API for processing large datasets in chunks
- feat: Add
createStream()with callbacks for matches and progress - feat: Add
processLargeDataset()helper function - perf: Reduce memory usage by ~70% for datasets > 100K candles
Testing:
- test: Add property-based testing with fast-check
- test: Add 13 property tests validating invariants with 1000+ generated cases
- test: Add 82 new unit tests (224 → 306 tests, +36.6%)
- test: Coverage increased to 99.75% (97.63% branches)
Documentation:
- docs: Add 3 new badges (Bundle Size, Snyk Security, Last Commit)
- docs: Add pattern descriptions for new patterns
- docs: Add TypeScript definitions for streaming API
- docs: Update all stats to reflect v1.2.0 metrics
📈 Improvements
- perf: All new patterns fully optimized with precompute
- test: Property-based tests validate mathematical invariants
- test: Streaming tests verify chunk processing and memory efficiency
- docs: Updated README with 19 patterns and 29 variants
📊 Statistics
- Patterns: 16 → 19 (+18.75%, 29 variants total)
- Tests: 224 → 306 (+36.6%)
- Coverage: 99.66% → 99.75% statements
- Branch Coverage: 96.90% → 97.63%
- Dependencies: Added fast-check (dev)
🔧 Technical Details
API Additions:
// Streaming API
const stream = candlestick.streaming.createStream(options);
const results = candlestick.streaming.processLargeDataset(data, options);
// New Patterns
candlestick.marubozu(data);
candlestick.spinningTop(data);
candlestick.tweezersTop(data);Breaking Changes
None - This release is 100% backwards compatible with v1.1.x
v1.1.0 (2025-10-17)
Merged pull requests:
- chore(deps): bump @eslint/js from 9.32.0 to 9.33.0 #27 (dependabot[bot])
- chore(deps): bump eslint from 9.31.0 to 9.32.0 #25 (dependabot[bot])
v1.0.2 (2025-07-25)
Merged pull requests:
- chore(actions): bump actions/first-interaction from 1 to 2 #23 (dependabot[bot])
- chore(actions): bump actions/checkout from 3 to 4 #22 (dependabot[bot])
- chore(actions): bump actions/setup-node from 3 to 4 #21 (dependabot[bot])
- chore(actions): bump heinrichreimer/github-changelog-generator-action from 2.3 to 2.4 #20 (dependabot[bot])
- chore(actions): bump github/codeql-action from 2 to 3 #19 (dependabot[bot])
v1.0.1 (2025-07-24)
Implemented enhancements:
0.0.7 (2024-04-02)
Fixed bugs:
- Some Patterns return undefined #12
- Merge Conflicts in Your Package.json #5
- isEngulfed function #3
- Non installation fix & possible script error on test? #1
Merged pull requests:
- chore(deps): bump glob-parent from 5.1.1 to 5.1.2 #8 (dependabot[bot])
- [Snyk] Fix for 1 vulnerable dependencies #4 (snyk-bot)
* This Changelog was automatically generated by github_changelog_generator
Release v1.1.0
Changelog
v1.1.0 (2025-10-17)
🎯 Major Features
New Patterns (6 total):
- feat: Add Morning Star pattern (3-candle bullish reversal)
- feat: Add Evening Star pattern (3-candle bearish reversal)
- feat: Add Three White Soldiers pattern (3-candle bullish continuation)
- feat: Add Three Black Crows pattern (3-candle bearish continuation)
- feat: Add Piercing Line pattern (2-candle bullish reversal)
- feat: Add Dark Cloud Cover pattern (2-candle bearish reversal)
Module Systems:
- feat: Add ESM support with dual CommonJS/ESM exports
- feat: Conditional exports in package.json for modern bundlers
- feat: Tree-shaking support for optimal bundle sizes
TypeScript:
- feat: Add complete TypeScript definitions (types/index.d.ts)
- feat: Full IntelliSense support for all functions and patterns
- feat: Type-safe interfaces for OHLC, PatternMatch, and plugins
Plugin System:
- feat: Add plugin system for custom pattern registration
- feat: Plugin API with metadata support (type, confidence, etc.)
- feat: Integration with patternChain for custom patterns
Data Validation:
- feat: Add validateOHLC() for single candle validation
- feat: Add validateOHLCArray() for array validation
- feat: Comprehensive OHLC relationship validation
- feat: Descriptive error messages with context
Pattern Metadata:
- feat: Add confidence scores to all patterns (0-1 scale)
- feat: Add pattern type classification (reversal/continuation/neutral)
- feat: Add pattern strength indicators (weak/moderate/strong)
- feat: Add direction metadata (bullish/bearish/neutral)
- feat: Functions to filter, sort, and enrich results with metadata
CLI Tool:
- feat: Command-line interface for pattern detection
- feat: Support for JSON and CSV input files
- feat: Multiple output formats (JSON, table, CSV)
- feat: Stdin/stdout pipeline support
- feat: Pattern filtering by confidence, type, and direction
- feat: Data validation from command line
📈 Improvements
Testing:
- test: Add 144 new tests (80 → 224 tests)
- test: Increase coverage to 99.66% global, 96.90% branches, 100% functions (was ~80%)
- test: Add integration test suite (10 E2E tests)
- test: Add validation test suite (20 tests)
- test: Add plugin system tests (20 tests)
- test: Add metadata system tests (10 tests)
- test: Add CLI tests (10 tests)
Performance:
- perf: Enhanced benchmark suite with multiple dataset sizes
- perf: Performance metrics and throughput calculations
- perf: Memory usage tracking
Documentation:
- docs: Add ARCHITECTURE.md with detailed design documentation
- docs: Add PLUGIN_API.md with plugin system guide
- docs: Add CLI_GUIDE.md with CLI tool documentation
- docs: Add DOCUMENTATION_INDEX.md master index
- docs: Update README.md with ESM examples, metadata, and CLI
- docs: Expand FAQ section
- docs: Update CONTRIBUTING.md with pattern implementation guide
- docs: Update ROADMAP.md with completed items marked
Configuration:
- chore: Add .editorconfig for consistent code style
- chore: Add .nvmrc specifying Node.js 18
- chore: Update ESLint config to support .mjs files
- chore: Add new npm scripts (test:watch, lint:fix, bench)
📊 Statistics
- Patterns: 8 → 16 (+100%)
- Tests: ~80 → 224 (+180%)
- Coverage: ~80% → 99.66% global (+24.6%)
- Documentation: 3 → 12 files (+300%)
- CLI Commands: 0 → 1 (candlestick)
- Examples: 9 → 12 (+33%)
🔧 Technical Details
Package.json updates:
{
"exports": {
".": {
"import": "./src/index.mjs",
"require": "./index.js",
"types": "./types/index.d.ts"
}
},
"module": "src/index.mjs",
"types": "types/index.d.ts"
}New modules:
- src/morningStar.js + test
- src/eveningStar.js + test
- src/threeWhiteSoldiers.js + test
- src/threeBlackCrows.js + test
- src/piercingLine.js + test
- src/darkCloudCover.js + test
- src/pluginManager.js + test
- src/index.mjs (ESM wrapper)
- types/index.d.ts
⚠️ Breaking Changes
None. This release is 100% backwards compatible.
🙏 Acknowledgments
Special thanks to all contributors and users who provided feedback.
v1.0.2 (2025-07-25)
Merged pull requests:
- chore(actions): bump actions/first-interaction from 1 to 2 #23 (dependabot[bot])
- chore(actions): bump actions/checkout from 3 to 4 #22 (dependabot[bot])
- chore(actions): bump actions/setup-node from 3 to 4 #21 (dependabot[bot])
- chore(actions): bump heinrichreimer/github-changelog-generator-action from 2.3 to 2.4 #20 (dependabot[bot])
- chore(actions): bump github/codeql-action from 2 to 3 #19 (dependabot[bot])
v1.0.1 (2025-07-24)
Implemented enhancements:
0.0.7 (2024-04-02)
Fixed bugs:
- Some Patterns return undefined #12
- Merge Conflicts in Your Package.json #5
- isEngulfed function #3
- Non installation fix & possible script error on test? #1
Merged pull requests:
- chore(deps): bump glob-parent from 5.1.1 to 5.1.2 #8 (dependabot[bot])
- [Snyk] Fix for 1 vulnerable dependencies #4 (snyk-bot)
* This Changelog was automatically generated by github_changelog_generator
Release v1.0.2
Changelog
v1.0.2 (2025-07-25)
Improvements & Refactors:
- Refactored all pattern modules to remove redundant
require('./utils.js')calls; now use imported utilities directly. - Consolidated duplicate
isEngulfedlogic: only the utility version is used across the codebase. - Added
paramCountto all multi-candle patterns inpatternChainfor correct match length in results. - Refactored
patternChainto precompute candle properties once per call, improving efficiency and consistency. - Expanded and clarified tests:
- Direct tests for all utility functions, including edge cases (doji, no range, negative/extreme values).
- Added/updated tests for multi-candle pattern matches and edge cases in
patternChain.
- Updated documentation:
- README now includes explicit technical thresholds for patterns, performance tips, and a new FAQ.
- Clarified that the library does not mutate input data.
- Documented multi-candle match behavior and
paramCountin pattern chaining.
- Cleaned up packaging:
- Removed
test/and non-existentHISTORY.mdfrom npm package files. - Ensured only relevant documentation and source files are included.
- Removed
Other:
- All tests pass and coverage is 100%.
v1.0.1 (2025-07-24)
v1.0.0 (2025-07-24)
Implemented enhancements:
0.0.7 (2024-04-02)
Fixed bugs:
- Some Patterns return undefined #12
- Merge Conflicts in Your Package.json #5
- isEngulfed function #3
- Non installation fix & possible script error on test? #1
Merged pull requests:
- chore(deps): bump glob-parent from 5.1.1 to 5.1.2 #8 (dependabot[bot])
- [Snyk] Fix for 1 vulnerable dependencies #4 (snyk-bot)
* This Changelog was automatically generated by github_changelog_generator
Release v1.0.1
Changelog
[Unreleased]
- Major refactor: fully modularized all pattern logic into separate files.
- Added
patternChainAPI for multi-pattern scanning in a single pass. - Added and improved JSDoc for all exported functions.
- Improved and expanded test suite; 100% coverage for all modules.
- Refactored entrypoint for clean exports and tree-shaking.
- Added benchmarking and memory profiling scripts.
- Modernized and expanded README with usage, API, and pattern documentation.
- Improved code quality, linting, and formatting (ESLint flat config, Prettier).
0.0.7 / 2024-04-02
- Fix index.js copyright.
- Remove useless properties in .eslintcr and add
object-curly-spacingexception rule. - Fix linting errors.
- Update package keywords and increment version.
- Optimize private function
findPatternto make it more performant.
0.0.6 / 2024-03-31
- Remove optional param
ratiofrom hammer functions causing bad results. - Fix
bullishHammer,bearishHammer,bullishInvertedHammer,bearishInvertedHammer, andhangingManfunctions. - Bugfix #1.
0.0.5 / 2022-04-28
- Dependencies upgrade.
- Add google eslint ruleset.
- Add nyc coverage to test script.
- Fix spacing and style.
- Add jsdoc to functions.
- Add bullish and bearish hammers (inverted and non-inverted).
- Add optional
ratioparam to hammers. - Fix kickers to exclude hammers.
- Fix candle wrapping on engulfings.
0.0.4 / 2021-01-12
0.0.3 / 2016-10-25
- Shooting star support added.
- Examples updated.
0.0.2 / 2016-10-24
- Fixed accidental lib and test folder exclusion on npm package.
0.0.1 / 2016-10-22
- Initial release
0.0.7
Full Changelog: https://github.com/cm45t3r/candlestick/commits/0.0.7