230 lines
12 KiB
Markdown
230 lines
12 KiB
Markdown
# Changelog
|
|
|
|
## 2026-02-03 - 5.0.0 - BREAKING CHANGE(localtsmdb)
|
|
add Unix socket support and change LocalTsmDb API to return connection info instead of a MongoClient
|
|
|
|
- LocalTsmDb.start() now returns ILocalTsmDbConnectionInfo { socketPath, connectionUri } instead of a connected MongoClient
|
|
- Removed internal MongoClient management: consumers must create/connect/close their own MongoClient using the returned connectionUri (close client before calling db.stop())
|
|
- Added ILocalTsmDbConnectionInfo type and getConnectionInfo() (replaces getClient())
|
|
- TsmdbServer: added socketPath option to listen on Unix sockets, cleans up stale socket files on start/stop, and encodes socket paths in getConnectionUri()
|
|
- LocalTsmDb can auto-generate socket paths in the OS temp dir; LocalTsmDb no longer depends on the mongodb package internally (lightweight Unix socket wrapper)
|
|
- Updated docs and tests to use MongoClient externally and to demonstrate socketPath/connectionUri workflow
|
|
- ts_local plugins no longer export net (net usage moved to server implementation)
|
|
|
|
## 2026-02-03 - 4.3.0 - feat(docs)
|
|
add LocalTsmDb documentation and examples; update README code samples and imports; correct examples and variable names; update package author
|
|
|
|
- Introduce LocalTsmDb: zero-config local database with automatic persistence, auto port discovery, and pre-connected client (added Quick Start, API, Features, and testing examples).
|
|
- Expand comparison table to include LocalTsmDb alongside SmartMongo and TsmDB.
|
|
- Update README examples: new LocalTsmDb usage, reorder options (LocalTsmDb, TsmDB, SmartMongo), rename test DB variable (db -> testDb), and adjust test snippets for Jest/Mocha and tap.
|
|
- Adjust code snippets and API notes: switch some example imports to use tsmdb, replace FileStorageAdapter references, change planner.createPlan to await planner.plan, and use wal.getEntriesAfter(...) without awaiting.
|
|
- Update package.json author from 'Lossless GmbH' to 'Task Venture Capital GmbH'.
|
|
|
|
## 2026-02-03 - 4.2.1 - fix(package.json)
|
|
replace main and typings with exports field pointing to ./dist_ts/index.js
|
|
|
|
- Added package.json exports field mapping "." to ./dist_ts/index.js to declare the package entrypoint.
|
|
- Removed main (dist_ts/index.js) and typings (dist_ts/index.d.ts) entries.
|
|
- Note: switching to exports improves Node resolution but removing the typings entry may affect TypeScript consumers expecting index.d.ts.
|
|
|
|
## 2026-02-01 - 4.2.0 - feat(tsmdb)
|
|
implement TsmDB Mongo-wire-compatible server, add storage/engine modules and reorganize exports
|
|
|
|
- Add full TsmDB implementation under ts/ts_tsmdb: wire protocol, server, command router, handlers, engines (Query, Update, Aggregation, Index, Transaction, Session), storage adapters (Memory, File), OpLog, WAL, utils and types.
|
|
- Remove legacy ts/tsmdb implementation and replace with new ts_tsmdb module exports.
|
|
- Introduce ts/ts_mongotools module and move SmartMongo class there; update top-level exports in ts/index.ts to export SmartMongo, tsmdb (from ts_tsmdb) and LocalTsmDb.
|
|
- Add LocalTsmDb convenience class (ts/ts_local) to start a file-backed TsmDB and return a connected MongoClient.
|
|
- Refactor plugin imports into per-module plugins files and add utilities (checksum, persistence, query planner, index engine).
|
|
|
|
## 2026-02-01 - 4.1.1 - fix(tsmdb)
|
|
add comprehensive unit tests for tsmdb components: checksum, query planner, index engine, session, and WAL
|
|
|
|
- Add new tests: test.tsmdb.checksum.ts — CRC32 and document checksum utilities (add/verify/remove)
|
|
- Add new tests: test.tsmdb.queryplanner.ts — QueryPlanner plans, index usage, selectivity, explain output, and edge cases
|
|
- Add new tests: test.tsmdb.indexengine.ts — Index creation, unique/sparse options, candidate selection, and constraints
|
|
- Add new tests: test.tsmdb.session.ts — Session lifecycle, touch/refresh/close, extractSessionId handling
|
|
- Add new tests: test.tsmdb.wal.ts — WAL initialization, LSN increments, logging/recovery for inserts/updates/deletes, binary and nested data handling
|
|
- Tests only — no production API changes; increases test coverage
|
|
- Recommend patch bump from 4.1.0 to 4.1.1
|
|
|
|
## 2026-02-01 - 4.1.0 - feat(readme)
|
|
expand README with storage integrity, WAL, query planner, session & transaction docs; update test script to enable verbose logging and increase timeout
|
|
|
|
- Updated npm test script to run tstest with --verbose, --logfile and --timeout 60 to improve test output and avoid timeouts.
|
|
- Extensive README additions: file storage adapter examples with checksum options, write-ahead logging (WAL) usage and recovery, query planner examples, index and query execution details, session and transaction examples and features.
|
|
- Wire protocol / features table updated to include Transactions and Sessions and added admin commands (dbStats, collStats).
|
|
- Architecture diagram and component list updated to include QueryPlanner, SessionEngine, TransactionEngine and WAL; storage layer annotated with checksums and WAL.
|
|
- Minor example import tweak: MongoClient import now includes Db type in test examples.
|
|
|
|
## 2026-02-01 - 4.0.0 - BREAKING CHANGE(storage,engine,server)
|
|
add session & transaction management, index/query planner, WAL and checksum support; integrate index-accelerated queries and update storage API (findByIds) to enable index optimizations
|
|
|
|
- Add SessionEngine with session lifecycle, auto-abort of transactions on expiry and session tracking in CommandRouter and AdminHandler.
|
|
- Introduce TransactionEngine integrations in CommandRouter and AdminHandler; handlers now support start/commit/abort transaction workflows.
|
|
- Add IndexEngine enhancements including a simple B-tree and hash map optimizations; integrate index usage into Find/Count/Insert/Update/Delete handlers for index-accelerated queries and index maintenance on mutations.
|
|
- Add QueryPlanner to choose IXSCAN vs COLLSCAN and provide explain plans.
|
|
- Add WAL (write-ahead log) for durability, with LSNs, checkpoints and recovery APIs.
|
|
- Add checksum utilities and FileStorageAdapter support for checksums (enableChecksums/strictChecksums), with verification on read and optional strict failure behavior.
|
|
- IStorageAdapter interface changed to include findByIds; MemoryStorageAdapter and FileStorageAdapter implement findByIds to support index lookups.
|
|
- Exported API additions: WAL, QueryPlanner, SessionEngine, checksum utilities; CommandRouter now caches IndexEngines and exposes transaction/session engines.
|
|
- Breaking change: the IStorageAdapter interface change requires third-party storage adapters to implement the new findByIds method.
|
|
|
|
## 2026-02-01 - 3.0.0 - BREAKING CHANGE(tsmdb)
|
|
rename CongoDB to TsmDB and relocate/rename wire-protocol server implementation and public exports
|
|
|
|
- Project refactor renames the in-memory wire-protocol server from CongoDB -> TsmDB (identifiers, files and namespaces changed).
|
|
- ts/index.ts now exports tsmdb instead of congodb (public API change; consumers must update imports).
|
|
- All congodb sources under ts/congodb were removed and equivalent implementations added under ts/tsmdb (errors, engines, storage adapters, server, handlers, WireProtocol, types).
|
|
- Readme and usage examples updated to reference TsmDB/tsmdb and example code updated accordingly.
|
|
- Tests renamed/updated from test.congodb.ts -> test.tsmdb.ts to exercise the new tsmdb export and server.
|
|
|
|
## 2026-01-31 - 2.2.0 - feat(readme)
|
|
update README with expanded documentation covering CongoDB and SmartMongo, installation, quick start examples, architecture, usage examples, and legal/company information
|
|
|
|
- Completely expanded README: added detailed overview for SmartMongo and new CongoDB (wire-protocol server)
|
|
- Added Quick Start examples for both SmartMongo and CongoDB (TypeScript/ESM snippets)
|
|
- Included installation instructions for npm and pnpm and issue reporting/security guidance
|
|
- Added architecture diagram, example tests, and storage/engine descriptions
|
|
- Clarified license, trademark, and company contact information
|
|
- Large non-functional documentation-only change (+398 -44)
|
|
|
|
## 2026-01-31 - 2.1.0 - feat(congodb)
|
|
implement CongoDB MongoDB wire-protocol compatible in-memory server and APIs
|
|
|
|
- Add full congodb module: CongoServer, WireProtocol, CommandRouter and handlers (Hello, Insert, Find, Update, Delete, Aggregate, Index, Admin).
|
|
- Implement query/update/aggregation/index/transaction engines (QueryEngine, UpdateEngine, AggregationEngine, IndexEngine, TransactionEngine) and OpLog for change stream support.
|
|
- Add storage adapters: in-memory (MemoryStorageAdapter) and file-backed (FileStorageAdapter) with persistence and oplog support.
|
|
- Introduce types/interfaces and rich error classes (CongoErrors) plus congodb.plugins re-exports (bson, mingo, smartfs, smartpath, smartrx).
|
|
- Add many server-side utilities: IndexEngine, Aggregation helpers ($lookup, $graphLookup, $merge, $facet, $unionWith), cursor management and command routing.
|
|
- Add integration tests for CongoDB using official mongodb MongoClient (test/test.congodb.ts) and update unit test entry (test/test.ts) to use tstest tapbundle.
|
|
- Export congodb from ts/index.ts and update package.json: bump devDependencies, add runtime deps (mongodb, bson, mingo, mingo), add new @push.rocks/* deps and dev tool versions.
|
|
- Update readme.hints.md with CongoDB architecture, usage examples and supported commands.
|
|
- Update npmextra.json metadata and release/registry config and reorganize tsdoc mappings.
|
|
|
|
## 2025-11-17 - 2.0.14 - fix(smartmongo.plugins)
|
|
Use default import for mongodb-memory-server (Deno compatibility), update hints and bump package version to 2.0.13
|
|
|
|
- Replace namespace import with default import for mongodb-memory-server to ensure compatibility with Deno (ts/smartmongo.plugins.ts).
|
|
- Add readme.hints.md documenting the Deno compatibility change and the reason for using a default import.
|
|
- Bump package.json version to 2.0.13.
|
|
- Note: ts/00_commitinfo_data.ts still lists version 2.0.12 and may need to be updated to match package.json.
|
|
|
|
## 2025-04-06 - 2.0.12 - fix(ci/config)
|
|
Update CI workflow environment variables, refine package metadata, and improve configuration settings
|
|
|
|
- Updated workflow YAML files to use new IMAGE and npmci package names
|
|
- Adjusted package.json homepage, added bugs field and pnpm overrides
|
|
- Minor formatting improvements in readme.md and .gitignore
|
|
- Enhanced tsconfig with baseUrl and paths for improved module resolution
|
|
|
|
## 2025-04-06 - 2.0.11 - fix(dependencies)
|
|
Update dependency names and versions in CI workflows and package configuration
|
|
|
|
- Rename devDependency packages from '@gitzone/*' to '@git.zone/*' for consistency
|
|
- Bump '@types/node' from '^20.4.8' to '^22.14.0'
|
|
- Upgrade 'mongodb-memory-server' from '^8.14.0' to '^10.1.4'
|
|
- Add 'packageManager' field in package.json
|
|
- Introduce pnpm-workspace.yaml with 'onlyBuiltDependencies' configuration
|
|
|
|
## 2024-05-29 - 2.0.10 - misc
|
|
Various updates to project configuration and documentation.
|
|
|
|
- update description
|
|
- update tsconfig
|
|
- update npmextra.json: githost (applied on three occasions)
|
|
|
|
## 2023-08-08 - 2.0.9 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2023-08-08 - 2.0.8 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2023-08-08 - 2.0.7 - core & org
|
|
Combined changes for core stability and organization improvements.
|
|
|
|
- fix(core): update
|
|
- switch to new org scheme (recorded twice)
|
|
|
|
## 2022-06-08 - 2.0.6 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-06-08 - 2.0.5 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-06-06 - 2.0.4 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-06-06 - 2.0.3 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-06-03 - 2.0.2 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-05-19 - 2.0.1 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-05-18 - 2.0.0 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2022-05-17 - 1.0.9 - core
|
|
Breaking change for module format.
|
|
|
|
- BREAKING CHANGE(core): switch to esm
|
|
|
|
## 2022-05-17 - 1.0.8 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2021-12-21 - 1.0.7 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2021-12-20 - 1.0.6 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2021-12-20 - 1.0.5 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2021-12-20 - 1.0.4 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2021-12-20 - 1.0.3 - core
|
|
Core fix.
|
|
|
|
- fix(core): update
|
|
|
|
## 2021-12-20 - 1.0.2 - no notable changes
|
|
These version bumps did not include additional modifications.
|
|
|
|
- version update only
|
|
|
|
## 2021-12-20 - 1.0.1 - core
|
|
Core fix.
|
|
|
|
- fix(core): update |