@navios/di 0.9.2 → 1.0.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 (174) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +28 -0
  3. package/coverage/block-navigation.js +1 -1
  4. package/coverage/clover.xml +1463 -3174
  5. package/coverage/coverage-final.json +56 -54
  6. package/coverage/index.html +179 -104
  7. package/coverage/sorter.js +21 -7
  8. package/coverage/src/{request-context-manager.mts.html → __tests__/gc/gc-test-utils.mts.html} +192 -231
  9. package/coverage/{lib → src/__tests__/gc}/index.html +25 -40
  10. package/coverage/src/container/abstract-container.mts.html +1066 -0
  11. package/coverage/src/container/container.mts.html +958 -0
  12. package/coverage/src/container/index.html +161 -0
  13. package/coverage/src/{testing → container}/index.mts.html +12 -9
  14. package/coverage/src/container/scoped-container.mts.html +907 -0
  15. package/coverage/src/decorators/factory.decorator.mts.html +68 -53
  16. package/coverage/src/decorators/index.html +34 -34
  17. package/coverage/src/decorators/index.mts.html +10 -10
  18. package/coverage/src/decorators/injectable.decorator.mts.html +144 -60
  19. package/coverage/src/enums/index.html +21 -21
  20. package/coverage/src/enums/index.mts.html +12 -12
  21. package/coverage/src/enums/injectable-scope.enum.mts.html +11 -8
  22. package/coverage/src/enums/injectable-type.enum.mts.html +10 -7
  23. package/coverage/src/errors/di-error.mts.html +380 -71
  24. package/coverage/src/errors/index.html +22 -127
  25. package/coverage/src/errors/index.mts.html +9 -33
  26. package/coverage/src/event-emitter.mts.html +35 -107
  27. package/coverage/src/index.html +14 -254
  28. package/coverage/src/index.mts.html +23 -50
  29. package/coverage/src/interfaces/container.interface.mts.html +370 -0
  30. package/coverage/src/interfaces/factory.interface.mts.html +12 -12
  31. package/coverage/src/interfaces/index.html +45 -30
  32. package/coverage/src/interfaces/index.mts.html +16 -13
  33. package/coverage/src/interfaces/on-service-destroy.interface.mts.html +1 -1
  34. package/coverage/src/interfaces/on-service-init.interface.mts.html +1 -1
  35. package/coverage/src/internal/context/async-local-storage.browser.mts.html +142 -0
  36. package/coverage/src/internal/context/async-local-storage.mts.html +292 -0
  37. package/coverage/src/{factory-context.mts.html → internal/context/async-local-storage.types.mts.html} +17 -17
  38. package/coverage/src/internal/context/factory-context.mts.html +142 -0
  39. package/coverage/src/internal/context/index.html +221 -0
  40. package/coverage/src/internal/context/index.mts.html +100 -0
  41. package/coverage/src/{service-locator-instance-holder.mts.html → internal/context/resolution-context.mts.html} +114 -78
  42. package/coverage/src/internal/context/service-initialization-context.mts.html +214 -0
  43. package/coverage/src/internal/context/sync-local-storage.mts.html +244 -0
  44. package/coverage/src/internal/core/index.html +206 -0
  45. package/coverage/src/internal/core/index.mts.html +103 -0
  46. package/coverage/src/internal/core/instance-resolver.mts.html +2533 -0
  47. package/coverage/src/{request-context-holder.mts.html → internal/core/name-resolver.mts.html} +245 -260
  48. package/coverage/src/{container.mts.html → internal/core/scope-tracker.mts.html} +352 -310
  49. package/coverage/src/{service-instantiator.mts.html → internal/core/service-initializer.mts.html} +254 -176
  50. package/coverage/src/internal/core/service-invalidator.mts.html +955 -0
  51. package/coverage/src/internal/core/token-resolver.mts.html +451 -0
  52. package/coverage/src/internal/holder/holder-storage.interface.mts.html +451 -0
  53. package/coverage/src/internal/holder/index.html +161 -0
  54. package/coverage/src/internal/holder/index.mts.html +94 -0
  55. package/coverage/src/internal/holder/instance-holder.mts.html +406 -0
  56. package/coverage/src/{service-locator.mts.html → internal/holder/unified-storage.mts.html} +376 -379
  57. package/coverage/{lib/testing → src/internal}/index.html +26 -11
  58. package/coverage/src/internal/index.mts.html +100 -0
  59. package/coverage/src/internal/lifecycle/circular-detector.mts.html +364 -0
  60. package/coverage/src/internal/lifecycle/index.html +146 -0
  61. package/coverage/src/internal/lifecycle/index.mts.html +91 -0
  62. package/coverage/src/{service-locator-event-bus.mts.html → internal/lifecycle/lifecycle-event-bus.mts.html} +104 -80
  63. package/coverage/src/internal/stub-factory-class.mts.html +133 -0
  64. package/coverage/src/symbols/index.html +14 -14
  65. package/coverage/src/symbols/index.mts.html +9 -9
  66. package/coverage/src/symbols/injectable-token.mts.html +9 -3
  67. package/coverage/src/testing/index.html +32 -32
  68. package/coverage/src/testing/test-container.mts.html +1576 -139
  69. package/coverage/src/testing/unit-test-container.mts.html +1888 -0
  70. package/coverage/src/token/index.html +146 -0
  71. package/coverage/{lib/testing/index.d.mts.html → src/token/index.mts.html} +11 -11
  72. package/coverage/src/{injection-token.mts.html → token/injection-token.mts.html} +225 -111
  73. package/coverage/src/{base-instance-holder-manager.mts.html → token/registry.mts.html} +188 -269
  74. package/coverage/src/{injector.mts.html → utils/default-injectors.mts.html} +31 -31
  75. package/coverage/src/utils/get-injectable-token.mts.html +19 -22
  76. package/coverage/src/utils/get-injectors.mts.html +684 -177
  77. package/coverage/src/utils/index.html +36 -36
  78. package/coverage/src/utils/index.mts.html +18 -12
  79. package/coverage/src/utils/types.mts.html +26 -11
  80. package/docs/examples/basic-usage.mts +1 -1
  81. package/docs/examples/factory-pattern.mts +3 -3
  82. package/docs/examples/request-scope-example.mts +1 -1
  83. package/docs/examples/service-lifecycle.mts +1 -1
  84. package/lib/browser/internal/core/instance-resolver.d.mts.map +1 -1
  85. package/lib/browser/internal/core/instance-resolver.mjs.map +1 -1
  86. package/lib/{container-D-0Ho3qL.d.cts → container-D3j3KuD9.d.mts} +5 -289
  87. package/lib/container-D3j3KuD9.d.mts.map +1 -0
  88. package/lib/{container-Bi0huFQX.mjs → container-qgHMgGNG.mjs} +3 -227
  89. package/lib/container-qgHMgGNG.mjs.map +1 -0
  90. package/lib/{container-CNiqesCL.d.mts → container-r1KP4F-n.d.cts} +5 -289
  91. package/lib/container-r1KP4F-n.d.cts.map +1 -0
  92. package/lib/{container-pmGNCZL_.cjs → container-ycYJgTq7.cjs} +41 -319
  93. package/lib/container-ycYJgTq7.cjs.map +1 -0
  94. package/lib/factory.decorator-D4mem6YQ.cjs +21 -0
  95. package/lib/factory.decorator-D4mem6YQ.cjs.map +1 -0
  96. package/lib/factory.decorator-_IPWcwQn.mjs +16 -0
  97. package/lib/factory.decorator-_IPWcwQn.mjs.map +1 -0
  98. package/lib/index.cjs +14 -24
  99. package/lib/index.cjs.map +1 -1
  100. package/lib/index.d.cts +3 -52
  101. package/lib/index.d.cts.map +1 -1
  102. package/lib/index.d.mts +3 -52
  103. package/lib/index.d.mts.map +1 -1
  104. package/lib/index.mjs +3 -13
  105. package/lib/index.mjs.map +1 -1
  106. package/lib/injectable.decorator-BNfWpjr_.d.cts +56 -0
  107. package/lib/injectable.decorator-BNfWpjr_.d.cts.map +1 -0
  108. package/lib/injectable.decorator-Bc05hRQU.d.mts +56 -0
  109. package/lib/injectable.decorator-Bc05hRQU.d.mts.map +1 -0
  110. package/lib/injectable.decorator-CyPrBzBN.mjs +227 -0
  111. package/lib/injectable.decorator-CyPrBzBN.mjs.map +1 -0
  112. package/lib/injectable.decorator-DbpiDrg-.cjs +281 -0
  113. package/lib/injectable.decorator-DbpiDrg-.cjs.map +1 -0
  114. package/lib/legacy-compat/index.cjs +114 -0
  115. package/lib/legacy-compat/index.cjs.map +1 -0
  116. package/lib/legacy-compat/index.d.cts +63 -0
  117. package/lib/legacy-compat/index.d.cts.map +1 -0
  118. package/lib/legacy-compat/index.d.mts +63 -0
  119. package/lib/legacy-compat/index.d.mts.map +1 -0
  120. package/lib/legacy-compat/index.mjs +111 -0
  121. package/lib/legacy-compat/index.mjs.map +1 -0
  122. package/lib/registry-DKbKWFvJ.d.cts +290 -0
  123. package/lib/registry-DKbKWFvJ.d.cts.map +1 -0
  124. package/lib/registry-n8JhJoxm.d.mts +290 -0
  125. package/lib/registry-n8JhJoxm.d.mts.map +1 -0
  126. package/lib/testing/index.cjs +23 -22
  127. package/lib/testing/index.cjs.map +1 -1
  128. package/lib/testing/index.d.cts +2 -1
  129. package/lib/testing/index.d.cts.map +1 -1
  130. package/lib/testing/index.d.mts +2 -1
  131. package/lib/testing/index.d.mts.map +1 -1
  132. package/lib/testing/index.mjs +2 -1
  133. package/lib/testing/index.mjs.map +1 -1
  134. package/package.json +11 -1
  135. package/project.json +8 -0
  136. package/src/__tests__/gc/basic-container.spec.mts +358 -0
  137. package/src/__tests__/gc/circular-dependencies.spec.mts +501 -0
  138. package/src/__tests__/gc/gc-test-utils.mts +136 -0
  139. package/src/__tests__/gc/memory-pressure.spec.mts +542 -0
  140. package/src/__tests__/gc/scoped-container.spec.mts +444 -0
  141. package/src/__tests__/gc/transient-services.spec.mts +326 -0
  142. package/src/__tests__/scope-upgrade.spec.mts +0 -18
  143. package/src/internal/core/instance-resolver.mts +0 -1
  144. package/src/legacy-compat/context-compat.mts +95 -0
  145. package/src/legacy-compat/factory.decorator.mts +37 -0
  146. package/src/legacy-compat/index.mts +16 -0
  147. package/src/legacy-compat/injectable.decorator.mts +41 -0
  148. package/tsdown.config.mts +1 -1
  149. package/vitest.config.mts +3 -7
  150. package/coverage/docs/examples/basic-usage.mts.html +0 -376
  151. package/coverage/docs/examples/factory-pattern.mts.html +0 -1039
  152. package/coverage/docs/examples/index.html +0 -176
  153. package/coverage/docs/examples/injection-tokens.mts.html +0 -760
  154. package/coverage/docs/examples/request-scope-example.mts.html +0 -847
  155. package/coverage/docs/examples/service-lifecycle.mts.html +0 -1162
  156. package/coverage/lib/_tsup-dts-rollup.d.mts.html +0 -3445
  157. package/coverage/lib/index.d.mts.html +0 -313
  158. package/coverage/src/errors/errors.enum.mts.html +0 -118
  159. package/coverage/src/errors/factory-not-found.mts.html +0 -118
  160. package/coverage/src/errors/factory-token-not-resolved.mts.html +0 -118
  161. package/coverage/src/errors/instance-destroying.mts.html +0 -118
  162. package/coverage/src/errors/instance-expired.mts.html +0 -118
  163. package/coverage/src/errors/instance-not-found.mts.html +0 -118
  164. package/coverage/src/errors/unknown-error.mts.html +0 -118
  165. package/coverage/src/instance-resolver.mts.html +0 -1762
  166. package/coverage/src/registry.mts.html +0 -247
  167. package/coverage/src/service-invalidator.mts.html +0 -1372
  168. package/coverage/src/service-locator-manager.mts.html +0 -340
  169. package/coverage/src/token-processor.mts.html +0 -607
  170. package/coverage/src/utils/defer.mts.html +0 -118
  171. package/lib/container-Bi0huFQX.mjs.map +0 -1
  172. package/lib/container-CNiqesCL.d.mts.map +0 -1
  173. package/lib/container-D-0Ho3qL.d.cts.map +0 -1
  174. package/lib/container-pmGNCZL_.cjs.map +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">64.37% </span>
26
+ <span class="strong">82% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1991/3093</span>
28
+ <span class='fraction'>1144/1395</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.77% </span>
33
+ <span class="strong">72.27% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>423/466</span>
35
+ <span class='fraction'>584/808</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">86.77% </span>
40
+ <span class="strong">83.23% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>164/189</span>
42
+ <span class='fraction'>278/334</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">64.37% </span>
47
+ <span class="strong">82.36% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1991/3093</span>
49
+ <span class='fraction'>1121/1361</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,78 +79,63 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file low" data-value="docs/examples"><a href="docs/examples/index.html">docs/examples</a></td>
83
- <td data-value="0" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
- </td>
86
- <td data-value="0" class="pct low">0%</td>
87
- <td data-value="823" class="abs low">0/823</td>
88
- <td data-value="0" class="pct low">0%</td>
89
- <td data-value="5" class="abs low">0/5</td>
90
- <td data-value="0" class="pct low">0%</td>
91
- <td data-value="5" class="abs low">0/5</td>
92
- <td data-value="0" class="pct low">0%</td>
93
- <td data-value="823" class="abs low">0/823</td>
94
- </tr>
95
-
96
- <tr>
97
- <td class="file low" data-value="lib"><a href="lib/index.html">lib</a></td>
98
- <td data-value="0" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
82
+ <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
85
  </td>
101
- <td data-value="0" class="pct low">0%</td>
102
- <td data-value="77" class="abs low">0/77</td>
103
- <td data-value="0" class="pct low">0%</td>
104
- <td data-value="2" class="abs low">0/2</td>
105
- <td data-value="0" class="pct low">0%</td>
106
- <td data-value="2" class="abs low">0/2</td>
107
- <td data-value="0" class="pct low">0%</td>
108
- <td data-value="77" class="abs low">0/77</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="23" class="abs high">23/23</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="8" class="abs high">8/8</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="7" class="abs high">7/7</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="21" class="abs high">21/21</td>
109
94
  </tr>
110
95
 
111
96
  <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>
97
+ <td class="file low" data-value="src/__tests__/gc"><a href="src/__tests__/gc/index.html">src/__tests__/gc</a></td>
98
+ <td data-value="3.33" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 3%"></div><div class="cover-empty" style="width: 97%"></div></div>
115
100
  </td>
101
+ <td data-value="3.33" class="pct low">3.33%</td>
102
+ <td data-value="30" class="abs low">1/30</td>
116
103
  <td data-value="0" class="pct low">0%</td>
117
- <td data-value="2" class="abs low">0/2</td>
104
+ <td data-value="11" class="abs low">0/11</td>
118
105
  <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>
106
+ <td data-value="12" class="abs low">0/12</td>
107
+ <td data-value="3.7" class="pct low">3.7%</td>
108
+ <td data-value="27" class="abs low">1/27</td>
124
109
  </tr>
125
110
 
126
111
  <tr>
127
- <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
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>
112
+ <td class="file high" data-value="src/container"><a href="src/container/index.html">src/container</a></td>
113
+ <td data-value="85.62" class="pic high">
114
+ <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
130
115
  </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>
116
+ <td data-value="85.62" class="pct high">85.62%</td>
117
+ <td data-value="153" class="abs high">131/153</td>
118
+ <td data-value="72.36" class="pct medium">72.36%</td>
119
+ <td data-value="76" class="abs medium">55/76</td>
120
+ <td data-value="85.71" class="pct high">85.71%</td>
121
+ <td data-value="42" class="abs high">36/42</td>
122
+ <td data-value="85.33" class="pct high">85.33%</td>
123
+ <td data-value="150" class="abs high">128/150</td>
139
124
  </tr>
140
125
 
141
126
  <tr>
142
127
  <td class="file high" data-value="src/decorators"><a href="src/decorators/index.html">src/decorators</a></td>
143
- <td data-value="86.44" class="pic high">
144
- <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
128
+ <td data-value="81.25" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
145
130
  </td>
146
- <td data-value="86.44" class="pct high">86.44%</td>
147
- <td data-value="59" class="abs high">51/59</td>
148
- <td data-value="75" class="pct medium">75%</td>
149
- <td data-value="8" class="abs medium">6/8</td>
131
+ <td data-value="81.25" class="pct high">81.25%</td>
132
+ <td data-value="16" class="abs high">13/16</td>
133
+ <td data-value="89.28" class="pct high">89.28%</td>
134
+ <td data-value="28" class="abs high">25/28</td>
150
135
  <td data-value="100" class="pct high">100%</td>
151
- <td data-value="2" class="abs high">2/2</td>
152
- <td data-value="86.44" class="pct high">86.44%</td>
153
- <td data-value="59" class="abs high">51/59</td>
136
+ <td data-value="4" class="abs high">4/4</td>
137
+ <td data-value="81.25" class="pct high">81.25%</td>
138
+ <td data-value="16" class="abs high">13/16</td>
154
139
  </tr>
155
140
 
156
141
  <tr>
@@ -161,11 +146,11 @@
161
146
  <td data-value="100" class="pct high">100%</td>
162
147
  <td data-value="9" class="abs high">9/9</td>
163
148
  <td data-value="100" class="pct high">100%</td>
164
- <td data-value="2" class="abs high">2/2</td>
149
+ <td data-value="4" class="abs high">4/4</td>
165
150
  <td data-value="100" class="pct high">100%</td>
166
- <td data-value="0" class="abs high">0/0</td>
151
+ <td data-value="2" class="abs high">2/2</td>
167
152
  <td data-value="100" class="pct high">100%</td>
168
- <td data-value="9" class="abs high">9/9</td>
153
+ <td data-value="7" class="abs high">7/7</td>
169
154
  </tr>
170
155
 
171
156
  <tr>
@@ -174,28 +159,103 @@
174
159
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
175
160
  </td>
176
161
  <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>
162
+ <td data-value="38" class="abs high">38/38</td>
163
+ <td data-value="87.5" class="pct high">87.5%</td>
164
+ <td data-value="16" class="abs high">14/16</td>
180
165
  <td data-value="100" class="pct high">100%</td>
181
- <td data-value="7" class="abs high">7/7</td>
166
+ <td data-value="16" class="abs high">16/16</td>
182
167
  <td data-value="100" class="pct high">100%</td>
183
- <td data-value="132" class="abs high">132/132</td>
168
+ <td data-value="37" class="abs high">37/37</td>
184
169
  </tr>
185
170
 
186
171
  <tr>
187
- <td class="file high" data-value="src/interfaces"><a href="src/interfaces/index.html">src/interfaces</a></td>
188
- <td data-value="100" class="pic high">
189
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
172
+ <td class="file empty" data-value="src/interfaces"><a href="src/interfaces/index.html">src/interfaces</a></td>
173
+ <td data-value="0" class="pic empty">
174
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
190
175
  </td>
191
- <td data-value="100" class="pct high">100%</td>
192
- <td data-value="4" class="abs high">4/4</td>
193
- <td data-value="100" class="pct high">100%</td>
194
- <td data-value="0" class="abs high">0/0</td>
176
+ <td data-value="0" class="pct empty">0%</td>
177
+ <td data-value="0" class="abs empty">0/0</td>
178
+ <td data-value="0" class="pct empty">0%</td>
179
+ <td data-value="0" class="abs empty">0/0</td>
180
+ <td data-value="0" class="pct empty">0%</td>
181
+ <td data-value="0" class="abs empty">0/0</td>
182
+ <td data-value="0" class="pct empty">0%</td>
183
+ <td data-value="0" class="abs empty">0/0</td>
184
+ </tr>
185
+
186
+ <tr>
187
+ <td class="file low" data-value="src/internal"><a href="src/internal/index.html">src/internal</a></td>
188
+ <td data-value="0" class="pic low">
189
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
190
+ </td>
191
+ <td data-value="0" class="pct low">0%</td>
192
+ <td data-value="1" class="abs low">0/1</td>
195
193
  <td data-value="100" class="pct high">100%</td>
196
194
  <td data-value="0" class="abs high">0/0</td>
195
+ <td data-value="0" class="pct low">0%</td>
196
+ <td data-value="1" class="abs low">0/1</td>
197
+ <td data-value="0" class="pct low">0%</td>
198
+ <td data-value="1" class="abs low">0/1</td>
199
+ </tr>
200
+
201
+ <tr>
202
+ <td class="file medium" data-value="src/internal/context"><a href="src/internal/context/index.html">src/internal/context</a></td>
203
+ <td data-value="63.88" class="pic medium">
204
+ <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
205
+ </td>
206
+ <td data-value="63.88" class="pct medium">63.88%</td>
207
+ <td data-value="36" class="abs medium">23/36</td>
208
+ <td data-value="62.5" class="pct medium">62.5%</td>
209
+ <td data-value="8" class="abs medium">5/8</td>
210
+ <td data-value="61.11" class="pct medium">61.11%</td>
211
+ <td data-value="18" class="abs medium">11/18</td>
212
+ <td data-value="63.88" class="pct medium">63.88%</td>
213
+ <td data-value="36" class="abs medium">23/36</td>
214
+ </tr>
215
+
216
+ <tr>
217
+ <td class="file high" data-value="src/internal/core"><a href="src/internal/core/index.html">src/internal/core</a></td>
218
+ <td data-value="80.47" class="pic high">
219
+ <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
220
+ </td>
221
+ <td data-value="80.47" class="pct high">80.47%</td>
222
+ <td data-value="425" class="abs high">342/425</td>
223
+ <td data-value="69.59" class="pct medium">69.59%</td>
224
+ <td data-value="296" class="abs medium">206/296</td>
225
+ <td data-value="86.11" class="pct high">86.11%</td>
226
+ <td data-value="72" class="abs high">62/72</td>
227
+ <td data-value="80.52" class="pct high">80.52%</td>
228
+ <td data-value="421" class="abs high">339/421</td>
229
+ </tr>
230
+
231
+ <tr>
232
+ <td class="file high" data-value="src/internal/holder"><a href="src/internal/holder/index.html">src/internal/holder</a></td>
233
+ <td data-value="91.54" class="pic high">
234
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
235
+ </td>
236
+ <td data-value="91.54" class="pct high">91.54%</td>
237
+ <td data-value="71" class="abs high">65/71</td>
238
+ <td data-value="85.36" class="pct high">85.36%</td>
239
+ <td data-value="41" class="abs high">35/41</td>
197
240
  <td data-value="100" class="pct high">100%</td>
198
- <td data-value="4" class="abs high">4/4</td>
241
+ <td data-value="15" class="abs high">15/15</td>
242
+ <td data-value="91.42" class="pct high">91.42%</td>
243
+ <td data-value="70" class="abs high">64/70</td>
244
+ </tr>
245
+
246
+ <tr>
247
+ <td class="file high" data-value="src/internal/lifecycle"><a href="src/internal/lifecycle/index.html">src/internal/lifecycle</a></td>
248
+ <td data-value="89.79" class="pic high">
249
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
250
+ </td>
251
+ <td data-value="89.79" class="pct high">89.79%</td>
252
+ <td data-value="49" class="abs high">44/49</td>
253
+ <td data-value="84" class="pct high">84%</td>
254
+ <td data-value="25" class="abs high">21/25</td>
255
+ <td data-value="90" class="pct high">90%</td>
256
+ <td data-value="10" class="abs high">9/10</td>
257
+ <td data-value="89.79" class="pct high">89.79%</td>
258
+ <td data-value="49" class="abs high">44/49</td>
199
259
  </tr>
200
260
 
201
261
  <tr>
@@ -204,43 +264,58 @@
204
264
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
205
265
  </td>
206
266
  <td data-value="100" class="pct high">100%</td>
207
- <td data-value="2" class="abs high">2/2</td>
267
+ <td data-value="1" class="abs high">1/1</td>
208
268
  <td data-value="100" class="pct high">100%</td>
209
269
  <td data-value="0" class="abs high">0/0</td>
210
270
  <td data-value="100" class="pct high">100%</td>
211
271
  <td data-value="0" class="abs high">0/0</td>
212
272
  <td data-value="100" class="pct high">100%</td>
213
- <td data-value="2" class="abs high">2/2</td>
273
+ <td data-value="1" class="abs high">1/1</td>
274
+ </tr>
275
+
276
+ <tr>
277
+ <td class="file medium" data-value="src/testing"><a href="src/testing/index.html">src/testing</a></td>
278
+ <td data-value="76.81" class="pic medium">
279
+ <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
280
+ </td>
281
+ <td data-value="76.81" class="pct medium">76.81%</td>
282
+ <td data-value="358" class="abs medium">275/358</td>
283
+ <td data-value="63.54" class="pct medium">63.54%</td>
284
+ <td data-value="203" class="abs medium">129/203</td>
285
+ <td data-value="81.72" class="pct high">81.72%</td>
286
+ <td data-value="93" class="abs high">76/93</td>
287
+ <td data-value="77.77" class="pct medium">77.77%</td>
288
+ <td data-value="342" class="abs medium">266/342</td>
214
289
  </tr>
215
290
 
216
291
  <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>
292
+ <td class="file high" data-value="src/token"><a href="src/token/index.html">src/token</a></td>
293
+ <td data-value="99.02" class="pic high">
294
+ <div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
220
295
  </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>
296
+ <td data-value="99.02" class="pct high">99.02%</td>
297
+ <td data-value="103" class="abs high">102/103</td>
298
+ <td data-value="92.72" class="pct high">92.72%</td>
299
+ <td data-value="55" class="abs high">51/55</td>
300
+ <td data-value="95.83" class="pct high">95.83%</td>
301
+ <td data-value="24" class="abs high">23/24</td>
302
+ <td data-value="99" class="pct high">99%</td>
303
+ <td data-value="101" class="abs high">100/101</td>
229
304
  </tr>
230
305
 
231
306
  <tr>
232
307
  <td class="file high" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
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>
308
+ <td data-value="93.9" class="pic high">
309
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
235
310
  </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>
311
+ <td data-value="93.9" class="pct high">93.9%</td>
312
+ <td data-value="82" class="abs high">77/82</td>
313
+ <td data-value="83.78" class="pct high">83.78%</td>
314
+ <td data-value="37" class="abs high">31/37</td>
315
+ <td data-value="94.44" class="pct high">94.44%</td>
316
+ <td data-value="18" class="abs high">17/18</td>
317
+ <td data-value="93.9" class="pct high">93.9%</td>
318
+ <td data-value="82" class="abs high">77/82</td>
244
319
  </tr>
245
320
 
246
321
  </tbody>
@@ -251,7 +326,7 @@
251
326
  <div class='footer quiet pad2 space-top1 center small'>
252
327
  Code coverage generated by
253
328
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at 2025-09-21T17:47:07.632Z
329
+ at 2026-01-08T12:15:46.476Z
255
330
  </div>
256
331
  <script src="prettify.js"></script>
257
332
  <script>
@@ -27,17 +27,31 @@ var addSorting = (function() {
27
27
  function onFilterInput() {
28
28
  const searchValue = document.getElementById('fileSearch').value;
29
29
  const rows = document.getElementsByTagName('tbody')[0].children;
30
+
31
+ // Try to create a RegExp from the searchValue. If it fails (invalid regex),
32
+ // it will be treated as a plain text search
33
+ let searchRegex;
34
+ try {
35
+ searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
36
+ } catch (error) {
37
+ searchRegex = null;
38
+ }
39
+
30
40
  for (let i = 0; i < rows.length; i++) {
31
41
  const row = rows[i];
32
- if (
33
- row.textContent
34
- .toLowerCase()
35
- .includes(searchValue.toLowerCase())
36
- ) {
37
- row.style.display = '';
42
+ let isMatch = false;
43
+
44
+ if (searchRegex) {
45
+ // If a valid regex was created, use it for matching
46
+ isMatch = searchRegex.test(row.textContent);
38
47
  } else {
39
- row.style.display = 'none';
48
+ // Otherwise, fall back to the original plain text search
49
+ isMatch = row.textContent
50
+ .toLowerCase()
51
+ .includes(searchValue.toLowerCase());
40
52
  }
53
+
54
+ row.style.display = isMatch ? '' : 'none';
41
55
  }
42
56
  }
43
57