# Change Log

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [9.0.3] - 2026-06-28

### Fixed

- Made restore() method public

---

## [9.0.2] - 2026-06-28

### Fixed

- Fixed types, replaced fs streams usage with Readable and Writable

---

## [9.0.1] - 2026-06-28

### Fixed

- Updated documentation

---

## [9.0.0] - 2026-06-28 (Breaking changes)

### Removed

- **File system integration**: We've streamlined the core library by removing direct file system handling. This gives you complete control over storage and restoration logic, allowing you to implement custom solutions tailored to your needs.
- **Writer/reader mode bifurcation**: Simplified the codebase by consolidating mode-specific behavior, making the library more intuitive to work with.

### Changed

- The following options are now deprecated and removed in current and future releases:
  - `options.pathToDumpFile`
  - `options.storingInterval`
  - `options.writer`

- **Updated method signatures**:
  - `init()` and `restore()` now require a `stream: ReadStream` argument
  - `store()` now requires a `stream: WriteStream` argument

**Migration guide**: If you were relying on automatic file-based storage, you'll need to manage stream handling in your application. This provides greater flexibility and control over persistence.

---

## [8.0.0] - 2025-02-11

### Added

- Moved data restoring to the separate init() method.
- Moved data storing to the separate store() method.
- Upgraded storing algorithm.

### Changed

- options.dumpPath -> options.pathToDumpFile
- options.dumpInterval -> options.storingInterval

## [7.0.0] - 2025-02-11

### Added

- Moved data restoring to the separate init() method.
- Upgraded storing algorithm.

## [6.0.0] - 2025-02-11

_BROKEN VERSION_

## [5.0.0] - 2025-02-11

### Added

- Reimplemented storing algorithm due to high CPU load and EL delays for large objects storing

## [4.6.0] - 2025-02-11

### Fixed

- Refactored storing algorithm

## [4.5.0] - 2025-08-11

### Added

- timestamps in dumps, preparing for multi-instance synchronization

## [4.4.0] - 2025-08-11

### Fixed

- handle quoted property names correctly

## [4.3.1] - 2025-08-11

### Fixed

- used BigInt support only for unsafe integers

## [4.3.0] - 2025-08-11

### Added

- added BigInt support

### Fixed

- replaced parseInt with BigInt

### Removed

- time tracking (found it useless)

## [4.2.0] - 2025-08-11

### Fixed

- fixed useDump and returned backward compatibility

## [4.1.0] - 2025-08-11

### Added

- time tracking for each update

### Fixed

- setting/getting string values which contain spaces

## [4.0.0] - 2025-06-25 (**Breaking changes!**)

### Added

- Returned Auto-Save Mechanism as more efficient;
- Added **writer** (boolean, default true) to options, this property enables auto-syncs

---

## [3.0.0] - 2025-06-20 (**Breaking changes!**)

### Removed

- Replaced Auto-Save Mechanism with Event Based Save Mechanism (triggers once you change data);
- Removed **mode** and **dumpInterval** from options

---

## [2.2.9] - 2025-06-20

### Added

- Added **mode** to options (writer|reader) that define the instance behavior

### Removed

- Removed **cancelAutoSave** from options;

## [2.2.8] - 2025-06-20

### Added

- Added **cancelAutoSave** to options;

## [2.2.7] - 2025-06-12

### Fixed

- Play with multiple items - fixed options setting in the constructor;

## [2.2.6] - 2025-05-26

### Added

- Added store method;

## [2.2.5] - 2025-05-22

### Fixed

- Removed icons from README.md

## [2.2.4] - 2025-05-20

### Fixed

- Updated property-accessor version

## [2.2.3] - 2025-05-19

### Fixed

- Updated property-accessor version

## [2.2.2] - 2025-05-19

### Fixed

- Updated property-accessor version

## [2.2.1] - 2025-05-17

### Fixed

- Refactor the data storing avoiding async functionality

---

## [2.2.0] - 2025-05-17

### Fixed

- Upgraded data storing functionality

---

## [2.1.1] - 2025-05-17

### Fixed

- Fixed events intersection and processes overflow

---

## [2.1.0] - 2025-05-17 (**Breaking changes!**)

### Fixed

- Reverted changes since 2.0.0 failed

---

## [2.0.0] - 2025-05-17 (**Breaking changes!**)

### Added

- Instead of background storing entire object store each key-value eventually
- Replaced dumpInterval from options

---

## [1.1.2] - 2025-05-17

### Fixed

- Non-blocking storing

---

## [1.1.1] - 2025-05-17

### Fixed

- Replaced fs usage with child_process

---

## [1.1.0] - 2025-05-17

### Fixed

- Fixed storing to avoid RangeError when JSON.parse/JSON.stringify

---

## [1.0.0] - 2025-05-02

### Added

Basic package implementation
