@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,195 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSiteSearchIndex = generateSiteSearchIndex;
4
- const utils_1 = require("../utils");
5
- const getRelativePaths_1 = require("./getRelativePaths");
6
- const getLastModifiedFromHistory_1 = require("./getLastModifiedFromHistory");
7
- async function generateSiteSearchIndex(deps, fullHistory, repoDetails) {
8
- const { rootDirectoryPath, projectConfig, datasource } = deps;
9
- const result = {
10
- links: undefined,
11
- projectConfig: {
12
- tags: projectConfig.tags,
13
- environments: projectConfig.environments,
14
- },
15
- entities: {
16
- attributes: [],
17
- segments: [],
18
- features: [],
19
- },
20
- };
21
- /**
22
- * Links
23
- */
24
- if (repoDetails) {
25
- const { relativeAttributesPath, relativeSegmentsPath, relativeFeaturesPath } = (0, getRelativePaths_1.getRelativePaths)(rootDirectoryPath, projectConfig);
26
- let prefix = "";
27
- if (repoDetails.topLevelPath !== rootDirectoryPath) {
28
- prefix = rootDirectoryPath.replace(repoDetails.topLevelPath + "/", "") + "/";
29
- }
30
- result.links = {
31
- attribute: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeAttributesPath + "/{{key}}." + datasource.getExtension()),
32
- segment: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeSegmentsPath + "/{{key}}." + datasource.getExtension()),
33
- feature: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeFeaturesPath + "/{{key}}." + datasource.getExtension()),
34
- commit: repoDetails.commitUrl,
35
- };
36
- }
37
- /**
38
- * Entities
39
- */
40
- // usage
41
- const attributesUsedInFeatures = {};
42
- const attributesUsedInSegments = {};
43
- const segmentsUsedInFeatures = {};
44
- // features
45
- const featureFiles = await datasource.listFeatures();
46
- for (const entityName of featureFiles) {
47
- const parsed = await datasource.readFeature(entityName);
48
- if (Array.isArray(parsed.variations)) {
49
- parsed.variations.forEach((variation) => {
50
- if (!variation.variableOverrides) {
51
- return;
52
- }
53
- Object.keys(variation.variableOverrides).forEach((variableKey) => {
54
- const overrides = variation.variableOverrides?.[variableKey];
55
- if (overrides) {
56
- overrides.forEach((o) => {
57
- if (o.conditions) {
58
- (0, utils_1.extractAttributeKeysFromConditions)(o.conditions).forEach((attributeKey) => {
59
- if (!attributesUsedInFeatures[attributeKey]) {
60
- attributesUsedInFeatures[attributeKey] = new Set();
61
- }
62
- attributesUsedInFeatures[attributeKey].add(entityName);
63
- });
64
- }
65
- if (o.segments && o.segments !== "*") {
66
- (0, utils_1.extractSegmentKeysFromGroupSegments)(o.segments).forEach((segmentKey) => {
67
- if (!segmentsUsedInFeatures[segmentKey]) {
68
- segmentsUsedInFeatures[segmentKey] = new Set();
69
- }
70
- segmentsUsedInFeatures[segmentKey].add(entityName);
71
- });
72
- }
73
- });
74
- }
75
- });
76
- });
77
- }
78
- // rules
79
- if (parsed.rules) {
80
- if (!Array.isArray(parsed.rules)) {
81
- // with environments
82
- Object.keys(parsed.rules).forEach((environmentKey) => {
83
- const rules = parsed.rules?.[environmentKey];
84
- rules.forEach((rule) => {
85
- if (rule.segments && rule.segments !== "*") {
86
- (0, utils_1.extractSegmentKeysFromGroupSegments)(rule.segments).forEach((segmentKey) => {
87
- if (!segmentsUsedInFeatures[segmentKey]) {
88
- segmentsUsedInFeatures[segmentKey] = new Set();
89
- }
90
- segmentsUsedInFeatures[segmentKey].add(entityName);
91
- });
92
- }
93
- });
94
- });
95
- }
96
- else {
97
- // no environments
98
- parsed.rules.forEach((rule) => {
99
- if (rule.segments && rule.segments !== "*") {
100
- (0, utils_1.extractSegmentKeysFromGroupSegments)(rule.segments).forEach((segmentKey) => {
101
- if (!segmentsUsedInFeatures[segmentKey]) {
102
- segmentsUsedInFeatures[segmentKey] = new Set();
103
- }
104
- segmentsUsedInFeatures[segmentKey].add(entityName);
105
- });
106
- }
107
- });
108
- }
109
- }
110
- // force
111
- if (parsed.force) {
112
- if (!Array.isArray(parsed.force)) {
113
- // with environments
114
- Object.keys(parsed.force).forEach((environmentKey) => {
115
- parsed.force?.[environmentKey].forEach((force) => {
116
- if (force.segments && force.segments !== "*") {
117
- (0, utils_1.extractSegmentKeysFromGroupSegments)(force.segments).forEach((segmentKey) => {
118
- if (!segmentsUsedInFeatures[segmentKey]) {
119
- segmentsUsedInFeatures[segmentKey] = new Set();
120
- }
121
- segmentsUsedInFeatures[segmentKey].add(entityName);
122
- });
123
- }
124
- if (force.conditions) {
125
- (0, utils_1.extractAttributeKeysFromConditions)(force.conditions).forEach((attributeKey) => {
126
- if (!attributesUsedInFeatures[attributeKey]) {
127
- attributesUsedInFeatures[attributeKey] = new Set();
128
- }
129
- attributesUsedInFeatures[attributeKey].add(entityName);
130
- });
131
- }
132
- });
133
- });
134
- }
135
- else {
136
- // no environments
137
- parsed.force.forEach((force) => {
138
- if (force.segments && force.segments !== "*") {
139
- (0, utils_1.extractSegmentKeysFromGroupSegments)(force.segments).forEach((segmentKey) => {
140
- if (!segmentsUsedInFeatures[segmentKey]) {
141
- segmentsUsedInFeatures[segmentKey] = new Set();
142
- }
143
- segmentsUsedInFeatures[segmentKey].add(entityName);
144
- });
145
- }
146
- if (force.conditions) {
147
- (0, utils_1.extractAttributeKeysFromConditions)(force.conditions).forEach((attributeKey) => {
148
- if (!attributesUsedInFeatures[attributeKey]) {
149
- attributesUsedInFeatures[attributeKey] = new Set();
150
- }
151
- attributesUsedInFeatures[attributeKey].add(entityName);
152
- });
153
- }
154
- });
155
- }
156
- }
157
- // push
158
- result.entities.features.push({
159
- ...parsed,
160
- key: entityName,
161
- lastModified: (0, getLastModifiedFromHistory_1.getLastModifiedFromHistory)(fullHistory, "feature", entityName),
162
- });
163
- }
164
- // segments
165
- const segmentFiles = await datasource.listSegments();
166
- for (const entityName of segmentFiles) {
167
- const parsed = await datasource.readSegment(entityName);
168
- (0, utils_1.extractAttributeKeysFromConditions)(parsed.conditions).forEach((attributeKey) => {
169
- if (!attributesUsedInSegments[attributeKey]) {
170
- attributesUsedInSegments[attributeKey] = new Set();
171
- }
172
- attributesUsedInSegments[attributeKey].add(entityName);
173
- });
174
- result.entities.segments.push({
175
- ...parsed,
176
- key: entityName,
177
- lastModified: (0, getLastModifiedFromHistory_1.getLastModifiedFromHistory)(fullHistory, "segment", entityName),
178
- usedInFeatures: Array.from(segmentsUsedInFeatures[entityName] || []),
179
- });
180
- }
181
- // attributes
182
- const attributeFiles = await datasource.listAttributes();
183
- for (const entityName of attributeFiles) {
184
- const parsed = await datasource.readAttribute(entityName);
185
- result.entities.attributes.push({
186
- ...parsed,
187
- key: entityName,
188
- lastModified: (0, getLastModifiedFromHistory_1.getLastModifiedFromHistory)(fullHistory, "attribute", entityName),
189
- usedInFeatures: Array.from(attributesUsedInFeatures[entityName] || []),
190
- usedInSegments: Array.from(attributesUsedInSegments[entityName] || []),
191
- });
192
- }
193
- return result;
194
- }
195
- //# sourceMappingURL=generateSiteSearchIndex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateSiteSearchIndex.js","sourceRoot":"","sources":["../../src/site/generateSiteSearchIndex.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { HistoryEntry, LastModified } from "@featurevisor/types";
2
- export declare function getLastModifiedFromHistory(fullHistory: HistoryEntry[], type: any, key: any): LastModified | undefined;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLastModifiedFromHistory = getLastModifiedFromHistory;
4
- function getLastModifiedFromHistory(fullHistory, type, key) {
5
- const lastModified = fullHistory.find((entry) => {
6
- return entry.entities.find((entity) => {
7
- return entity.type === type && entity.key === key;
8
- });
9
- });
10
- if (lastModified) {
11
- return {
12
- commit: lastModified.commit,
13
- timestamp: lastModified.timestamp,
14
- author: lastModified.author,
15
- };
16
- }
17
- }
18
- //# sourceMappingURL=getLastModifiedFromHistory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLastModifiedFromHistory.js","sourceRoot":"","sources":["../../src/site/getLastModifiedFromHistory.ts"],"names":[],"mappings":";;AAEA,gEAkBC;AAlBD,SAAgB,0BAA0B,CACxC,WAA2B,EAC3B,IAAI,EACJ,GAAG;IAEH,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACpC,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function getOwnerAndRepoFromUrl(url: string): {
2
- owner: string;
3
- repo: string;
4
- };
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOwnerAndRepoFromUrl = getOwnerAndRepoFromUrl;
4
- function getOwnerAndRepoFromUrl(url) {
5
- let owner;
6
- let repo;
7
- if (url.startsWith("https://")) {
8
- const parts = url.split("/");
9
- repo = parts.pop().replace(".git", "");
10
- owner = parts.pop();
11
- }
12
- else if (url.startsWith("git@")) {
13
- const urlParts = url.split(":");
14
- const parts = urlParts[1].split("/");
15
- repo = parts.pop().replace(".git", "");
16
- owner = parts.pop();
17
- }
18
- return { owner, repo };
19
- }
20
- //# sourceMappingURL=getOwnerAndRepoFromUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOwnerAndRepoFromUrl.js","sourceRoot":"","sources":["../../src/site/getOwnerAndRepoFromUrl.ts"],"names":[],"mappings":";;AAAA,wDAgBC;AAhBD,SAAgB,sBAAsB,CAAC,GAAW;IAChD,IAAI,KAAK,CAAC;IACV,IAAI,IAAI,CAAC;IAET,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAI,KAAK,CAAC,GAAG,EAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAI,KAAK,CAAC,GAAG,EAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { ProjectConfig } from "../config";
2
- export declare function getRelativePaths(rootDirectoryPath: any, projectConfig: ProjectConfig): {
3
- relativeFeaturesPath: string;
4
- relativeSegmentsPath: string;
5
- relativeAttributesPath: string;
6
- };
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRelativePaths = getRelativePaths;
4
- const path = require("path");
5
- function getRelativePaths(rootDirectoryPath, projectConfig) {
6
- const relativeFeaturesPath = path.relative(rootDirectoryPath, projectConfig.featuresDirectoryPath);
7
- const relativeSegmentsPath = path.relative(rootDirectoryPath, projectConfig.segmentsDirectoryPath);
8
- const relativeAttributesPath = path.relative(rootDirectoryPath, projectConfig.attributesDirectoryPath);
9
- return {
10
- relativeFeaturesPath,
11
- relativeSegmentsPath,
12
- relativeAttributesPath,
13
- };
14
- }
15
- //# sourceMappingURL=getRelativePaths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRelativePaths.js","sourceRoot":"","sources":["../../src/site/getRelativePaths.ts"],"names":[],"mappings":";;AAIA,4CAmBC;AAvBD,6BAA6B;AAI7B,SAAgB,gBAAgB,CAAC,iBAAiB,EAAE,aAA4B;IAC9E,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CACxC,iBAAiB,EACjB,aAAa,CAAC,qBAAqB,CACpC,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CACxC,iBAAiB,EACjB,aAAa,CAAC,qBAAqB,CACpC,CAAC;IACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAC1C,iBAAiB,EACjB,aAAa,CAAC,uBAAuB,CACtC,CAAC;IAEF,OAAO;QACL,oBAAoB;QACpB,oBAAoB;QACpB,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- export interface RepoDetails {
2
- branch: string;
3
- remoteUrl: string;
4
- blobUrl: string;
5
- commitUrl: string;
6
- topLevelPath: string;
7
- }
8
- export declare function getRepoDetails(): RepoDetails | undefined;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRepoDetails = getRepoDetails;
4
- const child_process_1 = require("child_process");
5
- const getOwnerAndRepoFromUrl_1 = require("./getOwnerAndRepoFromUrl");
6
- function getRepoDetails() {
7
- try {
8
- const topLevelPathOutput = (0, child_process_1.execSync)(`git rev-parse --show-toplevel`);
9
- const topLevelPath = topLevelPathOutput.toString().trim();
10
- const remoteUrlOutput = (0, child_process_1.execSync)(`git remote get-url origin`);
11
- const remoteUrl = remoteUrlOutput.toString().trim();
12
- const branchOutput = (0, child_process_1.execSync)(`git rev-parse --abbrev-ref HEAD`);
13
- const branch = branchOutput.toString().trim();
14
- if (!remoteUrl || !branch) {
15
- return;
16
- }
17
- const { owner, repo } = (0, getOwnerAndRepoFromUrl_1.getOwnerAndRepoFromUrl)(remoteUrl);
18
- if (!owner || !repo) {
19
- return;
20
- }
21
- let blobUrl;
22
- let commitUrl;
23
- if (remoteUrl.indexOf("github.com") > -1) {
24
- blobUrl = `https://github.com/${owner}/${repo}/blob/${branch}/{{blobPath}}`;
25
- commitUrl = `https://github.com/${owner}/${repo}/commit/{{hash}}`;
26
- }
27
- else if (remoteUrl.indexOf("bitbucket.org") > -1) {
28
- blobUrl = `https://bitbucket.org/${owner}/${repo}/src/${branch}/{{blobPath}}`;
29
- commitUrl = `https://bitbucket.org/${owner}/${repo}/commits/{{hash}}`;
30
- }
31
- if (!blobUrl || !commitUrl) {
32
- return;
33
- }
34
- return {
35
- branch,
36
- remoteUrl,
37
- blobUrl,
38
- commitUrl,
39
- topLevelPath,
40
- };
41
- }
42
- catch (e) {
43
- console.error(e);
44
- return;
45
- }
46
- return;
47
- }
48
- //# sourceMappingURL=getRepoDetails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRepoDetails.js","sourceRoot":"","sources":["../../src/site/getRepoDetails.ts"],"names":[],"mappings":";;AAYA,wCAiDC;AA7DD,iDAAyC;AAEzC,qEAAkE;AAUlE,SAAgB,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAA,wBAAQ,EAAC,+BAA+B,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAE1D,MAAM,eAAe,GAAG,IAAA,wBAAQ,EAAC,2BAA2B,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAA,wBAAQ,EAAC,iCAAiC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAE9C,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC;QACZ,IAAI,SAAS,CAAC;QAEd,IAAI,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,sBAAsB,KAAK,IAAI,IAAI,SAAS,MAAM,eAAe,CAAC;YAC5E,SAAS,GAAG,sBAAsB,KAAK,IAAI,IAAI,kBAAkB,CAAC;QACpE,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,GAAG,yBAAyB,KAAK,IAAI,IAAI,QAAQ,MAAM,eAAe,CAAC;YAC9E,SAAS,GAAG,yBAAyB,KAAK,IAAI,IAAI,mBAAmB,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,OAAO;YACL,MAAM;YACN,SAAS;YACT,OAAO;YACP,SAAS;YACT,YAAY;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IAED,OAAO;AACT,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Plugin } from "../cli";
2
- export declare const sitePlugin: Plugin;
package/lib/site/index.js DELETED
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sitePlugin = void 0;
4
- const exportSite_1 = require("./exportSite");
5
- const serveSite_1 = require("./serveSite");
6
- exports.sitePlugin = {
7
- command: "site [subcommand]",
8
- handler: async function ({ rootDirectoryPath, projectConfig, datasource, parsed }) {
9
- const deps = {
10
- rootDirectoryPath,
11
- projectConfig,
12
- datasource,
13
- options: parsed,
14
- };
15
- const allowedSubcommands = ["export", "serve"];
16
- if (!allowedSubcommands.includes(parsed.subcommand)) {
17
- console.log("Please specify a subcommand: `export` or `serve`");
18
- return;
19
- }
20
- // export
21
- if (parsed.subcommand === "export") {
22
- const hasError = await (0, exportSite_1.exportSite)(deps);
23
- if (hasError) {
24
- return false;
25
- }
26
- }
27
- // serve
28
- if (parsed.subcommand === "serve") {
29
- (0, serveSite_1.serveSite)(deps);
30
- }
31
- },
32
- examples: [
33
- {
34
- command: "site export",
35
- description: "generate static site with project data",
36
- },
37
- {
38
- command: "site serve",
39
- description: "serve already exported site locally",
40
- },
41
- ],
42
- };
43
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/site/index.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAC1C,2CAAwC;AAE3B,QAAA,UAAU,GAAW;IAChC,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,KAAK,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE;QAC/E,MAAM,IAAI,GAAG;YACX,iBAAiB;YACjB,aAAa;YACb,UAAU;YACV,OAAO,EAAE,MAAM;SAChB,CAAC;QAEF,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,SAAS;QACT,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;YAExC,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAClC,IAAA,qBAAS,EAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,wCAAwC;SACtD;QACD;YACE,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,qCAAqC;SACnD;KACF;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Dependencies } from "../dependencies";
2
- export declare function serveSite(deps: Dependencies): void;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serveSite = serveSite;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const http = require("http");
7
- function serveSite(deps) {
8
- const { projectConfig, options } = deps;
9
- const port = options.p || 3000;
10
- http
11
- .createServer(function (request, response) {
12
- const requestedUrl = request.url;
13
- const filePath = requestedUrl === "/"
14
- ? path.join(projectConfig.siteExportDirectoryPath, "index.html")
15
- : path.join(projectConfig.siteExportDirectoryPath, requestedUrl);
16
- console.log("requesting: " + filePath + "");
17
- const extname = path.extname(filePath);
18
- let contentType = "text/html";
19
- switch (extname) {
20
- case ".js":
21
- contentType = "text/javascript";
22
- break;
23
- case ".css":
24
- contentType = "text/css";
25
- break;
26
- case ".json":
27
- contentType = "application/json";
28
- break;
29
- case ".png":
30
- contentType = "image/png";
31
- break;
32
- }
33
- fs.readFile(filePath, function (error, content) {
34
- if (error) {
35
- if (error.code == "ENOENT") {
36
- response.writeHead(404, { "Content-Type": "text/html" });
37
- response.end("404 Not Found", "utf-8");
38
- }
39
- else {
40
- response.writeHead(500);
41
- response.end("Error 500: " + error.code);
42
- response.end();
43
- }
44
- }
45
- else {
46
- response.writeHead(200, { "Content-Type": contentType });
47
- response.end(content, "utf-8");
48
- }
49
- });
50
- })
51
- .listen(port);
52
- console.log(`Server running at http://127.0.0.1:${port}/`);
53
- }
54
- //# sourceMappingURL=serveSite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serveSite.js","sourceRoot":"","sources":["../../src/site/serveSite.ts"],"names":[],"mappings":";;AAMA,8BAmDC;AAzDD,yBAAyB;AACzB,6BAA6B;AAC7B,6BAA6B;AAI7B,SAAgB,SAAS,CAAC,IAAkB;IAC1C,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAExC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;IAE/B,IAAI;SACD,YAAY,CAAC,UAAU,OAAO,EAAE,QAAQ;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;QACjC,MAAM,QAAQ,GACZ,YAAY,KAAK,GAAG;YAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,YAAY,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,YAAsB,CAAC,CAAC;QAE/E,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,WAAW,GAAG,WAAW,CAAC;QAC9B,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,KAAK;gBACR,WAAW,GAAG,iBAAiB,CAAC;gBAChC,MAAM;YACR,KAAK,MAAM;gBACT,WAAW,GAAG,UAAU,CAAC;gBACzB,MAAM;YACR,KAAK,OAAO;gBACV,WAAW,GAAG,kBAAkB,CAAC;gBACjC,MAAM;YACR,KAAK,MAAM;gBACT,WAAW,GAAG,WAAW,CAAC;gBAC1B,MAAM;QACV,CAAC;QAED,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,KAAK,EAAE,OAAO;YAC5C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC3B,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACxB,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACzD,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,GAAG,CAAC,CAAC;AAC7D,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const helpers_1 = require("./helpers");
4
- describe("helpers", function () {
5
- describe("checkIfObjectsAreEqual", function () {
6
- it("should return true for two empty objects", () => {
7
- expect((0, helpers_1.checkIfObjectsAreEqual)({}, {})).toBe(true);
8
- });
9
- it("should return true for objects with same keys and values", () => {
10
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: 1, b: 2 }, { a: 1, b: 2 })).toBe(true);
11
- });
12
- it("should return false for objects with different keys", () => {
13
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: 1 }, { b: 1 })).toBe(false);
14
- });
15
- it("should return false for objects with same keys but different values", () => {
16
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: 1 }, { a: 2 })).toBe(false);
17
- });
18
- it("should return false if one object has extra keys", () => {
19
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: 1, b: 2 }, { a: 1 })).toBe(false);
20
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: 1 }, { a: 1, b: 2 })).toBe(false);
21
- });
22
- it("should return true for nested objects that are deeply equal", () => {
23
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: { b: 2 }, c: 3 }, { a: { b: 2 }, c: 3 })).toBe(true);
24
- });
25
- it("should return false for nested objects that are not deeply equal", () => {
26
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: { b: 2 }, c: 3 }, { a: { b: 3 }, c: 3 })).toBe(false);
27
- });
28
- // it("should return false if types differ", () => {
29
- // expect(checkIfObjectsAreEqual({ a: 1 }, null as any)).toBe(false);
30
- // expect(checkIfObjectsAreEqual(null as any, { a: 1 })).toBe(false);
31
- // expect(checkIfObjectsAreEqual([], {})).toBe(false);
32
- // });
33
- it("should return true for objects with array values that are equal", () => {
34
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: [1, 2, 3] }, { a: [1, 2, 3] })).toBe(true);
35
- });
36
- it("should return false for objects with array values that are not equal", () => {
37
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: [1, 2, 3] }, { a: [1, 2, 4] })).toBe(false);
38
- });
39
- it("should return true for objects with different key order", () => {
40
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: 1, b: 2 }, { b: 2, a: 1 })).toBe(true);
41
- });
42
- it("should return true for objects with undefined values if both have them", () => {
43
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: undefined }, { a: undefined })).toBe(true);
44
- });
45
- it("should return false for objects with one undefined and one missing key", () => {
46
- expect((0, helpers_1.checkIfObjectsAreEqual)({ a: undefined }, {})).toBe(false);
47
- });
48
- });
49
- describe("checkIfArraysAreEqual", function () {
50
- it("should return true for two empty arrays", () => {
51
- expect((0, helpers_1.checkIfArraysAreEqual)([], [])).toBe(true);
52
- });
53
- it("should return true for arrays with same elements in same order", () => {
54
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2, 3], [1, 2, 3])).toBe(true);
55
- });
56
- it("should return false for arrays with same elements in different order", () => {
57
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2, 3], [3, 2, 1])).toBe(false);
58
- });
59
- it("should return false for arrays of different lengths", () => {
60
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2], [1, 2, 3])).toBe(false);
61
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2, 3], [1, 2])).toBe(false);
62
- });
63
- it("should return false for arrays with different elements", () => {
64
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2, 3], [1, 2, 4])).toBe(false);
65
- });
66
- it("should return true for nested arrays that are deeply equal", () => {
67
- expect((0, helpers_1.checkIfArraysAreEqual)([[1, 2], [3]], [[1, 2], [3]])).toBe(true);
68
- });
69
- it("should return false for nested arrays that are not deeply equal", () => {
70
- expect((0, helpers_1.checkIfArraysAreEqual)([[1, 2], [3]], [[1, 2], [4]])).toBe(false);
71
- });
72
- it("should return true for arrays with objects that are deeply equal", () => {
73
- expect((0, helpers_1.checkIfArraysAreEqual)([{ a: 1 }, { b: 2 }], [{ a: 1 }, { b: 2 }])).toBe(true);
74
- });
75
- it("should return false for arrays with objects that are not deeply equal", () => {
76
- expect((0, helpers_1.checkIfArraysAreEqual)([{ a: 1 }, { b: 2 }], [{ a: 1 }, { b: 3 }])).toBe(false);
77
- });
78
- it("should return false if types differ", () => {
79
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2, 3], null)).toBe(false);
80
- expect((0, helpers_1.checkIfArraysAreEqual)(null, [1, 2, 3])).toBe(false);
81
- expect((0, helpers_1.checkIfArraysAreEqual)({}, [])).toBe(false);
82
- });
83
- it("should return true for arrays with undefined values if both have them in same positions", () => {
84
- expect((0, helpers_1.checkIfArraysAreEqual)([1, undefined, 3], [1, undefined, 3])).toBe(true);
85
- });
86
- it("should return false for arrays with undefined values in different positions", () => {
87
- expect((0, helpers_1.checkIfArraysAreEqual)([1, undefined, 3], [1, 3, undefined])).toBe(false);
88
- });
89
- it("should return true for arrays with different reference but same primitive values", () => {
90
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2, 3], [1, 2, 3])).toBe(true);
91
- });
92
- it("should return true for arrays with nested objects and arrays that are deeply equal", () => {
93
- expect((0, helpers_1.checkIfArraysAreEqual)([{ a: [1, 2], b: { c: 3 } }], [{ a: [1, 2], b: { c: 3 } }])).toBe(true);
94
- });
95
- it("should return false for arrays with nested objects and arrays that are not deeply equal", () => {
96
- expect((0, helpers_1.checkIfArraysAreEqual)([{ a: [1, 2], b: { c: 3 } }], [{ a: [1, 2], b: { c: 4 } }])).toBe(false);
97
- });
98
- it("should return false for arrays with extra undefined at the end", () => {
99
- expect((0, helpers_1.checkIfArraysAreEqual)([1, 2], [1, 2, undefined])).toBe(false);
100
- });
101
- // it("should return true for arrays with NaN values in same positions", () => {
102
- // expect(checkIfArraysAreEqual([NaN, 2], [NaN, 2])).toBe(true);
103
- // });
104
- // it("should return false for arrays with NaN values in different positions", () => {
105
- // expect(checkIfArraysAreEqual([2, NaN], [NaN, 2])).toBe(false);
106
- // });
107
- it("should return true for arrays with null values in same positions", () => {
108
- expect((0, helpers_1.checkIfArraysAreEqual)([null, 2], [null, 2])).toBe(true);
109
- });
110
- it("should return false for arrays with null values in different positions", () => {
111
- expect((0, helpers_1.checkIfArraysAreEqual)([2, null], [null, 2])).toBe(false);
112
- });
113
- });
114
- });
115
- //# sourceMappingURL=helpers.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.spec.js","sourceRoot":"","sources":["../../src/tester/helpers.spec.ts"],"names":[],"mappings":"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"}