creevey 0.10.0-beta.9 → 0.10.0-rc.0

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 (348) hide show
  1. package/AUTHORS +2 -0
  2. package/CHANGELOG.md +281 -0
  3. package/README.md +19 -41
  4. package/dist/client/addon/components/Addon.js +18 -8
  5. package/dist/client/addon/components/Addon.js.map +1 -1
  6. package/dist/client/addon/components/Panel.js +2 -2
  7. package/dist/client/addon/components/Panel.js.map +1 -1
  8. package/dist/client/addon/components/TestSelect.js +2 -2
  9. package/dist/client/addon/components/TestSelect.js.map +1 -1
  10. package/dist/client/addon/components/Tools.js +19 -9
  11. package/dist/client/addon/components/Tools.js.map +1 -1
  12. package/dist/client/addon/controller.d.ts +1 -1
  13. package/dist/client/addon/controller.js +3 -3
  14. package/dist/client/addon/controller.js.map +1 -1
  15. package/dist/client/addon/decorator.d.ts +1 -1
  16. package/dist/client/addon/makeDecorator.d.ts +9 -0
  17. package/dist/client/addon/makeDecorator.js +48 -0
  18. package/dist/client/addon/makeDecorator.js.map +1 -0
  19. package/dist/client/addon/manager.js +38 -39
  20. package/dist/client/addon/manager.js.map +1 -1
  21. package/dist/client/addon/preset.d.ts +0 -1
  22. package/dist/client/addon/preset.js +3 -2
  23. package/dist/client/addon/preset.js.map +1 -1
  24. package/dist/client/addon/preview.d.ts +1 -1
  25. package/dist/client/addon/withCreevey.d.ts +5 -3
  26. package/dist/client/addon/withCreevey.js +5 -20
  27. package/dist/client/addon/withCreevey.js.map +1 -1
  28. package/dist/client/shared/components/ImagesView/BlendView.d.ts +2 -2
  29. package/dist/client/shared/components/ImagesView/BlendView.js +18 -8
  30. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -1
  31. package/dist/client/shared/components/ImagesView/ImagesView.js +1 -1
  32. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -1
  33. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +2 -2
  34. package/dist/client/shared/components/ImagesView/SideBySideView.js +19 -9
  35. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -1
  36. package/dist/client/shared/components/ImagesView/SlideView.d.ts +2 -2
  37. package/dist/client/shared/components/ImagesView/SlideView.js +19 -9
  38. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -1
  39. package/dist/client/shared/components/ImagesView/SwapView.d.ts +2 -2
  40. package/dist/client/shared/components/ImagesView/SwapView.js +19 -9
  41. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
  42. package/dist/client/shared/components/ImagesView/common.d.ts +1 -1
  43. package/dist/client/shared/components/PageFooter/PageFooter.js +1 -1
  44. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -1
  45. package/dist/client/shared/components/PageFooter/Paging.js +1 -1
  46. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -1
  47. package/dist/client/shared/components/PageHeader/ImagePreview.d.ts +2 -2
  48. package/dist/client/shared/components/PageHeader/ImagePreview.js +1 -1
  49. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
  50. package/dist/client/shared/components/PageHeader/PageHeader.js +34 -13
  51. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -1
  52. package/dist/client/shared/components/ResultsPage.d.ts +2 -2
  53. package/dist/client/shared/components/ResultsPage.js +22 -10
  54. package/dist/client/shared/components/ResultsPage.js.map +1 -1
  55. package/dist/client/shared/creeveyClientApi.js +18 -1
  56. package/dist/client/shared/creeveyClientApi.js.map +1 -1
  57. package/dist/client/shared/helpers.d.ts +1 -3
  58. package/dist/client/shared/helpers.js +4 -19
  59. package/dist/client/shared/helpers.js.map +1 -1
  60. package/dist/client/web/CreeveyApp.d.ts +1 -0
  61. package/dist/client/web/CreeveyApp.js +22 -9
  62. package/dist/client/web/CreeveyApp.js.map +1 -1
  63. package/dist/client/web/CreeveyContext.d.ts +1 -0
  64. package/dist/client/web/CreeveyContext.js +18 -7
  65. package/dist/client/web/CreeveyContext.js.map +1 -1
  66. package/dist/client/web/CreeveyLoader.d.ts +1 -1
  67. package/dist/client/web/CreeveyLoader.js +3 -3
  68. package/dist/client/web/CreeveyLoader.js.map +1 -1
  69. package/dist/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -4
  70. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +36 -6
  71. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -1
  72. package/dist/client/web/CreeveyView/SideBar/Search.js +18 -8
  73. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
  74. package/dist/client/web/CreeveyView/SideBar/SideBar.js +26 -12
  75. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
  76. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +28 -17
  77. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
  78. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +32 -12
  79. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
  80. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +6 -6
  81. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +20 -11
  82. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
  83. package/dist/client/web/CreeveyView/SideBar/TestLink.js +20 -11
  84. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
  85. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +2 -2
  86. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +2 -2
  87. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -1
  88. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +2 -2
  89. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +3 -2
  90. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -1
  91. package/dist/client/web/CreeveyView/SideBar/Toggle.js +1 -1
  92. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -1
  93. package/dist/client/web/KeyboardEventsContext.js +17 -7
  94. package/dist/client/web/KeyboardEventsContext.js.map +1 -1
  95. package/dist/client/web/assets/index-CtSq3IhG.js +518 -0
  96. package/dist/client/web/index.html +1 -1
  97. package/dist/client/web/index.js +26 -11
  98. package/dist/client/web/index.js.map +1 -1
  99. package/dist/client/web/themes.d.ts +2 -0
  100. package/dist/client/web/themes.js +22 -0
  101. package/dist/client/web/themes.js.map +1 -0
  102. package/dist/creevey.d.ts +1 -1
  103. package/dist/creevey.js +122 -41
  104. package/dist/creevey.js.map +1 -1
  105. package/dist/index.d.ts +1 -0
  106. package/dist/playwright/generator.d.ts +25 -0
  107. package/dist/playwright/generator.js +243 -0
  108. package/dist/playwright/generator.js.map +1 -0
  109. package/dist/playwright/helpers.d.ts +2 -0
  110. package/dist/playwright/helpers.js +29 -0
  111. package/dist/playwright/helpers.js.map +1 -0
  112. package/dist/playwright/reporter.d.ts +83 -0
  113. package/dist/playwright/reporter.js +334 -0
  114. package/dist/playwright/reporter.js.map +1 -0
  115. package/dist/playwright/setup.d.ts +3 -0
  116. package/dist/playwright/setup.js +72 -0
  117. package/dist/playwright/setup.js.map +1 -0
  118. package/dist/playwright.d.ts +1 -0
  119. package/dist/playwright.js +3 -1
  120. package/dist/playwright.js.map +1 -1
  121. package/dist/server/compare.d.ts +18 -0
  122. package/dist/server/compare.js +182 -0
  123. package/dist/server/compare.js.map +1 -0
  124. package/dist/server/config.d.ts +3 -3
  125. package/dist/server/config.js +75 -8
  126. package/dist/server/config.js.map +1 -1
  127. package/dist/server/connection.d.ts +3 -0
  128. package/dist/server/connection.js +28 -0
  129. package/dist/server/connection.js.map +1 -0
  130. package/dist/server/docker.d.ts +1 -1
  131. package/dist/server/docker.js +54 -32
  132. package/dist/server/docker.js.map +1 -1
  133. package/dist/server/index.d.ts +2 -2
  134. package/dist/server/index.js +161 -64
  135. package/dist/server/index.js.map +1 -1
  136. package/dist/server/master/api.d.ts +11 -6
  137. package/dist/server/master/api.js +88 -25
  138. package/dist/server/master/api.js.map +1 -1
  139. package/dist/server/master/handlers/capture-handler.d.ts +5 -0
  140. package/dist/server/master/handlers/capture-handler.js +25 -0
  141. package/dist/server/master/handlers/capture-handler.js.map +1 -0
  142. package/dist/server/master/handlers/index.d.ts +4 -0
  143. package/dist/server/master/handlers/index.js +21 -0
  144. package/dist/server/master/handlers/index.js.map +1 -0
  145. package/dist/server/master/handlers/ping-handler.d.ts +2 -0
  146. package/dist/server/master/handlers/ping-handler.js +8 -0
  147. package/dist/server/master/handlers/ping-handler.js.map +1 -0
  148. package/dist/server/master/handlers/static-handler.d.ts +1 -0
  149. package/dist/server/master/handlers/static-handler.js +20 -0
  150. package/dist/server/master/handlers/static-handler.js.map +1 -0
  151. package/dist/server/master/handlers/stories-handler.d.ts +4 -0
  152. package/dist/server/master/handlers/stories-handler.js +24 -0
  153. package/dist/server/master/handlers/stories-handler.js.map +1 -0
  154. package/dist/server/master/master.js +7 -24
  155. package/dist/server/master/master.js.map +1 -1
  156. package/dist/server/master/pool.d.ts +1 -0
  157. package/dist/server/master/pool.js +5 -3
  158. package/dist/server/master/pool.js.map +1 -1
  159. package/dist/server/master/queue.d.ts +1 -1
  160. package/dist/server/master/queue.js +14 -6
  161. package/dist/server/master/queue.js.map +1 -1
  162. package/dist/server/master/runner.d.ts +6 -6
  163. package/dist/server/master/runner.js +98 -130
  164. package/dist/server/master/runner.js.map +1 -1
  165. package/dist/server/master/server.d.ts +1 -1
  166. package/dist/server/master/server.js +193 -88
  167. package/dist/server/master/server.js.map +1 -1
  168. package/dist/server/master/start.d.ts +1 -2
  169. package/dist/server/master/start.js +13 -29
  170. package/dist/server/master/start.js.map +1 -1
  171. package/dist/server/master/testsManager.d.ts +81 -0
  172. package/dist/server/master/testsManager.js +282 -0
  173. package/dist/server/master/testsManager.js.map +1 -0
  174. package/dist/server/playwright/docker-file.d.ts +1 -1
  175. package/dist/server/playwright/docker-file.js +17 -8
  176. package/dist/server/playwright/docker-file.js.map +1 -1
  177. package/dist/server/playwright/docker.d.ts +2 -1
  178. package/dist/server/playwright/docker.js +10 -2
  179. package/dist/server/playwright/docker.js.map +1 -1
  180. package/dist/server/playwright/index-source.mjs +16 -0
  181. package/dist/server/playwright/internal.d.ts +7 -7
  182. package/dist/server/playwright/internal.js +137 -79
  183. package/dist/server/playwright/internal.js.map +1 -1
  184. package/dist/server/playwright/webdriver.d.ts +3 -3
  185. package/dist/server/playwright/webdriver.js +0 -6
  186. package/dist/server/playwright/webdriver.js.map +1 -1
  187. package/dist/server/providers/browser.js +4 -3
  188. package/dist/server/providers/browser.js.map +1 -1
  189. package/dist/server/providers/hybrid.js +2 -2
  190. package/dist/server/providers/hybrid.js.map +1 -1
  191. package/dist/server/report.d.ts +10 -0
  192. package/dist/server/report.js +45 -0
  193. package/dist/server/report.js.map +1 -0
  194. package/dist/server/reporters/creevey.d.ts +7 -0
  195. package/dist/server/reporters/creevey.js +63 -0
  196. package/dist/server/reporters/creevey.js.map +1 -0
  197. package/dist/server/reporters/index.d.ts +2 -0
  198. package/dist/server/reporters/index.js +16 -0
  199. package/dist/server/reporters/index.js.map +1 -0
  200. package/dist/server/reporters/junit.d.ts +16 -0
  201. package/dist/server/reporters/junit.js +167 -0
  202. package/dist/server/reporters/junit.js.map +1 -0
  203. package/dist/server/reporters/teamcity.d.ts +7 -0
  204. package/dist/server/reporters/teamcity.js +60 -0
  205. package/dist/server/reporters/teamcity.js.map +1 -0
  206. package/dist/server/selenium/internal.d.ts +3 -3
  207. package/dist/server/selenium/internal.js +48 -34
  208. package/dist/server/selenium/internal.js.map +1 -1
  209. package/dist/server/selenium/selenoid.js +12 -6
  210. package/dist/server/selenium/selenoid.js.map +1 -1
  211. package/dist/server/selenium/webdriver.d.ts +3 -3
  212. package/dist/server/selenium/webdriver.js +4 -8
  213. package/dist/server/selenium/webdriver.js.map +1 -1
  214. package/dist/server/shutdown.d.ts +1 -0
  215. package/dist/server/shutdown.js +23 -0
  216. package/dist/server/shutdown.js.map +1 -0
  217. package/dist/server/stories.d.ts +0 -1
  218. package/dist/server/stories.js +0 -12
  219. package/dist/server/stories.js.map +1 -1
  220. package/dist/server/telemetry.js +3 -3
  221. package/dist/server/telemetry.js.map +1 -1
  222. package/dist/server/testsFiles/parser.js +45 -5
  223. package/dist/server/testsFiles/parser.js.map +1 -1
  224. package/dist/server/utils.d.ts +23 -0
  225. package/dist/server/utils.js +113 -13
  226. package/dist/server/utils.js.map +1 -1
  227. package/dist/server/webdriver.d.ts +1 -1
  228. package/dist/server/worker/context.d.ts +3 -0
  229. package/dist/server/worker/context.js +15 -0
  230. package/dist/server/worker/context.js.map +1 -0
  231. package/dist/server/worker/match-image.d.ts +8 -12
  232. package/dist/server/worker/match-image.js +11 -178
  233. package/dist/server/worker/match-image.js.map +1 -1
  234. package/dist/server/worker/start.d.ts +2 -2
  235. package/dist/server/worker/start.js +27 -63
  236. package/dist/server/worker/start.js.map +1 -1
  237. package/dist/shared/index.d.ts +1 -1
  238. package/dist/shared/index.js +9 -7
  239. package/dist/shared/index.js.map +1 -1
  240. package/dist/types.d.ts +84 -43
  241. package/dist/types.js +65 -1
  242. package/dist/types.js.map +1 -1
  243. package/docs/cli.md +80 -0
  244. package/docs/config.md +179 -165
  245. package/docs/examples/playwright-reporer/playwright.config.ts +37 -0
  246. package/docs/migration-0.9-to-0.10.md +144 -0
  247. package/docs/playwright-reporter.md +357 -0
  248. package/docs/storybook.md +60 -0
  249. package/docs/tests.md +50 -45
  250. package/package.json +78 -83
  251. package/playwright.config.mts +46 -0
  252. package/src/client/addon/components/Addon.tsx +1 -1
  253. package/src/client/addon/components/Panel.tsx +2 -2
  254. package/src/client/addon/components/TestSelect.tsx +2 -2
  255. package/src/client/addon/components/Tools.tsx +2 -2
  256. package/src/client/addon/controller.ts +4 -4
  257. package/src/client/addon/makeDecorator.ts +69 -0
  258. package/src/client/addon/manager.ts +38 -37
  259. package/src/client/addon/preset.ts +2 -1
  260. package/src/client/addon/withCreevey.ts +10 -18
  261. package/src/client/shared/components/ImagesView/BlendView.tsx +1 -1
  262. package/src/client/shared/components/ImagesView/ImagesView.tsx +1 -1
  263. package/src/client/shared/components/ImagesView/SideBySideView.tsx +2 -2
  264. package/src/client/shared/components/ImagesView/SlideView.tsx +2 -2
  265. package/src/client/shared/components/ImagesView/SwapView.tsx +2 -2
  266. package/src/client/shared/components/ImagesView/common.ts +1 -1
  267. package/src/client/shared/components/PageFooter/PageFooter.tsx +1 -1
  268. package/src/client/shared/components/PageFooter/Paging.tsx +1 -1
  269. package/src/client/shared/components/PageHeader/ImagePreview.tsx +1 -1
  270. package/src/client/shared/components/PageHeader/PageHeader.tsx +23 -7
  271. package/src/client/shared/components/ResultsPage.tsx +6 -4
  272. package/src/client/shared/creeveyClientApi.ts +19 -1
  273. package/src/client/shared/helpers.ts +4 -24
  274. package/src/client/web/CreeveyApp.tsx +5 -2
  275. package/src/client/web/CreeveyContext.tsx +2 -0
  276. package/src/client/web/CreeveyLoader.tsx +2 -2
  277. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +3 -3
  278. package/src/client/web/CreeveyView/SideBar/Search.tsx +1 -1
  279. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +11 -6
  280. package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +21 -19
  281. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +20 -5
  282. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +10 -8
  283. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +9 -7
  284. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +2 -2
  285. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +3 -2
  286. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +1 -1
  287. package/src/client/web/index.tsx +10 -5
  288. package/src/client/web/themes.ts +24 -0
  289. package/src/creevey.ts +92 -38
  290. package/src/playwright/generator.ts +322 -0
  291. package/src/playwright/helpers.ts +31 -0
  292. package/src/playwright/reporter.ts +381 -0
  293. package/src/playwright/setup.ts +84 -0
  294. package/src/playwright.ts +1 -0
  295. package/src/server/compare.ts +260 -0
  296. package/src/server/config.ts +52 -9
  297. package/src/server/connection.ts +26 -0
  298. package/src/server/docker.ts +62 -34
  299. package/src/server/index.ts +161 -79
  300. package/src/server/master/api.ts +94 -28
  301. package/src/server/master/handlers/capture-handler.ts +20 -0
  302. package/src/server/master/handlers/index.ts +4 -0
  303. package/src/server/master/handlers/ping-handler.ts +6 -0
  304. package/src/server/master/handlers/static-handler.ts +16 -0
  305. package/src/server/master/handlers/stories-handler.ts +20 -0
  306. package/src/server/master/master.ts +10 -27
  307. package/src/server/master/pool.ts +7 -3
  308. package/src/server/master/queue.ts +21 -7
  309. package/src/server/master/runner.ts +123 -134
  310. package/src/server/master/server.ts +214 -101
  311. package/src/server/master/start.ts +19 -41
  312. package/src/server/master/testsManager.ts +316 -0
  313. package/src/server/playwright/docker-file.ts +20 -8
  314. package/src/server/playwright/docker.ts +16 -3
  315. package/src/server/playwright/index-source.mjs +16 -0
  316. package/src/server/playwright/internal.ts +169 -96
  317. package/src/server/playwright/webdriver.ts +4 -10
  318. package/src/server/providers/browser.ts +4 -3
  319. package/src/server/providers/hybrid.ts +2 -3
  320. package/src/server/report.ts +51 -0
  321. package/src/server/reporters/creevey.ts +71 -0
  322. package/src/server/reporters/index.ts +11 -0
  323. package/src/server/reporters/junit.ts +207 -0
  324. package/src/server/reporters/teamcity.ts +74 -0
  325. package/src/server/selenium/internal.ts +62 -45
  326. package/src/server/selenium/selenoid.ts +13 -6
  327. package/src/server/selenium/webdriver.ts +8 -12
  328. package/src/server/shutdown.ts +19 -0
  329. package/src/server/stories.ts +1 -12
  330. package/src/server/telemetry.ts +3 -3
  331. package/src/server/testsFiles/parser.ts +52 -4
  332. package/src/server/utils.ts +123 -14
  333. package/src/server/webdriver.ts +1 -1
  334. package/src/server/worker/context.ts +14 -0
  335. package/src/server/worker/match-image.ts +16 -248
  336. package/src/server/worker/start.ts +32 -75
  337. package/src/shared/index.ts +10 -8
  338. package/src/types.ts +91 -58
  339. package/types/global.d.ts +1 -0
  340. package/dist/client/web/assets/index-BE9CL5_G.js +0 -591
  341. package/dist/server/reporter.d.ts +0 -26
  342. package/dist/server/reporter.js +0 -108
  343. package/dist/server/reporter.js.map +0 -1
  344. package/dist/server/update.d.ts +0 -2
  345. package/dist/server/update.js +0 -53
  346. package/dist/server/update.js.map +0 -1
  347. package/src/server/reporter.ts +0 -139
  348. package/src/server/update.ts +0 -74
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "creevey",
3
3
  "description": "Cross-browser screenshot testing tool for Storybook with fancy UI Runner",
4
- "version": "0.10.0-beta.9",
4
+ "version": "0.10.0-rc.0",
5
5
  "type": "commonjs",
6
6
  "bin": "dist/cli.js",
7
7
  "main": "./dist/index.js",
@@ -12,6 +12,14 @@
12
12
  "types": "./dist/playwright.d.ts",
13
13
  "default": "./dist/playwright.js"
14
14
  },
15
+ "./playwright/setup": {
16
+ "types": "./dist/playwright/setup.d.ts",
17
+ "default": "./dist/playwright/setup.js"
18
+ },
19
+ "./playwright/reporter": {
20
+ "types": "./dist/playwright/reporter.d.ts",
21
+ "default": "./dist/playwright/reporter.js"
22
+ },
15
23
  "./selenium": {
16
24
  "types": "./dist/selenium.d.ts",
17
25
  "default": "./dist/selenium.js"
@@ -48,15 +56,16 @@
48
56
  "lint:tsc": "tsc --noEmit",
49
57
  "lint:eslint": "eslint",
50
58
  "lint:prettier": "prettier --check .",
51
- "test": "vitest",
59
+ "test": "vitest run",
60
+ "test:watch": "vitest",
52
61
  "start": "concurrently \"yarn start:client\" \"yarn start:storybook\" \"yarn start:creevey\"",
53
62
  "start:client": "vite",
54
63
  "start:storybook": "storybook dev --ci -p 6006",
55
- "start:creevey": "yarn creevey --ui",
64
+ "start:creevey": "yarn creevey test --ui",
56
65
  "creevey": "tsx ./src/cli",
57
- "creevey:github": "yarn creevey --config .creevey/github.config.mts",
58
- "creevey:gitlab": "yarn creevey --config .creevey/gitlab.config.mts",
59
- "creevey:hybrid": "yarn creevey --config .creevey/hybrid.config.mts",
66
+ "creevey:github": "yarn creevey test --config .creevey/github.config.mts",
67
+ "creevey:gitlab": "yarn creevey test --config .creevey/gitlab.config.mts",
68
+ "creevey:hybrid": "yarn creevey test --config .creevey/hybrid.config.mts",
60
69
  "fix": "concurrently \"yarn fix:eslint\" \"yarn fix:prettier\"",
61
70
  "fix:eslint": "eslint --fix",
62
71
  "fix:prettier": "prettier --write .",
@@ -64,7 +73,7 @@
64
73
  "build": "yarn prebuild && yarn build:client && yarn build:creevey && yarn postbuild",
65
74
  "build:client": "vite build",
66
75
  "build:creevey": "tsc --build tsconfig.prod.json",
67
- "postbuild": "cp \"\"scripts/dist/*.d.ts\"\" dist/",
76
+ "postbuild": "cp \"\"scripts/dist/*.d.ts\"\" dist/ && cp \"\"src/server/playwright/index-source.mjs\"\" dist/server/playwright/index-source.mjs",
68
77
  "version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",
69
78
  "build-storybook": "storybook build",
70
79
  "chromatic": "chromatic --project-token=chpt_80df83ca94e6fb4",
@@ -74,11 +83,11 @@
74
83
  "node": ">=18.0"
75
84
  },
76
85
  "peerDependencies": {
77
- "playwright": "*",
86
+ "playwright-core": "*",
78
87
  "selenium-webdriver": "*"
79
88
  },
80
89
  "peerDependenciesMeta": {
81
- "playwright": {
90
+ "playwright-core": {
82
91
  "optional": true
83
92
  },
84
93
  "selenium-webdriver": {
@@ -86,108 +95,94 @@
86
95
  }
87
96
  },
88
97
  "dependencies": {
89
- "@koa/cors": "^5.0.0",
90
- "@octokit/core": "^6.1.2",
91
- "@storybook/icons": "^1.2.12",
98
+ "@octokit/core": "^6.1.5",
99
+ "@storybook/icons": "^1.4.0",
92
100
  "@types/chai": "^4.3.20",
93
- "@types/dockerode": "^3.3.32",
94
- "@types/koa": "^2.15.0",
95
- "@types/koa-bodyparser": "^4.3.12",
96
- "@types/koa-mount": "^4.0.5",
97
- "@types/koa-static": "^4.0.4",
98
- "@types/koa__cors": "^5.0.0",
99
- "@types/lodash": "^4.17.13",
101
+ "@types/dockerode": "^3.3.39",
102
+ "@types/lodash": "^4.17.17",
100
103
  "@types/micromatch": "^4.0.9",
101
- "@types/minimist": "^1.2.5",
102
104
  "@types/pixelmatch": "^5.2.6",
103
105
  "@types/pngjs": "^6.0.5",
104
- "@types/qs": "^6.9.17",
105
- "@types/react": "^18.3.12",
106
- "@types/react-dom": "^18.3.1",
107
- "@types/selenium-webdriver": "^4.1.27",
108
- "@types/shelljs": "^0.8.15",
109
- "@types/ws": "^8.5.13",
106
+ "@types/qs": "^6.14.0",
107
+ "@types/react": "^18.3.23",
108
+ "@types/react-dom": "^18.3.7",
109
+ "@types/selenium-webdriver": "^4.1.28",
110
+ "@types/shelljs": "^0.8.16",
111
+ "@types/ws": "^8.18.1",
112
+ "cac": "^6.7.14",
110
113
  "chai": "^4.5.0",
111
114
  "chalk": "^4.1.2",
112
- "chokidar": "^4.0.1",
113
- "dockerode": "^4.0.2",
115
+ "chokidar": "^4.0.3",
116
+ "dockerode": "^4.0.6",
114
117
  "find-cache-dir": "^5.0.0",
115
118
  "get-port": "^7.1.0",
116
- "koa": "^2.15.3",
117
- "koa-bodyparser": "^4.4.1",
118
- "koa-mount": "^4.0.0",
119
- "koa-static": "^5.0.0",
120
119
  "lodash": "^4.17.21",
121
120
  "loglevel": "^1.9.2",
122
121
  "loglevel-plugin-prefix": "^0.8.4",
123
122
  "micromatch": "^4.0.8",
124
- "minimist": "^1.2.8",
125
- "odiff-bin": "^3.2.0",
123
+ "odiff-bin": "^3.2.1",
124
+ "open": "^10.1.2",
125
+ "package-manager-detector": "^0.2.11",
126
+ "pidtree": "^0.6.0",
126
127
  "pixelmatch": "^6.0.0",
127
128
  "pngjs": "^7.0.0",
128
129
  "polished": "^4.3.1",
129
- "qs": "^6.13.1",
130
- "semver": "^7.6.3",
131
- "shelljs": "^0.8.5",
130
+ "qs": "^6.14.0",
131
+ "semver": "^7.7.2",
132
+ "shelljs": "^0.9.2",
132
133
  "tar-stream": "^3.1.7",
133
- "tsx": "^4.19.2",
134
- "uuid": "^11.0.3",
135
- "ws": "^8.18.0",
136
- "yocto-spinner": "^0.1.1"
134
+ "tsx": "^4.19.4",
135
+ "uuid": "^11.1.0",
136
+ "valibot": "^1.1.0",
137
+ "ws": "^8.18.2",
138
+ "yocto-spinner": "^0.2.3"
137
139
  },
138
140
  "devDependencies": {
139
- "@chromatic-com/storybook": "^3.2.2",
140
- "@eslint/js": "^9.15.0",
141
- "@storybook/addon-essentials": "^8.4.5",
142
- "@storybook/addon-interactions": "^8.4.5",
143
- "@storybook/blocks": "^8.4.5",
144
- "@storybook/channels": "^8.4.5",
145
- "@storybook/components": "^8.4.5",
146
- "@storybook/csf": "^0.1.11",
147
- "@storybook/manager-api": "^8.4.5",
148
- "@storybook/preview-api": "^8.4.5",
149
- "@storybook/react": "^8.4.5",
150
- "@storybook/react-vite": "^8.4.5",
151
- "@storybook/test": "^8.4.5",
152
- "@storybook/theming": "^8.4.5",
153
- "@storybook/types": "^8.4.5",
141
+ "@chromatic-com/storybook": "^4.0.0",
142
+ "@eslint/js": "^9.27.0",
143
+ "@playwright/test": "^1.52.0",
144
+ "@storybook/addon-docs": "^9.0.0",
145
+ "@storybook/react-vite": "^9.0.0",
154
146
  "@types/eslint": "^9.6.1",
155
- "@types/eslint__js": "^8.42.3",
156
- "@types/node": "^18.19.64",
147
+ "@types/node": "^18.19.105",
157
148
  "@types/resize-observer-browser": "^0.1.11",
158
- "@types/semver": "^7.5.8",
149
+ "@types/semver": "^7.7.0",
159
150
  "@types/tar-stream": "^3.1.3",
160
151
  "@types/tmp": "^0.2.6",
161
- "@vitejs/plugin-react-swc": "^3.7.1",
162
- "browserstack-local": "^1.5.5",
163
- "chromatic": "^11.18.1",
164
- "concurrently": "^9.1.0",
152
+ "@typescript-eslint/parser": "^8.33.0",
153
+ "@vitejs/plugin-react-swc": "^3.10.0",
154
+ "browserstack-local": "^1.5.6",
155
+ "chromatic": "^12.0.0",
156
+ "concurrently": "^9.1.2",
165
157
  "conventional-changelog-cli": "^5.0.0",
166
- "dotenv": "^16.4.5",
167
- "eslint": "^9.15.0",
168
- "eslint-config-prettier": "^9.1.0",
169
- "eslint-plugin-prettier": "^5.2.1",
170
- "eslint-plugin-react": "^7.37.2",
171
- "eslint-plugin-react-hooks": "^5.0.0",
158
+ "dotenv": "^16.5.0",
159
+ "eslint": "^9.27.0",
160
+ "eslint-config-prettier": "^10.1.5",
161
+ "eslint-import-resolver-typescript": "^4.4.1",
162
+ "eslint-plugin-import-x": "^4.13.3",
163
+ "eslint-plugin-prettier": "^5.4.0",
164
+ "eslint-plugin-react": "^7.37.5",
165
+ "eslint-plugin-react-hooks": "^5.2.0",
166
+ "eslint-plugin-storybook": "^9.0.0",
172
167
  "git-cz": "^4.9.0",
173
- "globals": "^15.12.0",
168
+ "globals": "^16.2.0",
174
169
  "husky": "^9.1.7",
175
170
  "immer": "^10.1.1",
176
- "lint-staged": "^15.2.10",
171
+ "lint-staged": "^15.5.2",
177
172
  "pinst": "^3.0.0",
178
- "playwright-core": "^1.49.0",
179
- "prettier": "^3.3.3",
173
+ "playwright-core": "^1.52.0",
174
+ "prettier": "^3.5.3",
180
175
  "react": "^18.3.1",
181
176
  "react-dom": "^18.3.1",
182
177
  "react-is": "^18.3.1",
183
- "selenium-webdriver": "^4.26.0",
184
- "storybook": "^8.4.5",
178
+ "selenium-webdriver": "^4.33.0",
179
+ "storybook": "^9.0.0",
185
180
  "tmp": "^0.2.3",
186
- "typescript": "^5.6.3",
187
- "typescript-eslint": "^8.15.0",
188
- "use-immer": "^0.10.0",
189
- "vite": "^5.4.11",
190
- "vitest": "^2.1.5"
181
+ "typescript": "^5.8.3",
182
+ "typescript-eslint": "^8.33.0",
183
+ "use-immer": "^0.11.0",
184
+ "vite": "^6.3.5",
185
+ "vitest": "^3.1.4"
191
186
  },
192
187
  "config": {
193
188
  "commitizen": {
@@ -207,7 +202,7 @@
207
202
  "displayName": "Creevey"
208
203
  },
209
204
  "volta": {
210
- "node": "20.16.0",
211
- "yarn": "4.4.0"
212
- }
205
+ "node": "22.15.0"
206
+ },
207
+ "packageManager": "yarn@4.9.1"
213
208
  }
@@ -0,0 +1,46 @@
1
+ import { defineConfig, devices } from '@playwright/test';
2
+
3
+ // NOTE: Default reporter for playwright
4
+ const defaultReporter = process.env.CI ? 'dot' : 'list';
5
+
6
+ export default defineConfig({
7
+ testDir: './tests',
8
+ snapshotDir: './stories/pw-images',
9
+ outputDir: './report',
10
+ testMatch: 'playwright.spec.ts',
11
+ globalSetup: './src/playwright/setup.ts',
12
+ fullyParallel: true,
13
+ forbidOnly: !!process.env.CI,
14
+ retries: process.env.CI ? 2 : 0,
15
+ reporter: [
16
+ !process.env.PWDEBUG ? [defaultReporter] : ['null'],
17
+ ['./src/playwright/reporter.ts', { debug: !!process.env.PWDEBUG }],
18
+ // NOTE: use `playwright test --ui` to run tests with Creevey reporter
19
+ ],
20
+ use: {
21
+ baseURL: 'http://localhost:6006',
22
+ trace: 'on-first-retry',
23
+ },
24
+ projects: [
25
+ {
26
+ name: 'chromium',
27
+ use: { ...devices['Desktop Chrome'] },
28
+ metadata: {
29
+ storybookGlobals: {},
30
+ },
31
+ },
32
+ // {
33
+ // name: 'firefox',
34
+ // use: { ...devices['Desktop Firefox'] },
35
+ // },
36
+ // {
37
+ // name: 'webkit',
38
+ // use: { ...devices['Desktop Safari'] },
39
+ // },
40
+ ],
41
+ webServer: {
42
+ command: 'yarn start:storybook',
43
+ url: 'http://localhost:6006',
44
+ reuseExistingServer: !process.env.CI,
45
+ },
46
+ });
@@ -1,5 +1,5 @@
1
1
  import React, { JSX, useEffect, useState } from 'react';
2
- import { Placeholder } from '@storybook/components';
2
+ import { Placeholder } from 'storybook/internal/components';
3
3
  import { TestData } from '../../../types.js';
4
4
  import { Panel } from './Panel.js';
5
5
  import { CreeveyController } from '../controller.js';
@@ -1,6 +1,6 @@
1
1
  import React, { JSX } from 'react';
2
- import { Loader } from '@storybook/components';
3
- import { styled } from '@storybook/theming';
2
+ import { Loader } from 'storybook/internal/components';
3
+ import { styled } from 'storybook/theming';
4
4
  import { noop, TestData } from '../../../types.js';
5
5
  import { ResultsPage } from '../../shared/components/ResultsPage.js';
6
6
  import { getTestPath } from '../../shared/helpers.js';
@@ -1,7 +1,7 @@
1
1
  import React, { JSX } from 'react';
2
- import { Button, TooltipLinkList, WithTooltip } from '@storybook/components';
2
+ import { Button, TooltipLinkList, WithTooltip } from 'storybook/internal/components';
3
3
  import { MenuIcon } from '@storybook/icons';
4
- import { styled } from '@storybook/theming';
4
+ import { styled } from 'storybook/theming';
5
5
  import { TestData } from '../../../types.js';
6
6
  import { getEmojiByTestStatus } from '../utils.js';
7
7
 
@@ -1,8 +1,8 @@
1
1
  import React, { JSX, Fragment, useState, useEffect } from 'react';
2
2
  import { stringify } from 'qs';
3
- import { IconButton, Separator } from '@storybook/components';
3
+ import { IconButton, Separator } from 'storybook/internal/components';
4
4
  import { StopIcon, ShareAltIcon, PlayIcon } from '@storybook/icons';
5
- import { styled } from '@storybook/theming';
5
+ import { styled } from 'storybook/theming';
6
6
  import { ForwardIcon, NextIcon } from './Icons.js';
7
7
  import { isDefined, TestData } from '../../../types.js';
8
8
  import { getTestPath, useForceUpdate } from '../../shared/helpers.js';
@@ -1,4 +1,4 @@
1
- import { Addon_TypesEnum } from '@storybook/types';
1
+ import { Addon_TypesEnum } from 'storybook/internal/types';
2
2
  import { denormalizeStoryParameters } from '../../shared/index.js';
3
3
  import {
4
4
  CreeveyStatus,
@@ -12,17 +12,17 @@ import {
12
12
  import { initCreeveyClientApi, CreeveyClientApi } from '../shared/creeveyClientApi.js';
13
13
  import { calcStatus } from '../shared/helpers.js';
14
14
  import { getEmojiByTestStatus } from './utils.js';
15
- import { API } from '@storybook/manager-api';
15
+ import { API } from 'storybook/manager-api';
16
16
 
17
17
  export const ADDON_ID = 'creevey';
18
18
 
19
19
  // TODO Add `useController` hook
20
- // TODO use `import { useGlobals, useStorybookApi } from '@storybook/manager-api';`
20
+ // TODO use `import { useGlobals, useStorybookApi } from 'storybook/manager-api';`
21
21
  export class CreeveyController {
22
22
  storyId = '';
23
23
  activeBrowser = '';
24
24
  selectedTestId = '';
25
- status: CreeveyStatus = { isRunning: false, tests: {}, browsers: [] };
25
+ status: CreeveyStatus = { isRunning: false, tests: {}, browsers: [], isUpdateMode: false };
26
26
  creeveyApi: CreeveyClientApi | null = null;
27
27
  stories: StoriesRaw = {};
28
28
 
@@ -0,0 +1,69 @@
1
+ // NOTE: This file is a modified version of the makeDecorator function from Storybook.
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import type { Addon_StoryContext, Addon_LegacyStoryFn, Addon_StoryWrapper } from 'storybook/internal/types';
4
+
5
+ export interface MakeDecoratorOptions {
6
+ name: string;
7
+ parameterName: string;
8
+ skipIfNoParametersOrOptions?: boolean;
9
+ wrapper: Addon_StoryWrapper;
10
+ }
11
+
12
+ export type MakeDecoratorResult = (...args: any) => any;
13
+
14
+ export const makeDecorator = ({
15
+ name,
16
+ parameterName,
17
+ wrapper,
18
+ skipIfNoParametersOrOptions = false,
19
+ }: MakeDecoratorOptions): MakeDecoratorResult => {
20
+ const decorator = (options?: object) => (storyFn: Addon_LegacyStoryFn, context: Addon_StoryContext) => {
21
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition
22
+ const parameters = context.parameters?.[parameterName];
23
+
24
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
25
+ if (parameters?.disable) {
26
+ return storyFn(context);
27
+ }
28
+
29
+ if (skipIfNoParametersOrOptions && !options && !parameters) {
30
+ return storyFn(context);
31
+ }
32
+
33
+ // @ts-expect-error - decorator is a function that returns a function
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment
35
+ return wrapper(storyFn, context, { options, parameters });
36
+ };
37
+
38
+ return (...args: any) => {
39
+ // Used without options as .addDecorator(decorator)
40
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
41
+ if (typeof args[0] === 'function') {
42
+ // @ts-expect-error - decorator is a function that returns a function
43
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument
44
+ return decorator()(...args);
45
+ }
46
+
47
+ return (...innerArgs: any): any => {
48
+ // Used as [.]addDecorator(decorator(options))
49
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
50
+ if (innerArgs.length > 1) {
51
+ // Used as [.]addDecorator(decorator(option1, option2))
52
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
53
+ if (args.length > 1) {
54
+ // @ts-expect-error - decorator is a function that returns a function
55
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
56
+ return decorator(args)(...innerArgs);
57
+ }
58
+ // @ts-expect-error - decorator is a function that returns a function
59
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
60
+ return decorator(...args)(...innerArgs);
61
+ }
62
+
63
+ throw new Error(
64
+ `Passing stories directly into ${name}() is not allowed,
65
+ instead use addDecorator(${name}) and pass options with the '${parameterName}' parameter`,
66
+ );
67
+ };
68
+ };
69
+ };
@@ -1,44 +1,45 @@
1
- import React from 'react';
2
- import { Addon_TypesEnum } from '@storybook/types';
3
- import { addons, API } from '@storybook/manager-api';
4
- import { Addon } from './components/Addon.js';
5
- import { Tools } from './components/Tools.js';
6
- import { CreeveyController, ADDON_ID } from './controller.js';
1
+ // TODO: Disable manager for now until fully reworked
2
+ // import React from 'react';
3
+ // import { Addon_TypesEnum } from 'storybook/internal/types';
4
+ // import { addons, API } from 'storybook/manager-api';
5
+ // import { Addon } from './components/Addon.js';
6
+ // import { Tools } from './components/Tools.js';
7
+ // import { CreeveyController, ADDON_ID } from './controller.js';
7
8
 
8
- // TODO Take api from `import { useGlobals, useStorybookApi } from '@storybook/manager-api';`
9
- addons.register(ADDON_ID, (api) => {
10
- void registerCreeveyPanels(api);
11
- });
9
+ // // TODO Take api from `import { useGlobals, useStorybookApi } from 'storybook/manager-api';`
10
+ // addons.register(ADDON_ID, (api) => {
11
+ // void registerCreeveyPanels(api);
12
+ // });
12
13
 
13
- async function registerCreeveyPanels(storybookApi: API): Promise<void> {
14
- const controller = new CreeveyController(storybookApi);
14
+ // async function registerCreeveyPanels(storybookApi: API): Promise<void> {
15
+ // const controller = new CreeveyController(storybookApi);
15
16
 
16
- addons.add(`${ADDON_ID}/panel/run`, {
17
- title: `Creevey/Run`,
18
- match: ({ viewMode }) => !!(viewMode && /^story$/.exec(viewMode)),
19
- type: Addon_TypesEnum.TOOL,
17
+ // addons.add(`${ADDON_ID}/panel/run`, {
18
+ // title: `Creevey/Run`,
19
+ // match: ({ viewMode }) => !!(viewMode && /^story$/.exec(viewMode)),
20
+ // type: Addon_TypesEnum.TOOL,
20
21
 
21
- render: () => React.createElement(Tools, { controller }),
22
- });
23
- await controller.initAll();
24
- const browsers = controller.getBrowsers();
22
+ // render: () => React.createElement(Tools, { controller }),
23
+ // });
24
+ // await controller.initAll();
25
+ // const browsers = controller.getBrowsers();
25
26
 
26
- browsers.forEach((browser) => {
27
- const panelId = `${ADDON_ID}/panel/${browser}`;
28
- const title = controller.getTabTitle(browser);
29
- addons.add(panelId, {
30
- title,
31
- type: Addon_TypesEnum.PANEL,
32
- paramKey: browser,
27
+ // browsers.forEach((browser) => {
28
+ // const panelId = `${ADDON_ID}/panel/${browser}`;
29
+ // const title = controller.getTabTitle(browser);
30
+ // addons.add(panelId, {
31
+ // title,
32
+ // type: Addon_TypesEnum.PANEL,
33
+ // paramKey: browser,
33
34
 
34
- // NOTE key = PANEL_ID needs to correct render button in addons panel
35
+ // // NOTE key = PANEL_ID needs to correct render button in addons panel
35
36
 
36
- render: ({ active }) =>
37
- React.createElement(Addon, {
38
- active,
39
- controller,
40
- browser,
41
- }),
42
- });
43
- });
44
- }
37
+ // render: ({ active }) =>
38
+ // React.createElement(Addon, {
39
+ // active,
40
+ // controller,
41
+ // browser,
42
+ // }),
43
+ // });
44
+ // });
45
+ // }
@@ -1,3 +1,4 @@
1
1
  export const previewAnnotations = [require.resolve('./preview')];
2
2
 
3
- export const managerEntries = [require.resolve('./manager')];
3
+ // TODO: Disable manager for now until fully reworked
4
+ // export const managerEntries = [require.resolve('./manager')];
@@ -1,6 +1,6 @@
1
- import type { Renderer, StoryContextForEnhancers } from '@storybook/csf';
2
- import { makeDecorator, PreviewWeb, StoryStore } from '@storybook/preview-api';
3
- import { Channel } from '@storybook/channels';
1
+ import type { Renderer } from 'storybook/internal/types';
2
+ import type { PreviewWeb, StoryStore } from 'storybook/preview-api';
3
+ import { Channel } from 'storybook/internal/channels';
4
4
  import {
5
5
  CaptureOptions,
6
6
  CreeveyStoryParams,
@@ -13,9 +13,13 @@ import {
13
13
  import { serializeRawStories } from '../../shared/index.js';
14
14
  import { getConnectionUrl } from '../shared/helpers.js';
15
15
  import isEqual from 'lodash/isEqual.js';
16
+ import { makeDecorator } from './makeDecorator.js';
16
17
 
18
+ // TODO: Get rid of __CREEVEY_ prefixed variables, use storybook api directly
19
+ // TODO: Remove __CREEVEY_SET_READY_FOR_CAPTURE__ and `capture` function, because it seems not used, but we need to rethink how to write proper tests in play function
17
20
  declare global {
18
21
  interface Window {
22
+ __CREEVEY_ENV__: boolean;
19
23
  __CREEVEY_SERVER_HOST__: string;
20
24
  __CREEVEY_SERVER_PORT__: number;
21
25
  __CREEVEY_WORKER_ID__: number;
@@ -119,7 +123,6 @@ function initCreeveyState(): void {
119
123
 
120
124
  if (prevState.creeveyHost) window.__CREEVEY_SERVER_HOST__ = prevState.creeveyHost;
121
125
  if (prevState.creeveyPort) window.__CREEVEY_SERVER_PORT__ = prevState.creeveyPort;
122
- if (prevState.setStoriesCounter) setStoriesCounter = prevState.setStoriesCounter;
123
126
  if (prevState.isTestBrowser) isTestBrowser = prevState.isTestBrowser;
124
127
 
125
128
  window.addEventListener('beforeunload', () => {
@@ -128,7 +131,6 @@ function initCreeveyState(): void {
128
131
  JSON.stringify({
129
132
  creeveyHost: window.__CREEVEY_SERVER_HOST__,
130
133
  creeveyPort: window.__CREEVEY_SERVER_PORT__,
131
- setStoriesCounter,
132
134
  isTestBrowser,
133
135
  } as CreeveyTestsState),
134
136
  );
@@ -139,7 +141,6 @@ let isTestBrowser = false;
139
141
  let captureResolver: () => void;
140
142
  let waitForCreevey: Promise<void>;
141
143
  let creeveyReady: () => void;
142
- let setStoriesCounter = 0;
143
144
  let globals = {};
144
145
 
145
146
  export function withCreevey(): ReturnType<typeof makeDecorator> {
@@ -158,20 +159,9 @@ export function withCreevey(): ReturnType<typeof makeDecorator> {
158
159
  document.head.appendChild(style);
159
160
  }
160
161
 
162
+ // TODO Find a way to send stories updates to the server
161
163
  async function getStories(): Promise<StoriesRaw | undefined> {
162
164
  const stories = serializeRawStories(await window.__STORYBOOK_PREVIEW__.extract());
163
- const storiesByFiles = new Map<string, StoryContextForEnhancers[]>();
164
- Object.values(stories).forEach((story) => {
165
- const fileName = story.parameters.fileName as string;
166
- const storiesFromFile = storiesByFiles.get(fileName);
167
- if (storiesFromFile) storiesFromFile.push(story);
168
- else storiesByFiles.set(fileName, [story]);
169
- });
170
- void fetch(`http://${getConnectionUrl()}/stories`, {
171
- method: 'POST',
172
- headers: { 'Content-Type': 'application/json' },
173
- body: JSON.stringify({ setStoriesCounter, stories: [...storiesByFiles.entries()] }),
174
- });
175
165
  return stories;
176
166
  }
177
167
 
@@ -279,6 +269,7 @@ export function withCreevey(): ReturnType<typeof makeDecorator> {
279
269
  });
280
270
  }
281
271
 
272
+ window.__CREEVEY_ENV__ = false;
282
273
  window.__CREEVEY_GET_STORIES__ = getStories;
283
274
  window.__CREEVEY_SELECT_STORY__ = selectStory;
284
275
  window.__CREEVEY_UPDATE_GLOBALS__ = updateGlobals;
@@ -320,6 +311,7 @@ export function withCreevey(): ReturnType<typeof makeDecorator> {
320
311
  });
321
312
  }
322
313
 
314
+ // TODO It's not accessible from the outside the package
323
315
  export async function capture(options?: CaptureOptions): Promise<void> {
324
316
  if (!isTestBrowser) return;
325
317
 
@@ -1,5 +1,5 @@
1
1
  import React, { JSX, useEffect, useRef } from 'react';
2
- import { styled, withTheme } from '@storybook/theming';
2
+ import { styled, withTheme } from 'storybook/theming';
3
3
  import { ViewPropsWithTheme, getBorderColor, themeBorderColors } from './common.js';
4
4
  import { useApplyScale, useCalcScale, useLoadImages } from '../../helpers.js';
5
5
  import { readyForCapture } from '../../../addon/readyForCapture.js';
@@ -1,5 +1,5 @@
1
1
  import React, { JSX, FunctionComponent } from 'react';
2
- import { styled, withTheme } from '@storybook/theming';
2
+ import { styled, withTheme } from 'storybook/theming';
3
3
  import { SideBySideView } from './SideBySideView.js';
4
4
  import { SwapView } from './SwapView.js';
5
5
  import { SlideView } from './SlideView.js';
@@ -1,6 +1,6 @@
1
1
  import React, { JSX, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
2
- import { Loader } from '@storybook/components';
3
- import { styled, withTheme } from '@storybook/theming';
2
+ import { Loader } from 'storybook/internal/components';
3
+ import { styled, withTheme } from 'storybook/theming';
4
4
  import { ViewPropsWithTheme, getBorderColor, themeBorderColors } from './common.js';
5
5
  import { useApplyScale, useLoadImages, useResizeObserver, getBorderSize } from '../../helpers.js';
6
6
  import { readyForCapture } from '../../../addon/readyForCapture.js';
@@ -1,6 +1,6 @@
1
1
  import React, { JSX, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
2
- import { Loader } from '@storybook/components';
3
- import { styled, withTheme } from '@storybook/theming';
2
+ import { Loader } from 'storybook/internal/components';
3
+ import { styled, withTheme } from 'storybook/theming';
4
4
  import { getBorderColor, themeBorderColors, ViewPropsWithTheme } from './common.js';
5
5
  import { useApplyScale, useCalcScale, useLoadImages } from '../../helpers.js';
6
6
  import { readyForCapture } from '../../../addon/readyForCapture.js';