creevey 0.9.0-non-webpack.2 → 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 (533) hide show
  1. package/.yarnrc.yml +1 -0
  2. package/AUTHORS +15 -15
  3. package/CHANGELOG.md +1326 -1275
  4. package/LICENSE +21 -21
  5. package/README.md +4 -3
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +5 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/client/addon/components/Addon.d.ts +8 -0
  10. package/dist/client/addon/components/Addon.js +57 -0
  11. package/dist/client/addon/components/Addon.js.map +1 -0
  12. package/{lib/types → dist}/client/addon/components/Icons.d.ts +7 -7
  13. package/dist/client/addon/components/Icons.js +18 -0
  14. package/dist/client/addon/components/Icons.js.map +1 -0
  15. package/{lib/types → dist}/client/addon/components/Panel.d.ts +9 -9
  16. package/dist/client/addon/components/Panel.js +32 -0
  17. package/dist/client/addon/components/Panel.js.map +1 -0
  18. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +8 -8
  19. package/dist/client/addon/components/TestSelect.js +33 -0
  20. package/dist/client/addon/components/TestSelect.js.map +1 -0
  21. package/dist/client/addon/components/Tools.d.ts +6 -0
  22. package/dist/client/addon/components/Tools.js +89 -0
  23. package/dist/client/addon/components/Tools.js.map +1 -0
  24. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +38 -37
  25. package/dist/client/addon/controller.js +208 -0
  26. package/dist/client/addon/controller.js.map +1 -0
  27. package/dist/client/addon/decorator.d.ts +1 -0
  28. package/dist/client/addon/decorator.js +6 -0
  29. package/dist/client/addon/decorator.js.map +1 -0
  30. package/dist/client/addon/index.d.ts +2 -0
  31. package/dist/client/addon/index.js +19 -0
  32. package/dist/client/addon/index.js.map +1 -0
  33. package/dist/client/addon/manager.d.ts +1 -0
  34. package/dist/client/addon/manager.js +41 -0
  35. package/dist/client/addon/manager.js.map +1 -0
  36. package/dist/client/addon/preset.d.ts +2 -0
  37. package/dist/client/addon/preset.js +6 -0
  38. package/dist/client/addon/preset.js.map +1 -0
  39. package/dist/client/addon/preview.d.ts +4 -0
  40. package/dist/client/addon/preview.js +8 -0
  41. package/dist/client/addon/preview.js.map +1 -0
  42. package/{lib/types → dist}/client/addon/readyForCapture.d.ts +6 -6
  43. package/dist/client/addon/readyForCapture.js +7 -0
  44. package/dist/client/addon/readyForCapture.js.map +1 -0
  45. package/{lib/types → dist}/client/addon/utils.d.ts +3 -2
  46. package/dist/client/addon/utils.js +27 -0
  47. package/dist/client/addon/utils.js.map +1 -0
  48. package/{lib/types → dist}/client/addon/withCreevey.d.ts +25 -24
  49. package/dist/client/addon/withCreevey.js +286 -0
  50. package/dist/client/addon/withCreevey.js.map +1 -0
  51. package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
  52. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  53. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  54. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  55. package/dist/client/shared/components/ImagesView/ImagesView.js +46 -0
  56. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  57. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
  58. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  59. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  60. package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
  61. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  62. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  63. package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
  64. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  65. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  66. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +15 -24
  67. package/dist/client/shared/components/ImagesView/common.js +14 -0
  68. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  69. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  70. package/dist/client/shared/components/ImagesView/index.js +14 -0
  71. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  72. package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +8 -8
  73. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
  74. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  75. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +7 -7
  76. package/dist/client/shared/components/PageFooter/Paging.js +68 -0
  77. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  78. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +14 -12
  79. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  80. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  81. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +14 -16
  82. package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
  83. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  84. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +18 -18
  85. package/dist/client/shared/components/ResultsPage.js +95 -0
  86. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  87. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +9 -9
  88. package/dist/client/shared/creeveyClientApi.js +53 -0
  89. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  90. package/{lib/types → dist}/client/shared/helpers.d.ts +46 -46
  91. package/dist/client/shared/helpers.js +381 -0
  92. package/dist/client/shared/helpers.js.map +1 -0
  93. package/{lib/types → dist}/client/shared/viewMode.d.ts +4 -4
  94. package/dist/client/shared/viewMode.js +11 -0
  95. package/dist/client/shared/viewMode.js.map +1 -0
  96. package/dist/client/web/202.js +1 -0
  97. package/dist/client/web/270.js +43 -0
  98. package/dist/client/web/752.js +1 -0
  99. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +11 -11
  100. package/dist/client/web/CreeveyApp.js +130 -0
  101. package/dist/client/web/CreeveyApp.js.map +1 -0
  102. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +11 -11
  103. package/dist/client/web/CreeveyContext.js +17 -0
  104. package/dist/client/web/CreeveyContext.js.map +1 -0
  105. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  106. package/dist/client/web/CreeveyLoader.js +52 -0
  107. package/dist/client/web/CreeveyLoader.js.map +1 -0
  108. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +22 -19
  109. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  110. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  111. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  112. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  113. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  114. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  115. package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
  116. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  117. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -12
  118. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  119. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  120. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
  121. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  122. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  123. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -7
  124. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  125. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  126. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +12 -10
  127. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  128. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  129. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  130. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  131. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  132. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  133. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  134. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  135. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  136. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  137. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  138. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +15 -13
  139. package/dist/client/web/KeyboardEventsContext.js +116 -0
  140. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  141. package/{lib/types → dist}/client/web/index.d.ts +4 -4
  142. package/{lib/cjs → dist}/client/web/index.html +28 -19
  143. package/dist/client/web/index.js +75 -0
  144. package/dist/client/web/index.js.map +1 -0
  145. package/dist/client/web/main.js +79 -0
  146. package/{lib/cjs → dist}/client/web/main.js.LICENSE.txt +0 -15
  147. package/{lib/types → dist}/creevey.d.ts +1 -1
  148. package/dist/creevey.js +52 -0
  149. package/dist/creevey.js.map +1 -0
  150. package/dist/index.d.ts +5 -0
  151. package/dist/index.js +24 -0
  152. package/dist/index.js.map +1 -0
  153. package/{lib/types → dist}/server/config.d.ts +4 -4
  154. package/dist/server/config.js +86 -0
  155. package/dist/server/config.js.map +1 -0
  156. package/{lib/types → dist}/server/docker.d.ts +7 -7
  157. package/dist/server/docker.js +122 -0
  158. package/dist/server/docker.js.map +1 -0
  159. package/{lib/types → dist}/server/index.d.ts +2 -2
  160. package/dist/server/index.js +47 -0
  161. package/dist/server/index.js.map +1 -0
  162. package/{lib/types → dist}/server/logger.d.ts +10 -10
  163. package/dist/server/logger.js +25 -0
  164. package/dist/server/logger.js.map +1 -0
  165. package/{lib/types → dist}/server/master/api.d.ts +7 -7
  166. package/dist/server/master/api.js +50 -0
  167. package/dist/server/master/api.js.map +1 -0
  168. package/dist/server/master/index.d.ts +3 -0
  169. package/dist/server/master/index.js +110 -0
  170. package/dist/server/master/index.js.map +1 -0
  171. package/{lib/types → dist}/server/master/master.d.ts +7 -7
  172. package/dist/server/master/master.js +40 -0
  173. package/dist/server/master/master.js.map +1 -0
  174. package/{lib/types → dist}/server/master/pool.d.ts +30 -31
  175. package/dist/server/master/pool.js +186 -0
  176. package/dist/server/master/pool.js.map +1 -0
  177. package/{lib/types → dist}/server/master/runner.d.ts +21 -26
  178. package/dist/server/master/runner.js +172 -0
  179. package/dist/server/master/runner.js.map +1 -0
  180. package/dist/server/master/server.d.ts +2 -0
  181. package/dist/server/master/server.js +114 -0
  182. package/dist/server/master/server.js.map +1 -0
  183. package/{lib/types → dist}/server/messages.d.ts +26 -27
  184. package/dist/server/messages.js +222 -0
  185. package/dist/server/messages.js.map +1 -0
  186. package/{lib/types → dist}/server/selenium/browser.d.ts +19 -17
  187. package/dist/server/selenium/browser.js +637 -0
  188. package/dist/server/selenium/browser.js.map +1 -0
  189. package/dist/server/selenium/index.d.ts +2 -0
  190. package/dist/server/selenium/index.js +19 -0
  191. package/dist/server/selenium/index.js.map +1 -0
  192. package/{lib/types → dist}/server/selenium/selenoid.d.ts +3 -3
  193. package/dist/server/selenium/selenoid.js +120 -0
  194. package/dist/server/selenium/selenoid.js.map +1 -0
  195. package/dist/server/stories.d.ts +3 -0
  196. package/dist/server/stories.js +92 -0
  197. package/dist/server/stories.js.map +1 -0
  198. package/dist/server/storybook/providers/browser.d.ts +2 -0
  199. package/dist/server/storybook/providers/browser.js +60 -0
  200. package/dist/server/storybook/providers/browser.js.map +1 -0
  201. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  202. package/dist/server/storybook/providers/hybrid.js +59 -0
  203. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  204. package/dist/server/telemetry.d.ts +2 -0
  205. package/dist/server/telemetry.js +196 -0
  206. package/dist/server/telemetry.js.map +1 -0
  207. package/{lib/types → dist}/server/testsFiles/parser.d.ts +8 -12
  208. package/dist/server/testsFiles/parser.js +50 -0
  209. package/dist/server/testsFiles/parser.js.map +1 -0
  210. package/dist/server/update.d.ts +2 -0
  211. package/dist/server/update.js +53 -0
  212. package/dist/server/update.js.map +1 -0
  213. package/dist/server/utils.d.ts +25 -0
  214. package/dist/server/utils.js +157 -0
  215. package/dist/server/utils.js.map +1 -0
  216. package/{lib/types → dist}/server/worker/chai-image.d.ts +5 -6
  217. package/dist/server/worker/chai-image.js +113 -0
  218. package/dist/server/worker/chai-image.js.map +1 -0
  219. package/{lib/types → dist}/server/worker/helpers.d.ts +8 -8
  220. package/dist/server/worker/helpers.js +57 -0
  221. package/dist/server/worker/helpers.js.map +1 -0
  222. package/dist/server/worker/index.d.ts +1 -0
  223. package/dist/server/worker/index.js +6 -0
  224. package/dist/server/worker/index.js.map +1 -0
  225. package/{lib/types → dist}/server/worker/reporter.d.ts +8 -8
  226. package/dist/server/worker/reporter.js +130 -0
  227. package/dist/server/worker/reporter.js.map +1 -0
  228. package/dist/server/worker/worker.d.ts +4 -0
  229. package/dist/server/worker/worker.js +211 -0
  230. package/dist/server/worker/worker.js.map +1 -0
  231. package/{lib/types → dist}/shared/index.d.ts +7 -7
  232. package/dist/shared/index.js +77 -0
  233. package/dist/shared/index.js.map +1 -0
  234. package/{lib/types → dist}/shared/serializeRegExp.d.ts +9 -9
  235. package/dist/shared/serializeRegExp.js +25 -0
  236. package/dist/shared/serializeRegExp.js.map +1 -0
  237. package/{lib/types → dist}/types.d.ts +459 -490
  238. package/dist/types.js +61 -0
  239. package/dist/types.js.map +1 -0
  240. package/docs/config.md +212 -212
  241. package/docs/grid.md +10 -10
  242. package/docs/tests.md +63 -63
  243. package/manager/package.json +3 -0
  244. package/package.json +115 -156
  245. package/preset/README.md +3 -0
  246. package/preset/package.json +3 -0
  247. package/preview/README.md +3 -0
  248. package/preview/package.json +3 -0
  249. package/src/cli.ts +3 -0
  250. package/src/client/addon/components/Addon.tsx +53 -0
  251. package/src/client/addon/components/Icons.tsx +28 -0
  252. package/src/client/addon/components/Panel.tsx +53 -0
  253. package/src/client/addon/components/TestSelect.tsx +48 -0
  254. package/src/client/addon/components/Tools.tsx +93 -0
  255. package/src/client/addon/controller.ts +224 -0
  256. package/src/client/addon/decorator.ts +3 -0
  257. package/src/client/addon/index.ts +2 -0
  258. package/src/client/addon/manager.ts +44 -0
  259. package/src/client/addon/preset.ts +3 -0
  260. package/src/client/addon/preview.ts +7 -0
  261. package/src/client/addon/readyForCapture.ts +9 -0
  262. package/src/client/addon/utils.tsx +24 -0
  263. package/src/client/addon/withCreevey.ts +326 -0
  264. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  265. package/src/client/shared/components/ImagesView/ImagesView.tsx +70 -0
  266. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  267. package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
  268. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  269. package/src/client/shared/components/ImagesView/common.ts +23 -0
  270. package/src/client/shared/components/ImagesView/index.ts +5 -0
  271. package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
  272. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  273. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  274. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  275. package/src/client/shared/components/ResultsPage.tsx +135 -0
  276. package/src/client/shared/creeveyClientApi.ts +64 -0
  277. package/src/client/shared/helpers.ts +422 -0
  278. package/src/client/shared/viewMode.ts +10 -0
  279. package/src/client/web/CreeveyApp.tsx +177 -0
  280. package/src/client/web/CreeveyContext.tsx +20 -0
  281. package/src/client/web/CreeveyLoader.tsx +56 -0
  282. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  283. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  284. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
  285. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  286. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  287. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  288. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  289. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  290. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  291. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  292. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  293. package/src/client/web/index.html +28 -0
  294. package/src/client/web/index.tsx +63 -0
  295. package/src/creevey.ts +47 -0
  296. package/src/index.ts +4 -0
  297. package/src/server/config.ts +83 -0
  298. package/src/server/docker.ts +136 -0
  299. package/src/server/index.ts +51 -0
  300. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  301. package/src/server/master/api.ts +55 -0
  302. package/src/server/master/index.ts +111 -0
  303. package/src/server/master/master.ts +47 -0
  304. package/src/server/master/pool.ts +203 -0
  305. package/src/server/master/runner.ts +189 -0
  306. package/src/server/master/server.ts +124 -0
  307. package/src/server/messages.ts +273 -0
  308. package/src/server/selenium/browser.ts +837 -0
  309. package/src/server/selenium/index.ts +2 -0
  310. package/src/server/selenium/selenoid.ts +154 -0
  311. package/src/server/stories.ts +133 -0
  312. package/src/server/storybook/providers/browser.ts +58 -0
  313. package/src/server/storybook/providers/hybrid.ts +70 -0
  314. package/src/server/telemetry.ts +212 -0
  315. package/src/server/testsFiles/parser.ts +62 -0
  316. package/src/server/update.ts +74 -0
  317. package/src/server/utils.ts +206 -0
  318. package/src/server/worker/chai-image.ts +147 -0
  319. package/src/server/worker/helpers.ts +61 -0
  320. package/src/server/worker/index.ts +1 -0
  321. package/src/server/worker/reporter.ts +170 -0
  322. package/src/server/worker/worker.ts +239 -0
  323. package/src/shared/index.ts +76 -0
  324. package/src/shared/serializeRegExp.ts +26 -0
  325. package/src/types.ts +500 -0
  326. package/types/chai.d.ts +11 -12
  327. package/types/global.d.ts +5 -0
  328. package/types/mocha.d.ts +20 -20
  329. package/types/png.d.ts +4 -4
  330. package/addon/package.json +0 -4
  331. package/jest.config.js +0 -6
  332. package/lib/cjs/cli.js +0 -5
  333. package/lib/cjs/client/addon/Manager.js +0 -264
  334. package/lib/cjs/client/addon/components/Addon.js +0 -55
  335. package/lib/cjs/client/addon/components/Icons.js +0 -46
  336. package/lib/cjs/client/addon/components/Panel.js +0 -72
  337. package/lib/cjs/client/addon/components/TestSelect.js +0 -65
  338. package/lib/cjs/client/addon/components/Tools.js +0 -95
  339. package/lib/cjs/client/addon/decorator.js +0 -11
  340. package/lib/cjs/client/addon/index.js +0 -31
  341. package/lib/cjs/client/addon/preset.js +0 -62
  342. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  343. package/lib/cjs/client/addon/register.js +0 -72
  344. package/lib/cjs/client/addon/utils.js +0 -38
  345. package/lib/cjs/client/addon/withCreevey.js +0 -351
  346. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -87
  347. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -92
  348. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -154
  349. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -166
  350. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -91
  351. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  352. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -50
  353. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -94
  354. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -82
  355. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -119
  356. package/lib/cjs/client/shared/components/ResultsPage.js +0 -143
  357. package/lib/cjs/client/shared/creeveyClientApi.js +0 -76
  358. package/lib/cjs/client/shared/helpers.js +0 -411
  359. package/lib/cjs/client/shared/viewMode.js +0 -17
  360. package/lib/cjs/client/web/142.js +0 -2
  361. package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
  362. package/lib/cjs/client/web/32.js +0 -1
  363. package/lib/cjs/client/web/551.js +0 -1
  364. package/lib/cjs/client/web/566.js +0 -2
  365. package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
  366. package/lib/cjs/client/web/691.js +0 -2
  367. package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
  368. package/lib/cjs/client/web/725.js +0 -1
  369. package/lib/cjs/client/web/main.js +0 -2
  370. package/lib/cjs/creevey.js +0 -69
  371. package/lib/cjs/index.js +0 -62
  372. package/lib/cjs/server/config.js +0 -96
  373. package/lib/cjs/server/docker.js +0 -146
  374. package/lib/cjs/server/extract.js +0 -50
  375. package/lib/cjs/server/index.js +0 -83
  376. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
  377. package/lib/cjs/server/loaders/babel/helpers.js +0 -469
  378. package/lib/cjs/server/loaders/babel/register.js +0 -124
  379. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  380. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  381. package/lib/cjs/server/loaders/webpack/compile.js +0 -293
  382. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -179
  383. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
  384. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  385. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  386. package/lib/cjs/server/logger.js +0 -48
  387. package/lib/cjs/server/master/api.js +0 -75
  388. package/lib/cjs/server/master/index.js +0 -146
  389. package/lib/cjs/server/master/master.js +0 -57
  390. package/lib/cjs/server/master/pool.js +0 -197
  391. package/lib/cjs/server/master/runner.js +0 -281
  392. package/lib/cjs/server/master/server.js +0 -129
  393. package/lib/cjs/server/messages.js +0 -264
  394. package/lib/cjs/server/selenium/browser.js +0 -672
  395. package/lib/cjs/server/selenium/index.js +0 -31
  396. package/lib/cjs/server/selenium/selenoid.js +0 -172
  397. package/lib/cjs/server/stories.js +0 -159
  398. package/lib/cjs/server/storybook/entry.js +0 -70
  399. package/lib/cjs/server/storybook/helpers.js +0 -159
  400. package/lib/cjs/server/storybook/providers/browser.js +0 -74
  401. package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
  402. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  403. package/lib/cjs/server/testsFiles/parser.js +0 -72
  404. package/lib/cjs/server/testsFiles/register.js +0 -48
  405. package/lib/cjs/server/update.js +0 -79
  406. package/lib/cjs/server/utils.js +0 -183
  407. package/lib/cjs/server/worker/chai-image.js +0 -142
  408. package/lib/cjs/server/worker/helpers.js +0 -69
  409. package/lib/cjs/server/worker/index.js +0 -15
  410. package/lib/cjs/server/worker/reporter.js +0 -108
  411. package/lib/cjs/server/worker/worker.js +0 -268
  412. package/lib/cjs/shared/index.js +0 -101
  413. package/lib/cjs/shared/serializeRegExp.js +0 -42
  414. package/lib/cjs/types.js +0 -74
  415. package/lib/esm/cli.js +0 -4
  416. package/lib/esm/client/addon/Manager.js +0 -248
  417. package/lib/esm/client/addon/components/Addon.js +0 -39
  418. package/lib/esm/client/addon/components/Icons.js +0 -31
  419. package/lib/esm/client/addon/components/Panel.js +0 -53
  420. package/lib/esm/client/addon/components/TestSelect.js +0 -51
  421. package/lib/esm/client/addon/components/Tools.js +0 -74
  422. package/lib/esm/client/addon/decorator.js +0 -2
  423. package/lib/esm/client/addon/index.js +0 -2
  424. package/lib/esm/client/addon/preset.js +0 -41
  425. package/lib/esm/client/addon/readyForCapture.js +0 -5
  426. package/lib/esm/client/addon/register.js +0 -51
  427. package/lib/esm/client/addon/utils.js +0 -31
  428. package/lib/esm/client/addon/withCreevey.js +0 -325
  429. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -67
  430. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -69
  431. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -131
  432. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -143
  433. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -71
  434. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  435. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -36
  436. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -80
  437. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -68
  438. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -97
  439. package/lib/esm/client/shared/components/ResultsPage.js +0 -115
  440. package/lib/esm/client/shared/creeveyClientApi.js +0 -67
  441. package/lib/esm/client/shared/helpers.js +0 -353
  442. package/lib/esm/client/shared/viewMode.js +0 -6
  443. package/lib/esm/creevey.js +0 -54
  444. package/lib/esm/index.js +0 -5
  445. package/lib/esm/server/config.js +0 -73
  446. package/lib/esm/server/docker.js +0 -123
  447. package/lib/esm/server/extract.js +0 -34
  448. package/lib/esm/server/index.js +0 -64
  449. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
  450. package/lib/esm/server/loaders/babel/helpers.js +0 -452
  451. package/lib/esm/server/loaders/babel/register.js +0 -103
  452. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  453. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  454. package/lib/esm/server/loaders/webpack/compile.js +0 -270
  455. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -158
  456. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
  457. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  458. package/lib/esm/server/loaders/webpack/start.js +0 -27
  459. package/lib/esm/server/master/api.js +0 -64
  460. package/lib/esm/server/master/index.js +0 -125
  461. package/lib/esm/server/master/master.js +0 -38
  462. package/lib/esm/server/master/pool.js +0 -176
  463. package/lib/esm/server/master/runner.js +0 -259
  464. package/lib/esm/server/master/server.js +0 -105
  465. package/lib/esm/server/messages.js +0 -232
  466. package/lib/esm/server/selenium/browser.js +0 -639
  467. package/lib/esm/server/selenium/index.js +0 -2
  468. package/lib/esm/server/selenium/selenoid.js +0 -149
  469. package/lib/esm/server/stories.js +0 -140
  470. package/lib/esm/server/storybook/entry.js +0 -46
  471. package/lib/esm/server/storybook/helpers.js +0 -98
  472. package/lib/esm/server/storybook/providers/browser.js +0 -60
  473. package/lib/esm/server/storybook/providers/hybrid.js +0 -64
  474. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  475. package/lib/esm/server/testsFiles/parser.js +0 -50
  476. package/lib/esm/server/testsFiles/register.js +0 -35
  477. package/lib/esm/server/update.js +0 -61
  478. package/lib/esm/server/utils.js +0 -142
  479. package/lib/esm/server/worker/chai-image.js +0 -130
  480. package/lib/esm/server/worker/helpers.js +0 -60
  481. package/lib/esm/server/worker/index.js +0 -1
  482. package/lib/esm/server/worker/reporter.js +0 -86
  483. package/lib/esm/server/worker/worker.js +0 -238
  484. package/lib/esm/shared/index.js +0 -78
  485. package/lib/esm/shared/serializeRegExp.js +0 -24
  486. package/lib/esm/types.js +0 -43
  487. package/lib/types/cli.d.ts +0 -1
  488. package/lib/types/client/addon/components/Addon.d.ts +0 -8
  489. package/lib/types/client/addon/components/Tools.d.ts +0 -6
  490. package/lib/types/client/addon/decorator.d.ts +0 -1
  491. package/lib/types/client/addon/index.d.ts +0 -2
  492. package/lib/types/client/addon/preset.d.ts +0 -23
  493. package/lib/types/client/addon/register.d.ts +0 -3
  494. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
  495. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
  496. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
  497. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
  498. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  499. package/lib/types/client/web/CreeveyLoader.d.ts +0 -2
  500. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  501. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  502. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  503. package/lib/types/index.d.ts +0 -2
  504. package/lib/types/server/extract.d.ts +0 -2
  505. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  506. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  507. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  508. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  509. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  510. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  511. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  512. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  513. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  514. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  515. package/lib/types/server/master/index.d.ts +0 -3
  516. package/lib/types/server/master/server.d.ts +0 -2
  517. package/lib/types/server/selenium/index.d.ts +0 -2
  518. package/lib/types/server/stories.d.ts +0 -8
  519. package/lib/types/server/storybook/entry.d.ts +0 -18
  520. package/lib/types/server/storybook/helpers.d.ts +0 -24
  521. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  522. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  523. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  524. package/lib/types/server/testsFiles/register.d.ts +0 -2
  525. package/lib/types/server/update.d.ts +0 -2
  526. package/lib/types/server/utils.d.ts +0 -20
  527. package/lib/types/server/worker/index.d.ts +0 -1
  528. package/lib/types/server/worker/worker.d.ts +0 -4
  529. package/preset.js +0 -9
  530. package/types/babel__register.d.ts +0 -1
  531. package/types/event-source-polyfill.d.ts +0 -6
  532. package/types/mdx.d.ts +0 -7
  533. /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,12 +1,11 @@
1
- /// <reference types="chai" />
2
- declare namespace Chai {
3
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
- interface ChaiStatic {
5
- use(fn: (chai: ChaiStatic, utils: ChaiUtils) => void): ChaiStatic;
6
- }
7
-
8
- interface Assertion {
9
- matchImage: (filename?: string) => Promise<void>;
10
- matchImages: () => Promise<void>;
11
- }
12
- }
1
+ /// <reference types="chai" />
2
+ declare namespace Chai {
3
+ interface ChaiStatic {
4
+ use(fn: (chai: ChaiStatic, utils: ChaiUtils) => void): ChaiStatic;
5
+ }
6
+
7
+ interface Assertion {
8
+ matchImage: (filename?: string) => Promise<void>;
9
+ matchImages: () => Promise<void>;
10
+ }
11
+ }
@@ -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
@@ -1,20 +1,20 @@
1
- /// <reference types="mocha" />
2
- declare namespace Mocha {
3
- interface Context {
4
- config: import('creevey').Config;
5
- browser: import('selenium-webdriver').WebDriver;
6
- until: import('selenium-webdriver/lib/until');
7
- keys: import('selenium-webdriver/lib/input').IKey;
8
- expect: Chai.ExpectStatic;
9
- takeScreenshot: () => Promise<string>;
10
- updateStoryArgs: <Args extends Record<string, unknown>>(updatedArgs: Args) => Promise<void>;
11
- readonly captureElement?: import('selenium-webdriver').WebElementPromise;
12
- browserName: string;
13
- testScope: string[];
14
- screenshots: { imageName?: string; screenshot: string }[];
15
- }
16
-
17
- interface Test {
18
- skipReason: string | boolean;
19
- }
20
- }
1
+ /// <reference types="mocha" />
2
+ declare namespace Mocha {
3
+ interface Context {
4
+ config: import('creevey').Config;
5
+ browser: import('selenium-webdriver').WebDriver;
6
+ until: import('selenium-webdriver/lib/until');
7
+ keys: import('selenium-webdriver/lib/input').IKey;
8
+ expect: Chai.ExpectStatic;
9
+ takeScreenshot: () => Promise<string>;
10
+ updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
11
+ readonly captureElement?: import('selenium-webdriver').WebElementPromise;
12
+ browserName: string;
13
+ testScope: string[];
14
+ screenshots: { imageName?: string; screenshot: string }[];
15
+ }
16
+
17
+ interface Test {
18
+ skipReason: string | boolean;
19
+ }
20
+ }
package/types/png.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- declare module '*.png' {
2
- const content: string;
3
- export default content;
4
- }
1
+ declare module '*.png' {
2
+ const content: string;
3
+ export default content;
4
+ }
@@ -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');