@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
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">95% </span>
33
+ <span class="strong">94.44% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>19/20</span>
35
+ <span class='fraction'>17/18</span>
36
36
  </div>
37
37
 
38
38
 
@@ -138,67 +138,67 @@
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
140
  <span class="cline-any cline-yes">1x</span>
141
- <span class="cline-any cline-yes">127x</span>
142
- <span class="cline-any cline-yes">127x</span>
141
+ <span class="cline-any cline-yes">162x</span>
142
+ <span class="cline-any cline-yes">162x</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-yes">127x</span>
145
- <span class="cline-any cline-yes">63x</span>
146
- <span class="cline-any cline-yes">63x</span>
147
- <span class="cline-any cline-yes">63x</span>
148
- <span class="cline-any cline-yes">63x</span>
149
- <span class="cline-any cline-yes">63x</span>
150
- <span class="cline-any cline-yes">63x</span>
151
- <span class="cline-any cline-yes">54x</span>
152
- <span class="cline-any cline-yes">54x</span>
144
+ <span class="cline-any cline-yes">162x</span>
145
+ <span class="cline-any cline-yes">69x</span>
146
+ <span class="cline-any cline-yes">69x</span>
147
+ <span class="cline-any cline-yes">69x</span>
148
+ <span class="cline-any cline-yes">69x</span>
149
+ <span class="cline-any cline-yes">69x</span>
150
+ <span class="cline-any cline-yes">69x</span>
151
+ <span class="cline-any cline-yes">58x</span>
152
+ <span class="cline-any cline-yes">58x</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
- <span class="cline-any cline-yes">63x</span>
155
- <span class="cline-any cline-yes">63x</span>
156
- <span class="cline-any cline-yes">57x</span>
157
- <span class="cline-any cline-yes">57x</span>
154
+ <span class="cline-any cline-yes">69x</span>
155
+ <span class="cline-any cline-yes">69x</span>
156
+ <span class="cline-any cline-yes">61x</span>
157
+ <span class="cline-any cline-yes">61x</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-yes">63x</span>
159
+ <span class="cline-any cline-yes">69x</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-yes">63x</span>
162
- <span class="cline-any cline-yes">17x</span>
163
- <span class="cline-any cline-yes">17x</span>
164
- <span class="cline-any cline-yes">15x</span>
165
- <span class="cline-any cline-yes">15x</span>
166
- <span class="cline-any cline-yes">17x</span>
167
- <span class="cline-any cline-yes">15x</span>
168
- <span class="cline-any cline-yes">15x</span>
169
- <span class="cline-any cline-yes">17x</span>
170
- <span class="cline-any cline-yes">63x</span>
161
+ <span class="cline-any cline-yes">69x</span>
162
+ <span class="cline-any cline-yes">23x</span>
163
+ <span class="cline-any cline-yes">23x</span>
164
+ <span class="cline-any cline-yes">20x</span>
165
+ <span class="cline-any cline-yes">20x</span>
166
+ <span class="cline-any cline-yes">23x</span>
167
+ <span class="cline-any cline-yes">20x</span>
168
+ <span class="cline-any cline-yes">20x</span>
169
+ <span class="cline-any cline-yes">23x</span>
170
+ <span class="cline-any cline-yes">69x</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-yes">127x</span>
173
- <span class="cline-any cline-yes">270x</span>
174
- <span class="cline-any cline-yes">247x</span>
175
- <span class="cline-any cline-yes">247x</span>
172
+ <span class="cline-any cline-yes">162x</span>
173
+ <span class="cline-any cline-yes">51x</span>
174
+ <span class="cline-any cline-yes">25x</span>
175
+ <span class="cline-any cline-yes">25x</span>
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-yes">23x</span>
177
+ <span class="cline-any cline-yes">26x</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">270x</span>
179
+ <span class="cline-any cline-yes">51x</span>
180
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-yes">270x</span>
182
- <span class="cline-any cline-yes">270x</span>
183
- <span class="cline-any cline-yes">270x</span>
184
- <span class="cline-any cline-yes">22x</span>
185
- <span class="cline-any cline-yes">22x</span>
186
- <span class="cline-any cline-yes">22x</span>
181
+ <span class="cline-any cline-yes">51x</span>
182
+ <span class="cline-any cline-yes">51x</span>
183
+ <span class="cline-any cline-yes">51x</span>
184
+ <span class="cline-any cline-yes">25x</span>
185
+ <span class="cline-any cline-yes">25x</span>
186
+ <span class="cline-any cline-yes">25x</span>
187
187
  <span class="cline-any cline-no">&nbsp;</span>
188
188
  <span class="cline-any cline-no">&nbsp;</span>
189
189
  <span class="cline-any cline-no">&nbsp;</span>
190
190
  <span class="cline-any cline-no">&nbsp;</span>
191
191
  <span class="cline-any cline-no">&nbsp;</span>
192
- <span class="cline-any cline-yes">22x</span>
192
+ <span class="cline-any cline-yes">25x</span>
193
193
  <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-yes">22x</span>
194
+ <span class="cline-any cline-yes">25x</span>
195
195
  <span class="cline-any cline-no">&nbsp;</span>
196
196
  <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-yes">22x</span>
198
- <span class="cline-any cline-yes">270x</span>
199
- <span class="cline-any cline-yes">22x</span>
200
- <span class="cline-any cline-yes">270x</span>
201
- <span class="cline-any cline-yes">127x</span>
197
+ <span class="cline-any cline-yes">25x</span>
198
+ <span class="cline-any cline-yes">51x</span>
199
+ <span class="cline-any cline-yes">25x</span>
200
+ <span class="cline-any cline-yes">51x</span>
201
+ <span class="cline-any cline-yes">162x</span>
202
202
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable @typescript-eslint/no-empty-object-type */
203
203
  /* eslint-disable @typescript-eslint/no-unsafe-function-type */
204
204
  &nbsp;
@@ -274,7 +274,7 @@ export class ServiceLocatorEventBus {
274
274
  <div class='footer quiet pad2 space-top1 center small'>
275
275
  Code coverage generated by
276
276
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
277
- at 2025-09-19T12:38:51.382Z
277
+ at 2025-09-21T17:47:07.632Z
278
278
  </div>
279
279
  <script src="../prettify.js"></script>
280
280
  <script>
@@ -133,11 +133,7 @@
133
133
  <a name='L68'></a><a href='#L68'>68</a>
134
134
  <a name='L69'></a><a href='#L69'>69</a>
135
135
  <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
136
+ <a name='L71'></a><a href='#L71'>71</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
141
137
  <span class="cline-any cline-neutral">&nbsp;</span>
142
138
  <span class="cline-any cline-neutral">&nbsp;</span>
143
139
  <span class="cline-any cline-yes">1x</span>
@@ -207,10 +203,6 @@
207
203
  <span class="cline-any cline-neutral">&nbsp;</span>
208
204
  <span class="cline-any cline-neutral">&nbsp;</span>
209
205
  <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
214
206
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { InjectableScope, InjectableType } from './enums/index.mjs'
215
207
  &nbsp;
216
208
  /* eslint-disable @typescript-eslint/no-empty-object-type */
@@ -235,7 +227,6 @@ export interface ServiceLocatorInstanceHolderCreating&lt;Instance&gt; {
235
227
  deps: Set&lt;string&gt;
236
228
  destroyListeners: ServiceLocatorInstanceDestroyListener[]
237
229
  createdAt: number
238
- ttl: number
239
230
  }
240
231
  &nbsp;
241
232
  export interface ServiceLocatorInstanceHolderCreated&lt;Instance&gt; {
@@ -249,7 +240,6 @@ export interface ServiceLocatorInstanceHolderCreated&lt;Instance&gt; {
249
240
  deps: Set&lt;string&gt;
250
241
  destroyListeners: ServiceLocatorInstanceDestroyListener[]
251
242
  createdAt: number
252
- ttl: number
253
243
  }
254
244
  &nbsp;
255
245
  export interface ServiceLocatorInstanceHolderDestroying&lt;Instance&gt; {
@@ -263,7 +253,6 @@ export interface ServiceLocatorInstanceHolderDestroying&lt;Instance&gt; {
263
253
  deps: Set&lt;string&gt;
264
254
  destroyListeners: ServiceLocatorInstanceDestroyListener[]
265
255
  createdAt: number
266
- ttl: number
267
256
  }
268
257
  &nbsp;
269
258
  export interface ServiceLocatorInstanceHolderError {
@@ -277,7 +266,6 @@ export interface ServiceLocatorInstanceHolderError {
277
266
  deps: Set&lt;string&gt;
278
267
  destroyListeners: ServiceLocatorInstanceDestroyListener[]
279
268
  createdAt: number
280
- ttl: number
281
269
  }
282
270
  &nbsp;
283
271
  export type ServiceLocatorInstanceHolder&lt;Instance = unknown&gt; =
@@ -292,7 +280,7 @@ export type ServiceLocatorInstanceHolder&lt;Instance = unknown&gt; =
292
280
  <div class='footer quiet pad2 space-top1 center small'>
293
281
  Code coverage generated by
294
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
295
- at 2025-09-19T12:38:51.382Z
283
+ at 2025-09-21T17:47:07.632Z
296
284
  </div>
297
285
  <script src="../prettify.js"></script>
298
286
  <script>