@navios/di 0.4.1 → 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 (128) 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 +447 -212
  73. package/lib/_tsup-dts-rollup.d.ts +447 -212
  74. package/lib/chunk-44F3LXW5.mjs +2043 -0
  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 +1199 -773
  79. package/lib/index.js.map +1 -1
  80. package/lib/index.mjs +4 -1599
  81. package/lib/index.mjs.map +1 -1
  82. package/lib/testing/index.d.mts +2 -0
  83. package/lib/testing/index.d.ts +2 -0
  84. package/lib/testing/index.js +2060 -0
  85. package/lib/testing/index.js.map +1 -0
  86. package/lib/testing/index.mjs +73 -0
  87. package/lib/testing/index.mjs.map +1 -0
  88. package/package.json +11 -1
  89. package/src/__tests__/container.spec.mts +47 -13
  90. package/src/__tests__/errors.spec.mts +53 -27
  91. package/src/__tests__/injectable.spec.mts +73 -0
  92. package/src/__tests__/request-scope.spec.mts +0 -2
  93. package/src/__tests__/service-locator-manager.spec.mts +12 -82
  94. package/src/__tests__/service-locator.spec.mts +1009 -1
  95. package/src/__type-tests__/inject.spec-d.mts +30 -7
  96. package/src/__type-tests__/injectable.spec-d.mts +76 -37
  97. package/src/base-instance-holder-manager.mts +2 -9
  98. package/src/container.mts +70 -10
  99. package/src/decorators/injectable.decorator.mts +29 -5
  100. package/src/errors/di-error.mts +69 -0
  101. package/src/errors/index.mts +9 -7
  102. package/src/injection-token.mts +1 -0
  103. package/src/injector.mts +2 -0
  104. package/src/instance-resolver.mts +559 -0
  105. package/src/request-context-holder.mts +0 -2
  106. package/src/request-context-manager.mts +149 -0
  107. package/src/service-invalidator.mts +429 -0
  108. package/src/service-locator-instance-holder.mts +0 -4
  109. package/src/service-locator-manager.mts +10 -40
  110. package/src/service-locator.mts +86 -782
  111. package/src/testing/README.md +80 -0
  112. package/src/testing/__tests__/test-container.spec.mts +173 -0
  113. package/src/testing/index.mts +1 -0
  114. package/src/testing/test-container.mts +120 -0
  115. package/src/token-processor.mts +174 -0
  116. package/src/utils/get-injectors.mts +161 -24
  117. package/src/utils/index.mts +0 -1
  118. package/src/utils/types.mts +12 -8
  119. package/tsup.config.mts +1 -1
  120. package/src/__tests__/defer.spec.mts +0 -166
  121. package/src/errors/errors.enum.mts +0 -8
  122. package/src/errors/factory-not-found.mts +0 -8
  123. package/src/errors/factory-token-not-resolved.mts +0 -10
  124. package/src/errors/instance-destroying.mts +0 -8
  125. package/src/errors/instance-expired.mts +0 -8
  126. package/src/errors/instance-not-found.mts +0 -8
  127. package/src/errors/unknown-error.mts +0 -15
  128. package/src/utils/defer.mts +0 -73
@@ -361,7 +361,7 @@ export { LoggerService, UserService, EmailService, UserRegistrationService }
361
361
  <div class='footer quiet pad2 space-top1 center small'>
362
362
  Code coverage generated by
363
363
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
364
- at 2025-09-19T12:38:51.382Z
364
+ at 2025-09-21T17:47:07.632Z
365
365
  </div>
366
366
  <script src="../../prettify.js"></script>
367
367
  <script>
@@ -1024,7 +1024,7 @@ export {
1024
1024
  <div class='footer quiet pad2 space-top1 center small'>
1025
1025
  Code coverage generated by
1026
1026
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1027
- at 2025-09-19T12:38:51.382Z
1027
+ at 2025-09-21T17:47:07.632Z
1028
1028
  </div>
1029
1029
  <script src="../../prettify.js"></script>
1030
1030
  <script>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2025-09-19T12:38:51.382Z
164
+ at 2025-09-21T17:47:07.632Z
165
165
  </div>
166
166
  <script src="../../prettify.js"></script>
167
167
  <script>
@@ -745,7 +745,7 @@ export {
745
745
  <div class='footer quiet pad2 space-top1 center small'>
746
746
  Code coverage generated by
747
747
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
748
- at 2025-09-19T12:38:51.382Z
748
+ at 2025-09-21T17:47:07.632Z
749
749
  </div>
750
750
  <script src="../../prettify.js"></script>
751
751
  <script>
@@ -832,7 +832,7 @@ export {
832
832
  <div class='footer quiet pad2 space-top1 center small'>
833
833
  Code coverage generated by
834
834
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
835
- at 2025-09-19T12:38:51.382Z
835
+ at 2025-09-21T17:47:07.632Z
836
836
  </div>
837
837
  <script src="../../prettify.js"></script>
838
838
  <script>
@@ -1147,7 +1147,7 @@ export { DatabaseService, CacheService, EmailService, UserService }
1147
1147
  <div class='footer quiet pad2 space-top1 center small'>
1148
1148
  Code coverage generated by
1149
1149
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1150
- at 2025-09-19T12:38:51.382Z
1150
+ at 2025-09-21T17:47:07.632Z
1151
1151
  </div>
1152
1152
  <script src="../../prettify.js"></script>
1153
1153
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">59.01% </span>
26
+ <span class="strong">64.37% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1470/2491</span>
28
+ <span class='fraction'>1991/3093</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">88.75% </span>
33
+ <span class="strong">90.77% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>355/400</span>
35
+ <span class='fraction'>423/466</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.8% </span>
40
+ <span class="strong">86.77% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>129/139</span>
42
+ <span class='fraction'>164/189</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">59.01% </span>
47
+ <span class="strong">64.37% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1470/2491</span>
49
+ <span class='fraction'>1991/3093</span>
50
50
  </div>
51
51
 
52
52
 
@@ -99,28 +99,43 @@
99
99
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
100
  </td>
101
101
  <td data-value="0" class="pct low">0%</td>
102
- <td data-value="76" class="abs low">0/76</td>
102
+ <td data-value="77" class="abs low">0/77</td>
103
103
  <td data-value="0" class="pct low">0%</td>
104
104
  <td data-value="2" class="abs low">0/2</td>
105
105
  <td data-value="0" class="pct low">0%</td>
106
106
  <td data-value="2" class="abs low">0/2</td>
107
107
  <td data-value="0" class="pct low">0%</td>
108
- <td data-value="76" class="abs low">0/76</td>
108
+ <td data-value="77" class="abs low">0/77</td>
109
+ </tr>
110
+
111
+ <tr>
112
+ <td class="file low" data-value="lib/testing"><a href="lib/testing/index.html">lib/testing</a></td>
113
+ <td data-value="0" class="pic low">
114
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
115
+ </td>
116
+ <td data-value="0" class="pct low">0%</td>
117
+ <td data-value="2" class="abs low">0/2</td>
118
+ <td data-value="0" class="pct low">0%</td>
119
+ <td data-value="1" class="abs low">0/1</td>
120
+ <td data-value="0" class="pct low">0%</td>
121
+ <td data-value="1" class="abs low">0/1</td>
122
+ <td data-value="0" class="pct low">0%</td>
123
+ <td data-value="2" class="abs low">0/2</td>
109
124
  </tr>
110
125
 
111
126
  <tr>
112
127
  <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
113
- <td data-value="92.02" class="pic high">
114
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
128
+ <td data-value="89.61" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
115
130
  </td>
116
- <td data-value="92.02" class="pct high">92.02%</td>
117
- <td data-value="1291" class="abs high">1188/1291</td>
118
- <td data-value="89.93" class="pct high">89.93%</td>
119
- <td data-value="328" class="abs high">295/328</td>
120
- <td data-value="98.01" class="pct high">98.01%</td>
121
- <td data-value="101" class="abs high">99/101</td>
122
- <td data-value="92.02" class="pct high">92.02%</td>
123
- <td data-value="1291" class="abs high">1188/1291</td>
131
+ <td data-value="89.61" class="pct high">89.61%</td>
132
+ <td data-value="1724" class="abs high">1545/1724</td>
133
+ <td data-value="93.01" class="pct high">93.01%</td>
134
+ <td data-value="401" class="abs high">373/401</td>
135
+ <td data-value="90.25" class="pct high">90.25%</td>
136
+ <td data-value="154" class="abs high">139/154</td>
137
+ <td data-value="89.61" class="pct high">89.61%</td>
138
+ <td data-value="1724" class="abs high">1545/1724</td>
124
139
  </tr>
125
140
 
126
141
  <tr>
@@ -155,17 +170,17 @@
155
170
 
156
171
  <tr>
157
172
  <td class="file high" data-value="src/errors"><a href="src/errors/index.html">src/errors</a></td>
158
- <td data-value="98.38" class="pic high">
159
- <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
173
+ <td data-value="100" class="pic high">
174
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
160
175
  </td>
161
- <td data-value="98.38" class="pct high">98.38%</td>
162
- <td data-value="62" class="abs high">61/62</td>
163
- <td data-value="92.85" class="pct high">92.85%</td>
164
- <td data-value="14" class="abs high">13/14</td>
165
- <td data-value="100" class="pct high">100%</td>
166
- <td data-value="12" class="abs high">12/12</td>
167
- <td data-value="98.38" class="pct high">98.38%</td>
168
- <td data-value="62" class="abs high">61/62</td>
176
+ <td data-value="100" class="pct high">100%</td>
177
+ <td data-value="132" class="abs high">132/132</td>
178
+ <td data-value="91.66" class="pct high">91.66%</td>
179
+ <td data-value="12" class="abs high">11/12</td>
180
+ <td data-value="100" class="pct high">100%</td>
181
+ <td data-value="7" class="abs high">7/7</td>
182
+ <td data-value="100" class="pct high">100%</td>
183
+ <td data-value="132" class="abs high">132/132</td>
169
184
  </tr>
170
185
 
171
186
  <tr>
@@ -198,19 +213,34 @@
198
213
  <td data-value="2" class="abs high">2/2</td>
199
214
  </tr>
200
215
 
216
+ <tr>
217
+ <td class="file high" data-value="src/testing"><a href="src/testing/index.html">src/testing</a></td>
218
+ <td data-value="95.23" class="pic high">
219
+ <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
220
+ </td>
221
+ <td data-value="95.23" class="pct high">95.23%</td>
222
+ <td data-value="63" class="abs high">60/63</td>
223
+ <td data-value="80" class="pct high">80%</td>
224
+ <td data-value="10" class="abs high">8/10</td>
225
+ <td data-value="88.88" class="pct high">88.88%</td>
226
+ <td data-value="9" class="abs high">8/9</td>
227
+ <td data-value="95.23" class="pct high">95.23%</td>
228
+ <td data-value="63" class="abs high">60/63</td>
229
+ </tr>
230
+
201
231
  <tr>
202
232
  <td class="file high" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
203
- <td data-value="93.93" class="pic high">
204
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
233
+ <td data-value="94.94" class="pic high">
234
+ <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
205
235
  </td>
206
- <td data-value="93.93" class="pct high">93.93%</td>
207
- <td data-value="165" class="abs high">155/165</td>
208
- <td data-value="95.12" class="pct high">95.12%</td>
209
- <td data-value="41" class="abs high">39/41</td>
210
- <td data-value="94.11" class="pct high">94.11%</td>
211
- <td data-value="17" class="abs high">16/17</td>
212
- <td data-value="93.93" class="pct high">93.93%</td>
213
- <td data-value="165" class="abs high">155/165</td>
236
+ <td data-value="94.94" class="pct high">94.94%</td>
237
+ <td data-value="198" class="abs high">188/198</td>
238
+ <td data-value="92" class="pct high">92%</td>
239
+ <td data-value="25" class="abs high">23/25</td>
240
+ <td data-value="88.88" class="pct high">88.88%</td>
241
+ <td data-value="9" class="abs high">8/9</td>
242
+ <td data-value="94.94" class="pct high">94.94%</td>
243
+ <td data-value="198" class="abs high">188/198</td>
214
244
  </tr>
215
245
 
216
246
  </tbody>
@@ -221,7 +251,7 @@
221
251
  <div class='footer quiet pad2 space-top1 center small'>
222
252
  Code coverage generated by
223
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
224
- at 2025-09-19T12:38:51.382Z
254
+ at 2025-09-21T17:47:07.632Z
225
255
  </div>
226
256
  <script src="prettify.js"></script>
227
257
  <script>