π¨ [security] Update typeorm 0.3.20 β 1.0.0 (major)
π¨ Your current dependencies have known security vulnerabilities π¨
This dependency update fixes known security vulnerabilities. Please see the details below and assess their impact carefully. We recommend to merge and deploy this as soon as possible!
Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.
What changed?
β³οΈ typeorm (0.3.20 β 1.0.0) Β· Repo Β· Changelog
Security Advisories π¨
π¨ TypeORM vulnerable to SQL injection via crafted request to repository.save or repository.update
Summary
SQL Injection vulnerability in TypeORM before 0.3.26 via crafted request to repository.save or repository.update due to the sqlstring call using stringifyObjects default to false.
Details
Vulnerable Code:
const { username, city, name} = req.body; const updateData = { username, city, name, id:userId }; // Developer aims to only allow above three fields to be updated const result = await userRepo.save(updateData);Intended Payload (non-malicious):
username=myusername&city=Riga&name=JavadOR
{username:\"myusername\",phone:12345,name:\"Javad\"}SQL query produced:
UPDATE `user` SET `username` = 'myusername', `city` = 'Riga', `name` = 'Javad' WHERE `id` IN (1);Malicious Payload:
username=myusername&city[name]=Riga&city[role]=adminOR
{username:\"myusername\",city:{name:\"Javad\",role:\"admin\"}}SQL query produced with Injected Column:
UPDATE `user` SET `username` = 'myusername', `city` = `name` = 'Javad', `role` = 'admin' WHERE `id` IN (1);Above query is valid as
city=name=Javadis a boolean expression resulting incity= 1 (false). βroleβ column is injected and updated.Underlying issue was due to TypeORM using mysql2 without specifying a value for the stringifyObjects option. In both mysql and mysql2 this option defaults to false. This option is then passed into SQLString library as false. This results in sqlstring parsing objects in a strange way using objectToValues.
Release Notes
1.0.0
TypeORM v1.0 is here! π₯³
π For a structured walk-through of the changes in v1.0 β breaking changes, new features, security fixes, and the upgrade path from 0.3.x β see the v1.0 Release Notes.
This release includes breaking changes. See the v1.0 Upgrade Guide
What's Changed
- fix: include joined entity primary keys in pagination subquery by @mag123c in #11669
- feat(postgres): add support for PostgreSQL indices by @freePixel in #11318
- refactor!: remove legacy expo driver by @G0maa in #11860
- fix(cockroachdb): preserve structured query results during txn retry replay by @naorpeled in #11861
- docs: add version dropdown (stable/dev) to master by @naorpeled in #11862
- docs: link to queryrunner api docs from top level queryrunner page by @hughrawlinson in #11869
- feat: add error handling and log warning for ormconfig loading failures by @Cprakhar in #11871
- refactor: remove shajs by @G0maa in #11864
- ci: setup pnpm by @alumni in #11881
- chore(docs): move to PNPM by @naorpeled in #11884
- feat: add better typing for conditions in
incrementanddecrementofEntityManagerby @OSA413 in #11294- fix: getPendingMigrations unnecessarily creating migrations table by @pkuczynski in #11672
- fix: copy cordova query rows affected into query result by @jacobg in #10873
- fix: resolve nameless TableForeignKey on drop foreign key by @taichunmin in #10744
- feat(docs): add Kapa.ai widget for AI-powered documentation assistance by @dlhck in #11891
- fix: virtual property handling in schema builder by @skyran1278 in #11000
- fix(mongo): correctly process embedded arrays of nested documents by @mciuchitu in #10940
- feat(postgres): use
ADD VALUEwhen changing enum values if possible by @janzipek in #10956- test: add mutation testing and mutation score badge by @OSA413 in #11253
- fix: change import for process dependency by @yohannpoli in #11248
- chore(tests): adapt Stryker mutator to pnpm and fix markup in README for badges by @OSA413 in #11893
- chore(tests): send only mutation score to the Stryker dashboard by @OSA413 in #11895
- fix: fix working with tables with quotes in the names for postgres and cockroachdb by @iskalyakin in #10993
- refactor: replace uuid with native Crypto API by @mag123c in #11769
- fix(mysql): getVersion returning undefined for PolarDB-X 2.0 by @Missna in #11837
- test: align file names by @gioboa in #11898
- ci: ensure pull request follow conventional commits spec by @pkuczynski in #11840
- feat(qodo): enable new review experience by @naorpeled in #11909
- test: modify tests to confirm
ON CONFLICT ON CONSTRAINTon PostgreSQL/CockroachDB by @Cprakhar in #11908- feat: add support for installing additional postgres extensions by @Cprakhar in #11888
- feat: add deferrable support to exclusion decorator to mirror unique and index decorators by @oGAD31 in #11802
- chore(mutation testing): tweak Stryker for lower resource usage and decrease timeout for slow running mutants by @OSA413 in #11901
- fix: raw select query with correctly ordered selected columns by @Cprakhar in #11902
- docs: fix typo 'spass' to 'pass' by @guoxk-me in #11919
- chore: align master with v0.3 by @gioboa in #11912
- fix: update child's mpath by @JoseCToscano in #10844
- test: verify column names when using
referencedColumnNamein composite relations by @Cprakhar in #11883- fix: merging into an entity now respects null values by @knoid in #11154
- fix: handle re-save of postgres geometric types by @Cprakhar in #11857
- fix(sqlite): handle simple-enum arrays correctly by @Cprakhar in #11865
- fix: fix up map objects comparison by @mgohin in #10990
- feat: support
INSERT INTO ... SELECT FROM ...in QueryBuilder by @Cprakhar in #11896- fix: enhance upsert functionality for proper sql generation with table alias by @Cprakhar in #11915
- fix: remove error handling for *-to-many in createPropertyPath by @ThbltLmr in #11119
- fix: resolve issue order subquery column (Cannot get metadata of given alias) by @trannhan0810 in #11343
- test: verify synchronize
trueworks with multiple relations by @Cprakhar in #11889- feat: add encryption key for React Native by @HtSpChakradharCholleti in #11736
- chore(qodo-config): add compliance checklist by @naorpeled in #11921
- fix: soft deletion should not update the already soft deleted rows by @hassanmehdi98 in #10705
- fix: update RelationIdLoader to use DriverUtils.getAlias by @te1 in #11228
- fix: fix up join attributes inside bracket by @balkrushna in #11218
- chore(qodo): disable in progress notification in master by @naorpeled in #11927
- fix: make
shortenmethod to properly work with camelCase_aliases by @OSA413 in #11283- test: added tests to verify jsonb operators in find options with Raw() by @Cprakhar in #11917
- docs: correct typo in getting started by @rewento in #11932
- fix(query-builder): resolve column lookup when using database column name in addOrderBy by @smith-xyz in #11904
- docs: ensure consistent plural form for folder names (entities, migrations, etc) by @pkuczynski in #11903
- ci: use prettier on all types of files it supports by @pkuczynski in #11842
- ci(docs): add deploy Github Action by @naorpeled in #11911
- fix: handle relation ids in nested embedded entities by @Cprakhar in #11942
- fix: use subquery with join map one methods by @gioboa in #11943
- docs: add JsonContains find-options example by @lraveri in #11945
- fix: prevent columns with select false from being returned by @gioboa in #11944
- fix(postgres): handle
timestamptzpersistence/hydration correctly by @Minishlink in #11774- fix(cli): init command loading non-existing package.json by @gioboa in #11947
- feat: gsoc 2026 idea list by @G0maa in #11953
- feat: add modern migrations tooling gsoc project by @G0maa in #11958
- fix: fix up limit with joins by @gioboa in #11987
- fix: fix up save with eagerly loaded relation by @gioboa in #11975
- fix: fix up generated query with .update() by @gioboa in #11993
- feat(sap): support locking in select by @alumni in #11996
- fix: disable global order for aggregate functions by @Cprakhar in #11925
- feat(ci): switch to npm trusted publishing with nightly support by @michaelbromley in #11986
- feat: add support for table comments in SAP HANA by @Cprakhar in #11939
- chore(qodo): disable persistent comments and inline code suggestions in master by @naorpeled in #11988
- fix: prevent eager relations from being joined twice when explicitly specified by @veeceey in #11991
- feat!: remove deprecated
ConnectionandConnectionOptionsby @alumni in #12022- chore(deps): update dependencies to latest minor versions by @alumni in #12017
- docs: document bulk operations with array of condition objects by @eka-bot-account in #12006
- docs: add bulk operations examples for update, delete, and softDelete by @eka-bot-account in #12025
- docs(jsdoc): add params and other lint fixes by @alumni in #12023
- fix: fix up change detection with date transformer by @gioboa in #11963
- fix: properly escape column alias in orderBy by @Cprakhar in #12027
- feat(sqlite)!: drop support for sqlite3 and default to better-sqlite3 by @pkuczynski in #11836
- test: move sqljs tests to test/functional/driver/ by @pkuczynski in #12036
- test: reorganize lazy relation tests and standardize naming by @pkuczynski in #12038
- ci: separate format check and lint by @pkuczynski in #11841
- feat: support cascade truncate in clear() method by @Cprakhar in #11866
- ci: stop competing executions by @gioboa in #12041
- test: rename connections to dataSources by @pkuczynski in #12039
- ci: commit prefix should follow
standard-changelogby @alumni in #12059- fix: switch to type imports and exports whenever possible by @alumni in #12044
- fix(docs): align code style by @gioboa in #12081
- refactor(sap)!: remove SapConnectionOptions' deprecated properties by @gioboa in #12080
- feat(mysql)!: remove deprecated MySQL integer display width and zerofill support by @pkuczynski in #12084
- feat(mysql)!: disable legacy spatial support by default for MySQL by @pkuczynski in #12083
- refactor(test): convert before hook implicit returns to block body by @pkuczynski in #12085
- docs(sap): remove obsolete data source options in documentation by @gioboa in #12095
- refactor(lock)!: remove deprecated pessimistic_partial_write and pessimistic_write_or_fail lock modes by @pkuczynski in #12093
- style: enable no-return-assign eslint rule and fix violations by @pkuczynski in #12086
- refactor(CustomRepository)!: remove AbstractRepository, @entityrepository, and getCustomRepository by @pkuczynski in #12096
- refactor(mongo)!: remove deprecated getMongoRepository and getMongoManager globals by @pkuczynski in #12099
- refactor(QueryBuilder)!: remove deprecated WhereExpression type alias by @pkuczynski in #12097
- ci(eslint): upgrade eslint from v9 to v10 by @pkuczynski in #12100
- style(eslint): fix no-useless-assignment violations by @pkuczynski in #12102
- ci(codeql): upgrade codeql-action from v3 to v4 by @pkuczynski in #12103
- style(eslint): fix preserve-caught-error violations by @pkuczynski in #12101
- test(cascades): merge github-issue-57 inverse-side cascade test into existing functional test by @pkuczynski in #12107
- refactor: remove deprecated global APIs and ConnectionManager by @michaelbromley in #12098
- ci: add chore to allowed PR title types by @pkuczynski in #12109
- test(relations): remove duplicate issue-56 test by @pkuczynski in #12106
- test(cascades): move github-issue-70 test to cascades/cascade-remove-one-to-many by @pkuczynski in #12112
- chore(deps-dev): update @stryker-mutator/core and mocha-runner to 9.6.0 by @pkuczynski in #12108
- ci(qodo): remove summary comments location policy by @naorpeled in #12116
- ci(qodo): remove publish_output_no_suggestions from pr_agent config by @naorpeled in #12118
- style: rename connection to dataSource in functional tests by @pkuczynski in #12113
- fix(postgres): execute queries sequentially to avoid pg 8.19.0 deprecation warning by @pkuczynski in #12105
- test(relations): move github-issue-58 to multiple-primary-keys-many-to-many as explicit join entity test by @pkuczynski in #12111
- refactor(mongodb)!: remove deprecated connection options by @pkuczynski in #12120
- ci(qodo): remove /improve from pr and push commands by @naorpeled in #12128
- test: reorganize column option tests into insert-control, update-control, and select-control by @pkuczynski in #12127
- test: move github-issue-80 test to persistence/save-empty-array by @pkuczynski in #12126
- test: move github-issue-71 test to relations/custom-join-column-name by @pkuczynski in #12125
- ci(tests): limit push trigger to master branch only by @pkuczynski in #12122
- refactor(Repository)!: remove deprecated exist() method by @pkuczynski in #12131
- refactor(columns)!: remove deprecated readonly column option by @pkuczynski in #12132
- refactor(columns)!: remove deprecated unsigned from ColumnNumericOptions by @pkuczynski in #12133
- refactor(DriverUtils): remove deprecated buildColumnAlias method by @pkuczynski in #12138
- refactor(broadcaster): remove deprecated broadcastLoadEventsForAll method by @pkuczynski in #12137
- refactor(MigrationExecutor)!: remove deprecated getAllMigrations method by @pkuczynski in #12142
- ci(milestones): add workflow to auto-assign milestones on merge by @pkuczynski in #12139
- refactor(EntityMetadata)!: remove deprecated static createPropertyPath method by @pkuczynski in #12141
- refactor(ConnectionOptionsReader)!: remove ConnectionOptionsEnvReader and TYPEORM_* env variable support by @pkuczynski in #12134
- ci: do not skip detect-changes on pull requests by @pkuczynski in #12145
- feat(mongo)!: remove exported internal types by @alumni in #12037
- fix: scope invalidWhereValuesBehavior to high-level abstractions only by @naorpeled in #11878
- ci(tests): add detect-changes to all-passed job needs by @pkuczynski in #12146
- docs: remove GSoC documentation by @naorpeled in #12147
- ci(publish): skip publish-package workflow in forks by @pkuczynski in #12148
- feat(QueryRunner): add ifExists parameter to all drop methods by @pkuczynski in #12121
- docs: add Docusaurus blog by @dlhck in #12156
- docs: add roadmap page linking to GitHub milestones by @pkuczynski in #12140
- refactor(QueryBuilder)!: remove onConflict(), deprecated orUpdate() overload, and setNativeParameters() by @pkuczynski in #12090
- refactor!: remove internal nativeParameters plumbing from drivers and query builders by @pkuczynski in #12104
- refactor(SqlServer)!: remove deprecated domain connection option by @pkuczynski in #12135
- docs: update contact email to maintainers@typeorm.io by @pkuczynski in #12161
- refactor(ConnectionOptionsReader)!: remove deprecated DataSource.name and simplify API by @pkuczynski in #12136
- test: remove skipped github-issue-114 test by @pkuczynski in #12144
- ci(tests): add merge_group trigger to tests workflow by @pkuczynski in #12163
- test: move github-issue-108 test to schema-builder/sync-unique-constraint-names by @pkuczynski in #12143
- ci(cockroachdb): add health check for CockroachDB service by @pkuczynski in #12157
- feat(invalid-where-values-behavior): make throw the default by @naorpeled in #11710
- test(github-issue): move test 190 to query-builder/take/sqlite-high-take-limit by @pkuczynski in #12176
- refactor(container): remove deprecated IoC container system by @pkuczynski in #12180
- refactor(QueryBuilder): remove deprecated replacePropertyNames method by @pkuczynski in #12178
- refactor(mongodb): remove deprecated connection options by @pkuczynski in #12179
- test(github-issue): move test 175 to relations/empty-relation-returns-array by @pkuczynski in #12171
- test(github-issue): move test 163 to relations/many-to-many/save-from-both-sides by @pkuczynski in #12169
- test(github-issue): remove duplicate test 134 by @pkuczynski in #12168
- feat(redis)!: remove support for legacy redis client versions by @G0maa in #12057
- test(github-issue): remove duplicate test 131 by @pkuczynski in #12167
- test(github-issue): move test 174 to embedded/order-by-duplicate-column-name by @pkuczynski in #12170
- test(github-issue): remove duplicate test 184 by @pkuczynski in #12175
- test(github-issue): move test 197 to schema-builder/drop-column-with-index by @pkuczynski in #12177
- test(github-issue): remove duplicate test 182 by @pkuczynski in #12173
- perf(postgres): batch DROP statements in clearDatabase() by @pkuczynski in #12164
- perf(cockroachdb): batch DROP statements in clearDatabase() by @pkuczynski in #12159
- refactor(QueryRunner): remove deprecated loadedTables and loadedViews properties by @pkuczynski in #12183
- refactor(decorator): remove deprecated @RelationCount decorator by @pkuczynski in #12181
- refactor!: remove deprecated findByIds from Repository and EntityManager by @pkuczynski in #12114
- fix(postgres,cockroachdb): use parameterized queries in clearDatabase() by @pkuczynski in #12185
- ci(qodo): removed extra comment from PR agent by @gvago in #12186
- fix(upsert): handle update false or generatedType properly by @gioboa in #12030
- ci: consolidate test configs into ormconfig.sample.json by @pkuczynski in #12162
- test(github-issue): remove duplicate test 176 by @pkuczynski in #12172
- ci(publish): overhaul publish package strategy with tagging by @pkuczynski in #12154
- ci(qodo): remove final_update_message config by @naorpeled in #12191
- refactor(find-options): un-deprecate OrderByCondition type by @pkuczynski in #12187
- test(github-issue): move test 211 to query-builder/parameters/spread-in-parameters by @pkuczynski in #12196
- ci(docs): remove unused docsearch workflow and scraper config by @pkuczynski in #12194
- fix(ValueTransformer): transform FindOperators in ApplyValueTransformers by @ZimGil in #11172
- ci: restore npm upgrade and bump Node to 24 for trusted publishing by @pkuczynski in #12199
- refactor(query-builder): replace deprecated substr with modern alternatives by @naorpeled in #12149
- ci: update github actions to latest versions by @pkuczynski in #12201
- docs(container): expand migration guide with DI patterns and alternatives by @pkuczynski in #12192
- ci(qodo): turn off
feedback_or_draft_prby @gvago in #12204- test(sql-injection): add regression tests for SQL injection prevention by @pkuczynski in #12203
- refactor!: remove
Bufferpolyfill and replaceBufferwithUint8Arrayon non-node platforms by @pujux in #11935- ci: use typeorm org Docker images for CI by @naorpeled in #12189
- ci(cockroachdb): split tests into parallel shards by @naorpeled in #12184
- ci(qodo): fix placement of publish_output_progress setting by @naorpeled in #12206
- refactor(query-builder)!: rename printSql to logQuery by @naorpeled in #12151
- ci: improve path filters for format and test jobs by @pkuczynski in #12205
- fix(mongodb): translate ObjectIdColumn property name to _id in find queries by @pkuczynski in #12200
- fix(query-runner): parameterize SQL queries across all drivers by @pkuczynski in #12197
- style(docs): prettify search results dropdown by @naorpeled in #12213
- refactor(mongo)!: drop MongoDB driver v6 support, require v7 by @naorpeled in #12208
- feat(sqlite): add support for jsonb column type in SQLite by @Cprakhar in #11933
- ci(publish): use node 20 for v0.3 nightly builds by @pkuczynski in #12216
- ci(qodo): turn off progress comments and agentic describe by @gvago in #12225
- fix(query-builder): resolve alias collision for self-referencing relations with query load strategy by @campmarc in #11066
- test(json): merge github-issue-204 into json/basic-jsonb by @pkuczynski in #12190
- fix(query-runner): parameterize queries and escape identifiers to prevent SQL injection by @pkuczynski in #12207
- ci(publish): serialize nightly publish jobs to avoid npm 409 conflict by @pkuczynski in #12228
- docs: improve migration guide and add v1.0 release notes by @pkuczynski in #12229
- build(gulp): remove gulpclass dependency and modernize build pipeline by @pkuczynski in #12224
- test(entity-listeners): add tests for listeners with entity inheritance by @Cprakhar in #12219
- fix: propagate schema and database to closure junction table by @nvdnkpr in #12110
- refactor(find-options)!: remove deprecated join option from find methods by @pkuczynski in #12188
- refactor(find-options)!: remove deprecated string-based select from find methods by @pkuczynski in #12214
- refactor(find-options)!: remove deprecated string-based relations from find methods by @pkuczynski in #12215
- refactor(repository)!: remove deprecated findOneById methods by @pkuczynski in #12198
- perf(relations)!: use inner join for non-nullable ManyToOne and OneToOne relations by @chunghyunleeme in #12064
- fix: eager load relation strategy by @SharkSharp in #11326
- refactor: rename
connectiontodataSourcein theDriverandQueryRunnerclasses by @alumni in #12244- refactor: rename
connectiontodataSourcein theEntityManagerandQueryBuilderclasses by @alumni in #12245- refactor: rename
connectiontodataSourcein all*Eventinterfaces by @alumni in #12246- refactor!: rename
connectiontodataSourcein the metadata classes by @alumni in #12249- docs(relations): document relationLoadStrategy and loadEagerRelations by @pkuczynski in #12254
- test(tree): consolidate tree tests from github-issues into tree-tables by @pkuczynski in #12259
- test(tree): simplify tree test entities and remove unused fields by @pkuczynski in #12260
- fix(query-builder): validate orderBy condition values at runtime by @pkuczynski in #12217
- refactor(query-builder)!: remove logQuery method by @pkuczynski in #12220
- ci(qodo): disable persistent review notification by @naorpeled in #12263
- feat: add codemod package for automated v1 migration by @pkuczynski in #12233
- ci: extract reusable composite actions for consistency and fix missing frozen-lockfile by @pkuczynski in #12202
- fix(mssql)!: rename dataSource isolation options and assign proper values during
createPoolby @Cprakhar in #12231- fix(query-builder): follow-up fixes for eager load relation strategy by @pkuczynski in #12256
- test: unskip cascade soft-remove and add recovery tests by @richarda23 in #12252
- chore: remove integration tests and migrate cascade coverage to functional by @pkuczynski in #12273
- docs: move inline code examples to JSDoc @example tags by @pkuczynski in #12275
- test(cascades): consolidate cascade tests together by @pkuczynski in #12276
- fix(cli): preserve devDependencies needed by init command in published package by @pkuczynski in #12281
- style(tests): standardize test setup hooks to async/await pattern by @pkuczynski in #12271
- fix(persistence)!: handle non-nullable FK in orphaned row nullification by @gioboa in #11982
- fix(codemod): exclude type declarations from build by @pkuczynski in #12292
- docs(deps): upgrade React to 19, lucide-react to 1.x by @pkuczynski in #12294
- chore(codemod): add homepage field to package.json by @pkuczynski in #12291
- docs: add Releases section with v1.0 announcement bar by @pkuczynski in #12293
- docs: add social links to maintainer cards by @pkuczynski in #12296
- fix(test): replace hardcoded IDs and names with entity references in closure-table test by @pkuczynski in #12289
- chore!: remove dead code, debug blocks, and commented-out code by @naorpeled in #12284
- fix(query-builder): reject semicolons in raw SQL expression methods by @pkuczynski in #12209
- fix(cascade): propagate withDeleted to relation-id loader for many-to-many recover by @pkuczynski in #12287
- docs: simplify upgrading guide and remove internal implementation details by @pkuczynski in #12305
- docs(sidebar): flatten Advanced Topics into main menu and split Performance Optimization by @pkuczynski in #12319
- refactor: replace deprecated substr by @Cprakhar in #12302
- fix(metadata-builder): deferrable for many to many by @smith-xyz in #11924
- test: prevent enum mutation from polluting other tests by @pkuczynski in #12306
- test(schema-builder): reorganize schema-builder tests by topic by @pkuczynski in #12290
- fix(types): add proper entity typing for
queryBuilder.updateby @OSA413 in #11296- fix(test): clean up schema-builder test entities and code smells by @pkuczynski in #12324
- refactor(test): replace findOne with findOneOrFail to eliminate non-null assertions by @pkuczynski in #12325
- test: rename test files by @Cprakhar in #12268
- fix(cascade): support cascade remove for OneToMany relations with composite PKs by @pkuczynski in #12286
- docs: use
indexesinstead ofindicesin documentation by @pkuczynski in #12321- test(cascades): unskip composite PK cascade tests and remove driver restrictions by @pkuczynski in #12283
- style(eslint): enable prefer-optional-chain rule by @pkuczynski in #12331
- style(eslint): enable prefer-nullish-coalescing rule by @pkuczynski in #12340
- style(eslint): enable prefer-string-starts-ends-with rule by @pkuczynski in #12332
- fix(schema): sort composite FK columns to match referenced PK index order by @pkuczynski in #12280
- fix: remove whitespaces in log query by @Cprakhar in #12047
- feat(transactions): add isolationLevel option to DataSource for all drivers by @pkuczynski in #12269
- docs: update multiple data sources examples by @omarrayoubb in #12327
- docs(performance): add database-specific EXPLAIN examples to indexes guide by @pkuczynski in #12328
- feat(mongodb): implement object-based select projection for find methods by @pkuczynski in #12237
- feat(aurora-postgres): transaction isolation level support by @pkuczynski in #12334
- refactor!: remove
app-root-pathby @alumni in #12257- chore!: remove dead skipNulls option from getEntityValueMap by @naorpeled in #12303
- feat(spanner): implement transaction isolation level support by @pkuczynski in #12335
- style(eslint): add rules preventing deprecated string methods by @pkuczynski in #12320
- style(eslint): enable unicorn/prefer-string-replace-all rule by @pkuczynski in #12222
- ci(spanner): add spanner job to the linux test matrix by @pkuczynski in #12349
- docs(release-notes): sync release notes by @pkuczynski in #12356
- feat(codemod): detect incompatible ecosystem packages and bump dependency versions by @pkuczynski in #12360
- docs(release-notes): restore RdbmsSchemaBuilder.renameTables() entry by @naorpeled in #12366
- ci: migrate code coverage from Coveralls to SonarCloud by @pkuczynski in #12274
- docs(maintainers): add Prakhar and Shaun as maintainers by @naorpeled in #12365
- test: fix flaky enum assertion and test CI job database in cli init by @Cprakhar in #12381
- chore: expand qodo with review-ux and self-review options by @pkuczynski in #12380
- fix(codemod): scope v1 transforms to typeorm imports and skip .d.ts files by @pkuczynski in #12372
- fix(codemod): handle aliases, quoted keys, and ObjectProperty variants by @pkuczynski in #12377
- fix(codemod): rename .connection on EntityMetadata, ColumnMetadata, IndexMetadata by @pkuczynski in #12383
- fix(codemod): track DataSource accessor chains for typed-variable renames by @pkuczynski in #12385
- test(codemod): pin that find-options string transforms leave non-array values alone by @pkuczynski in #12384
- fix(codemod): handle typeof type queries and use getStringValue consistently by @pkuczynski in #12379
- fix(codemod): recognize typeorm deep-path imports by @pkuczynski in #12382
- feat(codemod): flag removed ConnectionManager class constructions by @pkuczynski in #12376
- feat(codemod): flag FileLogger usage with non-absolute logPath by @pkuczynski in #12361
- fix: do not run npm install by @alumni in #12386
- fix(codemod): handle lock option objects correctly and increase test coverage by @Cprakhar in #12353
- fix(codemod): correct relation-count guidance and flag loadRelationCountAndMap by @pkuczynski in #12374
- feat(codemod): flag removed FindOneOptions/FindManyOptions
joinproperty by @pkuczynski in #12375- feat(codemod): rename ConnectionOptionsReader.all() to get() and flag path semantics change by @pkuczynski in #12362
- chore(decorator): remove stale todo on JoinColumnOptions.referencedColumnName by @naorpeled in #12370
- chore(codemod): release 1.0.1 by @michaelbromley in #12390
- fix(codemod): rewrite typeorm re-exports in barrel files by @pkuczynski in #12373
- fix(expo): auto-load expo-sqlite driver via loadDependencies() by @pkuczynski in #12363
- docs(issue-template): add capacitor option to drivers list and remove sqlite-abstract by @Cprakhar in #12371
- docs(security): route vulnerability reports to GitHub Security Advisories by @smith-xyz in #12359
- fix(codemod): harden scope, idempotency, and import-strip semantics by @pkuczynski in #12391
- fix(codemod): harden scope and type-name detection across more AST shapes by @pkuczynski in #12394
- chore(codemod): release 1.0.2 by @michaelbromley in #12395
- chore(deps): bump dependencies and fix lint offenses by @pkuczynski in #12401
- feat(mysql): update query types to include named parameters by @kranners in #11798
- fix(codemod): harden destructure and DI accessor rewrites for connection to dataSource rename by @pkuczynski in #12398
- fix(codemod): apply find-options select/relations rewrites to .exists() too by @pkuczynski in #12399
- chore: remove legacy samples and move playground to root by @pkuczynski in #12403
- revert(250e019): undo change modifying intended behavior in QueryBuilder (PR 12209) by @alumni in #12396
- chore(deps): bump docs dependencies by @pkuczynski in #12402
- fix(postgres,cockroachdb): load enum values in declaration order by @pkuczynski in #12404
- docs: remove references to archived typeorm example repos by @pkuczynski in #12410
- fix: query stack trace by @Cprakhar in #12056
- feat(sap): add support for generated column in SAP HANA by @Cprakhar in #12393
- fix(codemod): cover ColumnMetadata args.options in column option rewrites by @pkuczynski in #12400
- chore(codemod): release 1.0.3 by @michaelbromley in #12417
- docs(transactions): clarify CockroachDB isolation level behavior and add tests by @Cprakhar in #12350
- refactor!: extract legacy naming strategies by @alumni in #12416
- fix(postgres): execute remaining relation-load and persistence paths sequentially to avoid pg 8.19.0 deprecation by @kyungseopk1m in #12421
- chore(legacy-naming-strategies): bump to 1.0.0-beta.3 by @michaelbromley in #12430
- fix: use file reference for typeorm in playground to prevent false dependabot alerts by @smith-xyz in #12438
- chore(deps): update all dependencies to their latest minor version by @smith-xyz in #12439
- fix: scope computed-columns join to correct table in MSSQL schema query by @PreAgile in #12288
- fix: preserve user-defined shared join columns in change set by @PreAgile in #12354
- fix(security): validate limit() in Update/SoftDelete query builders by @smith-xyz in #12436
- ci: pin all GitHub Actions to commit SHAs by @smith-xyz in #12481
- revert: fix up limit with joins by @gioboa in #12478
- chore(deps): bump the github-actions-third-party group with 3 updates by @dependabot[bot] in #12484
- chore(deps): bump the github-actions-official group with 3 updates by @dependabot[bot] in #12483
- fix(mysql)!: use index identifiers instead of raw SQL in
QB.useIndex()by @eddieran in #12344- fix(find-options): allow array values in JsonContains by @kyungseopk1m in #12420
- fix(cockroachdb): adjust join in loadTables to load correct table columns by @Cprakhar in #12413
- chore: release v1.0.0 by @michaelbromley in #12510
New Contributors
- @mag123c made their first contribution in #11669
- @freePixel made their first contribution in #11318
- @hughrawlinson made their first contribution in #11869
- @taichunmin made their first contribution in #10744
- @skyran1278 made their first contribution in #11000
- @mciuchitu made their first contribution in #10940
- @iskalyakin made their first contribution in #10993
- @Missna made their first contribution in #11837
- @oGAD31 made their first contribution in #11802
- @guoxk-me made their first contribution in #11919
- @mgohin made their first contribution in #10990
- @ThbltLmr made their first contribution in #11119
- @trannhan0810 made their first contribution in #11343
- @HtSpChakradharCholleti made their first contribution in #11736
- @hassanmehdi98 made their first contribution in #10705
- @te1 made their first contribution in #11228
- @balkrushna made their first contribution in #11218
- @rewento made their first contribution in #11932
- @lraveri made their first contribution in #11945
- @veeceey made their first contribution in #11991
- @eka-bot-account made their first contribution in #12006
- @gvago made their first contribution in #12186
- @ZimGil made their first contribution in #11172
- @pujux made their first contribution in #11935
- @campmarc made their first contribution in #11066
- @nvdnkpr made their first contribution in #12110
- @chunghyunleeme made their first contribution in #12064
- @SharkSharp made their first contribution in #11326
- @richarda23 made their first contribution in #12252
- @omarrayoubb made their first contribution in #12327
- @kranners made their first contribution in #11798
- @kyungseopk1m made their first contribution in #12421
- @PreAgile made their first contribution in #12288
- @eddieran made their first contribution in #12344
Full Changelog: 0.3.30...1.0.0
0.3.30
What's Changed
- fix: scope invalidWhereValuesBehavior to high-level abstractions only by @naorpeled in #11878
- fix: scope computed-columns join to correct table in MSSQL schema query by @PreAgile in #12288
- fix: preserve user-defined shared join columns in change set by @PreAgile in #12354
- revert: fix up limit with joins by @alumni
- fix(find-options): allow array values in JsonContains by @kyungseopk1m in #12420
- fix(cockroachdb): adjust join in loadTables to load correct table columns by @Cprakhar in #12413
- ci: use the v0.3 branch as base for detect-changes by @alumni
- chore(release): release 0.3.30 by @alumni in #12511
Full Changelog: 0.3.29...0.3.30
0.3.29
What's Changed
- fix: fix up aggregate methods ambiguous column by @Cprakhar in #11822
- fix: prevent eager-loaded entities from overwriting manual relations by @LeviHeber in #11267
- fix: release query runner when there is no migration to revert by @mjr128 in #11232
- fix: add async to the method using setFindOptions() by @bindon in #10787
- chore: disable eslint errors for chai assertions by @alumni in #11833
- ci(tests): Remove limitation of branches to run on by @OSA413 in #11794
- ci: upgrade actions to v6 by @pkuczynski in #11844
- docs(v0.3): add version dropdown (stable/dev) by @naorpeled in #11863
- fix(sap):
QueryBuilderparameter of type JSDatenot escaped correctly by @alumni in #11867- feat(sap): add pool timeout by @alumni in #11868
- feat(qodo): enable new review experience in v0.3 by @naorpeled in #11910
- feat: add
returningoption to update/upsert operations by @naorpeled in #11782- test: enable repository-returning test by @gioboa in #11913
- chore(qodo): disable in progress notification in v0.3 by @naorpeled in #11928
- ci(docs): add deploy Github Action to v0.3 branch by @naorpeled in #11929
- chore(qodo): disable persistent comments and inline code suggestions in v0.3 by @naorpeled in #11989
- chore(deps): update all dependencies to the latest minor version by @alumni in #12015
- fix(redis): redis cache version detection by @mguida22 in #11936
- ci: remove summary comments location policy by @naorpeled in #12117
- ci(qodo): remove /improve from pr and push commands by @naorpeled in #12129
- ci: migrate from npm to pnpm by @pkuczynski in #12193
- ci(qodo): sync qodo pr agent config from master by @naorpeled in #12265
- ci: remove docs indexing by @alumni in #12435
- fix(security): validate limit() in Update/SoftDelete query builders by @smith-xyz in #12437
- chore(deps): update all minor by @alumni in #12443
- chore(release): release 0.3.29 by @michaelbromley in #12442
New Contributors
- @LeviHeber made their first contribution in #11267
- @mjr128 made their first contribution in #11232
- @bindon made their first contribution in #10787
Full Changelog: 0.3.28...0.3.29
0.3.28
What's Changed
- build(deps): bump brace-expansion from 2.0.1 to 2.0.2 in /sample/playground by @dependabot[bot] in #11522
- chore: update dependencies by @alumni in #11666
- chore: fix package preview by @alumni in #11542
- fix: add multiSubnetFailover to mssql driver option types by @isaru66 in #10804
- ci: introduce jsdoc eslint plugin (warnings only) by @pkuczynski in #11681
- feat: add support for
jsonpathcolumn type in PostgreSQL by @pkuczynski in #11684- feat: entity schema support trees by @wszgrcy in #11606
- ci: remove close stale issues GH action by @gioboa in #11696
- docs: remove unused docs example file by @pkuczynski in #11675
- docs: updated jsdoc link to PostgreSQL documentation for data types by @pkuczynski in #11680
- ci: bump actions/setup-node to v5 and benefit from automatic caching by @pkuczynski in #11709
- feat(cli/init): pick dependencies versions from our own package.json by @pkuczynski in #11705
- chore(lint/jsdoc): enable jsdoc/valid-types rule and fix offenses by @pkuczynski in #11706
- chore(docs): ehnance llms.txt by @naorpeled in #11711
- ci: bump actions/checkout version by @gioboa in #11712
- ci: harmonize MongoDB version used in CI, local development environment and
initcommand and bump to v8 by @pkuczynski in #11704- docs: remove contradictory statement in Active Record/Data Mapper guide by @ericmorand in #11722
- Fix typos in documentation / hacktoberfest by @survivant in #11713
- MongoDB connector now includes SOCKS5 proxy settings by @Kumar-Kishan in #11731
- docs: fix link to email, when vulnerability found by @pkuczynski in #11667
- style: remove commented out code in FindOptionsUtils by @DeeprajPandey in #11721
- docs: collect all migrations documentation in one place by @pkuczynski in #11674
- lint: fix offenses for @typescript-eslint/no-unused-vars rule in samples folder by @pkuczynski in #11757
- lint: fix offenses for @typescript-eslint/no-unused-vars rule in tests folder by @pkuczynski in #11755
- docs: fix typos in the js documentation by @pkuczynski in #11754
- fix: circular import in SapDriver.ts by @abendi in #11750
- chore(dev-deps): bump eslint and update config by @pkuczynski in #11756
- docs: fix broken migration links by @mguida22 in #11760
- ci: test if docs build and run task depending on the changes from PR by @pkuczynski in #11761
- ci: control development and CI version of Node.js via .nvmrc by @pkuczynski in #11708
- ci: add single step to validate if all tests passed by @pkuczynski in #11763
- ci: prevent running docs index on forks by @pkuczynski in #11762
- feat(mssql): support 'vector' type for MS SQL Server by @artiz in #11732
- docs: expand sponsors section and remove outdated translations by @dlhck in #11771
- docs(cockroach): fix typo in CockroachDriver jsdoc for mappedDataTypes by @Edge-Seven in #11775
- ci: migrate from nyc to c8 by @pkuczynski in #11759
- fix(deps): upgrade glob to fix CVE-2025-64756 by @PabloThiele in #11784
- build(deps): bump js-yaml in /docs by @dependabot[bot] in #11779
- ci: run tests on commits to master and next by @mguida22 in #11783
- docs: fix build status badge url by @pkuczynski in #11790
- chore: add GitHub Copilot instructions by @Copilot in #11781
- feat: export QueryPartialEntity and QueryDeepPartialEntity types by @danielsharvey in #11748
- ci(oracle): add extra sleep after container starts by @OSA413 in #11795
- chore: add Qodo config by @naorpeled in #11791
- feat: init version in postgres driver only if not set by @hfhchan-plb in #11373
- fix(cli): init command reading package.json from two folders up by @pkuczynski in #11789
- feat(mysql): add support for vector columns on MariaDB and MySQL by @alumni in #11670
- fix: typesense doc sync by @G0maa in #11807
- Update dependencies by @alumni in #11811
- test: use built-in wait function and fix wait times to avoid flaky tests by @alumni in #11812
- feat(mysql): add pool size options for each connection by @gioboa in #11810
- feat:add utc flag to date column by @CHOIJEWON in #11740
- docs(mysql): add missing mysql credential options by @gioboa in #11813
- refactor(tests): ensure test files have the
.test.tsextension by @alumni in #11801- refactor: use pragma method in better-sqlite3 by @mohd-akram in #10684
- fix: add missing
findBymethod to MongoEntityManager by @CHOIJEWON in #11814- fix(redis): version detection logic by @ibrahimmenem in #11815
- chore: release v0.3.28 by @mguida22 in #11816
New Contributors
- @isaru66 made their first contribution in #10804
- @ericmorand made their first contribution in #11722
- @survivant made their first contribution in #11713
- @Kumar-Kishan made their first contribution in #11731
- @DeeprajPandey made their first contribution in #11721
- @abendi made their first contribution in #11750
- @artiz made their first contribution in #11732
- @Edge-Seven made their first contribution in #11775
- @PabloThiele made their first contribution in #11784
- @danielsharvey made their first contribution in #11748
- @hfhchan-plb made their first contribution in #11373
- @G0maa made their first contribution in #11807
- @CHOIJEWON made their first contribution in #11740
- @ibrahimmenem made their first contribution in #11815
Full Changelog: 0.3.27...0.3.28
0.3.27
Note: This release reverts a fix from 0.3.26 (#11114) because it introduced a regression in certain cases.
Once a fix can be provided which does not have this regression, it will be released in a future patch.
What's Changed
- perf: Cache package.json location between getNearestPackageJson invocations by @rutkowskib in #11580
- feat: allow
VirtualColumns to be initially non-selectable by @alumni in #11586- build(deps): bump sha.js from 2.4.11 to 2.4.12 in /sample/playground by @dependabot[bot] in #11617
- Add @signalwire/docusaurus-plugin-llms-txt to TypeORM documentation by @Copilot in #11622
- fix: Add package.json exports for react-native by @macksal in #11623
- fix(query-builder): don't use lazy count when offset exceeds total in getManyAndCount by @jeremyteyssedre in #11634
- chore: bump sha.js from 2.4.11 to 2.4.12 (fix security issue: CVE-2025-9288) by @prateek-hegde in #11639
- docs: fix docs for UpdateDateColumn by @madhugb in #11572
- build(deps): bump axios from 1.11.0 to 1.12.1 in /docs by @dependabot[bot] in #11649
- feat(migration): improve JSDoc types in generated migration templates by @gwythyr in #11490
- fix: update tests to reflect migration template changes by @sgarner in #11653
- feat(mysql): add support for MySQL 9 / MariaDB 12 by @alumni in #11575
- ci: add close stale issues GH action by @gioboa in #11651
- feat: add new undefined and null behavior flags by @naorpeled in #11332
- feat(postgres): support vector/halfvec data types by @naorpeled in #11437
- fix: JSON parsing for mysql2 client library (#8319) by @dlhck in #11659
- Revert #11114 do not create junction table metadata when it already exists by @michaelbromley in #11660
- chore: Release v0.3.27 by @michaelbromley in #11661
New Contributors
- @Copilot made their first contribution in #11622
- @macksal made their first contribution in #11623
- @jeremyteyssedre made their first contribution in #11634
- @prateek-hegde made their first contribution in #11639
- @madhugb made their first contribution in #11572
- @gwythyr made their first contribution in #11490
Full Changelog: 0.3.26...0.3.27
0.3.26
Notes:
- When using MySQL, TypeORM now connects using
stringifyObjects: true, in order to avoid a potential security vulnerability
in the mysql/mysql2 client libraries. You can revert to the old behavior by settingconnectionOptions.extra.stringifyObjects = false.- When using SAP HANA, TypeORM now uses the built-in pool from the
@sap/hana-clientlibrary. The deprecatedhdb-pool
is no longer necessary and can be removed. See https://typeorm.io/docs/drivers/sap/#data-source-options for the new pool options.What's Changed
- chore: Remove manual trigger on publish workflow by @michaelbromley in #11536
- test(ci): force mocha to exit on stuck process by @OSA413 in #11538
- fix(oracle): pass duplicated parameters correctly to the client when executing a query by @alumni in #11537
- feat(sap): add support for REAL_VECTOR and HALF_VECTOR data types in SAP HANA Cloud by @alumni in #11526
- fix: add stricter type-checking and improve event loop handling by @alumni in #11540
- perf: avoid unnecessary count on getManyAndCount by @EQuincerot in #11524
- feat(sap): use the native driver for connection pooling by @alumni in #11520
- fix: support for better-sqlite3 v12 by @mohd-akram in #11557
- fix: preserve
useIndexwhen cloning a QueryExpressionMap (or a QueryBuilder) by @kettui in #10679- chore: change test badge from
test.ymltocommit-validation.ymlby @albasyir in #11560- fix: do not create junction table metadata when it already exists by @ragrag in #11114
- fix(mysql): support AnalyticDB returning version() column name in getVersion() by @rhydian0x in #11555
- fix: resolve array modification bug in QueryRunner drop methods #11563 by @taina0407 in #11564
- fix(mysql): set
stringifyObjectsimplicitly by @alumni in #11574- docs: separate driver-specific documentation by @alumni in #11581
- docs: fix redirect to mongodb page by @alumni in #11584
- feat(11528): add Redis 5.x support with backward compatibility wite peer dependency to allow by @par333k in #11585
- fix: regtype is not supported in aurora serverless v2 by @ArsenyYankovsky in #11568
- fix(platform[web worker]): improve globalThis variable retrieval for β¦ by @dasoncheng in #11495
- docs: added
@piying/ormextension to readme by @wszgrcy in #11596- docs: Fix
reloadoption typo by @radovanovic-stevan in #11601- feat: add entity mode virtual-property by @wszgrcy in #11597
- chore: Release v0.3.26 by @michaelbromley in #11602
New Contributors
- @EQuincerot made their first contribution in #11524
- @kettui made their first contribution in #10679
- @ragrag made their first contribution in #11114
- @rhydian0x made their first contribution in #11555
- @taina0407 made their first contribution in #11564
- @par333k made their first contribution in #11585
- @dasoncheng made their first contribution in #11495
- @wszgrcy made their first contribution in #11596
- @radovanovic-stevan made their first contribution in #11601
Full Changelog: 0.3.25...0.3.26
0.3.25
What's Changed
- docs: use correct SQL statements in softDelete/restore comments by @sgarner in #11489
- fix: resolve alias or table name in upsert and orUpdate for PostgreSQL driver conditionally by @mmarifat in #11452
- feat(spanner): use credentials from connection options by @denes in #11492
- feat: add upsert support for Oracle, SQLServer and SAP HANA by @Yuuki-Sakura in #10974
- fix: handle limit(0) and offset(0) correctly in SelectQueryBuilder by @yeonghun104 in #11507
- fix: add collation update detection in PostgresDriver by @asn6878 in #11441
- feat: add typesense/docsearch-scraper by @gioboa in #11424
- chore: improve linting by @alumni in #11510
- chore: improve linting (fixup) by @alumni in #11511
- docs: new website initial commit by @naorpeled in #11408
- fix: fix up doc search workflow by @gioboa in #11513
- chore: update workflows to ignore changes in docs directory by @dlhck in #11518
- feat(docs): add Plausible analytics script to Docusaurus config by @dlhck in #11517
- docs: add note about using YugabyteDB by @mguida22 in #11521
- chore(docs): improve website generation config by @alumni in #11527
- fix(tree-entity): closure junction table primary key definition should match parent table by @gongAll in #11422
- docs: add heading to Getting Started page by @sgarner in #11531
- fix: Multiple relations with same columns cause invalid SQL to be generated by @yevhen-komarov in #11400
- fix: fix null pointer exception on date array column comparison by @mnbaccari in #11532
- chore(ci): simplify workflows by @alumni in #11530
- fix: improve async calls on disconnect by @alumni in #11523
New Contributors
- @mmarifat made their first contribution in #11452
- @yeonghun104 made their first contribution in #11507
- @asn6878 made their first contribution in #11441
- @gongAll made their first contribution in #11422
Full Changelog: 0.3.24...0.3.25
0.3.24
What's Changed
- feat: add tagged template for executing raw SQL queries by @Newbie012 in #11432
- chore: Add husky and lint-staged by @maxbronnikov10 in #11448
- fix: resolve pkg.pr.new issue by @naorpeled in #11463
- perf: improve save performance during entities update by @lotczyk in #11456
- refactor: remove unused NamingStrategyNotFoundError by @mguida22 in #11462
- chore: add note about breaking change in 0.3.23 by @mguida22 in #11469
- build: include db version in coveralls flag-name by @mguida22 in #11461
- chore: include warning about update({}) in changelog by @sgarner in #11471
- feat: add updateAll and deleteAll methods to EntityManager and Repository APIs by @sgarner in #11459
- Fix/11466 mssql find operator by @christian-forgacs in #11468
- feat(spanner): support insert returning by @denes in #11460
- chore: clarify commit practices by @mguida22 in #11472
- fix(mssql): avoid mutating input parameter array values by @sgarner in #11476
- fix: capacitor driver PRAGMA bug by @AlexAzartsev in #11467
- chore: version 0.3.24 by @mguida22 in #11478
New Contributors
- @denes made their first contribution in #11460
- @AlexAzartsev made their first contribution in #11467
Full Changelog: 0.3.23...0.3.24
0.3.23
What's Changed
- chore: Fix publish command by @michaelbromley in #11379
- build(deps): bump tar-fs from 2.1.1 to 2.1.2 by @dependabot in #11370
- feat: add new foreign key decorator, and entity schemas options by @yevhen-komarov in #11144
- chore: fix changelog generation by @alumni in #11381
- feat: Build ESM migrations for JS by @w3nl in #10802
- docs(entity-subscribers): document primary key availability in UpdateEvent by @jovanadjuric in #11308
- test: remove unused type parameter from decorators by @mguida22 in #11412
- feat: Add query timeout support for MySql by @iliagrvch in #10846
- Chore: Added logging to the Entity Listener Metadata by @JackNytely in #11234
- Propagate
aggregatemethod's generic parameter to its returned cursor by @pringon in #10754- refactor: define Position type for GeoJSON objects by @knoid in #11259
- perf(query-runner): use Date.now() intead of +new Date() by @Samuron in #10811
- feat: add FormattedConsoleLogger by @w3nl in #11401
- docs: update repository additional chunk option usage example by @knicefire in #11282
- docs: Correct "its" -> "it's" by @mdippery in #11428
- fix: prevent error when replication is undefined by @caiquecastro in #11423
- fix: change how array columns are compared on column changed detection by @mnbaccari in #11269
- build: setup testing matrix for postgres 14 and 17 by @mguida22 in #11433
- fix: beforeQuery promises not awaited before query execution by @TanguyPoly in #11086
- fix(sap): cleanup after streaming by @alumni in #11399
- feat: release PR releases using pkg.pr.new by @naorpeled in #11434
- docs: clarify where to add new tests by @mguida22 in #11438
- fix: update/delete/softDelete by criteria of condition objects by @maxbronnikov10 in #10910
- chore: Version 0.3.23 by @michaelbromley in #11439
New Contributors
- @yevhen-komarov made their first contribution in #11144
- @w3nl made their first contribution in #10802
- @iliagrvch made their first contribution in #10846
- @JackNytely made their first contribution in #11234
- @pringon made their first contribution in #10754
- @knoid made their first contribution in #11259
- @Samuron made their first contribution in #10811
- @knicefire made their first contribution in #11282
- @caiquecastro made their first contribution in #11423
- @mnbaccari made their first contribution in #11269
- @TanguyPoly made their first contribution in #11086
- @maxbronnikov10 made their first contribution in #10910
Full Changelog: 0.3.22...0.3.23
0.3.22
What's Changed
- fix: transaction not ending correctly by @alumni in #11264
- docs: add "How to use Vite for the backend" entry to faq by @robkorv in #11306
- chore: don't use version in docker-compose files by @assapir in #11320
- fix(sap): pass the configured schema to the db client by @alumni in #11321
- fix(sap): incorrect handling of simple array/json data type by @alumni in #11322
- fix: add VirtualColumn to model shim by @FrancoisDeBellescize in #11331
- fix: remove unnecessary import from JS migration by @TkachenkoDmitry in #11327
- test: rename tests to better describe the case by @OSA413 in #11280
- chore(test): set timezone to UTC by @douglascayers in #11247
- ci: add CodeQL workflow by @naorpeled in #11337
- fix: empty objects being hydrated when eager loading relations that have a
@VirtualColumnby @alumni in #10927- test: fix and run tests on Windows by @OSA413 in #11257
- feat(postgres): support macaddr8 column type by @chkjohn in #11345
- build: run format in ci by @mguida22 in #11342
- style: lint repository by @alumni in #11346
- fix: ensure correct MSSQL parameter conversion in where conditions by @sudhirt4 in #11298
- chore: update dependencies by @alumni in #11339
- fix: FindOptionsSelect to use correct type when property is an object by @MGB247 in #11355
- refactor: database server version fetching & comparison by @alumni in #11357
- build: improve test workflow by @alumni in #11361
- build: setup SAP HANA tests by @alumni in #11347
- fix: export QueryEvent before/after types by @nover in #10688
- fix: mongodb connection options by @mohd-akram in #11310
- feat: Incorporate wrapping metadata for MongoDB client instances by @alexbevi in #11214
- fix: bulk insert NULL values in Oracle (#11362) by @ertl in #11363
- fix: remove unnecessary spaces in message when running non-fake migrations by @zyoshoka in #10809
- fix: sql escape issues identified by CodeQL by @alumni in #11338
- fix(sap): normalize deprecated/removed data types in SAP HANA Cloud by @alumni in #11356
- fix: version detection for Postgres derived variants by @alumni in #11375
- feat: Support Expo SQLite Next by @pmk1c in #11107
- docs: add comment explaining select version() by @mguida22 in #11376
- fix: incorrect table alias in insert orUpdate with Postgres driver by @Ben1306 in #11082
- chore: Add package publishing workflow by @michaelbromley in #11377
- chore: Bump version to v0.3.22 and generate changelog by @michaelbromley in #11378
New Contributors
- @robkorv made their first contribution in #11306
- @assapir made their first contribution in #11320
- @FrancoisDeBellescize made their first contribution in #11331
- @TkachenkoDmitry made their first contribution in #11327
- @douglascayers made their first contribution in #11247
- @chkjohn made their first contribution in #11345
- @sudhirt4 made their first contribution in #11298
- @MGB247 made their first contribution in #11355
- @alexbevi made their first contribution in #11214
- @zyoshoka made their first contribution in #10809
- @pmk1c made their first contribution in #11107
- @Ben1306 made their first contribution in #11082
Full Changelog: 0.3.21...0.3.22
0.3.21
What's Changed
- docs: update the custom-repository.md file in the docs/zh_CN directory by @OrangeSheepCool in #10676
- chore(TypeORM): Create test case to uncover TypeORM composite key save issue by @jeisberg in #10672
- Moved
reflect-metadatatopeerDependenciesand set version to"^0.1.14 || ^0.2.0"by @OSA413 in #10779- chore(docs): add announcement by @dlhck in #11125
- chore: Replace Slack links with Discord by @michaelbromley in #11153
- test: Add GitHub Actions for tests CI/CD by @OSA413 in #11157
- test: remove restriction of CI/CD runs for fork branches by @OSA413 in #11173
- Split SQLite tests and fix better-sqlite3 by @OSA413 in #11174
- style: apply formatting by @OSA413 in #11175
- chore: update some packages and run npm audit fix by @OSA413 in #11181
- docs(datasource): some sentence updated for datasource doc by @albasyir in #11182
- Remove CircleCI by @stim371 in #11189
- test: Expand node version matrix to node16, node18, and node20 by @OSA413 in #11183
- test: redo cockroachdb to service-container GHA and update its version to latest (24) by @OSA413 in #11190
- remove github issues as a suggested place for questions by @mguida22 in #11194
- Remove links to defunct Vesper project by @stim371 in #11195
- Lint on GitHub actions by @stim371 in #11177
- docs: Refine Markdown Language for Better Clarity and Grammar by @albasyir in #11207
- docs: update QueryResultCache method descriptions by @mguida22 in #11192
- chore: migrate to ESLint flat config by @alumni in #11205
- Update select-query-builder.md by @madmaxdios in #11166
- refactor: use node:fs/promises by @alumni in #11206
- chore(license): update copyright year to 2025 by @maxktz in #11223
- Update many-to-many-relations.md by @standage-thanh in #10699
- Typo - setOnLock -> setOnLocked by @felipensp in #11120
- docs: one-to-one relation explanation fix by @pato1713 in #11151
- Update README.md by @jonathanberger in #11089
- docs(multiple-data-sources.md): fix spacing by @jhi721 in #11052
- docs: update deprecated naming by @puleugo in #11017
- Docs: fix connection options description by @os-moussao in #10935
- docs: add Lock tables in Set Locking by @youngkiu in #10921
- docs: removed dead link about using typeorm with DI from faq.md by @giom-l in #10886
- docs: update find-options.md by @NikolayKrishchuk in #10877
- refactor: update EntityManager.ts by @eltociear in #10875
- docs: documentation for parameters in Repository, DataSource, EntityManager query methods by @vlahovivan in #10848
- docs: improve OneToOne description by @pavlokolodka in #10798
- Update eager-and-lazy-relations.md by @kunalrgarg in #10791
- docs: Include info about using soft delete in Repository API by @sanjacob in #10722
- Update mongodb.md by @LucoEldritch in #10718
- docs: fix imports in 'Or' find operator example by @myypo in #10689
- docs: clarify adjacency list by @DevAhmedRadwan in #10664
- chore(test): Add Coverage on Coveralls by @OSA413 in #11225
- perf: improve results transformer performance by @mohd-akram in #10349
- Rename SubjectTopoligicalSorter as SubjectTopologicalSorter by @ocozalp in #11074
- Fix maximum call stack error by @mgorunuch in #10733
- refactor: added --cache to prettier call by @RohanTalip in #10865
- Update select-query-builder.md by @peruzzoarthur in #10763
- fix: update mssql allowed version to fix vulnerability. by @wy193777 in #10933
- refactor: use sql-highlight instead of cli-highlight by @alumni in #11221
- Add support for better-sqlite3 v10 and 11 by @JoshMarkF in #11096
- chore: replace CircleCI badge with GitHub Actions badge by @OSA413 in #11230
- chore: Add new logo by @dlhck in #11276
- fix(npm-readme): resolve missing image file by @naorpeled in #11290
- fix(npm-readme): resolve missing image file pt. 2 by @naorpeled in #11291
- Update relations.md by @madmaxdios in #11161
- Give the DEVELOPER.md documentation a pass by @alper in #11289
- docs: add performance and optimizing by @ngxquang in #11068
- docs: fix missing DataSource in migrations config by @maciej-ka in #11249
- docs: correct "it's" -> "its" by @mdippery in #11300
- Fix release issues by @michaelbromley in #11303
- refactor: use ansis instead of chalk by @alumni in #11263
- chore: Update eager-and-lazy-relations.md for better readability. by @joeldmyers in #10757
- chore: Bump version 0.3.21 by @michaelbromley in #11314
New Contributors
- @OrangeSheepCool made their first contribution in #10676
- @jeisberg made their first contribution in #10672
- @OSA413 made their first contribution in #10779
- @dlhck made their first contribution in #11125
- @albasyir made their first contribution in #11182
- @stim371 made their first contribution in #11189
- @madmaxdios made their first contribution in #11166
- @maxktz made their first contribution in #11223
- @standage-thanh made their first contribution in #10699
- @felipensp made their first contribution in #11120
- @pato1713 made their first contribution in #11151
- @jonathanberger made their first contribution in #11089
- @jhi721 made their first contribution in #11052
- @puleugo made their first contribution in #11017
- @os-moussao made their first contribution in #10935
- @giom-l made their first contribution in #10886
- @NikolayKrishchuk made their first contribution in #10877
- @eltociear made their first contribution in #10875
- @vlahovivan made their first contribution in #10848
- @kunalrgarg made their first contribution in #10791
- @sanjacob made their first contribution in #10722
- @LucoEldritch made their first contribution in #10718
- @myypo made their first contribution in #10689
- @DevAhmedRadwan made their first contribution in #10664
- @ocozalp made their first contribution in #11074
- @mgorunuch made their first contribution in #10733
- @peruzzoarthur made their first contribution in #10763
- @JoshMarkF made their first contribution in #11096
- @naorpeled made their first contribution in #11290
- @alper made their first contribution in #11289
- @ngxquang made their first contribution in #11068
- @maciej-ka made their first contribution in #11249
- @mdippery made their first contribution in #11300
- @joeldmyers made their first contribution in #10757
Full Changelog: 0.3.20...0.3.21
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.