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,35 +1,28 @@
1
- /// <reference types="node" />
2
- /// <reference types="chai" />
3
- import type { API as StorybookAPI } from '@storybook/api';
4
- import type { DecoratorFunction } from '@storybook/addons';
5
- import type { IKey } from 'selenium-webdriver/lib/input';
1
+ import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
2
+ import type { IKey } from 'selenium-webdriver/lib/input.js';
6
3
  import type { Worker as ClusterWorker } from 'cluster';
7
4
  import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
8
5
  import type Pixelmatch from 'pixelmatch';
9
6
  import type { Context } from 'mocha';
10
- export declare type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
11
- export declare type SetStoriesData = {
7
+ import type { expect } from 'chai';
8
+ export type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
9
+ export interface SetStoriesData {
10
+ v?: number;
12
11
  globalParameters: {
13
12
  creevey?: CreeveyStoryParams;
14
13
  };
15
- kindParameters: Partial<{
16
- [kind: string]: {
17
- fileName: string;
18
- creevey?: CreeveyStoryParams;
19
- };
20
- }>;
14
+ kindParameters: Partial<Record<string, {
15
+ fileName: string;
16
+ creevey?: CreeveyStoryParams;
17
+ }>>;
21
18
  stories: StoriesRaw;
22
- };
23
- export declare type StoriesRaw = StorybookAPI extends {
24
- setStories: (stories: infer SS) => void;
25
- } ? SS : never;
26
- export declare type StoryInput = StoriesRaw extends {
27
- [id: string]: infer S;
28
- } ? S : never;
29
- export interface StoryMeta<StoryFnReturnType = unknown> {
19
+ }
20
+ export type StoriesRaw = Record<string, StoryContextForEnhancers>;
21
+ export type StoryInput = StoriesRaw extends Record<string, infer S> ? S : never;
22
+ export interface StoryMeta {
30
23
  title: string;
31
24
  component?: unknown;
32
- decorators?: DecoratorFunction<StoryFnReturnType>[];
25
+ decorators?: DecoratorFunction[];
33
26
  parameters?: {
34
27
  creevey?: CreeveyStoryParams;
35
28
  [name: string]: unknown;
@@ -52,14 +45,14 @@ export interface CSFStory<StoryFnReturnType = unknown> {
52
45
  */
53
46
  story?: {
54
47
  name?: string;
55
- decorators?: DecoratorFunction<StoryFnReturnType>[];
48
+ decorators?: DecoratorFunction[];
56
49
  parameters?: {
57
50
  creevey?: CreeveyStoryParams;
58
51
  [name: string]: unknown;
59
52
  };
60
53
  };
61
54
  storyName?: string;
62
- decorators?: DecoratorFunction<StoryFnReturnType>[];
55
+ decorators?: DecoratorFunction[];
63
56
  parameters?: {
64
57
  creevey?: CreeveyStoryParams;
65
58
  [name: string]: unknown;
@@ -73,10 +66,15 @@ export interface CreeveyStory {
73
66
  }
74
67
  export interface Capabilities {
75
68
  browserName: string;
69
+ browserVersion?: string;
70
+ platformName?: string;
71
+ /**
72
+ * @deprecated use `browserVersion` instead
73
+ */
76
74
  version?: string;
77
75
  [prop: string]: unknown;
78
76
  }
79
- export declare type BrowserConfig = Capabilities & {
77
+ export type BrowserConfig = Capabilities & {
80
78
  limit?: number;
81
79
  gridUrl?: string;
82
80
  storybookUrl?: string;
@@ -87,7 +85,7 @@ export declare type BrowserConfig = Capabilities & {
87
85
  _storybookGlobals?: StorybookGlobals;
88
86
  /**
89
87
  * Specify custom docker image. Used only with `useDocker == true`
90
- * @default `selenoid/${browserName}:${version ?? 'latest'}`
88
+ * @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
91
89
  */
92
90
  dockerImage?: string;
93
91
  /**
@@ -100,10 +98,8 @@ export declare type BrowserConfig = Capabilities & {
100
98
  height: number;
101
99
  };
102
100
  };
103
- export interface StorybookGlobals {
104
- [key: string]: unknown;
105
- }
106
- export declare type Browser = boolean | string | BrowserConfig;
101
+ export type StorybookGlobals = Record<string, unknown>;
102
+ export type Browser = boolean | string | BrowserConfig;
107
103
  export interface HookConfig {
108
104
  before?: () => unknown;
109
105
  after?: () => unknown;
@@ -141,11 +137,6 @@ export interface Config {
141
137
  * @default path.join(process.cwd(), './report')
142
138
  */
143
139
  reportDir: string;
144
- /**
145
- * Absolute path to storybook config directory
146
- * @default path.join(process.cwd(), './.storybook')
147
- */
148
- storybookDir: string;
149
140
  /**
150
141
  * How much test would be retried
151
142
  * @default 0
@@ -160,9 +151,7 @@ export interface Config {
160
151
  * Browser capabilities
161
152
  * @default { chrome: true }
162
153
  */
163
- browsers: {
164
- [key: string]: Browser;
165
- };
154
+ browsers: Record<string, Browser>;
166
155
  /**
167
156
  * Hooks that allow run custom script before and after creevey start
168
157
  */
@@ -172,18 +161,6 @@ export interface Config {
172
161
  * Works only with `useDocker == false`
173
162
  */
174
163
  selenoidPath?: string;
175
- /**
176
- * Creevey extract tests by using babel transformations
177
- * and load stories to nodejs directly.
178
- * In some edge cases it may fail to load tests.
179
- * In that case you can enable this option.
180
- * Creevey uses Storybook webpack config to build nodejs bundle with tests.
181
- * But it slightly slower and doesn't work if you use custom bundler for Storybook
182
- *
183
- * Affects only for Storybook 6.2+
184
- * @default false
185
- */
186
- useWebpackToExtractTests: boolean;
187
164
  /**
188
165
  * Creevey has two built-in stories providers.
189
166
  *
@@ -208,11 +185,7 @@ export interface Config {
208
185
  * }
209
186
  * ```
210
187
  */
211
- storiesProvider: (config: Config, options: {
212
- watch: boolean;
213
- debug: boolean;
214
- port: number;
215
- }, storiesListener: (stories: Map<string, StoryInput[]>) => void) => Promise<StoriesRaw>;
188
+ storiesProvider: StoriesProvider;
216
189
  /**
217
190
  * Define custom babel options for load stories transformation
218
191
  */
@@ -249,25 +222,36 @@ export interface Config {
249
222
  testsRegex?: RegExp;
250
223
  testsDir?: string;
251
224
  tsConfig?: string;
225
+ /**
226
+ * Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
227
+ * It's being sent only for projects from git.skbkontur.ru
228
+ * @default false
229
+ */
230
+ disableTelemetry?: boolean;
231
+ }
232
+ export interface StoriesProvider<T = any> {
233
+ (config: Config, options: T, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
234
+ providerName?: string;
252
235
  }
253
- export declare type CreeveyConfig = Partial<Config>;
236
+ export type CreeveyConfig = Partial<Config>;
254
237
  export interface Options {
238
+ _: string[];
255
239
  config?: string;
256
240
  port: number;
257
241
  ui: boolean;
258
242
  update: boolean | string;
259
- webpack: boolean;
260
243
  debug: boolean;
261
- extract: boolean | string;
244
+ trace: boolean;
262
245
  tests: boolean;
263
246
  browser?: string;
264
247
  reporter?: string;
265
248
  screenDir?: string;
266
249
  reportDir?: string;
250
+ storybookUrl?: string;
267
251
  saveReport: boolean;
268
252
  failFast?: boolean;
269
253
  }
270
- export declare type WorkerMessage = {
254
+ export type WorkerMessage = {
271
255
  type: 'ready';
272
256
  payload?: never;
273
257
  } | {
@@ -276,7 +260,7 @@ export declare type WorkerMessage = {
276
260
  error: string;
277
261
  };
278
262
  };
279
- export declare type StoriesMessage = {
263
+ export type StoriesMessage = {
280
264
  type: 'get';
281
265
  payload?: never;
282
266
  } | {
@@ -292,7 +276,7 @@ export declare type StoriesMessage = {
292
276
  type: 'capture';
293
277
  payload?: CaptureOptions;
294
278
  };
295
- export declare type TestMessage = {
279
+ export type TestMessage = {
296
280
  type: 'start';
297
281
  payload: {
298
282
  id: string;
@@ -303,7 +287,7 @@ export declare type TestMessage = {
303
287
  type: 'end';
304
288
  payload: TestResult;
305
289
  };
306
- export declare type WebpackMessage = {
290
+ export type WebpackMessage = {
307
291
  type: 'success';
308
292
  payload?: never;
309
293
  } | {
@@ -316,7 +300,7 @@ export declare type WebpackMessage = {
316
300
  type: 'rebuild failed';
317
301
  payload?: never;
318
302
  };
319
- export declare type DockerMessage = {
303
+ export type DockerMessage = {
320
304
  type: 'start';
321
305
  payload?: never;
322
306
  } | {
@@ -325,8 +309,8 @@ export declare type DockerMessage = {
325
309
  gridUrl: string;
326
310
  };
327
311
  };
328
- export declare type ShutdownMessage = unknown;
329
- export declare type ProcessMessage = (WorkerMessage & {
312
+ export type ShutdownMessage = object;
313
+ export type ProcessMessage = (WorkerMessage & {
330
314
  scope: 'worker';
331
315
  }) | (StoriesMessage & {
332
316
  scope: 'stories';
@@ -339,12 +323,12 @@ export declare type ProcessMessage = (WorkerMessage & {
339
323
  }) | (ShutdownMessage & {
340
324
  scope: 'shutdown';
341
325
  });
342
- export declare type WorkerHandler = (message: WorkerMessage) => void;
343
- export declare type StoriesHandler = (message: StoriesMessage) => void;
344
- export declare type TestHandler = (message: TestMessage) => void;
345
- export declare type WebpackHandler = (message: WebpackMessage) => void;
346
- export declare type DockerHandler = (message: DockerMessage) => void;
347
- export declare type ShutdownHandler = (message: ShutdownMessage) => void;
326
+ export type WorkerHandler = (message: WorkerMessage) => void;
327
+ export type StoriesHandler = (message: StoriesMessage) => void;
328
+ export type TestHandler = (message: TestMessage) => void;
329
+ export type WebpackHandler = (message: WebpackMessage) => void;
330
+ export type DockerHandler = (message: DockerMessage) => void;
331
+ export type ShutdownHandler = (message: ShutdownMessage) => void;
348
332
  export interface Worker extends ClusterWorker {
349
333
  isRunning?: boolean;
350
334
  }
@@ -354,18 +338,14 @@ export interface Images {
354
338
  diff?: string;
355
339
  error?: string;
356
340
  }
357
- export declare type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'success' | 'retrying';
341
+ export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'success' | 'retrying';
358
342
  export interface TestResult {
359
343
  status: 'failed' | 'success';
360
- images?: Partial<{
361
- [name: string]: Images;
362
- }>;
344
+ images?: Partial<Record<string, Images>>;
363
345
  error?: string;
364
346
  }
365
347
  export interface ImagesError extends Error {
366
- images: string | Partial<{
367
- [name: string]: string;
368
- }>;
348
+ images: string | Partial<Record<string, string>>;
369
349
  }
370
350
  export interface TestMeta {
371
351
  id: string;
@@ -379,9 +359,7 @@ export interface TestData extends TestMeta {
379
359
  retries?: number;
380
360
  status?: TestStatus;
381
361
  results?: TestResult[];
382
- approved?: Partial<{
383
- [image: string]: number;
384
- }>;
362
+ approved?: Partial<Record<string, number>>;
385
363
  }
386
364
  export interface ServerTest extends TestData {
387
365
  story: StoryInput;
@@ -389,35 +367,31 @@ export interface ServerTest extends TestData {
389
367
  }
390
368
  export interface CreeveyStatus {
391
369
  isRunning: boolean;
392
- tests: Partial<{
393
- [id: string]: TestData;
394
- }>;
370
+ tests: Partial<Record<string, TestData>>;
395
371
  browsers: string[];
396
372
  }
397
373
  export interface CreeveyUpdate {
398
374
  isRunning?: boolean;
399
- tests?: Partial<{
400
- [id: string]: TestData;
401
- }>;
375
+ tests?: Partial<Record<string, TestData>>;
402
376
  removedTests?: TestMeta[];
403
377
  }
404
378
  export interface SkipOption {
405
- reason?: string;
406
379
  in?: string | string[] | RegExp;
407
380
  kinds?: string | string[] | RegExp;
408
381
  stories?: string | string[] | RegExp;
409
382
  tests?: string | string[] | RegExp;
410
383
  }
411
- export declare type SkipOptions = boolean | string | SkipOption | SkipOption[] | Record<string, SkipOption | SkipOption[]>;
412
- export declare type CreeveyTestFunction = (this: {
384
+ export type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
385
+ export interface CreeveyTestController {
413
386
  browser: WebDriver;
414
387
  until: typeof until;
415
388
  keys: IKey;
416
- expect: Chai.ExpectStatic;
389
+ expect: typeof expect;
417
390
  takeScreenshot: () => Promise<string>;
418
- updateStoryArgs: <Args extends Record<string, unknown>>(updatedArgs: Args) => Promise<void>;
391
+ updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
419
392
  readonly captureElement?: WebElementPromise;
420
- }) => Promise<void>;
393
+ }
394
+ export type CreeveyTestFunction = (this: CreeveyTestController) => Promise<void>;
421
395
  export interface CaptureOptions {
422
396
  imageName?: string;
423
397
  captureElement?: string | null;
@@ -430,16 +404,14 @@ export interface CreeveyStoryParams extends CaptureOptions {
430
404
  ms: number;
431
405
  };
432
406
  skip?: SkipOptions;
433
- tests?: {
434
- [name: string]: CreeveyTestFunction;
435
- };
407
+ tests?: Record<string, CreeveyTestFunction>;
436
408
  }
437
409
  export interface ApprovePayload {
438
410
  id: string;
439
411
  retry: number;
440
412
  image: string;
441
413
  }
442
- export declare type Request = {
414
+ export type Request = {
443
415
  type: 'status';
444
416
  } | {
445
417
  type: 'start';
@@ -450,7 +422,7 @@ export declare type Request = {
450
422
  type: 'approve';
451
423
  payload: ApprovePayload;
452
424
  };
453
- export declare type Response = {
425
+ export type Response = {
454
426
  type: 'status';
455
427
  payload: CreeveyStatus;
456
428
  } | {
@@ -469,14 +441,12 @@ export interface CreeveySuite {
469
441
  opened: boolean;
470
442
  checked: boolean;
471
443
  indeterminate: boolean;
472
- children: Partial<{
473
- [title: string]: CreeveySuite | CreeveyTest;
474
- }>;
444
+ children: Partial<Record<string, CreeveySuite | CreeveyTest>>;
475
445
  }
476
- export declare type ImagesViewMode = 'side-by-side' | 'swap' | 'slide' | 'blend';
446
+ export type ImagesViewMode = 'side-by-side' | 'swap' | 'slide' | 'blend';
477
447
  export declare function noop(): void;
478
448
  export declare function isDefined<T>(value: T | null | undefined): value is T;
479
- export declare function isTest<T1, T2 extends TestData>(x?: T1 | T2): x is T2;
449
+ export declare function isTest(x?: CreeveySuite | CreeveyTest): x is CreeveyTest;
480
450
  export declare function isObject(x: unknown): x is Record<string, unknown>;
481
451
  export declare function isString(x: unknown): x is string;
482
452
  export declare function isFunction(x: unknown): x is (...args: any[]) => any;
package/dist/types.js ADDED
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noop = noop;
4
+ exports.isDefined = isDefined;
5
+ exports.isTest = isTest;
6
+ exports.isObject = isObject;
7
+ exports.isString = isString;
8
+ exports.isFunction = isFunction;
9
+ exports.isImageError = isImageError;
10
+ exports.isProcessMessage = isProcessMessage;
11
+ exports.isWorkerMessage = isWorkerMessage;
12
+ exports.isStoriesMessage = isStoriesMessage;
13
+ exports.isTestMessage = isTestMessage;
14
+ exports.isWebpackMessage = isWebpackMessage;
15
+ exports.isDockerMessage = isDockerMessage;
16
+ function noop() {
17
+ /* noop */
18
+ }
19
+ function isDefined(value) {
20
+ return value !== null && value !== undefined;
21
+ }
22
+ function isTest(x) {
23
+ return (isDefined(x) &&
24
+ isObject(x) &&
25
+ 'id' in x &&
26
+ 'storyId' in x &&
27
+ typeof x.id == 'string' &&
28
+ typeof x.storyId == 'string');
29
+ }
30
+ function isObject(x) {
31
+ return typeof x == 'object' && x != null;
32
+ }
33
+ function isString(x) {
34
+ return typeof x == 'string';
35
+ }
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ function isFunction(x) {
38
+ return typeof x == 'function';
39
+ }
40
+ function isImageError(error) {
41
+ return error instanceof Error && 'images' in error;
42
+ }
43
+ function isProcessMessage(message) {
44
+ return isObject(message) && 'scope' in message;
45
+ }
46
+ function isWorkerMessage(message) {
47
+ return isProcessMessage(message) && message.scope == 'worker';
48
+ }
49
+ function isStoriesMessage(message) {
50
+ return isProcessMessage(message) && message.scope == 'stories';
51
+ }
52
+ function isTestMessage(message) {
53
+ return isProcessMessage(message) && message.scope == 'test';
54
+ }
55
+ function isWebpackMessage(message) {
56
+ return isProcessMessage(message) && message.scope == 'webpack';
57
+ }
58
+ function isDockerMessage(message) {
59
+ return isProcessMessage(message) && message.scope == 'docker';
60
+ }
61
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAybA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AAED,4CAEC;AAED,0CAEC;AA1DD,SAAgB,IAAI;IAClB,UAAU;AACZ,CAAC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CAAC,CAA8B;IACnD,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;QACZ,QAAQ,CAAC,CAAC,CAAC;QACX,IAAI,IAAI,CAAC;QACT,SAAS,IAAI,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ;QACvB,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,IAAI,UAAU,CAAC;AAChC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;AACrD,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC;AACjD,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;AAC9D,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC"}
package/docs/config.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ### Creevey config
14
14
 
15
- In default configuration Creevey take screenshots of `#root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
15
+ In default configuration Creevey take screenshots of `#storybook-root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
16
16
 
17
17
  ```ts
18
18
  module.exports = {
@@ -47,9 +47,6 @@ module.exports = {
47
47
  // Default Storybook url
48
48
  storybookUrl: 'http://localhost:6006',
49
49
 
50
- // Storybook config directory
51
- storybookDir: path.join(__dirname, '.storybook'),
52
-
53
50
  // Where original images are stored
54
51
  screenDir: path.join(__dirname, '../images'),
55
52
 
@@ -120,7 +117,7 @@ export const parameters = {
120
117
  creevey: {
121
118
  // Skip all *hover tests in IE11 on the global level
122
119
  skip: {
123
- ie11: { in: 'ie11', tests: /.*hover$/ },
120
+ "hovers don't work in ie11": { in: 'ie11', tests: /.*hover$/ },
124
121
  },
125
122
  },
126
123
  };
@@ -137,15 +134,14 @@ export default {
137
134
  parameters: {
138
135
  creevey: {
139
136
  // You could skip some browsers/stories or even specific tests
140
- skip: [
141
- { in: 'ie11', reason: "`MyComponent` doesn't support ie11" },
142
- { in: 'firefox', stories: 'Loading', reason: "Loading stories are flaky in firefox" },
143
- {
137
+ skip: {
138
+ "`MyComponent` doesn't support ie11": { in: 'ie11' },
139
+ "Loading stories are flaky in firefox": { in: 'firefox', stories: 'Loading' },
140
+ "`MyComponent` hovering doesn't work correctly": {
144
141
  in: ['firefox', 'chrome'],
145
142
  tests: /.*hover$/,
146
- reason: "For some reason `MyComponent` hovering doesn't work correctly",
147
143
  },
148
- ],
144
+ },
149
145
  },
150
146
  },
151
147
  } as Meta & CreeveyMeta;
@@ -169,43 +165,47 @@ Basic.parameters = {
169
165
 
170
166
  ```ts
171
167
  interface SkipOption {
172
- reason?: string;
173
168
  in?: string | string[] | RegExp;
174
169
  kinds?: string | string[] | RegExp;
175
170
  stories?: string | string[] | RegExp;
176
171
  tests?: string | string[] | RegExp;
177
172
  }
178
173
 
179
- type SkipOptions = SkipOption | SkipOption[] | Record<string, SkipOption | SkipOption[]>;
174
+ type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
180
175
  ```
181
176
 
182
177
  - Skip all stories for all browsers:
183
178
  - `skip: true`
184
179
  - `skip: 'Skip reason message'`
185
- - `skip: { reason: 'Skip reason message' }`
180
+ - `skip: { 'Skip reason message': true }`
186
181
  - Skip all stories for specific browsers:
187
- - `skip: { in: 'ie11' }`
188
- - `skip: { in: ['ie11', 'chrome'] }`
189
- - `skip: { in: /^fire.*/ }`
182
+ - `skip: { 'Skip reason message': { in: 'ie11' } }`
183
+ - `skip: { 'Skip reason message': { in: ['ie11', 'chrome'] } }`
184
+ - `skip: { 'Skip reason message': { in: /^fire.*/ } }`
190
185
  - Skip all stories in specific kinds:
191
- - `skip: { kinds: 'Button' }`
192
- - `skip: { kinds: ['Button', 'Input'] }`
193
- - `skip: { kinds: /.*Modal$/ }`
186
+ - `skip: { 'Skip reason message': { kinds: 'Button' } }`
187
+ - `skip: { 'Skip reason message': { kinds: ['Button', 'Input'] } }`
188
+ - `skip: { 'Skip reason message': { kinds: /.*Modal$/ } }`
194
189
  - Skip all tests in specific stories:
195
- - `skip: { stories: 'simple' }`
196
- - `skip: { stories: ['simple', 'special'] }`
197
- - `skip: { stories: /.*large$/ }`
190
+ - `skip: { 'Skip reason message': { stories: 'simple' } }`
191
+ - `skip: { 'Skip reason message': { stories: ['simple', 'special'] } }`
192
+ - `skip: { 'Skip reason message': { stories: /.*large$/ } }`
198
193
  - Skip specific tests:
199
- - `skip: { tests: 'click' }`
200
- - `skip: { tests: ['hover', 'click'] }`
201
- - `skip: { tests: /^press.*$/ }`
194
+ - `skip: { 'Skip reason message': { tests: 'click' } }`
195
+ - `skip: { 'Skip reason message': { tests: ['hover', 'click'] } }`
196
+ - `skip: { 'Skip reason message': { tests: /^press.*$/ } }`
202
197
  - Multiple skip options:
203
- - as an array `skip: [{ /* ... */ }]`
204
- - as an object
198
+ - for one reason
199
+ ```
200
+ skip: {
201
+ "reason": [{ /* ... */ }, { /* ... */ }],
202
+ }
203
+ ```
204
+ - for several reasons
205
205
  ```
206
206
  skip: {
207
- foo: { /* ... */ },
208
- bar: { /* ... */ },
207
+ "reason 1": { /* ... */ },
208
+ "reason 2": { /* ... */ },
209
209
  }
210
210
  ```
211
211
 
package/docs/tests.md CHANGED
@@ -13,7 +13,7 @@ export default { title: 'MyComponent' };
13
13
  export const Basic: Story & CreeveyStory = () => <MyComponent />;
14
14
  Basic.parameters = {
15
15
  creevey: {
16
- captureElement: '#root',
16
+ captureElement: '#storybook-root',
17
17
  tests: {
18
18
  async click() {
19
19
  await this.browser.actions().click(this.captureElement).perform();
@@ -25,7 +25,7 @@ Basic.parameters = {
25
25
  };
26
26
  ```
27
27
 
28
- NOTE: Here you define story parameters with simple test `click`. Where you setup capturing element `#root` then click on that element and taking screenshot to assert it. `this.browser` allow you to access to native selenium webdriver instance you could check [API here](https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html).
28
+ NOTE: Here you define story parameters with simple test `click`. Where you setup capturing element `#storybook-root` then click on that element and taking screenshot to assert it. `this.browser` allow you to access to native selenium webdriver instance you could check [API here](https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html).
29
29
 
30
30
  You also could write more powerful tests with asserting multiple screenshots
31
31
 
@@ -40,7 +40,7 @@ export const Basic: CSFStory<JSX.Element> = () => <MyForm />;
40
40
  Basic.story = {
41
41
  parameters: {
42
42
  creevey: {
43
- captureElement: '#root',
43
+ captureElement: '#storybook-root',
44
44
  delay: 1000,
45
45
  tests: {
46
46
  async submit() {
@@ -0,0 +1,62 @@
1
+ import globals from 'globals';
2
+ import js from '@eslint/js';
3
+ import tseslint from 'typescript-eslint';
4
+ // @ts-expect-error There is no types in this package
5
+ import react from 'eslint-plugin-react';
6
+ import prettierRecommended from 'eslint-plugin-prettier/recommended';
7
+
8
+ // TODO Add import plugin after it migrated to eslint 9.x
9
+ const config = tseslint.config(
10
+ { ignores: ['dist/*', 'report/*', 'scripts/*'] },
11
+ js.configs.recommended,
12
+ prettierRecommended,
13
+ /* eslint-disable-next-line */
14
+ react.configs.flat.recommended,
15
+ ...tseslint.configs.strictTypeChecked,
16
+ ...tseslint.configs.stylisticTypeChecked,
17
+ {
18
+ languageOptions: {
19
+ globals: {
20
+ ...globals.browser,
21
+ ...globals.node,
22
+ },
23
+
24
+ ecmaVersion: 2021,
25
+ sourceType: 'module',
26
+
27
+ parserOptions: {
28
+ projectService: {
29
+ allowDefaultProject: ['*.{m,}js'],
30
+ defaultProject: 'tsconfig.json',
31
+ },
32
+ },
33
+ },
34
+ settings: {
35
+ react: {
36
+ version: 'detect',
37
+ },
38
+ },
39
+ rules: {
40
+ 'react/prop-types': 'off',
41
+ '@typescript-eslint/restrict-template-expressions': [
42
+ 'error',
43
+ {
44
+ allowNumber: true,
45
+ },
46
+ ],
47
+ '@typescript-eslint/no-unused-vars': [
48
+ 'error',
49
+ {
50
+ args: 'all',
51
+ argsIgnorePattern: '^_',
52
+ caughtErrors: 'all',
53
+ caughtErrorsIgnorePattern: '^_',
54
+ destructuredArrayIgnorePattern: '^_',
55
+ varsIgnorePattern: '^_',
56
+ },
57
+ ],
58
+ },
59
+ },
60
+ );
61
+
62
+ export default config;
@@ -0,0 +1,3 @@
1
+ This is a fallback for package.json's `exports.addon` field. It's required for outdated environments (like node 11 and typescript with the "node" moduleResolution) to resolve imports from `creevey/addon` properly.
2
+
3
+ See https://github.com/andrewbranch/example-subpath-exports-ts-compat. The fallback uses the "package-json-redirects" startegy.
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "../dist/client/addon/manager.js"
3
+ }