@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 linter/attributeSchema.ts</title>
6
+ <title>Code coverage report for src/linter/attributeSchema.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">linter</a> attributeSchema.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/linter</a> attributeSchema.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">86.34% </span>
33
+ <span class="strong">86.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>177/205</span>
35
+ <span class='fraction'>232/268</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>
@@ -688,12 +688,13 @@
688
688
  <a name='L623'></a><a href='#L623'>623</a>
689
689
  <a name='L624'></a><a href='#L624'>624</a>
690
690
  <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-yes">2x</span>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-yes">3x</span>
693
694
  <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">2x</span>
695
+ <span class="cline-any cline-yes">3x</span>
695
696
  <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-yes">2x</span>
697
+ <span class="cline-any cline-yes">3x</span>
697
698
  <span class="cline-any cline-neutral">&nbsp;</span>
698
699
  <span class="cline-any cline-neutral">&nbsp;</span>
699
700
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -725,17 +726,17 @@
725
726
  <span class="cline-any cline-neutral">&nbsp;</span>
726
727
  <span class="cline-any cline-neutral">&nbsp;</span>
727
728
  <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-yes">225x</span>
729
+ <span class="cline-any cline-yes">424x</span>
729
730
  <span class="cline-any cline-neutral">&nbsp;</span>
730
731
  <span class="cline-any cline-neutral">&nbsp;</span>
731
732
  <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-yes">84x</span>
733
+ <span class="cline-any cline-yes">140x</span>
733
734
  <span class="cline-any cline-yes">2x</span>
734
735
  <span class="cline-any cline-neutral">&nbsp;</span>
735
736
  <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">82x</span>
737
+ <span class="cline-any cline-yes">138x</span>
737
738
  <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-yes">77x</span>
739
+ <span class="cline-any cline-yes">133x</span>
739
740
  <span class="cline-any cline-neutral">&nbsp;</span>
740
741
  <span class="cline-any cline-no">&nbsp;</span>
741
742
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -756,12 +757,12 @@
756
757
  <span class="cline-any cline-neutral">&nbsp;</span>
757
758
  <span class="cline-any cline-neutral">&nbsp;</span>
758
759
  <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-yes">225x</span>
760
+ <span class="cline-any cline-yes">424x</span>
760
761
  <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-yes">225x</span>
762
- <span class="cline-any cline-yes">37x</span>
763
- <span class="cline-any cline-yes">84x</span>
764
- <span class="cline-any cline-yes">84x</span>
762
+ <span class="cline-any cline-yes">424x</span>
763
+ <span class="cline-any cline-yes">61x</span>
764
+ <span class="cline-any cline-yes">140x</span>
765
+ <span class="cline-any cline-yes">140x</span>
765
766
  <span class="cline-any cline-yes">4x</span>
766
767
  <span class="cline-any cline-neutral">&nbsp;</span>
767
768
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -771,17 +772,17 @@
771
772
  <span class="cline-any cline-neutral">&nbsp;</span>
772
773
  <span class="cline-any cline-neutral">&nbsp;</span>
773
774
  <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-yes">225x</span>
775
- <span class="cline-any cline-yes">13x</span>
775
+ <span class="cline-any cline-yes">424x</span>
776
+ <span class="cline-any cline-yes">21x</span>
776
777
  <span class="cline-any cline-neutral">&nbsp;</span>
777
778
  <span class="cline-any cline-neutral">&nbsp;</span>
778
779
  <span class="cline-any cline-neutral">&nbsp;</span>
779
780
  <span class="cline-any cline-neutral">&nbsp;</span>
780
781
  <span class="cline-any cline-neutral">&nbsp;</span>
781
782
  <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-yes">225x</span>
783
- <span class="cline-any cline-yes">23x</span>
784
- <span class="cline-any cline-yes">33x</span>
783
+ <span class="cline-any cline-yes">424x</span>
784
+ <span class="cline-any cline-yes">31x</span>
785
+ <span class="cline-any cline-yes">49x</span>
785
786
  <span class="cline-any cline-neutral">&nbsp;</span>
786
787
  <span class="cline-any cline-neutral">&nbsp;</span>
787
788
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -789,7 +790,7 @@
789
790
  <span class="cline-any cline-neutral">&nbsp;</span>
790
791
  <span class="cline-any cline-neutral">&nbsp;</span>
791
792
  <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-yes">225x</span>
793
+ <span class="cline-any cline-yes">424x</span>
793
794
  <span class="cline-any cline-yes">2x</span>
794
795
  <span class="cline-any cline-neutral">&nbsp;</span>
795
796
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -797,10 +798,10 @@
797
798
  <span class="cline-any cline-neutral">&nbsp;</span>
798
799
  <span class="cline-any cline-neutral">&nbsp;</span>
799
800
  <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-yes">225x</span>
801
- <span class="cline-any cline-yes">12x</span>
802
- <span class="cline-any cline-yes">24x</span>
803
- <span class="cline-any cline-yes">24x</span>
801
+ <span class="cline-any cline-yes">424x</span>
802
+ <span class="cline-any cline-yes">16x</span>
803
+ <span class="cline-any cline-yes">32x</span>
804
+ <span class="cline-any cline-yes">32x</span>
804
805
  <span class="cline-any cline-neutral">&nbsp;</span>
805
806
  <span class="cline-any cline-neutral">&nbsp;</span>
806
807
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -815,14 +816,14 @@
815
816
  <span class="cline-any cline-neutral">&nbsp;</span>
816
817
  <span class="cline-any cline-neutral">&nbsp;</span>
817
818
  <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-yes">225x</span>
819
+ <span class="cline-any cline-yes">424x</span>
819
820
  <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-yes">225x</span>
821
- <span class="cline-any cline-yes">225x</span>
822
- <span class="cline-any cline-yes">225x</span>
823
- <span class="cline-any cline-yes">225x</span>
821
+ <span class="cline-any cline-yes">424x</span>
822
+ <span class="cline-any cline-yes">424x</span>
823
+ <span class="cline-any cline-yes">424x</span>
824
+ <span class="cline-any cline-yes">424x</span>
824
825
  <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-yes">225x</span>
826
+ <span class="cline-any cline-yes">424x</span>
826
827
  <span class="cline-any cline-yes">1x</span>
827
828
  <span class="cline-any cline-neutral">&nbsp;</span>
828
829
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -830,9 +831,9 @@
830
831
  <span class="cline-any cline-neutral">&nbsp;</span>
831
832
  <span class="cline-any cline-neutral">&nbsp;</span>
832
833
  <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-yes">225x</span>
834
- <span class="cline-any cline-yes">6x</span>
835
- <span class="cline-any cline-yes">6x</span>
834
+ <span class="cline-any cline-yes">424x</span>
835
+ <span class="cline-any cline-yes">10x</span>
836
+ <span class="cline-any cline-yes">10x</span>
836
837
  <span class="cline-any cline-neutral">&nbsp;</span>
837
838
  <span class="cline-any cline-yes">2x</span>
838
839
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -842,12 +843,12 @@
842
843
  <span class="cline-any cline-neutral">&nbsp;</span>
843
844
  <span class="cline-any cline-neutral">&nbsp;</span>
844
845
  <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-yes">225x</span>
846
- <span class="cline-any cline-yes">76x</span>
847
- <span class="cline-any cline-yes">76x</span>
848
- <span class="cline-any cline-yes">76x</span>
846
+ <span class="cline-any cline-yes">424x</span>
847
+ <span class="cline-any cline-yes">132x</span>
848
+ <span class="cline-any cline-yes">132x</span>
849
+ <span class="cline-any cline-yes">132x</span>
849
850
  <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-yes">76x</span>
851
+ <span class="cline-any cline-yes">132x</span>
851
852
  <span class="cline-any cline-no">&nbsp;</span>
852
853
  <span class="cline-any cline-no">&nbsp;</span>
853
854
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -855,10 +856,10 @@
855
856
  <span class="cline-any cline-neutral">&nbsp;</span>
856
857
  <span class="cline-any cline-neutral">&nbsp;</span>
857
858
  <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-yes">76x</span>
859
+ <span class="cline-any cline-yes">132x</span>
859
860
  <span class="cline-any cline-neutral">&nbsp;</span>
860
861
  <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-yes">225x</span>
862
+ <span class="cline-any cline-yes">424x</span>
862
863
  <span class="cline-any cline-no">&nbsp;</span>
863
864
  <span class="cline-any cline-no">&nbsp;</span>
864
865
  <span class="cline-any cline-no">&nbsp;</span>
@@ -883,25 +884,25 @@
883
884
  <span class="cline-any cline-neutral">&nbsp;</span>
884
885
  <span class="cline-any cline-neutral">&nbsp;</span>
885
886
  <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-yes">225x</span>
887
- <span class="cline-any cline-yes">34x</span>
888
- <span class="cline-any cline-yes">79x</span>
889
- <span class="cline-any cline-yes">76x</span>
890
- <span class="cline-any cline-yes">76x</span>
887
+ <span class="cline-any cline-yes">424x</span>
888
+ <span class="cline-any cline-yes">58x</span>
889
+ <span class="cline-any cline-yes">135x</span>
890
+ <span class="cline-any cline-yes">132x</span>
891
+ <span class="cline-any cline-yes">132x</span>
891
892
  <span class="cline-any cline-no">&nbsp;</span>
892
893
  <span class="cline-any cline-neutral">&nbsp;</span>
893
894
  <span class="cline-any cline-neutral">&nbsp;</span>
894
895
  <span class="cline-any cline-neutral">&nbsp;</span>
895
896
  <span class="cline-any cline-neutral">&nbsp;</span>
896
897
  <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-yes">76x</span>
898
+ <span class="cline-any cline-yes">132x</span>
898
899
  <span class="cline-any cline-no">&nbsp;</span>
899
900
  <span class="cline-any cline-neutral">&nbsp;</span>
900
901
  <span class="cline-any cline-neutral">&nbsp;</span>
901
902
  <span class="cline-any cline-neutral">&nbsp;</span>
902
903
  <span class="cline-any cline-neutral">&nbsp;</span>
903
904
  <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-yes">76x</span>
905
+ <span class="cline-any cline-yes">132x</span>
905
906
  <span class="cline-any cline-no">&nbsp;</span>
906
907
  <span class="cline-any cline-neutral">&nbsp;</span>
907
908
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -911,17 +912,17 @@
911
912
  <span class="cline-any cline-neutral">&nbsp;</span>
912
913
  <span class="cline-any cline-neutral">&nbsp;</span>
913
914
  <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-yes">225x</span>
915
- <span class="cline-any cline-yes">13x</span>
915
+ <span class="cline-any cline-yes">424x</span>
916
+ <span class="cline-any cline-yes">21x</span>
916
917
  <span class="cline-any cline-neutral">&nbsp;</span>
917
918
  <span class="cline-any cline-neutral">&nbsp;</span>
918
919
  <span class="cline-any cline-neutral">&nbsp;</span>
919
920
  <span class="cline-any cline-neutral">&nbsp;</span>
920
921
  <span class="cline-any cline-neutral">&nbsp;</span>
921
922
  <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-yes">225x</span>
923
- <span class="cline-any cline-yes">23x</span>
924
- <span class="cline-any cline-yes">33x</span>
923
+ <span class="cline-any cline-yes">424x</span>
924
+ <span class="cline-any cline-yes">31x</span>
925
+ <span class="cline-any cline-yes">49x</span>
925
926
  <span class="cline-any cline-neutral">&nbsp;</span>
926
927
  <span class="cline-any cline-neutral">&nbsp;</span>
927
928
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -929,7 +930,7 @@
929
930
  <span class="cline-any cline-neutral">&nbsp;</span>
930
931
  <span class="cline-any cline-neutral">&nbsp;</span>
931
932
  <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-yes">225x</span>
933
+ <span class="cline-any cline-yes">424x</span>
933
934
  <span class="cline-any cline-yes">2x</span>
934
935
  <span class="cline-any cline-neutral">&nbsp;</span>
935
936
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -937,10 +938,10 @@
937
938
  <span class="cline-any cline-neutral">&nbsp;</span>
938
939
  <span class="cline-any cline-neutral">&nbsp;</span>
939
940
  <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-yes">225x</span>
941
- <span class="cline-any cline-yes">12x</span>
942
- <span class="cline-any cline-yes">24x</span>
943
- <span class="cline-any cline-yes">24x</span>
941
+ <span class="cline-any cline-yes">424x</span>
942
+ <span class="cline-any cline-yes">16x</span>
943
+ <span class="cline-any cline-yes">32x</span>
944
+ <span class="cline-any cline-yes">32x</span>
944
945
  <span class="cline-any cline-neutral">&nbsp;</span>
945
946
  <span class="cline-any cline-neutral">&nbsp;</span>
946
947
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -955,17 +956,17 @@
955
956
  <span class="cline-any cline-neutral">&nbsp;</span>
956
957
  <span class="cline-any cline-neutral">&nbsp;</span>
957
958
  <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-yes">225x</span>
959
+ <span class="cline-any cline-yes">424x</span>
959
960
  <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-yes">225x</span>
961
+ <span class="cline-any cline-yes">424x</span>
961
962
  <span class="cline-any cline-neutral">&nbsp;</span>
962
963
  <span class="cline-any cline-neutral">&nbsp;</span>
963
964
  <span class="cline-any cline-neutral">&nbsp;</span>
964
965
  <span class="cline-any cline-neutral">&nbsp;</span>
965
966
  <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-yes">6x</span>
967
- <span class="cline-any cline-yes">6x</span>
968
- <span class="cline-any cline-yes">7x</span>
967
+ <span class="cline-any cline-yes">10x</span>
968
+ <span class="cline-any cline-yes">10x</span>
969
+ <span class="cline-any cline-yes">11x</span>
969
970
  <span class="cline-any cline-yes">1x</span>
970
971
  <span class="cline-any cline-neutral">&nbsp;</span>
971
972
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -975,9 +976,9 @@
975
976
  <span class="cline-any cline-neutral">&nbsp;</span>
976
977
  <span class="cline-any cline-neutral">&nbsp;</span>
977
978
  <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-yes">225x</span>
979
- <span class="cline-any cline-yes">23x</span>
980
- <span class="cline-any cline-yes">33x</span>
979
+ <span class="cline-any cline-yes">424x</span>
980
+ <span class="cline-any cline-yes">31x</span>
981
+ <span class="cline-any cline-yes">49x</span>
981
982
  <span class="cline-any cline-neutral">&nbsp;</span>
982
983
  <span class="cline-any cline-neutral">&nbsp;</span>
983
984
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -985,7 +986,7 @@
985
986
  <span class="cline-any cline-neutral">&nbsp;</span>
986
987
  <span class="cline-any cline-neutral">&nbsp;</span>
987
988
  <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-yes">225x</span>
989
+ <span class="cline-any cline-yes">424x</span>
989
990
  <span class="cline-any cline-yes">2x</span>
990
991
  <span class="cline-any cline-neutral">&nbsp;</span>
991
992
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -993,18 +994,18 @@
993
994
  <span class="cline-any cline-neutral">&nbsp;</span>
994
995
  <span class="cline-any cline-neutral">&nbsp;</span>
995
996
  <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-yes">225x</span>
997
- <span class="cline-any cline-yes">13x</span>
997
+ <span class="cline-any cline-yes">424x</span>
998
+ <span class="cline-any cline-yes">21x</span>
998
999
  <span class="cline-any cline-neutral">&nbsp;</span>
999
1000
  <span class="cline-any cline-neutral">&nbsp;</span>
1000
1001
  <span class="cline-any cline-neutral">&nbsp;</span>
1001
1002
  <span class="cline-any cline-neutral">&nbsp;</span>
1002
1003
  <span class="cline-any cline-neutral">&nbsp;</span>
1003
1004
  <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-yes">225x</span>
1005
- <span class="cline-any cline-yes">12x</span>
1006
- <span class="cline-any cline-yes">24x</span>
1007
- <span class="cline-any cline-yes">24x</span>
1005
+ <span class="cline-any cline-yes">424x</span>
1006
+ <span class="cline-any cline-yes">16x</span>
1007
+ <span class="cline-any cline-yes">32x</span>
1008
+ <span class="cline-any cline-yes">32x</span>
1008
1009
  <span class="cline-any cline-neutral">&nbsp;</span>
1009
1010
  <span class="cline-any cline-neutral">&nbsp;</span>
1010
1011
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1019,30 +1020,30 @@
1019
1020
  <span class="cline-any cline-neutral">&nbsp;</span>
1020
1021
  <span class="cline-any cline-neutral">&nbsp;</span>
1021
1022
  <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-yes">225x</span>
1023
+ <span class="cline-any cline-yes">424x</span>
1023
1024
  <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-yes">225x</span>
1025
- <span class="cline-any cline-yes">39x</span>
1025
+ <span class="cline-any cline-yes">424x</span>
1026
+ <span class="cline-any cline-yes">55x</span>
1026
1027
  <span class="cline-any cline-no">&nbsp;</span>
1027
1028
  <span class="cline-any cline-neutral">&nbsp;</span>
1028
1029
  <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-yes">39x</span>
1030
+ <span class="cline-any cline-yes">55x</span>
1030
1031
  <span class="cline-any cline-yes">4x</span>
1031
1032
  <span class="cline-any cline-neutral">&nbsp;</span>
1032
1033
  <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-yes">35x</span>
1034
+ <span class="cline-any cline-yes">51x</span>
1034
1035
  <span class="cline-any cline-yes">2x</span>
1035
1036
  <span class="cline-any cline-yes">4x</span>
1036
1037
  <span class="cline-any cline-neutral">&nbsp;</span>
1037
1038
  <span class="cline-any cline-neutral">&nbsp;</span>
1038
1039
  <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-yes">33x</span>
1040
+ <span class="cline-any cline-yes">49x</span>
1040
1041
  <span class="cline-any cline-neutral">&nbsp;</span>
1041
1042
  <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-yes">225x</span>
1043
- <span class="cline-any cline-yes">23x</span>
1044
- <span class="cline-any cline-yes">33x</span>
1045
- <span class="cline-any cline-yes">33x</span>
1043
+ <span class="cline-any cline-yes">424x</span>
1044
+ <span class="cline-any cline-yes">31x</span>
1045
+ <span class="cline-any cline-yes">49x</span>
1046
+ <span class="cline-any cline-yes">49x</span>
1046
1047
  <span class="cline-any cline-yes">2x</span>
1047
1048
  <span class="cline-any cline-neutral">&nbsp;</span>
1048
1049
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1052,7 +1053,7 @@
1052
1053
  <span class="cline-any cline-neutral">&nbsp;</span>
1053
1054
  <span class="cline-any cline-neutral">&nbsp;</span>
1054
1055
  <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-yes">225x</span>
1056
+ <span class="cline-any cline-yes">424x</span>
1056
1057
  <span class="cline-any cline-neutral">&nbsp;</span>
1057
1058
  <span class="cline-any cline-neutral">&nbsp;</span>
1058
1059
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1065,17 +1066,17 @@
1065
1066
  <span class="cline-any cline-neutral">&nbsp;</span>
1066
1067
  <span class="cline-any cline-neutral">&nbsp;</span>
1067
1068
  <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-yes">225x</span>
1069
- <span class="cline-any cline-yes">13x</span>
1069
+ <span class="cline-any cline-yes">424x</span>
1070
+ <span class="cline-any cline-yes">21x</span>
1070
1071
  <span class="cline-any cline-neutral">&nbsp;</span>
1071
1072
  <span class="cline-any cline-neutral">&nbsp;</span>
1072
1073
  <span class="cline-any cline-neutral">&nbsp;</span>
1073
1074
  <span class="cline-any cline-neutral">&nbsp;</span>
1074
1075
  <span class="cline-any cline-neutral">&nbsp;</span>
1075
1076
  <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-yes">225x</span>
1077
- <span class="cline-any cline-yes">23x</span>
1078
- <span class="cline-any cline-yes">33x</span>
1077
+ <span class="cline-any cline-yes">424x</span>
1078
+ <span class="cline-any cline-yes">31x</span>
1079
+ <span class="cline-any cline-yes">49x</span>
1079
1080
  <span class="cline-any cline-neutral">&nbsp;</span>
1080
1081
  <span class="cline-any cline-neutral">&nbsp;</span>
1081
1082
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1083,7 +1084,7 @@
1083
1084
  <span class="cline-any cline-neutral">&nbsp;</span>
1084
1085
  <span class="cline-any cline-neutral">&nbsp;</span>
1085
1086
  <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-yes">225x</span>
1087
+ <span class="cline-any cline-yes">424x</span>
1087
1088
  <span class="cline-any cline-yes">2x</span>
1088
1089
  <span class="cline-any cline-neutral">&nbsp;</span>
1089
1090
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1091,10 +1092,10 @@
1091
1092
  <span class="cline-any cline-neutral">&nbsp;</span>
1092
1093
  <span class="cline-any cline-neutral">&nbsp;</span>
1093
1094
  <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-yes">225x</span>
1095
- <span class="cline-any cline-yes">12x</span>
1096
- <span class="cline-any cline-yes">24x</span>
1097
- <span class="cline-any cline-yes">24x</span>
1095
+ <span class="cline-any cline-yes">424x</span>
1096
+ <span class="cline-any cline-yes">16x</span>
1097
+ <span class="cline-any cline-yes">32x</span>
1098
+ <span class="cline-any cline-yes">32x</span>
1098
1099
  <span class="cline-any cline-neutral">&nbsp;</span>
1099
1100
  <span class="cline-any cline-neutral">&nbsp;</span>
1100
1101
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1109,12 +1110,12 @@
1109
1110
  <span class="cline-any cline-neutral">&nbsp;</span>
1110
1111
  <span class="cline-any cline-neutral">&nbsp;</span>
1111
1112
  <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-yes">225x</span>
1113
+ <span class="cline-any cline-yes">424x</span>
1113
1114
  <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-yes">225x</span>
1115
- <span class="cline-any cline-yes">20x</span>
1116
- <span class="cline-any cline-yes">13x</span>
1117
- <span class="cline-any cline-yes">13x</span>
1115
+ <span class="cline-any cline-yes">424x</span>
1116
+ <span class="cline-any cline-yes">32x</span>
1117
+ <span class="cline-any cline-yes">21x</span>
1118
+ <span class="cline-any cline-yes">21x</span>
1118
1119
  <span class="cline-any cline-yes">1x</span>
1119
1120
  <span class="cline-any cline-neutral">&nbsp;</span>
1120
1121
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1123,7 +1124,7 @@
1123
1124
  <span class="cline-any cline-neutral">&nbsp;</span>
1124
1125
  <span class="cline-any cline-neutral">&nbsp;</span>
1125
1126
  <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-yes">20x</span>
1127
+ <span class="cline-any cline-yes">32x</span>
1127
1128
  <span class="cline-any cline-yes">1x</span>
1128
1129
  <span class="cline-any cline-neutral">&nbsp;</span>
1129
1130
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1131,7 +1132,7 @@
1131
1132
  <span class="cline-any cline-neutral">&nbsp;</span>
1132
1133
  <span class="cline-any cline-neutral">&nbsp;</span>
1133
1134
  <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-yes">20x</span>
1135
+ <span class="cline-any cline-yes">32x</span>
1135
1136
  <span class="cline-any cline-yes">3x</span>
1136
1137
  <span class="cline-any cline-yes">5x</span>
1137
1138
  <span class="cline-any cline-yes">1x</span>
@@ -1144,17 +1145,17 @@
1144
1145
  <span class="cline-any cline-neutral">&nbsp;</span>
1145
1146
  <span class="cline-any cline-neutral">&nbsp;</span>
1146
1147
  <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-yes">225x</span>
1148
- <span class="cline-any cline-yes">13x</span>
1148
+ <span class="cline-any cline-yes">424x</span>
1149
+ <span class="cline-any cline-yes">21x</span>
1149
1150
  <span class="cline-any cline-neutral">&nbsp;</span>
1150
1151
  <span class="cline-any cline-neutral">&nbsp;</span>
1151
1152
  <span class="cline-any cline-neutral">&nbsp;</span>
1152
1153
  <span class="cline-any cline-neutral">&nbsp;</span>
1153
1154
  <span class="cline-any cline-neutral">&nbsp;</span>
1154
1155
  <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-yes">225x</span>
1156
- <span class="cline-any cline-yes">23x</span>
1157
- <span class="cline-any cline-yes">33x</span>
1156
+ <span class="cline-any cline-yes">424x</span>
1157
+ <span class="cline-any cline-yes">31x</span>
1158
+ <span class="cline-any cline-yes">49x</span>
1158
1159
  <span class="cline-any cline-neutral">&nbsp;</span>
1159
1160
  <span class="cline-any cline-neutral">&nbsp;</span>
1160
1161
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1162,7 +1163,7 @@
1162
1163
  <span class="cline-any cline-neutral">&nbsp;</span>
1163
1164
  <span class="cline-any cline-neutral">&nbsp;</span>
1164
1165
  <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-yes">225x</span>
1166
+ <span class="cline-any cline-yes">424x</span>
1166
1167
  <span class="cline-any cline-yes">2x</span>
1167
1168
  <span class="cline-any cline-neutral">&nbsp;</span>
1168
1169
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1170,10 +1171,10 @@
1170
1171
  <span class="cline-any cline-neutral">&nbsp;</span>
1171
1172
  <span class="cline-any cline-neutral">&nbsp;</span>
1172
1173
  <span class="cline-any cline-neutral">&nbsp;</span>
1173
- <span class="cline-any cline-yes">225x</span>
1174
- <span class="cline-any cline-yes">12x</span>
1175
- <span class="cline-any cline-yes">24x</span>
1176
- <span class="cline-any cline-yes">24x</span>
1174
+ <span class="cline-any cline-yes">424x</span>
1175
+ <span class="cline-any cline-yes">16x</span>
1176
+ <span class="cline-any cline-yes">32x</span>
1177
+ <span class="cline-any cline-yes">32x</span>
1177
1178
  <span class="cline-any cline-neutral">&nbsp;</span>
1178
1179
  <span class="cline-any cline-neutral">&nbsp;</span>
1179
1180
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1183,9 +1184,9 @@
1183
1184
  <span class="cline-any cline-neutral">&nbsp;</span>
1184
1185
  <span class="cline-any cline-neutral">&nbsp;</span>
1185
1186
  <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-yes">2x</span>
1187
- <span class="cline-any cline-yes">30x</span>
1188
- <span class="cline-any cline-yes">27x</span>
1187
+ <span class="cline-any cline-yes">68x</span>
1188
+ <span class="cline-any cline-yes">68x</span>
1189
+ <span class="cline-any cline-yes">65x</span>
1189
1190
  <span class="cline-any cline-neutral">&nbsp;</span>
1190
1191
  <span class="cline-any cline-neutral">&nbsp;</span>
1191
1192
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1209,7 +1210,7 @@
1209
1210
  <span class="cline-any cline-neutral">&nbsp;</span>
1210
1211
  <span class="cline-any cline-neutral">&nbsp;</span>
1211
1212
  <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-yes">61x</span>
1213
+ <span class="cline-any cline-yes">93x</span>
1213
1214
  <span class="cline-any cline-neutral">&nbsp;</span>
1214
1215
  <span class="cline-any cline-neutral">&nbsp;</span>
1215
1216
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1217,7 +1218,7 @@
1217
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1218
1219
  <span class="cline-any cline-neutral">&nbsp;</span>
1219
1220
  <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-yes">61x</span>
1221
+ <span class="cline-any cline-yes">93x</span>
1221
1222
  <span class="cline-any cline-no">&nbsp;</span>
1222
1223
  <span class="cline-any cline-neutral">&nbsp;</span>
1223
1224
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1226,20 +1227,21 @@
1226
1227
  <span class="cline-any cline-neutral">&nbsp;</span>
1227
1228
  <span class="cline-any cline-neutral">&nbsp;</span>
1228
1229
  <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-yes">61x</span>
1230
+ <span class="cline-any cline-yes">93x</span>
1230
1231
  <span class="cline-any cline-neutral">&nbsp;</span>
1231
- <span class="cline-any cline-yes">61x</span>
1232
+ <span class="cline-any cline-yes">93x</span>
1232
1233
  <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-yes">61x</span>
1234
+ <span class="cline-any cline-yes">93x</span>
1234
1235
  <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-yes">61x</span>
1236
+ <span class="cline-any cline-yes">93x</span>
1237
+ <span class="cline-any cline-neutral">&nbsp;</span>
1238
+ <span class="cline-any cline-yes">93x</span>
1239
+ <span class="cline-any cline-yes">93x</span>
1240
+ <span class="cline-any cline-yes">93x</span>
1236
1241
  <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-yes">61x</span>
1238
- <span class="cline-any cline-yes">61x</span>
1239
- <span class="cline-any cline-yes">61x</span>
1240
1242
  <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-yes">68x</span>
1241
1244
  <span class="cline-any cline-neutral">&nbsp;</span>
1242
- <span class="cline-any cline-yes">30x</span>
1243
1245
  <span class="cline-any cline-neutral">&nbsp;</span>
1244
1246
  <span class="cline-any cline-neutral">&nbsp;</span>
1245
1247
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1262,9 +1264,9 @@
1262
1264
  <span class="cline-any cline-neutral">&nbsp;</span>
1263
1265
  <span class="cline-any cline-neutral">&nbsp;</span>
1264
1266
  <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-yes">92x</span>
1267
+ <span class="cline-any cline-yes">227x</span>
1266
1268
  <span class="cline-any cline-neutral">&nbsp;</span>
1267
- <span class="cline-any cline-yes">92x</span>
1269
+ <span class="cline-any cline-yes">227x</span>
1268
1270
  <span class="cline-any cline-yes">1x</span>
1269
1271
  <span class="cline-any cline-neutral">&nbsp;</span>
1270
1272
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1272,7 +1274,7 @@
1272
1274
  <span class="cline-any cline-neutral">&nbsp;</span>
1273
1275
  <span class="cline-any cline-neutral">&nbsp;</span>
1274
1276
  <span class="cline-any cline-neutral">&nbsp;</span>
1275
- <span class="cline-any cline-yes">92x</span>
1277
+ <span class="cline-any cline-yes">227x</span>
1276
1278
  <span class="cline-any cline-yes">1x</span>
1277
1279
  <span class="cline-any cline-neutral">&nbsp;</span>
1278
1280
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1282,7 +1284,7 @@
1282
1284
  <span class="cline-any cline-neutral">&nbsp;</span>
1283
1285
  <span class="cline-any cline-neutral">&nbsp;</span>
1284
1286
  <span class="cline-any cline-neutral">&nbsp;</span>
1285
- <span class="cline-any cline-yes">92x</span>
1287
+ <span class="cline-any cline-yes">227x</span>
1286
1288
  <span class="cline-any cline-neutral">&nbsp;</span>
1287
1289
  <span class="cline-any cline-neutral">&nbsp;</span>
1288
1290
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1290,7 +1292,7 @@
1290
1292
  <span class="cline-any cline-neutral">&nbsp;</span>
1291
1293
  <span class="cline-any cline-neutral">&nbsp;</span>
1292
1294
  <span class="cline-any cline-neutral">&nbsp;</span>
1293
- <span class="cline-any cline-yes">92x</span>
1295
+ <span class="cline-any cline-yes">227x</span>
1294
1296
  <span class="cline-any cline-yes">2x</span>
1295
1297
  <span class="cline-any cline-neutral">&nbsp;</span>
1296
1298
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1299,19 +1301,19 @@
1299
1301
  <span class="cline-any cline-neutral">&nbsp;</span>
1300
1302
  <span class="cline-any cline-neutral">&nbsp;</span>
1301
1303
  <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-yes">92x</span>
1304
+ <span class="cline-any cline-yes">227x</span>
1303
1305
  <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-yes">92x</span>
1306
+ <span class="cline-any cline-yes">227x</span>
1305
1307
  <span class="cline-any cline-neutral">&nbsp;</span>
1306
- <span class="cline-any cline-yes">92x</span>
1308
+ <span class="cline-any cline-yes">227x</span>
1307
1309
  <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-yes">92x</span>
1310
+ <span class="cline-any cline-yes">227x</span>
1309
1311
  <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-yes">92x</span>
1311
- <span class="cline-any cline-yes">92x</span>
1312
- <span class="cline-any cline-yes">92x</span>
1312
+ <span class="cline-any cline-yes">227x</span>
1313
+ <span class="cline-any cline-yes">227x</span>
1314
+ <span class="cline-any cline-yes">227x</span>
1313
1315
  <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-yes">30x</span>
1316
+ <span class="cline-any cline-yes">68x</span>
1315
1317
  <span class="cline-any cline-neutral">&nbsp;</span>
1316
1318
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Attribute, AttributeProperty } from "@featurevisor/types";
1317
1319
  import { z } from "zod";
@@ -1424,7 +1426,7 @@ function refineAttributeEnumMatchesType(
1424
1426
  &nbsp;
1425
1427
  if (schema.oneOf &amp;&amp; Array.isArray(schema.oneOf)) {
1426
1428
  schema.oneOf.forEach((branch, index) =&gt; {
1427
- if (branch &amp;&amp; typeof branch === "object") {
1429
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (branch &amp;&amp; typeof branch === "object") {
1428
1430
  refineAttributeEnumMatchesType(
1429
1431
  branch as AttributeSchemaLike,
1430
1432
  [...pathPrefix, "oneOf", index],
@@ -1485,21 +1487,21 @@ function refineAttributeStringLengthPattern(
1485
1487
  &nbsp;
1486
1488
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isString &amp;&amp; typeof schema.const === "string") {
1487
1489
  const result = <span class="cstat-no" title="statement not covered" >testString(schema.const);</span>
1488
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!result.minOk) {</span>
1490
+ <span class="cstat-no" title="statement not covered" > if (!result.minOk) {</span>
1489
1491
  <span class="cstat-no" title="statement not covered" > ctx.addIssue({</span>
1490
1492
  code: z.ZodIssueCode.custom,
1491
1493
  message: `\`const\` value length (${schema.const.length}) is less than \`minLength\` (${minLength}).`,
1492
1494
  path: [...pathPrefix, "const"],
1493
1495
  });
1494
1496
  }
1495
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!result.maxOk) {</span>
1497
+ <span class="cstat-no" title="statement not covered" > if (!result.maxOk) {</span>
1496
1498
  <span class="cstat-no" title="statement not covered" > ctx.addIssue({</span>
1497
1499
  code: z.ZodIssueCode.custom,
1498
1500
  message: `\`const\` value length (${schema.const.length}) is greater than \`maxLength\` (${maxLength}).`,
1499
1501
  path: [...pathPrefix, "const"],
1500
1502
  });
1501
1503
  }
1502
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!result.patternOk) {</span>
1504
+ <span class="cstat-no" title="statement not covered" > if (!result.patternOk) {</span>
1503
1505
  <span class="cstat-no" title="statement not covered" > ctx.addIssue({</span>
1504
1506
  code: z.ZodIssueCode.custom,
1505
1507
  message: `\`const\` value does not match \`pattern\`.`,
@@ -1564,7 +1566,7 @@ function refineAttributeStringLengthPattern(
1564
1566
  &nbsp;
1565
1567
  if (schema.oneOf &amp;&amp; Array.isArray(schema.oneOf)) {
1566
1568
  schema.oneOf.forEach((branch, index) =&gt; {
1567
- if (branch &amp;&amp; typeof branch === "object") {
1569
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (branch &amp;&amp; typeof branch === "object") {
1568
1570
  refineAttributeStringLengthPattern(
1569
1571
  branch as AttributeSchemaLike,
1570
1572
  [...pathPrefix, "oneOf", index],
@@ -1593,7 +1595,7 @@ function refineRequiredKeysInAttributeSchema(
1593
1595
  if (!allowedKeys.includes(key)) {
1594
1596
  ctx.addIssue({
1595
1597
  code: z.ZodIssueCode.custom,
1596
- message: `Unknown required field "${key}". \`required\` must only contain property names defined in \`properties\`. Allowed: ${allowedKeys.length ? allowedKeys.join(", ") : <span class="branch-1 cbranch-no" title="branch not covered" >"(none)"}</span>.`,
1598
+ message: `Unknown required field "${key}". \`required\` must only contain property names defined in \`properties\`. Allowed: ${allowedKeys.length ? allowedKeys.join(", ") : <span class="branch-1 cbranch-no" title="branch not covered" >"(none)"}.</span>`,
1597
1599
  path: [...pathPrefix, "required", index],
1598
1600
  });
1599
1601
  }
@@ -1628,7 +1630,7 @@ function refineRequiredKeysInAttributeSchema(
1628
1630
  &nbsp;
1629
1631
  if (schema.oneOf &amp;&amp; Array.isArray(schema.oneOf)) {
1630
1632
  schema.oneOf.forEach((branch, index) =&gt; {
1631
- if (branch &amp;&amp; typeof branch === "object") {
1633
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (branch &amp;&amp; typeof branch === "object") {
1632
1634
  refineRequiredKeysInAttributeSchema(
1633
1635
  branch as AttributeSchemaLike,
1634
1636
  [...pathPrefix, "oneOf", index],
@@ -1718,7 +1720,7 @@ function refineNoNestedObjectProperties(
1718
1720
  &nbsp;
1719
1721
  if (schema.oneOf &amp;&amp; Array.isArray(schema.oneOf)) {
1720
1722
  schema.oneOf.forEach((branch, index) =&gt; {
1721
- if (branch &amp;&amp; typeof branch === "object") {
1723
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (branch &amp;&amp; typeof branch === "object") {
1722
1724
  refineNoNestedObjectProperties(
1723
1725
  branch as AttributeSchemaLike,
1724
1726
  [...pathPrefix, "oneOf", index],
@@ -1797,7 +1799,7 @@ function refineArrayAttributesAreStringArrays(
1797
1799
  &nbsp;
1798
1800
  if (schema.oneOf &amp;&amp; Array.isArray(schema.oneOf)) {
1799
1801
  schema.oneOf.forEach((branch, index) =&gt; {
1800
- if (branch &amp;&amp; typeof branch === "object") {
1802
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (branch &amp;&amp; typeof branch === "object") {
1801
1803
  refineArrayAttributesAreStringArrays(
1802
1804
  branch as AttributeSchemaLike,
1803
1805
  [...pathPrefix, "oneOf", index],
@@ -1867,6 +1869,7 @@ export function getAttributeZodSchema() {
1867
1869
  const attributeZodSchema = z
1868
1870
  .object({
1869
1871
  archived: z.boolean().optional(),
1872
+ promotable: z.boolean().optional(),
1870
1873
  type: attributeTypeEnum.optional(),
1871
1874
  description: z.string(),
1872
1875
  enum: z.array(valueZodSchema).optional(),
@@ -1945,16 +1948,16 @@ export function getAttributeZodSchema() {
1945
1948
  <div class='footer quiet pad2 space-top1 center small'>
1946
1949
  Code coverage generated by
1947
1950
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1948
- at 2026-04-26T16:47:51.164Z
1951
+ at 2026-07-12T20:35:50.655Z
1949
1952
  </div>
1950
- <script src="../prettify.js"></script>
1953
+ <script src="../../prettify.js"></script>
1951
1954
  <script>
1952
1955
  window.onload = function () {
1953
1956
  prettyPrint();
1954
1957
  };
1955
1958
  </script>
1956
- <script src="../sorter.js"></script>
1957
- <script src="../block-navigation.js"></script>
1959
+ <script src="../../sorter.js"></script>
1960
+ <script src="../../block-navigation.js"></script>
1958
1961
  </body>
1959
1962
  </html>
1960
1963