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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) 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 +32 -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/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +8 -8
  71. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -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 +68 -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 +86 -0
  81. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  82. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +18 -18
  83. package/dist/client/shared/components/ResultsPage.js +95 -0
  84. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  85. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +9 -9
  86. package/dist/client/shared/creeveyClientApi.js +53 -0
  87. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  88. package/{lib/types → dist}/client/shared/helpers.d.ts +46 -46
  89. package/dist/client/shared/helpers.js +381 -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 +130 -0
  99. package/dist/client/web/CreeveyApp.js.map +1 -0
  100. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +11 -11
  101. package/dist/client/web/CreeveyContext.js +17 -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 +101 -0
  114. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  115. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -12
  116. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  117. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  118. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
  119. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  120. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  121. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -7
  122. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  123. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  124. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +12 -10
  125. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  126. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  127. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  128. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  129. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  130. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  131. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  132. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  133. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  134. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  135. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  136. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +15 -13
  137. package/dist/client/web/KeyboardEventsContext.js +116 -0
  138. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  139. package/{lib/types → dist}/client/web/index.d.ts +4 -4
  140. package/{lib/cjs → dist}/client/web/index.html +12 -3
  141. package/dist/client/web/index.js +75 -0
  142. package/dist/client/web/index.js.map +1 -0
  143. package/dist/client/web/main.js +79 -0
  144. package/{lib/cjs → dist}/client/web/main.js.LICENSE.txt +0 -15
  145. package/{lib/types → dist}/creevey.d.ts +1 -1
  146. package/dist/creevey.js +52 -0
  147. package/dist/creevey.js.map +1 -0
  148. package/dist/index.d.ts +5 -0
  149. package/dist/index.js +24 -0
  150. package/dist/index.js.map +1 -0
  151. package/{lib/types → dist}/server/config.d.ts +4 -4
  152. package/dist/server/config.js +86 -0
  153. package/dist/server/config.js.map +1 -0
  154. package/{lib/types → dist}/server/docker.d.ts +7 -7
  155. package/dist/server/docker.js +122 -0
  156. package/dist/server/docker.js.map +1 -0
  157. package/{lib/types → dist}/server/index.d.ts +2 -2
  158. package/dist/server/index.js +47 -0
  159. package/dist/server/index.js.map +1 -0
  160. package/{lib/types → dist}/server/logger.d.ts +10 -10
  161. package/dist/server/logger.js +25 -0
  162. package/dist/server/logger.js.map +1 -0
  163. package/{lib/types → dist}/server/master/api.d.ts +7 -7
  164. package/dist/server/master/api.js +50 -0
  165. package/dist/server/master/api.js.map +1 -0
  166. package/dist/server/master/index.d.ts +3 -0
  167. package/dist/server/master/index.js +110 -0
  168. package/dist/server/master/index.js.map +1 -0
  169. package/{lib/types → dist}/server/master/master.d.ts +7 -7
  170. package/dist/server/master/master.js +40 -0
  171. package/dist/server/master/master.js.map +1 -0
  172. package/{lib/types → dist}/server/master/pool.d.ts +30 -31
  173. package/dist/server/master/pool.js +186 -0
  174. package/dist/server/master/pool.js.map +1 -0
  175. package/{lib/types → dist}/server/master/runner.d.ts +21 -26
  176. package/dist/server/master/runner.js +172 -0
  177. package/dist/server/master/runner.js.map +1 -0
  178. package/dist/server/master/server.d.ts +2 -0
  179. package/dist/server/master/server.js +114 -0
  180. package/dist/server/master/server.js.map +1 -0
  181. package/{lib/types → dist}/server/messages.d.ts +26 -27
  182. package/dist/server/messages.js +222 -0
  183. package/dist/server/messages.js.map +1 -0
  184. package/{lib/types → dist}/server/selenium/browser.d.ts +19 -17
  185. package/dist/server/selenium/browser.js +637 -0
  186. package/dist/server/selenium/browser.js.map +1 -0
  187. package/dist/server/selenium/index.d.ts +2 -0
  188. package/dist/server/selenium/index.js +19 -0
  189. package/dist/server/selenium/index.js.map +1 -0
  190. package/{lib/types → dist}/server/selenium/selenoid.d.ts +3 -3
  191. package/dist/server/selenium/selenoid.js +120 -0
  192. package/dist/server/selenium/selenoid.js.map +1 -0
  193. package/dist/server/stories.d.ts +3 -0
  194. package/dist/server/stories.js +92 -0
  195. package/dist/server/stories.js.map +1 -0
  196. package/dist/server/storybook/providers/browser.d.ts +2 -0
  197. package/dist/server/storybook/providers/browser.js +60 -0
  198. package/dist/server/storybook/providers/browser.js.map +1 -0
  199. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  200. package/dist/server/storybook/providers/hybrid.js +59 -0
  201. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  202. package/dist/server/telemetry.d.ts +2 -0
  203. package/dist/server/telemetry.js +196 -0
  204. package/dist/server/telemetry.js.map +1 -0
  205. package/{lib/types → dist}/server/testsFiles/parser.d.ts +8 -12
  206. package/dist/server/testsFiles/parser.js +50 -0
  207. package/dist/server/testsFiles/parser.js.map +1 -0
  208. package/dist/server/update.d.ts +2 -0
  209. package/dist/server/update.js +53 -0
  210. package/dist/server/update.js.map +1 -0
  211. package/dist/server/utils.d.ts +25 -0
  212. package/dist/server/utils.js +157 -0
  213. package/dist/server/utils.js.map +1 -0
  214. package/{lib/types → dist}/server/worker/chai-image.d.ts +5 -6
  215. package/dist/server/worker/chai-image.js +113 -0
  216. package/dist/server/worker/chai-image.js.map +1 -0
  217. package/{lib/types → dist}/server/worker/helpers.d.ts +8 -8
  218. package/dist/server/worker/helpers.js +57 -0
  219. package/dist/server/worker/helpers.js.map +1 -0
  220. package/dist/server/worker/index.d.ts +1 -0
  221. package/dist/server/worker/index.js +6 -0
  222. package/dist/server/worker/index.js.map +1 -0
  223. package/{lib/types → dist}/server/worker/reporter.d.ts +8 -8
  224. package/dist/server/worker/reporter.js +130 -0
  225. package/dist/server/worker/reporter.js.map +1 -0
  226. package/dist/server/worker/worker.d.ts +4 -0
  227. package/dist/server/worker/worker.js +211 -0
  228. package/dist/server/worker/worker.js.map +1 -0
  229. package/{lib/types → dist}/shared/index.d.ts +7 -7
  230. package/dist/shared/index.js +77 -0
  231. package/dist/shared/index.js.map +1 -0
  232. package/{lib/types → dist}/shared/serializeRegExp.d.ts +9 -9
  233. package/dist/shared/serializeRegExp.js +25 -0
  234. package/dist/shared/serializeRegExp.js.map +1 -0
  235. package/{lib/types → dist}/types.d.ts +459 -490
  236. package/dist/types.js +61 -0
  237. package/dist/types.js.map +1 -0
  238. package/docs/config.md +30 -30
  239. package/docs/tests.md +3 -3
  240. package/manager/package.json +3 -0
  241. package/package.json +115 -156
  242. package/preset/README.md +3 -0
  243. package/preset/package.json +3 -0
  244. package/preview/README.md +3 -0
  245. package/preview/package.json +3 -0
  246. package/src/cli.ts +3 -0
  247. package/src/client/addon/components/Addon.tsx +53 -0
  248. package/src/client/addon/components/Icons.tsx +28 -0
  249. package/src/client/addon/components/Panel.tsx +53 -0
  250. package/src/client/addon/components/TestSelect.tsx +48 -0
  251. package/src/client/addon/components/Tools.tsx +93 -0
  252. package/src/client/addon/controller.ts +224 -0
  253. package/src/client/addon/decorator.ts +3 -0
  254. package/src/client/addon/index.ts +2 -0
  255. package/src/client/addon/manager.ts +44 -0
  256. package/src/client/addon/preset.ts +3 -0
  257. package/src/client/addon/preview.ts +7 -0
  258. package/src/client/addon/readyForCapture.ts +9 -0
  259. package/src/client/addon/utils.tsx +24 -0
  260. package/src/client/addon/withCreevey.ts +326 -0
  261. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  262. package/src/client/shared/components/ImagesView/ImagesView.tsx +70 -0
  263. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  264. package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
  265. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  266. package/src/client/shared/components/ImagesView/common.ts +23 -0
  267. package/src/client/shared/components/ImagesView/index.ts +5 -0
  268. package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
  269. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  270. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  271. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  272. package/src/client/shared/components/ResultsPage.tsx +135 -0
  273. package/src/client/shared/creeveyClientApi.ts +64 -0
  274. package/src/client/shared/helpers.ts +422 -0
  275. package/src/client/shared/viewMode.ts +10 -0
  276. package/src/client/web/CreeveyApp.tsx +177 -0
  277. package/src/client/web/CreeveyContext.tsx +20 -0
  278. package/src/client/web/CreeveyLoader.tsx +56 -0
  279. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  280. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  281. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
  282. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  283. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  284. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  285. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  286. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  287. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  288. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  289. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  290. package/src/client/web/index.html +28 -0
  291. package/src/client/web/index.tsx +63 -0
  292. package/src/creevey.ts +47 -0
  293. package/src/index.ts +4 -0
  294. package/src/server/config.ts +83 -0
  295. package/src/server/docker.ts +136 -0
  296. package/src/server/index.ts +51 -0
  297. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  298. package/src/server/master/api.ts +55 -0
  299. package/src/server/master/index.ts +111 -0
  300. package/src/server/master/master.ts +47 -0
  301. package/src/server/master/pool.ts +203 -0
  302. package/src/server/master/runner.ts +189 -0
  303. package/src/server/master/server.ts +124 -0
  304. package/src/server/messages.ts +273 -0
  305. package/src/server/selenium/browser.ts +837 -0
  306. package/src/server/selenium/index.ts +2 -0
  307. package/src/server/selenium/selenoid.ts +154 -0
  308. package/src/server/stories.ts +133 -0
  309. package/src/server/storybook/providers/browser.ts +58 -0
  310. package/src/server/storybook/providers/hybrid.ts +70 -0
  311. package/src/server/telemetry.ts +212 -0
  312. package/src/server/testsFiles/parser.ts +62 -0
  313. package/src/server/update.ts +74 -0
  314. package/src/server/utils.ts +206 -0
  315. package/src/server/worker/chai-image.ts +147 -0
  316. package/src/server/worker/helpers.ts +61 -0
  317. package/src/server/worker/index.ts +1 -0
  318. package/src/server/worker/reporter.ts +170 -0
  319. package/src/server/worker/worker.ts +239 -0
  320. package/src/shared/index.ts +76 -0
  321. package/src/shared/serializeRegExp.ts +26 -0
  322. package/src/types.ts +500 -0
  323. package/types/chai.d.ts +0 -1
  324. package/types/global.d.ts +5 -0
  325. package/types/mocha.d.ts +1 -1
  326. package/addon/package.json +0 -4
  327. package/jest.config.js +0 -6
  328. package/lib/cjs/cli.js +0 -5
  329. package/lib/cjs/client/addon/Manager.js +0 -264
  330. package/lib/cjs/client/addon/components/Addon.js +0 -55
  331. package/lib/cjs/client/addon/components/Icons.js +0 -46
  332. package/lib/cjs/client/addon/components/Panel.js +0 -72
  333. package/lib/cjs/client/addon/components/TestSelect.js +0 -65
  334. package/lib/cjs/client/addon/components/Tools.js +0 -95
  335. package/lib/cjs/client/addon/decorator.js +0 -11
  336. package/lib/cjs/client/addon/index.js +0 -31
  337. package/lib/cjs/client/addon/preset.js +0 -62
  338. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  339. package/lib/cjs/client/addon/register.js +0 -72
  340. package/lib/cjs/client/addon/utils.js +0 -38
  341. package/lib/cjs/client/addon/withCreevey.js +0 -346
  342. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -87
  343. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -92
  344. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -154
  345. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -166
  346. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -91
  347. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  348. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -50
  349. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -94
  350. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -82
  351. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -119
  352. package/lib/cjs/client/shared/components/ResultsPage.js +0 -143
  353. package/lib/cjs/client/shared/creeveyClientApi.js +0 -76
  354. package/lib/cjs/client/shared/helpers.js +0 -411
  355. package/lib/cjs/client/shared/viewMode.js +0 -17
  356. package/lib/cjs/client/web/142.js +0 -2
  357. package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
  358. package/lib/cjs/client/web/32.js +0 -1
  359. package/lib/cjs/client/web/551.js +0 -1
  360. package/lib/cjs/client/web/566.js +0 -2
  361. package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
  362. package/lib/cjs/client/web/691.js +0 -2
  363. package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
  364. package/lib/cjs/client/web/725.js +0 -1
  365. package/lib/cjs/client/web/main.js +0 -2
  366. package/lib/cjs/creevey.js +0 -69
  367. package/lib/cjs/index.js +0 -62
  368. package/lib/cjs/server/config.js +0 -96
  369. package/lib/cjs/server/docker.js +0 -146
  370. package/lib/cjs/server/extract.js +0 -50
  371. package/lib/cjs/server/index.js +0 -83
  372. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
  373. package/lib/cjs/server/loaders/babel/helpers.js +0 -469
  374. package/lib/cjs/server/loaders/babel/register.js +0 -124
  375. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  376. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  377. package/lib/cjs/server/loaders/webpack/compile.js +0 -293
  378. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -179
  379. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
  380. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  381. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  382. package/lib/cjs/server/logger.js +0 -48
  383. package/lib/cjs/server/master/api.js +0 -75
  384. package/lib/cjs/server/master/index.js +0 -146
  385. package/lib/cjs/server/master/master.js +0 -57
  386. package/lib/cjs/server/master/pool.js +0 -197
  387. package/lib/cjs/server/master/runner.js +0 -281
  388. package/lib/cjs/server/master/server.js +0 -129
  389. package/lib/cjs/server/messages.js +0 -264
  390. package/lib/cjs/server/selenium/browser.js +0 -672
  391. package/lib/cjs/server/selenium/index.js +0 -31
  392. package/lib/cjs/server/selenium/selenoid.js +0 -172
  393. package/lib/cjs/server/stories.js +0 -159
  394. package/lib/cjs/server/storybook/entry.js +0 -70
  395. package/lib/cjs/server/storybook/helpers.js +0 -159
  396. package/lib/cjs/server/storybook/providers/browser.js +0 -74
  397. package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
  398. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  399. package/lib/cjs/server/testsFiles/parser.js +0 -72
  400. package/lib/cjs/server/testsFiles/register.js +0 -48
  401. package/lib/cjs/server/update.js +0 -79
  402. package/lib/cjs/server/utils.js +0 -183
  403. package/lib/cjs/server/worker/chai-image.js +0 -142
  404. package/lib/cjs/server/worker/helpers.js +0 -69
  405. package/lib/cjs/server/worker/index.js +0 -15
  406. package/lib/cjs/server/worker/reporter.js +0 -108
  407. package/lib/cjs/server/worker/worker.js +0 -268
  408. package/lib/cjs/shared/index.js +0 -101
  409. package/lib/cjs/shared/serializeRegExp.js +0 -42
  410. package/lib/cjs/types.js +0 -74
  411. package/lib/esm/cli.js +0 -4
  412. package/lib/esm/client/addon/Manager.js +0 -248
  413. package/lib/esm/client/addon/components/Addon.js +0 -39
  414. package/lib/esm/client/addon/components/Icons.js +0 -31
  415. package/lib/esm/client/addon/components/Panel.js +0 -53
  416. package/lib/esm/client/addon/components/TestSelect.js +0 -51
  417. package/lib/esm/client/addon/components/Tools.js +0 -74
  418. package/lib/esm/client/addon/decorator.js +0 -2
  419. package/lib/esm/client/addon/index.js +0 -2
  420. package/lib/esm/client/addon/preset.js +0 -41
  421. package/lib/esm/client/addon/readyForCapture.js +0 -5
  422. package/lib/esm/client/addon/register.js +0 -51
  423. package/lib/esm/client/addon/utils.js +0 -31
  424. package/lib/esm/client/addon/withCreevey.js +0 -322
  425. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -67
  426. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -69
  427. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -131
  428. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -143
  429. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -71
  430. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  431. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -36
  432. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -80
  433. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -68
  434. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -97
  435. package/lib/esm/client/shared/components/ResultsPage.js +0 -115
  436. package/lib/esm/client/shared/creeveyClientApi.js +0 -67
  437. package/lib/esm/client/shared/helpers.js +0 -353
  438. package/lib/esm/client/shared/viewMode.js +0 -6
  439. package/lib/esm/creevey.js +0 -54
  440. package/lib/esm/index.js +0 -5
  441. package/lib/esm/server/config.js +0 -73
  442. package/lib/esm/server/docker.js +0 -123
  443. package/lib/esm/server/extract.js +0 -34
  444. package/lib/esm/server/index.js +0 -64
  445. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
  446. package/lib/esm/server/loaders/babel/helpers.js +0 -452
  447. package/lib/esm/server/loaders/babel/register.js +0 -103
  448. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  449. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  450. package/lib/esm/server/loaders/webpack/compile.js +0 -270
  451. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -158
  452. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
  453. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  454. package/lib/esm/server/loaders/webpack/start.js +0 -27
  455. package/lib/esm/server/master/api.js +0 -64
  456. package/lib/esm/server/master/index.js +0 -125
  457. package/lib/esm/server/master/master.js +0 -38
  458. package/lib/esm/server/master/pool.js +0 -176
  459. package/lib/esm/server/master/runner.js +0 -259
  460. package/lib/esm/server/master/server.js +0 -105
  461. package/lib/esm/server/messages.js +0 -232
  462. package/lib/esm/server/selenium/browser.js +0 -639
  463. package/lib/esm/server/selenium/index.js +0 -2
  464. package/lib/esm/server/selenium/selenoid.js +0 -149
  465. package/lib/esm/server/stories.js +0 -140
  466. package/lib/esm/server/storybook/entry.js +0 -46
  467. package/lib/esm/server/storybook/helpers.js +0 -98
  468. package/lib/esm/server/storybook/providers/browser.js +0 -60
  469. package/lib/esm/server/storybook/providers/hybrid.js +0 -64
  470. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  471. package/lib/esm/server/testsFiles/parser.js +0 -50
  472. package/lib/esm/server/testsFiles/register.js +0 -35
  473. package/lib/esm/server/update.js +0 -61
  474. package/lib/esm/server/utils.js +0 -142
  475. package/lib/esm/server/worker/chai-image.js +0 -130
  476. package/lib/esm/server/worker/helpers.js +0 -60
  477. package/lib/esm/server/worker/index.js +0 -1
  478. package/lib/esm/server/worker/reporter.js +0 -86
  479. package/lib/esm/server/worker/worker.js +0 -238
  480. package/lib/esm/shared/index.js +0 -78
  481. package/lib/esm/shared/serializeRegExp.js +0 -24
  482. package/lib/esm/types.js +0 -43
  483. package/lib/types/cli.d.ts +0 -1
  484. package/lib/types/client/addon/components/Addon.d.ts +0 -8
  485. package/lib/types/client/addon/components/Tools.d.ts +0 -6
  486. package/lib/types/client/addon/decorator.d.ts +0 -1
  487. package/lib/types/client/addon/index.d.ts +0 -2
  488. package/lib/types/client/addon/preset.d.ts +0 -23
  489. package/lib/types/client/addon/register.d.ts +0 -3
  490. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
  491. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
  492. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
  493. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
  494. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  495. package/lib/types/client/web/CreeveyLoader.d.ts +0 -2
  496. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  497. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  498. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  499. package/lib/types/index.d.ts +0 -2
  500. package/lib/types/server/extract.d.ts +0 -2
  501. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  502. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  503. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  504. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  505. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  506. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  507. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  508. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  509. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  510. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  511. package/lib/types/server/master/index.d.ts +0 -3
  512. package/lib/types/server/master/server.d.ts +0 -2
  513. package/lib/types/server/selenium/index.d.ts +0 -2
  514. package/lib/types/server/stories.d.ts +0 -8
  515. package/lib/types/server/storybook/entry.d.ts +0 -18
  516. package/lib/types/server/storybook/helpers.d.ts +0 -24
  517. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  518. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  519. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  520. package/lib/types/server/testsFiles/register.d.ts +0 -2
  521. package/lib/types/server/update.d.ts +0 -2
  522. package/lib/types/server/utils.d.ts +0 -20
  523. package/lib/types/server/worker/index.d.ts +0 -1
  524. package/lib/types/server/worker/worker.d.ts +0 -4
  525. package/preset.js +0 -9
  526. package/types/babel__register.d.ts +0 -1
  527. package/types/event-source-polyfill.d.ts +0 -6
  528. package/types/mdx.d.ts +0 -7
  529. /package/{addon → manager}/README.md +0 -0
package/src/types.ts ADDED
@@ -0,0 +1,500 @@
1
+ import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
2
+ import type { IKey } from 'selenium-webdriver/lib/input.js';
3
+ import type { Worker as ClusterWorker } from 'cluster';
4
+ import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
5
+ import type Pixelmatch from 'pixelmatch';
6
+ import type { Context } from 'mocha';
7
+ import type { expect } from 'chai';
8
+
9
+ /* eslint-disable @typescript-eslint/no-explicit-any */
10
+ export type DiffOptions = typeof Pixelmatch extends (
11
+ x1: any,
12
+ x2: any,
13
+ x3: any,
14
+ x4: any,
15
+ x5: any,
16
+ options?: infer T,
17
+ ) => void
18
+ ? T
19
+ : never;
20
+ /* eslint-enable @typescript-eslint/no-explicit-any */
21
+
22
+ export interface SetStoriesData {
23
+ v?: number;
24
+ globalParameters: { creevey?: CreeveyStoryParams };
25
+ kindParameters: Partial<Record<string, { fileName: string; creevey?: CreeveyStoryParams }>>;
26
+ stories: StoriesRaw;
27
+ }
28
+
29
+ export type StoriesRaw = Record<string, StoryContextForEnhancers>;
30
+
31
+ export type StoryInput = StoriesRaw extends Record<string, infer S> ? S : never;
32
+
33
+ export interface StoryMeta {
34
+ title: string;
35
+ component?: unknown;
36
+ decorators?: DecoratorFunction[];
37
+ parameters?: {
38
+ creevey?: CreeveyStoryParams;
39
+ [name: string]: unknown;
40
+ };
41
+ }
42
+
43
+ export interface CreeveyMeta {
44
+ parameters?: {
45
+ creevey?: CreeveyStoryParams;
46
+ [name: string]: unknown;
47
+ };
48
+ }
49
+
50
+ export interface CSFStory<StoryFnReturnType = unknown> {
51
+ (): StoryFnReturnType;
52
+ /**
53
+ * @deprecated
54
+ * CSF .story annotations deprecated; annotate story functions directly:
55
+ * - StoryFn.story.name => StoryFn.storyName
56
+ * - StoryFn.story.(parameters|decorators) => StoryFn.(parameters|decorators)
57
+ * See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#hoisted-csf-annotations for details and codemod.
58
+ */
59
+ story?: {
60
+ name?: string;
61
+ decorators?: DecoratorFunction[];
62
+ parameters?: {
63
+ creevey?: CreeveyStoryParams;
64
+ [name: string]: unknown;
65
+ };
66
+ };
67
+
68
+ storyName?: string;
69
+ decorators?: DecoratorFunction[];
70
+ parameters?: {
71
+ creevey?: CreeveyStoryParams;
72
+ [name: string]: unknown;
73
+ };
74
+ }
75
+
76
+ export interface CreeveyStory {
77
+ parameters?: {
78
+ creevey?: CreeveyStoryParams;
79
+ [name: string]: unknown;
80
+ };
81
+ }
82
+
83
+ export interface Capabilities {
84
+ browserName: string;
85
+ browserVersion?: string;
86
+ platformName?: string;
87
+ /**
88
+ * @deprecated use `browserVersion` instead
89
+ */
90
+ version?: string;
91
+ [prop: string]: unknown;
92
+ }
93
+
94
+ export type BrowserConfig = Capabilities & {
95
+ limit?: number;
96
+ gridUrl?: string;
97
+ storybookUrl?: string;
98
+ /**
99
+ * Storybook's globals to set in a specific browser
100
+ * @see https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
101
+ */
102
+ _storybookGlobals?: StorybookGlobals;
103
+ /**
104
+ * Specify custom docker image. Used only with `useDocker == true`
105
+ * @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
106
+ */
107
+ dockerImage?: string;
108
+ /**
109
+ * Command to start standalone webdriver
110
+ * Used only with `useDocker == false`
111
+ */
112
+ webdriverCommand?: string[];
113
+ viewport?: { width: number; height: number };
114
+ };
115
+
116
+ export type StorybookGlobals = Record<string, unknown>;
117
+
118
+ export type Browser = boolean | string | BrowserConfig;
119
+
120
+ export interface HookConfig {
121
+ before?: () => unknown;
122
+ after?: () => unknown;
123
+ }
124
+
125
+ export interface DockerAuth {
126
+ key?: string;
127
+ username?: string;
128
+ password?: string;
129
+ auth?: string;
130
+ email?: string;
131
+ serveraddress?: string;
132
+ }
133
+
134
+ export interface Config {
135
+ /**
136
+ * Url to Selenium grid hub or standalone selenium.
137
+ * By default creevey will use docker containers
138
+ */
139
+ gridUrl: string;
140
+ /**
141
+ * Url where storybook hosted on
142
+ * @default 'http://localhost:6006'
143
+ */
144
+ storybookUrl: string;
145
+ /**
146
+ * Url where storybook hosted on
147
+ */
148
+ resolveStorybookUrl?: () => Promise<string>;
149
+ /**
150
+ * Absolute path to directory with reference images
151
+ * @default path.join(process.cwd(), './images')
152
+ */
153
+ screenDir: string;
154
+ /**
155
+ * Absolute path where test reports and diff images would be saved
156
+ * @default path.join(process.cwd(), './report')
157
+ */
158
+ reportDir: string;
159
+ /**
160
+ * How much test would be retried
161
+ * @default 0
162
+ */
163
+ maxRetries: number;
164
+ /**
165
+ * Define pixelmatch diff options
166
+ * @default { threshold: 0, includeAA: true }
167
+ */
168
+ diffOptions: DiffOptions;
169
+ /**
170
+ * Browser capabilities
171
+ * @default { chrome: true }
172
+ */
173
+ browsers: Record<string, Browser>;
174
+ /**
175
+ * Hooks that allow run custom script before and after creevey start
176
+ */
177
+ hooks: HookConfig;
178
+ /**
179
+ * Creevey automatically download latest selenoid binary. You can define path to different verison.
180
+ * Works only with `useDocker == false`
181
+ */
182
+ selenoidPath?: string;
183
+ /**
184
+ * Creevey has two built-in stories providers.
185
+ *
186
+ * `nodejsStoriesProvider` - The first one is used by default except if CSFv3 is enabled in Storybook.
187
+ * This provider builds and runs storybook in nodejs env, that allows write interaction tests by using Selenium API.
188
+ * The downside is it depends from project build specific and slightly increases init time.
189
+ *
190
+ * `browserStoriesProvider` - The second one is used by default with CSFv3 storybook feature.
191
+ * It load stories from storybook which is running in browser, like storyshots or loki do it.
192
+ * The downside of this, you can't use interaction tests in Creevey, unless you use CSFv3.
193
+ * Where you can define `play` method for each story
194
+ *
195
+ * Usage
196
+ * ``` typescript
197
+ * import { nodejsStoriesProvider as provider } from 'creevey'
198
+ * // or
199
+ * import { browserStoriesProvider as provider } from 'creevey'
200
+ *
201
+ * // Creevey config
202
+ * module.exports = {
203
+ * storiesProvider: provider
204
+ * }
205
+ * ```
206
+ */
207
+ storiesProvider: StoriesProvider;
208
+ /**
209
+ * Define custom babel options for load stories transformation
210
+ */
211
+ babelOptions: (options: Record<string, unknown>) => Record<string, unknown>;
212
+ /**
213
+ * Allows you to start selenoid without docker
214
+ * and use standalone browsers
215
+ * @default true
216
+ */
217
+ useDocker: boolean;
218
+ /**
219
+ * Custom selenoid docker image
220
+ * @default 'aerokube/selenoid:latest-release'
221
+ */
222
+ dockerImage: string;
223
+ /**
224
+ * Should Creevey pull docker images or use local ones
225
+ * @default true
226
+ */
227
+ pullImages: boolean;
228
+ /**
229
+ * Define auth config for private docker registry
230
+ */
231
+ dockerAuth?: DockerAuth;
232
+ /**
233
+ * Enable to stop tests running right after the first failed test.
234
+ * The `--ui` CLI option ignores this option
235
+ */
236
+ failFast: boolean;
237
+ /**
238
+ * Specify platform for docker images
239
+ */
240
+ dockerImagePlatform: string;
241
+ testsRegex?: RegExp;
242
+ testsDir?: string;
243
+ tsConfig?: string;
244
+ /**
245
+ * Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
246
+ * It's being sent only for projects from git.skbkontur.ru
247
+ * @default false
248
+ */
249
+ disableTelemetry?: boolean;
250
+ }
251
+
252
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
253
+ export interface StoriesProvider<T = any> {
254
+ (config: Config, options: T, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
255
+ providerName?: string;
256
+ }
257
+
258
+ export type CreeveyConfig = Partial<Config>;
259
+
260
+ export interface Options {
261
+ _: string[];
262
+ config?: string;
263
+ port: number;
264
+ ui: boolean;
265
+ update: boolean | string;
266
+ debug: boolean;
267
+ trace: boolean;
268
+ tests: boolean;
269
+ browser?: string;
270
+ reporter?: string;
271
+ screenDir?: string;
272
+ reportDir?: string;
273
+ storybookUrl?: string;
274
+ saveReport: boolean;
275
+ failFast?: boolean;
276
+ }
277
+
278
+ export type WorkerMessage = { type: 'ready'; payload?: never } | { type: 'error'; payload: { error: string } };
279
+
280
+ export type StoriesMessage =
281
+ | { type: 'get'; payload?: never }
282
+ | { type: 'set'; payload: { stories: StoriesRaw; oldTests: string[] } }
283
+ | { type: 'update'; payload: [string, StoryInput[]][] }
284
+ | { type: 'capture'; payload?: CaptureOptions };
285
+
286
+ export type TestMessage =
287
+ | { type: 'start'; payload: { id: string; path: string[]; retries: number } }
288
+ | { type: 'end'; payload: TestResult };
289
+
290
+ export type WebpackMessage =
291
+ | { type: 'success'; payload?: never }
292
+ | { type: 'fail'; payload?: never }
293
+ | { type: 'rebuild succeeded'; payload?: never }
294
+ | { type: 'rebuild failed'; payload?: never };
295
+
296
+ export type DockerMessage = { type: 'start'; payload?: never } | { type: 'success'; payload: { gridUrl: string } };
297
+
298
+ export type ShutdownMessage = object;
299
+
300
+ export type ProcessMessage =
301
+ | (WorkerMessage & { scope: 'worker' })
302
+ | (StoriesMessage & { scope: 'stories' })
303
+ | (TestMessage & { scope: 'test' })
304
+ | (WebpackMessage & { scope: 'webpack' })
305
+ | (DockerMessage & { scope: 'docker' })
306
+ | (ShutdownMessage & { scope: 'shutdown' });
307
+
308
+ export type WorkerHandler = (message: WorkerMessage) => void;
309
+ export type StoriesHandler = (message: StoriesMessage) => void;
310
+ export type TestHandler = (message: TestMessage) => void;
311
+ export type WebpackHandler = (message: WebpackMessage) => void;
312
+ export type DockerHandler = (message: DockerMessage) => void;
313
+ export type ShutdownHandler = (message: ShutdownMessage) => void;
314
+
315
+ export interface Worker extends ClusterWorker {
316
+ isRunning?: boolean;
317
+ }
318
+
319
+ export interface Images {
320
+ actual: string;
321
+ expect?: string;
322
+ diff?: string;
323
+ error?: string;
324
+ }
325
+
326
+ export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'success' | 'retrying';
327
+
328
+ export interface TestResult {
329
+ status: 'failed' | 'success';
330
+ // TODO Remove checks `name == browser` in TestResultsView
331
+ // images?: Partial<{ [name: string]: Images }> | Images;
332
+ images?: Partial<Record<string, Images>>;
333
+ error?: string;
334
+ }
335
+
336
+ export interface ImagesError extends Error {
337
+ images: string | Partial<Record<string, string>>;
338
+ }
339
+
340
+ export interface TestMeta {
341
+ id: string;
342
+ storyPath: string[];
343
+ browser: string;
344
+ testName?: string;
345
+ storyId: string;
346
+ }
347
+
348
+ export interface TestData extends TestMeta {
349
+ skip?: boolean | string;
350
+ retries?: number;
351
+ status?: TestStatus;
352
+ results?: TestResult[];
353
+ approved?: Partial<Record<string, number>>;
354
+ }
355
+
356
+ export interface ServerTest extends TestData {
357
+ story: StoryInput;
358
+ fn: (this: Context) => Promise<void>;
359
+ }
360
+
361
+ export interface CreeveyStatus {
362
+ isRunning: boolean;
363
+ tests: Partial<Record<string, TestData>>;
364
+ browsers: string[];
365
+ }
366
+
367
+ export interface CreeveyUpdate {
368
+ isRunning?: boolean;
369
+ // TODO Use Map instead
370
+ tests?: Partial<Record<string, TestData>>;
371
+ removedTests?: TestMeta[];
372
+ }
373
+
374
+ export interface SkipOption {
375
+ in?: string | string[] | RegExp;
376
+ kinds?: string | string[] | RegExp;
377
+ stories?: string | string[] | RegExp;
378
+ tests?: string | string[] | RegExp;
379
+ }
380
+
381
+ export type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
382
+
383
+ export interface CreeveyTestController {
384
+ browser: WebDriver;
385
+ until: typeof until;
386
+ keys: IKey;
387
+ expect: typeof expect;
388
+ takeScreenshot: () => Promise<string>;
389
+ updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
390
+ readonly captureElement?: WebElementPromise;
391
+ }
392
+
393
+ export type CreeveyTestFunction = (this: CreeveyTestController) => Promise<void>;
394
+
395
+ export interface CaptureOptions {
396
+ imageName?: string;
397
+ captureElement?: string | null;
398
+ ignoreElements?: string | string[] | null;
399
+ }
400
+
401
+ export interface CreeveyStoryParams extends CaptureOptions {
402
+ waitForReady?: boolean;
403
+ delay?: number | { for: string[]; ms: number };
404
+ skip?: SkipOptions;
405
+ tests?: Record<string, CreeveyTestFunction>;
406
+ }
407
+
408
+ export interface ApprovePayload {
409
+ id: string;
410
+ retry: number;
411
+ image: string;
412
+ }
413
+
414
+ export type Request =
415
+ | { type: 'status' }
416
+ | { type: 'start'; payload: string[] }
417
+ | { type: 'stop' }
418
+ | { type: 'approve'; payload: ApprovePayload };
419
+
420
+ export type Response =
421
+ | { type: 'status'; payload: CreeveyStatus }
422
+ | { type: 'update'; payload: CreeveyUpdate }
423
+ | { type: 'capture' };
424
+
425
+ export interface CreeveyTest extends TestData {
426
+ checked: boolean;
427
+ }
428
+
429
+ export interface CreeveySuite {
430
+ path: string[];
431
+ skip: boolean;
432
+ status?: TestStatus;
433
+ opened: boolean;
434
+ checked: boolean;
435
+ indeterminate: boolean;
436
+ // TODO Use Map instead
437
+ children: Partial<Record<string, CreeveySuite | CreeveyTest>>;
438
+ }
439
+
440
+ export type ImagesViewMode = 'side-by-side' | 'swap' | 'slide' | 'blend';
441
+
442
+ export function noop(): void {
443
+ /* noop */
444
+ }
445
+
446
+ export function isDefined<T>(value: T | null | undefined): value is T {
447
+ return value !== null && value !== undefined;
448
+ }
449
+
450
+ export function isTest(x?: CreeveySuite | CreeveyTest): x is CreeveyTest {
451
+ return (
452
+ isDefined(x) &&
453
+ isObject(x) &&
454
+ 'id' in x &&
455
+ 'storyId' in x &&
456
+ typeof x.id == 'string' &&
457
+ typeof x.storyId == 'string'
458
+ );
459
+ }
460
+
461
+ export function isObject(x: unknown): x is Record<string, unknown> {
462
+ return typeof x == 'object' && x != null;
463
+ }
464
+
465
+ export function isString(x: unknown): x is string {
466
+ return typeof x == 'string';
467
+ }
468
+
469
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
470
+ export function isFunction(x: unknown): x is (...args: any[]) => any {
471
+ return typeof x == 'function';
472
+ }
473
+
474
+ export function isImageError(error: unknown): error is ImagesError {
475
+ return error instanceof Error && 'images' in error;
476
+ }
477
+
478
+ export function isProcessMessage(message: unknown): message is ProcessMessage {
479
+ return isObject(message) && 'scope' in message;
480
+ }
481
+
482
+ export function isWorkerMessage(message: unknown): message is WorkerMessage {
483
+ return isProcessMessage(message) && message.scope == 'worker';
484
+ }
485
+
486
+ export function isStoriesMessage(message: unknown): message is StoriesMessage {
487
+ return isProcessMessage(message) && message.scope == 'stories';
488
+ }
489
+
490
+ export function isTestMessage(message: unknown): message is TestMessage {
491
+ return isProcessMessage(message) && message.scope == 'test';
492
+ }
493
+
494
+ export function isWebpackMessage(message: unknown): message is WebpackMessage {
495
+ return isProcessMessage(message) && message.scope == 'webpack';
496
+ }
497
+
498
+ export function isDockerMessage(message: unknown): message is DockerMessage {
499
+ return isProcessMessage(message) && message.scope == 'docker';
500
+ }
package/types/chai.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  /// <reference types="chai" />
2
2
  declare namespace Chai {
3
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
3
  interface ChaiStatic {
5
4
  use(fn: (chai: ChaiStatic, utils: ChaiUtils) => void): ChaiStatic;
6
5
  }
@@ -0,0 +1,5 @@
1
+ /* eslint-disable no-var */
2
+
3
+ declare var __CREEVEY_SERVER_HOST__: string;
4
+ declare var __CREEVEY_SERVER_PORT__: number | null;
5
+ declare var __CREEVEY_CLIENT_PORT__: number | null;
package/types/mocha.d.ts CHANGED
@@ -7,7 +7,7 @@ declare namespace Mocha {
7
7
  keys: import('selenium-webdriver/lib/input').IKey;
8
8
  expect: Chai.ExpectStatic;
9
9
  takeScreenshot: () => Promise<string>;
10
- updateStoryArgs: <Args extends Record<string, unknown>>(updatedArgs: Args) => Promise<void>;
10
+ updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
11
11
  readonly captureElement?: import('selenium-webdriver').WebElementPromise;
12
12
  browserName: string;
13
13
  testScope: string[];
@@ -1,4 +0,0 @@
1
- {
2
- "main": "../lib/cjs/client/addon/index.js",
3
- "types": "../lib/types/client/addon/index.d.ts"
4
- }
package/jest.config.js DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- moduleNameMapper: {
3
- '#(.*)': '<rootDir>/node_modules/$1',
4
- },
5
- transformIgnorePatterns: [],
6
- };
package/lib/cjs/cli.js DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
- // eslint-disable-next-line node/shebang
3
- "use strict";
4
-
5
- require('./creevey');