All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
1.0.7 (2025-04-18)
- bson: serialize bigint in any container as long (8a67d96)
- rpc: missing .js extension on imports (d0380c9)
- vite: broken esm build (eb3baca)
1.0.6 (2025-04-03)
- rpc: make sure client disconnect trigger transport disconnect (89ae002)
1.0.5 (2025-04-02)
- bson: bigint with isNaN checks (b46e228)
- filesystem: ensure readLocalFile reads from local FS (ad948e6), closes #637
- filesystem: ensure writeFile forwards visibility (57250a2), closes #638
- http: disable compression by default (257cb61), closes #592
- type: remove Inject (moved to @deepkit/core (06d650a), closes #587
- type: replace more Inject imports (5a88760)
- bench: new @deepkit/bench package for doing benchmarks (210bd84)
- bson: convert if-else branch to lookup (3589e62)
- core: export AsyncFunction (cebd164)
- framework: new option
logStartup
to control startup rpc/http endpoints logging (7695822) - injector: better docs (7402f11)
- injector: refactor internal code to get big performance improvement (f295c5e)
- logger: add debug2 level + more control over scope log level (be01b73)
- run: new @deepkit/run package to run typescript easily (0b9246e)
1.0.4 (2025-03-13)
- rpc: export events (829317c)
1.0.3 (2025-03-13)
- api-console-module: correctly parse HttpBodyValidation and HttpRequestParser (3a5a048)
- broker: ensure no dangling Promise (9056812)
- create-app: update dep versions (6d12d4a)
- desktop-ui: adjust to new event api (38ef6b8)
- desktop-ui: ng-packagr build and safari styling (956ca9b)
- http: better defaults for new formidable version (5c9788e)
- logger: ensure scoped Logger maintain reference to log level (3874148)
- mongo: hello command (30cbad5)
- mongo: transactions (e4781db)
- bson: new BsonStreamReader (3faa77a)
- desktop-ui: allow to pass ConnectedPosition strategy to dropdown component (9ffd941)
- devtool: new chrome devtool to debug rpc connections (80c5105)
- devtool: reduce needed permissions and make it explicit for each domain (1cb03cd)
- event: align API with Event web standards (0e1dca2)
- event: allow late event listening, new synchronous event dispatching with 15x performance improvement (0cc6843)
- event: allow sync tokens with sync dispatching and sync listeners (798dfb7)
- injector: improve error messages, make it very clear what failed and where providers are located (5866eda)
- injector: improve prepared resolver performance by 11x and dynamic
Injector.get
by 17x (3906e2c) - mongo,orm,logger: improve transaction safety and logging (95faf2c)
- mongo: add replica set support, rework connection handling (7fe1a9a)
- mongo: add support for read preference via Query API (c829762)
- mongo: more statistics, optimise error message when primary is not reachable (0cd4e1e)
- rpc: add utility functions to create Subject/Observable synchronously from an RPC controller (349668f)
- rpc: automatically garbage collect observables + new event system + stats collection (d727232)
- rpc: improve disconnect handling and cleaning up RpcMessageSubject correctly (9d9e29a)
- rpc: improve performance by 25% (f7e524f)
- sql: migration support for node v22 without ts-node dependency (f939ea1)
- event: stopPropagation() becomes stopImmediatePropagation().
New BaseEvent.preventDefault() which replaces custom solutions like stop() in DatabaseEvent.
1.0.2 (2025-02-24)
- type-compiler: make sure not annotated properties get unknown as type (b262534)
- website: complete ssr and docker build (90371f2)
- angular-ssr: support server:start serving of angular routes (ee3972c)
- rpc: allow to register hooks for rpc kernel and actions (cb0102b)
1.0.1 (2025-02-24)
- app: remove deepkit-openapi since incompatible (f825f27)
- framework-debug-gui: hide broker menu (ecf1b27)
- type-compiler: check in installer if file exists (eb07783), closes #630
- ui-library: missing module import (30f80d3)
1.0.1-alpha.160 (2025-02-18)
- angular-ssr: remove usage of angular internals (ae91295)
- type: make typeAnnotation backwards compatible to metaAnnotation (8be8b5e)
- website: docs about typeAnnotation (83bab92)
1.0.1-alpha.159 (2025-02-18)
- mongo: update saslprep (5413295)
1.0.1-alpha.158 (2025-02-15)
1.0.1-alpha.157 (2025-02-15)
- angular-ssr: docs (eae7291)
- core: disable reflection in indent.ts (9bbc278)
- core: pass correct global in indent.ts (b1558e4)
- http: isElementStruct with null (04e54b0)
- rpc: ensure message size is reset to 0 after reaching a buffer that is too small (c78a2a2)
- tsconfig and tsc build (ac71e83)
- type: convert TypeAnnotation into intrinsic type (#629) (4d1a13e), closes #626
- type: ensure union check in deserialize mode to handle property with default value correctly (11c2116), closes #623
- type: remove debug code (fefd9a3)
- event: better doc blocks for listen (452dc6a)
- http: update formidable to ^3.5.2 (e4007c3)
- rpc: make binary parser more stable and throw better error message on decoding failure (66e8f0d)
- rpc: show invalid binary message in hex on error (1a7bf16)
- sqlite: update better-sqlite3 to 11.8.1 (cb1eafd)
- type-compiler: support trivially inferred types (087b60a)
- update to angular 19 and typescript 5.7.3, new @deepkit/angular-ssr package (#627) (52333a7)
- website: adjust docs createModule -> createModuleClass (763bfa9)
1.0.1-alpha.156 (2025-01-30)
- bson: initial random value of incremental counter of ObjectId (fb1263d)
- bson: throw on invalid string data (423df6c)
- don't process delete PKs if norows were affected (#621) (f2f6ed0)
- type: make sure forwarded type arguments reset Ω at the origin (3138671), closes #619
- bson: decrease threshold to when TextDecoder is used to decoder utf8 (4daed1c)
1.0.1-alpha.155 (2024-10-30)
- framework: di token to label (0b37a21)
- type: add executeTypeArgumentAsArray + custom iterable example with manual implementation (0781a1a)
- type: symbols as method names (2be4ce6)
1.0.1-alpha.154 (2024-09-06)
- bson: make sure index signature keys use full utf8 encoding (d447c1d)
- sql: fix queries where value legitimately begins with $ (#580) (e0a0c3f)
- sql: repair & enable @deepkit/sql tests (#579) (81a1ab1)
- type-compiler: include enum annotations in .d.ts transformation (#607) (08854f3)
- type: add scope in setter code to prevent
variable already declared
#603 (#606) (9af344f) - website: modify broken reflection example (#599) (7ee0a75)
- http: http timeout options (44fbf56)
- rpc: make Buffer dependency optional (2f32a12)
- type: support enum in pathResolver/resolvePath (78d7df0)
1.0.1-alpha.153 (2024-06-06)
- app: don't force package.json to exist for finding env files (f478e96)
- bson: make sure NaN is deserialized as 0 (7b19397)
- orm: correctly resolve reference class schemas (e193325)
- rpc: add interface for fetch (6035736)
- rpc: http adapter wrong authorization + remove OPTIONS method (3ff8955)
- rpc: make sure Error is chained and ValidationError correctly handled (5c49778)
- website: angular 18 fixes (4307a5d)
- broker: new BrokerKeyValue and broker documentation (1f53bc8)
- orm: support passing type to Database.persistAs/Database.removeAs, DatabaseSession.addAs (6679aba), closes #571
- rpc: add http transport (3b2c6cc)
- type: automatically assign .path to SerializationError in TemplateState.convert() errors (1e8d61d)
- type: automatically assign .path to SerializationError in TemplateState.convert() errors (23781a1)
- website: improve broker docs (1ff9600)
- website: migrated to Angular v18 SSR + Signals (322817f)
- website: update angular to v18 (4dcc38c)
1.0.1-alpha.152 (2024-05-16)
- rpc: client.transporter.errored subject (0fc2bd4)
1.0.1-alpha.151 (2024-05-14)
- type: return all errors when validating array (#568) (c2ca10e), closes /github.com/deepkit/deepkit-framework/issues/565#issuecomment-2091054710
1.0.1-alpha.150 (2024-05-09)
- rpc: ensure data is not chunked twice in server->client controllers (6c59f9b)
- type-compiler: support ReceiveType in arrow function with body expression (3c66064)
- type-compiler: allow to use T from ReceiveType in function body as type reference (4d24c8b), closes #565
1.0.1-alpha.149 (2024-05-07)
1.0.1-alpha.148 (2024-05-04)
- type: new TemplateState.touch and isTypeClassOf (cdf3272)
- type: support lower/mixed case as identifier for enum values (ce0166e)
- type: support mixed case enum member in union resolver (96dd2d8)
1.0.1-alpha.147 (2024-05-04)
- http: support for JSON array payloads (#564) (feeeaa6)
- mysql: ensure
number & AutoIncrement
is alwaysint
(69feb17) - sqlite: make sure ALTER TABLE are not aggregated (74ef2eb)
- type: make sure handled constructor properties are not set twice (2e82eb6)
- type: resolve global classes as shallow TypeClass (d976024)
- website: docs about DI configureProvider and nominal tyoes (e5dafb4)
1.0.1-alpha.146 (2024-04-17)
- type-compiler: esm import of micromatch (5606d74)
1.0.1-alpha.145 (2024-04-08)
- filesystem-aws-s3: use correct path normalize function (58042a9)
- http: make sure invalid formidable files are skipped (d1ff09b)
- orm: make sure persistence is always closed on flush (015d90a)
- sql: dates should be nullable without casting as JSON (#553) (d34b1a3)
- sql: resolve
Date|null
to date type (ab12802) - type guard handing of empty Map/Set (da4cf82)
- website: fix ssr, remove some pages (51b9b36)
1.0.1-alpha.144 (2024-03-19)
- postgres: use DatabaseField<{type}> for type mapping if available (107399a)
- website: fix deps + builds (4183580)
1.0.1-alpha.143 (2024-03-17)
- core: don't include stack in formatError per default (1b603ee)
- http: parameter service injection into route methods with encapsulated modules (9c98f8b)
- type-compiler: also parse tsx source files (80464bf), closes #560
- type: print Error cause chain in formatError (c2a413a)
- type: union expansions in intersections (332b26e), closes #556
- desktop-ui: support queryParams in list route support (6f33804)
- injector: improve set method api (#557) (eb92e58)
- mysql, postgres: add support for connection URLs (2518670)
1.0.1-alpha.142 (2024-03-06)
- type-compiler: support windows reflection pattern matching (cec3146)
1.0.1-alpha.141 (2024-03-05)
- orm: remove browser export (58bb3c8)
- rpc: maintain strictSerialization option also in new observables (273330b)
- type: handle
Function
correctly in type comparisons (16f0c1d)
1.0.1-alpha.140 (2024-03-02)
- framework: also disconnect broker/stopwatch onServerShutdown (69c56eb)
- sql: support per-field name remapping (63b8aaf)
1.0.1-alpha.139 (2024-02-29)
- create-app: adjust example app to new API changes (d2b1c26)
- rpc: only print warning text, not error (ed8cfe7)
- type-compiler: mark the right SourceFile object as processed (38cfdf0)
- type: better error message when fast path type resolution fails due to undefined symbols (0ef082d)
1.0.1-alpha.138 (2024-02-27)
- type: make sure methods are not part of deserialization/type guard union resolver (eb08a73)
1.0.1-alpha.137 (2024-02-26)
- app: allow to inject optional services (52fd21f)
- desktop-ui: correctly unregister destroyed sidebar (8613ae4)
- framework: order of scoped services to allow injecting HttpRequest in RpcKernelSecurity (9a5e300)
- type: correctly type guard
null
in optional properties (c0adcb0)
1.0.1-alpha.136 (2024-02-20)
- desktop-ui: correctly publish package.json (23f14ac)
1.0.1-alpha.135 (2024-02-16)
- rpc: reuse type cache across connections + made strictSerialization(false) less strict (1b55b08)
1.0.1-alpha.134 (2024-02-15)
- bson: allow to serialize null to optional property (77b0020)
- rpc: allow to disable strict serialization and validation (d7a8155)
- rpc: use rpc.logValidationErrors also for strict serializer (78f57e9)
1.0.1-alpha.133 (2024-02-15)
- bson: fix surrogate pair decoding (cb9f648)
- app: allow array flags in object literal (690927c)
- bson: export new wrapObjectId/wrapUUId for faster any serialization (718839b)
- mongo: add readPreference support (6275c37)
- rpc: allow serialization of unknown Observable type (0014074)
1.0.1-alpha.132 (2024-02-10)
- rpc: better error message when no observable type can be extracted (5e7ecf1)
- sql: strings should be nullable without casting as JSON (#552) (fe55b7f)
- type: intersection of two different primitive types always return never (#549) (20d3dc8)
- mongo: export custom command API (d82ccd1)
1.0.1-alpha.131 (2024-02-09)
- http: make sure all path parameters are available in HttpRequestParser (e215420)
- rpc: error Observable Subscribers when no Observable Next type can be detected (e207fea)
- type: make sure cast throws when null/undefined is passed (1bb3641)
1.0.1-alpha.130 (2024-02-07)
- http: don't include resolver/DI objects into HttpRequestParser (be189c5)
- http: allow to fetch unused path parameters in HttpRequestParser (cc3cd3b)
1.0.1-alpha.129 (2024-02-07)
- http: also read path parameters in HttpRequestParser (888d058)
1.0.1-alpha.128 (2024-02-06)
- framework: esm import (a9927c2)
- injector: correctly label symbols (ac07f21)
- postgres: don't crash when no index can be extracted (c80e88f)
- http: add new HttpRequestParser injection token (6101f83)
1.0.1-alpha.127 (2024-02-06)
1.0.1-alpha.126 (2024-02-06)
- rpc: wrong ESM import (1426627)
1.0.1-alpha.125 (2024-02-05)
- mongo: export error symbols (5841a5a)
1.0.1-alpha.124 (2024-02-04)
- desktop-ui: -webkit-scrollbar is not supported in chrome anymore (68fca4f)
- desktop-ui: dont ignore dist/ in npm package (e6e6faa)
- orm: make sure getJoin operates on existing join model (03b2428)
- type: handle more circular types (5f6bd12), closes #477
- orm: better Error handling + UniqueConstraintFailure (f1845ee)
- orm: new API to configure a join query (64cc55e)
1.0.1-alpha.123 (2024-02-02)
- desktop-ui: resolve various circular imports (3f5c676)
- injector: resolve deps of exported providers correctly (c185b38)
- orm: onDatabaseError event (cdb7256)
1.0.1-alpha.122 (2024-01-31)
- injector: new Module.configureProvider(Fn) with configuration callback (1739b95)
1.0.1-alpha.121 (2024-01-31)
- core: clear timeouts correctly in ProcessLock (89cd2d5)
- sqlite: correctly quote column renaming (e555ac8)
- topsort: circular reference detection (1c01cc1)
- broker:
await using BrokerLockItem.hold()
for better resource management (7917fb1) - http: allow using unknown/any/never types that are nominal (3221ff0)
1.0.1-alpha.120 (2024-01-29)
- mysql: upgrade mariadb dependency to 3.2.3 (558ca17)
- sql: support more union types and add new performance abstraction (03067fa), closes #525
- type: preserve modifiers in homomorphic mapped types (f2091d0), closes #515 #514
1.0.1-alpha.119 (2024-01-28)
- sql: support embedded union object literals (29da45c)
- type: provide parent types in serializer template state (d65dfc0)
1.0.1-alpha.118 (2024-01-27)
- app: support Reference in cli object flags (b436af2)
- framework: support multi-host broker setup (6daa19e)
1.0.1-alpha.117 (2024-01-26)
- broker: invalid type in Bus.publish (fb99dbe)
- type-compiler: embed external class/functions (ad6973d)
- type-compiler: merge compilerOptions from ConfigResolver (7b00789)
- type-compiler: pattern match exclusion for globs (#543) (30e3319)
- type: correct type guard (272cff9)
- app: allow object literals as flags (488247a)
- app: allow passing command function without name (6796414)
- app: more color in CLI validation error (9231b7c)
- http: support non-class types as DI tokens in route actions (a296570)
- type-compiler: improve perf by 10x (6eb0436)
- type-compiler: support local export syntax + improve logging (993cffa)
1.0.1-alpha.116 (2024-01-22)
- injector: throw error when both forRoot and exports are used in module (#539) (7faa60d)
- type: refactor typeName embedding (48a2994)
1.0.1-alpha.115 (2024-01-21)
- create-app: update code to newest deepkit version (7f85620)
- framework: stopwatch store last sync report error (bc15c06)
- rpc-tcp: make sure unixsocket folder is created (00fd4ed)
- website: add @latest to npm init (f182de5)
1.0.1-alpha.114 (2024-01-21)
- http: make sure HttpHeader options is defined (ea251ed)
- type-compiler: support nodenext/node16 module type (5e40fae)
- type-compiler: improve performance drastically (1d80c1a)
1.0.1-alpha.113 (2024-01-17)
- framework: make sure profiler is only activated when debug/profile is true. (c1d9357)
- orm: remove rxjs dependency (0d9dfe1)
1.0.1-alpha.112 (2024-01-16)
- framework: make sure configured var/debug folder is created when (3383504)
- app: improve CLI outputs/parsing by removing @oclif (e38bbd1)
- rpc: make kernel connection available in kernel security (#536) (32252b0)
1.0.1-alpha.111 (2024-01-15)
- type: add new fast path to resolveReceiveType and made it 5x faster on average use case. (45d656c)
1.0.1-alpha.110 (2024-01-11)
- type-compiler: make sure plugin is exported in new entrypoint + deps are correct (22eb296)
1.0.1-alpha.109 (2024-01-10)
- bson: tests (607d369)
- create-app: add missing filesystem dependency (#533) (a70327c)
- http: use default values of route parameters if no http value was provided. (fa74d16), closes #529
- injector: allow to define scope in provide({}) (2f12c2e)
- orm: snapshot type
any
correctly (4898e9b) - rpc: defer resolving class name (68fe2a9)
- rpc: tests with controller path resolution based on reflection (6909fa8)
- sql: serialize referenced types (#528) (2f68991)
- type-compiler: arrow function receive type (#521) (6bfb246)
- type-compiler: resolve reflection mode paths correctly (acb2d72)
- type-compiler: set ts compiler options target to es2022 if higher than es20222 when resolving global lib files (#516) (29a1a17)
- type: make serializer API consistent (5870005)
- broker: queue message deduplication (#512) (2a8bf2c)
- injector: add support for receive type in isProvided (#511) (e405ed3)
- mongo,sql: skip database field for inserts (#527) (9fca388)
1.0.1-alpha.108 (2023-11-21)
- app: correctly end stopwatch frame (86be2e1)
- broker: await disconnect (0568378)
- core: make sure stringifyValueWithType does not print unlimited depth (56fbef9)
- framework: don't enable profiler per default (52a7e52)
- framework: dont throw when profiler package couldn't be built. (3b165d6)
- framework: provide always DebugBroker (1b55b65)
- http: fix tests to reflect new error reporting (1eb83ff)
- injector: make sure type cache is used when finding matching provider. (8c79e4b)
- rpc: correctly load controller name (9d603db)
- rpc: race condition in disconnect() when connect is still in progress (f2d708d)
- template: better typings to support
<element role="string">
(efb1668) - type: correctly check
X extends Date
and print validation errors with caused value. (fde795e) - type: correctly materialize Promise in runtime checks. (aa66460), closes #495
- type: make sure
typeof x
expression doesn't return the original type (7206e7e) - type: make sure inline returns a ref to the correct type program (dc5d6dd)
- rpc: make controller decorator name optional (#491) (525ed39)
- type-compiler: emit typeName for type only imports (#501) (318d091)
1.0.1-alpha.107 (2023-10-23)
Note: Version bump only for package root
1.0.1-alpha.106 (2023-10-23)
Note: Version bump only for package root
1.0.1-alpha.105 (2023-10-23)
- filesystem-aws-s3: use new type for ACL (dd08c77)
- framework: support esm environment for debug gui http routes (5cb33cf)
- mongo: also check connection request for queued requests. (6c6ca94)
- mongo: fix off by one error in pool (666ba86)
- orm: correctly instantiate database class per module (1ea2418)
- rpc: move controllerAccess to handleAction to not call it twice. (c68308d)
- type-compiler: wrong import (caad2b3)
- type: do not interfere with type checking when intersecting multiple type annotations. (af85f1f)
- type: test (c335466)