@engjts/nexus 0.1.8 → 0.1.9

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 (205) hide show
  1. package/package.json +1 -1
  2. package/BENCHMARK_REPORT.md +0 -343
  3. package/documentation/01-getting-started.md +0 -240
  4. package/documentation/02-context.md +0 -335
  5. package/documentation/03-routing.md +0 -397
  6. package/documentation/04-middleware.md +0 -483
  7. package/documentation/05-validation.md +0 -514
  8. package/documentation/06-error-handling.md +0 -465
  9. package/documentation/07-performance.md +0 -364
  10. package/documentation/08-adapters.md +0 -470
  11. package/documentation/09-api-reference.md +0 -548
  12. package/documentation/10-examples.md +0 -582
  13. package/documentation/11-deployment.md +0 -477
  14. package/documentation/12-sentry.md +0 -620
  15. package/documentation/13-sentry-data-storage.md +0 -996
  16. package/documentation/14-sentry-data-reference.md +0 -457
  17. package/documentation/15-sentry-summary.md +0 -409
  18. package/documentation/16-alerts-system.md +0 -745
  19. package/documentation/17-alert-adapters.md +0 -696
  20. package/documentation/18-alerts-implementation-summary.md +0 -385
  21. package/documentation/19-class-based-routing.md +0 -840
  22. package/documentation/20-websocket-realtime.md +0 -813
  23. package/documentation/21-cache-system.md +0 -510
  24. package/documentation/22-job-queue.md +0 -772
  25. package/documentation/23-sentry-plugin.md +0 -551
  26. package/documentation/24-testing-utilities.md +0 -1287
  27. package/documentation/25-api-versioning.md +0 -533
  28. package/documentation/26-context-store.md +0 -607
  29. package/documentation/27-dependency-injection.md +0 -329
  30. package/documentation/28-lifecycle-hooks.md +0 -521
  31. package/documentation/29-package-structure.md +0 -196
  32. package/documentation/30-plugin-system.md +0 -414
  33. package/documentation/31-jwt-authentication.md +0 -597
  34. package/documentation/32-cli.md +0 -268
  35. package/documentation/ALERTS-COMPLETE-SUMMARY.md +0 -429
  36. package/documentation/ALERTS-INDEX.md +0 -330
  37. package/documentation/ALERTS-QUICK-REFERENCE.md +0 -286
  38. package/documentation/README.md +0 -178
  39. package/documentation/index.html +0 -34
  40. package/modern_framework_paper.md +0 -1870
  41. package/public/css/style.css +0 -87
  42. package/public/index.html +0 -34
  43. package/public/js/app.js +0 -27
  44. package/src/advanced/cache/InMemoryCacheStore.ts +0 -68
  45. package/src/advanced/cache/MultiTierCache.ts +0 -194
  46. package/src/advanced/cache/RedisCacheStore.ts +0 -341
  47. package/src/advanced/cache/index.ts +0 -5
  48. package/src/advanced/cache/types.ts +0 -40
  49. package/src/advanced/graphql/SimpleDataLoader.ts +0 -42
  50. package/src/advanced/graphql/index.ts +0 -22
  51. package/src/advanced/graphql/server.ts +0 -252
  52. package/src/advanced/graphql/types.ts +0 -42
  53. package/src/advanced/jobs/InMemoryQueueStore.ts +0 -68
  54. package/src/advanced/jobs/JobQueue.ts +0 -556
  55. package/src/advanced/jobs/RedisQueueStore.ts +0 -367
  56. package/src/advanced/jobs/index.ts +0 -5
  57. package/src/advanced/jobs/types.ts +0 -70
  58. package/src/advanced/observability/APMManager.ts +0 -163
  59. package/src/advanced/observability/AlertManager.ts +0 -109
  60. package/src/advanced/observability/MetricRegistry.ts +0 -151
  61. package/src/advanced/observability/ObservabilityCenter.ts +0 -304
  62. package/src/advanced/observability/StructuredLogger.ts +0 -154
  63. package/src/advanced/observability/TracingManager.ts +0 -117
  64. package/src/advanced/observability/adapters.ts +0 -304
  65. package/src/advanced/observability/createObservabilityMiddleware.ts +0 -63
  66. package/src/advanced/observability/index.ts +0 -11
  67. package/src/advanced/observability/types.ts +0 -174
  68. package/src/advanced/playground/extractPathParams.ts +0 -6
  69. package/src/advanced/playground/generateFieldExample.ts +0 -31
  70. package/src/advanced/playground/generatePlaygroundHTML.ts +0 -1956
  71. package/src/advanced/playground/generateSummary.ts +0 -19
  72. package/src/advanced/playground/getTagFromPath.ts +0 -9
  73. package/src/advanced/playground/index.ts +0 -8
  74. package/src/advanced/playground/playground.ts +0 -250
  75. package/src/advanced/playground/types.ts +0 -49
  76. package/src/advanced/playground/zodToExample.ts +0 -16
  77. package/src/advanced/playground/zodToParams.ts +0 -15
  78. package/src/advanced/postman/buildAuth.ts +0 -31
  79. package/src/advanced/postman/buildBody.ts +0 -15
  80. package/src/advanced/postman/buildQueryParams.ts +0 -27
  81. package/src/advanced/postman/buildRequestItem.ts +0 -36
  82. package/src/advanced/postman/buildResponses.ts +0 -11
  83. package/src/advanced/postman/buildUrl.ts +0 -33
  84. package/src/advanced/postman/capitalize.ts +0 -4
  85. package/src/advanced/postman/generateCollection.ts +0 -59
  86. package/src/advanced/postman/generateEnvironment.ts +0 -34
  87. package/src/advanced/postman/generateExampleFromZod.ts +0 -21
  88. package/src/advanced/postman/generateFieldExample.ts +0 -45
  89. package/src/advanced/postman/generateName.ts +0 -20
  90. package/src/advanced/postman/generateUUID.ts +0 -11
  91. package/src/advanced/postman/getTagFromPath.ts +0 -10
  92. package/src/advanced/postman/index.ts +0 -28
  93. package/src/advanced/postman/postman.ts +0 -156
  94. package/src/advanced/postman/slugify.ts +0 -7
  95. package/src/advanced/postman/types.ts +0 -140
  96. package/src/advanced/realtime/index.ts +0 -18
  97. package/src/advanced/realtime/websocket.ts +0 -231
  98. package/src/advanced/sentry/index.ts +0 -1236
  99. package/src/advanced/sentry/types.ts +0 -355
  100. package/src/advanced/static/generateDirectoryListing.ts +0 -47
  101. package/src/advanced/static/generateETag.ts +0 -7
  102. package/src/advanced/static/getMimeType.ts +0 -9
  103. package/src/advanced/static/index.ts +0 -32
  104. package/src/advanced/static/isSafePath.ts +0 -13
  105. package/src/advanced/static/publicDir.ts +0 -21
  106. package/src/advanced/static/serveStatic.ts +0 -225
  107. package/src/advanced/static/spa.ts +0 -24
  108. package/src/advanced/static/types.ts +0 -159
  109. package/src/advanced/swagger/SwaggerGenerator.ts +0 -66
  110. package/src/advanced/swagger/buildOperation.ts +0 -61
  111. package/src/advanced/swagger/buildParameters.ts +0 -61
  112. package/src/advanced/swagger/buildRequestBody.ts +0 -21
  113. package/src/advanced/swagger/buildResponses.ts +0 -54
  114. package/src/advanced/swagger/capitalize.ts +0 -5
  115. package/src/advanced/swagger/convertPath.ts +0 -9
  116. package/src/advanced/swagger/createSwagger.ts +0 -12
  117. package/src/advanced/swagger/generateOperationId.ts +0 -21
  118. package/src/advanced/swagger/generateSpec.ts +0 -105
  119. package/src/advanced/swagger/generateSummary.ts +0 -24
  120. package/src/advanced/swagger/generateSwaggerUI.ts +0 -70
  121. package/src/advanced/swagger/generateThemeCss.ts +0 -53
  122. package/src/advanced/swagger/index.ts +0 -25
  123. package/src/advanced/swagger/swagger.ts +0 -237
  124. package/src/advanced/swagger/types.ts +0 -206
  125. package/src/advanced/swagger/zodFieldToOpenAPI.ts +0 -94
  126. package/src/advanced/swagger/zodSchemaToOpenAPI.ts +0 -50
  127. package/src/advanced/swagger/zodToOpenAPI.ts +0 -22
  128. package/src/advanced/testing/factory.ts +0 -509
  129. package/src/advanced/testing/harness.ts +0 -612
  130. package/src/advanced/testing/index.ts +0 -430
  131. package/src/advanced/testing/load-test.ts +0 -618
  132. package/src/advanced/testing/mock-server.ts +0 -498
  133. package/src/advanced/testing/mock.ts +0 -670
  134. package/src/cli/bin.ts +0 -9
  135. package/src/cli/cli.ts +0 -158
  136. package/src/cli/commands/add.ts +0 -178
  137. package/src/cli/commands/build.ts +0 -73
  138. package/src/cli/commands/create.ts +0 -166
  139. package/src/cli/commands/dev.ts +0 -85
  140. package/src/cli/commands/generate.ts +0 -99
  141. package/src/cli/commands/help.ts +0 -95
  142. package/src/cli/commands/init.ts +0 -91
  143. package/src/cli/commands/version.ts +0 -38
  144. package/src/cli/index.ts +0 -6
  145. package/src/cli/templates/generators.ts +0 -359
  146. package/src/cli/templates/index.ts +0 -680
  147. package/src/cli/utils/exec.ts +0 -52
  148. package/src/cli/utils/file-system.ts +0 -78
  149. package/src/cli/utils/logger.ts +0 -111
  150. package/src/core/adapter.ts +0 -88
  151. package/src/core/application.ts +0 -1453
  152. package/src/core/context-pool.ts +0 -79
  153. package/src/core/context.ts +0 -856
  154. package/src/core/index.ts +0 -94
  155. package/src/core/middleware.ts +0 -272
  156. package/src/core/performance/buffer-pool.ts +0 -108
  157. package/src/core/performance/middleware-optimizer.ts +0 -162
  158. package/src/core/plugin/PluginManager.ts +0 -435
  159. package/src/core/plugin/builder.ts +0 -358
  160. package/src/core/plugin/index.ts +0 -50
  161. package/src/core/plugin/types.ts +0 -214
  162. package/src/core/router/file-router.ts +0 -623
  163. package/src/core/router/index.ts +0 -260
  164. package/src/core/router/radix-tree.ts +0 -242
  165. package/src/core/serializer.ts +0 -397
  166. package/src/core/store/index.ts +0 -30
  167. package/src/core/store/registry.ts +0 -178
  168. package/src/core/store/request-store.ts +0 -240
  169. package/src/core/store/types.ts +0 -233
  170. package/src/core/types.ts +0 -616
  171. package/src/database/adapter.ts +0 -35
  172. package/src/database/adapters/index.ts +0 -1
  173. package/src/database/adapters/mysql.ts +0 -669
  174. package/src/database/database.ts +0 -70
  175. package/src/database/dialect.ts +0 -388
  176. package/src/database/index.ts +0 -12
  177. package/src/database/migrations.ts +0 -86
  178. package/src/database/optimizer.ts +0 -125
  179. package/src/database/query-builder.ts +0 -404
  180. package/src/database/realtime.ts +0 -53
  181. package/src/database/schema.ts +0 -71
  182. package/src/database/transactions.ts +0 -56
  183. package/src/database/types.ts +0 -87
  184. package/src/deployment/cluster.ts +0 -471
  185. package/src/deployment/config.ts +0 -454
  186. package/src/deployment/docker.ts +0 -599
  187. package/src/deployment/graceful-shutdown.ts +0 -373
  188. package/src/deployment/index.ts +0 -56
  189. package/src/index.ts +0 -281
  190. package/src/security/adapter.ts +0 -318
  191. package/src/security/auth/JWTPlugin.ts +0 -234
  192. package/src/security/auth/JWTProvider.ts +0 -316
  193. package/src/security/auth/adapter.ts +0 -12
  194. package/src/security/auth/jwt.ts +0 -234
  195. package/src/security/auth/middleware.ts +0 -188
  196. package/src/security/csrf.ts +0 -220
  197. package/src/security/headers.ts +0 -108
  198. package/src/security/index.ts +0 -60
  199. package/src/security/rate-limit/adapter.ts +0 -7
  200. package/src/security/rate-limit/memory.ts +0 -108
  201. package/src/security/rate-limit/middleware.ts +0 -181
  202. package/src/security/sanitization.ts +0 -75
  203. package/src/security/types.ts +0 -240
  204. package/src/security/utils.ts +0 -52
  205. package/tsconfig.json +0 -39
@@ -1,373 +0,0 @@
1
- /**
2
- * Graceful Shutdown Manager
3
- * Handles zero-downtime deployment with proper connection draining
4
- */
5
-
6
- import { Server } from 'http';
7
- import { EventEmitter } from 'events';
8
-
9
- export interface ShutdownHook {
10
- name: string;
11
- handler: () => Promise<void>;
12
- timeout?: number;
13
- priority?: number; // Higher priority runs first
14
- }
15
-
16
- export interface GracefulShutdownOptions {
17
- /**
18
- * Maximum time to wait for ongoing requests to complete (ms)
19
- * @default 30000
20
- */
21
- timeout?: number;
22
-
23
- /**
24
- * Whether to stop accepting new connections immediately
25
- * @default true
26
- */
27
- stopAcceptingConnections?: boolean;
28
-
29
- /**
30
- * Signals to listen for shutdown
31
- * @default ['SIGTERM', 'SIGINT']
32
- */
33
- signals?: NodeJS.Signals[];
34
-
35
- /**
36
- * Custom health check during shutdown
37
- */
38
- healthCheck?: () => Promise<{ status: 'healthy' | 'unhealthy' | 'draining'; details?: Record<string, any> }>;
39
-
40
- /**
41
- * Hooks to run during shutdown (closing DB connections, etc.)
42
- */
43
- hooks?: ShutdownHook[];
44
-
45
- /**
46
- * Callback when shutdown is initiated
47
- */
48
- onShutdownStart?: () => void | Promise<void>;
49
-
50
- /**
51
- * Callback when shutdown is complete
52
- */
53
- onShutdownComplete?: () => void | Promise<void>;
54
-
55
- /**
56
- * Enable verbose logging
57
- * @default false
58
- */
59
- verbose?: boolean;
60
- }
61
-
62
- export interface ActiveConnection {
63
- id: string;
64
- startTime: number;
65
- path?: string;
66
- method?: string;
67
- }
68
-
69
- /**
70
- * Graceful Shutdown Manager
71
- * Ensures zero-downtime deployments by:
72
- * 1. Stopping new connections
73
- * 2. Waiting for ongoing requests to complete
74
- * 3. Running cleanup hooks in order
75
- * 4. Closing the server gracefully
76
- */
77
- export class GracefulShutdownManager extends EventEmitter {
78
- private server?: Server;
79
- private options: Required<GracefulShutdownOptions>;
80
- private isShuttingDown: boolean = false;
81
- private activeConnections: Map<string, ActiveConnection> = new Map();
82
- private hooks: ShutdownHook[] = [];
83
- private connectionCounter: number = 0;
84
- private shutdownPromise?: Promise<void>;
85
-
86
- constructor(options: GracefulShutdownOptions = {}) {
87
- super();
88
- this.options = {
89
- timeout: options.timeout ?? 30000,
90
- stopAcceptingConnections: options.stopAcceptingConnections ?? true,
91
- signals: options.signals ?? ['SIGTERM', 'SIGINT'],
92
- healthCheck: options.healthCheck ?? (async () => ({ status: 'healthy' as const })),
93
- hooks: options.hooks ?? [],
94
- onShutdownStart: options.onShutdownStart ?? (() => {}),
95
- onShutdownComplete: options.onShutdownComplete ?? (() => {}),
96
- verbose: options.verbose ?? false
97
- };
98
-
99
- this.hooks = [...this.options.hooks].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
100
- }
101
-
102
- /**
103
- * Attach to an HTTP server
104
- */
105
- attach(server: Server): this {
106
- this.server = server;
107
-
108
- // Register signal handlers
109
- for (const signal of this.options.signals) {
110
- process.on(signal, () => {
111
- this.log(`Received ${signal}, initiating graceful shutdown...`);
112
- this.shutdown();
113
- });
114
- }
115
-
116
- // Track connections
117
- server.on('connection', (socket) => {
118
- const connectionId = `conn_${++this.connectionCounter}`;
119
- (socket as any).__connectionId = connectionId;
120
-
121
- socket.on('close', () => {
122
- this.activeConnections.delete(connectionId);
123
- });
124
- });
125
-
126
- return this;
127
- }
128
-
129
- /**
130
- * Register a connection as active (called when request starts)
131
- */
132
- trackRequest(_connectionId: string, info: { path?: string; method?: string }): string {
133
- const requestId = `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
134
- this.activeConnections.set(requestId, {
135
- id: requestId,
136
- startTime: Date.now(),
137
- path: info.path,
138
- method: info.method
139
- });
140
- return requestId;
141
- }
142
-
143
- /**
144
- * Mark a request as complete
145
- */
146
- untrackRequest(requestId: string): void {
147
- this.activeConnections.delete(requestId);
148
- }
149
-
150
- /**
151
- * Add a shutdown hook
152
- */
153
- addHook(hook: ShutdownHook): this {
154
- this.hooks.push(hook);
155
- this.hooks.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
156
- return this;
157
- }
158
-
159
- /**
160
- * Check if shutdown is in progress
161
- */
162
- isInShutdown(): boolean {
163
- return this.isShuttingDown;
164
- }
165
-
166
- /**
167
- * Get the current health status
168
- */
169
- async getHealthStatus(): Promise<{ status: 'healthy' | 'unhealthy' | 'draining'; details?: Record<string, any> }> {
170
- if (this.isShuttingDown) {
171
- return {
172
- status: 'draining',
173
- details: {
174
- activeConnections: this.activeConnections.size,
175
- shutdownInProgress: true
176
- }
177
- };
178
- }
179
- return this.options.healthCheck();
180
- }
181
-
182
- /**
183
- * Get active connections count
184
- */
185
- getActiveConnectionsCount(): number {
186
- return this.activeConnections.size;
187
- }
188
-
189
- /**
190
- * Get active connections details
191
- */
192
- getActiveConnections(): ActiveConnection[] {
193
- return Array.from(this.activeConnections.values());
194
- }
195
-
196
- /**
197
- * Initiate graceful shutdown
198
- */
199
- async shutdown(): Promise<void> {
200
- if (this.shutdownPromise) {
201
- return this.shutdownPromise;
202
- }
203
-
204
- this.isShuttingDown = true;
205
- this.emit('shutdown:start');
206
-
207
- this.shutdownPromise = this.performShutdown();
208
- return this.shutdownPromise;
209
- }
210
-
211
- private async performShutdown(): Promise<void> {
212
- const startTime = Date.now();
213
-
214
- try {
215
- // Notify shutdown start
216
- await this.options.onShutdownStart();
217
- this.log('Shutdown initiated');
218
-
219
- // Stop accepting new connections
220
- if (this.server && this.options.stopAcceptingConnections) {
221
- await this.stopAcceptingConnections();
222
- }
223
-
224
- // Wait for active connections to drain
225
- await this.drainConnections();
226
-
227
- // Run shutdown hooks
228
- await this.runHooks();
229
-
230
- // Close server
231
- if (this.server) {
232
- await this.closeServer();
233
- }
234
-
235
- const duration = Date.now() - startTime;
236
- this.log(`Shutdown completed in ${duration}ms`);
237
-
238
- await this.options.onShutdownComplete();
239
- this.emit('shutdown:complete', { duration });
240
-
241
- } catch (error) {
242
- this.log(`Shutdown error: ${error}`);
243
- this.emit('shutdown:error', error);
244
- throw error;
245
- } finally {
246
- // Force exit if still running after timeout
247
- setTimeout(() => {
248
- this.log('Forcing exit after timeout');
249
- process.exit(1);
250
- }, 5000).unref();
251
-
252
- process.exit(0);
253
- }
254
- }
255
-
256
- private async stopAcceptingConnections(): Promise<void> {
257
- return new Promise((resolve) => {
258
- if (!this.server) {
259
- resolve();
260
- return;
261
- }
262
-
263
- this.server.on('request', (_req, res) => {
264
- // Return 503 for new requests during shutdown
265
- res.writeHead(503, {
266
- 'Content-Type': 'application/json',
267
- 'Connection': 'close',
268
- 'Retry-After': '30'
269
- });
270
- res.end(JSON.stringify({
271
- error: 'Service Unavailable',
272
- message: 'Server is shutting down',
273
- retryAfter: 30
274
- }));
275
- });
276
-
277
- this.log('Stopped accepting new connections');
278
- resolve();
279
- });
280
- }
281
-
282
- private async drainConnections(): Promise<void> {
283
- const startTime = Date.now();
284
- const checkInterval = 100; // Check every 100ms
285
-
286
- this.log(`Waiting for ${this.activeConnections.size} active connections to drain...`);
287
-
288
- return new Promise((resolve) => {
289
- const check = () => {
290
- const elapsed = Date.now() - startTime;
291
-
292
- if (this.activeConnections.size === 0) {
293
- this.log('All connections drained');
294
- resolve();
295
- return;
296
- }
297
-
298
- if (elapsed >= this.options.timeout) {
299
- this.log(`Timeout reached with ${this.activeConnections.size} connections still active`);
300
- // Log remaining connections
301
- for (const conn of this.activeConnections.values()) {
302
- this.log(` - ${conn.method} ${conn.path} (started ${Date.now() - conn.startTime}ms ago)`);
303
- }
304
- resolve();
305
- return;
306
- }
307
-
308
- setTimeout(check, checkInterval);
309
- };
310
-
311
- check();
312
- });
313
- }
314
-
315
- private async runHooks(): Promise<void> {
316
- this.log(`Running ${this.hooks.length} shutdown hooks...`);
317
-
318
- for (const hook of this.hooks) {
319
- const hookTimeout = hook.timeout ?? 10000;
320
- const startTime = Date.now();
321
-
322
- try {
323
- this.log(`Running hook: ${hook.name}`);
324
-
325
- await Promise.race([
326
- hook.handler(),
327
- new Promise((_, reject) =>
328
- setTimeout(() => reject(new Error(`Hook timeout: ${hook.name}`)), hookTimeout)
329
- )
330
- ]);
331
-
332
- const duration = Date.now() - startTime;
333
- this.log(`Hook completed: ${hook.name} (${duration}ms)`);
334
-
335
- } catch (error: any) {
336
- this.log(`Hook failed: ${hook.name} - ${error.message}`);
337
- this.emit('hook:error', { hook: hook.name, error });
338
- }
339
- }
340
- }
341
-
342
- private async closeServer(): Promise<void> {
343
- return new Promise((resolve, reject) => {
344
- if (!this.server) {
345
- resolve();
346
- return;
347
- }
348
-
349
- this.server.close((err) => {
350
- if (err) {
351
- this.log(`Error closing server: ${err.message}`);
352
- reject(err);
353
- } else {
354
- this.log('Server closed');
355
- resolve();
356
- }
357
- });
358
- });
359
- }
360
-
361
- private log(message: string): void {
362
- if (this.options.verbose) {
363
- console.log(`[GracefulShutdown] ${message}`);
364
- }
365
- }
366
- }
367
-
368
- /**
369
- * Create a graceful shutdown manager
370
- */
371
- export function createGracefulShutdown(options?: GracefulShutdownOptions): GracefulShutdownManager {
372
- return new GracefulShutdownManager(options);
373
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * Deployment Module
3
- *
4
- * Provides production-ready deployment features:
5
- * - Graceful shutdown with connection draining
6
- * - Multi-process clustering
7
- * - Environment-based configuration
8
- * - Docker support
9
- */
10
-
11
- // Graceful Shutdown
12
- export {
13
- GracefulShutdownManager,
14
- createGracefulShutdown,
15
- type GracefulShutdownOptions,
16
- type ShutdownHook,
17
- type ActiveConnection
18
- } from './graceful-shutdown';
19
-
20
- // Clustering
21
- export {
22
- ClusterManager,
23
- createCluster,
24
- runClustered,
25
- type ClusterOptions,
26
- type WorkerInfo,
27
- type ClusterStats
28
- } from './cluster';
29
-
30
- // Configuration
31
- export {
32
- ConfigManager,
33
- defineConfig,
34
- env,
35
- requireEnv,
36
- type Environment,
37
- type ConfigDefinition,
38
- type ConfigOptions,
39
- type BaseConfig,
40
- type ServerConfig,
41
- type DatabaseConfig,
42
- type LoggingConfig,
43
- type SecurityConfig,
44
- type CacheConfig,
45
- type SessionConfig
46
- } from './config';
47
-
48
- // Docker
49
- export {
50
- DockerGenerator,
51
- createDocker,
52
- generateDockerFiles,
53
- type DockerOptions,
54
- type ComposeService,
55
- type ComposeConfig
56
- } from './docker';
package/src/index.ts DELETED
@@ -1,281 +0,0 @@
1
- /**
2
- * Nexus Framework - Modern async-first web framework
3
- *
4
- * Main entry point - exports all public APIs
5
- */
6
-
7
- // =============================================================================
8
- // CORE
9
- // =============================================================================
10
-
11
- // Application
12
- export { Application, Application as Nexus, createApp } from './core/application';
13
-
14
- // Core types
15
- export * from './core/types';
16
-
17
- // Router
18
- export { Router } from './core/router';
19
-
20
- // File-Based Router (Next.js style)
21
- export { FileRouter, createFileRouter, useFileRoutes } from './core/router/file-router';
22
- export type { FileRouterOptions, FileRouteClass, RouteModule } from './core/router/file-router';
23
-
24
- // Middleware
25
- export {
26
- MiddlewareExecutor,
27
- logger,
28
- cors,
29
- errorHandler
30
- } from './core/middleware';
31
-
32
- // Context
33
- export { ContextImpl, parseBody } from './core/context';
34
- export { ContextPool } from './core/context-pool';
35
-
36
- // =============================================================================
37
- // STATE MANAGEMENT
38
- // =============================================================================
39
-
40
- // ContextStore - Global singleton stores
41
- // RequestStore - Per-request scoped stores
42
- export {
43
- ContextStore,
44
- RequestStore,
45
- StoreRegistry,
46
- RequestStoreRegistry,
47
- createStoreRegistry,
48
- type StoreListener,
49
- type DisposeCallback,
50
- type StoreConstructor,
51
- type StateOf,
52
- type StoreOptions,
53
- type RequestStoreConstructor,
54
- type RequestStateOf
55
- } from './core/store';
56
-
57
- // =============================================================================
58
- // PLUGIN SYSTEM
59
- // =============================================================================
60
-
61
- export {
62
- PluginManager,
63
- PluginBuilder,
64
- definePlugin,
65
- createPlugin,
66
- type NexusPlugin,
67
- type SimplePlugin,
68
- type PluginFactory,
69
- type PluginMeta,
70
- type PluginContext,
71
- type PluginLogger,
72
- type PluginPhase,
73
- type PluginPriority,
74
- type PluginRouteExtension,
75
- type RegisteredPlugin
76
- } from './core/plugin';
77
-
78
- // =============================================================================
79
- // ADAPTERS
80
- // =============================================================================
81
-
82
- export {
83
- AdapterRegistry,
84
- type LoggerAdapter,
85
- type CacheAdapter,
86
- type SessionAdapter
87
- } from './core/adapter';
88
-
89
- // =============================================================================
90
- // PERFORMANCE
91
- // =============================================================================
92
-
93
- export { BufferPool, StreamUtils } from './core/performance/buffer-pool';
94
- export { MiddlewareOptimizer, PerformanceMonitor } from './core/performance/middleware-optimizer';
95
-
96
- // =============================================================================
97
- // FAST JSON SERIALIZER
98
- // =============================================================================
99
-
100
- export {
101
- createSerializer,
102
- createArraySerializer,
103
- serialize,
104
- serializerRegistry,
105
- SerializerRegistry,
106
- CommonSchemas,
107
- type JSONSchema,
108
- type ResponseSchemaConfig,
109
- type SerializerFunction,
110
- type SerializerOptions
111
- } from './core/serializer';
112
-
113
- // =============================================================================
114
- // SECURITY
115
- // =============================================================================
116
-
117
- export * from './security';
118
-
119
- // =============================================================================
120
- // DATABASE
121
- // =============================================================================
122
-
123
- export * from './database';
124
-
125
- // =============================================================================
126
- // OBSERVABILITY & MONITORING
127
- // =============================================================================
128
-
129
- export { ObservabilityCenter } from './advanced/observability/ObservabilityCenter';
130
- export { createObservabilityMiddleware } from './advanced/observability/createObservabilityMiddleware';
131
- export type { ObservabilityOptions } from './advanced/observability/types';
132
-
133
- // Sentry Integration
134
- export {
135
- SentryClient,
136
- initSentry,
137
- getSentry,
138
- createSentryMiddleware,
139
- createSentryErrorHandler,
140
- captureException,
141
- captureMessage,
142
- addBreadcrumb,
143
- setUser,
144
- setTag,
145
- setExtra,
146
- withSpan,
147
- } from './advanced/sentry';
148
-
149
- export type {
150
- SentryOptions,
151
- SentryUser,
152
- SentryBreadcrumb,
153
- SentryEvent,
154
- SentryTransaction,
155
- SentrySpan,
156
- SentryMiddlewareOptions,
157
- SeverityLevel,
158
- } from './advanced/sentry/types';
159
-
160
- // =============================================================================
161
- // DEPLOYMENT & PRODUCTION
162
- // =============================================================================
163
-
164
- export {
165
- // Graceful Shutdown
166
- GracefulShutdownManager,
167
- createGracefulShutdown,
168
- type GracefulShutdownOptions,
169
- type ShutdownHook,
170
- type ActiveConnection,
171
-
172
- // Clustering
173
- ClusterManager,
174
- createCluster,
175
- runClustered,
176
- type ClusterOptions,
177
- type WorkerInfo,
178
- type ClusterStats,
179
-
180
- // Configuration
181
- ConfigManager,
182
- defineConfig,
183
- env,
184
- requireEnv,
185
- type Environment,
186
- type ConfigDefinition,
187
- type ConfigOptions,
188
- type BaseConfig,
189
- type ServerConfig,
190
- type DatabaseConfig,
191
- type LoggingConfig,
192
- type SecurityConfig,
193
- type CacheConfig,
194
- type SessionConfig,
195
-
196
- // Docker
197
- DockerGenerator,
198
- createDocker,
199
- generateDockerFiles,
200
- type DockerOptions,
201
- type ComposeService,
202
- type ComposeConfig
203
- } from './deployment';
204
-
205
- // =============================================================================
206
- // API DOCUMENTATION & TESTING
207
- // =============================================================================
208
-
209
- // Swagger
210
- export { swagger } from './advanced/swagger/swagger';
211
- export { SwaggerGenerator } from './advanced/swagger/SwaggerGenerator';
212
- export { createSwagger } from './advanced/swagger/createSwagger';
213
-
214
- export type {
215
- SwaggerConfig,
216
- SwaggerInfo,
217
- SwaggerTheme,
218
- SecurityScheme,
219
- OpenAPISpec,
220
- OpenAPISchema,
221
- OpenAPIOperation,
222
- OpenAPIParameter,
223
- OpenAPIRequestBody,
224
- OpenAPIResponse
225
- } from './advanced/swagger/types';
226
-
227
- // Postman
228
- export type {
229
- PostmanConfig,
230
- PostmanAuth,
231
- PostmanCollection,
232
- PostmanEnvironment
233
- } from './advanced/postman/types';
234
- export { postman } from './advanced/postman/postman';
235
-
236
- // API Playground
237
- export {
238
- playground,
239
- type PlaygroundConfig
240
- } from './advanced/playground';
241
-
242
- // Testing Utilities
243
- export { TestClient } from './advanced/testing/harness';
244
-
245
- // =============================================================================
246
- // ADVANCED FEATURES
247
- // =============================================================================
248
-
249
- // Static File Serving
250
- export { staticFiles } from './advanced/static';
251
-
252
- // WebSocket / Realtime
253
- export {
254
- WebSocketGateway,
255
- type WebSocketContext,
256
- type WebSocketRoute,
257
- type WebSocketRouteConfig
258
- } from './advanced/realtime/websocket';
259
-
260
- // Cache System
261
- export {
262
- MultiTierCache,
263
- InMemoryCacheStore,
264
- RedisCacheStore,
265
- createRedisCache,
266
- type CacheStore,
267
- type CacheEntry,
268
- type CacheSetOptions,
269
- type CacheTierConfig,
270
- type CacheWrapOptions,
271
- type MemoizeOptions,
272
- type RedisCacheConfig,
273
- type RedisClientLike
274
- } from './advanced/cache';
275
-
276
- // =============================================================================
277
- // UTILITIES
278
- // =============================================================================
279
-
280
- // Re-export Zod for convenience
281
- export { z } from 'zod';