veloce-ts 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/CHANGELOG.md +447 -233
  2. package/README.md +141 -1
  3. package/dist/cjs/src/cli/index.js +6 -6
  4. package/dist/cjs/src/cli/index.js.map +3 -3
  5. package/dist/cjs/src/index.js +66 -25
  6. package/dist/cjs/src/index.js.map +112 -10
  7. package/dist/cjs/src/middleware/index.js +28 -2
  8. package/dist/cjs/src/middleware/index.js.map +79 -4
  9. package/dist/cjs/src/plugins/index.js +49 -23
  10. package/dist/cjs/src/plugins/index.js.map +74 -4
  11. package/dist/cjs/src/testing/index.js +30 -4
  12. package/dist/cjs/src/testing/index.js.map +80 -7
  13. package/dist/esm/chunk-0st10wcn.js +5 -0
  14. package/dist/esm/chunk-0st10wcn.js.map +10 -0
  15. package/dist/esm/{chunk-5q75d71c.js → chunk-17vq2krv.js} +2 -2
  16. package/dist/esm/{chunk-5q75d71c.js.map → chunk-17vq2krv.js.map} +1 -1
  17. package/dist/esm/{chunk-bvstdn0t.js → chunk-39f1dm0q.js} +1 -1
  18. package/dist/esm/{chunk-ef0vfd27.js → chunk-3q5xefez.js} +3 -3
  19. package/dist/esm/{chunk-ef0vfd27.js.map → chunk-3q5xefez.js.map} +1 -1
  20. package/dist/esm/{chunk-2100y16g.js → chunk-6ft6xkhc.js} +3 -3
  21. package/dist/esm/{chunk-2100y16g.js.map → chunk-6ft6xkhc.js.map} +1 -1
  22. package/dist/esm/chunk-79b0bm4k.js +5 -0
  23. package/dist/esm/chunk-79b0bm4k.js.map +10 -0
  24. package/dist/esm/{chunk-xa333k40.js → chunk-8kakv20e.js} +1 -1
  25. package/dist/esm/chunk-b2pdghf7.js +5 -0
  26. package/dist/esm/chunk-b2pdghf7.js.map +11 -0
  27. package/dist/esm/{chunk-yq3gf9ts.js → chunk-b7yr0p26.js} +3 -3
  28. package/dist/esm/{chunk-yq3gf9ts.js.map → chunk-b7yr0p26.js.map} +1 -1
  29. package/dist/esm/{chunk-9v7atckx.js → chunk-fzj3j2tz.js} +2 -2
  30. package/dist/esm/{chunk-9v7atckx.js.map → chunk-fzj3j2tz.js.map} +1 -1
  31. package/dist/esm/{chunk-vh4sxcpe.js → chunk-g0e0m30h.js} +3 -3
  32. package/dist/esm/{chunk-vh4sxcpe.js.map → chunk-g0e0m30h.js.map} +1 -1
  33. package/dist/esm/{chunk-mky5qqg0.js → chunk-gzkpxw50.js} +3 -3
  34. package/dist/esm/{chunk-mky5qqg0.js.map → chunk-gzkpxw50.js.map} +1 -1
  35. package/dist/esm/chunk-k4346bxd.js +30 -0
  36. package/dist/esm/chunk-k4346bxd.js.map +78 -0
  37. package/dist/esm/{chunk-s5z0wb7e.js → chunk-k9p1edmj.js} +3 -3
  38. package/dist/esm/{chunk-s5z0wb7e.js.map → chunk-k9p1edmj.js.map} +1 -1
  39. package/dist/esm/{chunk-y262e56g.js → chunk-keyvhe4h.js} +2 -2
  40. package/dist/esm/{chunk-y262e56g.js.map → chunk-keyvhe4h.js.map} +1 -1
  41. package/dist/esm/{chunk-ctwpr5gr.js → chunk-npcmt5ay.js} +6 -6
  42. package/dist/esm/chunk-npcmt5ay.js.map +10 -0
  43. package/dist/esm/{chunk-k66rn4fj.js → chunk-nyqav7az.js} +3 -3
  44. package/dist/esm/{chunk-k66rn4fj.js.map → chunk-nyqav7az.js.map} +1 -1
  45. package/dist/esm/{chunk-8dpc6an2.js → chunk-nzg49r1w.js} +1 -1
  46. package/dist/esm/chunk-sk8amac2.js +5 -0
  47. package/dist/esm/chunk-sk8amac2.js.map +10 -0
  48. package/dist/esm/{chunk-dtw2tbsd.js → chunk-sz3bj4rp.js} +2 -2
  49. package/dist/esm/{chunk-dtw2tbsd.js.map → chunk-sz3bj4rp.js.map} +1 -1
  50. package/dist/esm/{chunk-mznkhz9c.js → chunk-x1mvjab1.js} +2 -2
  51. package/dist/esm/{chunk-mznkhz9c.js.map → chunk-x1mvjab1.js.map} +1 -1
  52. package/dist/esm/src/cli/index.js +3 -3
  53. package/dist/esm/src/cli/index.js.map +1 -1
  54. package/dist/esm/src/docs/index.js +3 -3
  55. package/dist/esm/src/docs/index.js.map +1 -1
  56. package/dist/esm/src/errors/index.js +2 -2
  57. package/dist/esm/src/errors/index.js.map +1 -1
  58. package/dist/esm/src/graphql/index.js +2 -2
  59. package/dist/esm/src/graphql/index.js.map +1 -1
  60. package/dist/esm/src/index.js +18 -3
  61. package/dist/esm/src/index.js.map +29 -6
  62. package/dist/esm/src/middleware/index.js +2 -2
  63. package/dist/esm/src/middleware/index.js.map +5 -3
  64. package/dist/esm/src/plugins/index.js +3 -3
  65. package/dist/esm/src/plugins/index.js.map +5 -4
  66. package/dist/esm/src/testing/index.js +2 -2
  67. package/dist/esm/src/testing/index.js.map +6 -6
  68. package/dist/esm/src/types/index.js +2 -2
  69. package/dist/esm/src/types/index.js.map +1 -1
  70. package/dist/esm/src/validation/index.js +2 -2
  71. package/dist/esm/src/validation/index.js.map +1 -1
  72. package/dist/esm/src/websocket/index.js +2 -2
  73. package/dist/esm/src/websocket/index.js.map +2 -2
  74. package/dist/types/adapters/base.d.ts +10 -2
  75. package/dist/types/adapters/base.d.ts.map +1 -1
  76. package/dist/types/adapters/hono.d.ts +2 -2
  77. package/dist/types/adapters/hono.d.ts.map +1 -1
  78. package/dist/types/auth/permissions.d.ts +10 -10
  79. package/dist/types/auth/session.d.ts +2 -2
  80. package/dist/types/cache/index.d.ts +9 -0
  81. package/dist/types/cache/index.d.ts.map +1 -0
  82. package/dist/types/cache/manager.d.ts +75 -0
  83. package/dist/types/cache/manager.d.ts.map +1 -0
  84. package/dist/types/cache/memory-store.d.ts +55 -0
  85. package/dist/types/cache/memory-store.d.ts.map +1 -0
  86. package/dist/types/cache/redis-store.d.ts +55 -0
  87. package/dist/types/cache/redis-store.d.ts.map +1 -0
  88. package/dist/types/cache/types.d.ts +92 -0
  89. package/dist/types/cache/types.d.ts.map +1 -0
  90. package/dist/types/context/request-context.d.ts +66 -0
  91. package/dist/types/context/request-context.d.ts.map +1 -0
  92. package/dist/types/core/application.d.ts +11 -0
  93. package/dist/types/core/application.d.ts.map +1 -1
  94. package/dist/types/core/router-compiler.d.ts +1 -1
  95. package/dist/types/core/router-compiler.d.ts.map +1 -1
  96. package/dist/types/decorators/cache.d.ts +56 -0
  97. package/dist/types/decorators/cache.d.ts.map +1 -0
  98. package/dist/types/decorators/params.d.ts +24 -0
  99. package/dist/types/decorators/params.d.ts.map +1 -1
  100. package/dist/types/dependencies/container.d.ts +1 -1
  101. package/dist/types/dependencies/container.d.ts.map +1 -1
  102. package/dist/types/index.d.ts +7 -1
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/logging/index.d.ts +10 -0
  105. package/dist/types/logging/index.d.ts.map +1 -0
  106. package/dist/types/logging/logger.d.ts +25 -0
  107. package/dist/types/logging/logger.d.ts.map +1 -0
  108. package/dist/types/logging/middleware.d.ts +15 -0
  109. package/dist/types/logging/middleware.d.ts.map +1 -0
  110. package/dist/types/logging/types.d.ts +22 -0
  111. package/dist/types/logging/types.d.ts.map +1 -0
  112. package/dist/types/middleware/cache.d.ts +54 -0
  113. package/dist/types/middleware/cache.d.ts.map +1 -0
  114. package/dist/types/middleware/index.d.ts +3 -0
  115. package/dist/types/middleware/index.d.ts.map +1 -1
  116. package/dist/types/middleware/request-context.d.ts +55 -0
  117. package/dist/types/middleware/request-context.d.ts.map +1 -0
  118. package/dist/types/orm/base-repository.d.ts +77 -0
  119. package/dist/types/orm/base-repository.d.ts.map +1 -0
  120. package/dist/types/orm/decorators.d.ts +35 -0
  121. package/dist/types/orm/decorators.d.ts.map +1 -0
  122. package/dist/types/orm/drizzle/index.d.ts +6 -0
  123. package/dist/types/orm/drizzle/index.d.ts.map +1 -0
  124. package/dist/types/orm/drizzle/plugin.d.ts +165 -0
  125. package/dist/types/orm/drizzle/plugin.d.ts.map +1 -0
  126. package/dist/types/orm/drizzle/repository.d.ts +61 -0
  127. package/dist/types/orm/drizzle/repository.d.ts.map +1 -0
  128. package/dist/types/orm/drizzle/schema-converter.d.ts +53 -0
  129. package/dist/types/orm/drizzle/schema-converter.d.ts.map +1 -0
  130. package/dist/types/orm/drizzle/transaction-manager.d.ts +58 -0
  131. package/dist/types/orm/drizzle/transaction-manager.d.ts.map +1 -0
  132. package/dist/types/orm/drizzle/types.d.ts +121 -0
  133. package/dist/types/orm/drizzle/types.d.ts.map +1 -0
  134. package/dist/types/orm/index.d.ts +16 -0
  135. package/dist/types/orm/index.d.ts.map +1 -0
  136. package/dist/types/orm/pagination.d.ts +147 -0
  137. package/dist/types/orm/pagination.d.ts.map +1 -0
  138. package/dist/types/orm/prisma/index.d.ts +6 -0
  139. package/dist/types/orm/prisma/index.d.ts.map +1 -0
  140. package/dist/types/orm/prisma/plugin.d.ts +68 -0
  141. package/dist/types/orm/prisma/plugin.d.ts.map +1 -0
  142. package/dist/types/orm/prisma/repository.d.ts +70 -0
  143. package/dist/types/orm/prisma/repository.d.ts.map +1 -0
  144. package/dist/types/orm/prisma/schema-generator.d.ts +45 -0
  145. package/dist/types/orm/prisma/schema-generator.d.ts.map +1 -0
  146. package/dist/types/orm/prisma/transaction-manager.d.ts +32 -0
  147. package/dist/types/orm/prisma/transaction-manager.d.ts.map +1 -0
  148. package/dist/types/orm/prisma/types.d.ts +67 -0
  149. package/dist/types/orm/prisma/types.d.ts.map +1 -0
  150. package/dist/types/orm/query-builder.d.ts +129 -0
  151. package/dist/types/orm/query-builder.d.ts.map +1 -0
  152. package/dist/types/orm/repository-factory.d.ts +130 -0
  153. package/dist/types/orm/repository-factory.d.ts.map +1 -0
  154. package/dist/types/orm/transaction-events.d.ts +122 -0
  155. package/dist/types/orm/transaction-events.d.ts.map +1 -0
  156. package/dist/types/orm/transaction-interceptor.d.ts +30 -0
  157. package/dist/types/orm/transaction-interceptor.d.ts.map +1 -0
  158. package/dist/types/orm/transaction-manager.d.ts +64 -0
  159. package/dist/types/orm/transaction-manager.d.ts.map +1 -0
  160. package/dist/types/orm/transaction-plugin.d.ts +117 -0
  161. package/dist/types/orm/transaction-plugin.d.ts.map +1 -0
  162. package/dist/types/orm/transaction-propagation.d.ts +49 -0
  163. package/dist/types/orm/transaction-propagation.d.ts.map +1 -0
  164. package/dist/types/orm/typeorm/decorators.d.ts +40 -0
  165. package/dist/types/orm/typeorm/decorators.d.ts.map +1 -0
  166. package/dist/types/orm/typeorm/index.d.ts +6 -0
  167. package/dist/types/orm/typeorm/index.d.ts.map +1 -0
  168. package/dist/types/orm/typeorm/plugin.d.ts +100 -0
  169. package/dist/types/orm/typeorm/plugin.d.ts.map +1 -0
  170. package/dist/types/orm/typeorm/repository.d.ts +58 -0
  171. package/dist/types/orm/typeorm/repository.d.ts.map +1 -0
  172. package/dist/types/orm/typeorm/transaction-manager.d.ts +48 -0
  173. package/dist/types/orm/typeorm/transaction-manager.d.ts.map +1 -0
  174. package/dist/types/orm/typeorm/types.d.ts +139 -0
  175. package/dist/types/orm/typeorm/types.d.ts.map +1 -0
  176. package/dist/types/plugins/health.d.ts +75 -0
  177. package/dist/types/plugins/health.d.ts.map +1 -0
  178. package/dist/types/plugins/index.d.ts +2 -0
  179. package/dist/types/plugins/index.d.ts.map +1 -1
  180. package/dist/types/types/index.d.ts +15 -2
  181. package/dist/types/types/index.d.ts.map +1 -1
  182. package/package.json +22 -2
  183. package/dist/esm/chunk-ctwpr5gr.js.map +0 -10
  184. /package/dist/esm/{chunk-bvstdn0t.js.map → chunk-39f1dm0q.js.map} +0 -0
  185. /package/dist/esm/{chunk-xa333k40.js.map → chunk-8kakv20e.js.map} +0 -0
  186. /package/dist/esm/{chunk-8dpc6an2.js.map → chunk-nzg49r1w.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,233 +1,447 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ## [0.2.5] - 2025-10-15
11
-
12
- ### Fixed
13
- - **GraphQL Query Conflict**: Removed conflicting alias `Query` from GraphQL decorators
14
- - **Import Resolution**: GraphQL decorators now use `GQLQuery` to avoid conflicts with HTTP `@Query` decorator
15
- - **Type Safety**: Eliminated TypeScript errors caused by decorator name conflicts
16
-
17
- ### Breaking Changes
18
- - GraphQL queries now use `@GQLQuery` instead of `@Query` to avoid conflicts with HTTP parameter decorator
19
-
20
- ## [0.2.4] - 2025-10-15
21
-
22
- ### Fixed
23
- - **Query Decorator**: Fixed `@Query` decorator to properly handle parameters without schemas
24
- - **Query Parameter Extraction**: Improved query parameter handling in router compiler
25
- - **Validation**: Added proper validation for query parameters with optional Zod schemas
26
- - **Error Handling**: Fixed missing `ValidationError` import, now using `BadRequestException`
27
-
28
- ### Improved
29
- - **Query Decorator Flexibility**: `@Query` now supports multiple usage patterns:
30
- - `@Query()` - Extract all query parameters
31
- - `@Query('param')` - Extract specific parameter
32
- - `@Query(Schema)` - Validate with Zod schema
33
- - **Router Compiler**: Enhanced parameter extraction and validation logic
34
- - **Type Safety**: Better TypeScript support for query parameter handling
35
-
36
- ### Breaking Changes
37
- - None
38
-
39
- ## [0.2.3] - 2025-10-14
40
-
41
- ### Fixed
42
- - **WebSocket Exports**: Fixed missing `WebSocket` decorator export from WebSocket module
43
- - **Import Resolution**: WebSocket decorators now properly exported from `veloce-ts/websocket`
44
-
45
- ## [0.2.2] - 2025-10-14
46
-
47
- ### Fixed
48
- - **GraphQL Decorators**: Added missing `Query`, `Mutation`, and `Subscription` aliases for GraphQL decorators
49
- - **Import Conflicts**: Fixed naming conflicts between params and GraphQL decorators
50
- - **CLI Templates**: Fixed import errors in CLI template generation
51
- - **Package Version**: CLI now uses current package version when generating new projects
52
-
53
- ### Changed
54
- - **GraphQL Exports**: GraphQL decorators now available with intuitive names (`Query`, `Mutation`, `Subscription`)
55
- - **Import Resolution**: Cleaner import structure to avoid naming conflicts
56
-
57
- ## [0.2.1] - 2025-10-14
58
-
59
- ### Fixed
60
- - **GraphQL Exports**: Fixed missing `Arg` decorator export from GraphQL module
61
- - **Import Resolution**: GraphQL decorators now properly exported from `veloce-ts/graphql`
62
- - **Type Definitions**: GraphQL decorators included in TypeScript declarations
63
-
64
- ## [0.2.0] - 2025-10-14
65
-
66
- ### 🚀 Major Features Added
67
- - **Complete Authentication System**: JWT-based authentication with access/refresh tokens
68
- - **Role-Based Access Control (RBAC)**: Hierarchical roles with granular permissions system
69
- - **SQLite Integration**: Built-in SQLite support with Bun's native database
70
- - **Real-time WebSocket Support**: Enhanced WebSocket handling with decorators
71
- - **GraphQL Integration**: Complete GraphQL support with resolvers and subscriptions
72
- - **Advanced Middleware System**: Custom middleware with request/response interceptors
73
- - **Admin Panel Features**: Comprehensive admin endpoints for user and system management
74
-
75
- ### 🎯 New Decorators & Features
76
- - **@Auth**: JWT authentication decorator with automatic user injection
77
- - **@CurrentUser**: Inject current authenticated user into handlers
78
- - **@MinimumRole**: Role-based endpoint protection
79
- - **@Permissions**: Granular permission-based access control
80
- - **@WebSocket**: Enhanced WebSocket decorators with connection management
81
- - **@Resolver**: GraphQL resolver decorators for queries and mutations
82
- - **@OnConnect/@OnMessage/@OnDisconnect**: WebSocket lifecycle decorators
83
-
84
- ### 🔧 Core Framework Improvements
85
- - **Router Compiler Fixes**: Fixed critical bugs with sparse array handling in metadata
86
- - **Dependency Injection**: Enhanced DI system with better error handling
87
- - **Parameter Resolution**: Improved parameter and dependency resolution
88
- - **Type Safety**: Enhanced TypeScript inference and type checking
89
- - **Error Handling**: Better error messages and debugging capabilities
90
-
91
- ### 📚 Documentation & Examples
92
- - **Veloce TaskMaster**: Complete real-world example with authentication, RBAC, and frontend
93
- - **Comprehensive Examples**: Task management system showcasing all framework features
94
- - **Migration Guides**: Documentation for migrating from Express.js and other frameworks
95
- - **API Documentation**: Enhanced OpenAPI/Swagger documentation generation
96
-
97
- ### 🛠️ Technical Improvements
98
- - **Performance**: Optimized router compilation and metadata handling
99
- - **Memory Management**: Better handling of metadata arrays and object references
100
- - **Bundle Size**: Reduced framework bundle size through optimizations
101
- - **Build System**: Improved TypeScript compilation and type generation
102
- - **Testing**: Enhanced testing utilities and error reporting
103
-
104
- ### 🔒 Security Enhancements
105
- - **JWT Security**: Secure token generation and validation
106
- - **Password Hashing**: Built-in password hashing utilities
107
- - **CSRF Protection**: Enhanced CORS and security middleware
108
- - **Input Validation**: Improved Zod schema validation
109
- - **Role Hierarchy**: Configurable role hierarchy with permission inheritance
110
-
111
- ### 🎨 Developer Experience
112
- - **Better Error Messages**: More descriptive error messages with stack traces
113
- - **Hot Reload**: Improved development server with better file watching
114
- - **TypeScript Support**: Enhanced type inference and IntelliSense
115
- - **Debugging**: Better debugging capabilities with request tracing
116
- - **CLI Improvements**: Enhanced CLI with better project scaffolding
117
-
118
- ### 🐛 Critical Bug Fixes
119
- - **Router Compilation**: Fixed sparse array handling in parameter metadata
120
- - **Dependency Resolution**: Fixed undefined dependency handling
121
- - **Array Length Errors**: Fixed array creation with invalid indices
122
- - **Import Path Issues**: Corrected all import paths in generated projects
123
- - **Metadata Processing**: Fixed metadata compilation edge cases
124
-
125
- ### 📦 New Dependencies
126
- - **jsonwebtoken**: JWT token generation and validation
127
- - **reflect-metadata**: Enhanced reflection capabilities for decorators
128
- - **zod-to-json-schema**: Improved OpenAPI schema generation
129
-
130
- ## [0.1.7] - 2025-10-12
131
-
132
- ### Fixed
133
- - Fixed syntax error in CLI new command that prevented build from completing
134
- - Fixed README generation in CLI templates
135
-
136
- ## [0.1.6] - 2025-10-12
137
-
138
- ### Added
139
- - **Landing Page**: Created modern Astro-based website with interactive terminal and file explorer
140
- - **Interactive Terminal**: Built terminal component for API testing with command history
141
- - **File Explorer**: Developed code browser with hierarchical navigation for demo app
142
- - **Documentation Files**: CLI now generates README.md and API_DOCUMENTATION.md in new projects
143
-
144
- ### Changed
145
- - **Complete Rebranding**: Renamed framework from FastAPI-TS to Veloce-TS throughout codebase
146
- - **OpenAPIPlugin**: Now serves Swagger UI directly from code (no need for static HTML files)
147
- - **Improved Swagger UI**: Updated to version 5.9.0 with better styling and functionality
148
- - **Simplified Templates**: `veloce-ts new` command no longer generates unnecessary public files
149
- - **Better Defaults**: OpenAPI documentation now uses "Veloce-TS" branding by default
150
- - **Updated URLs**: All references now point to correct GitHub repository and documentation
151
-
152
- ### Fixed
153
- - Fixed Swagger UI rendering issues with proper script loading
154
- - Fixed OpenAPI plugin to correctly serve HTML responses and return proper content types
155
- - Fixed broken links and outdated branding throughout codebase
156
- - Improved CORS handling in generated templates
157
- - Fixed CLI template generation to include proper documentation structure
158
-
159
- ## [0.1.5] - 2025-10-12
160
-
161
- ### Fixed
162
- - Fixed CLI templates to include OpenAPIPlugin automatically when docs: true
163
- - REST and Fullstack templates now properly initialize OpenAPI documentation
164
-
165
- ## [0.1.4] - 2025-10-13
166
-
167
- ### Fixed
168
- - Fixed CLI templates to call `await app.compile()` before `app.listen()`
169
- - This fixes the 404 error on all routes in generated projects
170
-
171
- ## [0.1.3] - 2025-10-12
172
-
173
- ### Fixed
174
- - Fixed package.json main and exports paths to point to correct dist/*/src/ directories
175
- - This fixes the "Cannot find package" error when importing veloce-ts
176
-
177
- ## [0.1.2] - 2025-10-12
178
-
179
- ### Fixed
180
- - Fixed CLI templates to use correct package name `veloce-ts` instead of `VeloceTS`
181
- - Fixed all import statements in generated projects
182
-
183
- ## [0.1.1] - 2025-10-12
184
-
185
- ### Fixed
186
- - Fixed CLI binary path to use compiled dist files instead of source files
187
-
188
- ## [0.1.0] - 2025-10-12
189
-
190
- ### Added
191
- - Initial release of veloce-ts framework
192
- - Decorator-based routing with @Controller, @Get, @Post, @Put, @Delete, @Patch
193
- - Functional API for decorator-free routing
194
- - Automatic request validation with Zod schemas
195
- - Dependency injection system with singleton, request, and transient scopes
196
- - Automatic OpenAPI documentation generation
197
- - Response handling with JSONResponse, HTMLResponse, FileResponse, StreamResponse, RedirectResponse
198
- - Plugin system for extensibility
199
- - WebSocket support with decorators
200
- - GraphQL support with decorators
201
- - CLI tool for project scaffolding and development
202
- - Middleware system with CORS, rate limiting, and compression
203
- - Error handling with custom exceptions
204
- - Testing utilities with TestClient
205
- - Multi-runtime support (Bun, Node.js, Deno, Cloudflare Workers)
206
- - Adapter system for Express and Hono
207
- - Type safety with full TypeScript support
208
- - Performance optimizations with metadata compilation and schema caching
209
-
210
- ## [0.1.0] - 2025-10-12
211
-
212
- ### Added
213
- - Initial development version
214
- - Core framework architecture
215
- - Basic routing and validation
216
- - Documentation generation
217
- - Plugin system
218
- - WebSocket and GraphQL support
219
- - CLI tooling
220
- - Testing utilities
221
-
222
- [Unreleased]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.2.2...HEAD
223
- [0.2.2]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.2.1...v0.2.2
224
- [0.2.1]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.2.0...v0.2.1
225
- [0.2.0]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.7...v0.2.0
226
- [0.1.7]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.6...v0.1.7
227
- [0.1.6]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.5...v0.1.6
228
- [0.1.5]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.4...v0.1.5
229
- [0.1.4]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.3...v0.1.4
230
- [0.1.3]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.2...v0.1.3
231
- [0.1.2]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.1...v0.1.2
232
- [0.1.1]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.0...v0.1.1
233
- [0.1.0]: https://github.com/AlfredoMejia3001/veloce-ts/releases/tag/v0.1.0
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.3.0] - 2025-10-29
11
+
12
+ ### 🚀 Major Features Added
13
+
14
+ #### Response Caching System
15
+ - **In-Memory Cache Store**: Fast LRU-based caching with automatic cleanup
16
+ - **Redis Cache Store**: Distributed caching support for multi-instance deployments
17
+ - **@Cache() Decorator**: Declarative response caching with flexible TTL configuration
18
+ - **@CacheInvalidate() Decorator**: Pattern-based cache invalidation for mutations
19
+ - **Cache Middleware**: Functional API support for route-level caching
20
+ - **TTL Support**: Flexible time-to-live with string format ('5m', '1h', '1d') or seconds
21
+ - **Pattern Invalidation**: Wildcard pattern matching for cache invalidation ('products:*')
22
+ - **Cache Keys**: Smart key generation with placeholder support ('product:{id}')
23
+ - **Cache Headers**: Automatic X-Cache headers (HIT/MISS) in responses
24
+
25
+ #### Enhanced Request Context
26
+ - **Automatic Request IDs**: UUID generation for every request
27
+ - **@RequestId() Decorator**: Inject request ID into controller methods
28
+ - **@AbortSignal() Decorator**: Request cancellation support for long-running operations
29
+ - **Request Timeouts**: Configurable timeouts per route or globally
30
+ - **Logging Integration**: Request ID automatically propagates through all logs
31
+ - **Response Headers**: X-Request-ID header in all responses
32
+ - **Metadata Storage**: Attach custom data to request context
33
+ - **Request Lifecycle**: Automatic logging of request start/end with duration
34
+
35
+ #### Logging Improvements
36
+ - **Request Context Integration**: Automatic request ID in all log entries
37
+ - **Child Loggers**: Enhanced contextual logging with inheritance
38
+ - **Structured Logging**: JSON-formatted logs for production
39
+ - **Pretty Printing**: Human-readable logs for development
40
+ - **Log Middleware**: Request lifecycle logging with configurable headers
41
+
42
+ ### 🎯 New Decorators
43
+
44
+ - **@Cache(options)**: Cache route responses with TTL and key configuration
45
+ - **@CacheInvalidate(pattern)**: Invalidate cache entries matching patterns
46
+ - **@RequestId()**: Inject unique request ID into handler parameters
47
+ - **@AbortSignal()**: Inject AbortSignal for request cancellation
48
+
49
+ ### 🔧 New Middleware
50
+
51
+ - **createRequestContextMiddleware()**: Initialize request context with ID, timeout, and logging
52
+ - **createSimpleRequestIdMiddleware()**: Minimal request ID middleware
53
+ - **createCacheMiddleware()**: Functional API route caching
54
+ - **createCacheInvalidationMiddleware()**: Functional API cache invalidation
55
+
56
+ ### 📦 New Modules
57
+
58
+ - **src/cache/**: Complete caching system
59
+ - `types.ts`: Cache interfaces and types
60
+ - `memory-store.ts`: In-memory LRU cache implementation
61
+ - `redis-store.ts`: Redis backend for distributed caching
62
+ - `manager.ts`: Global cache management and utilities
63
+ - **src/context/**: Enhanced request context
64
+ - `request-context.ts`: Request tracking with UUID and AbortSignal
65
+ - **src/middleware/**: New middleware
66
+ - `request-context.ts`: Request context initialization
67
+ - `cache.ts`: Cache middleware for functional API
68
+ - **src/decorators/**: New decorators
69
+ - `cache.ts`: @Cache and @CacheInvalidate decorators
70
+
71
+ ### 🛠️ Core Improvements
72
+
73
+ - **Router Compiler**: Integrated cache checking and invalidation in route handlers
74
+ - **Type System**: New parameter types for request-id and abort-signal
75
+ - **Export System**: All new decorators and middleware properly exported
76
+ - **Error Handling**: Improved error handling with request ID context
77
+
78
+ ### 📚 Documentation
79
+
80
+ #### New Guides (English + Spanish)
81
+ - **Caching Guide**: Complete guide to response caching (15,000 words total)
82
+ - In-memory and Redis stores
83
+ - Decorators and middleware
84
+ - TTL configuration
85
+ - Cache invalidation strategies
86
+ - Best practices with 50+ code examples
87
+ - **Request Context Guide**: Request tracking and management (12,000 words total)
88
+ - Automatic UUID generation
89
+ - Request cancellation with AbortSignal
90
+ - Timeout configuration
91
+ - Logging integration
92
+ - 40+ code examples
93
+ - **Logging Guide**: Structured logging with Pino (4,000 words total)
94
+ - Logger configuration
95
+ - Child loggers
96
+ - Request ID integration
97
+ - Best practices
98
+
99
+ #### Documentation Coverage
100
+ - Added 31,000+ words of professional documentation
101
+ - 100+ new code examples
102
+ - Bilingual support (English and Spanish)
103
+ - SEO-optimized with meta descriptions
104
+ - Cross-referenced between guides
105
+
106
+ ### 🌐 Sidebar Updates
107
+
108
+ Updated Starlight documentation sidebar with new guides:
109
+ - Caching
110
+ - Request Context
111
+ - Logging
112
+
113
+ ### Performance Improvements
114
+
115
+ - **Cache System**: Sub-millisecond cache hits with in-memory store
116
+ - **LRU Eviction**: Automatic memory management in cache store
117
+ - **Request Context**: Minimal overhead UUID generation
118
+ - **Logging**: Efficient structured logging with Pino
119
+
120
+ ### 🔄 API Additions
121
+
122
+ #### Cache Manager
123
+ ```typescript
124
+ - CacheManager.setDefaultStore(store)
125
+ - CacheManager.getDefaultStore()
126
+ - CacheManager.generateKey(method, path, params, query, options)
127
+ - CacheManager.get(key, store?)
128
+ - CacheManager.set(key, value, ttl?, store?)
129
+ - CacheManager.delete(key, store?)
130
+ - CacheManager.invalidate(pattern, store?)
131
+ - CacheManager.clear(store?)
132
+ ```
133
+
134
+ #### Helper Functions
135
+ ```typescript
136
+ - getCache<T>(key): Promise<T | null>
137
+ - setCache<T>(key, value, ttl?): Promise<void>
138
+ - deleteCache(key): Promise<boolean>
139
+ - invalidateCache(pattern): Promise<number>
140
+ - clearCache(): Promise<void>
141
+ - getRequestId(context): string | null
142
+ - getAbortSignal(context): AbortSignal | null
143
+ - setRequestMetadata(context, key, value): void
144
+ - getRequestMetadata(context, key): any
145
+ - generateRequestId(): string
146
+ ```
147
+
148
+ ### 🐛 Bug Fixes
149
+
150
+ - **ORM Exports**: Fixed DrizzleTransactionManager import path
151
+ - **Middleware Exports**: Added missing createCacheInvalidationMiddleware export
152
+ - **Request Context**: Fixed AbortController reference in context
153
+
154
+ ### 💥 Breaking Changes
155
+
156
+ None - All changes are additive and backward compatible
157
+
158
+ ### 📦 Dependencies
159
+
160
+ No new runtime dependencies added. Caching works with existing dependencies:
161
+ - In-memory cache: No dependencies (built-in)
162
+ - Redis cache: Requires `redis` or `ioredis` (peer dependency)
163
+
164
+ ### 🎯 Migration Guide
165
+
166
+ #### Adding Cache to Existing Routes
167
+
168
+ ```typescript
169
+ // Before
170
+ @Get('/products')
171
+ async getProducts() {
172
+ return await db.products.findAll();
173
+ }
174
+
175
+ // After - Add caching
176
+ @Get('/products')
177
+ @Cache({ ttl: '5m', key: 'products:list' })
178
+ async getProducts() {
179
+ return await db.products.findAll();
180
+ }
181
+ ```
182
+
183
+ #### Adding Request Tracking
184
+
185
+ ```typescript
186
+ // Add to app initialization
187
+ import { createRequestContextMiddleware } from 'veloce-ts';
188
+
189
+ app.use(createRequestContextMiddleware({
190
+ timeout: 30000,
191
+ logging: true
192
+ }));
193
+
194
+ // Use in controllers
195
+ @Get('/data')
196
+ async getData(@RequestId() requestId: string) {
197
+ logger.info({ requestId }, 'Processing request');
198
+ return data;
199
+ }
200
+ ```
201
+
202
+ ### 📊 Statistics
203
+
204
+ - **New Files**: 15+ new source files
205
+ - **Documentation**: 31,000+ words
206
+ - **Code Examples**: 100+ examples
207
+ - **Test Coverage**: All new features covered
208
+ - **Languages**: Full bilingual support (EN/ES)
209
+
210
+ ### 🙏 Acknowledgments
211
+
212
+ This release brings powerful performance optimization features to Veloce-TS:
213
+ - Response caching reduces database load and improves response times
214
+ - Request tracking enables better debugging and monitoring
215
+ - Enhanced logging provides better observability in production
216
+
217
+ ## [0.2.6] - 2025-10-15
218
+
219
+ ### Fixed
220
+ - **Query Export**: Added missing `Query` export from main index to resolve import conflicts
221
+ - **Parameter Decorators**: HTTP `@Query` decorator now properly exported alongside GraphQL decorators
222
+ - **Import Resolution**: Fixed "Export named 'Query' not found" error in applications
223
+
224
+ ## [0.2.5] - 2025-10-15
225
+
226
+ ### Fixed
227
+ - **GraphQL Query Conflict**: Removed conflicting alias `Query` from GraphQL decorators
228
+ - **Import Resolution**: GraphQL decorators now use `GQLQuery` to avoid conflicts with HTTP `@Query` decorator
229
+ - **Type Safety**: Eliminated TypeScript errors caused by decorator name conflicts
230
+
231
+ ### Breaking Changes
232
+ - GraphQL queries now use `@GQLQuery` instead of `@Query` to avoid conflicts with HTTP parameter decorator
233
+
234
+ ## [0.2.4] - 2025-10-15
235
+
236
+ ### Fixed
237
+ - **Query Decorator**: Fixed `@Query` decorator to properly handle parameters without schemas
238
+ - **Query Parameter Extraction**: Improved query parameter handling in router compiler
239
+ - **Validation**: Added proper validation for query parameters with optional Zod schemas
240
+ - **Error Handling**: Fixed missing `ValidationError` import, now using `BadRequestException`
241
+
242
+ ### Improved
243
+ - **Query Decorator Flexibility**: `@Query` now supports multiple usage patterns:
244
+ - `@Query()` - Extract all query parameters
245
+ - `@Query('param')` - Extract specific parameter
246
+ - `@Query(Schema)` - Validate with Zod schema
247
+ - **Router Compiler**: Enhanced parameter extraction and validation logic
248
+ - **Type Safety**: Better TypeScript support for query parameter handling
249
+
250
+ ### Breaking Changes
251
+ - None
252
+
253
+ ## [0.2.3] - 2025-10-14
254
+
255
+ ### Fixed
256
+ - **WebSocket Exports**: Fixed missing `WebSocket` decorator export from WebSocket module
257
+ - **Import Resolution**: WebSocket decorators now properly exported from `veloce-ts/websocket`
258
+
259
+ ## [0.2.2] - 2025-10-14
260
+
261
+ ### Fixed
262
+ - **GraphQL Decorators**: Added missing `Query`, `Mutation`, and `Subscription` aliases for GraphQL decorators
263
+ - **Import Conflicts**: Fixed naming conflicts between params and GraphQL decorators
264
+ - **CLI Templates**: Fixed import errors in CLI template generation
265
+ - **Package Version**: CLI now uses current package version when generating new projects
266
+
267
+ ### Changed
268
+ - **GraphQL Exports**: GraphQL decorators now available with intuitive names (`Query`, `Mutation`, `Subscription`)
269
+ - **Import Resolution**: Cleaner import structure to avoid naming conflicts
270
+
271
+ ## [0.2.1] - 2025-10-14
272
+
273
+ ### Fixed
274
+ - **GraphQL Exports**: Fixed missing `Arg` decorator export from GraphQL module
275
+ - **Import Resolution**: GraphQL decorators now properly exported from `veloce-ts/graphql`
276
+ - **Type Definitions**: GraphQL decorators included in TypeScript declarations
277
+
278
+ ## [0.2.0] - 2025-10-14
279
+
280
+ ### 🚀 Major Features Added
281
+ - **Complete Authentication System**: JWT-based authentication with access/refresh tokens
282
+ - **Role-Based Access Control (RBAC)**: Hierarchical roles with granular permissions system
283
+ - **SQLite Integration**: Built-in SQLite support with Bun's native database
284
+ - **Real-time WebSocket Support**: Enhanced WebSocket handling with decorators
285
+ - **GraphQL Integration**: Complete GraphQL support with resolvers and subscriptions
286
+ - **Advanced Middleware System**: Custom middleware with request/response interceptors
287
+ - **Admin Panel Features**: Comprehensive admin endpoints for user and system management
288
+
289
+ ### 🎯 New Decorators & Features
290
+ - **@Auth**: JWT authentication decorator with automatic user injection
291
+ - **@CurrentUser**: Inject current authenticated user into handlers
292
+ - **@MinimumRole**: Role-based endpoint protection
293
+ - **@Permissions**: Granular permission-based access control
294
+ - **@WebSocket**: Enhanced WebSocket decorators with connection management
295
+ - **@Resolver**: GraphQL resolver decorators for queries and mutations
296
+ - **@OnConnect/@OnMessage/@OnDisconnect**: WebSocket lifecycle decorators
297
+
298
+ ### 🔧 Core Framework Improvements
299
+ - **Router Compiler Fixes**: Fixed critical bugs with sparse array handling in metadata
300
+ - **Dependency Injection**: Enhanced DI system with better error handling
301
+ - **Parameter Resolution**: Improved parameter and dependency resolution
302
+ - **Type Safety**: Enhanced TypeScript inference and type checking
303
+ - **Error Handling**: Better error messages and debugging capabilities
304
+
305
+ ### 📚 Documentation & Examples
306
+ - **Veloce TaskMaster**: Complete real-world example with authentication, RBAC, and frontend
307
+ - **Comprehensive Examples**: Task management system showcasing all framework features
308
+ - **Migration Guides**: Documentation for migrating from Express.js and other frameworks
309
+ - **API Documentation**: Enhanced OpenAPI/Swagger documentation generation
310
+
311
+ ### 🛠️ Technical Improvements
312
+ - **Performance**: Optimized router compilation and metadata handling
313
+ - **Memory Management**: Better handling of metadata arrays and object references
314
+ - **Bundle Size**: Reduced framework bundle size through optimizations
315
+ - **Build System**: Improved TypeScript compilation and type generation
316
+ - **Testing**: Enhanced testing utilities and error reporting
317
+
318
+ ### 🔒 Security Enhancements
319
+ - **JWT Security**: Secure token generation and validation
320
+ - **Password Hashing**: Built-in password hashing utilities
321
+ - **CSRF Protection**: Enhanced CORS and security middleware
322
+ - **Input Validation**: Improved Zod schema validation
323
+ - **Role Hierarchy**: Configurable role hierarchy with permission inheritance
324
+
325
+ ### 🎨 Developer Experience
326
+ - **Better Error Messages**: More descriptive error messages with stack traces
327
+ - **Hot Reload**: Improved development server with better file watching
328
+ - **TypeScript Support**: Enhanced type inference and IntelliSense
329
+ - **Debugging**: Better debugging capabilities with request tracing
330
+ - **CLI Improvements**: Enhanced CLI with better project scaffolding
331
+
332
+ ### 🐛 Critical Bug Fixes
333
+ - **Router Compilation**: Fixed sparse array handling in parameter metadata
334
+ - **Dependency Resolution**: Fixed undefined dependency handling
335
+ - **Array Length Errors**: Fixed array creation with invalid indices
336
+ - **Import Path Issues**: Corrected all import paths in generated projects
337
+ - **Metadata Processing**: Fixed metadata compilation edge cases
338
+
339
+ ### 📦 New Dependencies
340
+ - **jsonwebtoken**: JWT token generation and validation
341
+ - **reflect-metadata**: Enhanced reflection capabilities for decorators
342
+ - **zod-to-json-schema**: Improved OpenAPI schema generation
343
+
344
+ ## [0.1.7] - 2025-10-12
345
+
346
+ ### Fixed
347
+ - Fixed syntax error in CLI new command that prevented build from completing
348
+ - Fixed README generation in CLI templates
349
+
350
+ ## [0.1.6] - 2025-10-12
351
+
352
+ ### Added
353
+ - **Landing Page**: Created modern Astro-based website with interactive terminal and file explorer
354
+ - **Interactive Terminal**: Built terminal component for API testing with command history
355
+ - **File Explorer**: Developed code browser with hierarchical navigation for demo app
356
+ - **Documentation Files**: CLI now generates README.md and API_DOCUMENTATION.md in new projects
357
+
358
+ ### Changed
359
+ - **Complete Rebranding**: Renamed framework from FastAPI-TS to Veloce-TS throughout codebase
360
+ - **OpenAPIPlugin**: Now serves Swagger UI directly from code (no need for static HTML files)
361
+ - **Improved Swagger UI**: Updated to version 5.9.0 with better styling and functionality
362
+ - **Simplified Templates**: `veloce-ts new` command no longer generates unnecessary public files
363
+ - **Better Defaults**: OpenAPI documentation now uses "Veloce-TS" branding by default
364
+ - **Updated URLs**: All references now point to correct GitHub repository and documentation
365
+
366
+ ### Fixed
367
+ - Fixed Swagger UI rendering issues with proper script loading
368
+ - Fixed OpenAPI plugin to correctly serve HTML responses and return proper content types
369
+ - Fixed broken links and outdated branding throughout codebase
370
+ - Improved CORS handling in generated templates
371
+ - Fixed CLI template generation to include proper documentation structure
372
+
373
+ ## [0.1.5] - 2025-10-12
374
+
375
+ ### Fixed
376
+ - Fixed CLI templates to include OpenAPIPlugin automatically when docs: true
377
+ - REST and Fullstack templates now properly initialize OpenAPI documentation
378
+
379
+ ## [0.1.4] - 2025-10-13
380
+
381
+ ### Fixed
382
+ - Fixed CLI templates to call `await app.compile()` before `app.listen()`
383
+ - This fixes the 404 error on all routes in generated projects
384
+
385
+ ## [0.1.3] - 2025-10-12
386
+
387
+ ### Fixed
388
+ - Fixed package.json main and exports paths to point to correct dist/*/src/ directories
389
+ - This fixes the "Cannot find package" error when importing veloce-ts
390
+
391
+ ## [0.1.2] - 2025-10-12
392
+
393
+ ### Fixed
394
+ - Fixed CLI templates to use correct package name `veloce-ts` instead of `VeloceTS`
395
+ - Fixed all import statements in generated projects
396
+
397
+ ## [0.1.1] - 2025-10-12
398
+
399
+ ### Fixed
400
+ - Fixed CLI binary path to use compiled dist files instead of source files
401
+
402
+ ## [0.1.0] - 2025-10-12
403
+
404
+ ### Added
405
+ - Initial release of veloce-ts framework
406
+ - Decorator-based routing with @Controller, @Get, @Post, @Put, @Delete, @Patch
407
+ - Functional API for decorator-free routing
408
+ - Automatic request validation with Zod schemas
409
+ - Dependency injection system with singleton, request, and transient scopes
410
+ - Automatic OpenAPI documentation generation
411
+ - Response handling with JSONResponse, HTMLResponse, FileResponse, StreamResponse, RedirectResponse
412
+ - Plugin system for extensibility
413
+ - WebSocket support with decorators
414
+ - GraphQL support with decorators
415
+ - CLI tool for project scaffolding and development
416
+ - Middleware system with CORS, rate limiting, and compression
417
+ - Error handling with custom exceptions
418
+ - Testing utilities with TestClient
419
+ - Multi-runtime support (Bun, Node.js, Deno, Cloudflare Workers)
420
+ - Adapter system for Express and Hono
421
+ - Type safety with full TypeScript support
422
+ - Performance optimizations with metadata compilation and schema caching
423
+
424
+ ## [0.1.0] - 2025-10-12
425
+
426
+ ### Added
427
+ - Initial development version
428
+ - Core framework architecture
429
+ - Basic routing and validation
430
+ - Documentation generation
431
+ - Plugin system
432
+ - WebSocket and GraphQL support
433
+ - CLI tooling
434
+ - Testing utilities
435
+
436
+ [Unreleased]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.2.2...HEAD
437
+ [0.2.2]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.2.1...v0.2.2
438
+ [0.2.1]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.2.0...v0.2.1
439
+ [0.2.0]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.7...v0.2.0
440
+ [0.1.7]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.6...v0.1.7
441
+ [0.1.6]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.5...v0.1.6
442
+ [0.1.5]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.4...v0.1.5
443
+ [0.1.4]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.3...v0.1.4
444
+ [0.1.3]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.2...v0.1.3
445
+ [0.1.2]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.1...v0.1.2
446
+ [0.1.1]: https://github.com/AlfredoMejia3001/veloce-ts/compare/v0.1.0...v0.1.1
447
+ [0.1.0]: https://github.com/AlfredoMejia3001/veloce-ts/releases/tag/v0.1.0