@navios/di 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +211 -1
  2. package/coverage/clover.xml +1912 -1277
  3. package/coverage/coverage-final.json +37 -28
  4. package/coverage/docs/examples/basic-usage.mts.html +1 -1
  5. package/coverage/docs/examples/factory-pattern.mts.html +1 -1
  6. package/coverage/docs/examples/index.html +1 -1
  7. package/coverage/docs/examples/injection-tokens.mts.html +1 -1
  8. package/coverage/docs/examples/request-scope-example.mts.html +1 -1
  9. package/coverage/docs/examples/service-lifecycle.mts.html +1 -1
  10. package/coverage/index.html +71 -41
  11. package/coverage/lib/_tsup-dts-rollup.d.mts.html +682 -43
  12. package/coverage/lib/index.d.mts.html +7 -4
  13. package/coverage/lib/index.html +5 -5
  14. package/coverage/lib/testing/index.d.mts.html +91 -0
  15. package/coverage/lib/testing/index.html +116 -0
  16. package/coverage/src/base-instance-holder-manager.mts.html +589 -0
  17. package/coverage/src/container.mts.html +257 -74
  18. package/coverage/src/decorators/factory.decorator.mts.html +1 -1
  19. package/coverage/src/decorators/index.html +1 -1
  20. package/coverage/src/decorators/index.mts.html +1 -1
  21. package/coverage/src/decorators/injectable.decorator.mts.html +20 -20
  22. package/coverage/src/enums/index.html +1 -1
  23. package/coverage/src/enums/index.mts.html +1 -1
  24. package/coverage/src/enums/injectable-scope.enum.mts.html +1 -1
  25. package/coverage/src/enums/injectable-type.enum.mts.html +1 -1
  26. package/coverage/src/errors/di-error.mts.html +292 -0
  27. package/coverage/src/errors/errors.enum.mts.html +30 -21
  28. package/coverage/src/errors/factory-not-found.mts.html +31 -22
  29. package/coverage/src/errors/factory-token-not-resolved.mts.html +29 -26
  30. package/coverage/src/errors/index.html +56 -41
  31. package/coverage/src/errors/index.mts.html +15 -9
  32. package/coverage/src/errors/instance-destroying.mts.html +31 -22
  33. package/coverage/src/errors/instance-expired.mts.html +31 -22
  34. package/coverage/src/errors/instance-not-found.mts.html +31 -22
  35. package/coverage/src/errors/unknown-error.mts.html +31 -43
  36. package/coverage/src/event-emitter.mts.html +14 -14
  37. package/coverage/src/factory-context.mts.html +1 -1
  38. package/coverage/src/index.html +121 -46
  39. package/coverage/src/index.mts.html +7 -4
  40. package/coverage/src/injection-token.mts.html +28 -28
  41. package/coverage/src/injector.mts.html +1 -1
  42. package/coverage/src/instance-resolver.mts.html +1762 -0
  43. package/coverage/src/interfaces/factory.interface.mts.html +1 -1
  44. package/coverage/src/interfaces/index.html +1 -1
  45. package/coverage/src/interfaces/index.mts.html +1 -1
  46. package/coverage/src/interfaces/on-service-destroy.interface.mts.html +1 -1
  47. package/coverage/src/interfaces/on-service-init.interface.mts.html +1 -1
  48. package/coverage/src/registry.mts.html +28 -28
  49. package/coverage/src/request-context-holder.mts.html +183 -102
  50. package/coverage/src/request-context-manager.mts.html +532 -0
  51. package/coverage/src/service-instantiator.mts.html +49 -49
  52. package/coverage/src/service-invalidator.mts.html +1372 -0
  53. package/coverage/src/service-locator-event-bus.mts.html +48 -48
  54. package/coverage/src/service-locator-instance-holder.mts.html +2 -14
  55. package/coverage/src/service-locator-manager.mts.html +71 -335
  56. package/coverage/src/service-locator.mts.html +240 -2328
  57. package/coverage/src/symbols/index.html +1 -1
  58. package/coverage/src/symbols/index.mts.html +1 -1
  59. package/coverage/src/symbols/injectable-token.mts.html +1 -1
  60. package/coverage/src/testing/index.html +131 -0
  61. package/coverage/src/testing/index.mts.html +88 -0
  62. package/coverage/src/testing/test-container.mts.html +445 -0
  63. package/coverage/src/token-processor.mts.html +607 -0
  64. package/coverage/src/utils/defer.mts.html +28 -214
  65. package/coverage/src/utils/get-injectable-token.mts.html +7 -7
  66. package/coverage/src/utils/get-injectors.mts.html +99 -99
  67. package/coverage/src/utils/index.html +15 -15
  68. package/coverage/src/utils/index.mts.html +4 -7
  69. package/coverage/src/utils/types.mts.html +1 -1
  70. package/docs/injectable.md +51 -11
  71. package/docs/scopes.md +63 -29
  72. package/lib/_tsup-dts-rollup.d.mts +376 -213
  73. package/lib/_tsup-dts-rollup.d.ts +376 -213
  74. package/lib/{chunk-3NLYPYBY.mjs → chunk-44F3LXW5.mjs} +1021 -605
  75. package/lib/chunk-44F3LXW5.mjs.map +1 -0
  76. package/lib/index.d.mts +6 -4
  77. package/lib/index.d.ts +6 -4
  78. package/lib/index.js +1192 -776
  79. package/lib/index.js.map +1 -1
  80. package/lib/index.mjs +2 -2
  81. package/lib/testing/index.js +1258 -840
  82. package/lib/testing/index.js.map +1 -1
  83. package/lib/testing/index.mjs +1 -1
  84. package/package.json +1 -1
  85. package/src/__tests__/container.spec.mts +47 -13
  86. package/src/__tests__/errors.spec.mts +53 -27
  87. package/src/__tests__/injectable.spec.mts +73 -0
  88. package/src/__tests__/request-scope.spec.mts +0 -2
  89. package/src/__tests__/service-locator-manager.spec.mts +12 -82
  90. package/src/__tests__/service-locator.spec.mts +1009 -1
  91. package/src/__type-tests__/inject.spec-d.mts +30 -7
  92. package/src/__type-tests__/injectable.spec-d.mts +76 -37
  93. package/src/base-instance-holder-manager.mts +2 -9
  94. package/src/container.mts +61 -9
  95. package/src/decorators/injectable.decorator.mts +29 -5
  96. package/src/errors/di-error.mts +69 -0
  97. package/src/errors/index.mts +9 -7
  98. package/src/injection-token.mts +1 -0
  99. package/src/injector.mts +2 -0
  100. package/src/instance-resolver.mts +559 -0
  101. package/src/request-context-holder.mts +0 -2
  102. package/src/request-context-manager.mts +149 -0
  103. package/src/service-invalidator.mts +429 -0
  104. package/src/service-locator-instance-holder.mts +0 -4
  105. package/src/service-locator-manager.mts +10 -40
  106. package/src/service-locator.mts +86 -782
  107. package/src/token-processor.mts +174 -0
  108. package/src/utils/get-injectors.mts +161 -24
  109. package/src/utils/index.mts +0 -1
  110. package/src/utils/types.mts +12 -8
  111. package/lib/chunk-3NLYPYBY.mjs.map +0 -1
  112. package/src/__tests__/defer.spec.mts +0 -166
  113. package/src/errors/errors.enum.mts +0 -8
  114. package/src/errors/factory-not-found.mts +0 -8
  115. package/src/errors/factory-token-not-resolved.mts +0 -10
  116. package/src/errors/instance-destroying.mts +0 -8
  117. package/src/errors/instance-expired.mts +0 -8
  118. package/src/errors/instance-not-found.mts +0 -8
  119. package/src/errors/unknown-error.mts +0 -15
  120. package/src/utils/defer.mts +0 -73
@@ -0,0 +1,292 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/errors/di-error.mts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/errors</a> di-error.mts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>60/60</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">91.66% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>11/12</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>7/7</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>60/60</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
136
+ <span class="cline-any cline-yes">1x</span>
137
+ <span class="cline-any cline-yes">1x</span>
138
+ <span class="cline-any cline-yes">1x</span>
139
+ <span class="cline-any cline-yes">1x</span>
140
+ <span class="cline-any cline-yes">1x</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-yes">1x</span>
144
+ <span class="cline-any cline-yes">380x</span>
145
+ <span class="cline-any cline-yes">380x</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-yes">380x</span>
148
+ <span class="cline-any cline-yes">380x</span>
149
+ <span class="cline-any cline-yes">380x</span>
150
+ <span class="cline-any cline-yes">380x</span>
151
+ <span class="cline-any cline-yes">380x</span>
152
+ <span class="cline-any cline-yes">380x</span>
153
+ <span class="cline-any cline-yes">380x</span>
154
+ <span class="cline-any cline-yes">380x</span>
155
+ <span class="cline-any cline-yes">380x</span>
156
+ <span class="cline-any cline-yes">380x</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-yes">380x</span>
160
+ <span class="cline-any cline-yes">2x</span>
161
+ <span class="cline-any cline-yes">2x</span>
162
+ <span class="cline-any cline-yes">2x</span>
163
+ <span class="cline-any cline-yes">2x</span>
164
+ <span class="cline-any cline-yes">2x</span>
165
+ <span class="cline-any cline-yes">2x</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-yes">380x</span>
168
+ <span class="cline-any cline-yes">17x</span>
169
+ <span class="cline-any cline-yes">17x</span>
170
+ <span class="cline-any cline-yes">17x</span>
171
+ <span class="cline-any cline-yes">17x</span>
172
+ <span class="cline-any cline-yes">17x</span>
173
+ <span class="cline-any cline-yes">17x</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-yes">380x</span>
176
+ <span class="cline-any cline-yes">350x</span>
177
+ <span class="cline-any cline-yes">350x</span>
178
+ <span class="cline-any cline-yes">350x</span>
179
+ <span class="cline-any cline-yes">350x</span>
180
+ <span class="cline-any cline-yes">350x</span>
181
+ <span class="cline-any cline-yes">350x</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-yes">380x</span>
184
+ <span class="cline-any cline-yes">4x</span>
185
+ <span class="cline-any cline-yes">4x</span>
186
+ <span class="cline-any cline-yes">4x</span>
187
+ <span class="cline-any cline-yes">4x</span>
188
+ <span class="cline-any cline-yes">4x</span>
189
+ <span class="cline-any cline-yes">4x</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-yes">380x</span>
192
+ <span class="cline-any cline-yes">7x</span>
193
+ <span class="cline-any cline-yes">7x</span>
194
+ <span class="cline-any cline-yes">7x</span>
195
+ <span class="cline-any cline-yes">7x</span>
196
+ <span class="cline-any cline-yes">4x</span>
197
+ <span class="cline-any cline-yes">4x</span>
198
+ <span class="cline-any cline-yes">4x</span>
199
+ <span class="cline-any cline-yes">4x</span>
200
+ <span class="cline-any cline-yes">4x</span>
201
+ <span class="cline-any cline-yes">3x</span>
202
+ <span class="cline-any cline-yes">7x</span>
203
+ <span class="cline-any cline-yes">380x</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export enum DIErrorCode {
205
+ FactoryNotFound = 'FactoryNotFound',
206
+ FactoryTokenNotResolved = 'FactoryTokenNotResolved',
207
+ InstanceNotFound = 'InstanceNotFound',
208
+ InstanceDestroying = 'InstanceDestroying',
209
+ UnknownError = 'UnknownError',
210
+ }
211
+ &nbsp;
212
+ export class DIError extends Error {
213
+ public readonly code: DIErrorCode
214
+ public readonly context?: Record&lt;string, unknown&gt;
215
+ &nbsp;
216
+ constructor(
217
+ code: DIErrorCode,
218
+ message: string,
219
+ context?: Record&lt;string, unknown&gt;,
220
+ ) {
221
+ super(message)
222
+ this.name = 'DIError'
223
+ this.code = code
224
+ this.context = context
225
+ }
226
+ &nbsp;
227
+ // Static factory methods for common error types
228
+ static factoryNotFound(name: string): DIError {
229
+ return new DIError(
230
+ DIErrorCode.FactoryNotFound,
231
+ `Factory ${name} not found`,
232
+ { name },
233
+ )
234
+ }
235
+ &nbsp;
236
+ static factoryTokenNotResolved(token: string | symbol | unknown): DIError {
237
+ return new DIError(
238
+ DIErrorCode.FactoryTokenNotResolved,
239
+ `Factory token not resolved: ${token?.toString(<span class="branch-0 cbranch-no" title="branch not covered" >) ?? 'unknown'}</span>`,
240
+ { token },
241
+ )
242
+ }
243
+ &nbsp;
244
+ static instanceNotFound(name: string): DIError {
245
+ return new DIError(
246
+ DIErrorCode.InstanceNotFound,
247
+ `Instance ${name} not found`,
248
+ { name },
249
+ )
250
+ }
251
+ &nbsp;
252
+ static instanceDestroying(name: string): DIError {
253
+ return new DIError(
254
+ DIErrorCode.InstanceDestroying,
255
+ `Instance ${name} destroying`,
256
+ { name },
257
+ )
258
+ }
259
+ &nbsp;
260
+ static unknown(
261
+ message: string | Error,
262
+ context?: Record&lt;string, unknown&gt;,
263
+ ): DIError {
264
+ if (message instanceof Error) {
265
+ return new DIError(DIErrorCode.UnknownError, message.message, {
266
+ ...context,
267
+ parent: message,
268
+ })
269
+ }
270
+ return new DIError(DIErrorCode.UnknownError, message, context)
271
+ }
272
+ }
273
+ &nbsp;</pre></td></tr></table></pre>
274
+
275
+ <div class='push'></div><!-- for sticky footer -->
276
+ </div><!-- /wrapper -->
277
+ <div class='footer quiet pad2 space-top1 center small'>
278
+ Code coverage generated by
279
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
280
+ at 2025-09-21T17:47:07.632Z
281
+ </div>
282
+ <script src="../../prettify.js"></script>
283
+ <script>
284
+ window.onload = function () {
285
+ prettyPrint();
286
+ };
287
+ </script>
288
+ <script src="../../sorter.js"></script>
289
+ <script src="../../block-navigation.js"></script>
290
+ </body>
291
+ </html>
292
+
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>7/7</span>
28
+ <span class='fraction'>8/8</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/1</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>7/7</span>
49
+ <span class='fraction'>8/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -71,30 +71,39 @@
71
71
  <a name='L6'></a><a href='#L6'>6</a>
72
72
  <a name='L7'></a><a href='#L7'>7</a>
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
75
- <span class="cline-any cline-yes">1x</span>
76
- <span class="cline-any cline-yes">1x</span>
77
- <span class="cline-any cline-yes">1x</span>
78
- <span class="cline-any cline-yes">1x</span>
79
- <span class="cline-any cline-yes">1x</span>
80
- <span class="cline-any cline-yes">1x</span>
81
- <span class="cline-any cline-neutral">&nbsp;</span>
82
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export enum ErrorsEnum {
83
- InstanceExpired = 'InstanceExpired',
84
- InstanceNotFound = 'InstanceNotFound',
85
- InstanceDestroying = 'InstanceDestroying',
86
- UnknownError = 'UnknownError',
87
- FactoryNotFound = 'FactoryNotFound',
88
- FactoryTokenNotResolved = 'FactoryTokenNotResolved',
89
- }
90
- &nbsp;</pre></td></tr></table></pre>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">0</span>
78
+ <span class="cline-any cline-no">0</span>
79
+ <span class="cline-any cline-no">0</span>
80
+ <span class="cline-any cline-no">0</span>
81
+ <span class="cline-any cline-no">0</span>
82
+ <span class="cline-any cline-no">0</span>
83
+ <span class="cline-any cline-no">0</span>
84
+ <span class="cline-any cline-no">0</span>
85
+ <span class="cline-any cline-no">0</span>
86
+ <span class="cline-any cline-no">0</span>
87
+ <span class="cline-any cline-no">0</span>
88
+ <span class="cline-any cline-no">0</span></td><td class="text"><pre class="prettyprint lang-js">Unable to lookup source: /Volumes/Dev/Projects/krona/navios/packages/di/src/errors/errors.enum.mts (ENOENT: no such file or directory, open '/Volumes/Dev/Projects/krona/navios/packages/di/src/errors/errors.enum.mts')
89
+ Error: Unable to lookup source: /Volumes/Dev/Projects/krona/navios/packages/di/src/errors/errors.enum.mts (ENOENT: no such file or directory, open '/Volumes/Dev/Projects/krona/navios/packages/di/src/errors/errors.enum.mts')
90
+ at Context.defaultSourceLookup [as sourceFinder] (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/context.js:17:15)
91
+ at Context.getSource (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/context.js:71:21)
92
+ at annotateSourceCode (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
93
+ at HtmlReport.onDetail (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-reports/lib/html/index.js:414:33)
94
+ at Visitor.value (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:38:38)
95
+ at ReportNode.visit (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:88:21)
96
+ at /Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:92:19
97
+ at Array.forEach (<anonymous>)
98
+ at ReportNode.visit (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:91:28)
99
+ at /Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:92:19</pre></td></tr></table></pre>
91
100
 
92
101
  <div class='push'></div><!-- for sticky footer -->
93
102
  </div><!-- /wrapper -->
94
103
  <div class='footer quiet pad2 space-top1 center small'>
95
104
  Code coverage generated by
96
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
- at 2025-09-19T12:38:51.382Z
106
+ at 2025-09-21T17:47:07.632Z
98
107
  </div>
99
108
  <script src="../../prettify.js"></script>
100
109
  <script>
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>7/7</span>
28
+ <span class='fraction'>8/8</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
42
+ <span class='fraction'>0/0</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>7/7</span>
49
+ <span class='fraction'>8/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -71,30 +71,39 @@
71
71
  <a name='L6'></a><a href='#L6'>6</a>
72
72
  <a name='L7'></a><a href='#L7'>7</a>
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
75
- <span class="cline-any cline-neutral">&nbsp;</span>
76
- <span class="cline-any cline-yes">1x</span>
77
- <span class="cline-any cline-yes">2x</span>
78
- <span class="cline-any cline-yes">2x</span>
79
- <span class="cline-any cline-yes">2x</span>
80
- <span class="cline-any cline-yes">2x</span>
81
- <span class="cline-any cline-yes">2x</span>
82
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ErrorsEnum } from './errors.enum.mjs'
83
- &nbsp;
84
- export class FactoryNotFound extends Error {
85
- code = ErrorsEnum.FactoryNotFound
86
- constructor(public name: string) {
87
- super(`Factory ${name} not found`)
88
- }
89
- }
90
- &nbsp;</pre></td></tr></table></pre>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">0</span>
78
+ <span class="cline-any cline-no">0</span>
79
+ <span class="cline-any cline-no">0</span>
80
+ <span class="cline-any cline-no">0</span>
81
+ <span class="cline-any cline-no">0</span>
82
+ <span class="cline-any cline-no">0</span>
83
+ <span class="cline-any cline-no">0</span>
84
+ <span class="cline-any cline-no">0</span>
85
+ <span class="cline-any cline-no">0</span>
86
+ <span class="cline-any cline-no">0</span>
87
+ <span class="cline-any cline-no">0</span>
88
+ <span class="cline-any cline-no">0</span></td><td class="text"><pre class="prettyprint lang-js">Unable to lookup source: /Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-not-found.mts (ENOENT: no such file or directory, open '/Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-not-found.mts')
89
+ Error: Unable to lookup source: /Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-not-found.mts (ENOENT: no such file or directory, open '/Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-not-found.mts')
90
+ at Context.defaultSourceLookup [as sourceFinder] (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/context.js:17:15)
91
+ at Context.getSource (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/context.js:71:21)
92
+ at annotateSourceCode (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
93
+ at HtmlReport.onDetail (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-reports/lib/html/index.js:414:33)
94
+ at Visitor.value (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:38:38)
95
+ at ReportNode.visit (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:88:21)
96
+ at /Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:92:19
97
+ at Array.forEach (<anonymous>)
98
+ at ReportNode.visit (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:91:28)
99
+ at /Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:92:19</pre></td></tr></table></pre>
91
100
 
92
101
  <div class='push'></div><!-- for sticky footer -->
93
102
  </div><!-- /wrapper -->
94
103
  <div class='footer quiet pad2 space-top1 center small'>
95
104
  Code coverage generated by
96
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
- at 2025-09-19T12:38:51.382Z
106
+ at 2025-09-21T17:47:07.632Z
98
107
  </div>
99
108
  <script src="../../prettify.js"></script>
100
109
  <script>
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>7/7</span>
28
+ <span class='fraction'>10/10</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
42
+ <span class='fraction'>0/0</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>7/7</span>
49
+ <span class='fraction'>10/10</span>
50
50
  </div>
51
51
 
52
52
 
@@ -73,34 +73,37 @@
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
74
  <a name='L9'></a><a href='#L9'>9</a>
75
75
  <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
77
- <span class="cline-any cline-neutral">&nbsp;</span>
78
- <span class="cline-any cline-yes">1x</span>
79
- <span class="cline-any cline-neutral">&nbsp;</span>
80
- <span class="cline-any cline-yes">1x</span>
81
- <span class="cline-any cline-yes">16x</span>
82
- <span class="cline-any cline-yes">16x</span>
83
- <span class="cline-any cline-yes">16x</span>
84
- <span class="cline-any cline-yes">16x</span>
85
- <span class="cline-any cline-yes">16x</span>
86
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { ClassType } from '../injection-token.mjs'
87
- &nbsp;
88
- import { ErrorsEnum } from './errors.enum.mjs'
89
- &nbsp;
90
- export class FactoryTokenNotResolved extends Error {
91
- code = ErrorsEnum.FactoryTokenNotResolved
92
- constructor(name: string | symbol | ClassType) {
93
- super(`Factory token not resolved: ${name.toString()}`)
94
- }
95
- }
96
- &nbsp;</pre></td></tr></table></pre>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">0</span>
78
+ <span class="cline-any cline-no">0</span>
79
+ <span class="cline-any cline-no">0</span>
80
+ <span class="cline-any cline-no">0</span>
81
+ <span class="cline-any cline-no">0</span>
82
+ <span class="cline-any cline-no">0</span>
83
+ <span class="cline-any cline-no">0</span>
84
+ <span class="cline-any cline-no">0</span>
85
+ <span class="cline-any cline-no">0</span>
86
+ <span class="cline-any cline-no">0</span>
87
+ <span class="cline-any cline-no">0</span>
88
+ <span class="cline-any cline-no">0</span></td><td class="text"><pre class="prettyprint lang-js">Unable to lookup source: /Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-token-not-resolved.mts (ENOENT: no such file or directory, open '/Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-token-not-resolved.mts')
89
+ Error: Unable to lookup source: /Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-token-not-resolved.mts (ENOENT: no such file or directory, open '/Volumes/Dev/Projects/krona/navios/packages/di/src/errors/factory-token-not-resolved.mts')
90
+ at Context.defaultSourceLookup [as sourceFinder] (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/context.js:17:15)
91
+ at Context.getSource (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/context.js:71:21)
92
+ at annotateSourceCode (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
93
+ at HtmlReport.onDetail (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-reports/lib/html/index.js:414:33)
94
+ at Visitor.value (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:38:38)
95
+ at ReportNode.visit (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:88:21)
96
+ at /Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:92:19
97
+ at Array.forEach (<anonymous>)
98
+ at ReportNode.visit (/Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:91:28)
99
+ at /Volumes/Dev/Projects/krona/navios/node_modules/istanbul-lib-report/lib/tree.js:92:19</pre></td></tr></table></pre>
97
100
 
98
101
  <div class='push'></div><!-- for sticky footer -->
99
102
  </div><!-- /wrapper -->
100
103
  <div class='footer quiet pad2 space-top1 center small'>
101
104
  Code coverage generated by
102
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2025-09-19T12:38:51.382Z
106
+ at 2025-09-21T17:47:07.632Z
104
107
  </div>
105
108
  <script src="../../prettify.js"></script>
106
109
  <script>