@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 datasource/datasource.ts</title>
6
+ <title>Code coverage report for src/datasource/datasource.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,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">datasource</a> datasource.ts</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/datasource</a> datasource.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">28.35% </span>
26
+ <span class="strong">44.3% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>19/67</span>
28
+ <span class='fraction'>35/79</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">17.64% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/9</span>
35
+ <span class='fraction'>3/17</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">36.36% </span>
40
+ <span class="strong">53.84% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/44</span>
42
+ <span class='fraction'>28/52</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">28.35% </span>
47
+ <span class="strong">44.3% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>19/67</span>
49
+ <span class='fraction'>35/79</span>
50
50
  </div>
51
51
 
52
52
 
@@ -57,7 +57,7 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
61
61
  </div>
62
62
  </template>
63
63
  </div>
@@ -339,7 +339,36 @@
339
339
  <a name='L274'></a><a href='#L274'>274</a>
340
340
  <a name='L275'></a><a href='#L275'>275</a>
341
341
  <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
343
372
  <span class="cline-any cline-neutral">&nbsp;</span>
344
373
  <span class="cline-any cline-neutral">&nbsp;</span>
345
374
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -358,49 +387,54 @@
358
387
  <span class="cline-any cline-neutral">&nbsp;</span>
359
388
  <span class="cline-any cline-neutral">&nbsp;</span>
360
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-yes">4x</span>
361
391
  <span class="cline-any cline-neutral">&nbsp;</span>
362
392
  <span class="cline-any cline-neutral">&nbsp;</span>
363
393
  <span class="cline-any cline-neutral">&nbsp;</span>
364
394
  <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-yes">33x</span>
365
396
  <span class="cline-any cline-neutral">&nbsp;</span>
366
397
  <span class="cline-any cline-neutral">&nbsp;</span>
367
398
  <span class="cline-any cline-neutral">&nbsp;</span>
368
399
  <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-yes">3x</span>
400
+ <span class="cline-any cline-yes">75x</span>
401
+ <span class="cline-any cline-yes">75x</span>
402
+ <span class="cline-any cline-yes">75x</span>
370
403
  <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-yes">75x</span>
405
+ <span class="cline-any cline-yes">75x</span>
406
+ <span class="cline-any cline-yes">75x</span>
371
407
  <span class="cline-any cline-neutral">&nbsp;</span>
372
408
  <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-yes">12x</span>
374
- <span class="cline-any cline-yes">12x</span>
375
409
  <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">12x</span>
410
+ <span class="cline-any cline-yes">135x</span>
377
411
  <span class="cline-any cline-neutral">&nbsp;</span>
378
412
  <span class="cline-any cline-neutral">&nbsp;</span>
379
413
  <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-yes">1x</span>
380
415
  <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">428x</span>
382
416
  <span class="cline-any cline-neutral">&nbsp;</span>
383
417
  <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-yes">42x</span>
384
419
  <span class="cline-any cline-neutral">&nbsp;</span>
385
420
  <span class="cline-any cline-neutral">&nbsp;</span>
386
421
  <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-yes">21x</span>
387
423
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-no">&nbsp;</span>
389
424
  <span class="cline-any cline-neutral">&nbsp;</span>
390
425
  <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-yes">1551x</span>
393
427
  <span class="cline-any cline-neutral">&nbsp;</span>
394
428
  <span class="cline-any cline-neutral">&nbsp;</span>
395
429
  <span class="cline-any cline-neutral">&nbsp;</span>
396
430
  <span class="cline-any cline-neutral">&nbsp;</span>
397
431
  <span class="cline-any cline-neutral">&nbsp;</span>
398
432
  <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-no">&nbsp;</span>
433
+ <span class="cline-any cline-yes">1x</span>
400
434
  <span class="cline-any cline-neutral">&nbsp;</span>
401
435
  <span class="cline-any cline-neutral">&nbsp;</span>
402
436
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-yes">2x</span>
404
438
  <span class="cline-any cline-neutral">&nbsp;</span>
405
439
  <span class="cline-any cline-neutral">&nbsp;</span>
406
440
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -418,37 +452,40 @@
418
452
  <span class="cline-any cline-neutral">&nbsp;</span>
419
453
  <span class="cline-any cline-neutral">&nbsp;</span>
420
454
  <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-yes">1x</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
457
  <span class="cline-any cline-neutral">&nbsp;</span>
422
458
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">8x</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
424
460
  <span class="cline-any cline-neutral">&nbsp;</span>
425
461
  <span class="cline-any cline-neutral">&nbsp;</span>
426
462
  <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-yes">3x</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
428
464
  <span class="cline-any cline-neutral">&nbsp;</span>
429
465
  <span class="cline-any cline-neutral">&nbsp;</span>
430
466
  <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-yes">123x</span>
432
467
  <span class="cline-any cline-neutral">&nbsp;</span>
433
468
  <span class="cline-any cline-neutral">&nbsp;</span>
434
469
  <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
470
  <span class="cline-any cline-neutral">&nbsp;</span>
437
471
  <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-yes">68x</span>
438
473
  <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
474
  <span class="cline-any cline-neutral">&nbsp;</span>
441
475
  <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-yes">7x</span>
442
477
  <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-no">&nbsp;</span>
444
478
  <span class="cline-any cline-neutral">&nbsp;</span>
445
479
  <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-yes">461x</span>
446
481
  <span class="cline-any cline-neutral">&nbsp;</span>
447
482
  <span class="cline-any cline-neutral">&nbsp;</span>
448
483
  <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-yes">5x</span>
449
485
  <span class="cline-any cline-neutral">&nbsp;</span>
450
486
  <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-yes">1x</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-no">&nbsp;</span>
452
489
  <span class="cline-any cline-neutral">&nbsp;</span>
453
490
  <span class="cline-any cline-neutral">&nbsp;</span>
454
491
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -482,7 +519,7 @@
482
519
  <span class="cline-any cline-neutral">&nbsp;</span>
483
520
  <span class="cline-any cline-neutral">&nbsp;</span>
484
521
  <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-yes">7x</span>
522
+ <span class="cline-any cline-yes">63x</span>
486
523
  <span class="cline-any cline-neutral">&nbsp;</span>
487
524
  <span class="cline-any cline-neutral">&nbsp;</span>
488
525
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -490,7 +527,7 @@
490
527
  <span class="cline-any cline-neutral">&nbsp;</span>
491
528
  <span class="cline-any cline-neutral">&nbsp;</span>
492
529
  <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-yes">66x</span>
530
+ <span class="cline-any cline-yes">218x</span>
494
531
  <span class="cline-any cline-neutral">&nbsp;</span>
495
532
  <span class="cline-any cline-neutral">&nbsp;</span>
496
533
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -503,7 +540,7 @@
503
540
  <span class="cline-any cline-neutral">&nbsp;</span>
504
541
  <span class="cline-any cline-neutral">&nbsp;</span>
505
542
  <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-yes">8x</span>
543
+ <span class="cline-any cline-yes">66x</span>
507
544
  <span class="cline-any cline-neutral">&nbsp;</span>
508
545
  <span class="cline-any cline-neutral">&nbsp;</span>
509
546
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -532,7 +569,7 @@
532
569
  <span class="cline-any cline-neutral">&nbsp;</span>
533
570
  <span class="cline-any cline-neutral">&nbsp;</span>
534
571
  <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-yes">103x</span>
572
+ <span class="cline-any cline-yes">349x</span>
536
573
  <span class="cline-any cline-neutral">&nbsp;</span>
537
574
  <span class="cline-any cline-neutral">&nbsp;</span>
538
575
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -545,7 +582,7 @@
545
582
  <span class="cline-any cline-neutral">&nbsp;</span>
546
583
  <span class="cline-any cline-neutral">&nbsp;</span>
547
584
  <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-yes">7x</span>
585
+ <span class="cline-any cline-yes">61x</span>
549
586
  <span class="cline-any cline-neutral">&nbsp;</span>
550
587
  <span class="cline-any cline-neutral">&nbsp;</span>
551
588
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -553,7 +590,7 @@
553
590
  <span class="cline-any cline-neutral">&nbsp;</span>
554
591
  <span class="cline-any cline-neutral">&nbsp;</span>
555
592
  <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-yes">3x</span>
593
+ <span class="cline-any cline-yes">10x</span>
557
594
  <span class="cline-any cline-neutral">&nbsp;</span>
558
595
  <span class="cline-any cline-neutral">&nbsp;</span>
559
596
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -566,7 +603,7 @@
566
603
  <span class="cline-any cline-neutral">&nbsp;</span>
567
604
  <span class="cline-any cline-neutral">&nbsp;</span>
568
605
  <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">8x</span>
606
+ <span class="cline-any cline-yes">66x</span>
570
607
  <span class="cline-any cline-neutral">&nbsp;</span>
571
608
  <span class="cline-any cline-neutral">&nbsp;</span>
572
609
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -574,7 +611,7 @@
574
611
  <span class="cline-any cline-neutral">&nbsp;</span>
575
612
  <span class="cline-any cline-neutral">&nbsp;</span>
576
613
  <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-yes">180x</span>
614
+ <span class="cline-any cline-yes">495x</span>
578
615
  <span class="cline-any cline-neutral">&nbsp;</span>
579
616
  <span class="cline-any cline-neutral">&nbsp;</span>
580
617
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -587,15 +624,36 @@
587
624
  <span class="cline-any cline-neutral">&nbsp;</span>
588
625
  <span class="cline-any cline-neutral">&nbsp;</span>
589
626
  <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-yes">7x</span>
627
+ <span class="cline-any cline-yes">69x</span>
591
628
  <span class="cline-any cline-neutral">&nbsp;</span>
592
629
  <span class="cline-any cline-neutral">&nbsp;</span>
593
630
  <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-yes">141x</span>
631
+ <span class="cline-any cline-no">&nbsp;</span>
595
632
  <span class="cline-any cline-neutral">&nbsp;</span>
596
633
  <span class="cline-any cline-neutral">&nbsp;</span>
597
634
  <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
635
+ <span class="cline-any cline-yes">22x</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-yes">3x</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-yes">1x</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-yes">61x</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-yes">406x</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-yes">4x</span>
599
657
  <span class="cline-any cline-neutral">&nbsp;</span>
600
658
  <span class="cline-any cline-neutral">&nbsp;</span>
601
659
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -630,29 +688,45 @@
630
688
  EntityType,
631
689
  SchemaKey,
632
690
  Schema,
691
+ Target,
692
+ TargetKey,
633
693
  } from "@featurevisor/types";
634
694
  &nbsp;
635
- import { ProjectConfig } from "../config";
695
+ import { getProjectConfigForSet, ProjectConfig } from "../config";
636
696
  import type { CustomParser } from "@featurevisor/parsers";
637
697
  &nbsp;
638
- import {
639
- Adapter,
640
- DatafileOptions,
641
- FeatureEnvironmentProperty,
642
- FeatureSourcePaths,
643
- } from "./adapter";
698
+ import { Adapter, DatafileFile, DatafileOptions } from "./adapter";
644
699
  &nbsp;
645
700
  export class Datasource {
646
701
  private adapter: Adapter;
702
+ private rootConfig: ProjectConfig;
647
703
  &nbsp;
648
704
  constructor(
649
705
  private config: ProjectConfig,
650
706
  private rootDirectoryPath?: string,
707
+ private set?: string,
651
708
  ) {
652
- this.adapter = new config.adapter(config, rootDirectoryPath);
709
+ this.rootConfig = config;
710
+ this.config = set ? getProjectConfigForSet(this.rootConfig, set) : config;
711
+ this.adapter = new this.config.adapter(this.config, rootDirectoryPath);
712
+ }
713
+ &nbsp;
714
+ getConfig() {
715
+ return this.config;
716
+ }
717
+ &nbsp;
718
+ getSet() {
719
+ return this.set;
720
+ }
721
+ &nbsp;
722
+ forSet(set: string) {
723
+ return new Datasource(this.rootConfig, this.rootDirectoryPath, set);
724
+ }
725
+ &nbsp;
726
+ listSets() {
727
+ return this.adapter.listSets();
653
728
  }
654
729
  &nbsp;
655
- // @NOTE: only site generator needs it, find a way to get it out of here later
656
730
  getExtension() {
657
731
  return (this.config.parser as CustomParser).extension;
658
732
  }
@@ -660,33 +734,37 @@ export class Datasource {
660
734
  /**
661
735
  * State
662
736
  */
663
- <span class="fstat-no" title="function not covered" > readState(</span>environment: EnvironmentKey | false): Promise&lt;ExistingState&gt; {
664
- <span class="cstat-no" title="statement not covered" > return this.adapter.readState(environment);</span>
737
+ readState(environment: EnvironmentKey | false): Promise&lt;ExistingState&gt; {
738
+ return this.adapter.readState(environment);
665
739
  }
666
740
  &nbsp;
667
- <span class="fstat-no" title="function not covered" > writeState(</span>environment: EnvironmentKey | false, existingState: ExistingState) {
668
- <span class="cstat-no" title="statement not covered" > return this.adapter.writeState(environment, existingState);</span>
741
+ writeState(environment: EnvironmentKey | false, existingState: ExistingState) {
742
+ return this.adapter.writeState(environment, existingState);
669
743
  }
670
744
  &nbsp;
671
745
  /**
672
746
  * Revision
673
747
  */
674
- <span class="fstat-no" title="function not covered" > readRevision(</span>) {
748
+ <span class="fstat-no" title="function not covered" > readRevision() {</span>
675
749
  <span class="cstat-no" title="statement not covered" > return this.adapter.readRevision();</span>
676
750
  }
677
751
  &nbsp;
678
- <span class="fstat-no" title="function not covered" > writeRevision(</span>revision: string) {
752
+ <span class="fstat-no" title="function not covered" > writeRevision(r</span>evision: string) {
679
753
  <span class="cstat-no" title="statement not covered" > return this.adapter.writeRevision(revision);</span>
680
754
  }
681
755
  &nbsp;
682
756
  /**
683
757
  * Datafile
684
758
  */
685
- <span class="fstat-no" title="function not covered" > readDatafile(</span>options: DatafileOptions) {
759
+ listDatafiles(): Promise&lt;DatafileFile[]&gt; {
760
+ return this.adapter.listDatafiles ? this.adapter.listDatafiles() : <span class="branch-1 cbranch-no" title="branch not covered" >Promise.resolve([]);</span>
761
+ }
762
+ &nbsp;
763
+ <span class="fstat-no" title="function not covered" > readDatafile(o</span>ptions: DatafileOptions) {
686
764
  <span class="cstat-no" title="statement not covered" > return this.adapter.readDatafile(options);</span>
687
765
  }
688
766
  &nbsp;
689
- <span class="fstat-no" title="function not covered" > writeDatafile(</span>datafileContent: DatafileContent, options: DatafileOptions) {
767
+ <span class="fstat-no" title="function not covered" > writeDatafile(d</span>atafileContent: DatafileContent, options: DatafileOptions) {
690
768
  <span class="cstat-no" title="statement not covered" > return this.adapter.writeDatafile(datafileContent, options);</span>
691
769
  }
692
770
  &nbsp;
@@ -707,46 +785,34 @@ export class Datasource {
707
785
  return this.adapter.readEntity&lt;ParsedFeature&gt;("feature", featureKey);
708
786
  }
709
787
  &nbsp;
710
- <span class="fstat-no" title="function not covered" > writeFeature(</span>featureKey: FeatureKey, feature: ParsedFeature) {
711
- <span class="cstat-no" title="statement not covered" > return this.adapter.writeEntity&lt;ParsedFeature&gt;("feature", featureKey, feature);</span>
788
+ writeFeature(featureKey: FeatureKey, feature: ParsedFeature) {
789
+ return this.adapter.writeEntity&lt;ParsedFeature&gt;("feature", featureKey, feature);
712
790
  }
713
791
  &nbsp;
714
- <span class="fstat-no" title="function not covered" > deleteFeature(</span>featureKey: FeatureKey) {
792
+ <span class="fstat-no" title="function not covered" > deleteFeature(f</span>eatureKey: FeatureKey) {
715
793
  <span class="cstat-no" title="statement not covered" > return this.adapter.deleteEntity("feature", featureKey);</span>
716
794
  }
717
795
  &nbsp;
718
- <span class="fstat-no" title="function not covered" > getFeatureSourcePaths(</span>featureKey: FeatureKey): Promise&lt;FeatureSourcePaths | undefined&gt; {
719
- <span class="cstat-no" title="statement not covered" > return this.adapter.getFeatureSourcePaths(featureKey);</span>
720
- }
721
- &nbsp;
722
- getFeaturePropertySourcePath(
723
- featureKey: FeatureKey,
724
- property: FeatureEnvironmentProperty,
725
- environment?: string,
726
- ): Promise&lt;string | undefined&gt; {
727
- return this.adapter.getFeaturePropertySourcePath(featureKey, property, environment);
728
- }
729
- &nbsp;
730
- <span class="fstat-no" title="function not covered" > async </span>getRequiredFeaturesChain(
796
+ <span class="fstat-no" title="function not covered" > async g</span>etRequiredFeaturesChain(
731
797
  featureKey: FeatureKey,
732
798
  chain = <span class="branch-0 cbranch-no" title="branch not covered" >new Set&lt;FeatureKey&gt;(),</span>
733
799
  ): Promise&lt;Set&lt;FeatureKey&gt;&gt; {
734
800
  <span class="cstat-no" title="statement not covered" > chain.add(featureKey);</span>
735
801
  &nbsp;
736
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.adapter.entityExists("feature", featureKey)) {</span>
802
+ <span class="cstat-no" title="statement not covered" > if (!this.adapter.entityExists("feature", featureKey)) {</span>
737
803
  <span class="cstat-no" title="statement not covered" > throw new Error(`Feature not found: ${featureKey}`);</span>
738
804
  }
739
805
  &nbsp;
740
806
  const feature = <span class="cstat-no" title="statement not covered" >await this.readFeature(featureKey);</span>
741
807
  &nbsp;
742
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!feature.required) {</span>
808
+ <span class="cstat-no" title="statement not covered" > if (!feature.required) {</span>
743
809
  <span class="cstat-no" title="statement not covered" > return chain;</span>
744
810
  }
745
811
  &nbsp;
746
812
  <span class="cstat-no" title="statement not covered" > for (const r of feature.required) {</span>
747
813
  const requiredKey = <span class="cstat-no" title="statement not covered" >typeof r === "string" ? r : r.key;</span>
748
814
  &nbsp;
749
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (chain.has(requiredKey)) {</span>
815
+ <span class="cstat-no" title="statement not covered" > if (chain.has(requiredKey)) {</span>
750
816
  <span class="cstat-no" title="statement not covered" > throw new Error(`Circular dependency detected: ${chain.toString()}`);</span>
751
817
  }
752
818
  &nbsp;
@@ -761,7 +827,7 @@ export class Datasource {
761
827
  return this.adapter.listEntities("segment");
762
828
  }
763
829
  &nbsp;
764
- <span class="fstat-no" title="function not covered" > segmentExists(</span>segmentKey: SegmentKey) {
830
+ <span class="fstat-no" title="function not covered" > segmentExists(s</span>egmentKey: SegmentKey) {
765
831
  <span class="cstat-no" title="statement not covered" > return this.adapter.entityExists("segment", segmentKey);</span>
766
832
  }
767
833
  &nbsp;
@@ -769,11 +835,11 @@ export class Datasource {
769
835
  return this.adapter.readEntity&lt;Segment&gt;("segment", segmentKey);
770
836
  }
771
837
  &nbsp;
772
- <span class="fstat-no" title="function not covered" > writeSegment(</span>segmentKey: SegmentKey, segment: Segment) {
838
+ <span class="fstat-no" title="function not covered" > writeSegment(s</span>egmentKey: SegmentKey, segment: Segment) {
773
839
  <span class="cstat-no" title="statement not covered" > return this.adapter.writeEntity&lt;Segment&gt;("segment", segmentKey, segment);</span>
774
840
  }
775
841
  &nbsp;
776
- <span class="fstat-no" title="function not covered" > deleteSegment(</span>segmentKey: SegmentKey) {
842
+ <span class="fstat-no" title="function not covered" > deleteSegment(s</span>egmentKey: SegmentKey) {
777
843
  <span class="cstat-no" title="statement not covered" > return this.adapter.deleteEntity("segment", segmentKey);</span>
778
844
  }
779
845
  &nbsp;
@@ -782,7 +848,7 @@ export class Datasource {
782
848
  return this.adapter.listEntities("attribute");
783
849
  }
784
850
  &nbsp;
785
- <span class="fstat-no" title="function not covered" > async </span>listFlattenedAttributes() {
851
+ <span class="fstat-no" title="function not covered" > async l</span>istFlattenedAttributes() {
786
852
  const attributes = <span class="cstat-no" title="statement not covered" >await this.listAttributes();</span>
787
853
  const result: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
788
854
  &nbsp;
@@ -791,7 +857,7 @@ export class Datasource {
791
857
  &nbsp;
792
858
  <span class="cstat-no" title="statement not covered" > result.push(key);</span>
793
859
  &nbsp;
794
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (attribute.type === "object") {</span>
860
+ <span class="cstat-no" title="statement not covered" > if (attribute.type === "object") {</span>
795
861
  // @NOTE: in future, this can be recursive
796
862
  const propertyKeys = <span class="cstat-no" title="statement not covered" >Object.keys(attribute.properties || {});</span>
797
863
  <span class="cstat-no" title="statement not covered" > for (const propertyKey of propertyKeys) {</span>
@@ -803,7 +869,7 @@ export class Datasource {
803
869
  <span class="cstat-no" title="statement not covered" > return result;</span>
804
870
  }
805
871
  &nbsp;
806
- <span class="fstat-no" title="function not covered" > attributeExists(</span>attributeKey: AttributeKey) {
872
+ <span class="fstat-no" title="function not covered" > attributeExists(a</span>ttributeKey: AttributeKey) {
807
873
  <span class="cstat-no" title="statement not covered" > return this.adapter.entityExists("attribute", attributeKey);</span>
808
874
  }
809
875
  &nbsp;
@@ -811,11 +877,11 @@ export class Datasource {
811
877
  return this.adapter.readEntity&lt;Attribute&gt;("attribute", attributeKey);
812
878
  }
813
879
  &nbsp;
814
- <span class="fstat-no" title="function not covered" > writeAttribute(</span>attributeKey: AttributeKey, attribute: Attribute) {
880
+ <span class="fstat-no" title="function not covered" > writeAttribute(a</span>ttributeKey: AttributeKey, attribute: Attribute) {
815
881
  <span class="cstat-no" title="statement not covered" > return this.adapter.writeEntity&lt;Attribute&gt;("attribute", attributeKey, attribute);</span>
816
882
  }
817
883
  &nbsp;
818
- <span class="fstat-no" title="function not covered" > deleteAttribute(</span>attributeKey: AttributeKey) {
884
+ <span class="fstat-no" title="function not covered" > deleteAttribute(a</span>ttributeKey: AttributeKey) {
819
885
  <span class="cstat-no" title="statement not covered" > return this.adapter.deleteEntity("attribute", attributeKey);</span>
820
886
  }
821
887
  &nbsp;
@@ -824,7 +890,7 @@ export class Datasource {
824
890
  return this.adapter.listEntities("group");
825
891
  }
826
892
  &nbsp;
827
- <span class="fstat-no" title="function not covered" > groupExists(</span>groupKey: string) {
893
+ <span class="fstat-no" title="function not covered" > groupExists(g</span>roupKey: string) {
828
894
  <span class="cstat-no" title="statement not covered" > return this.adapter.entityExists("group", groupKey);</span>
829
895
  }
830
896
  &nbsp;
@@ -832,11 +898,11 @@ export class Datasource {
832
898
  return this.adapter.readEntity&lt;Group&gt;("group", groupKey);
833
899
  }
834
900
  &nbsp;
835
- <span class="fstat-no" title="function not covered" > writeGroup(</span>groupKey: string, group: Group) {
901
+ <span class="fstat-no" title="function not covered" > writeGroup(g</span>roupKey: string, group: Group) {
836
902
  <span class="cstat-no" title="statement not covered" > return this.adapter.writeEntity&lt;Group&gt;("group", groupKey, group);</span>
837
903
  }
838
904
  &nbsp;
839
- <span class="fstat-no" title="function not covered" > deleteGroup(</span>groupKey: string) {
905
+ <span class="fstat-no" title="function not covered" > deleteGroup(g</span>roupKey: string) {
840
906
  <span class="cstat-no" title="statement not covered" > return this.adapter.deleteEntity("group", groupKey);</span>
841
907
  }
842
908
  &nbsp;
@@ -845,7 +911,7 @@ export class Datasource {
845
911
  return this.adapter.listEntities("schema");
846
912
  }
847
913
  &nbsp;
848
- <span class="fstat-no" title="function not covered" > schemaExists(</span>schemaKey: SchemaKey) {
914
+ <span class="fstat-no" title="function not covered" > schemaExists(s</span>chemaKey: SchemaKey) {
849
915
  <span class="cstat-no" title="statement not covered" > return this.adapter.entityExists("schema", schemaKey);</span>
850
916
  }
851
917
  &nbsp;
@@ -853,13 +919,34 @@ export class Datasource {
853
919
  return this.adapter.readEntity&lt;Schema&gt;("schema", schemaKey);
854
920
  }
855
921
  &nbsp;
856
- <span class="fstat-no" title="function not covered" > writeSchema(</span>schemaKey: SchemaKey, schema: Schema) {
922
+ <span class="fstat-no" title="function not covered" > writeSchema(s</span>chemaKey: SchemaKey, schema: Schema) {
857
923
  <span class="cstat-no" title="statement not covered" > return this.adapter.writeEntity&lt;Schema&gt;("schema", schemaKey, schema);</span>
858
924
  }
859
925
  &nbsp;
860
- <span class="fstat-no" title="function not covered" > deleteSchema(</span>schemaKey: SchemaKey) {
926
+ <span class="fstat-no" title="function not covered" > deleteSchema(s</span>chemaKey: SchemaKey) {
861
927
  <span class="cstat-no" title="statement not covered" > return this.adapter.deleteEntity("schema", schemaKey);</span>
862
928
  }
929
+ &nbsp;
930
+ // targets
931
+ listTargets() {
932
+ return this.adapter.listEntities("target");
933
+ }
934
+ &nbsp;
935
+ <span class="fstat-no" title="function not covered" > targetExists(t</span>argetKey: TargetKey) {
936
+ <span class="cstat-no" title="statement not covered" > return this.adapter.entityExists("target", targetKey);</span>
937
+ }
938
+ &nbsp;
939
+ readTarget(targetKey: TargetKey) {
940
+ return this.adapter.readEntity&lt;Target&gt;("target", targetKey);
941
+ }
942
+ &nbsp;
943
+ writeTarget(targetKey: TargetKey, target: Target) {
944
+ return this.adapter.writeEntity&lt;Target&gt;("target", targetKey, target);
945
+ }
946
+ &nbsp;
947
+ deleteTarget(targetKey: TargetKey) {
948
+ return this.adapter.deleteEntity("target", targetKey);
949
+ }
863
950
  &nbsp;
864
951
  // tests
865
952
  listTests() {
@@ -870,24 +957,24 @@ export class Datasource {
870
957
  return this.adapter.readEntity&lt;Test&gt;("test", testKey);
871
958
  }
872
959
  &nbsp;
873
- <span class="fstat-no" title="function not covered" > writeTest(</span>testKey: string, test: Test) {
874
- <span class="cstat-no" title="statement not covered" > return this.adapter.writeEntity&lt;Test&gt;("test", testKey, test);</span>
960
+ writeTest(testKey: string, test: Test) {
961
+ return this.adapter.writeEntity&lt;Test&gt;("test", testKey, test);
875
962
  }
876
963
  &nbsp;
877
- <span class="fstat-no" title="function not covered" > deleteTest(</span>testKey: string) {
964
+ <span class="fstat-no" title="function not covered" > deleteTest(t</span>estKey: string) {
878
965
  <span class="cstat-no" title="statement not covered" > return this.adapter.deleteEntity("test", testKey);</span>
879
966
  }
880
967
  &nbsp;
881
- <span class="fstat-no" title="function not covered" > getTestSpecName(</span>testKey: string) {
968
+ <span class="fstat-no" title="function not covered" > getTestSpecName(t</span>estKey: string) {
882
969
  <span class="cstat-no" title="statement not covered" > return `${testKey}.${this.getExtension()}`;</span>
883
970
  }
884
971
  &nbsp;
885
972
  // history
886
- <span class="fstat-no" title="function not covered" > listHistoryEntries(</span>entityType?: EntityType, entityKey?: string) {
973
+ <span class="fstat-no" title="function not covered" > listHistoryEntries(e</span>ntityType?: EntityType, entityKey?: string) {
887
974
  <span class="cstat-no" title="statement not covered" > return this.adapter.listHistoryEntries(entityType, entityKey);</span>
888
975
  }
889
976
  &nbsp;
890
- <span class="fstat-no" title="function not covered" > readCommit(</span>commitHash: string, entityType?: EntityType, entityKey?: string) {
977
+ <span class="fstat-no" title="function not covered" > readCommit(c</span>ommitHash: string, entityType?: EntityType, entityKey?: string) {
891
978
  <span class="cstat-no" title="statement not covered" > return this.adapter.readCommit(commitHash, entityType, entityKey);</span>
892
979
  }
893
980
  }
@@ -898,16 +985,16 @@ export class Datasource {
898
985
  <div class='footer quiet pad2 space-top1 center small'>
899
986
  Code coverage generated by
900
987
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
901
- at 2026-04-26T16:47:51.164Z
988
+ at 2026-07-12T20:35:50.655Z
902
989
  </div>
903
- <script src="../prettify.js"></script>
990
+ <script src="../../prettify.js"></script>
904
991
  <script>
905
992
  window.onload = function () {
906
993
  prettyPrint();
907
994
  };
908
995
  </script>
909
- <script src="../sorter.js"></script>
910
- <script src="../block-navigation.js"></script>
996
+ <script src="../../sorter.js"></script>
997
+ <script src="../../block-navigation.js"></script>
911
998
  </body>
912
999
  </html>
913
1000