# Changelog

## 2025-04-14 - 5.8.2 - fix(classes.doc.ts)
Ensure collection initialization before creating a cursor in getCursorExtended

- Added 'await collection.init()' to guarantee that the MongoDB collection is initialized before using the cursor
- Prevents potential runtime errors when accessing collection.mongoDbCollection

## 2025-04-14 - 5.8.1 - fix(cursor, doc)
Add explicit return types and casts to SmartdataDbCursor methods and update getCursorExtended signature in SmartDataDbDoc.

- Specify Promise<T> as return type for next() in SmartdataDbCursor and cast return value to T.
- Specify Promise<T[]> as return type for toArray() in SmartdataDbCursor and cast return value to T[].
- Update getCursorExtended to return Promise<SmartdataDbCursor<T>> for clearer type safety.

## 2025-04-14 - 5.8.0 - feat(cursor)
Add toArray method to SmartdataDbCursor to convert raw MongoDB documents into initialized class instances

- Introduced asynchronous toArray method in SmartdataDbCursor which retrieves all documents from the MongoDB cursor
- Maps each native document to a SmartDataDbDoc instance using createInstanceFromMongoDbNativeDoc for consistent API usage

## 2025-04-14 - 5.7.0 - feat(SmartDataDbDoc)
Add extended cursor method getCursorExtended for flexible cursor modifications

- Introduces getCursorExtended in classes.doc.ts to allow modifier functions for MongoDB cursors
- Wraps the modified cursor with SmartdataDbCursor for improved API consistency
- Enhances querying capabilities by enabling customized cursor transformations

## 2025-04-07 - 5.6.0 - feat(indexing)
Add support for regular index creation in documents and collections

- Implement new index decorator in classes.doc.ts to mark properties with regular indexing options
- Update SmartdataCollection to create regular indexes if defined on a document during insert
- Enhance document structure to store and utilize regular index configurations

## 2025-04-06 - 5.5.1 - fix(ci & formatting)
Minor fixes: update CI workflow image and npmci package references, adjust package.json and readme URLs, and apply consistent code formatting.

- Update image and repo URL in Gitea workflows from GitLab to code.foss.global
- Replace '@shipzone/npmci' with '@ship.zone/npmci' throughout CI scripts
- Adjust homepage and bugs URL in package.json and readme
- Apply trailing commas and consistent formatting in TypeScript source files
- Minor update to .gitignore custom section label

## 2025-04-06 - 5.5.0 - feat(search)
Enhance search functionality with robust Lucene query transformation and reliable fallback mechanisms

- Improve Lucene adapter to properly structure $or queries for term, phrase, wildcard, and fuzzy search
- Implement and document a robust searchWithLucene method with fallback to in-memory filtering
- Update readme and tests with extensive examples for @searchable fields and Lucene-based queries

## 2025-04-06 - 5.4.0 - feat(core)
Refactor file structure and update dependency versions

- Renamed files and modules from 'smartdata.classes.*' to 'classes.*' and adjusted corresponding import paths.
- Updated dependency versions: '@push.rocks/smartmongo' to ^2.0.11, '@tsclass/tsclass' to ^8.2.0, and 'mongodb' to ^6.15.0.
- Renamed dev dependency packages from '@gitzone/...' to '@git.zone/...' and updated '@push.rocks/tapbundle' and '@types/node'.
- Fixed YAML workflow command: replaced 'pnpm install -g @gitzone/tsdoc' with 'pnpm install -g @git.zone/tsdoc'.
- Added package manager configuration and pnpm-workspace.yaml for built dependencies.

## 2025-03-10 - 5.3.0 - feat(docs)
Enhance documentation with updated installation instructions and comprehensive usage examples covering advanced features such as deep queries, automatic indexing, and distributed coordination.

- Added pnpm installation command
- Updated User model example to include ObjectId, Binary, and custom serialization
- Expanded CRUD operations examples with cursor methods and deep query support
- Enhanced sections on EasyStore, real-time data watching with RxJS integration, and managed collections
- Included detailed examples for transactions, deep object queries, and document lifecycle hooks

## 2025-02-03 - 5.2.12 - fix(documentation)
Remove license badge from README

- Removed the license badge from the README file, ensuring compliance with branding guidelines.

## 2025-02-03 - 5.2.11 - fix(documentation)
Updated project documentation for accuracy and added advanced feature details

- Added details for EasyStore, Distributed Coordination, and Real-time Data Watching features.
- Updated database connection setup instructions to include user authentication.
- Re-organized advanced usage section to showcase additional features separately.

## 2024-09-05 - 5.2.10 - fix(smartdata.classes.doc)
Fix issue with array handling in convertFilterForMongoDb function

- Corrected the logic to properly handle array filters in the convertFilterForMongoDb function to avoid incorrect assignments.

## 2024-09-05 - 5.2.9 - fix(smartdata.classes.doc)
Fixed issue with convertFilterForMongoDb to handle array operators.

- Updated the convertFilterForMongoDb function in smartdata.classes.doc.ts to properly handle array operators like $in and $all.

## 2024-09-05 - 5.2.8 - fix(smartdata.classes.doc)
Fix key handling in convertFilterForMongoDb function

- Fixed an issue in convertFilterForMongoDb that allowed keys with dots which could cause errors.

## 2024-09-05 - 5.2.7 - fix(core)
Fixed issue with handling filter keys containing dots in smartdata.classes.doc.ts

- Fixed an error in the convertFilterForMongoDb function which previously threw an error when keys contained dots.

## 2024-06-18 - 5.2.6 - Chore
Maintenance Release

- Release version 5.2.6

## 2024-05-31 - 5.2.2 - Bug Fixes
Fixes and Maintenance

- Fixed issue where `_createdAt` and `_updatedAt` registered saveableProperties for all document types

## 2024-04-15 - 5.1.2 - New Feature
Enhancements and Bug Fixes

- Added static `.getCount({})` method to `SmartDataDbDoc`
- Changed fields `_createdAt` and `_updatedAt` to ISO format

## 2024-04-14 - 5.0.43 - New Feature
New Feature Addition

- Added default `_createdAt` and `_updatedAt` fields, fixes #1

## 2024-03-30 - 5.0.41 - Bug Fixes
Improvements and Fixes

- Improved `tsconfig.json` for ES Module use

## 2023-07-10 - 5.0.20 - Chore
Organizational Changes

- Switched to new org scheme

## 2023-07-21 - 5.0.21 to 5.0.26 - Fixes
Multiple Fix Releases

- Various core updates and bug fixes

## 2023-07-21 - 5.0.20 - Chore
Organizational Changes

- Switch to the new org scheme

## 2023-06-25 - 5.0.14 to 5.0.19 - Fixes
Multiple Fix Releases

- Various core updates and bug fixes

## 2022-05-17 - 5.0.0 - Major Update
Breaking Changes

- Switched to ESM

## 2022-05-18 - 5.0.2 - Bug Fixes
Bug Fixes

- The `watcher.changeSubject` now emits the correct type into observer functions

## 2022-05-17 - 5.0.1 - Chore
Testing Improvements

- Tests now use `@pushrocks/smartmongo` backed by `wiredTiger`

## 2022-05-17 to 2022-11-08 - 5.0.8 to 5.0.10
Multiple Fix Releases

- Various core updates and bug fixes

## 2021-11-12 - 4.0.17 to 4.0.20
Multiple Fix Releases

- Various core updates and bug fixes

## 2021-09-17 - 4.0.10 to 4.0.16
Multiple Fix Releases

- Various core updates and bug fixes

## 2021-06-09 - 4.0.1 to 4.0.9
Multiple Fix Releases

- Various core updates and bug fixes

## 2021-06-06 - 4.0.0 - Major Update
Major Release

- Maintenance and core updates

## 2021-05-17 - 3.1.56 - Chore
Maintenance Release

- Release version 3.1.56

## 2020-09-09 - 3.1.44 to 3.1.52
Multiple Fix Releases

- Various core updates and bug fixes

## 2020-06-12 - 3.1.26 to 3.1.28
Multiple Fix Releases

- Various core updates and bug fixes

## 2020-02-18 - 3.1.23 to 3.1.25
Multiple Fix Releases

- Various core updates and bug fixes

## 2019-09-11 - 3.1.20 to 3.1.22
Multiple Fix Releases

- Various core updates and bug fixes

## 2018-07-10 - 3.0.5 - New Feature
Added Feature

- Added custom unique indexes to `SmartdataDoc`

## 2018-07-08 - 3.0.1 - Chore
Dependencies Update

- Updated mongodb dependencies

## 2018-07-08 - 3.0.0 - Major Update
Refactor and Cleanup

- Cleaned project structure

## 2018-01-16 - 2.0.7 - Breaking Change
Big Changes

- Switched to `@pushrocks` scope and moved from `rethinkdb` to `mongodb`

## 2018-01-12 - 2.0.0 - Major Release
Core Updates

- Updated CI configurations