@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
@@ -1,598 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const mutationNotation_1 = require("./mutationNotation");
4
- describe("mutationNotation.ts", () => {
5
- describe("isMutationKey", () => {
6
- it("returns false for empty string", () => {
7
- expect((0, mutationNotation_1.isMutationKey)("")).toBe(false);
8
- });
9
- it("returns false for whitespace-only", () => {
10
- expect((0, mutationNotation_1.isMutationKey)(" ")).toBe(false);
11
- });
12
- it("returns false for plain variable name (no path, no operation)", () => {
13
- expect((0, mutationNotation_1.isMutationKey)("foo")).toBe(false);
14
- expect((0, mutationNotation_1.isMutationKey)("title")).toBe(false);
15
- expect((0, mutationNotation_1.isMutationKey)("config")).toBe(false);
16
- });
17
- it("returns true when key contains dot (path)", () => {
18
- expect((0, mutationNotation_1.isMutationKey)("foo.bar")).toBe(true);
19
- expect((0, mutationNotation_1.isMutationKey)("config.width")).toBe(true);
20
- expect((0, mutationNotation_1.isMutationKey)("a.b.c")).toBe(true);
21
- });
22
- it("returns true when key contains bracket (array index or selector)", () => {
23
- expect((0, mutationNotation_1.isMutationKey)("items[0]")).toBe(true);
24
- expect((0, mutationNotation_1.isMutationKey)("tags[1]")).toBe(true);
25
- expect((0, mutationNotation_1.isMutationKey)("items[id=1]")).toBe(true);
26
- });
27
- it("returns true when key ends with :append", () => {
28
- expect((0, mutationNotation_1.isMutationKey)("tags:append")).toBe(true);
29
- expect((0, mutationNotation_1.isMutationKey)("items:append")).toBe(true);
30
- });
31
- it("returns true when key ends with :prepend", () => {
32
- expect((0, mutationNotation_1.isMutationKey)("tags:prepend")).toBe(true);
33
- });
34
- it("returns true when key ends with :after", () => {
35
- expect((0, mutationNotation_1.isMutationKey)("items[id=1]:after")).toBe(true);
36
- });
37
- it("returns true when key ends with :before", () => {
38
- expect((0, mutationNotation_1.isMutationKey)("items[id=1]:before")).toBe(true);
39
- });
40
- it("returns true when key ends with :remove", () => {
41
- expect((0, mutationNotation_1.isMutationKey)("config.compact:remove")).toBe(true);
42
- expect((0, mutationNotation_1.isMutationKey)("items[0]:remove")).toBe(true);
43
- });
44
- it("trims input before checking", () => {
45
- expect((0, mutationNotation_1.isMutationKey)(" config.width ")).toBe(true);
46
- expect((0, mutationNotation_1.isMutationKey)(" tags:append ")).toBe(true);
47
- });
48
- });
49
- describe("parseMutationKey", () => {
50
- it("returns null for empty string", () => {
51
- expect((0, mutationNotation_1.parseMutationKey)("")).toBeNull();
52
- });
53
- it("returns null for whitespace-only", () => {
54
- expect((0, mutationNotation_1.parseMutationKey)(" ")).toBeNull();
55
- });
56
- it("parses plain variable name as rootKey only, operation set", () => {
57
- const r = (0, mutationNotation_1.parseMutationKey)("foo");
58
- expect(r).not.toBeNull();
59
- expect(r.rootKey).toBe("foo");
60
- expect(r.pathSegments).toEqual([]);
61
- expect(r.allSegments).toEqual([{ key: "foo" }]);
62
- expect(r.operation).toBe("set");
63
- });
64
- it("parses dot path: rootKey and single path segment", () => {
65
- const r = (0, mutationNotation_1.parseMutationKey)("config.width");
66
- expect(r).not.toBeNull();
67
- expect(r.rootKey).toBe("config");
68
- expect(r.pathSegments).toEqual([{ key: "width" }]);
69
- expect(r.allSegments).toEqual([{ key: "config" }, { key: "width" }]);
70
- expect(r.operation).toBe("set");
71
- });
72
- it("parses deep dot path", () => {
73
- const r = (0, mutationNotation_1.parseMutationKey)("settings.display.fontSize");
74
- expect(r).not.toBeNull();
75
- expect(r.rootKey).toBe("settings");
76
- expect(r.pathSegments).toEqual([{ key: "display" }, { key: "fontSize" }]);
77
- expect(r.allSegments).toEqual([
78
- { key: "settings" },
79
- { key: "display" },
80
- { key: "fontSize" },
81
- ]);
82
- });
83
- it("parses array index notation", () => {
84
- const r = (0, mutationNotation_1.parseMutationKey)("items[0]");
85
- expect(r).not.toBeNull();
86
- expect(r.rootKey).toBe("items");
87
- expect(r.pathSegments).toEqual([{ key: "", index: 0 }]);
88
- expect(r.allSegments).toEqual([{ key: "items", index: 0 }]);
89
- expect(r.operation).toBe("set");
90
- });
91
- it("parses array index then property", () => {
92
- const r = (0, mutationNotation_1.parseMutationKey)("items[0].name");
93
- expect(r).not.toBeNull();
94
- expect(r.rootKey).toBe("items");
95
- expect(r.pathSegments).toEqual([{ key: "", index: 0 }, { key: "name" }]);
96
- expect(r.allSegments).toEqual([{ key: "items", index: 0 }, { key: "name" }]);
97
- });
98
- it("parses selector notation", () => {
99
- const r = (0, mutationNotation_1.parseMutationKey)("items[id=1]");
100
- expect(r).not.toBeNull();
101
- expect(r.rootKey).toBe("items");
102
- expect(r.pathSegments).toEqual([{ key: "", selector: { prop: "id", value: "1" } }]);
103
- expect(r.allSegments).toEqual([{ key: "items", selector: { prop: "id", value: "1" } }]);
104
- });
105
- it("parses key starting with bracket (root-level array segment)", () => {
106
- const r = (0, mutationNotation_1.parseMutationKey)("[0].name");
107
- expect(r).not.toBeNull();
108
- expect(r.rootKey).toBe("");
109
- expect(r.pathSegments).toEqual([{ key: "", index: 0 }, { key: "name" }]);
110
- expect(r.allSegments).toEqual([{ key: "", index: 0 }, { key: "name" }]);
111
- });
112
- it("parses :append operation", () => {
113
- const r = (0, mutationNotation_1.parseMutationKey)("tags:append");
114
- expect(r).not.toBeNull();
115
- expect(r.rootKey).toBe("tags");
116
- expect(r.pathSegments).toEqual([]);
117
- expect(r.operation).toBe("append");
118
- });
119
- it("parses :prepend operation", () => {
120
- const r = (0, mutationNotation_1.parseMutationKey)("tags:prepend");
121
- expect(r).not.toBeNull();
122
- expect(r.rootKey).toBe("tags");
123
- expect(r.operation).toBe("prepend");
124
- });
125
- it("parses :remove on property", () => {
126
- const r = (0, mutationNotation_1.parseMutationKey)("config.compact:remove");
127
- expect(r).not.toBeNull();
128
- expect(r.rootKey).toBe("config");
129
- expect(r.pathSegments).toEqual([{ key: "compact" }]);
130
- expect(r.operation).toBe("remove");
131
- });
132
- it("parses :remove on array index", () => {
133
- const r = (0, mutationNotation_1.parseMutationKey)("items[2]:remove");
134
- expect(r).not.toBeNull();
135
- expect(r.rootKey).toBe("items");
136
- expect(r.pathSegments).toEqual([{ key: "", index: 2 }]);
137
- expect(r.operation).toBe("remove");
138
- });
139
- it("parses :after with selector", () => {
140
- const r = (0, mutationNotation_1.parseMutationKey)("items[id=2]:after");
141
- expect(r).not.toBeNull();
142
- expect(r.rootKey).toBe("items");
143
- expect(r.pathSegments).toEqual([{ key: "", selector: { prop: "id", value: "2" } }]);
144
- expect(r.operation).toBe("after");
145
- });
146
- it("parses :before with selector", () => {
147
- const r = (0, mutationNotation_1.parseMutationKey)("items[id=2]:before");
148
- expect(r).not.toBeNull();
149
- expect(r.operation).toBe("before");
150
- });
151
- it("trims input", () => {
152
- const r = (0, mutationNotation_1.parseMutationKey)(" config.width ");
153
- expect(r).not.toBeNull();
154
- expect(r.rootKey).toBe("config");
155
- expect(r.pathSegments).toEqual([{ key: "width" }]);
156
- });
157
- });
158
- describe("resolveSchemaAtPath", () => {
159
- const objectSchema = {
160
- type: "object",
161
- properties: {
162
- width: { type: "integer" },
163
- theme: { type: "string" },
164
- nested: {
165
- type: "object",
166
- properties: {
167
- deep: { type: "string" },
168
- },
169
- },
170
- },
171
- };
172
- const arraySchema = {
173
- type: "array",
174
- items: {
175
- type: "object",
176
- properties: {
177
- id: { type: "string" },
178
- name: { type: "string" },
179
- },
180
- },
181
- };
182
- it("returns null when variableSchema is null", () => {
183
- expect((0, mutationNotation_1.resolveSchemaAtPath)(null, [])).toBeNull();
184
- expect((0, mutationNotation_1.resolveSchemaAtPath)(null, [{ key: "width" }])).toBeNull();
185
- });
186
- it("returns resolved schema for empty path (root)", () => {
187
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(objectSchema, []);
188
- expect(result).toEqual(objectSchema);
189
- });
190
- it("resolves schema ref when variableSchema has schema key and schemasByKey provided", () => {
191
- const refSchema = { type: "object", properties: { x: { type: "string" } } };
192
- const variableSchema = { schema: "MyRef" };
193
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(variableSchema, [], { MyRef: refSchema });
194
- expect(result).toEqual(refSchema);
195
- });
196
- it("returns unresolved ref object when schema ref is missing in schemasByKey (no resolution)", () => {
197
- const variableSchema = { schema: "Missing" };
198
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(variableSchema, [], {});
199
- expect(result).toEqual(variableSchema);
200
- });
201
- it("resolves one level of path (object property)", () => {
202
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(objectSchema, [{ key: "width" }]);
203
- expect(result).toEqual({ type: "integer" });
204
- });
205
- it("resolves nested path", () => {
206
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(objectSchema, [{ key: "nested" }, { key: "deep" }]);
207
- expect(result).toEqual({ type: "string" });
208
- });
209
- it("returns null when path property does not exist", () => {
210
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(objectSchema, [{ key: "unknown" }]);
211
- expect(result).toBeNull();
212
- });
213
- it("resolves unknown object key via additionalProperties", () => {
214
- const result = (0, mutationNotation_1.resolveSchemaAtPath)({
215
- type: "object",
216
- additionalProperties: { type: "string" },
217
- }, [{ key: "dynamicKey" }]);
218
- expect(result).toEqual({ type: "string" });
219
- });
220
- it("returns null when stepping into non-object", () => {
221
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(objectSchema, [{ key: "width" }, { key: "foo" }]);
222
- expect(result).toBeNull();
223
- });
224
- it("resolves array items schema for index segment", () => {
225
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(arraySchema, [{ key: "", index: 0 }]);
226
- expect(result).toEqual({
227
- type: "object",
228
- properties: { id: { type: "string" }, name: { type: "string" } },
229
- });
230
- });
231
- it("resolves array item then property", () => {
232
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(arraySchema, [{ key: "", index: 0 }, { key: "name" }]);
233
- expect(result).toEqual({ type: "string" });
234
- });
235
- it("returns null when stepping into non-array with index segment", () => {
236
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(objectSchema, [{ key: "", index: 0 }]);
237
- expect(result).toBeNull();
238
- });
239
- it("returns null when schema has oneOf (path through oneOf invalid)", () => {
240
- const oneOfSchema = {
241
- oneOf: [{ type: "string" }, { type: "integer" }],
242
- };
243
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(oneOfSchema, [{ key: "any" }]);
244
- expect(result).toBeNull();
245
- });
246
- it("resolves nested ref in properties when schemasByKey provided", () => {
247
- const linkSchema = { type: "object", properties: { url: { type: "string" } } };
248
- const root = {
249
- type: "object",
250
- properties: {
251
- mainLink: { schema: "Link" },
252
- },
253
- };
254
- const result = (0, mutationNotation_1.resolveSchemaAtPath)(root, [{ key: "mainLink" }], { Link: linkSchema });
255
- expect(result).toEqual(linkSchema);
256
- });
257
- });
258
- describe("parsePathMapKey", () => {
259
- it("returns null for empty string", () => {
260
- expect((0, mutationNotation_1.parsePathMapKey)("")).toBeNull();
261
- });
262
- it("returns null when parseMutationKey returns null", () => {
263
- expect((0, mutationNotation_1.parsePathMapKey)(" ")).toBeNull();
264
- });
265
- it("parses dot path into segments", () => {
266
- expect((0, mutationNotation_1.parsePathMapKey)("display.fontSize")).toEqual([
267
- { key: "display" },
268
- { key: "fontSize" },
269
- ]);
270
- });
271
- it("parses bracket-first path", () => {
272
- expect((0, mutationNotation_1.parsePathMapKey)("[0].name")).toEqual([{ key: "", index: 0 }, { key: "name" }]);
273
- });
274
- it("parses single key", () => {
275
- expect((0, mutationNotation_1.parsePathMapKey)("label")).toEqual([{ key: "label" }]);
276
- });
277
- it("parses deep path", () => {
278
- expect((0, mutationNotation_1.parsePathMapKey)("config.nested.deep")).toEqual([
279
- { key: "config" },
280
- { key: "nested" },
281
- { key: "deep" },
282
- ]);
283
- });
284
- it("parses path with array index in middle", () => {
285
- expect((0, mutationNotation_1.parsePathMapKey)("rows[1].label")).toEqual([
286
- { key: "rows", index: 1 },
287
- { key: "label" },
288
- ]);
289
- });
290
- });
291
- describe("validateMutationKey", () => {
292
- const objectSchema = {
293
- type: "object",
294
- properties: {
295
- theme: { type: "string" },
296
- compact: { type: "boolean" },
297
- width: { type: "integer" },
298
- },
299
- required: ["compact"],
300
- };
301
- const arraySchema = {
302
- type: "array",
303
- items: { type: "string" },
304
- };
305
- const arrayOfObjectsSchema = {
306
- type: "array",
307
- items: {
308
- type: "object",
309
- properties: { id: { type: "string" }, name: { type: "string" } },
310
- },
311
- };
312
- const nestedObjectSchema = {
313
- type: "object",
314
- properties: {
315
- config: {
316
- type: "object",
317
- properties: {
318
- width: { type: "integer" },
319
- optionalKey: { type: "string" },
320
- },
321
- required: ["width"],
322
- },
323
- },
324
- };
325
- const variableSchemaByKey = {
326
- config: objectSchema,
327
- tags: arraySchema,
328
- items: arrayOfObjectsSchema,
329
- settings: nestedObjectSchema,
330
- partialMutationShowcase: {
331
- type: "object",
332
- properties: {
333
- rows: {
334
- type: "array",
335
- items: {
336
- type: "object",
337
- properties: {
338
- id: { type: "integer" },
339
- label: { type: "string" },
340
- },
341
- },
342
- },
343
- },
344
- },
345
- };
346
- it("returns invalid when key is empty (parseMutationKey null)", () => {
347
- const r = (0, mutationNotation_1.validateMutationKey)("", variableSchemaByKey);
348
- expect(r.valid).toBe(false);
349
- expect(r.error).toContain("Invalid mutation notation");
350
- expect(r.operation).toBe("set");
351
- });
352
- it("returns invalid when key has no root (e.g. [0] only)", () => {
353
- const r = (0, mutationNotation_1.validateMutationKey)("[0]", variableSchemaByKey);
354
- expect(r.valid).toBe(false);
355
- expect(r.error).toContain("must start with a variable name");
356
- });
357
- it("returns invalid when root variable is not in variablesSchema", () => {
358
- const r = (0, mutationNotation_1.validateMutationKey)("unknownVar.foo", variableSchemaByKey);
359
- expect(r.valid).toBe(false);
360
- expect(r.error).toContain("not defined in");
361
- expect(r.rootKey).toBe("unknownVar");
362
- });
363
- it("returns invalid when variable has schema ref but path fails (unresolved ref has no properties)", () => {
364
- const schemas = {
365
- myVar: { schema: "MissingRef" },
366
- };
367
- const r = (0, mutationNotation_1.validateMutationKey)("myVar.foo", schemas, {});
368
- expect(r.valid).toBe(false);
369
- expect(r.error).toMatch(/path does not exist|could not be loaded/);
370
- expect(r.error).toContain("myVar");
371
- });
372
- it("returns invalid when root schema is oneOf and path has segments", () => {
373
- const schemas = {
374
- oneOfVar: { oneOf: [{ type: "string" }, { type: "integer" }] },
375
- };
376
- const r = (0, mutationNotation_1.validateMutationKey)("oneOfVar.foo", schemas);
377
- expect(r.valid).toBe(false);
378
- expect(r.error).toContain("oneOf");
379
- expect(r.error).toContain("path resolution not defined");
380
- });
381
- describe("operation: set", () => {
382
- it("valid when setting whole variable (no path)", () => {
383
- const r = (0, mutationNotation_1.validateMutationKey)("config", variableSchemaByKey);
384
- expect(r.valid).toBe(true);
385
- expect(r.operation).toBe("set");
386
- expect(r.valueSchema).toEqual(objectSchema);
387
- });
388
- it("valid when path exists in schema", () => {
389
- const r = (0, mutationNotation_1.validateMutationKey)("config.width", variableSchemaByKey);
390
- expect(r.valid).toBe(true);
391
- expect(r.valueSchema).toEqual({ type: "integer" });
392
- });
393
- it("invalid when path does not exist", () => {
394
- const r = (0, mutationNotation_1.validateMutationKey)("config.nonexistent", variableSchemaByKey);
395
- expect(r.valid).toBe(false);
396
- expect(r.error).toContain("path does not exist");
397
- });
398
- it("valid when path uses additionalProperties", () => {
399
- const schemas = {
400
- labels: {
401
- type: "object",
402
- additionalProperties: { type: "string" },
403
- },
404
- };
405
- const r = (0, mutationNotation_1.validateMutationKey)("labels.headline", schemas);
406
- expect(r.valid).toBe(true);
407
- expect(r.valueSchema).toEqual({ type: "string" });
408
- });
409
- it("invalid when target schema is oneOf", () => {
410
- const schemas = {
411
- x: {
412
- type: "object",
413
- properties: {
414
- choice: { oneOf: [{ type: "string" }, { type: "integer" }] },
415
- },
416
- },
417
- };
418
- const r = (0, mutationNotation_1.validateMutationKey)("x.choice", schemas);
419
- expect(r.valid).toBe(false);
420
- expect(r.error).toContain("oneOf");
421
- expect(r.error).toContain("mutation target must be a single schema");
422
- });
423
- });
424
- describe("operation: append / prepend", () => {
425
- it("valid on root array variable", () => {
426
- const rAppend = (0, mutationNotation_1.validateMutationKey)("tags:append", variableSchemaByKey);
427
- expect(rAppend.valid).toBe(true);
428
- expect(rAppend.operation).toBe("append");
429
- expect(rAppend.valueSchema).toEqual({ type: "string" });
430
- const rPrepend = (0, mutationNotation_1.validateMutationKey)("tags:prepend", variableSchemaByKey);
431
- expect(rPrepend.valid).toBe(true);
432
- expect(rPrepend.operation).toBe("prepend");
433
- expect(rPrepend.valueSchema).toEqual({ type: "string" });
434
- });
435
- it("invalid when path does not exist", () => {
436
- const r = (0, mutationNotation_1.validateMutationKey)("config.nested:append", variableSchemaByKey);
437
- expect(r.valid).toBe(false);
438
- expect(r.error).toContain("path does not exist");
439
- });
440
- it("invalid when path points to non-array", () => {
441
- const r = (0, mutationNotation_1.validateMutationKey)("config.width:append", variableSchemaByKey);
442
- expect(r.valid).toBe(false);
443
- expect(r.error).toContain("only allowed on array");
444
- expect(r.error).toContain("does not point to an array");
445
- });
446
- it("valid when array items is oneOf (valueSchema is the oneOf schema)", () => {
447
- const oneOfItems = {
448
- oneOf: [{ type: "string" }, { type: "integer" }],
449
- };
450
- const schemas = {
451
- arr: {
452
- type: "array",
453
- items: oneOfItems,
454
- },
455
- };
456
- const r = (0, mutationNotation_1.validateMutationKey)("arr:append", schemas);
457
- expect(r.valid).toBe(true);
458
- expect(r.valueSchema).toEqual(oneOfItems);
459
- });
460
- it("valid on nested array path when schema has array at that path", () => {
461
- const schemas = {
462
- root: {
463
- type: "object",
464
- properties: {
465
- list: { type: "array", items: { type: "string" } },
466
- },
467
- },
468
- };
469
- const r = (0, mutationNotation_1.validateMutationKey)("root.list:append", schemas);
470
- expect(r.valid).toBe(true);
471
- expect(r.valueSchema).toEqual({ type: "string" });
472
- });
473
- });
474
- describe("operation: after / before", () => {
475
- it("valid on array with index segment", () => {
476
- const r = (0, mutationNotation_1.validateMutationKey)("items[1]:after", variableSchemaByKey);
477
- expect(r.valid).toBe(true);
478
- expect(r.operation).toBe("after");
479
- expect(r.valueSchema).toEqual({
480
- type: "object",
481
- properties: { id: { type: "string" }, name: { type: "string" } },
482
- });
483
- });
484
- it("valid on array with selector segment", () => {
485
- const r = (0, mutationNotation_1.validateMutationKey)("items[id=2]:before", variableSchemaByKey);
486
- expect(r.valid).toBe(true);
487
- expect(r.operation).toBe("before");
488
- });
489
- it("valid on nested array selector segment in object variable", () => {
490
- const r = (0, mutationNotation_1.validateMutationKey)("partialMutationShowcase.rows[id=1]:after", variableSchemaByKey);
491
- expect(r.valid).toBe(true);
492
- expect(r.operation).toBe("after");
493
- expect(r.valueSchema).toEqual({
494
- type: "object",
495
- properties: {
496
- id: { type: "integer" },
497
- label: { type: "string" },
498
- },
499
- });
500
- });
501
- it("invalid when path does not exist or does not point to array element", () => {
502
- const r = (0, mutationNotation_1.validateMutationKey)("config.fake[0]:after", variableSchemaByKey);
503
- expect(r.valid).toBe(false);
504
- expect(r.error).toMatch(/path does not exist|does not point to an array/);
505
- });
506
- it("invalid when array items is oneOf", () => {
507
- const schemas = {
508
- arr: {
509
- type: "array",
510
- items: { oneOf: [{ type: "string" }] },
511
- },
512
- };
513
- const r = (0, mutationNotation_1.validateMutationKey)("arr[0]:after", schemas);
514
- expect(r.valid).toBe(false);
515
- expect(r.error).toContain("oneOf");
516
- });
517
- });
518
- describe("operation: remove", () => {
519
- it("valid when removing optional object property", () => {
520
- const r = (0, mutationNotation_1.validateMutationKey)("settings.config.optionalKey:remove", variableSchemaByKey);
521
- expect(r.valid).toBe(true);
522
- expect(r.operation).toBe("remove");
523
- expect(r.valueSchema).toBeNull();
524
- });
525
- it("invalid when removing required object property", () => {
526
- const r = (0, mutationNotation_1.validateMutationKey)("config.compact:remove", variableSchemaByKey);
527
- expect(r.valid).toBe(false);
528
- expect(r.error).toContain("Cannot remove required property");
529
- expect(r.error).toContain("compact");
530
- expect(r.error).toContain("required");
531
- });
532
- it("invalid when removing required nested property", () => {
533
- const r = (0, mutationNotation_1.validateMutationKey)("settings.config.width:remove", variableSchemaByKey);
534
- expect(r.valid).toBe(false);
535
- expect(r.error).toContain("Cannot remove required property");
536
- expect(r.error).toContain("width");
537
- });
538
- it("valid when removing array element by index", () => {
539
- const r = (0, mutationNotation_1.validateMutationKey)("items[0]:remove", variableSchemaByKey);
540
- expect(r.valid).toBe(true);
541
- expect(r.operation).toBe("remove");
542
- expect(r.valueSchema).toBeNull();
543
- });
544
- it("valid when removing array element by selector", () => {
545
- const r = (0, mutationNotation_1.validateMutationKey)("items[id=1]:remove", variableSchemaByKey);
546
- expect(r.valid).toBe(true);
547
- });
548
- it("valid when removing nested array element by selector", () => {
549
- const r = (0, mutationNotation_1.validateMutationKey)("partialMutationShowcase.rows[id=2]:remove", variableSchemaByKey);
550
- expect(r.valid).toBe(true);
551
- });
552
- it("invalid when path does not exist", () => {
553
- const r = (0, mutationNotation_1.validateMutationKey)("config.bad:remove", variableSchemaByKey);
554
- expect(r.valid).toBe(false);
555
- expect(r.error).toContain("path does not exist");
556
- });
557
- });
558
- describe("with schema ref resolution", () => {
559
- it("valid when variable schema is ref and schemasByKey resolves it", () => {
560
- const resolvedSchema = {
561
- type: "object",
562
- properties: { title: { type: "string" }, url: { type: "string" } },
563
- };
564
- const schemas = {
565
- link: { schema: "Link" },
566
- };
567
- const r = (0, mutationNotation_1.validateMutationKey)("link.title", schemas, { Link: resolvedSchema });
568
- expect(r.valid).toBe(true);
569
- expect(r.valueSchema).toEqual({ type: "string" });
570
- });
571
- it("valid set on resolved ref root", () => {
572
- const resolvedSchema = { type: "object", properties: { x: { type: "string" } } };
573
- const schemas = { v: { schema: "R" } };
574
- const r = (0, mutationNotation_1.validateMutationKey)("v", schemas, { R: resolvedSchema });
575
- expect(r.valid).toBe(true);
576
- expect(r.valueSchema).toEqual(resolvedSchema);
577
- });
578
- });
579
- describe("edge cases", () => {
580
- it("valid for nested path set when all steps exist", () => {
581
- const r = (0, mutationNotation_1.validateMutationKey)("settings.config.width", variableSchemaByKey);
582
- expect(r.valid).toBe(true);
583
- expect(r.valueSchema).toEqual({ type: "integer" });
584
- });
585
- it("invalid for path into primitive (no properties)", () => {
586
- const r = (0, mutationNotation_1.validateMutationKey)("config.theme.foo", variableSchemaByKey);
587
- expect(r.valid).toBe(false);
588
- });
589
- it("returns correct pathSegments and rootKey in result", () => {
590
- const r = (0, mutationNotation_1.validateMutationKey)("config.theme", variableSchemaByKey);
591
- expect(r.valid).toBe(true);
592
- expect(r.rootKey).toBe("config");
593
- expect(r.pathSegments).toEqual([{ key: "theme" }]);
594
- });
595
- });
596
- });
597
- });
598
- //# sourceMappingURL=mutationNotation.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutationNotation.spec.js","sourceRoot":"","sources":["../../src/linter/mutationNotation.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};