@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 list/matrix.ts</title>
6
+ <title>Code coverage report for src/list/matrix.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">list</a> matrix.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/list</a> matrix.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">22.72% </span>
26
+ <span class="strong">17.44% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>20/88</span>
28
+ <span class='fraction'>15/86</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">10% </span>
33
+ <span class="strong">9.75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/30</span>
35
+ <span class='fraction'>4/41</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">22.61% </span>
47
+ <span class="strong">17.07% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>19/84</span>
49
+ <span class='fraction'>14/82</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>
@@ -275,12 +275,7 @@
275
275
  <a name='L210'></a><a href='#L210'>210</a>
276
276
  <a name='L211'></a><a href='#L211'>211</a>
277
277
  <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
278
+ <a name='L213'></a><a href='#L213'>213</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
284
279
  <span class="cline-any cline-neutral">&nbsp;</span>
285
280
  <span class="cline-any cline-neutral">&nbsp;</span>
286
281
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -303,7 +298,7 @@
303
298
  <span class="cline-any cline-neutral">&nbsp;</span>
304
299
  <span class="cline-any cline-neutral">&nbsp;</span>
305
300
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-yes">1x</span>
301
+ <span class="cline-any cline-yes">3x</span>
307
302
  <span class="cline-any cline-yes">3x</span>
308
303
  <span class="cline-any cline-neutral">&nbsp;</span>
309
304
  <span class="cline-any cline-yes">3x</span>
@@ -316,7 +311,7 @@
316
311
  <span class="cline-any cline-yes">2x</span>
317
312
  <span class="cline-any cline-neutral">&nbsp;</span>
318
313
  <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">1x</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
320
315
  <span class="cline-any cline-no">&nbsp;</span>
321
316
  <span class="cline-any cline-no">&nbsp;</span>
322
317
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -342,7 +337,7 @@
342
337
  <span class="cline-any cline-neutral">&nbsp;</span>
343
338
  <span class="cline-any cline-neutral">&nbsp;</span>
344
339
  <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">1x</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
346
341
  <span class="cline-any cline-neutral">&nbsp;</span>
347
342
  <span class="cline-any cline-neutral">&nbsp;</span>
348
343
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -383,17 +378,12 @@
383
378
  <span class="cline-any cline-no">&nbsp;</span>
384
379
  <span class="cline-any cline-neutral">&nbsp;</span>
385
380
  <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-no">&nbsp;</span>
388
381
  <span class="cline-any cline-no">&nbsp;</span>
389
382
  <span class="cline-any cline-neutral">&nbsp;</span>
390
383
  <span class="cline-any cline-neutral">&nbsp;</span>
391
384
  <span class="cline-any cline-no">&nbsp;</span>
392
385
  <span class="cline-any cline-neutral">&nbsp;</span>
393
386
  <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">1x</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
387
  <span class="cline-any cline-neutral">&nbsp;</span>
398
388
  <span class="cline-any cline-no">&nbsp;</span>
399
389
  <span class="cline-any cline-no">&nbsp;</span>
@@ -445,7 +435,7 @@
445
435
  <span class="cline-any cline-neutral">&nbsp;</span>
446
436
  <span class="cline-any cline-neutral">&nbsp;</span>
447
437
  <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-yes">1x</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
449
439
  <span class="cline-any cline-neutral">&nbsp;</span>
450
440
  <span class="cline-any cline-neutral">&nbsp;</span>
451
441
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -469,7 +459,7 @@
469
459
  <span class="cline-any cline-no">&nbsp;</span>
470
460
  <span class="cline-any cline-neutral">&nbsp;</span>
471
461
  <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-yes">1x</span>
462
+ <span class="cline-any cline-no">&nbsp;</span>
473
463
  <span class="cline-any cline-neutral">&nbsp;</span>
474
464
  <span class="cline-any cline-neutral">&nbsp;</span>
475
465
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -533,17 +523,17 @@ export function getMatrixCombinations(matrix: AssertionMatrix) {
533
523
  return combinations;
534
524
  }
535
525
  &nbsp;
536
- export function <span class="fstat-no" title="function not covered" >applyCombinationToValue(</span>value: any, combination: any) {
537
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof value === "string") {</span>
526
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >applyCombinationToValue(v</span></span>alue: any, combination: any) {
527
+ <span class="cstat-no" title="statement not covered" > if (typeof value === "string") {</span>
538
528
  const variableKeysInValue = <span class="cstat-no" title="statement not covered" >value.match(/\${{(.+?)}}/g);</span>
539
529
  &nbsp;
540
530
  // no variables found
541
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!variableKeysInValue) {</span>
531
+ <span class="cstat-no" title="statement not covered" > if (!variableKeysInValue) {</span>
542
532
  <span class="cstat-no" title="statement not covered" > return value;</span>
543
533
  }
544
534
  &nbsp;
545
535
  // only 1 variable found, so we can insert the value directly
546
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (variableKeysInValue.length === 1 &amp;&amp; value.startsWith("${{") &amp;&amp; value.endsWith("}}")) {</span>
536
+ <span class="cstat-no" title="statement not covered" > if (variableKeysInValue.length === 1 &amp;&amp; value.startsWith("${{") &amp;&amp; value.endsWith("}}")) {</span>
547
537
  const key = <span class="cstat-no" title="statement not covered" >value.replace("${{", "").replace("}}", "").trim();</span>
548
538
  &nbsp;
549
539
  <span class="cstat-no" title="statement not covered" > return combination[key];</span>
@@ -559,7 +549,7 @@ export function <span class="fstat-no" title="function not covered" >applyCombin
559
549
  /**
560
550
  * Features
561
551
  */
562
- export function <span class="fstat-no" title="function not covered" >applyCombinationToFeatureAssertion(</span>
552
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >applyCombinationToFeatureAssertion(</span></span>
563
553
  combination: any,
564
554
  assertion: FeatureAssertion,
565
555
  ): FeatureAssertion {
@@ -580,7 +570,7 @@ export function <span class="fstat-no" title="function not covered" >applyCombin
580
570
  &nbsp;
581
571
  // at
582
572
  <span class="cstat-no" title="statement not covered" > flattenedAssertion.at = applyCombinationToValue(flattenedAssertion.at, combination);</span>
583
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof flattenedAssertion.at === "string") {</span>
573
+ <span class="cstat-no" title="statement not covered" > if (typeof flattenedAssertion.at === "string") {</span>
584
574
  <span class="cstat-no" title="statement not covered" > flattenedAssertion.at =</span>
585
575
  (flattenedAssertion.at as string).indexOf(".") &gt; -1
586
576
  ? parseFloat(flattenedAssertion.at)
@@ -588,36 +578,31 @@ export function <span class="fstat-no" title="function not covered" >applyCombin
588
578
  }
589
579
  &nbsp;
590
580
  // description
591
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flattenedAssertion.description) {</span>
581
+ <span class="cstat-no" title="statement not covered" > if (flattenedAssertion.description) {</span>
592
582
  <span class="cstat-no" title="statement not covered" > flattenedAssertion.description = applyCombinationToValue(</span>
593
583
  flattenedAssertion.description,
594
584
  combination,
595
585
  );
596
586
  }
597
587
  &nbsp;
598
- // scope
599
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flattenedAssertion.scope) {</span>
600
- <span class="cstat-no" title="statement not covered" > flattenedAssertion.scope = applyCombinationToValue(flattenedAssertion.scope, combination);</span>
601
- }
602
- &nbsp;
603
- // tag
604
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flattenedAssertion.tag) {</span>
605
- <span class="cstat-no" title="statement not covered" > flattenedAssertion.tag = applyCombinationToValue(flattenedAssertion.tag, combination);</span>
588
+ // target
589
+ <span class="cstat-no" title="statement not covered" > if (flattenedAssertion.target) {</span>
590
+ <span class="cstat-no" title="statement not covered" > flattenedAssertion.target = applyCombinationToValue(flattenedAssertion.target, combination);</span>
606
591
  }
607
592
  &nbsp;
608
593
  <span class="cstat-no" title="statement not covered" > return flattenedAssertion;</span>
609
594
  }
610
595
  &nbsp;
611
- export function <span class="fstat-no" title="function not covered" >getFeatureAssertionsFromMatrix(</span>
596
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >getFeatureAssertionsFromMatrix(</span></span>
612
597
  aIndex,
613
598
  assertionWithMatrix: FeatureAssertion,
614
599
  ): FeatureAssertion[] {
615
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!assertionWithMatrix.matrix) {</span>
600
+ <span class="cstat-no" title="statement not covered" > if (!assertionWithMatrix.matrix) {</span>
616
601
  const assertion = <span class="cstat-no" title="statement not covered" >{ ...assertionWithMatrix };</span>
617
602
  &nbsp;
618
603
  let suffix;
619
604
  &nbsp;
620
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (assertion.environment) {</span>
605
+ <span class="cstat-no" title="statement not covered" > if (assertion.environment) {</span>
621
606
  <span class="cstat-no" title="statement not covered" > suffix = ` (${assertion.environment})`;</span>
622
607
  }
623
608
  &nbsp;
@@ -635,13 +620,13 @@ export function <span class="fstat-no" title="function not covered" >getFeatureA
635
620
  const assertions: FeatureAssertion[] = <span class="cstat-no" title="statement not covered" >[];</span>
636
621
  const combinations = <span class="cstat-no" title="statement not covered" >getMatrixCombinations(assertionWithMatrix.matrix);</span>
637
622
  &nbsp;
638
- <span class="cstat-no" title="statement not covered" > for (let cIndex = <span class="cstat-no" title="statement not covered" >0;</span> cIndex &lt; combinations.length; cIndex++) {</span>
623
+ <span class="cstat-no" title="statement not covered" > for (let cIndex = <span class="cstat-no" title="statement not covered" >0; c</span>Index &lt; combinations.length; cIndex++) {</span>
639
624
  const combination = <span class="cstat-no" title="statement not covered" >combinations[cIndex];</span>
640
625
  const assertion = <span class="cstat-no" title="statement not covered" >applyCombinationToFeatureAssertion(combination, assertionWithMatrix);</span>
641
626
  &nbsp;
642
627
  let suffix;
643
628
  &nbsp;
644
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (assertion.environment) {</span>
629
+ <span class="cstat-no" title="statement not covered" > if (assertion.environment) {</span>
645
630
  <span class="cstat-no" title="statement not covered" > suffix = ` (${assertion.environment})`;</span>
646
631
  }
647
632
  &nbsp;
@@ -662,7 +647,7 @@ export function <span class="fstat-no" title="function not covered" >getFeatureA
662
647
  /**
663
648
  * Segments
664
649
  */
665
- export function <span class="fstat-no" title="function not covered" >applyCombinationToSegmentAssertion(</span>
650
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >applyCombinationToSegmentAssertion(</span></span>
666
651
  combination: any,
667
652
  assertion: SegmentAssertion,
668
653
  ): SegmentAssertion {
@@ -676,7 +661,7 @@ export function <span class="fstat-no" title="function not covered" >applyCombin
676
661
  }, {});
677
662
  &nbsp;
678
663
  // description
679
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flattenedAssertion.description) {</span>
664
+ <span class="cstat-no" title="statement not covered" > if (flattenedAssertion.description) {</span>
680
665
  <span class="cstat-no" title="statement not covered" > flattenedAssertion.description = applyCombinationToValue(</span>
681
666
  flattenedAssertion.description,
682
667
  combination,
@@ -686,11 +671,11 @@ export function <span class="fstat-no" title="function not covered" >applyCombin
686
671
  <span class="cstat-no" title="statement not covered" > return flattenedAssertion;</span>
687
672
  }
688
673
  &nbsp;
689
- export function <span class="fstat-no" title="function not covered" >getSegmentAssertionsFromMatrix(</span>
674
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >getSegmentAssertionsFromMatrix(</span></span>
690
675
  aIndex,
691
676
  assertionWithMatrix: SegmentAssertion,
692
677
  ): SegmentAssertion[] {
693
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!assertionWithMatrix.matrix) {</span>
678
+ <span class="cstat-no" title="statement not covered" > if (!assertionWithMatrix.matrix) {</span>
694
679
  const assertion = <span class="cstat-no" title="statement not covered" >{ ...assertionWithMatrix };</span>
695
680
  <span class="cstat-no" title="statement not covered" > assertion.description = `Assertion #${aIndex + 1}${</span>
696
681
  assertion.description ? `: ${assertion.description}` : ""
@@ -702,7 +687,7 @@ export function <span class="fstat-no" title="function not covered" >getSegmentA
702
687
  const assertions: SegmentAssertion[] = <span class="cstat-no" title="statement not covered" >[];</span>
703
688
  const combinations = <span class="cstat-no" title="statement not covered" >getMatrixCombinations(assertionWithMatrix.matrix);</span>
704
689
  &nbsp;
705
- <span class="cstat-no" title="statement not covered" > for (let cIndex = <span class="cstat-no" title="statement not covered" >0;</span> cIndex &lt; combinations.length; cIndex++) {</span>
690
+ <span class="cstat-no" title="statement not covered" > for (let cIndex = <span class="cstat-no" title="statement not covered" >0; c</span>Index &lt; combinations.length; cIndex++) {</span>
706
691
  const combination = <span class="cstat-no" title="statement not covered" >combinations[cIndex];</span>
707
692
  const assertion = <span class="cstat-no" title="statement not covered" >applyCombinationToSegmentAssertion(combination, assertionWithMatrix);</span>
708
693
  <span class="cstat-no" title="statement not covered" > assertion.description = `Assertion #${aIndex + 1}: ${</span>
@@ -721,16 +706,16 @@ export function <span class="fstat-no" title="function not covered" >getSegmentA
721
706
  <div class='footer quiet pad2 space-top1 center small'>
722
707
  Code coverage generated by
723
708
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
724
- at 2026-04-26T16:47:51.164Z
709
+ at 2026-07-12T20:35:50.655Z
725
710
  </div>
726
- <script src="../prettify.js"></script>
711
+ <script src="../../prettify.js"></script>
727
712
  <script>
728
713
  window.onload = function () {
729
714
  prettyPrint();
730
715
  };
731
716
  </script>
732
- <script src="../sorter.js"></script>
733
- <script src="../block-navigation.js"></script>
717
+ <script src="../../sorter.js"></script>
718
+ <script src="../../block-navigation.js"></script>
734
719
  </body>
735
720
  </html>
736
721
 
@@ -0,0 +1,116 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/promoter</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> src/promoter</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">80.26% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>419/522</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">68.01% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>253/372</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">80.34% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>94/117</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">83.65% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>389/465</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
+ <div class="pad1">
66
+ <table class="coverage-summary">
67
+ <thead>
68
+ <tr>
69
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
+ </tr>
80
+ </thead>
81
+ <tbody><tr>
82
+ <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
83
+ <td data-value="80.26" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
85
+ </td>
86
+ <td data-value="80.26" class="pct high">80.26%</td>
87
+ <td data-value="522" class="abs high">419/522</td>
88
+ <td data-value="68.01" class="pct high">68.01%</td>
89
+ <td data-value="372" class="abs high">253/372</td>
90
+ <td data-value="80.34" class="pct high">80.34%</td>
91
+ <td data-value="117" class="abs high">94/117</td>
92
+ <td data-value="83.65" class="pct high">83.65%</td>
93
+ <td data-value="465" class="abs high">389/465</td>
94
+ </tr>
95
+
96
+ </tbody>
97
+ </table>
98
+ </div>
99
+ <div class='push'></div><!-- for sticky footer -->
100
+ </div><!-- /wrapper -->
101
+ <div class='footer quiet pad2 space-top1 center small'>
102
+ Code coverage generated by
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
+ at 2026-07-12T20:35:50.655Z
105
+ </div>
106
+ <script src="../../prettify.js"></script>
107
+ <script>
108
+ window.onload = function () {
109
+ prettyPrint();
110
+ };
111
+ </script>
112
+ <script src="../../sorter.js"></script>
113
+ <script src="../../block-navigation.js"></script>
114
+ </body>
115
+ </html>
116
+