@noxfly/noxus 3.0.0-dev.1 → 3.0.0-dev.11

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 (57) hide show
  1. package/README.md +121 -8
  2. package/dist/child.d.mts +8 -2
  3. package/dist/child.d.ts +8 -2
  4. package/dist/child.js +405 -862
  5. package/dist/child.js.map +1 -0
  6. package/dist/child.mjs +396 -854
  7. package/dist/child.mjs.map +1 -0
  8. package/dist/main.d.mts +180 -132
  9. package/dist/main.d.ts +180 -132
  10. package/dist/main.js +1087 -926
  11. package/dist/main.js.map +1 -0
  12. package/dist/main.mjs +1038 -877
  13. package/dist/main.mjs.map +1 -0
  14. package/dist/preload.js.map +1 -0
  15. package/dist/preload.mjs.map +1 -0
  16. package/dist/renderer.d.mts +30 -4
  17. package/dist/renderer.d.ts +30 -4
  18. package/dist/renderer.js +191 -128
  19. package/dist/renderer.js.map +1 -0
  20. package/dist/renderer.mjs +180 -116
  21. package/dist/renderer.mjs.map +1 -0
  22. package/package.json +18 -9
  23. package/.editorconfig +0 -16
  24. package/.github/copilot-instructions.md +0 -32
  25. package/.vscode/settings.json +0 -3
  26. package/eslint.config.js +0 -109
  27. package/scripts/postbuild.js +0 -31
  28. package/src/DI/app-injector.ts +0 -151
  29. package/src/DI/injector-explorer.ts +0 -143
  30. package/src/DI/token.ts +0 -53
  31. package/src/decorators/controller.decorator.ts +0 -58
  32. package/src/decorators/guards.decorator.ts +0 -15
  33. package/src/decorators/injectable.decorator.ts +0 -81
  34. package/src/decorators/method.decorator.ts +0 -66
  35. package/src/decorators/middleware.decorator.ts +0 -15
  36. package/src/index.ts +0 -10
  37. package/src/internal/app.ts +0 -217
  38. package/src/internal/bootstrap.ts +0 -108
  39. package/src/internal/exceptions.ts +0 -57
  40. package/src/internal/preload-bridge.ts +0 -75
  41. package/src/internal/renderer-client.ts +0 -338
  42. package/src/internal/renderer-events.ts +0 -110
  43. package/src/internal/request.ts +0 -97
  44. package/src/internal/router.ts +0 -353
  45. package/src/internal/routes.ts +0 -78
  46. package/src/internal/socket.ts +0 -73
  47. package/src/main.ts +0 -26
  48. package/src/non-electron-process.ts +0 -22
  49. package/src/preload.ts +0 -10
  50. package/src/renderer.ts +0 -13
  51. package/src/utils/forward-ref.ts +0 -31
  52. package/src/utils/logger.ts +0 -430
  53. package/src/utils/radix-tree.ts +0 -210
  54. package/src/utils/types.ts +0 -21
  55. package/src/window/window-manager.ts +0 -255
  56. package/tsconfig.json +0 -29
  57. package/tsup.config.ts +0 -50
package/dist/main.d.ts CHANGED
@@ -119,6 +119,12 @@ declare class AppInjector {
119
119
  * The global root injector. All singletons live here.
120
120
  */
121
121
  declare const RootInjector: AppInjector;
122
+ /**
123
+ * Resets the root injector to a clean state.
124
+ * **Intended for testing only** — clears all bindings, singletons, and scoped instances
125
+ * so that each test can start from a fresh DI container without restarting the process.
126
+ */
127
+ declare function resetRootInjector(): void;
122
128
  /**
123
129
  * Convenience function: resolve a token from the root injector.
124
130
  */
@@ -154,11 +160,11 @@ interface IRouteMetadata {
154
160
  middlewares: Middleware[];
155
161
  }
156
162
  declare function getRouteMetadata(target: object): IRouteMetadata[];
157
- declare const Get: (path: string, options?: IRouteOptions) => MethodDecorator;
158
- declare const Post: (path: string, options?: IRouteOptions) => MethodDecorator;
159
- declare const Put: (path: string, options?: IRouteOptions) => MethodDecorator;
160
- declare const Patch: (path: string, options?: IRouteOptions) => MethodDecorator;
161
- declare const Delete: (path: string, options?: IRouteOptions) => MethodDecorator;
163
+ declare const Get: (path: string, options?: IRouteOptions) => (value: Function, context: ClassMethodDecoratorContext) => void;
164
+ declare const Post: (path: string, options?: IRouteOptions) => (value: Function, context: ClassMethodDecoratorContext) => void;
165
+ declare const Put: (path: string, options?: IRouteOptions) => (value: Function, context: ClassMethodDecoratorContext) => void;
166
+ declare const Patch: (path: string, options?: IRouteOptions) => (value: Function, context: ClassMethodDecoratorContext) => void;
167
+ declare const Delete: (path: string, options?: IRouteOptions) => (value: Function, context: ClassMethodDecoratorContext) => void;
162
168
 
163
169
 
164
170
  /**
@@ -172,10 +178,11 @@ declare class Request {
172
178
  readonly id: string;
173
179
  readonly method: HttpMethod;
174
180
  readonly path: string;
175
- readonly body: any;
181
+ readonly body: unknown;
176
182
  readonly context: AppInjector;
177
183
  readonly params: Record<string, string>;
178
- constructor(event: Electron.MessageEvent, senderId: number, id: string, method: HttpMethod, path: string, body: any);
184
+ readonly query: Record<string, unknown>;
185
+ constructor(event: Electron.MessageEvent, senderId: number, id: string, method: HttpMethod, path: string, body: unknown, query?: Record<string, unknown>);
179
186
  }
180
187
  /**
181
188
  * The IRequest interface defines the structure of a request object.
@@ -188,12 +195,14 @@ interface IRequest<TBody = unknown> {
188
195
  path: string;
189
196
  method: HttpMethod;
190
197
  body?: TBody;
198
+ query?: Record<string, unknown>;
191
199
  }
192
200
  interface IBatchRequestItem<TBody = unknown> {
193
201
  requestId?: string;
194
202
  path: string;
195
203
  method: AtomicHttpMethod;
196
204
  body?: TBody;
205
+ query?: Record<string, unknown>;
197
206
  }
198
207
  interface IBatchRequestPayload {
199
208
  requests: IBatchRequestItem[];
@@ -249,9 +258,18 @@ declare class Router {
249
258
  private readonly routes;
250
259
  private readonly rootMiddlewares;
251
260
  private readonly lazyRoutes;
261
+ private lazyLoadLock;
252
262
  registerController(controllerClass: Type<unknown>, pathPrefix: string, routeGuards?: Guard[], routeMiddlewares?: Middleware[]): this;
253
263
  registerLazyRoute(pathPrefix: string, load: () => Promise<unknown>, guards?: Guard[], middlewares?: Middleware[]): this;
254
264
  defineRootMiddleware(middleware: Middleware): this;
265
+ getRegisteredRoutes(): Array<{
266
+ method: string;
267
+ path: string;
268
+ }>;
269
+ getLazyRoutes(): Array<{
270
+ prefix: string;
271
+ loaded: boolean;
272
+ }>;
255
273
  handle(request: Request): Promise<IResponse>;
256
274
  private handleAtomic;
257
275
  private handleBatch;
@@ -290,6 +308,11 @@ interface WindowRecord {
290
308
  window: BrowserWindow;
291
309
  id: number;
292
310
  }
311
+ /**
312
+ * @description
313
+ * The events emitted by WindowManager when windows are created, closed, focused, or blurred.
314
+ */
315
+ type WindowEvent = 'created' | 'closed' | 'focused' | 'blurred';
293
316
  /**
294
317
  * WindowManager is a singleton service that centralizes BrowserWindow lifecycle.
295
318
  *
@@ -314,6 +337,7 @@ interface WindowRecord {
314
337
  */
315
338
  declare class WindowManager {
316
339
  private readonly _windows;
340
+ private readonly listeners;
317
341
  private _mainWindowId;
318
342
  /**
319
343
  * Creates a BrowserWindow, optionally performs an animated expand to the
@@ -347,6 +371,7 @@ declare class WindowManager {
347
371
  */
348
372
  createSplash(options?: Electron.BrowserWindowConstructorOptions & {
349
373
  animationDuration?: number;
374
+ expandToWorkArea?: boolean;
350
375
  }): Promise<BrowserWindow>;
351
376
  /** Returns all currently open windows. */
352
377
  getAll(): BrowserWindow[];
@@ -371,6 +396,8 @@ declare class WindowManager {
371
396
  * Broadcasts a message to all open windows.
372
397
  */
373
398
  broadcast(channel: string, ...args: unknown[]): void;
399
+ on(event: WindowEvent, handler: (win: BrowserWindow) => void): () => void;
400
+ private _emit;
374
401
  private _register;
375
402
  /**
376
403
  * Animates the window to the full work area of the primary display.
@@ -380,6 +407,20 @@ declare class WindowManager {
380
407
  private _expandToWorkArea;
381
408
  }
382
409
 
410
+ interface RendererChannels {
411
+ request: Electron.MessageChannelMain;
412
+ socket: Electron.MessageChannelMain;
413
+ }
414
+ declare class NoxSocket {
415
+ private readonly channels;
416
+ register(senderId: number, requestChannel: Electron.MessageChannelMain, socketChannel: Electron.MessageChannelMain): void;
417
+ get(senderId: number): RendererChannels | undefined;
418
+ unregister(senderId: number): void;
419
+ getSenderIds(): number[];
420
+ emit<TPayload = unknown>(eventName: string, payload?: TPayload, targetSenderIds?: number[]): void;
421
+ emitToRenderer<TPayload = unknown>(senderId: number, eventName: string, payload?: TPayload): boolean;
422
+ }
423
+
383
424
 
384
425
  /**
385
426
  * Your application service should implement IApp.
@@ -409,10 +450,11 @@ interface IApp {
409
450
  onActivated(): Promise<void>;
410
451
  }
411
452
  declare class NoxApp {
412
- private appService;
413
453
  private readonly router;
414
454
  private readonly socket;
415
455
  readonly windowManager: WindowManager;
456
+ private appService;
457
+ constructor(router: Router, socket: NoxSocket, windowManager: WindowManager);
416
458
  init(): Promise<this>;
417
459
  /**
418
460
  * Registers a lazy route. The file behind this prefix is dynamically
@@ -454,6 +496,107 @@ declare class NoxApp {
454
496
  private shutdownChannel;
455
497
  }
456
498
 
499
+ /**
500
+ * Logger is a utility class for logging messages to the console.
501
+ */
502
+ type LogLevel = 'debug' | 'comment' | 'log' | 'info' | 'warn' | 'error' | 'critical';
503
+ declare namespace Logger {
504
+ /**
505
+ * Sets the log level for the logger.
506
+ * This function allows you to change the log level dynamically at runtime.
507
+ * This won't affect the startup logs.
508
+ *
509
+ * If the parameter is a single LogLevel, all log levels with equal or higher severity will be enabled.
510
+
511
+ * If the parameter is an array of LogLevels, only the specified levels will be enabled.
512
+ *
513
+ * @param level Sets the log level for the logger.
514
+ */
515
+ function setLogLevel(level: LogLevel | LogLevel[]): void;
516
+ /**
517
+ * Logs a message to the console with log level LOG.
518
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
519
+ * It uses different colors for different log levels to enhance readability.
520
+ * @param args The arguments to log.
521
+ */
522
+ function log(...args: any[]): void;
523
+ /**
524
+ * Logs a message to the console with log level INFO.
525
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
526
+ * It uses different colors for different log levels to enhance readability.
527
+ * @param args The arguments to log.
528
+ */
529
+ function info(...args: any[]): void;
530
+ /**
531
+ * Logs a message to the console with log level WARN.
532
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
533
+ * It uses different colors for different log levels to enhance readability.
534
+ * @param args The arguments to log.
535
+ */
536
+ function warn(...args: any[]): void;
537
+ /**
538
+ * Logs a message to the console with log level ERROR.
539
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
540
+ * It uses different colors for different log levels to enhance readability.
541
+ * @param args The arguments to log.
542
+ */
543
+ function error(...args: any[]): void;
544
+ /**
545
+ * Logs a message to the console with log level ERROR and a grey color scheme.
546
+ */
547
+ function errorStack(...args: any[]): void;
548
+ /**
549
+ * Logs a message to the console with log level DEBUG.
550
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
551
+ * It uses different colors for different log levels to enhance readability.
552
+ * @param args The arguments to log.
553
+ */
554
+ function debug(...args: any[]): void;
555
+ /**
556
+ * Logs a message to the console with log level COMMENT.
557
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
558
+ * It uses different colors for different log levels to enhance readability.
559
+ * @param args The arguments to log.
560
+ */
561
+ function comment(...args: any[]): void;
562
+ /**
563
+ * Logs a message to the console with log level CRITICAL.
564
+ * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
565
+ * It uses different colors for different log levels to enhance readability.
566
+ * @param args The arguments to log.
567
+ */
568
+ function critical(...args: any[]): void;
569
+ /**
570
+ * Enables logging to a file output for the specified log levels.
571
+ * @param filepath The path to the log file.
572
+ * @param levels The log levels to enable file logging for. Defaults to all levels.
573
+ */
574
+ function enableFileLogging(filepath: string, levels?: LogLevel[]): void;
575
+ /**
576
+ * Disables logging to a file output for the specified log levels.
577
+ * @param levels The log levels to disable file logging for. Defaults to all levels.
578
+ */
579
+ function disableFileLogging(levels?: LogLevel[]): void;
580
+ const colors: {
581
+ black: string;
582
+ grey: string;
583
+ red: string;
584
+ green: string;
585
+ brown: string;
586
+ blue: string;
587
+ purple: string;
588
+ darkGrey: string;
589
+ lightRed: string;
590
+ lightGreen: string;
591
+ yellow: string;
592
+ lightBlue: string;
593
+ magenta: string;
594
+ cyan: string;
595
+ white: string;
596
+ initial: string;
597
+ };
598
+ }
599
+
457
600
 
458
601
  /**
459
602
  * A single route entry in the application routing table.
@@ -468,10 +611,12 @@ interface RouteDefinition {
468
611
  * Dynamic import function returning the controller file.
469
612
  * The controller is loaded lazily on the first IPC request targeting this prefix.
470
613
  *
614
+ * Optional when the route only serves as a parent for `children`.
615
+ *
471
616
  * @example
472
617
  * load: () => import('./modules/users/users.controller')
473
618
  */
474
- load: () => Promise<unknown>;
619
+ load?: () => Promise<unknown>;
475
620
  /**
476
621
  * Guards applied to every action in this controller.
477
622
  * Merged with action-level guards.
@@ -482,6 +627,11 @@ interface RouteDefinition {
482
627
  * Merged with action-level middlewares.
483
628
  */
484
629
  middlewares?: Middleware[];
630
+ /**
631
+ * Nested child routes. Guards and middlewares declared here are
632
+ * inherited (merged) by all children.
633
+ */
634
+ children?: RouteDefinition[];
485
635
  }
486
636
  /**
487
637
  * Defines the application routing table.
@@ -490,6 +640,9 @@ interface RouteDefinition {
490
640
  * This is the single source of truth for routing — no path is declared
491
641
  * in @Controller(), preventing duplicate route prefixes across controllers.
492
642
  *
643
+ * Supports nested routes via the `children` property. Guards and middlewares
644
+ * from parent entries are inherited (merged) into each child.
645
+ *
493
646
  * @example
494
647
  * export const routes = defineRoutes([
495
648
  * {
@@ -498,16 +651,17 @@ interface RouteDefinition {
498
651
  * guards: [authGuard],
499
652
  * },
500
653
  * {
501
- * path: 'orders',
502
- * load: () => import('./modules/orders/orders.controller'),
503
- * guards: [authGuard],
504
- * middlewares: [logMiddleware],
654
+ * path: 'admin',
655
+ * guards: [authGuard, adminGuard],
656
+ * children: [
657
+ * { path: 'users', load: () => import('./admin/users.controller') },
658
+ * { path: 'products', load: () => import('./admin/products.controller') },
659
+ * ],
505
660
  * },
506
661
  * ]);
507
662
  */
508
663
  declare function defineRoutes(routes: RouteDefinition[]): RouteDefinition[];
509
664
 
510
-
511
665
  /**
512
666
  * A singleton value override: provides an already-constructed instance
513
667
  * for a given token, bypassing the DI factory.
@@ -562,6 +716,15 @@ interface BootstrapConfig {
562
716
  * ]
563
717
  */
564
718
  eagerLoad?: Array<() => Promise<unknown>>;
719
+ /**
720
+ * Controls framework log verbosity.
721
+ * - `'debug'`: all messages (default during development).
722
+ * - `'info'`: info, warn, error, critical only.
723
+ * - `'none'`: completely silent — no framework logs.
724
+ *
725
+ * You can also pass an array of specific log levels to enable.
726
+ */
727
+ logLevel?: 'debug' | 'info' | 'none' | LogLevel[];
565
728
  }
566
729
  /**
567
730
  * Bootstraps the Noxus application.
@@ -667,7 +830,7 @@ interface IControllerMetadata {
667
830
  * getUserById(req: Request) { ... }
668
831
  * }
669
832
  */
670
- declare function Controller(options?: ControllerOptions): ClassDecorator;
833
+ declare function Controller(options?: ControllerOptions): <T extends new (...args: any[]) => unknown>(target: T, _context: ClassDecoratorContext) => T | void;
671
834
  declare function getControllerMetadata(target: object): IControllerMetadata | undefined;
672
835
 
673
836
 
@@ -718,121 +881,6 @@ interface InjectableOptions {
718
881
  * constructor(private url: string) {}
719
882
  * }
720
883
  */
721
- declare function Injectable(options?: InjectableOptions): ClassDecorator;
722
-
723
- /**
724
- * Logger is a utility class for logging messages to the console.
725
- */
726
- type LogLevel = 'debug' | 'comment' | 'log' | 'info' | 'warn' | 'error' | 'critical';
727
- declare namespace Logger {
728
- /**
729
- * Sets the log level for the logger.
730
- * This function allows you to change the log level dynamically at runtime.
731
- * This won't affect the startup logs.
732
- *
733
- * If the parameter is a single LogLevel, all log levels with equal or higher severity will be enabled.
734
-
735
- * If the parameter is an array of LogLevels, only the specified levels will be enabled.
736
- *
737
- * @param level Sets the log level for the logger.
738
- */
739
- function setLogLevel(level: LogLevel | LogLevel[]): void;
740
- /**
741
- * Logs a message to the console with log level LOG.
742
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
743
- * It uses different colors for different log levels to enhance readability.
744
- * @param args The arguments to log.
745
- */
746
- function log(...args: any[]): void;
747
- /**
748
- * Logs a message to the console with log level INFO.
749
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
750
- * It uses different colors for different log levels to enhance readability.
751
- * @param args The arguments to log.
752
- */
753
- function info(...args: any[]): void;
754
- /**
755
- * Logs a message to the console with log level WARN.
756
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
757
- * It uses different colors for different log levels to enhance readability.
758
- * @param args The arguments to log.
759
- */
760
- function warn(...args: any[]): void;
761
- /**
762
- * Logs a message to the console with log level ERROR.
763
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
764
- * It uses different colors for different log levels to enhance readability.
765
- * @param args The arguments to log.
766
- */
767
- function error(...args: any[]): void;
768
- /**
769
- * Logs a message to the console with log level ERROR and a grey color scheme.
770
- */
771
- function errorStack(...args: any[]): void;
772
- /**
773
- * Logs a message to the console with log level DEBUG.
774
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
775
- * It uses different colors for different log levels to enhance readability.
776
- * @param args The arguments to log.
777
- */
778
- function debug(...args: any[]): void;
779
- /**
780
- * Logs a message to the console with log level COMMENT.
781
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
782
- * It uses different colors for different log levels to enhance readability.
783
- * @param args The arguments to log.
784
- */
785
- function comment(...args: any[]): void;
786
- /**
787
- * Logs a message to the console with log level CRITICAL.
788
- * This function formats the message with a timestamp, process ID, and the name of the caller function or class.
789
- * It uses different colors for different log levels to enhance readability.
790
- * @param args The arguments to log.
791
- */
792
- function critical(...args: any[]): void;
793
- /**
794
- * Enables logging to a file output for the specified log levels.
795
- * @param filepath The path to the log file.
796
- * @param levels The log levels to enable file logging for. Defaults to all levels.
797
- */
798
- function enableFileLogging(filepath: string, levels?: LogLevel[]): void;
799
- /**
800
- * Disables logging to a file output for the specified log levels.
801
- * @param levels The log levels to disable file logging for. Defaults to all levels.
802
- */
803
- function disableFileLogging(levels?: LogLevel[]): void;
804
- const colors: {
805
- black: string;
806
- grey: string;
807
- red: string;
808
- green: string;
809
- brown: string;
810
- blue: string;
811
- purple: string;
812
- darkGrey: string;
813
- lightRed: string;
814
- lightGreen: string;
815
- yellow: string;
816
- lightBlue: string;
817
- magenta: string;
818
- cyan: string;
819
- white: string;
820
- initial: string;
821
- };
822
- }
823
-
824
- interface RendererChannels {
825
- request: Electron.MessageChannelMain;
826
- socket: Electron.MessageChannelMain;
827
- }
828
- declare class NoxSocket {
829
- private readonly channels;
830
- register(senderId: number, requestChannel: Electron.MessageChannelMain, socketChannel: Electron.MessageChannelMain): void;
831
- get(senderId: number): RendererChannels | undefined;
832
- unregister(senderId: number): void;
833
- getSenderIds(): number[];
834
- emit<TPayload = unknown>(eventName: string, payload?: TPayload, targetSenderIds?: number[]): number;
835
- emitToRenderer<TPayload = unknown>(senderId: number, eventName: string, payload?: TPayload): boolean;
836
- }
884
+ declare function Injectable(options?: InjectableOptions): <T extends new (...args: any[]) => unknown>(target: T, _context: ClassDecoratorContext) => T | void;
837
885
 
838
- export { AppInjector, type AtomicHttpMethod, BadGatewayException, BadRequestException, type BootstrapConfig, ConflictException, Controller, type ControllerAction, type ControllerOptions, Delete, ForbiddenException, type ForwardRefFn, ForwardReference, GatewayTimeoutException, Get, type Guard, type HttpMethod, HttpVersionNotSupportedException, type IApp, type IBatchRequestItem, type IBatchRequestPayload, type IBatchResponsePayload, type IBinding, type IControllerMetadata, type ILazyRoute, type IRendererEventMessage, type IRequest, type IResponse, type IRouteDefinition, type IRouteMetadata, type IRouteOptions, Injectable, type InjectableOptions, InsufficientStorageException, InternalServerException, type Lifetime, type LogLevel, Logger, LoopDetectedException, type MaybeAsync, MethodNotAllowedException, type Middleware, NetworkAuthenticationRequiredException, NetworkConnectTimeoutException, type NextFunction, NotAcceptableException, NotExtendedException, NotFoundException, NotImplementedException, NoxApp, NoxSocket, Patch, PaymentRequiredException, Post, Put, RENDERER_EVENT_TYPE, Request, RequestTimeoutException, ResponseException, RootInjector, type RouteDefinition, Router, ServiceUnavailableException, type SingletonOverride, Token, type TokenKey, TooManyRequestsException, type Type, UnauthorizedException, UpgradeRequiredException, VariantAlsoNegotiatesException, type WindowConfig, WindowManager, type WindowRecord, bootstrapApplication, createRendererEventMessage, defineRoutes, forwardRef, getControllerMetadata, getRouteMetadata, inject, isAtomicHttpMethod, isRendererEventMessage, token };
886
+ export { AppInjector, type AtomicHttpMethod, BadGatewayException, BadRequestException, type BootstrapConfig, ConflictException, Controller, type ControllerAction, type ControllerOptions, Delete, ForbiddenException, type ForwardRefFn, ForwardReference, GatewayTimeoutException, Get, type Guard, type HttpMethod, HttpVersionNotSupportedException, type IApp, type IBatchRequestItem, type IBatchRequestPayload, type IBatchResponsePayload, type IBinding, type IControllerMetadata, type ILazyRoute, type IRendererEventMessage, type IRequest, type IResponse, type IRouteDefinition, type IRouteMetadata, type IRouteOptions, Injectable, type InjectableOptions, InsufficientStorageException, InternalServerException, type Lifetime, type LogLevel, Logger, LoopDetectedException, type MaybeAsync, MethodNotAllowedException, type Middleware, NetworkAuthenticationRequiredException, NetworkConnectTimeoutException, type NextFunction, NotAcceptableException, NotExtendedException, NotFoundException, NotImplementedException, NoxApp, NoxSocket, Patch, PaymentRequiredException, Post, Put, RENDERER_EVENT_TYPE, Request, RequestTimeoutException, ResponseException, RootInjector, type RouteDefinition, Router, ServiceUnavailableException, type SingletonOverride, Token, type TokenKey, TooManyRequestsException, type Type, UnauthorizedException, UpgradeRequiredException, VariantAlsoNegotiatesException, type WindowConfig, type WindowEvent, WindowManager, type WindowRecord, bootstrapApplication, createRendererEventMessage, defineRoutes, forwardRef, getControllerMetadata, getRouteMetadata, inject, isAtomicHttpMethod, isRendererEventMessage, resetRootInjector, token };