@featurevisor/core 2.26.1 → 3.0.1

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 (390) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/coverage/clover.xml +4991 -3130
  3. package/coverage/coverage-final.json +63 -39
  4. package/coverage/lcov-report/block-navigation.js +1 -1
  5. package/coverage/lcov-report/index.html +248 -98
  6. package/coverage/lcov-report/sorter.js +21 -7
  7. package/coverage/lcov-report/src/assess-distribution/index.html +116 -0
  8. package/coverage/lcov-report/src/assess-distribution/index.ts.html +754 -0
  9. package/coverage/lcov-report/{list → src/benchmark}/index.html +30 -30
  10. package/coverage/lcov-report/src/benchmark/index.ts.html +793 -0
  11. package/coverage/lcov-report/{builder → src/builder}/allocator.ts.html +38 -38
  12. package/coverage/lcov-report/{builder/buildScopedConditions.ts.html → src/builder/applyContextToConditions.ts.html} +80 -65
  13. package/coverage/lcov-report/{builder/buildScopedDatafile.ts.html → src/builder/applyContextToDatafile.ts.html} +92 -92
  14. package/coverage/lcov-report/{builder/buildScopedSegments.ts.html → src/builder/applyContextToSegments.ts.html} +103 -67
  15. package/coverage/lcov-report/{builder → src/builder}/buildDatafile.ts.html +336 -306
  16. package/coverage/lcov-report/src/builder/buildProject.ts.html +1117 -0
  17. package/coverage/lcov-report/src/builder/buildRuntimeDatafiles.ts.html +256 -0
  18. package/coverage/lcov-report/{builder → src/builder}/getFeatureRanges.ts.html +22 -22
  19. package/coverage/lcov-report/{builder → src/builder}/hashes.ts.html +50 -50
  20. package/coverage/lcov-report/{builder → src/builder}/index.html +114 -84
  21. package/coverage/lcov-report/{tester/cliFormat.ts.html → src/builder/index.ts.html} +17 -29
  22. package/coverage/lcov-report/{builder → src/builder}/mutateVariables.ts.html +55 -55
  23. package/coverage/lcov-report/{builder → src/builder}/mutator.ts.html +118 -118
  24. package/coverage/lcov-report/{builder → src/builder}/revision.ts.html +15 -15
  25. package/coverage/lcov-report/{builder → src/builder}/traffic.ts.html +86 -86
  26. package/coverage/lcov-report/src/cli/cli.ts.html +400 -0
  27. package/coverage/lcov-report/{tester → src/cli}/index.html +41 -41
  28. package/coverage/lcov-report/src/cli/plugins.ts.html +214 -0
  29. package/coverage/lcov-report/{config → src/config}/index.html +31 -31
  30. package/coverage/lcov-report/{config → src/config}/index.ts.html +12 -12
  31. package/coverage/lcov-report/{config → src/config}/projectConfig.ts.html +312 -96
  32. package/coverage/lcov-report/{datasource → src/datasource}/adapter.ts.html +28 -73
  33. package/coverage/lcov-report/{datasource → src/datasource}/datasource.ts.html +191 -104
  34. package/coverage/lcov-report/{datasource → src/datasource}/filesystemAdapter.ts.html +233 -635
  35. package/coverage/lcov-report/{datasource → src/datasource}/index.html +48 -48
  36. package/coverage/lcov-report/{datasource → src/datasource}/index.ts.html +14 -14
  37. package/coverage/lcov-report/src/evaluate/index.html +116 -0
  38. package/coverage/lcov-report/src/evaluate/index.ts.html +814 -0
  39. package/coverage/lcov-report/src/find-duplicate-segments/findDuplicateSegments.ts.html +313 -0
  40. package/coverage/lcov-report/src/find-duplicate-segments/index.html +131 -0
  41. package/coverage/lcov-report/src/find-duplicate-segments/index.ts.html +307 -0
  42. package/coverage/lcov-report/src/find-usage/index.html +116 -0
  43. package/coverage/lcov-report/src/find-usage/index.ts.html +1780 -0
  44. package/coverage/lcov-report/src/generate-code/index.html +131 -0
  45. package/coverage/lcov-report/src/generate-code/index.ts.html +403 -0
  46. package/coverage/lcov-report/{generate-code → src/generate-code}/typescript.ts.html +266 -1361
  47. package/coverage/lcov-report/{generate-code → src}/index.html +38 -23
  48. package/coverage/lcov-report/src/info/index.html +116 -0
  49. package/coverage/lcov-report/src/info/index.ts.html +472 -0
  50. package/coverage/lcov-report/src/init/index.html +116 -0
  51. package/coverage/lcov-report/src/init/index.ts.html +280 -0
  52. package/coverage/lcov-report/{linter → src/linter}/attributeSchema.ts.html +160 -157
  53. package/coverage/lcov-report/{linter → src/linter}/checkCircularDependency.ts.html +25 -25
  54. package/coverage/lcov-report/{linter → src/linter}/checkPercentageExceedingSlot.ts.html +42 -42
  55. package/coverage/lcov-report/{linter → src/linter}/conditionSchema.ts.html +207 -207
  56. package/coverage/lcov-report/{linter → src/linter}/featureSchema.ts.html +462 -471
  57. package/coverage/lcov-report/{linter → src/linter}/groupSchema.ts.html +25 -22
  58. package/coverage/lcov-report/{linter → src/linter}/index.html +129 -99
  59. package/coverage/lcov-report/src/linter/index.ts.html +88 -0
  60. package/coverage/lcov-report/{linter → src/linter}/lintProject.ts.html +740 -332
  61. package/coverage/lcov-report/{linter → src/linter}/mutationNotation.ts.html +130 -130
  62. package/coverage/lcov-report/{linter → src/linter}/printError.ts.html +27 -27
  63. package/coverage/lcov-report/{linter → src/linter}/schema.ts.html +153 -150
  64. package/coverage/lcov-report/{linter → src/linter}/segmentSchema.ts.html +18 -15
  65. package/coverage/lcov-report/src/linter/targetSchema.ts.html +223 -0
  66. package/coverage/lcov-report/{linter → src/linter}/testSchema.ts.html +54 -48
  67. package/coverage/lcov-report/{linter → src/linter}/zodHelpers.ts.html +17 -17
  68. package/coverage/lcov-report/src/list/index.html +131 -0
  69. package/coverage/lcov-report/src/list/index.ts.html +2065 -0
  70. package/coverage/lcov-report/{list → src/list}/matrix.ts.html +43 -58
  71. package/coverage/lcov-report/src/promoter/index.html +116 -0
  72. package/coverage/lcov-report/src/promoter/index.ts.html +3883 -0
  73. package/coverage/lcov-report/src/sets.ts.html +313 -0
  74. package/coverage/lcov-report/src/targeting.ts.html +403 -0
  75. package/coverage/lcov-report/src/tester/cliFormat.ts.html +133 -0
  76. package/coverage/lcov-report/{tester → src/tester}/helpers.ts.html +15 -15
  77. package/coverage/lcov-report/src/tester/index.html +206 -0
  78. package/coverage/lcov-report/src/tester/prettyDuration.ts.html +187 -0
  79. package/coverage/lcov-report/src/tester/printTestResult.ts.html +337 -0
  80. package/coverage/lcov-report/src/tester/testFeature.ts.html +1186 -0
  81. package/coverage/lcov-report/src/tester/testProject.ts.html +1018 -0
  82. package/coverage/lcov-report/src/tester/testSegment.ts.html +316 -0
  83. package/coverage/lcov-report/{utils → src/utils}/extractKeys.ts.html +68 -68
  84. package/coverage/lcov-report/{utils → src/utils}/git.ts.html +44 -68
  85. package/coverage/lcov-report/{utils → src/utils}/index.html +44 -44
  86. package/coverage/lcov-report/{utils → src/utils}/index.ts.html +14 -14
  87. package/coverage/lcov-report/{utils → src/utils}/pretty.ts.html +20 -20
  88. package/coverage/lcov.info +10121 -5723
  89. package/jest.config.js +13 -4
  90. package/lib/assess-distribution/index.d.ts +1 -1
  91. package/lib/assess-distribution/index.js +59 -40
  92. package/lib/assess-distribution/index.js.map +1 -1
  93. package/lib/benchmark/index.d.ts +8 -5
  94. package/lib/benchmark/index.js +82 -65
  95. package/lib/benchmark/index.js.map +1 -1
  96. package/lib/builder/applyContextToConditions.d.ts +5 -0
  97. package/lib/builder/{buildScopedConditions.js → applyContextToConditions.js} +19 -14
  98. package/lib/builder/applyContextToConditions.js.map +1 -0
  99. package/lib/builder/applyContextToDatafile.d.ts +2 -0
  100. package/lib/builder/{buildScopedDatafile.js → applyContextToDatafile.js} +26 -26
  101. package/lib/builder/applyContextToDatafile.js.map +1 -0
  102. package/lib/builder/applyContextToSegments.d.ts +5 -0
  103. package/lib/builder/{buildScopedSegments.js → applyContextToSegments.js} +19 -14
  104. package/lib/builder/applyContextToSegments.js.map +1 -0
  105. package/lib/builder/buildDatafile.d.ts +9 -6
  106. package/lib/builder/buildDatafile.js +86 -51
  107. package/lib/builder/buildDatafile.js.map +1 -1
  108. package/lib/builder/buildProject.d.ts +17 -3
  109. package/lib/builder/buildProject.js +151 -59
  110. package/lib/builder/buildProject.js.map +1 -1
  111. package/lib/builder/buildRuntimeDatafiles.d.ts +12 -0
  112. package/lib/builder/buildRuntimeDatafiles.js +35 -0
  113. package/lib/builder/buildRuntimeDatafiles.js.map +1 -0
  114. package/lib/builder/getFeatureRanges.js +34 -1
  115. package/lib/builder/getFeatureRanges.js.map +1 -1
  116. package/lib/builder/hashes.js +34 -1
  117. package/lib/builder/hashes.js.map +1 -1
  118. package/lib/builder/index.d.ts +0 -1
  119. package/lib/builder/index.js +0 -1
  120. package/lib/builder/index.js.map +1 -1
  121. package/lib/cli/cli.js +0 -4
  122. package/lib/cli/cli.js.map +1 -1
  123. package/lib/cli/plugins.js +7 -2
  124. package/lib/cli/plugins.js.map +1 -1
  125. package/lib/config/projectConfig.d.ts +17 -17
  126. package/lib/config/projectConfig.js +101 -15
  127. package/lib/config/projectConfig.js.map +1 -1
  128. package/lib/datasource/adapter.d.ts +7 -9
  129. package/lib/datasource/adapter.js +0 -7
  130. package/lib/datasource/adapter.js.map +1 -1
  131. package/lib/datasource/datasource.d.ts +15 -5
  132. package/lib/datasource/datasource.js +37 -9
  133. package/lib/datasource/datasource.js.map +1 -1
  134. package/lib/datasource/filesystemAdapter.d.ts +4 -10
  135. package/lib/datasource/filesystemAdapter.js +111 -149
  136. package/lib/datasource/filesystemAdapter.js.map +1 -1
  137. package/lib/evaluate/index.d.ts +1 -7
  138. package/lib/evaluate/index.js +81 -67
  139. package/lib/evaluate/index.js.map +1 -1
  140. package/lib/find-duplicate-segments/findDuplicateSegments.js +34 -1
  141. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  142. package/lib/find-duplicate-segments/index.js +21 -13
  143. package/lib/find-duplicate-segments/index.js.map +1 -1
  144. package/lib/find-usage/index.js +57 -41
  145. package/lib/find-usage/index.js.map +1 -1
  146. package/lib/generate-code/index.d.ts +1 -1
  147. package/lib/generate-code/index.js +64 -21
  148. package/lib/generate-code/index.js.map +1 -1
  149. package/lib/generate-code/typescript.d.ts +1 -1
  150. package/lib/generate-code/typescript.js +59 -333
  151. package/lib/generate-code/typescript.js.map +1 -1
  152. package/lib/index.d.ts +2 -1
  153. package/lib/index.js +2 -1
  154. package/lib/index.js.map +1 -1
  155. package/lib/info/index.js +57 -16
  156. package/lib/info/index.js.map +1 -1
  157. package/lib/init/index.d.ts +2 -2
  158. package/lib/init/index.js +39 -3
  159. package/lib/init/index.js.map +1 -1
  160. package/lib/linter/attributeSchema.d.ts +1 -0
  161. package/lib/linter/attributeSchema.js +1 -0
  162. package/lib/linter/attributeSchema.js.map +1 -1
  163. package/lib/linter/conditionSchema.js +5 -5
  164. package/lib/linter/conditionSchema.js.map +1 -1
  165. package/lib/linter/featureSchema.d.ts +4 -1
  166. package/lib/linter/featureSchema.js +15 -13
  167. package/lib/linter/featureSchema.js.map +1 -1
  168. package/lib/linter/groupSchema.d.ts +1 -0
  169. package/lib/linter/groupSchema.js +1 -0
  170. package/lib/linter/groupSchema.js.map +1 -1
  171. package/lib/linter/lintProject.d.ts +1 -3
  172. package/lib/linter/lintProject.js +198 -68
  173. package/lib/linter/lintProject.js.map +1 -1
  174. package/lib/linter/schema.js +1 -0
  175. package/lib/linter/schema.js.map +1 -1
  176. package/lib/linter/segmentSchema.d.ts +1 -0
  177. package/lib/linter/segmentSchema.js +1 -0
  178. package/lib/linter/segmentSchema.js.map +1 -1
  179. package/lib/linter/targetSchema.d.ts +16 -0
  180. package/lib/linter/targetSchema.js +40 -0
  181. package/lib/linter/targetSchema.js.map +1 -0
  182. package/lib/linter/testSchema.d.ts +4 -3
  183. package/lib/linter/testSchema.js +9 -4
  184. package/lib/linter/testSchema.js.map +1 -1
  185. package/lib/list/index.d.ts +1 -0
  186. package/lib/list/index.js +131 -12
  187. package/lib/list/index.js.map +1 -1
  188. package/lib/list/matrix.js +3 -7
  189. package/lib/list/matrix.js.map +1 -1
  190. package/lib/promoter/index.d.ts +50 -0
  191. package/lib/promoter/index.js +880 -0
  192. package/lib/promoter/index.js.map +1 -0
  193. package/lib/sets.d.ts +11 -0
  194. package/lib/sets.js +81 -0
  195. package/lib/sets.js.map +1 -0
  196. package/lib/targeting.d.ts +14 -0
  197. package/lib/targeting.js +82 -0
  198. package/lib/targeting.js.map +1 -0
  199. package/lib/tester/cliFormat.d.ts +7 -1
  200. package/lib/tester/cliFormat.js +11 -2
  201. package/lib/tester/cliFormat.js.map +1 -1
  202. package/lib/tester/printTestResult.js +2 -2
  203. package/lib/tester/printTestResult.js.map +1 -1
  204. package/lib/tester/testFeature.d.ts +0 -1
  205. package/lib/tester/testFeature.js +8 -25
  206. package/lib/tester/testFeature.js.map +1 -1
  207. package/lib/tester/testProject.d.ts +2 -3
  208. package/lib/tester/testProject.js +93 -86
  209. package/lib/tester/testProject.js.map +1 -1
  210. package/lib/tester/testSegment.d.ts +1 -1
  211. package/lib/tester/testSegment.js +3 -21
  212. package/lib/tester/testSegment.js.map +1 -1
  213. package/lib/utils/git.js +45 -19
  214. package/lib/utils/git.js.map +1 -1
  215. package/package.json +12 -12
  216. package/src/assess-distribution/index.ts +72 -52
  217. package/src/benchmark/index.ts +124 -91
  218. package/src/builder/{buildScopedConditions.spec.ts → applyContextToConditions.spec.ts} +160 -142
  219. package/src/builder/{buildScopedConditions.ts → applyContextToConditions.ts} +19 -14
  220. package/src/builder/{buildScopedDatafile.spec.ts → applyContextToDatafile.spec.ts} +141 -81
  221. package/src/builder/{buildScopedDatafile.ts → applyContextToDatafile.ts} +33 -33
  222. package/src/builder/{buildScopedSegments.spec.ts → applyContextToSegments.spec.ts} +171 -151
  223. package/src/builder/{buildScopedSegments.ts → applyContextToSegments.ts} +26 -14
  224. package/src/builder/buildDatafile.spec.ts +192 -14
  225. package/src/builder/buildDatafile.ts +74 -64
  226. package/src/builder/buildProject.ts +171 -86
  227. package/src/builder/buildRuntimeDatafiles.ts +57 -0
  228. package/src/builder/index.ts +0 -1
  229. package/src/cli/cli.ts +0 -5
  230. package/src/cli/plugins.ts +7 -2
  231. package/src/config/projectConfig.spec.ts +171 -8
  232. package/src/config/projectConfig.ts +100 -28
  233. package/src/datasource/adapter.ts +8 -23
  234. package/src/datasource/datasource.ts +50 -21
  235. package/src/datasource/filesystemAdapter.spec.ts +133 -74
  236. package/src/datasource/filesystemAdapter.ts +93 -227
  237. package/src/evaluate/index.ts +109 -97
  238. package/src/find-duplicate-segments/index.ts +34 -16
  239. package/src/find-usage/index.ts +89 -44
  240. package/src/generate-code/index.ts +36 -24
  241. package/src/generate-code/typescript.spec.ts +106 -0
  242. package/src/generate-code/typescript.ts +33 -398
  243. package/src/index.ts +2 -1
  244. package/src/info/index.ts +72 -16
  245. package/src/init/index.ts +1 -1
  246. package/src/linter/attributeSchema.ts +1 -0
  247. package/src/linter/conditionSchema.spec.ts +23 -3
  248. package/src/linter/conditionSchema.ts +5 -5
  249. package/src/linter/featureSchema.spec.ts +107 -18
  250. package/src/linter/featureSchema.ts +25 -28
  251. package/src/linter/groupSchema.ts +1 -0
  252. package/src/linter/lintProject.spec.ts +131 -92
  253. package/src/linter/lintProject.ts +233 -97
  254. package/src/linter/schema.ts +1 -0
  255. package/src/linter/segmentSchema.spec.ts +5 -3
  256. package/src/linter/segmentSchema.ts +1 -0
  257. package/src/linter/targetSchema.spec.ts +159 -0
  258. package/src/linter/targetSchema.ts +46 -0
  259. package/src/linter/testSchema.spec.ts +70 -5
  260. package/src/linter/testSchema.ts +12 -10
  261. package/src/list/index.spec.ts +135 -0
  262. package/src/list/index.ts +188 -12
  263. package/src/list/matrix.ts +3 -8
  264. package/src/promoter/index.spec.ts +617 -0
  265. package/src/promoter/index.ts +1266 -0
  266. package/src/sets.ts +76 -0
  267. package/src/targeting.spec.ts +74 -0
  268. package/src/targeting.ts +106 -0
  269. package/src/tester/cliFormat.ts +11 -1
  270. package/src/tester/printTestResult.ts +12 -3
  271. package/src/tester/testFeature.ts +10 -36
  272. package/src/tester/testProject.spec.ts +50 -0
  273. package/src/tester/testProject.ts +89 -140
  274. package/src/tester/testSegment.ts +5 -22
  275. package/src/utils/git.ts +13 -21
  276. package/tsconfig.cjs.json +5 -1
  277. package/tsconfig.typecheck.json +9 -0
  278. package/coverage/lcov-report/builder/convertToV1.ts.html +0 -583
  279. package/lib/builder/allocator.spec.d.ts +0 -1
  280. package/lib/builder/allocator.spec.js +0 -85
  281. package/lib/builder/allocator.spec.js.map +0 -1
  282. package/lib/builder/buildDatafile.spec.d.ts +0 -1
  283. package/lib/builder/buildDatafile.spec.js +0 -233
  284. package/lib/builder/buildDatafile.spec.js.map +0 -1
  285. package/lib/builder/buildScopedConditions.d.ts +0 -5
  286. package/lib/builder/buildScopedConditions.js.map +0 -1
  287. package/lib/builder/buildScopedConditions.spec.d.ts +0 -1
  288. package/lib/builder/buildScopedConditions.spec.js +0 -2167
  289. package/lib/builder/buildScopedConditions.spec.js.map +0 -1
  290. package/lib/builder/buildScopedDatafile.d.ts +0 -2
  291. package/lib/builder/buildScopedDatafile.js.map +0 -1
  292. package/lib/builder/buildScopedDatafile.spec.d.ts +0 -1
  293. package/lib/builder/buildScopedDatafile.spec.js +0 -2277
  294. package/lib/builder/buildScopedDatafile.spec.js.map +0 -1
  295. package/lib/builder/buildScopedSegments.d.ts +0 -5
  296. package/lib/builder/buildScopedSegments.js.map +0 -1
  297. package/lib/builder/buildScopedSegments.spec.d.ts +0 -1
  298. package/lib/builder/buildScopedSegments.spec.js +0 -1062
  299. package/lib/builder/buildScopedSegments.spec.js.map +0 -1
  300. package/lib/builder/convertToV1.d.ts +0 -10
  301. package/lib/builder/convertToV1.js +0 -119
  302. package/lib/builder/convertToV1.js.map +0 -1
  303. package/lib/builder/mutateVariables.spec.d.ts +0 -1
  304. package/lib/builder/mutateVariables.spec.js +0 -1074
  305. package/lib/builder/mutateVariables.spec.js.map +0 -1
  306. package/lib/builder/mutator.spec.d.ts +0 -1
  307. package/lib/builder/mutator.spec.js +0 -368
  308. package/lib/builder/mutator.spec.js.map +0 -1
  309. package/lib/builder/revision.spec.d.ts +0 -1
  310. package/lib/builder/revision.spec.js +0 -21
  311. package/lib/builder/revision.spec.js.map +0 -1
  312. package/lib/builder/traffic.spec.d.ts +0 -1
  313. package/lib/builder/traffic.spec.js +0 -872
  314. package/lib/builder/traffic.spec.js.map +0 -1
  315. package/lib/config/projectConfig.spec.d.ts +0 -1
  316. package/lib/config/projectConfig.spec.js +0 -24
  317. package/lib/config/projectConfig.spec.js.map +0 -1
  318. package/lib/datasource/filesystemAdapter.spec.d.ts +0 -1
  319. package/lib/datasource/filesystemAdapter.spec.js +0 -88
  320. package/lib/datasource/filesystemAdapter.spec.js.map +0 -1
  321. package/lib/generate-code/typescript.spec.d.ts +0 -1
  322. package/lib/generate-code/typescript.spec.js +0 -78
  323. package/lib/generate-code/typescript.spec.js.map +0 -1
  324. package/lib/linter/attributeSchema.spec.d.ts +0 -1
  325. package/lib/linter/attributeSchema.spec.js +0 -266
  326. package/lib/linter/attributeSchema.spec.js.map +0 -1
  327. package/lib/linter/conditionSchema.spec.d.ts +0 -1
  328. package/lib/linter/conditionSchema.spec.js +0 -380
  329. package/lib/linter/conditionSchema.spec.js.map +0 -1
  330. package/lib/linter/featureSchema.spec.d.ts +0 -1
  331. package/lib/linter/featureSchema.spec.js +0 -1552
  332. package/lib/linter/featureSchema.spec.js.map +0 -1
  333. package/lib/linter/lintProject.spec.d.ts +0 -1
  334. package/lib/linter/lintProject.spec.js +0 -211
  335. package/lib/linter/lintProject.spec.js.map +0 -1
  336. package/lib/linter/mutationNotation.spec.d.ts +0 -1
  337. package/lib/linter/mutationNotation.spec.js +0 -598
  338. package/lib/linter/mutationNotation.spec.js.map +0 -1
  339. package/lib/linter/schema.spec.d.ts +0 -1
  340. package/lib/linter/schema.spec.js +0 -535
  341. package/lib/linter/schema.spec.js.map +0 -1
  342. package/lib/linter/segmentSchema.spec.d.ts +0 -1
  343. package/lib/linter/segmentSchema.spec.js +0 -303
  344. package/lib/linter/segmentSchema.spec.js.map +0 -1
  345. package/lib/linter/testSchema.spec.d.ts +0 -1
  346. package/lib/linter/testSchema.spec.js +0 -162
  347. package/lib/linter/testSchema.spec.js.map +0 -1
  348. package/lib/list/matrix.spec.d.ts +0 -1
  349. package/lib/list/matrix.spec.js +0 -42
  350. package/lib/list/matrix.spec.js.map +0 -1
  351. package/lib/site/exportSite.d.ts +0 -2
  352. package/lib/site/exportSite.js +0 -30
  353. package/lib/site/exportSite.js.map +0 -1
  354. package/lib/site/generateHistory.d.ts +0 -3
  355. package/lib/site/generateHistory.js +0 -31
  356. package/lib/site/generateHistory.js.map +0 -1
  357. package/lib/site/generateSiteSearchIndex.d.ts +0 -4
  358. package/lib/site/generateSiteSearchIndex.js +0 -195
  359. package/lib/site/generateSiteSearchIndex.js.map +0 -1
  360. package/lib/site/getLastModifiedFromHistory.d.ts +0 -2
  361. package/lib/site/getLastModifiedFromHistory.js +0 -18
  362. package/lib/site/getLastModifiedFromHistory.js.map +0 -1
  363. package/lib/site/getOwnerAndRepoFromUrl.d.ts +0 -4
  364. package/lib/site/getOwnerAndRepoFromUrl.js +0 -20
  365. package/lib/site/getOwnerAndRepoFromUrl.js.map +0 -1
  366. package/lib/site/getRelativePaths.d.ts +0 -6
  367. package/lib/site/getRelativePaths.js +0 -15
  368. package/lib/site/getRelativePaths.js.map +0 -1
  369. package/lib/site/getRepoDetails.d.ts +0 -8
  370. package/lib/site/getRepoDetails.js +0 -48
  371. package/lib/site/getRepoDetails.js.map +0 -1
  372. package/lib/site/index.d.ts +0 -2
  373. package/lib/site/index.js +0 -43
  374. package/lib/site/index.js.map +0 -1
  375. package/lib/site/serveSite.d.ts +0 -2
  376. package/lib/site/serveSite.js +0 -54
  377. package/lib/site/serveSite.js.map +0 -1
  378. package/lib/tester/helpers.spec.d.ts +0 -1
  379. package/lib/tester/helpers.spec.js +0 -115
  380. package/lib/tester/helpers.spec.js.map +0 -1
  381. package/src/builder/convertToV1.ts +0 -166
  382. package/src/site/exportSite.ts +0 -42
  383. package/src/site/generateHistory.ts +0 -40
  384. package/src/site/generateSiteSearchIndex.ts +0 -258
  385. package/src/site/getLastModifiedFromHistory.ts +0 -21
  386. package/src/site/getOwnerAndRepoFromUrl.ts +0 -17
  387. package/src/site/getRelativePaths.ts +0 -24
  388. package/src/site/getRepoDetails.ts +0 -62
  389. package/src/site/index.ts +0 -46
  390. package/src/site/serveSite.ts +0 -58
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for utils/git.ts</title>
6
+ <title>Code coverage report for src/utils/git.ts</title>
7
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" />
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
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
14
+ background-image: url(../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,20 +19,20 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">utils</a> git.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/utils</a> git.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">2.59% </span>
26
+ <span class="strong">1.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>2/77</span>
28
+ <span class='fraction'>1/75</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/48</span>
35
+ <span class='fraction'>0/51</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">2.59% </span>
47
+ <span class="strong">1.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>2/77</span>
49
+ <span class='fraction'>1/75</span>
50
50
  </div>
51
51
 
52
52
 
@@ -57,7 +57,7 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
61
61
  </div>
62
62
  </template>
63
63
  </div>
@@ -221,15 +221,7 @@
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
222
  <a name='L157'></a><a href='#L157'>157</a>
223
223
  <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
224
+ <a name='L159'></a><a href='#L159'>159</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
233
225
  <span class="cline-any cline-neutral">&nbsp;</span>
234
226
  <span class="cline-any cline-neutral">&nbsp;</span>
235
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -297,7 +289,7 @@
297
289
  <span class="cline-any cline-no">&nbsp;</span>
298
290
  <span class="cline-any cline-neutral">&nbsp;</span>
299
291
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">5x</span>
292
+ <span class="cline-any cline-no">&nbsp;</span>
301
293
  <span class="cline-any cline-neutral">&nbsp;</span>
302
294
  <span class="cline-any cline-neutral">&nbsp;</span>
303
295
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -327,9 +319,6 @@
327
319
  <span class="cline-any cline-no">&nbsp;</span>
328
320
  <span class="cline-any cline-no">&nbsp;</span>
329
321
  <span class="cline-any cline-no">&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
322
  <span class="cline-any cline-no">&nbsp;</span>
334
323
  <span class="cline-any cline-no">&nbsp;</span>
335
324
  <span class="cline-any cline-no">&nbsp;</span>
@@ -358,16 +347,11 @@
358
347
  <span class="cline-any cline-neutral">&nbsp;</span>
359
348
  <span class="cline-any cline-neutral">&nbsp;</span>
360
349
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-no">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
350
  <span class="cline-any cline-neutral">&nbsp;</span>
365
351
  <span class="cline-any cline-neutral">&nbsp;</span>
366
352
  <span class="cline-any cline-neutral">&nbsp;</span>
367
353
  <span class="cline-any cline-neutral">&nbsp;</span>
368
354
  <span class="cline-any cline-no">&nbsp;</span>
369
- <span class="cline-any cline-no">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
355
  <span class="cline-any cline-neutral">&nbsp;</span>
372
356
  <span class="cline-any cline-neutral">&nbsp;</span>
373
357
  <span class="cline-any cline-no">&nbsp;</span>
@@ -402,13 +386,13 @@ import { CustomParser } from "@featurevisor/parsers";
402
386
  &nbsp;
403
387
  import { ProjectConfig } from "../config";
404
388
  &nbsp;
405
- function <span class="fstat-no" title="function not covered" >isWithinDirectory(</span>directoryPath: string, fileDirectoryPath: string): boolean {
389
+ function <span class="fstat-no" title="function not covered" >isWithinDirectory(d</span>irectoryPath: string, fileDirectoryPath: string): boolean {
406
390
  <span class="cstat-no" title="statement not covered" > return (</span>
407
391
  fileDirectoryPath === directoryPath || fileDirectoryPath.startsWith(directoryPath + path.sep)
408
392
  );
409
393
  }
410
394
  &nbsp;
411
- function <span class="fstat-no" title="function not covered" >parseGitCommitShowOutput(</span>gitShowOutput: string) {
395
+ function <span class="fstat-no" title="function not covered" >parseGitCommitShowOutput(g</span>itShowOutput: string) {
412
396
  const result = <span class="cstat-no" title="statement not covered" >{</span>
413
397
  hash: "",
414
398
  author: "",
@@ -430,40 +414,40 @@ function <span class="fstat-no" title="function not covered" >parseGitCommitShow
430
414
  <span class="cstat-no" title="statement not covered" > parsingMessage = false;</span>
431
415
  } else <span class="cstat-no" title="statement not covered" >if (line.startsWith("Date:")) {</span>
432
416
  <span class="cstat-no" title="statement not covered" > result.date = line.replace("Date:", "").trim();</span>
433
- <span class="cstat-no" title="statement not covered" > parsingMessage = true; </span>// Start parsing commit message
417
+ <span class="cstat-no" title="statement not covered" > parsingMessage = true; /</span>/ Start parsing commit message
434
418
  } else <span class="cstat-no" title="statement not covered" >if (line.startsWith("diff --git")) {</span>
435
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (currentFile) {</span>
419
+ <span class="cstat-no" title="statement not covered" > if (currentFile) {</span>
436
420
  // Finish capturing the previous file's diff
437
421
  <span class="cstat-no" title="statement not covered" > parsingDiffs = false;</span>
438
422
  }
439
423
  <span class="cstat-no" title="statement not covered" > currentFile = line.split(" ")[2].substring(2);</span>
440
- <span class="cstat-no" title="statement not covered" > result.diffs[currentFile] = line + "\n"; </span>// Include the diff --git line
424
+ <span class="cstat-no" title="statement not covered" > result.diffs[currentFile] = line + "\n"; /</span>/ Include the diff --git line
441
425
  <span class="cstat-no" title="statement not covered" > parsingDiffs = true;</span>
442
- <span class="cstat-no" title="statement not covered" > parsingMessage = false; </span>// Stop parsing commit message
426
+ <span class="cstat-no" title="statement not covered" > parsingMessage = false; /</span>/ Stop parsing commit message
443
427
  } else <span class="cstat-no" title="statement not covered" >if (parsingDiffs) {</span>
444
428
  <span class="cstat-no" title="statement not covered" > result.diffs[currentFile] += line + "\n";</span>
445
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (parsingMessage &amp;&amp; line.trim() !== "") {</span>
446
- <span class="cstat-no" title="statement not covered" > result.message += line.trim() + "\n"; </span>// Capture commit message
429
+ } else <span class="cstat-no" title="statement not covered" >if (parsingMessage &amp;&amp; line.trim() !== "") {</span>
430
+ <span class="cstat-no" title="statement not covered" > result.message += line.trim() + "\n"; /</span>/ Capture commit message
447
431
  }
448
432
  });
449
433
  &nbsp;
450
434
  <span class="cstat-no" title="statement not covered" > return result;</span>
451
435
  }
452
436
  &nbsp;
453
- function <span class="fstat-no" title="function not covered" >analyzeFileChange(</span>diff) {
454
- let status = <span class="cstat-no" title="statement not covered" >"updated";</span> // Default to 'updated'
437
+ function <span class="fstat-no" title="function not covered" >analyzeFileChange(d</span>iff) {
438
+ let status = <span class="cstat-no" title="statement not covered" >"updated"; /</span>/ Default to 'updated'
455
439
  &nbsp;
456
440
  // Check for file creation or deletion
457
441
  <span class="cstat-no" title="statement not covered" > if (diff.includes("new file mode")) {</span>
458
442
  <span class="cstat-no" title="statement not covered" > status = "created";</span>
459
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (diff.includes("deleted file mode")) {</span>
443
+ } else <span class="cstat-no" title="statement not covered" >if (diff.includes("deleted file mode")) {</span>
460
444
  <span class="cstat-no" title="statement not covered" > status = "deleted";</span>
461
445
  }
462
446
  &nbsp;
463
447
  <span class="cstat-no" title="statement not covered" > return status;</span>
464
448
  }
465
449
  &nbsp;
466
- export function <span class="fstat-no" title="function not covered" >getCommit(</span>
450
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >getCommit(</span></span>
467
451
  gitShowOutput: string,
468
452
  options: { rootDirectoryPath: string; projectConfig: ProjectConfig },
469
453
  ): Commit {
@@ -491,16 +475,13 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
491
475
  } else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.segmentsDirectoryPath, relativeDir)) {</span>
492
476
  <span class="cstat-no" title="statement not covered" > type = "segment";</span>
493
477
  } else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.featuresDirectoryPath, relativeDir)) {</span>
494
- <span class="cstat-no" title="statement not covered" > type = "feature";</span>
495
- } else <span class="cstat-no" title="statement not covered" >if (</span>
496
- projectConfig.splitByEnvironment &amp;&amp;
497
- isWithinDirectory(projectConfig.environmentsDirectoryPath, relativeDir)
498
- ) {
499
478
  <span class="cstat-no" title="statement not covered" > type = "feature";</span>
500
479
  } else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.groupsDirectoryPath, relativeDir)) {</span>
501
480
  <span class="cstat-no" title="statement not covered" > type = "group";</span>
502
481
  } else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.schemasDirectoryPath, relativeDir)) {</span>
503
482
  <span class="cstat-no" title="statement not covered" > type = "schema";</span>
483
+ } else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.targetsDirectoryPath, relativeDir)) {</span>
484
+ <span class="cstat-no" title="statement not covered" > type = "target";</span>
504
485
  } else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.testsDirectoryPath, relativeDir)) {</span>
505
486
  <span class="cstat-no" title="statement not covered" > type = "test";</span>
506
487
  } else {
@@ -512,7 +493,7 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
512
493
  const fileName = <span class="cstat-no" title="statement not covered" >absolutePath.split(path.sep).pop() as string;</span>
513
494
  const extensionWithDot = <span class="cstat-no" title="statement not covered" >"." + (projectConfig.parser as CustomParser).extension;</span>
514
495
  &nbsp;
515
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!fileName.endsWith(extensionWithDot)) {</span>
496
+ <span class="cstat-no" title="statement not covered" > if (!fileName.endsWith(extensionWithDot)) {</span>
516
497
  // unknown extension
517
498
  <span class="cstat-no" title="statement not covered" > return;</span>
518
499
  }
@@ -520,24 +501,19 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
520
501
  let key = <span class="cstat-no" title="statement not covered" >fileName.replace(extensionWithDot, "");</span>
521
502
  &nbsp;
522
503
  <span class="cstat-no" title="statement not covered" > if (</span>
523
- type === "feature" &amp;&amp;
524
- projectConfig.splitByEnvironment &amp;&amp;
525
- absolutePath.startsWith(projectConfig.environmentsDirectoryPath + path.sep)
526
- ) {
527
- const featureRelativePath = <span class="cstat-no" title="statement not covered" >absolutePath</span>
528
- .replace(projectConfig.environmentsDirectoryPath + path.sep, "")
529
- .split(path.sep)
530
- .slice(1)
531
- .join(path.sep)
532
- .replace(extensionWithDot, "");
533
- &nbsp;
534
- <span class="cstat-no" title="statement not covered" > key = featureRelativePath.replace(/\\/g, "/");</span>
535
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
536
- type === "feature" &amp;&amp;
537
- absolutePath.startsWith(projectConfig.featuresDirectoryPath + path.sep)
504
+ (type === "feature" || type === "target") &amp;&amp;
505
+ absolutePath.startsWith(
506
+ (type === "feature"
507
+ ? projectConfig.featuresDirectoryPath
508
+ : projectConfig.targetsDirectoryPath) + path.sep,
509
+ )
538
510
  ) {
511
+ const entityDirectoryPath =
512
+ <span class="cstat-no" title="statement not covered" > type === "feature"</span>
513
+ ? projectConfig.featuresDirectoryPath
514
+ : projectConfig.targetsDirectoryPath;
539
515
  <span class="cstat-no" title="statement not covered" > key = absolutePath</span>
540
- .replace(projectConfig.featuresDirectoryPath + path.sep, "")
516
+ .replace(entityDirectoryPath + path.sep, "")
541
517
  .replace(extensionWithDot, "")
542
518
  .replace(/\\/g, "/");
543
519
  }
@@ -568,16 +544,16 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
568
544
  <div class='footer quiet pad2 space-top1 center small'>
569
545
  Code coverage generated by
570
546
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
571
- at 2026-04-26T16:47:51.164Z
547
+ at 2026-07-12T20:35:50.655Z
572
548
  </div>
573
- <script src="../prettify.js"></script>
549
+ <script src="../../prettify.js"></script>
574
550
  <script>
575
551
  window.onload = function () {
576
552
  prettyPrint();
577
553
  };
578
554
  </script>
579
- <script src="../sorter.js"></script>
580
- <script src="../block-navigation.js"></script>
555
+ <script src="../../sorter.js"></script>
556
+ <script src="../../block-navigation.js"></script>
581
557
  </body>
582
558
  </html>
583
559
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for utils</title>
6
+ <title>Code coverage report for src/utils</title>
7
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" />
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
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
14
+ background-image: url(../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> utils</h1>
22
+ <h1><a href="../../index.html">All files</a> src/utils</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">31.72% </span>
26
+ <span class="strong">31.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>46/145</span>
28
+ <span class='fraction'>45/143</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">11.59% </span>
33
+ <span class="strong">26.37% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>8/69</span>
35
+ <span class='fraction'>24/91</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">37.5% </span>
40
+ <span class="strong">41.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/24</span>
42
+ <span class='fraction'>10/24</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">31.72% </span>
47
+ <span class="strong">31.46% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>46/145</span>
49
+ <span class='fraction'>45/143</span>
50
50
  </div>
51
51
 
52
52
 
@@ -57,7 +57,7 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
61
61
  </div>
62
62
  </template>
63
63
  </div>
@@ -79,33 +79,33 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file medium" data-value="extractKeys.ts"><a href="extractKeys.ts.html">extractKeys.ts</a></td>
83
- <td data-value="63.93" class="pic medium">
84
- <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
82
+ <td class="file high" data-value="extractKeys.ts"><a href="extractKeys.ts.html">extractKeys.ts</a></td>
83
+ <td data-value="67.21" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
85
85
  </td>
86
- <td data-value="63.93" class="pct medium">63.93%</td>
87
- <td data-value="61" class="abs medium">39/61</td>
88
- <td data-value="42.1" class="pct low">42.1%</td>
89
- <td data-value="19" class="abs low">8/19</td>
90
- <td data-value="56.25" class="pct medium">56.25%</td>
91
- <td data-value="16" class="abs medium">9/16</td>
92
- <td data-value="63.93" class="pct medium">63.93%</td>
93
- <td data-value="61" class="abs medium">39/61</td>
86
+ <td data-value="67.21" class="pct high">67.21%</td>
87
+ <td data-value="61" class="abs high">41/61</td>
88
+ <td data-value="63.15" class="pct high">63.15%</td>
89
+ <td data-value="38" class="abs high">24/38</td>
90
+ <td data-value="62.5" class="pct medium">62.5%</td>
91
+ <td data-value="16" class="abs medium">10/16</td>
92
+ <td data-value="67.21" class="pct high">67.21%</td>
93
+ <td data-value="61" class="abs high">41/61</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file low" data-value="git.ts"><a href="git.ts.html">git.ts</a></td>
98
- <td data-value="2.59" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 2%"></div><div class="cover-empty" style="width: 98%"></div></div>
98
+ <td data-value="1.33" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 1%"></div><div class="cover-empty" style="width: 99%"></div></div>
100
100
  </td>
101
- <td data-value="2.59" class="pct low">2.59%</td>
102
- <td data-value="77" class="abs low">2/77</td>
101
+ <td data-value="1.33" class="pct low">1.33%</td>
102
+ <td data-value="75" class="abs low">1/75</td>
103
103
  <td data-value="0" class="pct low">0%</td>
104
- <td data-value="48" class="abs low">0/48</td>
104
+ <td data-value="51" class="abs low">0/51</td>
105
105
  <td data-value="0" class="pct low">0%</td>
106
106
  <td data-value="6" class="abs low">0/6</td>
107
- <td data-value="2.59" class="pct low">2.59%</td>
108
- <td data-value="77" class="abs low">2/77</td>
107
+ <td data-value="1.33" class="pct low">1.33%</td>
108
+ <td data-value="75" class="abs low">1/75</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -124,18 +124,18 @@
124
124
  </tr>
125
125
 
126
126
  <tr>
127
- <td class="file medium" data-value="pretty.ts"><a href="pretty.ts.html">pretty.ts</a></td>
128
- <td data-value="50" class="pic medium">
129
- <div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
127
+ <td class="file low" data-value="pretty.ts"><a href="pretty.ts.html">pretty.ts</a></td>
128
+ <td data-value="0" class="pic low">
129
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
130
130
  </td>
131
- <td data-value="50" class="pct medium">50%</td>
132
- <td data-value="4" class="abs medium">2/4</td>
131
+ <td data-value="0" class="pct low">0%</td>
132
+ <td data-value="4" class="abs low">0/4</td>
133
133
  <td data-value="0" class="pct low">0%</td>
134
134
  <td data-value="2" class="abs low">0/2</td>
135
135
  <td data-value="0" class="pct low">0%</td>
136
136
  <td data-value="2" class="abs low">0/2</td>
137
- <td data-value="50" class="pct medium">50%</td>
138
- <td data-value="4" class="abs medium">2/4</td>
137
+ <td data-value="0" class="pct low">0%</td>
138
+ <td data-value="4" class="abs low">0/4</td>
139
139
  </tr>
140
140
 
141
141
  </tbody>
@@ -146,16 +146,16 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2026-04-26T16:47:51.164Z
149
+ at 2026-07-12T20:35:50.655Z
150
150
  </div>
151
- <script src="../prettify.js"></script>
151
+ <script src="../../prettify.js"></script>
152
152
  <script>
153
153
  window.onload = function () {
154
154
  prettyPrint();
155
155
  };
156
156
  </script>
157
- <script src="../sorter.js"></script>
158
- <script src="../block-navigation.js"></script>
157
+ <script src="../../sorter.js"></script>
158
+ <script src="../../block-navigation.js"></script>
159
159
  </body>
160
160
  </html>
161
161
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for utils/index.ts</title>
6
+ <title>Code coverage report for src/utils/index.ts</title>
7
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" />
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
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
14
+ background-image: url(../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,7 +19,7 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">utils</a> index.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/utils</a> index.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -57,7 +57,7 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
61
61
  </div>
62
62
  </template>
63
63
  </div>
@@ -66,9 +66,9 @@
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
68
68
  <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
70
- <span class="cline-any cline-yes">1x</span>
71
- <span class="cline-any cline-yes">1x</span>
69
+ <a name='L4'></a><a href='#L4'>4</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
70
+ <span class="cline-any cline-yes">3x</span>
71
+ <span class="cline-any cline-yes">3x</span>
72
72
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export * from "./extractKeys";
73
73
  export * from "./git";
74
74
  export * from "./pretty";
@@ -79,16 +79,16 @@ export * from "./pretty";
79
79
  <div class='footer quiet pad2 space-top1 center small'>
80
80
  Code coverage generated by
81
81
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
82
- at 2026-04-26T16:47:51.164Z
82
+ at 2026-07-12T20:35:50.655Z
83
83
  </div>
84
- <script src="../prettify.js"></script>
84
+ <script src="../../prettify.js"></script>
85
85
  <script>
86
86
  window.onload = function () {
87
87
  prettyPrint();
88
88
  };
89
89
  </script>
90
- <script src="../sorter.js"></script>
91
- <script src="../block-navigation.js"></script>
90
+ <script src="../../sorter.js"></script>
91
+ <script src="../../block-navigation.js"></script>
92
92
  </body>
93
93
  </html>
94
94