@navios/core 0.1.15 → 0.2.1

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 (67) hide show
  1. package/dist/_tsup-dts-rollup.d.mts +96 -425
  2. package/dist/_tsup-dts-rollup.d.ts +96 -425
  3. package/dist/index.d.mts +54 -44
  4. package/dist/index.d.ts +54 -44
  5. package/dist/index.js +111 -1023
  6. package/dist/index.mjs +113 -982
  7. package/package.json +5 -4
  8. package/src/adapters/endpoint-adapter.service.mts +3 -6
  9. package/src/adapters/handler-adapter.interface.mts +1 -1
  10. package/src/adapters/multipart-adapter.service.mts +2 -1
  11. package/src/adapters/stream-adapter.service.mts +3 -7
  12. package/src/attribute.factory.mts +1 -1
  13. package/src/config/config.provider.mts +13 -11
  14. package/src/decorators/controller.decorator.mts +3 -6
  15. package/src/decorators/endpoint.decorator.mts +17 -10
  16. package/src/decorators/module.decorator.mts +3 -6
  17. package/src/decorators/multipart.decorator.mts +17 -10
  18. package/src/decorators/stream.decorator.mts +17 -10
  19. package/src/decorators/use-guards.decorator.mts +3 -2
  20. package/src/index.mts +1 -1
  21. package/src/logger/console-logger.service.mts +3 -2
  22. package/src/logger/logger.factory.mts +4 -5
  23. package/src/logger/logger.service.mts +2 -1
  24. package/src/metadata/controller.metadata.mts +3 -2
  25. package/src/metadata/handler.metadata.mts +1 -4
  26. package/src/metadata/index.mts +0 -1
  27. package/src/metadata/module.metadata.mts +3 -2
  28. package/src/navios.application.mts +9 -8
  29. package/src/navios.factory.mts +4 -2
  30. package/src/services/controller-adapter.service.mts +13 -12
  31. package/src/services/guard-runner.service.mts +4 -6
  32. package/src/services/module-loader.service.mts +4 -2
  33. package/src/tokens/application.token.mts +1 -1
  34. package/src/tokens/execution-context.token.mts +2 -1
  35. package/src/tokens/reply.token.mts +1 -1
  36. package/src/tokens/request.token.mts +1 -1
  37. package/src/metadata/injectable.metadata.mts +0 -11
  38. package/src/service-locator/__tests__/injectable.spec.mts +0 -171
  39. package/src/service-locator/__tests__/injection-token.spec.mts +0 -129
  40. package/src/service-locator/decorators/get-injectable-token.mts +0 -19
  41. package/src/service-locator/decorators/index.mts +0 -2
  42. package/src/service-locator/decorators/injectable.decorator.mts +0 -113
  43. package/src/service-locator/enums/index.mts +0 -1
  44. package/src/service-locator/enums/injectable-scope.enum.mts +0 -10
  45. package/src/service-locator/errors/errors.enum.mts +0 -8
  46. package/src/service-locator/errors/factory-not-found.mts +0 -8
  47. package/src/service-locator/errors/factory-token-not-resolved.mts +0 -10
  48. package/src/service-locator/errors/index.mts +0 -7
  49. package/src/service-locator/errors/instance-destroying.mts +0 -8
  50. package/src/service-locator/errors/instance-expired.mts +0 -8
  51. package/src/service-locator/errors/instance-not-found.mts +0 -8
  52. package/src/service-locator/errors/unknown-error.mts +0 -15
  53. package/src/service-locator/event-emitter.mts +0 -107
  54. package/src/service-locator/index.mts +0 -15
  55. package/src/service-locator/inject.mts +0 -42
  56. package/src/service-locator/injection-token.mts +0 -92
  57. package/src/service-locator/injector.mts +0 -18
  58. package/src/service-locator/interfaces/factory.interface.mts +0 -11
  59. package/src/service-locator/override.mts +0 -22
  60. package/src/service-locator/proxy-service-locator.mts +0 -99
  61. package/src/service-locator/resolve-service.mts +0 -46
  62. package/src/service-locator/service-locator-abstract-factory-context.mts +0 -23
  63. package/src/service-locator/service-locator-event-bus.mts +0 -96
  64. package/src/service-locator/service-locator-instance-holder.mts +0 -63
  65. package/src/service-locator/service-locator-manager.mts +0 -89
  66. package/src/service-locator/service-locator.mts +0 -535
  67. package/src/service-locator/sync-injector.mts +0 -66
package/dist/index.js CHANGED
@@ -5,15 +5,15 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __knownSymbol = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : Symbol.for("Symbol." + name2);
8
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
9
9
  var __typeError = (msg) => {
10
10
  throw TypeError(msg);
11
11
  };
12
12
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
13
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
14
  var __export = (target, all) => {
15
- for (var name2 in all)
16
- __defProp(target, name2, { get: all[name2], enumerable: true });
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
17
  };
18
18
  var __copyProps = (to, from, except, desc) => {
19
19
  if (from && typeof from === "object" || typeof from === "function") {
@@ -23,6 +23,7 @@ var __copyProps = (to, from, except, desc) => {
23
23
  }
24
24
  return to;
25
25
  };
26
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
26
27
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
27
28
  // If the importer is in node compatibility mode or this is not an ESM
28
29
  // file that has been converted to a CommonJS file using a Babel-
@@ -35,35 +36,35 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
35
36
  var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
36
37
  var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
37
38
  var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
38
- var __decoratorContext = (kind, name2, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name: name2, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
39
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
39
40
  var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
40
41
  var __runInitializers = (array, flags, self, value) => {
41
42
  for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
42
43
  return value;
43
44
  };
44
- var __decorateElement = (array, flags, name2, decorators, target, extra) => {
45
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
45
46
  var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
46
47
  var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
47
48
  var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
48
- var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name2]() {
49
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
49
50
  return __privateGet(this, extra);
50
- }, set [name2](x) {
51
+ }, set [name](x) {
51
52
  return __privateSet(this, extra, x);
52
- } }, name2));
53
- k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name2) : __name(target, name2);
53
+ } }, name));
54
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
54
55
  for (var i = decorators.length - 1; i >= 0; i--) {
55
- ctx = __decoratorContext(k, name2, done = {}, array[3], extraInitializers);
56
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
56
57
  if (k) {
57
- ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name2 in x };
58
- if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name2];
59
- if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name2] = y;
58
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
59
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
60
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
60
61
  }
61
62
  it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
62
63
  if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
63
64
  else if (typeof it !== "object" || it === null) __typeError("Object expected");
64
65
  else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
65
66
  }
66
- return k || __decoratorMetadata(array, target), desc && __defProp(target, name2, desc), p ? k ^ 4 ? extra : desc : target;
67
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
67
68
  };
68
69
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
69
70
  var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
@@ -77,7 +78,6 @@ __export(src_exports, {
77
78
  Application: () => Application,
78
79
  AttributeFactory: () => AttributeFactory,
79
80
  BadRequestException: () => BadRequestException,
80
- BoundInjectionToken: () => BoundInjectionToken,
81
81
  ConfigProvider: () => ConfigProvider,
82
82
  ConfigProviderFactory: () => ConfigProviderFactory,
83
83
  ConfigProviderOptions: () => ConfigProviderOptions,
@@ -91,27 +91,14 @@ __export(src_exports, {
91
91
  EndpointAdapterService: () => EndpointAdapterService,
92
92
  EndpointAdapterToken: () => EndpointAdapterToken,
93
93
  EndpointMetadataKey: () => EndpointMetadataKey,
94
- ErrorsEnum: () => ErrorsEnum,
95
- EventEmitter: () => EventEmitter,
96
94
  ExecutionContext: () => ExecutionContext,
97
95
  ExecutionContextInjectionToken: () => ExecutionContextInjectionToken,
98
96
  ExecutionContextToken: () => ExecutionContextToken,
99
- FactoryInjectionToken: () => FactoryInjectionToken,
100
- FactoryNotFound: () => FactoryNotFound,
101
- FactoryTokenNotResolved: () => FactoryTokenNotResolved,
102
97
  ForbiddenException: () => ForbiddenException,
103
98
  GuardRunnerService: () => GuardRunnerService,
104
99
  Header: () => Header,
105
100
  HttpCode: () => HttpCode,
106
101
  HttpException: () => HttpException,
107
- Injectable: () => Injectable,
108
- InjectableScope: () => InjectableScope,
109
- InjectableTokenMeta: () => InjectableTokenMeta,
110
- InjectableType: () => InjectableType,
111
- InjectionToken: () => InjectionToken,
112
- InstanceDestroying: () => InstanceDestroying,
113
- InstanceExpired: () => InstanceExpired,
114
- InstanceNotFound: () => InstanceNotFound,
115
102
  InternalServerErrorException: () => InternalServerErrorException,
116
103
  LOG_LEVELS: () => LOG_LEVELS,
117
104
  Logger: () => Logger,
@@ -131,16 +118,10 @@ __export(src_exports, {
131
118
  PinoWrapper: () => PinoWrapper,
132
119
  Reply: () => Reply,
133
120
  Request: () => Request,
134
- ServiceLocator: () => ServiceLocator,
135
- ServiceLocatorEventBus: () => ServiceLocatorEventBus,
136
- ServiceLocatorInstanceHolderKind: () => ServiceLocatorInstanceHolderKind,
137
- ServiceLocatorInstanceHolderStatus: () => ServiceLocatorInstanceHolderStatus,
138
- ServiceLocatorManager: () => ServiceLocatorManager,
139
121
  Stream: () => Stream,
140
122
  StreamAdapterService: () => StreamAdapterService,
141
123
  StreamAdapterToken: () => StreamAdapterToken,
142
124
  UnauthorizedException: () => UnauthorizedException,
143
- UnknownError: () => UnknownError,
144
125
  UseGuards: () => UseGuards,
145
126
  addLeadingSlash: () => addLeadingSlash,
146
127
  clc: () => clc,
@@ -152,12 +133,9 @@ __export(src_exports, {
152
133
  getAllEndpointMetadata: () => getAllEndpointMetadata,
153
134
  getControllerMetadata: () => getControllerMetadata,
154
135
  getEndpointMetadata: () => getEndpointMetadata,
155
- getInjectableToken: () => getInjectableToken,
156
136
  getModuleMetadata: () => getModuleMetadata,
157
- getServiceLocator: () => getServiceLocator,
158
137
  hasControllerMetadata: () => hasControllerMetadata,
159
138
  hasModuleMetadata: () => hasModuleMetadata,
160
- inject: () => inject,
161
139
  isConstructor: () => isConstructor,
162
140
  isEmpty: () => isEmpty,
163
141
  isFunction: () => isFunction,
@@ -171,908 +149,23 @@ __export(src_exports, {
171
149
  isSymbol: () => isSymbol,
172
150
  isUndefined: () => isUndefined,
173
151
  normalizePath: () => normalizePath,
174
- override: () => override,
175
152
  provideConfig: () => provideConfig,
176
- provideServiceLocator: () => provideServiceLocator,
177
- resolveService: () => resolveService,
178
- setPromiseCollector: () => setPromiseCollector,
179
153
  stripEndSlash: () => stripEndSlash,
180
- syncInject: () => syncInject,
181
154
  yellow: () => yellow
182
155
  });
183
156
  module.exports = __toCommonJS(src_exports);
157
+ __reExport(src_exports, require("@navios/di"), module.exports);
184
158
 
185
- // packages/core/src/service-locator/decorators/injectable.decorator.mts
186
- var import_common2 = require("@navios/common");
187
-
188
- // packages/core/src/service-locator/enums/injectable-scope.enum.mts
189
- var InjectableScope = /* @__PURE__ */ ((InjectableScope2) => {
190
- InjectableScope2["Singleton"] = "Singleton";
191
- InjectableScope2["Instance"] = "Instance";
192
- return InjectableScope2;
193
- })(InjectableScope || {});
194
-
195
- // packages/core/src/service-locator/injection-token.mts
196
- var import_crypto = require("crypto");
197
- var import_zod = require("zod");
198
- var InjectionToken = class _InjectionToken {
199
- constructor(name2, schema) {
200
- this.name = name2;
201
- this.schema = schema;
202
- }
203
- id = (0, import_crypto.randomUUID)();
204
- static create(name2, schema) {
205
- return new _InjectionToken(name2, schema);
206
- }
207
- static bound(token, value) {
208
- return new BoundInjectionToken(token, value);
209
- }
210
- static factory(token, factory) {
211
- return new FactoryInjectionToken(token, factory);
212
- }
213
- static refineType(token) {
214
- return token;
215
- }
216
- };
217
- var BoundInjectionToken = class extends InjectionToken {
218
- constructor(token, value) {
219
- super(token.name, token.schema);
220
- this.token = token;
221
- this.value = value;
222
- this.id = token.id;
223
- }
224
- };
225
- var FactoryInjectionToken = class extends InjectionToken {
226
- constructor(token, factory) {
227
- super(token.name, token.schema);
228
- this.token = token;
229
- this.factory = factory;
230
- }
231
- value;
232
- resolved = false;
233
- async resolve() {
234
- if (!this.value) {
235
- this.value = await this.factory();
236
- this.resolved = true;
237
- }
238
- return this.value;
239
- }
240
- };
241
-
242
- // packages/core/src/service-locator/errors/errors.enum.mts
243
- var ErrorsEnum = /* @__PURE__ */ ((ErrorsEnum2) => {
244
- ErrorsEnum2["InstanceExpired"] = "InstanceExpired";
245
- ErrorsEnum2["InstanceNotFound"] = "InstanceNotFound";
246
- ErrorsEnum2["InstanceDestroying"] = "InstanceDestroying";
247
- ErrorsEnum2["UnknownError"] = "UnknownError";
248
- ErrorsEnum2["FactoryNotFound"] = "FactoryNotFound";
249
- ErrorsEnum2["FactoryTokenNotResolved"] = "FactoryTokenNotResolved";
250
- return ErrorsEnum2;
251
- })(ErrorsEnum || {});
252
-
253
- // packages/core/src/service-locator/errors/factory-not-found.mts
254
- var FactoryNotFound = class extends Error {
255
- constructor(name2) {
256
- super(`Factory ${name2} not found`);
257
- this.name = name2;
258
- }
259
- code = "FactoryNotFound" /* FactoryNotFound */;
260
- };
261
-
262
- // packages/core/src/service-locator/errors/factory-token-not-resolved.mts
263
- var FactoryTokenNotResolved = class extends Error {
264
- code = "FactoryTokenNotResolved" /* FactoryTokenNotResolved */;
265
- constructor(name2) {
266
- super(`Factory token not resolved: ${name2.toString()}`);
267
- }
268
- };
269
-
270
- // packages/core/src/service-locator/errors/instance-destroying.mts
271
- var InstanceDestroying = class extends Error {
272
- constructor(name2) {
273
- super(`Instance ${name2} destroying`);
274
- this.name = name2;
275
- }
276
- code = "InstanceDestroying" /* InstanceDestroying */;
277
- };
278
-
279
- // packages/core/src/service-locator/errors/instance-expired.mts
280
- var InstanceExpired = class extends Error {
281
- constructor(name2) {
282
- super(`Instance ${name2} expired`);
283
- this.name = name2;
284
- }
285
- code = "InstanceExpired" /* InstanceExpired */;
286
- };
287
-
288
- // packages/core/src/service-locator/errors/instance-not-found.mts
289
- var InstanceNotFound = class extends Error {
290
- constructor(name2) {
291
- super(`Instance ${name2} not found`);
292
- this.name = name2;
293
- }
294
- code = "InstanceNotFound" /* InstanceNotFound */;
295
- };
296
-
297
- // packages/core/src/service-locator/errors/unknown-error.mts
298
- var UnknownError = class extends Error {
299
- code = "UnknownError" /* UnknownError */;
300
- parent;
301
- constructor(message) {
302
- if (message instanceof Error) {
303
- super(message.message);
304
- this.parent = message;
305
- return;
306
- }
307
- super(message);
308
- }
309
- };
310
-
311
- // packages/core/src/service-locator/service-locator-event-bus.mts
312
- var ServiceLocatorEventBus = class {
313
- constructor(logger = null) {
314
- this.logger = logger;
315
- }
316
- listeners = /* @__PURE__ */ new Map();
317
- on(ns, event, listener) {
318
- var _a3;
319
- (_a3 = this.logger) == null ? void 0 : _a3.debug(`[ServiceLocatorEventBus]#on(): ns:${ns} event:${event}`);
320
- if (!this.listeners.has(ns)) {
321
- this.listeners.set(ns, /* @__PURE__ */ new Map());
322
- }
323
- const nsEvents = this.listeners.get(ns);
324
- if (!nsEvents.has(event)) {
325
- nsEvents.set(event, /* @__PURE__ */ new Set());
326
- }
327
- nsEvents.get(event).add(listener);
328
- return () => {
329
- var _a4;
330
- nsEvents.get(event).delete(listener);
331
- if (((_a4 = nsEvents.get(event)) == null ? void 0 : _a4.size) === 0) {
332
- nsEvents.delete(event);
333
- }
334
- if (nsEvents.size === 0) {
335
- this.listeners.delete(ns);
336
- }
337
- };
338
- }
339
- async emit(key, event) {
340
- var _a3, _b, _c;
341
- if (!this.listeners.has(key)) {
342
- return;
343
- }
344
- const events = this.listeners.get(key);
345
- const preEvent = `pre:${event}`;
346
- const postEvent = `post:${event}`;
347
- (_a3 = this.logger) == null ? void 0 : _a3.debug(`[ServiceLocatorEventBus]#emit(): ${key}:${preEvent}`);
348
- await Promise.allSettled(
349
- [...events.get(preEvent) ?? []].map((listener) => listener(preEvent))
350
- ).then((results) => {
351
- results.filter((result) => result.status === "rejected").forEach((result) => {
352
- var _a4;
353
- (_a4 = this.logger) == null ? void 0 : _a4.warn(
354
- `[ServiceLocatorEventBus]#emit(): ${key}:${preEvent} rejected with`,
355
- result.reason
356
- );
357
- });
358
- });
359
- (_b = this.logger) == null ? void 0 : _b.debug(`[ServiceLocatorEventBus]#emit(): ${key}:${event}`);
360
- const res = await Promise.allSettled(
361
- [...events.get(event) ?? []].map((listener) => listener(event))
362
- ).then((results) => {
363
- const res2 = results.filter((result) => result.status === "rejected").map((result) => {
364
- var _a4;
365
- (_a4 = this.logger) == null ? void 0 : _a4.warn(
366
- `[ServiceLocatorEventBus]#emit(): ${key}:${event} rejected with`,
367
- result.reason
368
- );
369
- return result;
370
- });
371
- if (res2.length > 0) {
372
- return Promise.reject(res2);
373
- }
374
- return results;
375
- });
376
- (_c = this.logger) == null ? void 0 : _c.debug(`[ServiceLocatorEventBus]#emit(): ${key}:${postEvent}`);
377
- await Promise.allSettled(
378
- [...events.get(postEvent) ?? []].map((listener) => listener(postEvent))
379
- ).then((results) => {
380
- results.filter((result) => result.status === "rejected").forEach((result) => {
381
- var _a4;
382
- (_a4 = this.logger) == null ? void 0 : _a4.warn(
383
- `[ServiceLocatorEventBus]#emit(): ${key}:${postEvent} rejected with`,
384
- result.reason
385
- );
386
- });
387
- });
388
- return res;
389
- }
390
- };
391
-
392
- // packages/core/src/service-locator/service-locator-instance-holder.mts
393
- var ServiceLocatorInstanceHolderKind = /* @__PURE__ */ ((ServiceLocatorInstanceHolderKind2) => {
394
- ServiceLocatorInstanceHolderKind2["Instance"] = "instance";
395
- ServiceLocatorInstanceHolderKind2["Factory"] = "factory";
396
- ServiceLocatorInstanceHolderKind2["AbstractFactory"] = "abstractFactory";
397
- return ServiceLocatorInstanceHolderKind2;
398
- })(ServiceLocatorInstanceHolderKind || {});
399
- var ServiceLocatorInstanceHolderStatus = /* @__PURE__ */ ((ServiceLocatorInstanceHolderStatus2) => {
400
- ServiceLocatorInstanceHolderStatus2["Created"] = "created";
401
- ServiceLocatorInstanceHolderStatus2["Creating"] = "creating";
402
- ServiceLocatorInstanceHolderStatus2["Destroying"] = "destroying";
403
- return ServiceLocatorInstanceHolderStatus2;
404
- })(ServiceLocatorInstanceHolderStatus || {});
405
-
406
- // packages/core/src/service-locator/service-locator-manager.mts
407
- var ServiceLocatorManager = class {
408
- constructor(logger = null) {
409
- this.logger = logger;
410
- }
411
- instancesHolders = /* @__PURE__ */ new Map();
412
- get(name2) {
413
- var _a3, _b, _c;
414
- const holder = this.instancesHolders.get(name2);
415
- if (holder) {
416
- if (holder.ttl !== Infinity) {
417
- const now = Date.now();
418
- if (now - holder.createdAt > holder.ttl) {
419
- (_a3 = this.logger) == null ? void 0 : _a3.log(
420
- `[ServiceLocatorManager]#getInstanceHolder() TTL expired for ${holder.name}`
421
- );
422
- return [new InstanceExpired(holder.name), holder];
423
- }
424
- } else if (holder.status === "destroying" /* Destroying */) {
425
- (_b = this.logger) == null ? void 0 : _b.log(
426
- `[ServiceLocatorManager]#getInstanceHolder() Instance ${holder.name} is destroying`
427
- );
428
- return [new InstanceDestroying(holder.name), holder];
429
- }
430
- return [void 0, holder];
431
- } else {
432
- (_c = this.logger) == null ? void 0 : _c.log(
433
- `[ServiceLocatorManager]#getInstanceHolder() Instance ${name2} not found`
434
- );
435
- return [new InstanceNotFound(name2)];
436
- }
437
- }
438
- set(name2, holder) {
439
- this.instancesHolders.set(name2, holder);
440
- }
441
- has(name2) {
442
- const [error, holder] = this.get(name2);
443
- if (!error) {
444
- return [void 0, true];
445
- }
446
- if (["InstanceExpired" /* InstanceExpired */, "InstanceDestroying" /* InstanceDestroying */].includes(
447
- error.code
448
- )) {
449
- return [error];
450
- }
451
- return [void 0, !!holder];
452
- }
453
- delete(name2) {
454
- return this.instancesHolders.delete(name2);
455
- }
456
- filter(predicate) {
457
- return new Map(
458
- [...this.instancesHolders].filter(
459
- ([key, value]) => predicate(value, key)
460
- )
461
- );
462
- }
463
- };
464
-
465
- // packages/core/src/service-locator/service-locator.mts
466
- var ServiceLocator = class {
467
- constructor(logger = null) {
468
- this.logger = logger;
469
- this.eventBus = new ServiceLocatorEventBus(logger);
470
- this.manager = new ServiceLocatorManager(logger);
471
- }
472
- abstractFactories = /* @__PURE__ */ new Map();
473
- instanceFactories = /* @__PURE__ */ new Map();
474
- eventBus;
475
- manager;
476
- getEventBus() {
477
- return this.eventBus;
478
- }
479
- registerInstance(token, instance) {
480
- const instanceName = this.getInstanceIdentifier(token, void 0);
481
- this.manager.set(instanceName, {
482
- name: instanceName,
483
- instance,
484
- status: "created" /* Created */,
485
- kind: "instance" /* Instance */,
486
- createdAt: Date.now(),
487
- ttl: Infinity,
488
- deps: [],
489
- destroyListeners: [],
490
- effects: [],
491
- destroyPromise: null,
492
- creationPromise: null
493
- });
494
- this.eventBus.emit(instanceName, "create");
495
- }
496
- removeInstance(token) {
497
- const instanceName = this.getInstanceIdentifier(token, void 0);
498
- return this.invalidate(instanceName);
499
- }
500
- registerAbstractFactory(token, factory, type = "Singleton" /* Singleton */) {
501
- var _a3;
502
- (_a3 = this.logger) == null ? void 0 : _a3.log(
503
- `[ServiceLocator]#registerAbstractFactory(): Registering abstract factory for ${name}`
504
- );
505
- if (type === "Instance" /* Instance */) {
506
- this.instanceFactories.set(token, factory);
507
- this.abstractFactories.delete(token);
508
- } else {
509
- this.abstractFactories.set(token, factory);
510
- this.instanceFactories.delete(token);
511
- }
512
- }
513
- resolveTokenArgs(token, args) {
514
- var _a3, _b;
515
- let realArgs = args;
516
- if (token instanceof BoundInjectionToken) {
517
- realArgs = token.value;
518
- } else if (token instanceof FactoryInjectionToken) {
519
- if (token.resolved) {
520
- realArgs = token.value;
521
- } else {
522
- return [new FactoryTokenNotResolved(token.name)];
523
- }
524
- }
525
- if (!token.schema) {
526
- return [void 0, realArgs];
527
- }
528
- const validatedArgs = (_a3 = token.schema) == null ? void 0 : _a3.safeParse(realArgs);
529
- if (validatedArgs && !validatedArgs.success) {
530
- (_b = this.logger) == null ? void 0 : _b.error(
531
- `[ServiceLocator]#getInstance(): Error validating args for ${token.name.toString()}`,
532
- validatedArgs.error
533
- );
534
- return [new UnknownError(validatedArgs.error)];
535
- }
536
- return [void 0, validatedArgs == null ? void 0 : validatedArgs.data];
537
- }
538
- getInstanceIdentifier(token, args) {
539
- const [err, realArgs] = this.resolveTokenArgs(token, args);
540
- if (err) {
541
- throw err;
542
- }
543
- return this.makeInstanceName(token, realArgs);
544
- }
545
- async getInstance(token, args) {
546
- var _a3, _b;
547
- const [err, realArgs] = this.resolveTokenArgs(token, args);
548
- if (err instanceof UnknownError) {
549
- throw err;
550
- } else if (err instanceof FactoryTokenNotResolved && token instanceof FactoryInjectionToken) {
551
- await token.resolve();
552
- return this.getInstance(token, args);
553
- }
554
- const instanceName = this.makeInstanceName(token, realArgs);
555
- const [error, holder] = this.manager.get(instanceName);
556
- if (!error) {
557
- if (holder.status === "creating" /* Creating */) {
558
- return holder.creationPromise;
559
- } else if (holder.status === "destroying" /* Destroying */) {
560
- return [new UnknownError("InstanceDestroying" /* InstanceDestroying */)];
561
- }
562
- return [void 0, holder.instance];
563
- }
564
- switch (error.code) {
565
- case "InstanceDestroying" /* InstanceDestroying */:
566
- (_a3 = this.logger) == null ? void 0 : _a3.log(
567
- `[ServiceLocator]#getInstance() TTL expired for ${holder == null ? void 0 : holder.name}`
568
- );
569
- await (holder == null ? void 0 : holder.destroyPromise);
570
- return this.getInstance(token, args);
571
- case "InstanceExpired" /* InstanceExpired */:
572
- (_b = this.logger) == null ? void 0 : _b.log(
573
- `[ServiceLocator]#getInstance() TTL expired for ${holder == null ? void 0 : holder.name}`
574
- );
575
- await this.invalidate(instanceName);
576
- return this.getInstance(token, args);
577
- case "InstanceNotFound" /* InstanceNotFound */:
578
- break;
579
- default:
580
- return [error];
581
- }
582
- return this.createInstance(instanceName, token, realArgs);
583
- }
584
- async getOrThrowInstance(token, args) {
585
- const [error, instance] = await this.getInstance(token, args);
586
- if (error) {
587
- throw error;
588
- }
589
- return instance;
590
- }
591
- notifyListeners(name2, event = "create") {
592
- var _a3;
593
- (_a3 = this.logger) == null ? void 0 : _a3.log(
594
- `[ServiceLocator]#notifyListeners() Notifying listeners for ${name2} with event ${event}`
595
- );
596
- return this.eventBus.emit(name2, event);
597
- }
598
- async createInstance(instanceName, token, args) {
599
- var _a3;
600
- (_a3 = this.logger) == null ? void 0 : _a3.log(
601
- `[ServiceLocator]#createInstance() Creating instance for ${instanceName}`
602
- );
603
- let realToken = token instanceof BoundInjectionToken || token instanceof FactoryInjectionToken ? token.token : token;
604
- if (this.abstractFactories.has(realToken) || this.instanceFactories.has(realToken)) {
605
- return this.createInstanceFromAbstractFactory(
606
- instanceName,
607
- realToken,
608
- args
609
- );
610
- } else {
611
- return [new FactoryNotFound(realToken.name.toString())];
612
- }
613
- }
614
- async createInstanceFromAbstractFactory(instanceName, token, args) {
615
- var _a3;
616
- (_a3 = this.logger) == null ? void 0 : _a3.log(
617
- `[ServiceLocator]#createInstanceFromAbstractFactory(): Creating instance for ${instanceName} from abstract factory`
618
- );
619
- const ctx = this.createContextForAbstractFactory(instanceName);
620
- let shouldStore = true;
621
- let abstractFactory = this.abstractFactories.get(token);
622
- if (!abstractFactory) {
623
- abstractFactory = this.instanceFactories.get(token);
624
- shouldStore = false;
625
- if (!abstractFactory) {
626
- return [new FactoryNotFound(token.name.toString())];
627
- }
628
- }
629
- const holder = {
630
- name: instanceName,
631
- instance: null,
632
- status: "creating" /* Creating */,
633
- kind: "abstractFactory" /* AbstractFactory */,
634
- // @ts-expect-error TS2322 This is correct type
635
- creationPromise: abstractFactory(ctx, args).then(async (instance) => {
636
- var _a4;
637
- holder.instance = instance;
638
- holder.status = "created" /* Created */;
639
- holder.deps = ctx.getDependencies();
640
- holder.destroyListeners = ctx.getDestroyListeners();
641
- holder.ttl = ctx.getTtl();
642
- if (holder.deps.length > 0) {
643
- (_a4 = this.logger) == null ? void 0 : _a4.log(
644
- `[ServiceLocator]#createInstanceFromAbstractFactory(): Adding subscriptions for ${instanceName} dependencies for their invalidations: ${holder.deps.join(
645
- ", "
646
- )}`
647
- );
648
- holder.deps.forEach((dependency) => {
649
- holder.destroyListeners.push(
650
- this.eventBus.on(
651
- dependency,
652
- "destroy",
653
- () => this.invalidate(instanceName)
654
- )
655
- );
656
- });
657
- }
658
- if (holder.ttl === 0 || !shouldStore) {
659
- await this.invalidate(instanceName);
660
- }
661
- await this.notifyListeners(instanceName);
662
- return [void 0, instance];
663
- }).catch((error) => {
664
- var _a4;
665
- (_a4 = this.logger) == null ? void 0 : _a4.error(
666
- `[ServiceLocator]#createInstanceFromAbstractFactory(): Error creating instance for ${instanceName}`,
667
- error
668
- );
669
- return [new UnknownError(error)];
670
- }),
671
- effects: [],
672
- deps: [],
673
- destroyListeners: [],
674
- createdAt: Date.now(),
675
- ttl: Infinity
676
- };
677
- if (shouldStore) {
678
- this.manager.set(instanceName, holder);
679
- }
680
- return holder.creationPromise;
681
- }
682
- createContextForAbstractFactory(instanceName) {
683
- const dependencies = /* @__PURE__ */ new Set();
684
- const destroyListeners = /* @__PURE__ */ new Set();
685
- const self = this;
686
- function invalidate(name2 = instanceName) {
687
- return self.invalidate(name2);
688
- }
689
- function addEffect(listener) {
690
- destroyListeners.add(listener);
691
- }
692
- let ttl = Infinity;
693
- function setTtl(value) {
694
- ttl = value;
695
- }
696
- function getTtl() {
697
- return ttl;
698
- }
699
- function on(key, event, listener) {
700
- destroyListeners.add(self.eventBus.on(key, event, listener));
701
- }
702
- return {
703
- // @ts-expect-error This is correct type
704
- async inject(token, args) {
705
- let injectionToken = token;
706
- if (typeof token === "function") {
707
- injectionToken = getInjectableToken(token);
708
- }
709
- if (injectionToken instanceof InjectionToken) {
710
- const validatedArgs = token.schema ? token.schema.safeParse(args) : void 0;
711
- const instanceName2 = self.makeInstanceName(token, validatedArgs);
712
- dependencies.add(instanceName2);
713
- return self.getOrThrowInstance(injectionToken, args);
714
- }
715
- throw new Error(
716
- `[ServiceLocator]#inject(): Invalid token type: ${typeof token}. Expected a class or an InjectionToken.`
717
- );
718
- },
719
- invalidate,
720
- eventBus: self.eventBus,
721
- on,
722
- getDependencies: () => Array.from(dependencies),
723
- addEffect,
724
- getDestroyListeners: () => Array.from(destroyListeners),
725
- setTtl,
726
- getTtl
727
- };
728
- }
729
- getSyncInstance(token, args) {
730
- const [err, realArgs] = this.resolveTokenArgs(token, args);
731
- if (err) {
732
- return null;
733
- }
734
- const instanceName = this.makeInstanceName(token, realArgs);
735
- const [error, holder] = this.manager.get(instanceName);
736
- if (error) {
737
- return null;
738
- }
739
- return holder.instance;
740
- }
741
- invalidate(service, round = 1) {
742
- var _a3, _b, _c, _d, _e;
743
- (_a3 = this.logger) == null ? void 0 : _a3.log(
744
- `[ServiceLocator]#invalidate(): Starting Invalidating process of ${service}`
745
- );
746
- const toInvalidate = this.manager.filter(
747
- (holder) => holder.name === service || holder.deps.includes(service)
748
- );
749
- const promises = [];
750
- for (const [key, holder] of toInvalidate.entries()) {
751
- if (holder.status === "destroying" /* Destroying */) {
752
- (_b = this.logger) == null ? void 0 : _b.trace(
753
- `[ServiceLocator]#invalidate(): ${key} is already being destroyed`
754
- );
755
- promises.push(holder.destroyPromise);
756
- continue;
757
- }
758
- if (holder.status === "creating" /* Creating */) {
759
- (_c = this.logger) == null ? void 0 : _c.trace(
760
- `[ServiceLocator]#invalidate(): ${key} is being created, waiting for creation to finish`
761
- );
762
- promises.push(
763
- (_d = holder.creationPromise) == null ? void 0 : _d.then(() => {
764
- var _a4;
765
- if (round > 3) {
766
- (_a4 = this.logger) == null ? void 0 : _a4.error(
767
- `[ServiceLocator]#invalidate(): ${key} creation is triggering a new invalidation round, but it is still not created`
768
- );
769
- return;
770
- }
771
- return this.invalidate(key, round + 1);
772
- })
773
- );
774
- continue;
775
- }
776
- holder.status = "destroying" /* Destroying */;
777
- (_e = this.logger) == null ? void 0 : _e.log(
778
- `[ServiceLocator]#invalidate(): Invalidating ${key} and notifying listeners`
779
- );
780
- holder.destroyPromise = Promise.all(
781
- holder.destroyListeners.map((listener) => listener())
782
- ).then(async () => {
783
- this.manager.delete(key);
784
- await this.notifyListeners(key, "destroy");
785
- });
786
- promises.push(holder.destroyPromise);
787
- }
788
- return Promise.all(promises);
789
- }
790
- async ready() {
791
- return Promise.all(
792
- Array.from(this.manager.filter(() => true)).map(([, holder]) => {
793
- var _a3;
794
- if (holder.status === "creating" /* Creating */) {
795
- return (_a3 = holder.creationPromise) == null ? void 0 : _a3.then(() => null);
796
- }
797
- if (holder.status === "destroying" /* Destroying */) {
798
- return holder.destroyPromise.then(() => null);
799
- }
800
- return Promise.resolve(null);
801
- })
802
- ).then(() => null);
803
- }
804
- makeInstanceName(token, args) {
805
- let stringifiedArgs = args ? ":" + JSON.stringify(args, (_, value) => {
806
- if (typeof value === "function") {
807
- return `function:${value.name}(${value.length})`;
808
- }
809
- if (typeof value === "symbol") {
810
- return value.toString();
811
- }
812
- return value;
813
- }).replaceAll(/"/g, "").replaceAll(/:/g, "=").replaceAll(/,/g, "|") : "";
814
- const { name: name2 } = token;
815
- if (typeof name2 === "function") {
816
- const className = name2.name;
817
- return `${className}(${token.id})${stringifiedArgs}`;
818
- } else if (typeof name2 === "symbol") {
819
- return `${name2.toString()}(${token.id})${stringifiedArgs}`;
820
- } else {
821
- return `${name2}(${token.id})${stringifiedArgs}`;
822
- }
823
- }
824
- };
825
-
826
- // packages/core/src/service-locator/injector.mts
827
- var serviceLocator = new ServiceLocator();
828
- function provideServiceLocator(locator) {
829
- const original = serviceLocator;
830
- serviceLocator = locator;
831
- return original;
832
- }
833
- function getServiceLocator() {
834
- if (!serviceLocator) {
835
- throw new Error(
836
- "[ServiceLocator] Service locator is not initialized. Please provide the service locator before using the @Injectable decorator."
837
- );
838
- }
839
- return serviceLocator;
840
- }
841
-
842
- // packages/core/src/service-locator/resolve-service.mts
843
- var import_common = require("@navios/common");
844
-
845
- // packages/core/src/service-locator/proxy-service-locator.mts
846
- var ProxyServiceLocator = class {
847
- constructor(serviceLocator2, ctx) {
848
- this.serviceLocator = serviceLocator2;
849
- this.ctx = ctx;
850
- }
851
- get abstractFactories() {
852
- return this.serviceLocator["abstractFactories"];
853
- }
854
- getEventBus() {
855
- return this.serviceLocator.getEventBus();
856
- }
857
- registerAbstractFactory(token, factory) {
858
- return this.serviceLocator.registerAbstractFactory(token, factory);
859
- }
860
- getInstance(token, args) {
861
- return this.ctx.inject(token, args).then(
862
- (instance) => {
863
- return [void 0, instance];
864
- },
865
- (error) => {
866
- return [error];
867
- }
868
- );
869
- }
870
- getOrThrowInstance(token, args) {
871
- return this.ctx.inject(token, args);
872
- }
873
- getSyncInstance(token, args) {
874
- return this.serviceLocator.getSyncInstance(token, args);
875
- }
876
- invalidate(service, round) {
877
- return this.serviceLocator.invalidate(service, round);
878
- }
879
- ready() {
880
- return this.serviceLocator.ready();
881
- }
882
- makeInstanceName(token, args) {
883
- return this.serviceLocator.makeInstanceName(token, args);
884
- }
885
- };
886
- function makeProxyServiceLocator(serviceLocator2, ctx) {
887
- return new ProxyServiceLocator(serviceLocator2, ctx);
888
- }
889
-
890
- // packages/core/src/service-locator/sync-injector.mts
891
- var promiseCollector = null;
892
- function syncInject(token, args) {
893
- let realToken = token;
894
- if (!(token instanceof InjectionToken)) {
895
- realToken = getInjectableToken(token);
896
- }
897
- const instance = getServiceLocator().getSyncInstance(realToken, args);
898
- if (!instance) {
899
- if (promiseCollector) {
900
- const promise = getServiceLocator().getInstance(realToken, args);
901
- promiseCollector(promise);
902
- } else {
903
- throw new Error(
904
- `[ServiceLocator] No instance found for ${realToken.name.toString()}`
905
- );
906
- }
907
- }
908
- return instance;
909
- }
910
- function setPromiseCollector(collector) {
911
- const original = promiseCollector;
912
- promiseCollector = collector;
913
- return original;
914
- }
915
-
916
- // packages/core/src/service-locator/resolve-service.mts
917
- async function resolveService(ctx, target, args = []) {
918
- const proxyServiceLocator = makeProxyServiceLocator(getServiceLocator(), ctx);
919
- let promises = [];
920
- const promiseCollector2 = (promise) => {
921
- promises.push(promise);
922
- };
923
- const originalPromiseCollector = setPromiseCollector(promiseCollector2);
924
- const tryLoad = () => {
925
- const original = provideServiceLocator(proxyServiceLocator);
926
- let result = new target(...args);
927
- provideServiceLocator(original);
928
- return result;
929
- };
930
- let instance = tryLoad();
931
- setPromiseCollector(originalPromiseCollector);
932
- if (promises.length > 0) {
933
- await Promise.all(promises);
934
- promises = [];
935
- instance = tryLoad();
936
- }
937
- if (promises.length > 0) {
938
- console.error(`[ServiceLocator] ${target.name} has problem with it's definition.
939
-
940
- One or more of the dependencies are registered as a InjectableScope.Instance and are used with syncInject.
941
-
942
- Please use inject instead of syncInject to load those dependencies.`);
943
- throw new import_common.NaviosException(
944
- `[ServiceLocator] Service ${target.name} cannot be instantiated.`
945
- );
946
- }
947
- return instance;
948
- }
949
-
950
- // packages/core/src/service-locator/decorators/injectable.decorator.mts
951
- var InjectableType = /* @__PURE__ */ ((InjectableType2) => {
952
- InjectableType2["Class"] = "Class";
953
- InjectableType2["Factory"] = "Factory";
954
- return InjectableType2;
955
- })(InjectableType || {});
956
- var InjectableTokenMeta = Symbol.for("InjectableTokenMeta");
957
- function Injectable({
958
- scope = "Singleton" /* Singleton */,
959
- type = "Class" /* Class */,
960
- token
961
- } = {}) {
962
- return (target, context) => {
963
- if (context.kind !== "class") {
964
- throw new Error(
965
- "[ServiceLocator] @Injectable decorator can only be used on classes."
966
- );
967
- }
968
- let injectableToken = token ?? InjectionToken.create(target);
969
- const locator = getServiceLocator();
970
- if (type === "Class" /* Class */) {
971
- locator.registerAbstractFactory(
972
- injectableToken,
973
- async (ctx) => resolveService(ctx, target),
974
- scope
975
- );
976
- } else if (type === "Factory" /* Factory */) {
977
- locator.registerAbstractFactory(
978
- injectableToken,
979
- async (ctx, args) => {
980
- const builder = await resolveService(ctx, target);
981
- if (typeof builder.create !== "function") {
982
- throw new import_common2.NaviosException(
983
- `[ServiceLocator] Factory ${target.name} does not implement the create method.`
984
- );
985
- }
986
- return builder.create(ctx, args);
987
- },
988
- scope
989
- );
990
- }
991
- target[InjectableTokenMeta] = injectableToken;
992
- return target;
993
- };
994
- }
995
-
996
- // packages/core/src/service-locator/decorators/get-injectable-token.mts
997
- function getInjectableToken(target) {
998
- const token = target[InjectableTokenMeta];
999
- if (!token) {
1000
- throw new Error(
1001
- `[ServiceLocator] Class ${target.name} is not decorated with @Injectable.`
1002
- );
1003
- }
1004
- return token;
1005
- }
1006
-
1007
- // packages/core/src/service-locator/event-emitter.mts
1008
- var EventEmitter = class {
1009
- listeners = /* @__PURE__ */ new Map();
1010
- on(event, listener) {
1011
- if (!this.listeners.has(event)) {
1012
- this.listeners.set(event, /* @__PURE__ */ new Set());
1013
- }
1014
- this.listeners.get(event).add(listener);
1015
- return () => {
1016
- this.off(event, listener);
1017
- };
1018
- }
1019
- off(event, listener) {
1020
- if (!this.listeners.has(event)) {
1021
- return;
1022
- }
1023
- this.listeners.get(event).delete(listener);
1024
- if (this.listeners.get(event).size === 0) {
1025
- this.listeners.delete(event);
1026
- }
1027
- }
1028
- once(event, listener) {
1029
- const off = this.on(event, (...args) => {
1030
- off();
1031
- listener(...args);
1032
- });
1033
- return off;
1034
- }
1035
- async emit(event, ...args) {
1036
- if (!this.listeners.has(event)) {
1037
- return;
1038
- }
1039
- return Promise.all(Array.from(this.listeners.get(event)).map((listener) => listener(...args)));
1040
- }
1041
- addChannel(ns, event, target) {
1042
- return this.on(event, (...args) => target.emit(ns, event, ...args));
1043
- }
1044
- };
1045
-
1046
- // packages/core/src/service-locator/inject.mts
1047
- function inject(token, args) {
1048
- let realToken = token;
1049
- if (!(token instanceof InjectionToken)) {
1050
- realToken = getInjectableToken(token);
1051
- }
1052
- return getServiceLocator().getOrThrowInstance(realToken, args);
1053
- }
1054
-
1055
- // packages/core/src/service-locator/override.mts
1056
- function override(token, target) {
1057
- const serviceLocator2 = getServiceLocator();
1058
- const originalDefinition = serviceLocator2["abstractFactories"].get(token);
1059
- serviceLocator2.registerAbstractFactory(token, async (ctx, args) => {
1060
- const builder = new target();
1061
- return builder.create(ctx, args);
1062
- });
1063
- return () => {
1064
- if (originalDefinition) {
1065
- serviceLocator2.registerAbstractFactory(token, originalDefinition);
1066
- }
1067
- };
1068
- }
159
+ // packages/core/src/adapters/endpoint-adapter.service.mts
160
+ var import_di2 = require("@navios/di");
1069
161
 
1070
162
  // packages/core/src/adapters/stream-adapter.service.mts
1071
- var StreamAdapterToken = InjectionToken.create(
163
+ var import_di = require("@navios/di");
164
+ var StreamAdapterToken = import_di.InjectionToken.create(
1072
165
  Symbol.for("StreamAdapterService")
1073
166
  );
1074
167
  var _StreamAdapterService_decorators, _init;
1075
- _StreamAdapterService_decorators = [Injectable({
168
+ _StreamAdapterService_decorators = [(0, import_di.Injectable)({
1076
169
  token: StreamAdapterToken
1077
170
  })];
1078
171
  var StreamAdapterService = class {
@@ -1115,7 +208,7 @@ var StreamAdapterService = class {
1115
208
  return argument;
1116
209
  };
1117
210
  return async function(request, reply) {
1118
- const controllerInstance = await inject(controller);
211
+ const controllerInstance = await (0, import_di.inject)(controller);
1119
212
  const argument = await formatArguments(request);
1120
213
  await controllerInstance[handlerMetadata.classMethod](argument, reply);
1121
214
  };
@@ -1137,11 +230,11 @@ StreamAdapterService = __decorateElement(_init, 0, "StreamAdapterService", _Stre
1137
230
  __runInitializers(_init, 1, StreamAdapterService);
1138
231
 
1139
232
  // packages/core/src/adapters/endpoint-adapter.service.mts
1140
- var EndpointAdapterToken = InjectionToken.create(
233
+ var EndpointAdapterToken = import_di2.InjectionToken.create(
1141
234
  Symbol.for("EndpointAdapterService")
1142
235
  );
1143
236
  var _EndpointAdapterService_decorators, _init2, _a;
1144
- _EndpointAdapterService_decorators = [Injectable({
237
+ _EndpointAdapterService_decorators = [(0, import_di2.Injectable)({
1145
238
  token: EndpointAdapterToken
1146
239
  })];
1147
240
  var EndpointAdapterService = class extends (_a = StreamAdapterService) {
@@ -1174,7 +267,7 @@ var EndpointAdapterService = class extends (_a = StreamAdapterService) {
1174
267
  return argument;
1175
268
  };
1176
269
  return async function(request, reply) {
1177
- const controllerInstance = await inject(controller);
270
+ const controllerInstance = await (0, import_di2.inject)(controller);
1178
271
  const argument = await formatArguments(request);
1179
272
  const result = await controllerInstance[handlerMetadata.classMethod](argument);
1180
273
  reply.status(handlerMetadata.successStatusCode).headers(handlerMetadata.headers).send(result);
@@ -1186,12 +279,13 @@ EndpointAdapterService = __decorateElement(_init2, 0, "EndpointAdapterService",
1186
279
  __runInitializers(_init2, 1, EndpointAdapterService);
1187
280
 
1188
281
  // packages/core/src/adapters/multipart-adapter.service.mts
1189
- var import_zod2 = require("zod");
1190
- var MultipartAdapterToken = InjectionToken.create(
282
+ var import_di3 = require("@navios/di");
283
+ var import_zod = require("zod");
284
+ var MultipartAdapterToken = import_di3.InjectionToken.create(
1191
285
  Symbol.for("MultipartAdapterService")
1192
286
  );
1193
287
  var _MultipartAdapterService_decorators, _init3, _a2;
1194
- _MultipartAdapterService_decorators = [Injectable({
288
+ _MultipartAdapterService_decorators = [(0, import_di3.Injectable)({
1195
289
  token: MultipartAdapterToken
1196
290
  })];
1197
291
  var MultipartAdapterService = class extends (_a2 = EndpointAdapterService) {
@@ -1246,15 +340,15 @@ var MultipartAdapterService = class extends (_a2 = EndpointAdapterService) {
1246
340
  return Object.keys(shape).reduce(
1247
341
  (target, key) => {
1248
342
  let schema = shape[key];
1249
- const isOptional = schema instanceof import_zod2.ZodOptional;
343
+ const isOptional = schema instanceof import_zod.ZodOptional;
1250
344
  if (isOptional) {
1251
345
  schema = schema.unwrap();
1252
346
  }
1253
- const isArray = schema instanceof import_zod2.ZodArray;
347
+ const isArray = schema instanceof import_zod.ZodArray;
1254
348
  if (isArray) {
1255
349
  schema = schema.element;
1256
350
  }
1257
- const isObject2 = schema instanceof import_zod2.ZodObject;
351
+ const isObject2 = schema instanceof import_zod.ZodObject;
1258
352
  return {
1259
353
  ...target,
1260
354
  [key]: {
@@ -1296,7 +390,8 @@ function envString(key, defaultValue) {
1296
390
  }
1297
391
 
1298
392
  // packages/core/src/config/config.provider.mts
1299
- var import_zod4 = require("zod");
393
+ var import_di14 = require("@navios/di");
394
+ var import_zod3 = require("zod");
1300
395
 
1301
396
  // packages/core/src/logger/utils/cli-colors.util.mts
1302
397
  var isColorAllowed = () => !process.env.NO_COLOR;
@@ -1395,13 +490,21 @@ var isSymbol = (val) => typeof val === "symbol";
1395
490
 
1396
491
  // packages/core/src/logger/console-logger.service.mts
1397
492
  var import_util = require("util");
493
+ var import_di11 = require("@navios/di");
1398
494
 
1399
495
  // packages/core/src/tokens/application.token.mts
496
+ var import_di4 = require("@navios/di");
1400
497
  var ApplicationInjectionToken = "ApplicationInjectionToken";
1401
- var Application = InjectionToken.create(
498
+ var Application = import_di4.InjectionToken.create(
1402
499
  ApplicationInjectionToken
1403
500
  );
1404
501
 
502
+ // packages/core/src/tokens/execution-context.token.mts
503
+ var import_di8 = require("@navios/di");
504
+
505
+ // packages/core/src/services/controller-adapter.service.mts
506
+ var import_di6 = require("@navios/di");
507
+
1405
508
  // packages/core/src/metadata/handler.metadata.mts
1406
509
  var EndpointMetadataKey = Symbol("EndpointMetadataKey");
1407
510
  function getAllEndpointMetadata(context) {
@@ -1557,6 +660,9 @@ var ExecutionContext = class {
1557
660
  }
1558
661
  };
1559
662
 
663
+ // packages/core/src/services/guard-runner.service.mts
664
+ var import_di5 = require("@navios/di");
665
+
1560
666
  // packages/core/src/exceptions/http.exception.mts
1561
667
  var HttpException = class {
1562
668
  constructor(statusCode, response, error) {
@@ -1612,12 +718,12 @@ var ConflictException = class extends HttpException {
1612
718
 
1613
719
  // packages/core/src/services/guard-runner.service.mts
1614
720
  var _GuardRunnerService_decorators, _init4;
1615
- _GuardRunnerService_decorators = [Injectable()];
721
+ _GuardRunnerService_decorators = [(0, import_di5.Injectable)()];
1616
722
  var GuardRunnerService = class {
1617
723
  async runGuards(allGuards, executionContext) {
1618
724
  let canActivate = true;
1619
725
  for (const guard of Array.from(allGuards).reverse()) {
1620
- const guardInstance = await inject(
726
+ const guardInstance = await (0, import_di5.inject)(
1621
727
  guard
1622
728
  );
1623
729
  if (!guardInstance.canActivate) {
@@ -1680,10 +786,10 @@ __runInitializers(_init4, 1, GuardRunnerService);
1680
786
 
1681
787
  // packages/core/src/services/controller-adapter.service.mts
1682
788
  var _ControllerAdapterService_decorators, _init5;
1683
- _ControllerAdapterService_decorators = [Injectable()];
789
+ _ControllerAdapterService_decorators = [(0, import_di6.Injectable)()];
1684
790
  var _ControllerAdapterService = class _ControllerAdapterService {
1685
- guardRunner = syncInject(GuardRunnerService);
1686
- logger = syncInject(Logger, {
791
+ guardRunner = (0, import_di6.syncInject)(GuardRunnerService);
792
+ logger = (0, import_di6.syncInject)(Logger, {
1687
793
  context: _ControllerAdapterService.name
1688
794
  });
1689
795
  async setupController(controller, instance, moduleMetadata) {
@@ -1696,7 +802,7 @@ var _ControllerAdapterService = class _ControllerAdapterService {
1696
802
  `[Navios] Malformed Endpoint ${controller.name}:${classMethod}`
1697
803
  );
1698
804
  }
1699
- const adapter = await inject(
805
+ const adapter = await (0, import_di6.inject)(
1700
806
  adapterToken
1701
807
  );
1702
808
  const executionContext = new ExecutionContext(
@@ -1749,11 +855,11 @@ var _ControllerAdapterService = class _ControllerAdapterService {
1749
855
  ) : void 0;
1750
856
  }
1751
857
  wrapHandler(executionContext, handler) {
1752
- const locator = getServiceLocator();
858
+ const locator = (0, import_di6.getGlobalServiceLocator)();
1753
859
  return async (request, reply) => {
1754
- locator.registerInstance(Request, request);
1755
- locator.registerInstance(Reply, reply);
1756
- locator.registerInstance(ExecutionContextToken, executionContext);
860
+ locator.storeInstance(request, Request);
861
+ locator.storeInstance(reply, Reply);
862
+ locator.storeInstance(executionContext, ExecutionContextToken);
1757
863
  executionContext.provideRequest(request);
1758
864
  executionContext.provideReply(reply);
1759
865
  try {
@@ -1776,10 +882,11 @@ __runInitializers(_init5, 1, _ControllerAdapterService);
1776
882
  var ControllerAdapterService = _ControllerAdapterService;
1777
883
 
1778
884
  // packages/core/src/services/module-loader.service.mts
885
+ var import_di7 = require("@navios/di");
1779
886
  var _ModuleLoaderService_decorators, _init6;
1780
- _ModuleLoaderService_decorators = [Injectable()];
887
+ _ModuleLoaderService_decorators = [(0, import_di7.Injectable)()];
1781
888
  var _ModuleLoaderService = class _ModuleLoaderService {
1782
- logger = syncInject(Logger, {
889
+ logger = (0, import_di7.syncInject)(Logger, {
1783
890
  context: _ModuleLoaderService.name
1784
891
  });
1785
892
  modulesMetadata = /* @__PURE__ */ new Map();
@@ -1807,7 +914,7 @@ var _ModuleLoaderService = class _ModuleLoaderService {
1807
914
  async (importedModule) => this.traverseModules(importedModule, metadata)
1808
915
  );
1809
916
  await Promise.all(loadingPromises);
1810
- const instance = await inject(module2);
917
+ const instance = await (0, import_di7.inject)(module2);
1811
918
  if (instance.onModuleInit) {
1812
919
  await instance.onModuleInit();
1813
920
  }
@@ -1845,17 +952,19 @@ var ModuleLoaderService = _ModuleLoaderService;
1845
952
 
1846
953
  // packages/core/src/tokens/execution-context.token.mts
1847
954
  var ExecutionContextInjectionToken = "ExecutionContextInjectionToken";
1848
- var ExecutionContextToken = InjectionToken.create(
955
+ var ExecutionContextToken = import_di8.InjectionToken.create(
1849
956
  ExecutionContextInjectionToken
1850
957
  );
1851
958
 
1852
959
  // packages/core/src/tokens/reply.token.mts
960
+ var import_di9 = require("@navios/di");
1853
961
  var ReplyInjectionToken = "ReplyInjectionToken";
1854
- var Reply = InjectionToken.create(ReplyInjectionToken);
962
+ var Reply = import_di9.InjectionToken.create(ReplyInjectionToken);
1855
963
 
1856
964
  // packages/core/src/tokens/request.token.mts
965
+ var import_di10 = require("@navios/di");
1857
966
  var RequestInjectionToken = "RequestInjectionToken";
1858
- var Request = InjectionToken.create(
967
+ var Request = import_di10.InjectionToken.create(
1859
968
  RequestInjectionToken
1860
969
  );
1861
970
 
@@ -1878,7 +987,7 @@ var dateTimeFormatter = new Intl.DateTimeFormat(void 0, {
1878
987
  month: "2-digit"
1879
988
  });
1880
989
  var _ConsoleLogger_decorators, _init7;
1881
- _ConsoleLogger_decorators = [Injectable()];
990
+ _ConsoleLogger_decorators = [(0, import_di11.Injectable)()];
1882
991
  var _ConsoleLogger = class _ConsoleLogger {
1883
992
  /**
1884
993
  * The options of the logger.
@@ -1917,7 +1026,7 @@ var _ConsoleLogger = class _ConsoleLogger {
1917
1026
  this.originalContext = context;
1918
1027
  }
1919
1028
  if (opts == null ? void 0 : opts.requestId) {
1920
- const locator = getServiceLocator();
1029
+ const locator = (0, import_di11.getGlobalServiceLocator)();
1921
1030
  locator.getEventBus().on(locator.getInstanceIdentifier(Request, void 0), "create", () => {
1922
1031
  const request = locator.getSyncInstance(Request, void 0);
1923
1032
  this.requestId = (request == null ? void 0 : request.id) ?? null;
@@ -2237,9 +1346,11 @@ __runInitializers(_init7, 1, _ConsoleLogger);
2237
1346
  var ConsoleLogger = _ConsoleLogger;
2238
1347
 
2239
1348
  // packages/core/src/logger/logger.factory.mts
2240
- var import_zod3 = require("zod");
1349
+ var import_di13 = require("@navios/di");
1350
+ var import_zod2 = require("zod");
2241
1351
 
2242
1352
  // packages/core/src/logger/logger.service.mts
1353
+ var import_di12 = require("@navios/di");
2243
1354
  var DEFAULT_LOGGER = new ConsoleLogger();
2244
1355
  var dateTimeFormatter2 = new Intl.DateTimeFormat(void 0, {
2245
1356
  year: "numeric",
@@ -2250,7 +1361,7 @@ var dateTimeFormatter2 = new Intl.DateTimeFormat(void 0, {
2250
1361
  month: "2-digit"
2251
1362
  });
2252
1363
  var _LoggerInstance_decorators, _init8;
2253
- _LoggerInstance_decorators = [Injectable()];
1364
+ _LoggerInstance_decorators = [(0, import_di12.Injectable)()];
2254
1365
  var _LoggerInstance = class _LoggerInstance {
2255
1366
  constructor(context, options = {}) {
2256
1367
  this.context = context;
@@ -2364,16 +1475,16 @@ var LoggerInstance = _LoggerInstance;
2364
1475
 
2365
1476
  // packages/core/src/logger/logger.factory.mts
2366
1477
  var LoggerInjectionToken = "LoggerInjectionToken";
2367
- var LoggerOptions = import_zod3.z.object({
2368
- context: import_zod3.z.string().optional(),
2369
- options: import_zod3.z.object({
2370
- timestamp: import_zod3.z.boolean().optional()
1478
+ var LoggerOptions = import_zod2.z.object({
1479
+ context: import_zod2.z.string().optional(),
1480
+ options: import_zod2.z.object({
1481
+ timestamp: import_zod2.z.boolean().optional()
2371
1482
  }).optional()
2372
1483
  }).optional();
2373
- var Logger = InjectionToken.create(LoggerInjectionToken, LoggerOptions);
1484
+ var Logger = import_di13.InjectionToken.create(LoggerInjectionToken, LoggerOptions);
2374
1485
  var _LoggerFactory_decorators, _init9;
2375
- _LoggerFactory_decorators = [Injectable({
2376
- type: "Factory" /* Factory */,
1486
+ _LoggerFactory_decorators = [(0, import_di13.Injectable)({
1487
+ type: import_di13.InjectableType.Factory,
2377
1488
  token: Logger
2378
1489
  })];
2379
1490
  var LoggerFactory = class {
@@ -2438,7 +1549,7 @@ var PinoWrapper = class _PinoWrapper {
2438
1549
  };
2439
1550
 
2440
1551
  // packages/core/src/config/config.service.mts
2441
- var import_common3 = require("@navios/common");
1552
+ var import_common = require("@navios/common");
2442
1553
  var ConfigServiceInstance = class {
2443
1554
  constructor(config = {}, logger) {
2444
1555
  this.config = config;
@@ -2477,24 +1588,24 @@ var ConfigServiceInstance = class {
2477
1588
  if (value === null) {
2478
1589
  const message = errorMessage || `Configuration value for key "${String(key)}" is not defined`;
2479
1590
  this.logger.error(message);
2480
- throw new import_common3.NaviosException(message);
1591
+ throw new import_common.NaviosException(message);
2481
1592
  }
2482
1593
  return value;
2483
1594
  }
2484
1595
  };
2485
1596
 
2486
1597
  // packages/core/src/config/config.provider.mts
2487
- var ConfigProviderOptions = import_zod4.z.object({
2488
- load: import_zod4.z.function()
1598
+ var ConfigProviderOptions = import_zod3.z.object({
1599
+ load: import_zod3.z.function()
2489
1600
  });
2490
- var ConfigProvider = InjectionToken.create(ConfigServiceInstance, ConfigProviderOptions);
1601
+ var ConfigProvider = import_di14.InjectionToken.create(ConfigServiceInstance, ConfigProviderOptions);
2491
1602
  var _ConfigProviderFactory_decorators, _init10;
2492
- _ConfigProviderFactory_decorators = [Injectable({
1603
+ _ConfigProviderFactory_decorators = [(0, import_di14.Injectable)({
2493
1604
  token: ConfigProvider,
2494
- type: "Factory" /* Factory */
1605
+ type: import_di14.InjectableType.Factory
2495
1606
  })];
2496
1607
  var ConfigProviderFactory = class {
2497
- logger = syncInject(Logger, {
1608
+ logger = (0, import_di14.syncInject)(Logger, {
2498
1609
  context: "ConfigService"
2499
1610
  });
2500
1611
  async create(ctx, args) {
@@ -2516,10 +1627,11 @@ _init10 = __decoratorStart(null);
2516
1627
  ConfigProviderFactory = __decorateElement(_init10, 0, "ConfigProviderFactory", _ConfigProviderFactory_decorators, ConfigProviderFactory);
2517
1628
  __runInitializers(_init10, 1, ConfigProviderFactory);
2518
1629
  function provideConfig(options) {
2519
- return InjectionToken.bound(ConfigProvider, options);
1630
+ return import_di14.InjectionToken.bound(ConfigProvider, options);
2520
1631
  }
2521
1632
 
2522
1633
  // packages/core/src/decorators/controller.decorator.mts
1634
+ var import_di15 = require("@navios/di");
2523
1635
  function Controller({ guards } = {}) {
2524
1636
  return function(target, context) {
2525
1637
  if (context.kind !== "class") {
@@ -2527,7 +1639,7 @@ function Controller({ guards } = {}) {
2527
1639
  "[Navios] @Controller decorator can only be used on classes."
2528
1640
  );
2529
1641
  }
2530
- const token = InjectionToken.create(target);
1642
+ const token = import_di15.InjectionToken.create(target);
2531
1643
  if (context.metadata) {
2532
1644
  const controllerMetadata = getControllerMetadata(target, context);
2533
1645
  if (guards) {
@@ -2536,15 +1648,15 @@ function Controller({ guards } = {}) {
2536
1648
  }
2537
1649
  }
2538
1650
  }
2539
- return Injectable({
1651
+ return (0, import_di15.Injectable)({
2540
1652
  token,
2541
- scope: "Instance" /* Instance */
1653
+ scope: import_di15.InjectableScope.Instance
2542
1654
  })(target, context);
2543
1655
  };
2544
1656
  }
2545
1657
 
2546
1658
  // packages/core/src/decorators/endpoint.decorator.mts
2547
- var import_zod5 = require("zod");
1659
+ var import_zod4 = require("zod");
2548
1660
  function Endpoint(endpoint) {
2549
1661
  return (target, context) => {
2550
1662
  if (typeof target !== "function") {
@@ -2579,13 +1691,13 @@ function Endpoint(endpoint) {
2579
1691
  }
2580
1692
 
2581
1693
  // packages/core/src/decorators/header.decorator.mts
2582
- function Header(name2, value) {
1694
+ function Header(name, value) {
2583
1695
  return (target, context) => {
2584
1696
  if (context.kind !== "method") {
2585
1697
  throw new Error("[Navios] Header decorator can only be used on methods.");
2586
1698
  }
2587
1699
  const metadata = getEndpointMetadata(target, context);
2588
- metadata.headers[name2] = value;
1700
+ metadata.headers[name] = value;
2589
1701
  return target;
2590
1702
  };
2591
1703
  }
@@ -2605,6 +1717,7 @@ function HttpCode(code) {
2605
1717
  }
2606
1718
 
2607
1719
  // packages/core/src/decorators/module.decorator.mts
1720
+ var import_di16 = require("@navios/di");
2608
1721
  function Module({ controllers = [], imports = [], guards = [] } = {
2609
1722
  controllers: [],
2610
1723
  imports: [],
@@ -2614,7 +1727,7 @@ function Module({ controllers = [], imports = [], guards = [] } = {
2614
1727
  if (context.kind !== "class") {
2615
1728
  throw new Error("[Navios] @Module decorator can only be used on classes.");
2616
1729
  }
2617
- const token = InjectionToken.create(target);
1730
+ const token = import_di16.InjectionToken.create(target);
2618
1731
  const moduleMetadata = getModuleMetadata(target, context);
2619
1732
  for (const controller of controllers) {
2620
1733
  moduleMetadata.controllers.add(controller);
@@ -2625,15 +1738,15 @@ function Module({ controllers = [], imports = [], guards = [] } = {
2625
1738
  for (const guard of Array.from(guards).reverse()) {
2626
1739
  moduleMetadata.guards.add(guard);
2627
1740
  }
2628
- return Injectable({
1741
+ return (0, import_di16.Injectable)({
2629
1742
  token,
2630
- scope: "Singleton" /* Singleton */
1743
+ scope: import_di16.InjectableScope.Singleton
2631
1744
  })(target, context);
2632
1745
  };
2633
1746
  }
2634
1747
 
2635
1748
  // packages/core/src/decorators/multipart.decorator.mts
2636
- var import_zod6 = require("zod");
1749
+ var import_zod5 = require("zod");
2637
1750
  function Multipart(endpoint) {
2638
1751
  return (target, context) => {
2639
1752
  if (typeof target !== "function") {
@@ -2784,16 +1897,17 @@ var AttributeFactory = class {
2784
1897
  };
2785
1898
 
2786
1899
  // packages/core/src/navios.application.mts
1900
+ var import_di17 = require("@navios/di");
2787
1901
  var import_cors = __toESM(require("@fastify/cors"), 1);
2788
1902
  var import_multipart = __toESM(require("@fastify/multipart"), 1);
2789
1903
  var import_fastify = require("fastify");
2790
1904
  var import_fastify_type_provider_zod = require("fastify-type-provider-zod");
2791
1905
  var _NaviosApplication_decorators, _init11;
2792
- _NaviosApplication_decorators = [Injectable()];
1906
+ _NaviosApplication_decorators = [(0, import_di17.Injectable)()];
2793
1907
  var _NaviosApplication = class _NaviosApplication {
2794
- moduleLoader = syncInject(ModuleLoaderService);
2795
- controllerAdapter = syncInject(ControllerAdapterService);
2796
- logger = syncInject(Logger, {
1908
+ moduleLoader = (0, import_di17.syncInject)(ModuleLoaderService);
1909
+ controllerAdapter = (0, import_di17.syncInject)(ControllerAdapterService);
1910
+ logger = (0, import_di17.syncInject)(Logger, {
2797
1911
  context: _NaviosApplication.name
2798
1912
  });
2799
1913
  server = null;
@@ -2814,7 +1928,7 @@ var _NaviosApplication = class _NaviosApplication {
2814
1928
  await this.moduleLoader.loadModules(this.appModule);
2815
1929
  this.server = await this.getFastifyInstance(this.options);
2816
1930
  this.configureFastifyInstance(this.server);
2817
- getServiceLocator().registerInstance(Application, this.server);
1931
+ (0, import_di17.getGlobalServiceLocator)().storeInstance(this.server, Application);
2818
1932
  this.server.setValidatorCompiler(import_fastify_type_provider_zod.validatorCompiler);
2819
1933
  this.server.setSerializerCompiler(import_fastify_type_provider_zod.serializerCompiler);
2820
1934
  if (this.corsOptions) {
@@ -2838,7 +1952,7 @@ var _NaviosApplication = class _NaviosApplication {
2838
1952
  }
2839
1953
  } else {
2840
1954
  fastifyOptions.loggerInstance = new PinoWrapper(
2841
- await inject(Logger, {
1955
+ await (0, import_di17.inject)(Logger, {
2842
1956
  context: "FastifyAdapter"
2843
1957
  })
2844
1958
  );
@@ -2848,7 +1962,7 @@ var _NaviosApplication = class _NaviosApplication {
2848
1962
  return (0, import_fastify.fastify)({
2849
1963
  ...options,
2850
1964
  loggerInstance: new PinoWrapper(
2851
- await inject(Logger, {
1965
+ await (0, import_di17.inject)(Logger, {
2852
1966
  context: "FastifyAdapter"
2853
1967
  })
2854
1968
  )
@@ -2959,9 +2073,10 @@ __runInitializers(_init11, 1, _NaviosApplication);
2959
2073
  var NaviosApplication = _NaviosApplication;
2960
2074
 
2961
2075
  // packages/core/src/navios.factory.mts
2076
+ var import_di18 = require("@navios/di");
2962
2077
  var NaviosFactory = class {
2963
2078
  static async create(appModule, options = {}) {
2964
- const app = await inject(NaviosApplication);
2079
+ const app = await (0, import_di18.inject)(NaviosApplication);
2965
2080
  this.registerLoggerConfiguration(options);
2966
2081
  app.setup(appModule, options);
2967
2082
  return app;
@@ -2981,7 +2096,6 @@ var NaviosFactory = class {
2981
2096
  Application,
2982
2097
  AttributeFactory,
2983
2098
  BadRequestException,
2984
- BoundInjectionToken,
2985
2099
  ConfigProvider,
2986
2100
  ConfigProviderFactory,
2987
2101
  ConfigProviderOptions,
@@ -2995,27 +2109,14 @@ var NaviosFactory = class {
2995
2109
  EndpointAdapterService,
2996
2110
  EndpointAdapterToken,
2997
2111
  EndpointMetadataKey,
2998
- ErrorsEnum,
2999
- EventEmitter,
3000
2112
  ExecutionContext,
3001
2113
  ExecutionContextInjectionToken,
3002
2114
  ExecutionContextToken,
3003
- FactoryInjectionToken,
3004
- FactoryNotFound,
3005
- FactoryTokenNotResolved,
3006
2115
  ForbiddenException,
3007
2116
  GuardRunnerService,
3008
2117
  Header,
3009
2118
  HttpCode,
3010
2119
  HttpException,
3011
- Injectable,
3012
- InjectableScope,
3013
- InjectableTokenMeta,
3014
- InjectableType,
3015
- InjectionToken,
3016
- InstanceDestroying,
3017
- InstanceExpired,
3018
- InstanceNotFound,
3019
2120
  InternalServerErrorException,
3020
2121
  LOG_LEVELS,
3021
2122
  Logger,
@@ -3035,16 +2136,10 @@ var NaviosFactory = class {
3035
2136
  PinoWrapper,
3036
2137
  Reply,
3037
2138
  Request,
3038
- ServiceLocator,
3039
- ServiceLocatorEventBus,
3040
- ServiceLocatorInstanceHolderKind,
3041
- ServiceLocatorInstanceHolderStatus,
3042
- ServiceLocatorManager,
3043
2139
  Stream,
3044
2140
  StreamAdapterService,
3045
2141
  StreamAdapterToken,
3046
2142
  UnauthorizedException,
3047
- UnknownError,
3048
2143
  UseGuards,
3049
2144
  addLeadingSlash,
3050
2145
  clc,
@@ -3056,12 +2151,9 @@ var NaviosFactory = class {
3056
2151
  getAllEndpointMetadata,
3057
2152
  getControllerMetadata,
3058
2153
  getEndpointMetadata,
3059
- getInjectableToken,
3060
2154
  getModuleMetadata,
3061
- getServiceLocator,
3062
2155
  hasControllerMetadata,
3063
2156
  hasModuleMetadata,
3064
- inject,
3065
2157
  isConstructor,
3066
2158
  isEmpty,
3067
2159
  isFunction,
@@ -3075,12 +2167,8 @@ var NaviosFactory = class {
3075
2167
  isSymbol,
3076
2168
  isUndefined,
3077
2169
  normalizePath,
3078
- override,
3079
2170
  provideConfig,
3080
- provideServiceLocator,
3081
- resolveService,
3082
- setPromiseCollector,
3083
2171
  stripEndSlash,
3084
- syncInject,
3085
- yellow
2172
+ yellow,
2173
+ ...require("@navios/di")
3086
2174
  });