creevey 0.9.0-beta.2 → 0.9.0-beta.21

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 (518) hide show
  1. package/.yarnrc.yml +1 -0
  2. package/CHANGELOG.md +51 -0
  3. package/README.md +11 -3
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +5 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/client/addon/components/Addon.d.ts +8 -0
  8. package/dist/client/addon/components/Addon.js +57 -0
  9. package/dist/client/addon/components/Addon.js.map +1 -0
  10. package/dist/client/addon/components/Icons.js +18 -0
  11. package/dist/client/addon/components/Icons.js.map +1 -0
  12. package/{lib/types → dist}/client/addon/components/Panel.d.ts +1 -1
  13. package/dist/client/addon/components/Panel.js +32 -0
  14. package/dist/client/addon/components/Panel.js.map +1 -0
  15. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +1 -2
  16. package/dist/client/addon/components/TestSelect.js +33 -0
  17. package/dist/client/addon/components/TestSelect.js.map +1 -0
  18. package/dist/client/addon/components/Tools.d.ts +6 -0
  19. package/dist/client/addon/components/Tools.js +89 -0
  20. package/dist/client/addon/components/Tools.js.map +1 -0
  21. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +9 -8
  22. package/dist/client/addon/controller.js +208 -0
  23. package/dist/client/addon/controller.js.map +1 -0
  24. package/dist/client/addon/decorator.d.ts +1 -0
  25. package/dist/client/addon/decorator.js +6 -0
  26. package/dist/client/addon/decorator.js.map +1 -0
  27. package/dist/client/addon/index.d.ts +2 -0
  28. package/dist/client/addon/index.js +19 -0
  29. package/dist/client/addon/index.js.map +1 -0
  30. package/dist/client/addon/manager.js +41 -0
  31. package/dist/client/addon/manager.js.map +1 -0
  32. package/dist/client/addon/preset.d.ts +2 -0
  33. package/dist/client/addon/preset.js +6 -0
  34. package/dist/client/addon/preset.js.map +1 -0
  35. package/dist/client/addon/preview.d.ts +4 -0
  36. package/dist/client/addon/preview.js +8 -0
  37. package/dist/client/addon/preview.js.map +1 -0
  38. package/dist/client/addon/readyForCapture.js +7 -0
  39. package/dist/client/addon/readyForCapture.js.map +1 -0
  40. package/{lib/types → dist}/client/addon/utils.d.ts +2 -1
  41. package/dist/client/addon/utils.js +27 -0
  42. package/dist/client/addon/utils.js.map +1 -0
  43. package/{lib/types → dist}/client/addon/withCreevey.d.ts +6 -5
  44. package/dist/client/addon/withCreevey.js +286 -0
  45. package/dist/client/addon/withCreevey.js.map +1 -0
  46. package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
  47. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  48. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  49. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  50. package/dist/client/shared/components/ImagesView/ImagesView.js +43 -0
  51. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  52. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
  53. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  54. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  55. package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
  56. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  57. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  58. package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
  59. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  60. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  61. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +1 -11
  62. package/dist/client/shared/components/ImagesView/common.js +14 -0
  63. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  64. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  65. package/dist/client/shared/components/ImagesView/index.js +14 -0
  66. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  67. package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +0 -1
  68. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
  69. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  70. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +1 -2
  71. package/dist/client/shared/components/PageFooter/Paging.js +68 -0
  72. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  73. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  74. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  75. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  76. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +2 -5
  77. package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
  78. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  79. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +5 -5
  80. package/dist/client/shared/components/ResultsPage.js +95 -0
  81. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  82. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +1 -1
  83. package/dist/client/shared/creeveyClientApi.js +53 -0
  84. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  85. package/{lib/types → dist}/client/shared/helpers.d.ts +3 -3
  86. package/dist/client/shared/helpers.js +381 -0
  87. package/dist/client/shared/helpers.js.map +1 -0
  88. package/{lib/types → dist}/client/shared/viewMode.d.ts +1 -1
  89. package/dist/client/shared/viewMode.js +11 -0
  90. package/dist/client/shared/viewMode.js.map +1 -0
  91. package/dist/client/web/202.js +1 -0
  92. package/dist/client/web/270.js +43 -0
  93. package/dist/client/web/752.js +1 -0
  94. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +2 -3
  95. package/dist/client/web/CreeveyApp.js +130 -0
  96. package/dist/client/web/CreeveyApp.js.map +1 -0
  97. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +1 -1
  98. package/dist/client/web/CreeveyContext.js +17 -0
  99. package/dist/client/web/CreeveyContext.js.map +1 -0
  100. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  101. package/dist/client/web/CreeveyLoader.js +52 -0
  102. package/dist/client/web/CreeveyLoader.js.map +1 -0
  103. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +6 -3
  104. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  105. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  106. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  107. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  108. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +2 -2
  109. package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
  110. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  111. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +2 -3
  112. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  113. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  114. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
  115. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  116. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  117. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -2
  118. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  119. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  120. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +4 -2
  121. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  122. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  123. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  124. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  125. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  126. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  127. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  128. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  129. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  130. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  131. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +6 -4
  132. package/dist/client/web/KeyboardEventsContext.js +116 -0
  133. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  134. package/{lib/types → dist}/client/web/index.d.ts +1 -1
  135. package/{lib/cjs → dist}/client/web/index.html +12 -3
  136. package/dist/client/web/index.js +75 -0
  137. package/dist/client/web/index.js.map +1 -0
  138. package/dist/client/web/main.js +79 -0
  139. package/dist/client/web/main.js.LICENSE.txt +34 -0
  140. package/dist/creevey.d.ts +1 -0
  141. package/dist/creevey.js +52 -0
  142. package/dist/creevey.js.map +1 -0
  143. package/dist/index.d.ts +5 -0
  144. package/dist/index.js +24 -0
  145. package/dist/index.js.map +1 -0
  146. package/{lib/types → dist}/server/config.d.ts +1 -1
  147. package/dist/server/config.js +84 -0
  148. package/dist/server/config.js.map +1 -0
  149. package/{lib/types → dist}/server/docker.d.ts +2 -2
  150. package/dist/server/docker.js +122 -0
  151. package/dist/server/docker.js.map +1 -0
  152. package/{lib/types → dist}/server/index.d.ts +1 -1
  153. package/dist/server/index.js +47 -0
  154. package/dist/server/index.js.map +1 -0
  155. package/dist/server/logger.d.ts +10 -0
  156. package/dist/server/logger.js +25 -0
  157. package/dist/server/logger.js.map +1 -0
  158. package/{lib/types → dist}/server/master/api.d.ts +1 -1
  159. package/dist/server/master/api.js +50 -0
  160. package/dist/server/master/api.js.map +1 -0
  161. package/dist/server/master/index.d.ts +3 -0
  162. package/dist/server/master/index.js +110 -0
  163. package/dist/server/master/index.js.map +1 -0
  164. package/{lib/types → dist}/server/master/master.d.ts +2 -2
  165. package/dist/server/master/master.js +40 -0
  166. package/dist/server/master/master.js.map +1 -0
  167. package/{lib/types → dist}/server/master/pool.d.ts +1 -2
  168. package/dist/server/master/pool.js +186 -0
  169. package/dist/server/master/pool.js.map +1 -0
  170. package/{lib/types → dist}/server/master/runner.d.ts +3 -8
  171. package/dist/server/master/runner.js +172 -0
  172. package/dist/server/master/runner.js.map +1 -0
  173. package/dist/server/master/server.d.ts +2 -0
  174. package/dist/server/master/server.js +114 -0
  175. package/dist/server/master/server.js.map +1 -0
  176. package/{lib/types → dist}/server/messages.d.ts +13 -14
  177. package/dist/server/messages.js +222 -0
  178. package/dist/server/messages.js.map +1 -0
  179. package/{lib/types → dist}/server/selenium/browser.d.ts +5 -3
  180. package/dist/server/selenium/browser.js +634 -0
  181. package/dist/server/selenium/browser.js.map +1 -0
  182. package/dist/server/selenium/index.d.ts +2 -0
  183. package/dist/server/selenium/index.js +19 -0
  184. package/dist/server/selenium/index.js.map +1 -0
  185. package/{lib/types → dist}/server/selenium/selenoid.d.ts +1 -1
  186. package/dist/server/selenium/selenoid.js +120 -0
  187. package/dist/server/selenium/selenoid.js.map +1 -0
  188. package/{lib/types → dist}/server/stories.d.ts +2 -7
  189. package/dist/server/stories.js +92 -0
  190. package/dist/server/stories.js.map +1 -0
  191. package/dist/server/storybook/providers/browser.d.ts +2 -0
  192. package/dist/server/storybook/providers/browser.js +60 -0
  193. package/dist/server/storybook/providers/browser.js.map +1 -0
  194. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  195. package/dist/server/storybook/providers/hybrid.js +59 -0
  196. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  197. package/dist/server/telemetry.d.ts +2 -0
  198. package/dist/server/telemetry.js +196 -0
  199. package/dist/server/telemetry.js.map +1 -0
  200. package/{lib/types → dist}/server/testsFiles/parser.d.ts +2 -6
  201. package/dist/server/testsFiles/parser.js +50 -0
  202. package/dist/server/testsFiles/parser.js.map +1 -0
  203. package/dist/server/update.d.ts +2 -0
  204. package/dist/server/update.js +53 -0
  205. package/dist/server/update.js.map +1 -0
  206. package/{lib/types → dist}/server/utils.d.ts +11 -7
  207. package/dist/server/utils.js +142 -0
  208. package/dist/server/utils.js.map +1 -0
  209. package/{lib/types → dist}/server/worker/chai-image.d.ts +1 -2
  210. package/dist/server/worker/chai-image.js +113 -0
  211. package/dist/server/worker/chai-image.js.map +1 -0
  212. package/{lib/types → dist}/server/worker/helpers.d.ts +1 -1
  213. package/dist/server/worker/helpers.js +57 -0
  214. package/dist/server/worker/helpers.js.map +1 -0
  215. package/dist/server/worker/index.d.ts +1 -0
  216. package/dist/server/worker/index.js +6 -0
  217. package/dist/server/worker/index.js.map +1 -0
  218. package/dist/server/worker/reporter.js +130 -0
  219. package/dist/server/worker/reporter.js.map +1 -0
  220. package/dist/server/worker/worker.d.ts +4 -0
  221. package/dist/server/worker/worker.js +213 -0
  222. package/dist/server/worker/worker.js.map +1 -0
  223. package/dist/shared/index.d.ts +7 -0
  224. package/dist/shared/index.js +77 -0
  225. package/dist/shared/index.js.map +1 -0
  226. package/dist/shared/serializeRegExp.d.ts +9 -0
  227. package/dist/shared/serializeRegExp.js +25 -0
  228. package/dist/shared/serializeRegExp.js.map +1 -0
  229. package/{lib/types → dist}/types.d.ts +73 -103
  230. package/dist/types.js +61 -0
  231. package/dist/types.js.map +1 -0
  232. package/docs/config.md +30 -30
  233. package/docs/tests.md +3 -3
  234. package/eslint.config.mjs +62 -0
  235. package/manager/README.md +3 -0
  236. package/manager/package.json +3 -0
  237. package/package.json +137 -165
  238. package/preset/README.md +3 -0
  239. package/preset/package.json +3 -0
  240. package/preview/README.md +3 -0
  241. package/preview/package.json +3 -0
  242. package/src/cli.ts +3 -0
  243. package/src/client/addon/components/Addon.tsx +53 -0
  244. package/src/client/addon/components/Icons.tsx +28 -0
  245. package/src/client/addon/components/Panel.tsx +53 -0
  246. package/src/client/addon/components/TestSelect.tsx +48 -0
  247. package/src/client/addon/components/Tools.tsx +93 -0
  248. package/src/client/addon/controller.ts +224 -0
  249. package/src/client/addon/decorator.ts +3 -0
  250. package/src/client/addon/index.ts +2 -0
  251. package/src/client/addon/manager.ts +44 -0
  252. package/src/client/addon/preset.ts +3 -0
  253. package/src/client/addon/preview.ts +7 -0
  254. package/src/client/addon/readyForCapture.ts +9 -0
  255. package/src/client/addon/utils.tsx +24 -0
  256. package/src/client/addon/withCreevey.ts +326 -0
  257. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  258. package/src/client/shared/components/ImagesView/ImagesView.tsx +62 -0
  259. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  260. package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
  261. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  262. package/src/client/shared/components/ImagesView/common.ts +23 -0
  263. package/src/client/shared/components/ImagesView/index.ts +5 -0
  264. package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
  265. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  266. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  267. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  268. package/src/client/shared/components/ResultsPage.tsx +135 -0
  269. package/src/client/shared/creeveyClientApi.ts +64 -0
  270. package/src/client/shared/helpers.ts +422 -0
  271. package/src/client/shared/viewMode.ts +10 -0
  272. package/src/client/web/CreeveyApp.tsx +177 -0
  273. package/src/client/web/CreeveyContext.tsx +20 -0
  274. package/src/client/web/CreeveyLoader.tsx +56 -0
  275. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  276. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  277. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
  278. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  279. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  280. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  281. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  282. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  283. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  284. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  285. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  286. package/src/client/web/index.html +28 -0
  287. package/src/client/web/index.tsx +63 -0
  288. package/src/creevey.ts +47 -0
  289. package/src/index.ts +4 -0
  290. package/src/server/config.ts +83 -0
  291. package/src/server/docker.ts +136 -0
  292. package/src/server/index.ts +51 -0
  293. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  294. package/src/server/master/api.ts +55 -0
  295. package/src/server/master/index.ts +111 -0
  296. package/src/server/master/master.ts +47 -0
  297. package/src/server/master/pool.ts +203 -0
  298. package/src/server/master/runner.ts +189 -0
  299. package/src/server/master/server.ts +124 -0
  300. package/src/server/messages.ts +273 -0
  301. package/src/server/selenium/browser.ts +834 -0
  302. package/src/server/selenium/index.ts +2 -0
  303. package/src/server/selenium/selenoid.ts +154 -0
  304. package/src/server/stories.ts +133 -0
  305. package/src/server/storybook/providers/browser.ts +58 -0
  306. package/src/server/storybook/providers/hybrid.ts +70 -0
  307. package/src/server/telemetry.ts +212 -0
  308. package/src/server/testsFiles/parser.ts +60 -0
  309. package/src/server/update.ts +74 -0
  310. package/src/server/utils.ts +184 -0
  311. package/src/server/worker/chai-image.ts +147 -0
  312. package/src/server/worker/helpers.ts +61 -0
  313. package/src/server/worker/index.ts +1 -0
  314. package/src/server/worker/reporter.ts +170 -0
  315. package/src/server/worker/worker.ts +234 -0
  316. package/src/shared/index.ts +76 -0
  317. package/src/shared/serializeRegExp.ts +26 -0
  318. package/src/types.ts +500 -0
  319. package/types/chai.d.ts +0 -1
  320. package/types/global.d.ts +5 -0
  321. package/types/mocha.d.ts +1 -1
  322. package/webpack.config.mjs +46 -0
  323. package/lib/cjs/cli.js +0 -5
  324. package/lib/cjs/client/addon/Manager.js +0 -412
  325. package/lib/cjs/client/addon/components/Addon.js +0 -76
  326. package/lib/cjs/client/addon/components/Icons.js +0 -42
  327. package/lib/cjs/client/addon/components/Panel.js +0 -68
  328. package/lib/cjs/client/addon/components/TestSelect.js +0 -63
  329. package/lib/cjs/client/addon/components/Tools.js +0 -114
  330. package/lib/cjs/client/addon/decorator.js +0 -11
  331. package/lib/cjs/client/addon/preset.js +0 -81
  332. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  333. package/lib/cjs/client/addon/register.js +0 -96
  334. package/lib/cjs/client/addon/utils.js +0 -38
  335. package/lib/cjs/client/addon/withCreevey.js +0 -531
  336. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
  337. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
  338. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
  339. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -179
  340. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
  341. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  342. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
  343. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
  344. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
  345. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
  346. package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
  347. package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
  348. package/lib/cjs/client/shared/helpers.js +0 -482
  349. package/lib/cjs/client/shared/viewMode.js +0 -17
  350. package/lib/cjs/client/web/1.js +0 -13
  351. package/lib/cjs/client/web/2.js +0 -1
  352. package/lib/cjs/client/web/main.js +0 -38
  353. package/lib/cjs/creevey.js +0 -71
  354. package/lib/cjs/index.js +0 -62
  355. package/lib/cjs/server/config.js +0 -96
  356. package/lib/cjs/server/docker.js +0 -150
  357. package/lib/cjs/server/extract.js +0 -50
  358. package/lib/cjs/server/index.js +0 -83
  359. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  360. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  361. package/lib/cjs/server/loaders/babel/register.js +0 -126
  362. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  363. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  364. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  365. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  366. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  367. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  368. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  369. package/lib/cjs/server/logger.js +0 -47
  370. package/lib/cjs/server/master/api.js +0 -71
  371. package/lib/cjs/server/master/index.js +0 -146
  372. package/lib/cjs/server/master/master.js +0 -57
  373. package/lib/cjs/server/master/pool.js +0 -206
  374. package/lib/cjs/server/master/runner.js +0 -294
  375. package/lib/cjs/server/master/server.js +0 -129
  376. package/lib/cjs/server/messages.js +0 -266
  377. package/lib/cjs/server/selenium/browser.js +0 -680
  378. package/lib/cjs/server/selenium/index.js +0 -31
  379. package/lib/cjs/server/selenium/selenoid.js +0 -174
  380. package/lib/cjs/server/stories.js +0 -170
  381. package/lib/cjs/server/storybook/entry.js +0 -68
  382. package/lib/cjs/server/storybook/helpers.js +0 -165
  383. package/lib/cjs/server/storybook/providers/browser.js +0 -78
  384. package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
  385. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  386. package/lib/cjs/server/testsFiles/parser.js +0 -72
  387. package/lib/cjs/server/testsFiles/register.js +0 -48
  388. package/lib/cjs/server/update.js +0 -83
  389. package/lib/cjs/server/utils.js +0 -185
  390. package/lib/cjs/server/worker/chai-image.js +0 -142
  391. package/lib/cjs/server/worker/helpers.js +0 -69
  392. package/lib/cjs/server/worker/index.js +0 -15
  393. package/lib/cjs/server/worker/reporter.js +0 -120
  394. package/lib/cjs/server/worker/worker.js +0 -278
  395. package/lib/cjs/shared.js +0 -124
  396. package/lib/cjs/types.js +0 -74
  397. package/lib/esm/cli.js +0 -4
  398. package/lib/esm/client/addon/Manager.js +0 -396
  399. package/lib/esm/client/addon/components/Addon.js +0 -58
  400. package/lib/esm/client/addon/components/Icons.js +0 -27
  401. package/lib/esm/client/addon/components/Panel.js +0 -49
  402. package/lib/esm/client/addon/components/TestSelect.js +0 -49
  403. package/lib/esm/client/addon/components/Tools.js +0 -91
  404. package/lib/esm/client/addon/decorator.js +0 -2
  405. package/lib/esm/client/addon/preset.js +0 -56
  406. package/lib/esm/client/addon/readyForCapture.js +0 -5
  407. package/lib/esm/client/addon/register.js +0 -75
  408. package/lib/esm/client/addon/utils.js +0 -31
  409. package/lib/esm/client/addon/withCreevey.js +0 -509
  410. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -63
  411. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
  412. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -151
  413. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
  414. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -88
  415. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  416. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
  417. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
  418. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
  419. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
  420. package/lib/esm/client/shared/components/ResultsPage.js +0 -143
  421. package/lib/esm/client/shared/creeveyClientApi.js +0 -94
  422. package/lib/esm/client/shared/helpers.js +0 -424
  423. package/lib/esm/client/shared/viewMode.js +0 -6
  424. package/lib/esm/creevey.js +0 -56
  425. package/lib/esm/index.js +0 -7
  426. package/lib/esm/server/config.js +0 -73
  427. package/lib/esm/server/docker.js +0 -123
  428. package/lib/esm/server/extract.js +0 -34
  429. package/lib/esm/server/index.js +0 -64
  430. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  431. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  432. package/lib/esm/server/loaders/babel/register.js +0 -105
  433. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  434. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  435. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  436. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  437. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  438. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  439. package/lib/esm/server/loaders/webpack/start.js +0 -27
  440. package/lib/esm/server/master/api.js +0 -60
  441. package/lib/esm/server/master/index.js +0 -125
  442. package/lib/esm/server/master/master.js +0 -38
  443. package/lib/esm/server/master/pool.js +0 -187
  444. package/lib/esm/server/master/runner.js +0 -272
  445. package/lib/esm/server/master/server.js +0 -105
  446. package/lib/esm/server/messages.js +0 -234
  447. package/lib/esm/server/selenium/browser.js +0 -647
  448. package/lib/esm/server/selenium/index.js +0 -2
  449. package/lib/esm/server/selenium/selenoid.js +0 -151
  450. package/lib/esm/server/stories.js +0 -151
  451. package/lib/esm/server/storybook/entry.js +0 -44
  452. package/lib/esm/server/storybook/helpers.js +0 -106
  453. package/lib/esm/server/storybook/providers/browser.js +0 -61
  454. package/lib/esm/server/storybook/providers/hybrid.js +0 -64
  455. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  456. package/lib/esm/server/testsFiles/parser.js +0 -50
  457. package/lib/esm/server/testsFiles/register.js +0 -35
  458. package/lib/esm/server/update.js +0 -65
  459. package/lib/esm/server/utils.js +0 -146
  460. package/lib/esm/server/worker/chai-image.js +0 -130
  461. package/lib/esm/server/worker/helpers.js +0 -60
  462. package/lib/esm/server/worker/index.js +0 -1
  463. package/lib/esm/server/worker/reporter.js +0 -98
  464. package/lib/esm/server/worker/worker.js +0 -248
  465. package/lib/esm/shared.js +0 -93
  466. package/lib/esm/types.js +0 -43
  467. package/lib/types/cli.d.ts +0 -1
  468. package/lib/types/client/addon/components/Addon.d.ts +0 -8
  469. package/lib/types/client/addon/components/Tools.d.ts +0 -6
  470. package/lib/types/client/addon/decorator.d.ts +0 -1
  471. package/lib/types/client/addon/preset.d.ts +0 -24
  472. package/lib/types/client/addon/register.d.ts +0 -3
  473. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
  474. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
  475. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
  476. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
  477. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  478. package/lib/types/client/web/CreeveyLoader.d.ts +0 -3
  479. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  480. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  481. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  482. package/lib/types/index.d.ts +0 -3
  483. package/lib/types/server/extract.d.ts +0 -2
  484. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  485. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  486. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  487. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  488. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  489. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  490. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -2
  491. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  492. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  493. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  494. package/lib/types/server/logger.d.ts +0 -6
  495. package/lib/types/server/master/index.d.ts +0 -3
  496. package/lib/types/server/master/server.d.ts +0 -2
  497. package/lib/types/server/selenium/index.d.ts +0 -2
  498. package/lib/types/server/storybook/entry.d.ts +0 -18
  499. package/lib/types/server/storybook/helpers.d.ts +0 -24
  500. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  501. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  502. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  503. package/lib/types/server/testsFiles/register.d.ts +0 -2
  504. package/lib/types/server/update.d.ts +0 -2
  505. package/lib/types/server/worker/index.d.ts +0 -1
  506. package/lib/types/server/worker/worker.d.ts +0 -4
  507. package/lib/types/shared.d.ts +0 -16
  508. package/preset.js +0 -9
  509. package/storybook-static/stories.json +0 -21
  510. package/types/babel__register.d.ts +0 -1
  511. package/types/event-source-polyfill.d.ts +0 -6
  512. package/types/mdx.d.ts +0 -6
  513. /package/{lib/types → dist}/client/addon/components/Icons.d.ts +0 -0
  514. /package/{lib/types/creevey.d.ts → dist/client/addon/manager.d.ts} +0 -0
  515. /package/{lib/types → dist}/client/addon/readyForCapture.d.ts +0 -0
  516. /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +0 -0
  517. /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +0 -0
  518. /package/{lib/types → dist}/server/worker/reporter.d.ts +0 -0
@@ -1,151 +0,0 @@
1
- import path from 'path';
2
- import { promisify } from 'util';
3
- import { mkdir, writeFile, copyFile, lstatSync, existsSync } from 'fs';
4
- import { downloadBinary, getCreeveyCache } from '../utils';
5
- import { pullImages, runImage } from '../docker';
6
- import { Octokit } from '@octokit/core';
7
- import { subscribeOn } from '../messages';
8
- import { isWorker } from 'cluster';
9
- import { chmod, exec } from 'shelljs';
10
- const mkdirAsync = promisify(mkdir);
11
- const writeFileAsync = promisify(writeFile);
12
- const copyFileAsync = promisify(copyFile);
13
-
14
- async function createSelenoidConfig(browsers, {
15
- useDocker
16
- }) {
17
- const selenoidConfig = {};
18
- const selenoidConfigDir = path.join(getCreeveyCache(), 'selenoid');
19
- browsers.forEach(({
20
- browserName,
21
- version = 'latest',
22
- dockerImage = `selenoid/${browserName}:${version}`,
23
- webdriverCommand = []
24
- }) => {
25
- if (!selenoidConfig[browserName]) selenoidConfig[browserName] = {
26
- default: version,
27
- versions: {}
28
- };
29
- if (!useDocker && webdriverCommand.length == 0) throw new Error('Please specify "webdriverCommand" browser option with path to browser webdriver');
30
- selenoidConfig[browserName].versions[version] = {
31
- image: useDocker ? dockerImage : webdriverCommand,
32
- port: '4444',
33
- path: !useDocker || ['chrome', 'opera', 'webkit', 'MicrosoftEdge'].includes(browserName) ? '/' : '/wd/hub'
34
- };
35
- });
36
- await mkdirAsync(selenoidConfigDir, {
37
- recursive: true
38
- });
39
- await writeFileAsync(path.join(selenoidConfigDir, 'browsers.json'), JSON.stringify(selenoidConfig));
40
- return selenoidConfigDir;
41
- }
42
-
43
- async function downloadSelenoidBinary(destination) {
44
- var _assets$find;
45
-
46
- const platformNameMapping = {
47
- darwin: 'selenoid_darwin_amd64',
48
- linux: 'selenoid_linux_amd64',
49
- win32: 'selenoid_windows_amd64.exe'
50
- };
51
- const octokit = new Octokit();
52
- const response = await octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
53
- owner: 'aerokube',
54
- repo: 'selenoid'
55
- });
56
- const {
57
- assets
58
- } = response.data;
59
- const {
60
- browser_download_url: downloadUrl,
61
- size: binarySize
62
- } = (_assets$find = assets.find(({
63
- name
64
- }) => platformNameMapping[process.platform] == name)) !== null && _assets$find !== void 0 ? _assets$find : {};
65
- if (existsSync(destination) && lstatSync(destination).size == binarySize) return;
66
-
67
- if (!downloadUrl) {
68
- throw new Error(`Couldn't get download url for selenoid binary. Please download it manually from "https://github.com/aerokube/selenoid/releases/latest" and define "selenoidPath" option in the Creevey config`);
69
- }
70
-
71
- return downloadBinary(downloadUrl, destination);
72
- }
73
-
74
- export async function startSelenoidStandalone(config, debug) {
75
- config.gridUrl = 'http://localhost:4444/wd/hub';
76
- if (isWorker) return;
77
- const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
78
- const selenoidConfigDir = await createSelenoidConfig(browsers, {
79
- useDocker: false
80
- });
81
- const binaryPath = path.join(selenoidConfigDir, process.platform == 'win32' ? 'selenoid.exe' : 'selenoid');
82
-
83
- if (config.selenoidPath) {
84
- await copyFileAsync(path.resolve(config.selenoidPath), binaryPath);
85
- } else {
86
- await downloadSelenoidBinary(binaryPath);
87
- } // TODO Download browser webdrivers
88
-
89
-
90
- try {
91
- if (process.platform != 'win32') chmod('+x', binaryPath);
92
- } catch (_) {
93
- /* noop */
94
- }
95
-
96
- const selenoidProcess = exec(`${binaryPath} -conf ./browsers.json -disable-docker`, {
97
- async: true,
98
- cwd: selenoidConfigDir
99
- });
100
-
101
- if (debug) {
102
- var _selenoidProcess$stdo, _selenoidProcess$stde;
103
-
104
- (_selenoidProcess$stdo = selenoidProcess.stdout) === null || _selenoidProcess$stdo === void 0 ? void 0 : _selenoidProcess$stdo.pipe(process.stdout);
105
- (_selenoidProcess$stde = selenoidProcess.stderr) === null || _selenoidProcess$stde === void 0 ? void 0 : _selenoidProcess$stde.pipe(process.stderr);
106
- }
107
-
108
- subscribeOn('shutdown', () => selenoidProcess.kill());
109
- }
110
- export async function startSelenoidContainer(config, debug) {
111
- const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
112
- const images = [];
113
- let limit = 0;
114
- browsers.forEach(({
115
- browserName,
116
- version = 'latest',
117
- limit: browserLimit = 1,
118
- dockerImage = `selenoid/${browserName}:${version}`
119
- }) => {
120
- limit += browserLimit;
121
- images.push(dockerImage);
122
- });
123
- const selenoidImage = config.dockerImage;
124
- const pullOptions = {
125
- auth: config.dockerAuth,
126
- platform: config.dockerImagePlatform
127
- };
128
-
129
- if (config.pullImages) {
130
- await pullImages([selenoidImage], pullOptions);
131
- await pullImages(images, pullOptions);
132
- } // TODO Allow pass custom options
133
-
134
-
135
- const selenoidOptions = {
136
- ExposedPorts: {
137
- '4444/tcp': {}
138
- },
139
- HostConfig: {
140
- PortBindings: {
141
- '4444/tcp': [{
142
- HostPort: '4444'
143
- }]
144
- },
145
- Binds: ['/var/run/docker.sock:/var/run/docker.sock', `${await createSelenoidConfig(browsers, {
146
- useDocker: true
147
- })}:/etc/selenoid/:ro`]
148
- }
149
- };
150
- return runImage(selenoidImage, ['-limit', String(limit)], selenoidOptions, debug);
151
- }
@@ -1,151 +0,0 @@
1
- import path from 'path';
2
- import { mkdirSync, writeFileSync } from 'fs';
3
- import { createHash } from 'crypto';
4
- import { mapValues, pick } from 'lodash';
5
- import { isDefined, isFunction, isObject } from '../types';
6
- import { shouldSkip, removeProps } from './utils';
7
- import { isStorybookVersionLessThan } from './storybook/helpers';
8
-
9
- function storyTestFabric(delay, testFn) {
10
- return async function storyTest() {
11
- var _testFn$call;
12
-
13
- delay ? await new Promise(resolve => setTimeout(resolve, delay)) : void 0;
14
- await ((_testFn$call = testFn === null || testFn === void 0 ? void 0 : testFn.call(this)) !== null && _testFn$call !== void 0 ? _testFn$call : this.screenshots.length > 0 ? this.expect(this.screenshots.reduce((screenshots, {
15
- imageName,
16
- screenshot
17
- }, index) => ({ ...screenshots,
18
- [imageName !== null && imageName !== void 0 ? imageName : `screenshot_${index}`]: screenshot
19
- }), {})).to.matchImages() : this.expect(await this.takeScreenshot()).to.matchImage());
20
- };
21
- }
22
-
23
- function createCreeveyTest(browser, storyMeta, skipOptions, testName) {
24
- const {
25
- kind,
26
- name: story,
27
- id: storyId
28
- } = storyMeta;
29
- const path = [kind, story, testName, browser].filter(isDefined);
30
- const skip = skipOptions ? shouldSkip(browser, {
31
- kind,
32
- story
33
- }, skipOptions, testName) : false;
34
- const id = createHash('sha1').update(path.join('/')).digest('hex');
35
- return {
36
- id,
37
- skip,
38
- browser,
39
- testName,
40
- storyPath: [...kind.split('/').map(x => x.trim()), story],
41
- storyId
42
- };
43
- }
44
-
45
- function convertStories(browserName, stories) {
46
- const tests = {};
47
- (Array.isArray(stories) ? stories : Object.values(stories)).forEach(storyMeta => {
48
- var _storyMeta$parameters;
49
-
50
- // TODO Skip docsOnly stories for now
51
- if (storyMeta.parameters.docsOnly) return;
52
- const {
53
- delay: delayParam,
54
- tests: storyTests,
55
- skip
56
- } = (_storyMeta$parameters = storyMeta.parameters.creevey) !== null && _storyMeta$parameters !== void 0 ? _storyMeta$parameters : {};
57
- const delay = typeof delayParam == 'number' ? delayParam : delayParam !== null && delayParam !== void 0 && delayParam.for.includes(browserName) ? delayParam.ms : 0; // typeof tests === "undefined" => rootSuite -> kindSuite -> storyTest -> [browsers.png]
58
- // typeof tests === "function" => rootSuite -> kindSuite -> storyTest -> browser -> [images.png]
59
- // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> [browsers.png]
60
- // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> browser -> [images.png]
61
-
62
- if (!storyTests) {
63
- const test = createCreeveyTest(browserName, storyMeta, skip);
64
- tests[test.id] = { ...test,
65
- storyId: storyMeta.id,
66
- story: storyMeta,
67
- fn: storyTestFabric(delay)
68
- };
69
- return;
70
- }
71
-
72
- Object.entries(storyTests).forEach(([testName, testFn]) => {
73
- const test = createCreeveyTest(browserName, storyMeta, skip, testName);
74
- tests[test.id] = { ...test,
75
- storyId: storyMeta.id,
76
- story: storyMeta,
77
- fn: storyTestFabric(delay, testFn)
78
- };
79
- });
80
- });
81
- return tests;
82
- }
83
-
84
- export async function loadTestsFromStories(browsers, provider, update) {
85
- const testIdsByFiles = new Map();
86
- const stories = await provider(storiesByFiles => {
87
- const testsDiff = {};
88
- const tests = {};
89
- browsers.forEach(browser => {
90
- Array.from(storiesByFiles.entries()).forEach(([filename, stories]) => {
91
- var _testIdsByFiles$get$f, _testIdsByFiles$get;
92
-
93
- Object.assign(tests, convertStories(browser, stories));
94
- const changed = Object.keys(tests);
95
- const removed = (_testIdsByFiles$get$f = (_testIdsByFiles$get = testIdsByFiles.get(filename)) === null || _testIdsByFiles$get === void 0 ? void 0 : _testIdsByFiles$get.filter(testId => !tests[testId])) !== null && _testIdsByFiles$get$f !== void 0 ? _testIdsByFiles$get$f : [];
96
- if (changed.length == 0) testIdsByFiles.delete(filename);else testIdsByFiles.set(filename, changed);
97
- Object.assign(testsDiff, tests);
98
- removed.forEach(testId => testsDiff[testId] = undefined);
99
- });
100
- });
101
- update === null || update === void 0 ? void 0 : update(testsDiff);
102
- });
103
- const tests = browsers.reduce((tests, browser) => Object.assign(tests, convertStories(browser, stories)), {});
104
- Object.values(tests).filter(isDefined).forEach(({
105
- id,
106
- story: {
107
- parameters: {
108
- fileName
109
- }
110
- }
111
- }) => {
112
- var _testIdsByFiles$get2;
113
-
114
- return (// TODO Don't use filename as a key, due possible collisions if two require.context with same structure of modules are defined
115
- testIdsByFiles.set(fileName, [...((_testIdsByFiles$get2 = testIdsByFiles.get(fileName)) !== null && _testIdsByFiles$get2 !== void 0 ? _testIdsByFiles$get2 : []), id])
116
- );
117
- });
118
- return tests;
119
- }
120
- export function saveStoriesJson(storiesData, extract) {
121
- var _storiesData$stories;
122
-
123
- const outputDir = typeof extract == 'boolean' ? 'storybook-static' : extract;
124
-
125
- if (!isStorybookVersionLessThan(6)) {
126
- // NOTE Copy-pasted from Storybook's `getStoriesJsonData` method
127
- const allowed = ['fileName', 'docsOnly', 'framework', '__id', '__isArgsStory'];
128
- storiesData.globalParameters = pick(storiesData.globalParameters, allowed); // @ts-expect-error ignore error
129
-
130
- storiesData.kindParameters = mapValues(storiesData.kindParameters, v => pick(v, allowed)); // @ts-expect-error ignore error
131
-
132
- storiesData.stories = mapValues(storiesData.stories, v => ({ ...pick(v, ['id', 'name', 'kind', 'story']),
133
- parameters: pick(v.parameters, allowed)
134
- }));
135
- } // TODO Fix args stories
136
-
137
-
138
- removeProps(storiesData !== null && storiesData !== void 0 ? storiesData : {}, ['stories', () => true, 'parameters', '__isArgsStory']);
139
- Object.values((_storiesData$stories = storiesData === null || storiesData === void 0 ? void 0 : storiesData.stories) !== null && _storiesData$stories !== void 0 ? _storiesData$stories : {}).forEach(story => isObject(story) && 'parameters' in story && isObject(story.parameters) && delete story.parameters.__isArgsStory);
140
- mkdirSync(outputDir, {
141
- recursive: true
142
- });
143
- writeFileSync(path.join(outputDir, 'stories.json'), JSON.stringify(storiesData, null, 2));
144
- }
145
- export function saveTestsJson(tests, dstPath = process.cwd()) {
146
- mkdirSync(dstPath, {
147
- recursive: true
148
- });
149
- writeFileSync(path.join(dstPath, 'tests.json'), // eslint-disable-next-line @typescript-eslint/no-unsafe-return
150
- JSON.stringify(tests, (_, value) => isFunction(value) ? value.toString() : value, 2));
151
- }
@@ -1,44 +0,0 @@
1
- var _api$channel, _api$context;
2
-
3
- import { addons } from '@storybook/addons';
4
- import { getStorybookFramework, isStorybookVersionLessThan, resolveFromStorybook } from './helpers';
5
- const framework = getStorybookFramework(); // eslint-disable-next-line @typescript-eslint/no-var-requires
6
-
7
- const core = require(resolveFromStorybook('@storybook/core')); //@ts-expect-error: 6.2 use named exports
8
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
9
-
10
-
11
- const start = isStorybookVersionLessThan(6, 2) ? core.default.start : core.start;
12
- const api = start(() => void 0);
13
- export const channel = isStorybookVersionLessThan(6, 4) ? (_api$channel = api.channel) !== null && _api$channel !== void 0 ? _api$channel : (_api$context = api.context) === null || _api$context === void 0 ? void 0 : _api$context.channel : addons.getChannel();
14
- export const clientApi = api.clientApi;
15
- export const forceReRender = api.forceReRender;
16
- export const storiesOf = (kind, m) => {
17
- return clientApi.storiesOf(kind, m).addParameters({
18
- framework
19
- });
20
- };
21
- export const configure = (...args) => {
22
- if (isStorybookVersionLessThan(5, 2)) {
23
- //NOTE: Storybook <= 5.1 pass args as is
24
- //@ts-expect-error: ignore it
25
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
26
- return api.configApi.configure(...args);
27
- }
28
-
29
- if (isStorybookVersionLessThan(6)) {
30
- //NOTE: Storybook <= 5.3 pass `framework` as last argument
31
- //@ts-expect-error: ignore it
32
- return api.configure(...args, framework);
33
- } //NOTE Storybook 6.x pass `framework` as first argument
34
- //@ts-expect-error: ignore it
35
-
36
-
37
- return api.configure(framework, ...args);
38
- };
39
- export const addDecorator = clientApi.addDecorator;
40
- export const addParameters = clientApi.addParameters;
41
- export const clearDecorators = clientApi.clearDecorators;
42
- export const setAddon = clientApi.setAddon;
43
- export const getStorybook = clientApi.getStorybook;
44
- export const raw = clientApi.raw;
@@ -1,106 +0,0 @@
1
- import path from 'path';
2
- import resolveFrom from 'resolve-from';
3
- const supportedFrameworks = ['react', 'vue', 'vue3', 'angular', 'marionette', 'mithril', 'marko', 'html', 'svelte', 'riot', 'ember', 'preact', 'rax', 'aurelia', 'server', 'web-components'];
4
- export const storybookDirRef = {
5
- current: path.resolve('.storybook')
6
- };
7
- export const resolveFromStorybook = modulePath => resolveFrom(storybookDirRef.current, modulePath);
8
- export const resolveFromStorybookAddonDocs = modulePath => resolveFrom(resolveFromStorybook('@storybook/addon-docs'), modulePath);
9
- export const resolveFromStorybookBuilderWebpack4 = modulePath => resolveFrom(resolveFromStorybook('@storybook/builder-webpack4'), modulePath);
10
- export const resolveFromStorybookCore = modulePath => resolveFrom(resolveFromStorybook('@storybook/core'), modulePath);
11
- export const resolveFromStorybookCoreServer = modulePath => resolveFrom(resolveFromStorybook('@storybook/core-server'), modulePath);
12
-
13
- const importFromStorybook = modulePath => import(resolveFromStorybook(modulePath));
14
-
15
- export const importStorybookClientLogger = () => importFromStorybook('@storybook/client-logger');
16
- export const importStorybookCoreCommon = () => importFromStorybook('@storybook/core-common');
17
- export const importStorybookCoreEvents = () => importFromStorybook('@storybook/core-events');
18
- export function hasDocsAddon() {
19
- try {
20
- resolveFromStorybook('@storybook/addon-docs');
21
- return true;
22
- } catch (_) {
23
- return false;
24
- }
25
- }
26
- export function hasSvelteCSFAddon() {
27
- try {
28
- resolveFromStorybook('@storybook/addon-svelte-csf');
29
- return true;
30
- } catch (_) {
31
- return false;
32
- }
33
- }
34
- export function getStorybookVersion() {
35
- // eslint-disable-next-line @typescript-eslint/no-var-requires
36
- const {
37
- version
38
- } = require(resolveFromStorybook('@storybook/core/package.json'));
39
-
40
- return version;
41
- }
42
- export function isStorybookVersionLessThan(major, minor) {
43
- var _process$env$__CREEVE;
44
-
45
- const [sbMajor, sbMinor] = ((_process$env$__CREEVE = process.env.__CREEVEY_STORYBOOK_VERSION__) !== null && _process$env$__CREEVE !== void 0 ? _process$env$__CREEVE : getStorybookVersion()).split('.');
46
- return Number(sbMajor) < major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) < minor;
47
- }
48
- export function isStorybookVersionGreaterThan(major, minor) {
49
- var _process$env$__CREEVE2;
50
-
51
- const [sbMajor, sbMinor] = ((_process$env$__CREEVE2 = process.env.__CREEVEY_STORYBOOK_VERSION__) !== null && _process$env$__CREEVE2 !== void 0 ? _process$env$__CREEVE2 : getStorybookVersion()).split('.');
52
- return Number(sbMajor) > major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) > minor;
53
- }
54
- export function isStorybookVersion(major, minor) {
55
- var _process$env$__CREEVE3;
56
-
57
- const [sbMajor, sbMinor] = ((_process$env$__CREEVE3 = process.env.__CREEVEY_STORYBOOK_VERSION__) !== null && _process$env$__CREEVE3 !== void 0 ? _process$env$__CREEVE3 : getStorybookVersion()).split('.');
58
- return Number(sbMajor) == major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) == minor;
59
- }
60
- export function getStorybookFramework() {
61
- var _process$env$__CREEVE4;
62
-
63
- const framework = (_process$env$__CREEVE4 = process.env.__CREEVEY_STORYBOOK_FRAMEWORK__) !== null && _process$env$__CREEVE4 !== void 0 ? _process$env$__CREEVE4 : supportedFrameworks.find(framework => {
64
- try {
65
- return require.resolve(resolveFromStorybook(`@storybook/${framework}`));
66
- } catch (_) {
67
- return false;
68
- }
69
- });
70
- if (!framework) throw new Error("Couldn't detect used Storybook framework. Please ensure that you install `@storybook/<framework>` package");
71
- return framework;
72
- }
73
- export const storybookConfigRef = {
74
- current: {
75
- stories: []
76
- }
77
- };
78
- export async function importStorybookConfig() {
79
- const configPath = `${storybookDirRef.current}/main`;
80
-
81
- try {
82
- return storybookConfigRef.current = (await import(require.resolve(configPath))).default;
83
- } catch (_) {
84
- const storybookUtilsPath = isStorybookVersionLessThan(6, 2) ? '@storybook/core/dist/server/utils' : '@storybook/core-common/dist/cjs/utils';
85
- const serverRequireModule = isStorybookVersionLessThan(6, 2) ? 'server-require' : 'interpret-require'; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
86
-
87
- const {
88
- getInterpretedFile
89
- } = await import(resolveFromStorybook(`${storybookUtilsPath}/interpret-files`)); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
90
-
91
- const {
92
- default: serverRequireFallback,
93
- serverRequire = serverRequireFallback
94
- } = await import(resolveFromStorybook(`${storybookUtilsPath}/${serverRequireModule}`)); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
95
-
96
- const mainConfigFile = isStorybookVersionLessThan(6, 1) ? configPath : // eslint-disable-next-line @typescript-eslint/no-unsafe-call
97
- getInterpretedFile(configPath); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
98
-
99
- return storybookConfigRef.current = serverRequire(mainConfigFile);
100
- }
101
- }
102
- export async function isCSFv3Enabled() {
103
- var _await$importStoryboo, _await$importStoryboo2, _await$importStoryboo3;
104
-
105
- return (_await$importStoryboo = (_await$importStoryboo2 = await importStorybookConfig()) === null || _await$importStoryboo2 === void 0 ? void 0 : (_await$importStoryboo3 = _await$importStoryboo2.features) === null || _await$importStoryboo3 === void 0 ? void 0 : _await$importStoryboo3.previewCsfV3) !== null && _await$importStoryboo !== void 0 ? _await$importStoryboo : false;
106
- }
@@ -1,61 +0,0 @@
1
- import cluster, { isMaster } from 'cluster';
2
- import { loadStoriesFromBrowser } from '../../selenium';
3
- import { emitStoriesMessage, sendStoriesMessage, subscribeOn, subscribeOnWorker } from '../../messages';
4
- import { deserializeRawStories } from '../../../shared';
5
- import { isDefined } from '../../../types';
6
- import { logger } from '../../logger';
7
- export async function loadStories(_config, {
8
- port
9
- }, storiesListener) {
10
- if (isMaster) {
11
- return new Promise(resolve => {
12
- const worker = Object.values(cluster.workers).filter(isDefined).find(worker => worker.isConnected());
13
-
14
- if (worker) {
15
- const unsubscribe = subscribeOnWorker(worker, 'stories', message => {
16
- if (message.type == 'set') {
17
- const {
18
- stories,
19
- oldTests
20
- } = message.payload;
21
- if (oldTests.length > 0) logger.warn(`If you use browser stories provider of CSFv3 Storybook feature\n` + `Creevey will not load tests defined in story parameters from following stories:\n` + oldTests.join('\n'));
22
- unsubscribe();
23
- resolve(stories);
24
- }
25
- });
26
- sendStoriesMessage(worker, {
27
- type: 'get'
28
- });
29
- }
30
-
31
- subscribeOn('stories', message => {
32
- // TODO updates only one browser :(
33
- if (message.type == 'update') storiesListener(new Map(message.payload));
34
- });
35
- });
36
- } else {
37
- subscribeOn('stories', message => {
38
- if (message.type == 'get') emitStoriesMessage({
39
- type: 'set',
40
- payload: {
41
- stories,
42
- oldTests: storiesWithOldTests
43
- }
44
- });
45
- if (message.type == 'update') storiesListener(new Map(message.payload));
46
- });
47
- const stories = deserializeRawStories(await loadStoriesFromBrowser(port));
48
- const storiesWithOldTests = [];
49
- Object.values(stories).forEach(story => {
50
- var _parameters, _parameters$creevey;
51
-
52
- if ((_parameters = story.parameters) !== null && _parameters !== void 0 && (_parameters$creevey = _parameters.creevey) !== null && _parameters$creevey !== void 0 && _parameters$creevey.tests) {
53
- var _parameters2, _parameters2$creevey;
54
-
55
- (_parameters2 = story.parameters) === null || _parameters2 === void 0 ? true : (_parameters2$creevey = _parameters2.creevey) === null || _parameters2$creevey === void 0 ? true : delete _parameters2$creevey.tests;
56
- storiesWithOldTests.push(`${story.kind}/${story.name}`);
57
- }
58
- });
59
- return stories;
60
- }
61
- }
@@ -1,64 +0,0 @@
1
- import chokidar from 'chokidar';
2
- import { loadStories as browserProvider } from './browser';
3
- import { logger } from '../../logger';
4
- import parse from '../../testsFiles/parser';
5
- import { readDirRecursive } from '../../../server/utils';
6
- import { combineParameters } from '../../../shared';
7
- export async function loadStories(_config, {
8
- port
9
- }, storiesListener) {
10
- let creeveyParamsByStoryId = {};
11
-
12
- const mergeParamsFromTestsToStory = (story, creeveyParams) => {
13
- if (story.parameters) {
14
- story.parameters.creevey = combineParameters(story.parameters.creevey || {}, creeveyParams);
15
- }
16
- };
17
-
18
- const stories = await browserProvider(_config, {
19
- port
20
- }, updatedStoriesByFiles => {
21
- Array.from(updatedStoriesByFiles.entries()).forEach(([, storiesArray]) => {
22
- storiesArray.forEach(story => {
23
- const creeveyParams = creeveyParamsByStoryId[story.id];
24
-
25
- if (creeveyParams) {
26
- mergeParamsFromTestsToStory(story, creeveyParams);
27
- }
28
- });
29
- });
30
- storiesListener(updatedStoriesByFiles);
31
- }); // TODO fix test files hot reloading
32
-
33
- creeveyParamsByStoryId = await parseParams(_config
34
- /*, (data) => console.log(data) */
35
- );
36
- Object.entries(stories).forEach(([storyId, story]) => {
37
- mergeParamsFromTestsToStory(story, creeveyParamsByStoryId[storyId]);
38
- });
39
- return stories;
40
- }
41
-
42
- async function parseParams(config, listener) {
43
- if (!config.testsDir) {
44
- return Promise.resolve({});
45
- }
46
-
47
- const testFiles = readDirRecursive(config.testsDir).filter(file => {
48
- var _config$testsRegex;
49
-
50
- return (_config$testsRegex = config.testsRegex) === null || _config$testsRegex === void 0 ? void 0 : _config$testsRegex.test(file);
51
- });
52
- await (await import('../../testsFiles/register')).default(config);
53
-
54
- if (listener) {
55
- chokidar.watch(testFiles).on('change', filePath => {
56
- logger.debug(`changed: ${filePath}`); // doesn't work, always returns {} due modules caching
57
- // see https://github.com/nodejs/modules/issues/307
58
-
59
- void parse(testFiles).then(data => listener(data));
60
- });
61
- }
62
-
63
- return parse(testFiles);
64
- }