@biorate/config 2.0.0 → 2.1.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 (153) hide show
  1. package/.nyc_output/0931c84c-3b9f-44b4-8cc2-12442ac2b820.json +1 -0
  2. package/.nyc_output/46e09a85-a463-4554-bb2b-a10c2dbd2670.json +1 -0
  3. package/.nyc_output/b4db438e-274b-4380-b8ee-9dd6834ef300.json +1 -0
  4. package/.nyc_output/processinfo/0931c84c-3b9f-44b4-8cc2-12442ac2b820.json +1 -0
  5. package/.nyc_output/processinfo/46e09a85-a463-4554-bb2b-a10c2dbd2670.json +1 -0
  6. package/.nyc_output/processinfo/b4db438e-274b-4380-b8ee-9dd6834ef300.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -0
  8. package/CHANGELOG.md +7 -0
  9. package/allure-results/006c8d4b-f568-4980-b9bc-a22530fc5537-result.json +1 -0
  10. package/allure-results/020b7d61-9476-446e-9c67-95db8bf890af-container.json +1 -0
  11. package/allure-results/0980f2b9-4330-470e-95ee-60f37af11650-result.json +1 -0
  12. package/allure-results/09e0eb68-4842-4eb4-8e2a-08ff6c046b59-result.json +1 -0
  13. package/allure-results/0a88251b-daba-41d9-bf6c-ba87754ed7cd-result.json +1 -0
  14. package/allure-results/106b449f-50cc-4bff-9fa0-4841c9e3f9ae-result.json +1 -0
  15. package/allure-results/10e55463-d6c2-436b-a2bb-004bccfbe41e-result.json +1 -0
  16. package/allure-results/12f66504-04ff-4e93-88b3-93e070b8a83d-result.json +1 -0
  17. package/allure-results/15a5ae38-c299-487e-9c2a-1a12e66910ec-result.json +1 -0
  18. package/allure-results/183c8601-0a64-4199-bfc2-06115597c0f3-result.json +1 -0
  19. package/allure-results/193e671b-f6ba-47de-b811-3ceb5994af7a-result.json +1 -0
  20. package/allure-results/1c330fca-eb3d-48a9-84aa-27d21c9b4b44-result.json +1 -0
  21. package/allure-results/1d2c5dc5-ca7f-483b-a3ac-3193da9b9abc-result.json +1 -0
  22. package/allure-results/1f451884-f94b-4eeb-a317-da9351c9551a-result.json +1 -0
  23. package/allure-results/1f8c00a9-a461-4d14-81e3-cf28a70ac608-result.json +1 -0
  24. package/allure-results/1fc744d5-c45a-4ef1-8ff9-f7c06e866f7d-container.json +1 -0
  25. package/allure-results/1feb73ed-7273-4f4d-9ae9-16da8bb7b2b4-result.json +1 -0
  26. package/allure-results/23da4511-9968-4c08-8f22-479c97786eb1-result.json +1 -0
  27. package/allure-results/26540ed2-4523-40a1-9bc0-0bb9c01fa2c4-result.json +1 -0
  28. package/allure-results/277a5d15-8b27-4e84-881d-9de829d0a7d3-result.json +1 -0
  29. package/allure-results/278f3b5e-3524-4b8c-828e-9f050baccffa-result.json +1 -0
  30. package/allure-results/2924f901-ce00-4c8a-b86b-2d38bcc0178e-result.json +1 -0
  31. package/allure-results/2993c10f-9e26-4fe9-9f11-6335593dd4a7-result.json +1 -0
  32. package/allure-results/2ac6a657-9c25-4f0e-8e4c-66abf27bcd1b-result.json +1 -0
  33. package/allure-results/2bc5354a-2805-41b7-a613-34ff834050af-result.json +1 -0
  34. package/allure-results/2d0ebb8c-521e-4b19-b898-0a2a745fd226-result.json +1 -0
  35. package/allure-results/2d7eff60-d0b3-4d75-b6bd-d0090c0832a3-result.json +1 -0
  36. package/allure-results/3264c1cc-1916-434d-a3ed-ea4aff46634f-result.json +1 -0
  37. package/allure-results/32811383-073f-4e4d-ac8d-f416c66ceb6f-result.json +1 -0
  38. package/allure-results/34b4f29a-505f-4e33-b329-6571ceb5885f-result.json +1 -0
  39. package/allure-results/362f55d4-3d43-45e9-897e-2bf6e567c1b5-result.json +1 -0
  40. package/allure-results/37947476-0180-49d3-85b7-057018c15569-result.json +1 -0
  41. package/allure-results/384bffb5-fc76-48cd-b26b-9542ddee7ba5-result.json +1 -0
  42. package/allure-results/39dcdb73-4d22-49ec-ac09-34ff67f479c2-container.json +1 -0
  43. package/allure-results/3d9f500a-ef19-4355-b201-14733de12172-result.json +1 -0
  44. package/allure-results/3eb30382-f561-4db9-9301-29038f65b57d-result.json +1 -0
  45. package/allure-results/3f414721-5f30-4471-a19a-e4274b9ac352-result.json +1 -0
  46. package/allure-results/3fe2a3c2-0769-414c-a16e-cf02b296eea8-result.json +1 -0
  47. package/allure-results/418a0dd0-616e-44cb-833b-9c0a9c36c4d8-result.json +1 -0
  48. package/allure-results/4644b0c7-d738-471c-9efe-77246d33ed7c-result.json +1 -0
  49. package/allure-results/46bb6bd1-2738-45d1-a043-ee0221d81fda-result.json +1 -0
  50. package/allure-results/4befc06d-6f33-41b1-b31a-9ab6e481d75f-result.json +1 -0
  51. package/allure-results/4dc1b2dc-4e65-4d2c-bafc-42a01ef69d74-result.json +1 -0
  52. package/allure-results/4e77d898-9123-4ae2-969f-93fe0b93dfb7-container.json +1 -0
  53. package/allure-results/4eb3491f-978e-45dd-a0dd-7dfc9db4460d-result.json +1 -0
  54. package/allure-results/4eca25a4-4b8b-4367-9d65-a88709d9820c-result.json +1 -0
  55. package/allure-results/4f02dad8-c80f-44a8-91bf-a9040797f110-result.json +1 -0
  56. package/allure-results/5165912f-1771-40eb-bf46-ec3763c3c5a8-result.json +1 -0
  57. package/allure-results/51b61faa-f37d-4fd3-98ab-7ebd9982db49-result.json +1 -0
  58. package/allure-results/5691ad79-81ad-4cb9-a975-23dce6afcab8-result.json +1 -0
  59. package/allure-results/5709e6b7-54b4-433d-bd30-436fc594689f-result.json +1 -0
  60. package/allure-results/5bf16433-984f-4235-93da-90e67a629cc6-result.json +1 -0
  61. package/allure-results/5ea7f354-bba3-4eff-9547-fcda59142406-result.json +1 -0
  62. package/allure-results/5f9db4ad-2e00-475a-803d-16116a124ee6-container.json +1 -0
  63. package/allure-results/61191ed1-fbc4-4dce-b1ae-dff37f96384d-result.json +1 -0
  64. package/allure-results/62d36b0d-6921-4027-9f39-865be09dcbb2-result.json +1 -0
  65. package/allure-results/62e30c3c-5eea-4931-9417-9ea882be873b-container.json +1 -0
  66. package/allure-results/6382c0db-9951-4c9d-8e23-904b2a876b93-result.json +1 -0
  67. package/allure-results/669624fe-ddba-44e7-8d2d-732c70844041-container.json +1 -0
  68. package/allure-results/66e3baea-8294-493f-b68f-36ae65a7a43e-result.json +1 -0
  69. package/allure-results/69210e9a-94c7-4dd7-83ef-742578282067-result.json +1 -0
  70. package/allure-results/6b624a71-192e-4508-bdf7-33da49ccf844-result.json +1 -0
  71. package/allure-results/715f4590-9afc-4c01-9cbe-dc00b91a37b8-result.json +1 -0
  72. package/allure-results/72e54c37-2e29-4163-be53-4fb07f3501f8-result.json +1 -0
  73. package/allure-results/73132a78-97a5-48a6-9b09-763e27720c36-result.json +1 -0
  74. package/allure-results/76c02443-8680-4bb2-9448-4bf76c2dc8ae-result.json +1 -0
  75. package/allure-results/77f24adc-9ddb-4fbc-b453-9016f3618c57-result.json +1 -0
  76. package/allure-results/7cc9ec94-e230-45c0-8788-0d42b892f3db-result.json +1 -0
  77. package/allure-results/7d494924-d288-4fc7-b6fe-b4ef0c3ee0b1-container.json +1 -0
  78. package/allure-results/7de93a94-5189-44cf-9bdc-93591ff82da0-result.json +1 -0
  79. package/allure-results/8156ee14-ce4d-40e9-9a6e-70ff5b04dcb9-result.json +1 -0
  80. package/allure-results/81cdd8fa-e667-40cf-bb5a-7694214c955b-result.json +1 -0
  81. package/allure-results/83572768-790c-49e1-b991-980c7899e6e5-result.json +1 -0
  82. package/allure-results/83efc107-c454-4d20-9232-99177ec92867-result.json +1 -0
  83. package/allure-results/841995a6-ee00-4e89-9811-bc39cc93732c-result.json +1 -0
  84. package/allure-results/862386ef-63ac-426f-a56d-909ed3c03870-result.json +1 -0
  85. package/allure-results/8a0ed79f-6da8-416d-b40f-cedf8ffefcc3-result.json +1 -0
  86. package/allure-results/8ee0cbe0-1547-4b08-a29d-f4e36f42c983-result.json +1 -0
  87. package/allure-results/8f01f3f8-9330-4735-96c3-4520c83e2fa1-result.json +1 -0
  88. package/allure-results/92d4dc51-e0ca-4042-a53b-fafb9e397e1d-result.json +1 -0
  89. package/allure-results/9364aa0a-e6f0-4bee-96eb-ce97fae00091-result.json +1 -0
  90. package/allure-results/96a7e165-8768-4c57-9608-ce767e0116ec-result.json +1 -0
  91. package/allure-results/9b28f8b7-ce9d-456b-91e0-9688b4c68540-result.json +1 -0
  92. package/allure-results/9b8b618a-2c05-45c6-ae02-eb02b0c97939-result.json +1 -0
  93. package/allure-results/9d7013ac-7c54-415f-b169-dd0b35f1dfa6-result.json +1 -0
  94. package/allure-results/a01008f9-150c-4c92-8c3b-3fd662226638-result.json +1 -0
  95. package/allure-results/a451f31f-444a-4887-8386-44bb300be9bf-result.json +1 -0
  96. package/allure-results/a4e978b9-afcd-4feb-b911-5fdd2f32c75e-container.json +1 -0
  97. package/allure-results/a530767f-b3aa-4770-ac94-5a4b86bce0f4-container.json +1 -0
  98. package/allure-results/aa2c0323-71fc-4734-87cd-7ca96cde01d7-result.json +1 -0
  99. package/allure-results/acee7258-a2b7-4005-b773-92ba90cc8270-result.json +1 -0
  100. package/allure-results/b0db978d-e016-4e3e-96bb-e609ce40e9fa-result.json +1 -0
  101. package/allure-results/b296f7a3-96c2-4ffd-8eb4-f04ad1c09ca9-result.json +1 -0
  102. package/allure-results/b3c8f24f-5c74-4bc3-b94f-de8cecf06424-result.json +1 -0
  103. package/allure-results/b61c9e7c-c742-42b2-b9fd-e879550c0f3b-container.json +1 -0
  104. package/allure-results/b6776282-6b54-4f9a-a3d3-0c1d17d600b0-result.json +1 -0
  105. package/allure-results/bdb7e722-1f0a-4c41-9e75-658a8391b2dd-result.json +1 -0
  106. package/allure-results/c2153c9e-a691-4d26-b61d-b7d8f03e89fd-container.json +1 -0
  107. package/allure-results/c5e38dae-b5c2-4f39-9ede-e9bed0f841fb-result.json +1 -0
  108. package/allure-results/c607b2d2-26cc-470d-a601-1d0b80a956eb-result.json +1 -0
  109. package/allure-results/c6914100-769c-431e-903a-0a16c2743f82-result.json +1 -0
  110. package/allure-results/c89d1004-f80d-4cc3-91ff-66aa375ceb08-result.json +1 -0
  111. package/allure-results/d01ad7ff-94a1-421b-a32b-8a2ab70a9119-result.json +1 -0
  112. package/allure-results/d272e347-c675-4e09-8cc4-a149488988c9-result.json +1 -0
  113. package/allure-results/d6b7095d-c5d4-46c3-98a6-63dae2a283cf-result.json +1 -0
  114. package/allure-results/d9e2ebdb-8354-4c3f-8d61-dc1269ede706-result.json +1 -0
  115. package/allure-results/d9f483e2-5dea-4ae9-9e38-99c33674c493-result.json +1 -0
  116. package/allure-results/da5e172a-5cf2-4aa1-88dd-8921af554d94-result.json +1 -0
  117. package/allure-results/dc9b3125-68e9-48ad-9610-01e3d4e7f8ba-result.json +1 -0
  118. package/allure-results/dcb12e18-6a34-4166-bca9-25a5f79cf568-result.json +1 -0
  119. package/allure-results/e5b8514a-2dd5-46f4-813b-706fc133cc61-result.json +1 -0
  120. package/allure-results/ec69711a-84e2-4314-a727-ec04a05f0911-result.json +1 -0
  121. package/allure-results/ed5d1d4d-d685-4a0e-9bf3-fabe128361a5-result.json +1 -0
  122. package/allure-results/ed88cb8a-7567-4ea7-86cf-90a83fd40bf1-result.json +1 -0
  123. package/allure-results/f0faa29a-3adf-41e6-a902-782f7ba69890-result.json +1 -0
  124. package/allure-results/f68be1c7-f160-4d6d-b434-369f4230f75b-result.json +1 -0
  125. package/allure-results/f712c358-f6ed-4b54-9d09-3c4b3ebddf19-result.json +1 -0
  126. package/allure-results/fa4bffc0-527f-4e6e-bc9d-be02694509a2-result.json +1 -0
  127. package/allure-results/fbdd84c1-233b-4a13-8959-405d3e872dd8-result.json +1 -0
  128. package/allure-results/fd84abb3-e78a-476e-956d-c69e19652949-result.json +1 -0
  129. package/coverage/base.css +224 -0
  130. package/coverage/block-navigation.js +87 -0
  131. package/coverage/clover.xml +92 -0
  132. package/coverage/config/index.html +116 -0
  133. package/coverage/config/interfaces.ts.html +145 -0
  134. package/coverage/config/src/config.ts.html +532 -0
  135. package/coverage/config/src/errors.ts.html +109 -0
  136. package/coverage/config/src/index.html +176 -0
  137. package/coverage/config/src/index.ts.html +94 -0
  138. package/coverage/config/src/reg-exp-ext.ts.html +100 -0
  139. package/coverage/config/src/template.ts.html +310 -0
  140. package/coverage/config/tests/__mocks__/index.html +116 -0
  141. package/coverage/config/tests/__mocks__/index.ts.html +145 -0
  142. package/coverage/coverage-final.json +8 -0
  143. package/coverage/favicon.png +0 -0
  144. package/coverage/index.html +146 -0
  145. package/coverage/prettify.css +1 -0
  146. package/coverage/prettify.js +2 -0
  147. package/coverage/sort-arrow-sprite.png +0 -0
  148. package/coverage/sorter.js +210 -0
  149. package/dist/src/config.js +5 -2
  150. package/dist/src/config.js.map +1 -1
  151. package/dist/tsconfig.build.tsbuildinfo +1 -1
  152. package/package.json +5 -5
  153. package/.reporters.json +0 -6
@@ -0,0 +1,532 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for config/src/config.ts</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">config/src</a> config.ts</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'>27/27</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">90.9% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>10/11</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'>8/8</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'>23/23</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>
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>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">1x</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-yes">1x</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-yes">23x</span>
245
+ <span class="cline-any cline-yes">23x</span>
246
+ <span class="cline-any cline-yes">23x</span>
247
+ <span class="cline-any cline-yes">23x</span>
248
+ <span class="cline-any cline-yes">23x</span>
249
+ <span class="cline-any cline-yes">23x</span>
250
+ <span class="cline-any cline-yes">23x</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">2x</span>
258
+ <span class="cline-any cline-yes">2x</span>
259
+ <span class="cline-any cline-yes">6x</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">30x</span>
286
+ <span class="cline-any cline-yes">3x</span>
287
+ <span class="cline-any cline-yes">2x</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">27x</span>
290
+ <span class="cline-any cline-yes">27x</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-yes">19x</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-yes">2x</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-yes">6x</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-yes">37x</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-yes">1x</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-yes">15x</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { injectable } from '@biorate/inversion';
365
+ import { merge, get, has, set, PropertyPath } from 'lodash';
366
+ import traverse from 'traverse';
367
+ import { Template } from './template';
368
+ import { UndefinedConfigPathError } from './errors';
369
+ import { IConfig, IResult } from '../interfaces';
370
+ &nbsp;
371
+ @injectable()
372
+ export class Config implements IConfig {
373
+ /**
374
+ * @description Template enabling settings
375
+ * */
376
+ public static readonly Template = {
377
+ string: true,
378
+ link: true,
379
+ regexp: true,
380
+ function: true,
381
+ empty: true,
382
+ };
383
+ &nbsp;
384
+ /**
385
+ * @description Data storage
386
+ * */
387
+ protected data = {};
388
+ &nbsp;
389
+ /**
390
+ * @description Set template value
391
+ * */
392
+ protected template&lt;T = unknown&gt;(value: string, def?: T) {
393
+ const result: IResult = { value };
394
+ Template.string.call(this, value, result, def);
395
+ Template.link.call(this, value, result, def);
396
+ Template.regexp.call(this, value, result, def);
397
+ Template.function.call(this, value, result, def);
398
+ Template.empty.call(this, value, result, def);
399
+ return result.value;
400
+ }
401
+ &nbsp;
402
+ /**
403
+ * @description Walk object recursive to templatize internal values
404
+ * */
405
+ protected templatize&lt;T = unknown&gt;(object: unknown, def?: T) {
406
+ const template = this.template.bind(this);
407
+ return traverse(object).forEach(function (value) {
408
+ if (typeof value === 'string') this.update(template(value));
409
+ });
410
+ }
411
+ &nbsp;
412
+ /**
413
+ * @description Get config property by path
414
+ * @param path - data path
415
+ * @param def - default value
416
+ * @example
417
+ * ```
418
+ * import { Config } from '@biorate/config';
419
+ *
420
+ * const config = new Config();
421
+ *
422
+ * config.set('a', 1);
423
+ *
424
+ * console.log(config.get('a')); // 1
425
+ * console.log(config.get('b', 2)); // 2
426
+ * console.log(config.get('b')); // UndefinedConfigPathError: Undefined config path [b]
427
+ * // at Config.get (src/index.ts:2:1608)
428
+ * // at Context.&lt;anonymous&gt; (tests/index.spec.ts:19:24)
429
+ * // at processImmediate (node:internal/timers:464:21)
430
+ *
431
+ * ```
432
+ * */
433
+ public get&lt;T = unknown&gt;(path: PropertyPath, def?: T): T {
434
+ if (!this.has(path)) {
435
+ if (def === undefined) throw new UndefinedConfigPathError(path);
436
+ return def;
437
+ }
438
+ const result: any = get(this.data, path);
439
+ switch (typeof result) {
440
+ case 'string':
441
+ return &lt;T&gt;(&lt;unknown&gt;this.template&lt;T&gt;(result, def));
442
+ case 'object':
443
+ return result ? this.templatize&lt;T&gt;(result, def) : <span class="branch-1 cbranch-no" title="branch not covered" >result;</span>
444
+ default:
445
+ return result;
446
+ }
447
+ }
448
+ &nbsp;
449
+ /**
450
+ * @description Has config property by path
451
+ * @param path - data path
452
+ * @example
453
+ * ```
454
+ * import { Config } from '@biorate/config';
455
+ *
456
+ * const config = new Config();
457
+ *
458
+ * config.set('a', 1);
459
+ *
460
+ * console.log(config.has('a')); // true
461
+ * ```
462
+ * */
463
+ public has(path: PropertyPath) {
464
+ return has(this.data, path);
465
+ }
466
+ &nbsp;
467
+ /**
468
+ * @description Set config property by path
469
+ * @param path - data path
470
+ * @param value - data value
471
+ * @example
472
+ * ```
473
+ * import { Config } from '@biorate/config';
474
+ *
475
+ * const config = new Config();
476
+ *
477
+ * config.set('a', 1);
478
+ *
479
+ * console.log(config.get('a')); // 1
480
+ * ```
481
+ * */
482
+ public set(path: PropertyPath, value: unknown) {
483
+ set(this.data, path, value);
484
+ }
485
+ &nbsp;
486
+ /**
487
+ * @description Merge config data
488
+ * @param data - data object
489
+ * @example
490
+ * ```
491
+ * import { Config } from '@biorate/config';
492
+ *
493
+ * const config = new Config();
494
+ *
495
+ * config.merge({
496
+ * a: { b: { c: 1 } },
497
+ * });
498
+ *
499
+ * config.merge({
500
+ * a: { b: { d: 2 } },
501
+ * });
502
+ *
503
+ * console.log(config.has('a')); // true
504
+ * console.log(config.has('a.b')); // true
505
+ * console.log(config.get('a.b.c')); // 1
506
+ * console.log(config.get('a.b.d')); // 2
507
+ * ```
508
+ * */
509
+ public merge(data: unknown) {
510
+ merge(this.data, data);
511
+ }
512
+ }
513
+ &nbsp;</pre></td></tr></table></pre>
514
+
515
+ <div class='push'></div><!-- for sticky footer -->
516
+ </div><!-- /wrapper -->
517
+ <div class='footer quiet pad2 space-top1 center small'>
518
+ Code coverage generated by
519
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
520
+ at 2026-02-13T06:51:25.407Z
521
+ </div>
522
+ <script src="../../prettify.js"></script>
523
+ <script>
524
+ window.onload = function () {
525
+ prettyPrint();
526
+ };
527
+ </script>
528
+ <script src="../../sorter.js"></script>
529
+ <script src="../../block-navigation.js"></script>
530
+ </body>
531
+ </html>
532
+
@@ -0,0 +1,109 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for config/src/errors.ts</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">config/src</a> errors.ts</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'>1/1</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</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'>1/1</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'>1/1</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
75
+ <span class="cline-any cline-neutral">&nbsp;</span>
76
+ <span class="cline-any cline-neutral">&nbsp;</span>
77
+ <span class="cline-any cline-neutral">&nbsp;</span>
78
+ <span class="cline-any cline-neutral">&nbsp;</span>
79
+ <span class="cline-any cline-yes">1x</span>
80
+ <span class="cline-any cline-neutral">&nbsp;</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">import { BaseError } from '@biorate/errors';
83
+ import { PropertyPath } from 'lodash';
84
+ &nbsp;
85
+ export class UndefinedConfigPathError extends BaseError {
86
+ public constructor(path: PropertyPath) {
87
+ super(`Undefined config path [%s]`, [path]);
88
+ }
89
+ }
90
+ &nbsp;</pre></td></tr></table></pre>
91
+
92
+ <div class='push'></div><!-- for sticky footer -->
93
+ </div><!-- /wrapper -->
94
+ <div class='footer quiet pad2 space-top1 center small'>
95
+ Code coverage generated by
96
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
+ at 2026-02-13T06:51:25.407Z
98
+ </div>
99
+ <script src="../../prettify.js"></script>
100
+ <script>
101
+ window.onload = function () {
102
+ prettyPrint();
103
+ };
104
+ </script>
105
+ <script src="../../sorter.js"></script>
106
+ <script src="../../block-navigation.js"></script>
107
+ </body>
108
+ </html>
109
+