@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 builder/mutator.ts</title>
6
+ <title>Code coverage report for src/builder/mutator.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">builder</a> mutator.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/builder</a> mutator.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">72.32% </span>
33
+ <span class="strong">74.3% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>81/112</span>
35
+ <span class='fraction'>107/144</span>
36
36
  </div>
37
37
 
38
38
 
@@ -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>
@@ -314,74 +314,74 @@
314
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
315
  <span class="cline-any cline-neutral">&nbsp;</span>
316
316
  <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-yes">6x</span>
318
- <span class="cline-any cline-yes">453x</span>
319
- <span class="cline-any cline-yes">453x</span>
320
- <span class="cline-any cline-yes">453x</span>
317
+ <span class="cline-any cline-yes">622x</span>
318
+ <span class="cline-any cline-yes">838x</span>
319
+ <span class="cline-any cline-yes">838x</span>
320
+ <span class="cline-any cline-yes">838x</span>
321
321
  <span class="cline-any cline-neutral">&nbsp;</span>
322
322
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">453x</span>
324
- <span class="cline-any cline-yes">107x</span>
323
+ <span class="cline-any cline-yes">838x</span>
324
+ <span class="cline-any cline-yes">188x</span>
325
325
  <span class="cline-any cline-neutral">&nbsp;</span>
326
326
  <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">453x</span>
328
- <span class="cline-any cline-yes">453x</span>
329
- <span class="cline-any cline-yes">453x</span>
330
- <span class="cline-any cline-yes">923x</span>
331
- <span class="cline-any cline-yes">923x</span>
332
- <span class="cline-any cline-yes">6117x</span>
333
- <span class="cline-any cline-yes">6117x</span>
327
+ <span class="cline-any cline-yes">838x</span>
328
+ <span class="cline-any cline-yes">838x</span>
329
+ <span class="cline-any cline-yes">838x</span>
330
+ <span class="cline-any cline-yes">1790x</span>
331
+ <span class="cline-any cline-yes">1790x</span>
332
+ <span class="cline-any cline-yes">12852x</span>
333
+ <span class="cline-any cline-yes">12852x</span>
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-yes">923x</span>
336
- <span class="cline-any cline-yes">923x</span>
337
- <span class="cline-any cline-yes">892x</span>
338
- <span class="cline-any cline-yes">99x</span>
339
- <span class="cline-any cline-yes">99x</span>
340
- <span class="cline-any cline-yes">234x</span>
341
- <span class="cline-any cline-yes">99x</span>
342
- <span class="cline-any cline-yes">99x</span>
343
- <span class="cline-any cline-yes">99x</span>
344
- <span class="cline-any cline-yes">99x</span>
345
- <span class="cline-any cline-yes">38x</span>
346
- <span class="cline-any cline-yes">38x</span>
347
- <span class="cline-any cline-yes">38x</span>
348
- <span class="cline-any cline-yes">38x</span>
349
- <span class="cline-any cline-yes">38x</span>
335
+ <span class="cline-any cline-yes">1790x</span>
336
+ <span class="cline-any cline-yes">1790x</span>
337
+ <span class="cline-any cline-yes">1751x</span>
338
+ <span class="cline-any cline-yes">170x</span>
339
+ <span class="cline-any cline-yes">170x</span>
340
+ <span class="cline-any cline-yes">410x</span>
341
+ <span class="cline-any cline-yes">170x</span>
342
+ <span class="cline-any cline-yes">170x</span>
343
+ <span class="cline-any cline-yes">170x</span>
344
+ <span class="cline-any cline-yes">170x</span>
345
+ <span class="cline-any cline-yes">73x</span>
346
+ <span class="cline-any cline-yes">73x</span>
347
+ <span class="cline-any cline-yes">73x</span>
348
+ <span class="cline-any cline-yes">73x</span>
349
+ <span class="cline-any cline-yes">73x</span>
350
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-yes">61x</span>
352
- <span class="cline-any cline-yes">61x</span>
351
+ <span class="cline-any cline-yes">97x</span>
352
+ <span class="cline-any cline-yes">97x</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">793x</span>
355
+ <span class="cline-any cline-yes">1581x</span>
356
356
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">31x</span>
358
- <span class="cline-any cline-yes">31x</span>
359
- <span class="cline-any cline-yes">31x</span>
360
- <span class="cline-any cline-yes">31x</span>
361
- <span class="cline-any cline-yes">31x</span>
362
- <span class="cline-any cline-yes">31x</span>
363
- <span class="cline-any cline-yes">31x</span>
364
- <span class="cline-any cline-yes">31x</span>
357
+ <span class="cline-any cline-yes">39x</span>
358
+ <span class="cline-any cline-yes">39x</span>
359
+ <span class="cline-any cline-yes">39x</span>
360
+ <span class="cline-any cline-yes">39x</span>
361
+ <span class="cline-any cline-yes">39x</span>
362
+ <span class="cline-any cline-yes">39x</span>
363
+ <span class="cline-any cline-yes">39x</span>
364
+ <span class="cline-any cline-yes">39x</span>
365
365
  <span class="cline-any cline-no">&nbsp;</span>
366
366
  <span class="cline-any cline-no">&nbsp;</span>
367
367
  <span class="cline-any cline-no">&nbsp;</span>
368
368
  <span class="cline-any cline-no">&nbsp;</span>
369
369
  <span class="cline-any cline-no">&nbsp;</span>
370
370
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">31x</span>
372
- <span class="cline-any cline-yes">31x</span>
371
+ <span class="cline-any cline-yes">39x</span>
372
+ <span class="cline-any cline-yes">39x</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">923x</span>
375
+ <span class="cline-any cline-yes">1790x</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-yes">453x</span>
378
+ <span class="cline-any cline-yes">838x</span>
379
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
380
  <span class="cline-any cline-neutral">&nbsp;</span>
381
381
  <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-yes">71x</span>
383
- <span class="cline-any cline-yes">71x</span>
384
- <span class="cline-any cline-yes">71x</span>
382
+ <span class="cline-any cline-yes">81x</span>
383
+ <span class="cline-any cline-yes">81x</span>
384
+ <span class="cline-any cline-yes">81x</span>
385
385
  <span class="cline-any cline-neutral">&nbsp;</span>
386
386
  <span class="cline-any cline-yes">28x</span>
387
387
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -393,7 +393,7 @@
393
393
  <span class="cline-any cline-yes">28x</span>
394
394
  <span class="cline-any cline-yes">28x</span>
395
395
  <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-yes">43x</span>
396
+ <span class="cline-any cline-yes">53x</span>
397
397
  <span class="cline-any cline-neutral">&nbsp;</span>
398
398
  <span class="cline-any cline-yes">1x</span>
399
399
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -411,7 +411,7 @@
411
411
  <span class="cline-any cline-neutral">&nbsp;</span>
412
412
  <span class="cline-any cline-yes">1x</span>
413
413
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">42x</span>
414
+ <span class="cline-any cline-yes">52x</span>
415
415
  <span class="cline-any cline-neutral">&nbsp;</span>
416
416
  <span class="cline-any cline-neutral">&nbsp;</span>
417
417
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -421,7 +421,7 @@
421
421
  <span class="cline-any cline-neutral">&nbsp;</span>
422
422
  <span class="cline-any cline-neutral">&nbsp;</span>
423
423
  <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-yes">146x</span>
424
+ <span class="cline-any cline-yes">211x</span>
425
425
  <span class="cline-any cline-yes">19x</span>
426
426
  <span class="cline-any cline-neutral">&nbsp;</span>
427
427
  <span class="cline-any cline-yes">19x</span>
@@ -442,72 +442,72 @@
442
442
  <span class="cline-any cline-neutral">&nbsp;</span>
443
443
  <span class="cline-any cline-no">&nbsp;</span>
444
444
  <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-yes">127x</span>
445
+ <span class="cline-any cline-yes">192x</span>
446
446
  <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-yes">15x</span>
447
+ <span class="cline-any cline-yes">30x</span>
448
448
  <span class="cline-any cline-neutral">&nbsp;</span>
449
449
  <span class="cline-any cline-neutral">&nbsp;</span>
450
450
  <span class="cline-any cline-neutral">&nbsp;</span>
451
451
  <span class="cline-any cline-neutral">&nbsp;</span>
452
452
  <span class="cline-any cline-neutral">&nbsp;</span>
453
453
  <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">15x</span>
455
- <span class="cline-any cline-yes">15x</span>
456
- <span class="cline-any cline-yes">15x</span>
457
- <span class="cline-any cline-yes">15x</span>
458
- <span class="cline-any cline-yes">23x</span>
459
- <span class="cline-any cline-yes">23x</span>
460
- <span class="cline-any cline-yes">23x</span>
454
+ <span class="cline-any cline-yes">30x</span>
455
+ <span class="cline-any cline-yes">30x</span>
456
+ <span class="cline-any cline-yes">30x</span>
457
+ <span class="cline-any cline-yes">30x</span>
458
+ <span class="cline-any cline-yes">48x</span>
459
+ <span class="cline-any cline-yes">48x</span>
460
+ <span class="cline-any cline-yes">48x</span>
461
461
  <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-yes">15x</span>
463
- <span class="cline-any cline-yes">13x</span>
464
- <span class="cline-any cline-yes">5x</span>
465
- <span class="cline-any cline-yes">5x</span>
462
+ <span class="cline-any cline-yes">30x</span>
463
+ <span class="cline-any cline-yes">28x</span>
464
+ <span class="cline-any cline-yes">10x</span>
465
+ <span class="cline-any cline-yes">10x</span>
466
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-yes">8x</span>
468
- <span class="cline-any cline-yes">4x</span>
469
- <span class="cline-any cline-yes">4x</span>
467
+ <span class="cline-any cline-yes">18x</span>
468
+ <span class="cline-any cline-yes">9x</span>
469
+ <span class="cline-any cline-yes">9x</span>
470
470
  <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-yes">4x</span>
472
- <span class="cline-any cline-yes">4x</span>
473
- <span class="cline-any cline-yes">4x</span>
471
+ <span class="cline-any cline-yes">9x</span>
472
+ <span class="cline-any cline-yes">9x</span>
473
+ <span class="cline-any cline-yes">9x</span>
474
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
475
  <span class="cline-any cline-no">&nbsp;</span>
476
476
  <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-yes">112x</span>
478
- <span class="cline-any cline-yes">112x</span>
479
- <span class="cline-any cline-yes">112x</span>
477
+ <span class="cline-any cline-yes">162x</span>
478
+ <span class="cline-any cline-yes">162x</span>
479
+ <span class="cline-any cline-yes">162x</span>
480
480
  <span class="cline-any cline-yes">3x</span>
481
481
  <span class="cline-any cline-yes">3x</span>
482
482
  <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-yes">109x</span>
484
- <span class="cline-any cline-yes">7x</span>
485
- <span class="cline-any cline-yes">7x</span>
486
- <span class="cline-any cline-yes">7x</span>
487
- <span class="cline-any cline-yes">7x</span>
483
+ <span class="cline-any cline-yes">159x</span>
484
+ <span class="cline-any cline-yes">12x</span>
485
+ <span class="cline-any cline-yes">12x</span>
486
+ <span class="cline-any cline-yes">12x</span>
487
+ <span class="cline-any cline-yes">12x</span>
488
488
  <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-yes">102x</span>
490
- <span class="cline-any cline-yes">6x</span>
491
- <span class="cline-any cline-yes">6x</span>
492
- <span class="cline-any cline-yes">6x</span>
493
- <span class="cline-any cline-yes">6x</span>
489
+ <span class="cline-any cline-yes">147x</span>
490
+ <span class="cline-any cline-yes">11x</span>
491
+ <span class="cline-any cline-yes">11x</span>
492
+ <span class="cline-any cline-yes">11x</span>
493
+ <span class="cline-any cline-yes">11x</span>
494
494
  <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-yes">96x</span>
496
- <span class="cline-any cline-yes">96x</span>
495
+ <span class="cline-any cline-yes">136x</span>
496
+ <span class="cline-any cline-yes">136x</span>
497
497
  <span class="cline-any cline-neutral">&nbsp;</span>
498
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
499
  <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-yes">6x</span>
500
+ <span class="cline-any cline-yes">222x</span>
501
501
  <span class="cline-any cline-neutral">&nbsp;</span>
502
502
  <span class="cline-any cline-neutral">&nbsp;</span>
503
503
  <span class="cline-any cline-neutral">&nbsp;</span>
504
504
  <span class="cline-any cline-neutral">&nbsp;</span>
505
505
  <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-yes">156x</span>
507
- <span class="cline-any cline-yes">151x</span>
506
+ <span class="cline-any cline-yes">221x</span>
507
+ <span class="cline-any cline-yes">216x</span>
508
508
  <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-yes">151x</span>
510
- <span class="cline-any cline-yes">151x</span>
509
+ <span class="cline-any cline-yes">216x</span>
510
+ <span class="cline-any cline-yes">216x</span>
511
511
  <span class="cline-any cline-yes">4x</span>
512
512
  <span class="cline-any cline-yes">2x</span>
513
513
  <span class="cline-any cline-yes">2x</span>
@@ -522,20 +522,20 @@
522
522
  <span class="cline-any cline-yes">2x</span>
523
523
  <span class="cline-any cline-neutral">&nbsp;</span>
524
524
  <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-yes">147x</span>
526
- <span class="cline-any cline-yes">147x</span>
525
+ <span class="cline-any cline-yes">212x</span>
526
+ <span class="cline-any cline-yes">212x</span>
527
527
  <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-yes">147x</span>
528
+ <span class="cline-any cline-yes">212x</span>
529
529
  <span class="cline-any cline-neutral">&nbsp;</span>
530
530
  <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">147x</span>
532
- <span class="cline-any cline-yes">71x</span>
533
- <span class="cline-any cline-yes">71x</span>
534
- <span class="cline-any cline-yes">70x</span>
531
+ <span class="cline-any cline-yes">212x</span>
532
+ <span class="cline-any cline-yes">81x</span>
533
+ <span class="cline-any cline-yes">81x</span>
534
+ <span class="cline-any cline-yes">80x</span>
535
535
  <span class="cline-any cline-neutral">&nbsp;</span>
536
536
  <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">146x</span>
538
- <span class="cline-any cline-yes">146x</span>
537
+ <span class="cline-any cline-yes">211x</span>
538
+ <span class="cline-any cline-yes">211x</span>
539
539
  <span class="cline-any cline-neutral">&nbsp;</span>
540
540
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { VariableSchema, VariableValue } from "@featurevisor/types";
541
541
  &nbsp;
@@ -581,8 +581,8 @@ export function parseNotation(notation: string): ParsedNotation {
581
581
  if (eq &gt;= 0) {
582
582
  const prop = bracketContent.slice(0, eq).trim();
583
583
  let val = bracketContent.slice(eq + 1).trim();
584
- <span class="missing-if-branch" title="if path not taken" >I</span>if (val.startsWith('"') &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >val.endsWith('"'))</span> <span class="cstat-no" title="statement not covered" >val = val.slice(1, -1);</span>
585
- else <span class="missing-if-branch" title="if path not taken" >I</span>if (val.startsWith("'") &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >val.endsWith("'"))</span> <span class="cstat-no" title="statement not covered" >val = val.slice(1, -1);</span>
584
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (val.startsWith('"') &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >val.endsWith('"')) <span class="cstat-no" title="statement not covered" >v</span>al = val.slice(1, -1);</span>
585
+ else <span class="missing-if-branch" title="if path not taken" >I</span>if (val.startsWith("'") &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >val.endsWith("'")) <span class="cstat-no" title="statement not covered" >v</span>al = val.slice(1, -1);</span>
586
586
  segments.push({ key, selector: { prop, value: val } });
587
587
  } else {
588
588
  const index = parseInt(bracketContent.trim(), 10);
@@ -591,7 +591,7 @@ export function parseNotation(notation: string): ParsedNotation {
591
591
  } else {
592
592
  segments.push({ key });
593
593
  }
594
- } else if (rest[i] === "[") {
594
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>if (rest[i] === "[") {
595
595
  i++;
596
596
  const bracketStart = i;
597
597
  while (i &lt; rest.length &amp;&amp; rest[i] !== "]") i++;
@@ -602,7 +602,7 @@ export function parseNotation(notation: string): ParsedNotation {
602
602
  const prop = <span class="cstat-no" title="statement not covered" >bracketContent.slice(0, eq).trim();</span>
603
603
  let val = <span class="cstat-no" title="statement not covered" >bracketContent.slice(eq + 1).trim();</span>
604
604
  <span class="cstat-no" title="statement not covered" > if (val.startsWith('"') &amp;&amp; val.endsWith('"')) <span class="cstat-no" title="statement not covered" >val = val.slice(1, -1);</span></span>
605
- else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (val.startsWith("'") &amp;&amp; val.endsWith("'")) <span class="cstat-no" title="statement not covered" >val = val.slice(1, -1);</span></span>
605
+ else <span class="cstat-no" title="statement not covered" >if (val.startsWith("'") &amp;&amp; val.endsWith("'")) <span class="cstat-no" title="statement not covered" >val = val.slice(1, -1);</span></span>
606
606
  <span class="cstat-no" title="statement not covered" > segments.push({ key: "", selector: { prop, value: val } });</span>
607
607
  } else {
608
608
  const index = parseInt(bracketContent.trim(), 10);
@@ -673,7 +673,7 @@ function setAtSegment(
673
673
  arr.splice(i, 1);
674
674
  return;
675
675
  }
676
- if (op === "set") {
676
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (op === "set") {
677
677
  arr[i] = setValue;
678
678
  return;
679
679
  }
@@ -705,7 +705,7 @@ function setAtSegment(
705
705
  arr.splice(idx + 1, 0, setValue);
706
706
  return;
707
707
  }
708
- if (op === "before" &amp;&amp; setValue !== undefined) {
708
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (op === "before" &amp;&amp; setValue !== undefined) {
709
709
  arr.splice(idx, 0, setValue);
710
710
  return;
711
711
  }
@@ -729,7 +729,7 @@ function setAtSegment(
729
729
  o[key] = arr;
730
730
  return;
731
731
  }
732
- if (op === "set") {
732
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (op === "set") {
733
733
  o[key] = setValue as unknown;
734
734
  }
735
735
  }
@@ -751,7 +751,7 @@ export function mutate(
751
751
  arr.push(setValue);
752
752
  return result;
753
753
  }
754
- if (operation === "prepend") {
754
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (operation === "prepend") {
755
755
  arr.unshift(setValue);
756
756
  return result;
757
757
  }
@@ -781,16 +781,16 @@ export function mutate(
781
781
  <div class='footer quiet pad2 space-top1 center small'>
782
782
  Code coverage generated by
783
783
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
784
- at 2026-04-26T16:47:51.164Z
784
+ at 2026-07-12T20:35:50.655Z
785
785
  </div>
786
- <script src="../prettify.js"></script>
786
+ <script src="../../prettify.js"></script>
787
787
  <script>
788
788
  window.onload = function () {
789
789
  prettyPrint();
790
790
  };
791
791
  </script>
792
- <script src="../sorter.js"></script>
793
- <script src="../block-navigation.js"></script>
792
+ <script src="../../sorter.js"></script>
793
+ <script src="../../block-navigation.js"></script>
794
794
  </body>
795
795
  </html>
796
796
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for builder/revision.ts</title>
6
+ <title>Code coverage report for src/builder/revision.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">builder</a> revision.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/builder</a> revision.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">87.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/5</span>
35
+ <span class='fraction'>7/8</span>
36
36
  </div>
37
37
 
38
38
 
@@ -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>
@@ -85,7 +85,7 @@
85
85
  <a name='L20'></a><a href='#L20'>20</a>
86
86
  <a name='L21'></a><a href='#L21'>21</a>
87
87
  <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
88
+ <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">8x</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-yes">7x</span>
91
91
  <span class="cline-any cline-yes">2x</span>
@@ -122,7 +122,7 @@
122
122
  const parts = currentRevision.split(".");
123
123
  const lastPart = parseInt(parts[parts.length - 1], 10);
124
124
  &nbsp;
125
- if (!isNaN(lastPart)) {
125
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!isNaN(lastPart)) {
126
126
  return (lastPart + 1).toString();
127
127
  }
128
128
  &nbsp;
@@ -136,16 +136,16 @@
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at 2026-04-26T16:47:51.164Z
139
+ at 2026-07-12T20:35:50.655Z
140
140
  </div>
141
- <script src="../prettify.js"></script>
141
+ <script src="../../prettify.js"></script>
142
142
  <script>
143
143
  window.onload = function () {
144
144
  prettyPrint();
145
145
  };
146
146
  </script>
147
- <script src="../sorter.js"></script>
148
- <script src="../block-navigation.js"></script>
147
+ <script src="../../sorter.js"></script>
148
+ <script src="../../block-navigation.js"></script>
149
149
  </body>
150
150
  </html>
151
151