creevey 0.9.0-non-webpack.2.fix-capture-element → 0.9.1

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