@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,535 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Unit tests for standalone schema validation (schemas/*.yml).
5
- * Covers getSchemaZodSchema and the refinement helpers: refineEnumMatchesType,
6
- * refineMinimumMaximum, refineStringLengthPattern, refineArrayItems.
7
- */
8
- const zod_1 = require("zod");
9
- const schema_1 = require("./schema");
10
- /** Build a refinement context that collects issues for assertion. */
11
- function createRefinementCtx() {
12
- const issues = [];
13
- const ctx = {
14
- addIssue(issue) {
15
- if (typeof issue !== "string") {
16
- issues.push(issue);
17
- }
18
- },
19
- };
20
- return { issues, ctx };
21
- }
22
- /** Return human-readable message from a Zod issue (custom or default). */
23
- function issueMessage(issue) {
24
- if (issue.code === zod_1.z.ZodIssueCode.custom && typeof issue.message === "string") {
25
- return issue.message;
26
- }
27
- return issue.message ?? "";
28
- }
29
- describe("schema.ts :: valueZodSchema and propertyTypeEnum", () => {
30
- describe("valueZodSchema", () => {
31
- it("accepts boolean, string, number", () => {
32
- expect(schema_1.valueZodSchema.safeParse(true).success).toBe(true);
33
- expect(schema_1.valueZodSchema.safeParse("x").success).toBe(true);
34
- expect(schema_1.valueZodSchema.safeParse(1).success).toBe(true);
35
- });
36
- it("accepts plain objects and arrays of values", () => {
37
- expect(schema_1.valueZodSchema.safeParse({ a: 1 }).success).toBe(true);
38
- expect(schema_1.valueZodSchema.safeParse([1, "b"]).success).toBe(true);
39
- });
40
- it("rejects null at top level", () => {
41
- const r = schema_1.valueZodSchema.safeParse(null);
42
- expect(r.success).toBe(false);
43
- });
44
- });
45
- describe("propertyTypeEnum", () => {
46
- it("accepts allowed types", () => {
47
- expect(schema_1.propertyTypeEnum.safeParse("string").success).toBe(true);
48
- expect(schema_1.propertyTypeEnum.safeParse("array").success).toBe(true);
49
- expect(schema_1.propertyTypeEnum.safeParse("object").success).toBe(true);
50
- });
51
- it("rejects invalid type", () => {
52
- expect(schema_1.propertyTypeEnum.safeParse("date").success).toBe(false);
53
- });
54
- });
55
- });
56
- describe("schema.ts :: refineEnumMatchesType", () => {
57
- it("adds no issue when enum values match type string", () => {
58
- const { issues, ctx } = createRefinementCtx();
59
- (0, schema_1.refineEnumMatchesType)({ type: "string", enum: ["a", "b"] }, [], ctx);
60
- expect(issues).toHaveLength(0);
61
- });
62
- it("adds no issue when enum values match type integer", () => {
63
- const { issues, ctx } = createRefinementCtx();
64
- (0, schema_1.refineEnumMatchesType)({ type: "integer", enum: [1, 2, 3] }, [], ctx);
65
- expect(issues).toHaveLength(0);
66
- });
67
- it("adds issue when an enum value does not match type", () => {
68
- const { issues, ctx } = createRefinementCtx();
69
- (0, schema_1.refineEnumMatchesType)({ type: "string", enum: ["a", 2, "c"] }, [], ctx);
70
- expect(issues).toHaveLength(1);
71
- expect(issueMessage(issues[0])).toContain("index 1");
72
- expect(issueMessage(issues[0])).toContain('does not match type "string"');
73
- expect(issues[0].path).toEqual(["enum", 1]);
74
- });
75
- it("adds issue for each enum value that does not match type", () => {
76
- const { issues, ctx } = createRefinementCtx();
77
- (0, schema_1.refineEnumMatchesType)({ type: "boolean", enum: [true, "yes", false] }, [], ctx);
78
- expect(issues.length).toBeGreaterThanOrEqual(1);
79
- expect(issues.some((i) => issueMessage(i).includes("index 1"))).toBe(true);
80
- });
81
- it("recurses into items and adds issue for enum mismatch in items", () => {
82
- const { issues, ctx } = createRefinementCtx();
83
- (0, schema_1.refineEnumMatchesType)({
84
- type: "array",
85
- items: { type: "integer", enum: [1, "two", 3] },
86
- }, [], ctx);
87
- expect(issues).toHaveLength(1);
88
- expect(issues[0].path).toEqual(["items", "enum", 1]);
89
- });
90
- it("recurses into properties and adds issue for enum mismatch in property", () => {
91
- const { issues, ctx } = createRefinementCtx();
92
- (0, schema_1.refineEnumMatchesType)({
93
- type: "object",
94
- properties: {
95
- level: { type: "integer", enum: [1, 2, 3.5] },
96
- },
97
- }, [], ctx);
98
- expect(issues).toHaveLength(1);
99
- expect(issues[0].path).toEqual(["properties", "level", "enum", 2]);
100
- });
101
- it("recurses into oneOf branches", () => {
102
- const { issues, ctx } = createRefinementCtx();
103
- (0, schema_1.refineEnumMatchesType)({
104
- oneOf: [
105
- { type: "string", enum: ["a", "b"] },
106
- { type: "integer", enum: [1, "two"] },
107
- ],
108
- }, [], ctx);
109
- expect(issues).toHaveLength(1);
110
- expect(issues[0].path).toEqual(["oneOf", 1, "enum", 1]);
111
- });
112
- it("recurses into additionalProperties", () => {
113
- const { issues, ctx } = createRefinementCtx();
114
- (0, schema_1.refineEnumMatchesType)({
115
- type: "object",
116
- additionalProperties: { type: "string", enum: ["a", 1] },
117
- }, [], ctx);
118
- expect(issues).toHaveLength(1);
119
- expect(issues[0].path).toEqual(["additionalProperties", "enum", 1]);
120
- });
121
- it("does nothing when schema is null or not an object", () => {
122
- const { issues: i1, ctx: c1 } = createRefinementCtx();
123
- (0, schema_1.refineEnumMatchesType)(null, [], c1);
124
- expect(i1).toHaveLength(0);
125
- const { issues: i2, ctx: c2 } = createRefinementCtx();
126
- (0, schema_1.refineEnumMatchesType)({ type: "string" }, [], c2);
127
- expect(i2).toHaveLength(0);
128
- });
129
- });
130
- describe("schema.ts :: refineMinimumMaximum", () => {
131
- it("adds no issue when minimum <= maximum", () => {
132
- const { issues, ctx } = createRefinementCtx();
133
- (0, schema_1.refineMinimumMaximum)({ type: "integer", minimum: 0, maximum: 10 }, [], ctx);
134
- expect(issues).toHaveLength(0);
135
- });
136
- it("adds issue when minimum > maximum for integer", () => {
137
- const { issues, ctx } = createRefinementCtx();
138
- (0, schema_1.refineMinimumMaximum)({ type: "integer", minimum: 10, maximum: 5 }, [], ctx);
139
- expect(issues).toHaveLength(1);
140
- expect(issueMessage(issues[0])).toContain("minimum");
141
- expect(issueMessage(issues[0])).toContain("maximum");
142
- expect(issues[0].path).toEqual(["minimum"]);
143
- });
144
- it("adds issue when minimum > maximum for double", () => {
145
- const { issues, ctx } = createRefinementCtx();
146
- (0, schema_1.refineMinimumMaximum)({ type: "double", minimum: 1.5, maximum: 1.0 }, [], ctx);
147
- expect(issues).toHaveLength(1);
148
- });
149
- it("adds issue when const is less than minimum", () => {
150
- const { issues, ctx } = createRefinementCtx();
151
- (0, schema_1.refineMinimumMaximum)({ type: "integer", minimum: 10, const: 5 }, [], ctx);
152
- expect(issues).toHaveLength(1);
153
- expect(issueMessage(issues[0])).toContain("const");
154
- expect(issueMessage(issues[0])).toContain("minimum");
155
- });
156
- it("adds issue when const is greater than maximum", () => {
157
- const { issues, ctx } = createRefinementCtx();
158
- (0, schema_1.refineMinimumMaximum)({ type: "integer", maximum: 10, const: 15 }, [], ctx);
159
- expect(issues).toHaveLength(1);
160
- });
161
- it("adds issue when an enum value is out of range", () => {
162
- const { issues, ctx } = createRefinementCtx();
163
- (0, schema_1.refineMinimumMaximum)({ type: "integer", minimum: 1, maximum: 5, enum: [1, 3, 10] }, [], ctx);
164
- expect(issues).toHaveLength(1);
165
- expect(issueMessage(issues[0])).toContain("index 2");
166
- expect(issueMessage(issues[0])).toContain("maximum");
167
- });
168
- it("does nothing for non-numeric types", () => {
169
- const { issues, ctx } = createRefinementCtx();
170
- (0, schema_1.refineMinimumMaximum)({ type: "string", minimum: 0, maximum: 10 }, [], ctx);
171
- expect(issues).toHaveLength(0);
172
- });
173
- it("recurses into items", () => {
174
- const { issues, ctx } = createRefinementCtx();
175
- (0, schema_1.refineMinimumMaximum)({
176
- type: "array",
177
- items: { type: "integer", minimum: 20, maximum: 10 },
178
- }, [], ctx);
179
- expect(issues).toHaveLength(1);
180
- expect(issues[0].path).toEqual(["items", "minimum"]);
181
- });
182
- it("recurses into additionalProperties", () => {
183
- const { issues, ctx } = createRefinementCtx();
184
- (0, schema_1.refineMinimumMaximum)({
185
- type: "object",
186
- additionalProperties: { type: "integer", minimum: 10, maximum: 5 },
187
- }, [], ctx);
188
- expect(issues).toHaveLength(1);
189
- expect(issues[0].path).toEqual(["additionalProperties", "minimum"]);
190
- });
191
- });
192
- describe("schema.ts :: refineStringLengthPattern", () => {
193
- it("adds no issue when minLength <= maxLength", () => {
194
- const { issues, ctx } = createRefinementCtx();
195
- (0, schema_1.refineStringLengthPattern)({ type: "string", minLength: 1, maxLength: 10 }, [], ctx);
196
- expect(issues).toHaveLength(0);
197
- });
198
- it("adds issue when minLength > maxLength", () => {
199
- const { issues, ctx } = createRefinementCtx();
200
- (0, schema_1.refineStringLengthPattern)({ type: "string", minLength: 10, maxLength: 5 }, [], ctx);
201
- expect(issues).toHaveLength(1);
202
- expect(issueMessage(issues[0])).toContain("minLength");
203
- expect(issues[0].path).toEqual(["minLength"]);
204
- });
205
- it("adds issue when pattern is invalid regex", () => {
206
- const { issues, ctx } = createRefinementCtx();
207
- (0, schema_1.refineStringLengthPattern)({ type: "string", pattern: "[" }, [], ctx);
208
- expect(issues).toHaveLength(1);
209
- expect(issueMessage(issues[0])).toContain("pattern");
210
- expect(issueMessage(issues[0])).toContain("invalid");
211
- });
212
- it("adds no issue when pattern is valid", () => {
213
- const { issues, ctx } = createRefinementCtx();
214
- (0, schema_1.refineStringLengthPattern)({ type: "string", pattern: "^[a-z]+$" }, [], ctx);
215
- expect(issues).toHaveLength(0);
216
- });
217
- it("adds issue when const string is shorter than minLength", () => {
218
- const { issues, ctx } = createRefinementCtx();
219
- (0, schema_1.refineStringLengthPattern)({ type: "string", minLength: 5, const: "ab" }, [], ctx);
220
- expect(issues).toHaveLength(1);
221
- expect(issueMessage(issues[0])).toContain("const");
222
- });
223
- it("adds issue when const string is longer than maxLength", () => {
224
- const { issues, ctx } = createRefinementCtx();
225
- (0, schema_1.refineStringLengthPattern)({ type: "string", maxLength: 2, const: "hello" }, [], ctx);
226
- expect(issues).toHaveLength(1);
227
- });
228
- it("adds issue when const string does not match pattern", () => {
229
- const { issues, ctx } = createRefinementCtx();
230
- (0, schema_1.refineStringLengthPattern)({ type: "string", pattern: "^[0-9]+$", const: "abc" }, [], ctx);
231
- expect(issues).toHaveLength(1);
232
- expect(issueMessage(issues[0])).toContain("pattern");
233
- });
234
- it("adds issue when an enum string value violates length or pattern", () => {
235
- const { issues, ctx } = createRefinementCtx();
236
- (0, schema_1.refineStringLengthPattern)({ type: "string", maxLength: 2, enum: ["a", "abc", "b"] }, [], ctx);
237
- expect(issues).toHaveLength(1);
238
- expect(issueMessage(issues[0])).toContain("index 1");
239
- });
240
- it("recurses into items and properties", () => {
241
- const { issues, ctx } = createRefinementCtx();
242
- (0, schema_1.refineStringLengthPattern)({
243
- type: "object",
244
- properties: {
245
- code: { type: "string", minLength: 10, maxLength: 5 },
246
- },
247
- }, [], ctx);
248
- expect(issues).toHaveLength(1);
249
- expect(issues[0].path).toEqual(["properties", "code", "minLength"]);
250
- });
251
- it("recurses into additionalProperties", () => {
252
- const { issues, ctx } = createRefinementCtx();
253
- (0, schema_1.refineStringLengthPattern)({
254
- type: "object",
255
- additionalProperties: { type: "string", minLength: 10, maxLength: 5 },
256
- }, [], ctx);
257
- expect(issues).toHaveLength(1);
258
- expect(issues[0].path).toEqual(["additionalProperties", "minLength"]);
259
- });
260
- });
261
- describe("schema.ts :: refineArrayItems", () => {
262
- it("adds no issue when minItems <= maxItems", () => {
263
- const { issues, ctx } = createRefinementCtx();
264
- (0, schema_1.refineArrayItems)({ type: "array", minItems: 0, maxItems: 10 }, [], ctx);
265
- expect(issues).toHaveLength(0);
266
- });
267
- it("adds issue when minItems > maxItems", () => {
268
- const { issues, ctx } = createRefinementCtx();
269
- (0, schema_1.refineArrayItems)({ type: "array", minItems: 10, maxItems: 5 }, [], ctx);
270
- expect(issues).toHaveLength(1);
271
- expect(issueMessage(issues[0])).toContain("minItems");
272
- expect(issues[0].path).toEqual(["minItems"]);
273
- });
274
- it("adds issue when const array length is less than minItems", () => {
275
- const { issues, ctx } = createRefinementCtx();
276
- (0, schema_1.refineArrayItems)({ type: "array", minItems: 3, const: [1, 2] }, [], ctx);
277
- expect(issues).toHaveLength(1);
278
- expect(issueMessage(issues[0])).toContain("minItems");
279
- });
280
- it("adds issue when const array length is greater than maxItems", () => {
281
- const { issues, ctx } = createRefinementCtx();
282
- (0, schema_1.refineArrayItems)({ type: "array", maxItems: 2, const: [1, 2, 3] }, [], ctx);
283
- expect(issues).toHaveLength(1);
284
- });
285
- it("adds issue when uniqueItems is true and const array has duplicates", () => {
286
- const { issues, ctx } = createRefinementCtx();
287
- (0, schema_1.refineArrayItems)({ type: "array", uniqueItems: true, const: [1, 2, 1] }, [], ctx);
288
- expect(issues).toHaveLength(1);
289
- expect(issueMessage(issues[0])).toContain("duplicate");
290
- });
291
- it("adds issue when uniqueItems is true and enum array value has duplicates", () => {
292
- const { issues, ctx } = createRefinementCtx();
293
- (0, schema_1.refineArrayItems)({
294
- type: "array",
295
- uniqueItems: true,
296
- enum: [
297
- [1, 2],
298
- [3, 3],
299
- [4, 5],
300
- ],
301
- }, [], ctx);
302
- expect(issues).toHaveLength(1);
303
- expect(issues[0].path).toEqual(["enum", 1]);
304
- });
305
- it("recurses into items", () => {
306
- const { issues, ctx } = createRefinementCtx();
307
- (0, schema_1.refineArrayItems)({
308
- type: "array",
309
- items: { type: "array", minItems: 5, maxItems: 2 },
310
- }, [], ctx);
311
- expect(issues).toHaveLength(1);
312
- expect(issues[0].path).toEqual(["items", "minItems"]);
313
- });
314
- it("recurses into additionalProperties", () => {
315
- const { issues, ctx } = createRefinementCtx();
316
- (0, schema_1.refineArrayItems)({
317
- type: "object",
318
- additionalProperties: {
319
- type: "array",
320
- minItems: 5,
321
- maxItems: 2,
322
- items: { type: "string" },
323
- },
324
- }, [], ctx);
325
- expect(issues).toHaveLength(1);
326
- expect(issues[0].path).toEqual(["additionalProperties", "minItems"]);
327
- });
328
- });
329
- describe("schema.ts :: getSchemaZodSchema", () => {
330
- it("accepts a minimal valid schema with type and items for array", () => {
331
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
332
- const result = Schema.safeParse({
333
- type: "array",
334
- items: { type: "string" },
335
- });
336
- expect(result.success).toBe(true);
337
- });
338
- it("accepts a schema with description only (no type)", () => {
339
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
340
- const result = Schema.safeParse({ description: "A schema" });
341
- expect(result.success).toBe(true);
342
- });
343
- it("rejects unknown schema reference when key not in schemaKeys", () => {
344
- const Schema = (0, schema_1.getSchemaZodSchema)(["link", "color"]);
345
- const result = Schema.safeParse({ schema: "nonexistent" });
346
- expect(result.success).toBe(false);
347
- const err = !result.success ? result.error : null;
348
- expect(err?.issues.some((i) => i.message === 'Unknown schema "nonexistent"')).toBe(true);
349
- });
350
- it("accepts schema reference when key is in schemaKeys", () => {
351
- const Schema = (0, schema_1.getSchemaZodSchema)(["link"]);
352
- const result = Schema.safeParse({ schema: "link" });
353
- expect(result.success).toBe(true);
354
- });
355
- it("rejects oneOf with only one branch (requires min 2)", () => {
356
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
357
- const result = Schema.safeParse({
358
- oneOf: [{ type: "string" }],
359
- });
360
- expect(result.success).toBe(false);
361
- const err = !result.success ? result.error : null;
362
- const msg = err?.issues.map((i) => (typeof i.message === "string" ? i.message : "")).join(" ") ?? "";
363
- expect(msg).toMatch(/array|length|minimum|oneOf|element/i);
364
- });
365
- it("accepts oneOf with at least two branches", () => {
366
- const Schema = (0, schema_1.getSchemaZodSchema)(["link"]);
367
- const result = Schema.safeParse({
368
- oneOf: [{ type: "string" }, { schema: "link" }],
369
- });
370
- expect(result.success).toBe(true);
371
- });
372
- it("rejects type array without items", () => {
373
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
374
- const result = Schema.safeParse({ type: "array" });
375
- expect(result.success).toBe(false);
376
- const err = !result.success ? result.error : null;
377
- expect(err?.issues.some((i) => typeof i.message === "string" &&
378
- i.message.includes("array") &&
379
- i.message.includes("items"))).toBe(true);
380
- });
381
- it("rejects extra keys (strict)", () => {
382
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
383
- const result = Schema.safeParse({
384
- type: "string",
385
- unknownKey: true,
386
- });
387
- expect(result.success).toBe(false);
388
- });
389
- it("rejects enum value that does not match type (via refinement)", () => {
390
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
391
- const result = Schema.safeParse({
392
- type: "string",
393
- enum: ["a", 42, "c"],
394
- });
395
- expect(result.success).toBe(false);
396
- const err = !result.success ? result.error : null;
397
- expect(err?.issues.some((i) => typeof i.message === "string" && i.message.includes("does not match type"))).toBe(true);
398
- });
399
- it("rejects minimum > maximum (via refinement)", () => {
400
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
401
- const result = Schema.safeParse({
402
- type: "integer",
403
- minimum: 10,
404
- maximum: 5,
405
- });
406
- expect(result.success).toBe(false);
407
- });
408
- it("rejects invalid pattern (via refinement)", () => {
409
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
410
- const result = Schema.safeParse({
411
- type: "string",
412
- pattern: "[unclosed",
413
- });
414
- expect(result.success).toBe(false);
415
- });
416
- it("rejects minItems > maxItems (via refinement)", () => {
417
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
418
- const result = Schema.safeParse({
419
- type: "array",
420
- items: { type: "string" },
421
- minItems: 10,
422
- maxItems: 2,
423
- });
424
- expect(result.success).toBe(false);
425
- });
426
- it("accepts object schema with properties and required", () => {
427
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
428
- const result = Schema.safeParse({
429
- type: "object",
430
- required: ["id"],
431
- properties: {
432
- id: { type: "string" },
433
- name: { type: "string" },
434
- },
435
- });
436
- expect(result.success).toBe(true);
437
- });
438
- it("accepts object schema with additionalProperties", () => {
439
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
440
- const result = Schema.safeParse({
441
- type: "object",
442
- additionalProperties: {
443
- type: "string",
444
- },
445
- });
446
- expect(result.success).toBe(true);
447
- });
448
- it("accepts array schema with items that reference another schema", () => {
449
- const Schema = (0, schema_1.getSchemaZodSchema)(["link"]);
450
- const result = Schema.safeParse({
451
- type: "array",
452
- items: { schema: "link" },
453
- });
454
- expect(result.success).toBe(true);
455
- });
456
- it("accepts const schema with valid value", () => {
457
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
458
- const result = Schema.safeParse({
459
- type: "string",
460
- const: "draft",
461
- });
462
- expect(result.success).toBe(true);
463
- });
464
- it("accepts boolean type", () => {
465
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
466
- const result = Schema.safeParse({ type: "boolean" });
467
- expect(result.success).toBe(true);
468
- });
469
- it("accepts double type with minimum and maximum", () => {
470
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
471
- const result = Schema.safeParse({
472
- type: "double",
473
- minimum: 0,
474
- maximum: 1,
475
- });
476
- expect(result.success).toBe(true);
477
- });
478
- it("accepts object schema with property that references another schema (e.g. productSummary)", () => {
479
- const Schema = (0, schema_1.getSchemaZodSchema)(["money", "image"]);
480
- const result = Schema.safeParse({
481
- type: "object",
482
- description: "Product summary",
483
- properties: {
484
- id: { type: "string" },
485
- name: { type: "string" },
486
- price: { schema: "money" },
487
- image: { schema: "image" },
488
- },
489
- required: ["id", "name", "price"],
490
- });
491
- expect(result.success).toBe(true);
492
- });
493
- describe("errors surface properly: intentional mistakes produce correct path and message", () => {
494
- function expectSchemaErrorSurfaces(schemaKeys, invalidSchema, opts) {
495
- const Schema = (0, schema_1.getSchemaZodSchema)(schemaKeys);
496
- const result = Schema.safeParse(invalidSchema);
497
- expect(result.success).toBe(false);
498
- const err = !result.success ? result.error : null;
499
- expect(err).not.toBeNull();
500
- const messages = (err?.issues ?? [])
501
- .map((i) => (typeof i.message === "string" ? i.message : ""))
502
- .join(" ");
503
- expect(messages).toContain(opts.messageContains);
504
- const pathStrings = (err?.issues ?? []).map((i) => i.path.join("."));
505
- const hasMatchingPath = pathStrings.some((p) => opts.pathContains.every((seg) => p.includes(seg)));
506
- expect(hasMatchingPath).toBe(true);
507
- }
508
- it("unknown schema ref: error path includes schema, message says Unknown schema", () => {
509
- expectSchemaErrorSurfaces(["link"], { schema: "nonexistent" }, { pathContains: ["schema"], messageContains: "Unknown schema" });
510
- });
511
- it("array without items: error path points to items, message mentions array and items", () => {
512
- expectSchemaErrorSurfaces([], { type: "array" }, { pathContains: ["items"], messageContains: "array" });
513
- });
514
- it("minimum > maximum: error path points to minimum, message mentions minimum and maximum", () => {
515
- expectSchemaErrorSurfaces([], { type: "integer", minimum: 20, maximum: 10 }, { pathContains: ["minimum"], messageContains: "minimum" });
516
- });
517
- it("invalid pattern: error path points to pattern, message mentions pattern", () => {
518
- expectSchemaErrorSurfaces([], { type: "string", pattern: "[" }, { pathContains: ["pattern"], messageContains: "pattern" });
519
- });
520
- it("enum value does not match type: error path points to enum index, message says match type", () => {
521
- expectSchemaErrorSurfaces([], { type: "string", enum: ["a", 42, "c"] }, { pathContains: ["enum"], messageContains: "match type" });
522
- });
523
- it("extra key: parse fails and message mentions unrecognized key", () => {
524
- const Schema = (0, schema_1.getSchemaZodSchema)([]);
525
- const result = Schema.safeParse({ type: "string", invalidKey: true });
526
- expect(result.success).toBe(false);
527
- const err = !result.success ? result.error : null;
528
- const messages = (err?.issues ?? [])
529
- .map((i) => (typeof i.message === "string" ? i.message : ""))
530
- .join(" ");
531
- expect(messages).toMatch(/unrecognized|invalidKey/i);
532
- });
533
- });
534
- });
535
- //# sourceMappingURL=schema.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.spec.js","sourceRoot":"","sources":["../../src/linter/schema.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};