SlintORM
Docsnpm

Changelog

Release history for SlintORM — sourced from real GitHub commits.

Current version: v1.9.6 view all commits on GitHub

v1.9.6

latest2026-07-16
featMongoDB transaction support — `startSession()` + `startTransaction()` via native MongoDB driver session API
feat`databaseName` config option — forwarded through ORM → DBAdapter for per-run isolated MongoDB databases
featPG adapter `exec()` converts `?` → `$N` positional placeholders for raw SQL compatibility
feat`PG_ONLY=1` env var skips SQLite/MongoDB test runs
feat`MONGO_URL` and `PG_URL` env vars required for respective test suites (no hardcoded fallbacks)
feat`run()` throws `AggregateError` instead of `process.exit(1)`, enabling cleanup in callers
fix`andWhereGroup`/`orWhereGroup` replace child-builder `$N` placeholders with `?` to avoid index collision on merge
fix`buildWhereClauseForPreload` accepts `startIndex` parameter to align `$N` numbering across preload joins
fix`buildMongoFilter` visibility changed from `private` to `protected` (fixes TS compilation in `AdvancedQueryBuilder`)
fix`databaseName` added to `ORMManagerConfig` type (fixes TS compilation in `index.ts`)
fix`SqlExpr.raw` SQLite timestamp expression made PG-aware (`NOW()` vs `datetime('now')`)
fix`SqlExpr` values inlined in SQL insert rather than serialized as JSON
fixTransaction raw SQL uses double-quoted identifiers for PG case preservation

v1.9.5

2026-07-15
featBalloon Hashing is now the default for `@hash` — memory-hard, SHA-256 based, zero deps (Web Crypto API)
feat`@hash:(algo=pbkdf2,iterations=N)` for PBKDF2 backward compat
feat`@hash:(algo=balloon,space=N,time=N,delta=N)` for custom Balloon cost params
featSelf-describing stored format: `balloon$space$time$delta$salt$hash`
fixBalloon mix step now uses deterministic other-block index (was non-deterministic via crypto.getRandomValues)

v1.9.1

2026-07-13
featRLS (Row-Level Security) support — `rls: true` config option enables automatic `set_config()` calls
feat`orm.withContext()` — sets RLS context values that propagate as PostgreSQL session parameters
feat`orm.rlsEnabled()` — returns whether RLS mode is active
feat`encryptionKey` option in ORMManagerConfig — master key (min 32 chars) for @encrypt annotations
featRedundant RLS call skipping — caches last-set values to avoid repeated set_config calls
fix27+ driver-specific SQL compatibility issues across queryBuilder, model, migrator, and migration-history
docsRLS usage pattern documented in llms.txt
docs@secret marked shipped in docs and llms.txt
docsAnnotation version badges added to llms.txt
docsROADMAP.md updated with RLS in shipped, sug.txt items in planned

v1.9.0

2026-07-11
feat@encrypt fields now expose `.decrypt()` for on-demand decryption
feat@encrypt:(decrypt=auto) — transparent auto-decryption on read, returns plain string
featGenerator emits `& { verify() }` on @hash fields for type-safe `.verify()`
docs@hash/@encrypt/@secret annotated examples added to README and llms.txt
docsSecurity module documented with usage patterns

v1.7.0

2026-07-10
featSecurity module — @hash (PBKDF2 via Web Crypto API), @encrypt (AES-256-GCM), @secret (@hash+@omitjson)
feat@email / @url / @uuid / @phone — format validators
feat@min / @max — numeric range validation
feat@minLength / @maxLength — string length validation
feat@pattern:regex — custom regex validation

v1.6.1

2026-07-10
feat@random:alnum / @random:lower / @random:upper / @random:hex / @random:custom — character set variants
feat@random with prefix/suffix options
featextracted annotations.ts — centralized annotation parsing
ciGitHub Actions workflow for auto-publish on push to main
ciNode 22 for built-in node:sqlite driver

v1.5.2

2026-07-09
featCLI auto-loads .env* files before config is imported

v1.5.1

2026-07-09
fixSchema generator now supports inline annotations: `field: string; // @unique` — warns but works
fixSchema generator handles stacked `//` annotation comments above a field (multiple lines)
fixSchema generator no longer errors on `//` comment lines inside interface bodies
fixInline annotations and stacked comments properly separated with `;` — no merged metadata keys

v1.5.0

2026-07-09
feat@mask annotation with 8 presets/directives — ssn, creditcard, email, phone, showFirst:N, showLast:N, showBoth:F,L, char:X, pattern:...
feat@omitdb — exclude field from database entirely (no column stored)
feat@omitjson — store in DB, strip from all read results unless explicitly .select()ed
feat@omitmigrate — migrator never creates/alters/drops the column; manual DDL
feat.withoutMasking() query builder modifier — bypass masking for privileged callers
featstripOmitDb() helper on get/getAll — automatically excludes @omitdb fields from reads
docsAll model interfaces consolidated into single src/interfaces.ts — no more duplicate interface definitions
docsBuild yields zero TypeScript errors for the first time

v1.4.0

2026-07-08
featPushed remote — slintorm repo + docs site deployed

v1.3.1

latest2026-07-04
fixBoolean values serialized to 0/1 on all write paths (insert, update, query builder)
fixquery().where(), .first(), .update(), .delete() no longer throw sqlite3 binding error with boolean params
fixinsert() now uses serializeValue — eliminates duplicate inline logic

v1.3.0

2026-07-04
feat@random annotation for auto-generated field values (string:N, number:N)
featEntityWithUpdate methods on query builder results (.get(), .first())
featBulk delete() and update() on QueryBuilder — execute DELETE/UPDATE from accumulated WHERE clauses
fixInsert refetch logic now handles @random PKs — no longer overwrites string UUIDs with SQLite lastID
fix@json fields auto-detected for inferred (schema-less) models
fixPlain objects JSON-serialized in insert() and deserialized in get() without explicit @json annotation

v1.1.5

2026-06-28
fixApply SlintORM fixed updates across the codebase (59fcce4)
fixFixed typing failure in .where() — operator comparison now correctly narrows type (df23fac)
fixFixed relatedTo BFS algorithm — path discovery now handles multi-hop relations correctly (f59495f)
fixFixed relation and join errors in query builder (c34efff)
docsPublished official documentation site (e8d5b6f)

v1.1.4

2026-06-20
fixFixed CLI generate path resolver bug — paths now resolved relative to project root (bb40ac8)
fixFixed extra field appearing in migrated tables (d23946b)
fixFixed relatedTo type keys — generic inference now correct on chained calls (1ed39a6, c42effb)
fixFixed issues with migrator — alter-table no longer drops columns incorrectly (4a621b9, c4e28e)
featFinished CLI tool — generate, migrate, rollback, status, fresh, drop-tracking (1af8059)
featAdded complex relation tracking for BFS path discovery (87b82da)
featPublished to npm (e1e3a9a)
improveFixed QueryBuilder bugs and added new helper methods (77bee9a)
improveFixed type field skipping at migration time (fde906a)

v1.1.0

2026-06-10
featAdded Next.js and bundler support — serverExternalPackages, dynamic driver imports (a422a39)
featAdded tokenizer-based schema generator — no ts-morph or compiler dependency (bd553d9)
featFixed path and fs bugs for cross-platform compatibility (8332686)
fixFixed path errors and generator output (a790a6c)
fixAdded fixes and stability improvements (6bceae7)

v1.0.0

2026-05-31
featStable 1.0.0 release — bumped from pre-release (0403ded)
featAdded many-to-many relationship support with pivot table auto-creation (e4a631d)
featAdded manytoone relationship support (9556a06)
featAdded better TypeScript type support throughout (3eeeb86)
improveRemoved ts-morph dependency — zero compile-time dependencies (91caae0)
improveFixed major bugs, improved query generation speed and efficiency (78590ff)

v0.x

2025-11-15
featAdded full PostgreSQL support in queries (4f0c921)
featAdded more directive supports — @enum, @json, @softDelete, @comment (c4d5b6d)
featFixed migration errors and model interface directives (d77e607)
improveInitial public release — SQLite, Postgres drivers, basic query builder (2f6e628)
Full commit history on GitHub →
PreviousUpcoming Features