@navios/core 1.0.0-alpha.2 → 1.0.0-alpha.4

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 (93) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/lib/{index-BJjk2X1S.d.mts → index-6S7veHKD.d.mts} +845 -294
  3. package/lib/index-6S7veHKD.d.mts.map +1 -0
  4. package/lib/{index-DZ6NU03y.d.cts → index-r0i2txmg.d.cts} +845 -294
  5. package/lib/index-r0i2txmg.d.cts.map +1 -0
  6. package/lib/index.cjs +4420 -84
  7. package/lib/index.cjs.map +1 -0
  8. package/lib/index.d.cts +2 -2
  9. package/lib/index.d.mts +2 -2
  10. package/lib/index.mjs +4328 -3
  11. package/lib/index.mjs.map +1 -0
  12. package/lib/legacy-compat/index.cjs +41 -126
  13. package/lib/legacy-compat/index.cjs.map +1 -1
  14. package/lib/legacy-compat/index.d.cts +4 -60
  15. package/lib/legacy-compat/index.d.cts.map +1 -1
  16. package/lib/legacy-compat/index.d.mts +4 -60
  17. package/lib/legacy-compat/index.d.mts.map +1 -1
  18. package/lib/legacy-compat/index.mjs +14 -119
  19. package/lib/legacy-compat/index.mjs.map +1 -1
  20. package/lib/navios.factory-BanZIvtR.cjs +4134 -0
  21. package/lib/navios.factory-BanZIvtR.cjs.map +1 -0
  22. package/lib/navios.factory-C75yZCoD.mjs +3831 -0
  23. package/lib/navios.factory-C75yZCoD.mjs.map +1 -0
  24. package/lib/testing/index.cjs +3 -3
  25. package/lib/testing/index.cjs.map +1 -1
  26. package/lib/testing/index.d.cts +1 -1
  27. package/lib/testing/index.d.mts +1 -1
  28. package/lib/testing/index.mjs +2 -2
  29. package/lib/tokens-4J9sredA.mjs +100 -0
  30. package/lib/tokens-4J9sredA.mjs.map +1 -0
  31. package/lib/tokens-BuXXB01L.cjs +196 -0
  32. package/lib/tokens-BuXXB01L.cjs.map +1 -0
  33. package/lib/{use-guards.decorator-Be_QUx6b.mjs → use-guards.decorator-BecoQSmE.mjs} +3 -70
  34. package/lib/use-guards.decorator-BecoQSmE.mjs.map +1 -0
  35. package/lib/{use-guards.decorator-B6tghdxM.cjs → use-guards.decorator-DgD-kxF5.cjs} +7 -158
  36. package/lib/use-guards.decorator-DgD-kxF5.cjs.map +1 -0
  37. package/package.json +4 -4
  38. package/src/__tests__/attribute.factory.spec.mts +300 -0
  39. package/src/__tests__/console-logger.service.spec.mts +312 -0
  40. package/src/__tests__/guard-runner.service.spec.mts +399 -0
  41. package/src/__tests__/logger.service.spec.mts +147 -0
  42. package/src/__tests__/responders.spec.mts +6 -5
  43. package/src/factories/adapter.factory.mts +20 -0
  44. package/src/factories/endpoint-adapter.factory.mts +1 -1
  45. package/src/factories/http-adapter.factory.mts +1 -1
  46. package/src/factories/index.mts +1 -0
  47. package/src/factories/multipart-adapter.factory.mts +1 -1
  48. package/src/factories/reply.factory.mts +1 -1
  49. package/src/factories/request.factory.mts +1 -1
  50. package/src/factories/stream-adapter.factory.mts +1 -1
  51. package/src/factories/xml-stream-adapter.factory.mts +1 -1
  52. package/src/index.mts +1 -0
  53. package/src/interfaces/abstract-adapter.interface.mts +32 -0
  54. package/src/interfaces/abstract-http-adapter.interface.mts +27 -20
  55. package/src/interfaces/abstract-http-handler-adapter.interface.mts +86 -2
  56. package/src/interfaces/adapter-environment.interface.mts +74 -0
  57. package/src/interfaces/index.mts +2 -0
  58. package/src/interfaces/plugin.interface.mts +50 -16
  59. package/src/legacy-compat/attribute.factory.mts +2 -2
  60. package/src/legacy-compat/decorators/controller.decorator.mts +1 -1
  61. package/src/legacy-compat/decorators/endpoint.decorator.mts +1 -1
  62. package/src/legacy-compat/decorators/header.decorator.mts +2 -1
  63. package/src/legacy-compat/decorators/http-code.decorator.mts +2 -1
  64. package/src/legacy-compat/decorators/index.mts +2 -2
  65. package/src/legacy-compat/decorators/module.decorator.mts +1 -1
  66. package/src/legacy-compat/decorators/multipart.decorator.mts +1 -1
  67. package/src/legacy-compat/decorators/stream.decorator.mts +1 -1
  68. package/src/legacy-compat/decorators/use-guards.decorator.mts +1 -1
  69. package/src/legacy-compat/index.mts +10 -5
  70. package/src/logger/console-logger.service.mts +97 -7
  71. package/src/metadata/module.metadata.mts +43 -0
  72. package/src/navios.application.mts +172 -60
  73. package/src/navios.environment.mts +22 -12
  74. package/src/navios.factory.mts +31 -10
  75. package/src/services/abstract-handler-adapter.service.mts +366 -0
  76. package/src/services/index.mts +1 -0
  77. package/src/services/module-loader.service.mts +1 -0
  78. package/src/tokens/adapter.token.mts +6 -0
  79. package/src/tokens/http-adapter.token.mts +1 -1
  80. package/src/tokens/index.mts +1 -0
  81. package/src/utils/adapter-supports.util.mts +47 -0
  82. package/src/utils/index.mts +1 -0
  83. package/lib/index-BJjk2X1S.d.mts.map +0 -1
  84. package/lib/index-DZ6NU03y.d.cts.map +0 -1
  85. package/lib/src-C46ePe3d.cjs +0 -8022
  86. package/lib/src-C46ePe3d.cjs.map +0 -1
  87. package/lib/src-K2k0riYJ.mjs +0 -7587
  88. package/lib/src-K2k0riYJ.mjs.map +0 -1
  89. package/lib/use-guards.decorator-B6tghdxM.cjs.map +0 -1
  90. package/lib/use-guards.decorator-Be_QUx6b.mjs.map +0 -1
  91. package/src/legacy-compat/context-compat.mts +0 -95
  92. package/src/legacy-compat/decorators/factory.decorator.mts +0 -37
  93. package/src/legacy-compat/decorators/injectable.decorator.mts +0 -41
@@ -6,7 +6,11 @@ import type {
6
6
 
7
7
  import { Container } from '@navios/di'
8
8
 
9
- import type { NaviosModule } from './interfaces/index.mjs'
9
+ import type {
10
+ AdapterEnvironment,
11
+ DefaultAdapterEnvironment,
12
+ NaviosModule,
13
+ } from './interfaces/index.mjs'
10
14
  import type { NaviosApplicationOptions } from './navios.application.mjs'
11
15
 
12
16
  import { ConsoleLogger, isNil, LoggerOutput } from './logger/index.mjs'
@@ -40,12 +44,16 @@ export class NaviosFactory {
40
44
  /**
41
45
  * Creates a new Navios application instance.
42
46
  *
43
- * This method sets up the dependency injection container, registers the HTTP adapter,
47
+ * This method sets up the dependency injection container, registers the adapter,
44
48
  * configures logging, and initializes the application with the provided module.
45
49
  *
50
+ * @typeParam Environment - Adapter environment interface for type-safe access
51
+ * to adapter-specific features. When specified, methods like `getServer()`,
52
+ * `enableCors()`, `listen()`, and `configure()` will have proper types.
53
+ *
46
54
  * @param appModule - The root application module class decorated with @Module()
47
55
  * @param options - Configuration options for the application
48
- * @param options.adapter - HTTP adapter environment (required for HTTP server functionality)
56
+ * @param options.adapter - Adapter environment (required for server functionality)
49
57
  * @param options.logger - Logger configuration. Can be:
50
58
  * - A LoggerService instance for custom logging
51
59
  * - An array of LogLevel strings to enable specific log levels
@@ -60,6 +68,15 @@ export class NaviosFactory {
60
68
  * adapter: defineFastifyEnvironment(),
61
69
  * })
62
70
  *
71
+ * // Type-safe setup with Fastify environment
72
+ * import { FastifyEnvironment } from '@navios/adapter-fastify'
73
+ *
74
+ * const app = await NaviosFactory.create<FastifyEnvironment>(AppModule, {
75
+ * adapter: defineFastifyEnvironment(),
76
+ * })
77
+ * app.configure({ trustProxy: true })
78
+ * const server = app.getServer() // FastifyInstance
79
+ *
63
80
  * // With custom logger configuration
64
81
  * const app = await NaviosFactory.create(AppModule, {
65
82
  * adapter: defineFastifyEnvironment(),
@@ -74,12 +91,14 @@ export class NaviosFactory {
74
91
  * })
75
92
  * ```
76
93
  */
77
- static async create(
94
+ static async create<
95
+ Environment extends AdapterEnvironment = DefaultAdapterEnvironment,
96
+ >(
78
97
  appModule: ClassTypeWithInstance<NaviosModule>,
79
98
  options: NaviosApplicationOptions = {
80
99
  adapter: [],
81
100
  },
82
- ) {
101
+ ): Promise<NaviosApplication<Environment>> {
83
102
  const container = options.container ?? new Container(options.registry)
84
103
 
85
104
  // Set request ID flag early, before any adapters are registered
@@ -97,7 +116,9 @@ export class NaviosFactory {
97
116
  for (const adapter of adapters) {
98
117
  await this.registerEnvironment(container, adapter)
99
118
  }
100
- const app = await container.get(NaviosApplication)
119
+ const app = (await container.get(
120
+ NaviosApplication,
121
+ )) as NaviosApplication<Environment>
101
122
  await app.setup(appModule, options)
102
123
  return app
103
124
  }
@@ -105,13 +126,13 @@ export class NaviosFactory {
105
126
  private static async registerEnvironment(
106
127
  container: Container,
107
128
  environment: {
108
- httpTokens?: Map<InjectionToken<any, undefined>, AnyInjectableType>
129
+ tokens?: Map<InjectionToken<any, undefined>, AnyInjectableType>
109
130
  } = {},
110
131
  ) {
111
132
  const naviosEnvironment = await container.get(NaviosEnvironment)
112
- const { httpTokens } = environment
113
- if (httpTokens) {
114
- naviosEnvironment.setupHttpEnvironment(httpTokens)
133
+ const { tokens } = environment
134
+ if (tokens) {
135
+ naviosEnvironment.setupEnvironment(tokens)
115
136
  }
116
137
  }
117
138
 
@@ -0,0 +1,366 @@
1
+ import type { ClassType, ScopedContainer } from '@navios/di'
2
+ import type { BaseEndpointOptions } from '@navios/builder'
3
+
4
+ import { inject, optional } from '@navios/di'
5
+
6
+ import type { HandlerMetadata } from '../metadata/index.mjs'
7
+ import type {
8
+ ArgumentGetterFn,
9
+ FormatArgumentsFn as InterfaceFormatArgumentsFn,
10
+ HttpHeader,
11
+ } from '../interfaces/index.mjs'
12
+ import type { NaviosApplicationOptions } from '../navios.application.mjs'
13
+
14
+ import { NaviosOptionsToken } from '../tokens/index.mjs'
15
+ import {
16
+ InstanceResolverService,
17
+ type InstanceResolution,
18
+ } from './instance-resolver.service.mjs'
19
+
20
+ // ============================================================================
21
+ // Types
22
+ // ============================================================================
23
+
24
+ /**
25
+ * Function type for argument getters that extract data from requests.
26
+ * Re-exported from interface for convenience in adapter implementations.
27
+ */
28
+ export type ArgumentGetter<TRequest> = ArgumentGetterFn<TRequest>
29
+
30
+ /**
31
+ * Internal alias for FormatArgumentsFn from interface.
32
+ * Not re-exported to avoid duplicate exports - use FormatArgumentsFn from interfaces instead.
33
+ */
34
+ type FormatArgumentsFn<TRequest> = InterfaceFormatArgumentsFn<TRequest>
35
+
36
+ /**
37
+ * Static handler - can be called without a scoped container.
38
+ */
39
+ export type AbstractStaticHandler<TRequest, TReply = void> = {
40
+ isStatic: true
41
+ handler: (request: TRequest, reply: TReply) => Promise<any>
42
+ }
43
+
44
+ /**
45
+ * Dynamic handler - requires a scoped container for resolution.
46
+ */
47
+ export type AbstractDynamicHandler<TRequest, TReply = void> = {
48
+ isStatic: false
49
+ handler: (
50
+ scoped: ScopedContainer,
51
+ request: TRequest,
52
+ reply: TReply,
53
+ ) => Promise<any>
54
+ }
55
+
56
+ /**
57
+ * Handler result - either static or dynamic.
58
+ */
59
+ export type AbstractHandlerResult<TRequest, TReply = void> =
60
+ | AbstractStaticHandler<TRequest, TReply>
61
+ | AbstractDynamicHandler<TRequest, TReply>
62
+
63
+ /**
64
+ * Context passed to handler creation methods.
65
+ */
66
+ export interface HandlerContext<
67
+ TConfig extends BaseEndpointOptions = BaseEndpointOptions,
68
+ > {
69
+ methodName: string
70
+ statusCode: number
71
+ headers: Partial<Record<HttpHeader, number | string | string[] | undefined>>
72
+ handlerMetadata: HandlerMetadata<TConfig>
73
+ hasArguments: boolean
74
+ }
75
+
76
+ // ============================================================================
77
+ // Default Options
78
+ // ============================================================================
79
+
80
+ const defaultOptions: NaviosApplicationOptions = {
81
+ adapter: [],
82
+ validateResponses: true,
83
+ enableRequestId: false,
84
+ }
85
+
86
+ // ============================================================================
87
+ // Abstract Base Class
88
+ // ============================================================================
89
+
90
+ /**
91
+ * Abstract base class for HTTP handler adapter services.
92
+ *
93
+ * Provides shared logic for:
94
+ * - Controller resolution (singleton vs request-scoped)
95
+ * - Argument formatting (sync/async detection)
96
+ * - Handler generation with static/dynamic branching
97
+ * - Standardized error handling
98
+ *
99
+ * Adapters implement abstract methods for framework-specific behavior:
100
+ * - Request parsing (query, body, URL params)
101
+ * - Response creation
102
+ * - Schema provision
103
+ *
104
+ * Supports all adapter types:
105
+ * - Endpoint adapters: JSON request/response with validation
106
+ * - Stream adapters: Streaming responses with extra context
107
+ * - Multipart adapters: Form data parsing (extends endpoint)
108
+ *
109
+ * @typeParam TRequest - Framework request type (BunRequest, FastifyRequest)
110
+ * @typeParam TReply - Framework reply type (void for Bun, FastifyReply)
111
+ * @typeParam TConfig - Endpoint configuration type
112
+ */
113
+ export abstract class AbstractHandlerAdapterService<
114
+ TRequest,
115
+ TReply = void,
116
+ TConfig extends BaseEndpointOptions = BaseEndpointOptions,
117
+ > {
118
+ protected instanceResolver = inject(InstanceResolverService)
119
+ protected options = optional(NaviosOptionsToken) ?? defaultOptions
120
+
121
+ // ==========================================================================
122
+ // Abstract Methods - Must be implemented by adapters
123
+ // ==========================================================================
124
+
125
+ /**
126
+ * Creates argument getter functions for extracting data from requests.
127
+ *
128
+ * Each getter populates a target object with data from the request
129
+ * (query params, body, URL params, etc.).
130
+ *
131
+ * Implementation varies by adapter type:
132
+ * - Endpoint: JSON body parsing with schema validation
133
+ * - Stream: Same as endpoint (body + query + url params)
134
+ * - Multipart: FormData/multipart stream parsing
135
+ *
136
+ * @param handlerMetadata - Handler metadata with schemas and configuration
137
+ * @returns Array of getter functions
138
+ */
139
+ protected abstract createArgumentGetters(
140
+ handlerMetadata: HandlerMetadata<TConfig>,
141
+ ): ArgumentGetter<TRequest>[]
142
+
143
+ /**
144
+ * Creates a static handler for singleton controllers.
145
+ *
146
+ * Implementation varies by adapter type:
147
+ * - Endpoint: Invoke method(args), serialize response as JSON
148
+ * - Stream: Invoke method(args, streamContext), return Response/use reply
149
+ *
150
+ * @param boundMethod - Pre-bound controller method
151
+ * @param formatArguments - Function to format request arguments
152
+ * @param context - Handler context with metadata
153
+ * @returns Static handler result
154
+ */
155
+ protected abstract createStaticHandler(
156
+ boundMethod: (...args: any[]) => Promise<any>,
157
+ formatArguments: FormatArgumentsFn<TRequest>,
158
+ context: HandlerContext<TConfig>,
159
+ ): AbstractStaticHandler<TRequest, TReply>
160
+
161
+ /**
162
+ * Creates a dynamic handler for request-scoped controllers.
163
+ *
164
+ * Implementation varies by adapter type:
165
+ * - Endpoint: Resolve controller per-request, invoke method(args)
166
+ * - Stream: Resolve controller per-request, invoke method(args, streamContext)
167
+ *
168
+ * @param resolution - Instance resolution with resolve function
169
+ * @param formatArguments - Function to format request arguments
170
+ * @param context - Handler context with metadata
171
+ * @returns Dynamic handler result
172
+ */
173
+ protected abstract createDynamicHandler(
174
+ resolution: InstanceResolution,
175
+ formatArguments: FormatArgumentsFn<TRequest>,
176
+ context: HandlerContext<TConfig>,
177
+ ): AbstractDynamicHandler<TRequest, TReply>
178
+
179
+ // ==========================================================================
180
+ // Public Interface Methods
181
+ // ==========================================================================
182
+
183
+ /**
184
+ * Prepares argument getters for parsing request data.
185
+ *
186
+ * Public alias for createArgumentGetters to satisfy interface contracts.
187
+ * Subclasses should override createArgumentGetters instead.
188
+ *
189
+ * @param handlerMetadata - Handler metadata with schemas and configuration
190
+ * @returns Array of getter functions
191
+ */
192
+ prepareArguments(
193
+ handlerMetadata: HandlerMetadata<TConfig>,
194
+ ): ArgumentGetter<TRequest>[] {
195
+ return this.createArgumentGetters(handlerMetadata)
196
+ }
197
+
198
+ /**
199
+ * Checks if the handler has any validation schemas defined.
200
+ *
201
+ * Override in subclasses to add additional schema checks
202
+ * (e.g., response schema validation for endpoint adapters).
203
+ *
204
+ * @param handlerMetadata - Handler metadata with configuration
205
+ * @returns true if handler has schemas
206
+ */
207
+ hasSchema(handlerMetadata: HandlerMetadata<TConfig>): boolean {
208
+ const config = handlerMetadata.config
209
+ return !!config.requestSchema || !!config.querySchema
210
+ }
211
+
212
+ /**
213
+ * Provides schema information for the framework's validation system.
214
+ *
215
+ * Override in subclasses for frameworks that support schema registration
216
+ * (e.g., Fastify). Default returns empty object (suitable for Bun).
217
+ *
218
+ * @param handlerMetadata - Handler metadata with configuration
219
+ * @returns Schema object for framework registration
220
+ */
221
+ provideSchema(
222
+ _handlerMetadata: HandlerMetadata<TConfig>,
223
+ ): Record<string, any> {
224
+ return {}
225
+ }
226
+
227
+ /**
228
+ * Creates a request handler function for the endpoint.
229
+ *
230
+ * This method orchestrates the entire handler creation:
231
+ * 1. Prepares argument getters for request parsing
232
+ * 2. Builds optimized formatArguments function (sync/async)
233
+ * 3. Resolves the controller (singleton vs request-scoped)
234
+ * 4. Creates appropriate handler (static or dynamic)
235
+ *
236
+ * @param controller - Controller class containing the handler method
237
+ * @param handlerMetadata - Handler metadata with configuration
238
+ * @returns Handler result (static or dynamic)
239
+ */
240
+ async provideHandler(
241
+ controller: ClassType,
242
+ handlerMetadata: HandlerMetadata<TConfig>,
243
+ ): Promise<AbstractHandlerResult<TRequest, TReply>> {
244
+ // Prepare argument getters
245
+ const getters = this.createArgumentGetters(handlerMetadata)
246
+ const formatArguments = this.buildFormatArguments(getters)
247
+ const hasArguments = getters.length > 0
248
+
249
+ // Build handler context
250
+ const context: HandlerContext<TConfig> = {
251
+ methodName: handlerMetadata.classMethod,
252
+ statusCode: handlerMetadata.successStatusCode,
253
+ headers: handlerMetadata.headers,
254
+ handlerMetadata,
255
+ hasArguments,
256
+ }
257
+
258
+ // Resolve controller with automatic scope detection
259
+ const resolution = await this.instanceResolver.resolve(controller)
260
+
261
+ // Create appropriate handler based on resolution
262
+ if (resolution.cached) {
263
+ const cachedController = resolution.instance as any
264
+ const boundMethod =
265
+ cachedController[context.methodName].bind(cachedController)
266
+ return this.createStaticHandler(boundMethod, formatArguments, context)
267
+ }
268
+
269
+ return this.createDynamicHandler(resolution, formatArguments, context)
270
+ }
271
+
272
+ // ==========================================================================
273
+ // Public Utilities
274
+ // ==========================================================================
275
+
276
+ /**
277
+ * Builds a formatArguments function from argument getters.
278
+ *
279
+ * Automatically detects sync vs async getters and optimizes accordingly:
280
+ * - If all getters are sync: returns sync function (no Promise overhead)
281
+ * - If any getter is async: returns async function with Promise.all
282
+ * - If no getters: returns frozen empty object (zero allocation)
283
+ *
284
+ * This method is public to allow composition-based adapters (like XML adapter)
285
+ * to reuse the optimized formatArguments logic without inheritance.
286
+ *
287
+ * @param getters - Array of argument getter functions
288
+ * @returns Function to format arguments from request
289
+ */
290
+ buildFormatArguments(
291
+ getters: ArgumentGetter<TRequest>[],
292
+ ): FormatArgumentsFn<TRequest> {
293
+ if (getters.length === 0) {
294
+ const emptyArgs = Object.freeze({})
295
+ return () => emptyArgs
296
+ }
297
+
298
+ // Detect if any getter is async at registration time
299
+ const hasAsyncGetters = getters.some(
300
+ (g) => g.constructor.name === 'AsyncFunction',
301
+ )
302
+
303
+ if (hasAsyncGetters) {
304
+ return async (request: TRequest) => {
305
+ const argument: Record<string, any> = {}
306
+ const promises: Promise<void>[] = []
307
+ for (const getter of getters) {
308
+ const res = getter(argument, request)
309
+ if (res instanceof Promise) {
310
+ promises.push(res)
311
+ }
312
+ }
313
+ await Promise.all(promises)
314
+ return argument
315
+ }
316
+ }
317
+
318
+ return (request: TRequest) => {
319
+ const argument: Record<string, any> = {}
320
+ for (const getter of getters) {
321
+ getter(argument, request)
322
+ }
323
+ return argument
324
+ }
325
+ }
326
+
327
+ // ==========================================================================
328
+ // Protected Utilities
329
+ // ==========================================================================
330
+
331
+ /**
332
+ * Checks if the URL pattern contains URL parameters.
333
+ *
334
+ * @param config - Endpoint configuration
335
+ * @returns true if URL contains '$' parameter markers
336
+ */
337
+ protected hasUrlParams(config: TConfig): boolean {
338
+ return config.url.includes('$')
339
+ }
340
+
341
+ /**
342
+ * Wraps handler execution with standardized error handling.
343
+ *
344
+ * Re-throws HttpExceptions as-is for framework error handlers.
345
+ * Other errors are re-thrown for global error handling.
346
+ *
347
+ * @param fn - Handler function to wrap
348
+ * @returns Wrapped function with error handling
349
+ */
350
+ protected wrapWithErrorHandling<T extends (...args: any[]) => Promise<any>>(
351
+ fn: T,
352
+ ): T {
353
+ return (async (...args: any[]) => {
354
+ try {
355
+ return await fn(...args)
356
+ } catch (error) {
357
+ // Re-throw HttpExceptions as-is for framework error handlers
358
+ if (error && typeof error === 'object' && 'statusCode' in error) {
359
+ throw error
360
+ }
361
+ // Re-throw unexpected errors for global error handling
362
+ throw error
363
+ }
364
+ }) as T
365
+ }
366
+ }
@@ -1,3 +1,4 @@
1
+ export * from './abstract-handler-adapter.service.mjs'
1
2
  export * from './instance-resolver.service.mjs'
2
3
  export * from './guard-runner.service.mjs'
3
4
  export * from './module-loader.service.mjs'
@@ -119,6 +119,7 @@ export class ModuleLoaderService {
119
119
  guards: new Set(),
120
120
  overrides: new Set(),
121
121
  customAttributes: new Map(),
122
+ customEntries: new Map(),
122
123
  }
123
124
  this.modulesMetadata.set(moduleName, metadata)
124
125
 
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@navios/di'
2
+
3
+ import type { AbstractAdapterInterface } from '../interfaces/index.mjs'
4
+
5
+ export const AdapterToken =
6
+ InjectionToken.create<AbstractAdapterInterface>('AdapterToken')
@@ -3,6 +3,6 @@ import { InjectionToken } from '@navios/di'
3
3
  import type { AbstractHttpAdapterInterface } from '../interfaces/index.mjs'
4
4
 
5
5
  export const HttpAdapterToken =
6
- InjectionToken.create<AbstractHttpAdapterInterface<any, any, any, any>>(
6
+ InjectionToken.create<AbstractHttpAdapterInterface>(
7
7
  'HttpAdapterToken',
8
8
  )
@@ -1,3 +1,4 @@
1
+ export * from './adapter.token.mjs'
1
2
  export * from './endpoint-adapter.token.mjs'
2
3
  export * from './execution-context.token.mjs'
3
4
  export * from './http-adapter.token.mjs'
@@ -0,0 +1,47 @@
1
+ import type { AbstractAdapterInterface } from '../interfaces/index.mjs'
2
+
3
+ /**
4
+ * Type guard to check if adapter implements a specific method.
5
+ * Narrows the adapter type to include the method.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * if (adapterSupports(adapter, 'getServer')) {
10
+ * const server = adapter.getServer() // TypeScript knows this exists
11
+ * }
12
+ * ```
13
+ */
14
+ export function adapterSupports<
15
+ TAdapter extends AbstractAdapterInterface,
16
+ TMethod extends string,
17
+ >(
18
+ adapter: TAdapter | null,
19
+ method: TMethod,
20
+ ): adapter is TAdapter & Record<TMethod, (...args: unknown[]) => unknown> {
21
+ return (
22
+ adapter !== null &&
23
+ typeof (adapter as Record<string, unknown>)[method] === 'function'
24
+ )
25
+ }
26
+
27
+ /**
28
+ * Asserts adapter supports a method, throws if not.
29
+ * Narrows type after assertion.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * assertAdapterSupports(adapter, 'enableCors')
34
+ * adapter.enableCors(options) // TypeScript knows this exists
35
+ * ```
36
+ */
37
+ export function assertAdapterSupports<
38
+ TAdapter extends AbstractAdapterInterface,
39
+ TMethod extends string,
40
+ >(
41
+ adapter: TAdapter | null,
42
+ method: TMethod,
43
+ ): asserts adapter is TAdapter & Record<TMethod, (...args: unknown[]) => unknown> {
44
+ if (!adapterSupports(adapter, method)) {
45
+ throw new Error(`Current adapter does not implement '${method}()'`)
46
+ }
47
+ }
@@ -0,0 +1 @@
1
+ export { adapterSupports, assertAdapterSupports } from './adapter-supports.util.mjs'
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BJjk2X1S.d.mts","names":[],"sources":["../src/config/utils/helpers.mts","../src/config/types.mts","../src/config/config-service.interface.mts","../src/config/config.service.mts","../src/config/config.provider.mts","../src/decorators/controller.decorator.mts","../src/decorators/endpoint.decorator.mts","../src/metadata/handler.metadata.mts","../src/metadata/controller.metadata.mts","../src/metadata/module.metadata.mts","../src/metadata/navios-managed.metadata.mts","../src/interfaces/abstract-execution-context.inteface.mts","../src/logger/utils/cli-colors.util.mts","../src/logger/log-levels.mts","../src/logger/utils/filter-log-levelts.util.mts","../src/logger/utils/is-log-level.util.mts","../src/logger/utils/is-log-level-enabled.mts","../src/logger/utils/shared.utils.mts","../src/logger/logger-service.interface.mts","../src/logger/console-logger.service.mts","../src/logger/logger.service.mts","../src/logger/logger.tokens.mts","../src/interfaces/abstract-http-cors-options.interface.mts","../src/interfaces/abstract-http-listen-options.interface.mts","../src/interfaces/abstract-http-adapter.interface.mts","../src/interfaces/abstract-http-handler-adapter.interface.mts","../src/interfaces/can-activate.mts","../src/interfaces/http-header.mts","../src/interfaces/navios-module.mts","../src/services/module-loader.service.mts","../src/interfaces/plugin.interface.mts","../src/decorators/header.decorator.mts","../src/decorators/http-code.decorator.mts","../src/decorators/module.decorator.mts","../src/decorators/multipart.decorator.mts","../src/decorators/stream.decorator.mts","../src/decorators/use-guards.decorator.mts","../src/exceptions/http.exception.mts","../src/exceptions/bad-request.exception.mts","../src/exceptions/forbidden.exception.mts","../src/exceptions/internal-server-error.exception.mts","../src/exceptions/not-found.exception.mts","../src/exceptions/unauthorized.exception.mts","../src/exceptions/conflict.exception.mts","../src/responders/enums/framework-error.enum.mts","../src/responders/interfaces/problem-details.interface.mts","../src/responders/interfaces/error-response.interface.mts","../src/responders/interfaces/error-responder.interface.mts","../src/responders/services/error-response-producer.service.mts","../src/responders/services/forbidden-responder.service.mts","../src/responders/services/internal-server-error-responder.service.mts","../src/responders/services/not-found-responder.service.mts","../src/responders/services/validation-error-responder.service.mts","../src/responders/tokens/responder.tokens.mts","../src/services/instance-resolver.service.mts","../src/services/guard-runner.service.mts","../src/stores/request-id.store.mts","../src/tokens/endpoint-adapter.token.mts","../src/tokens/execution-context.token.mts","../src/tokens/http-adapter.token.mts","../src/tokens/multipart-adapter.token.mts","../src/navios.environment.mts","../src/navios.application.mts","../src/tokens/navios-options.token.mts","../src/tokens/reply.token.mts","../src/tokens/request.token.mts","../src/tokens/stream-adapter.token.mts","../src/tokens/xml-stream-adapter.token.mts","../src/attribute.factory.mts","../src/factories/endpoint-adapter.factory.mts","../src/factories/http-adapter.factory.mts","../src/factories/multipart-adapter.factory.mts","../src/factories/request.factory.mts","../src/factories/reply.factory.mts","../src/factories/stream-adapter.factory.mts","../src/factories/xml-stream-adapter.factory.mts","../src/navios.factory.mts"],"sourcesContent":[],"mappings":"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"}