creevey 0.9.0-beta.1 → 0.9.0-non-webpack.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 (267) hide show
  1. package/AUTHORS +15 -15
  2. package/CHANGELOG.md +1275 -1275
  3. package/LICENSE +21 -21
  4. package/README.md +7 -0
  5. package/addon/README.md +3 -0
  6. package/addon/package.json +4 -0
  7. package/docs/config.md +212 -212
  8. package/docs/grid.md +10 -10
  9. package/docs/tests.md +63 -63
  10. package/jest.config.js +6 -0
  11. package/lib/cjs/cli.js +5 -0
  12. package/lib/cjs/client/addon/Manager.js +418 -0
  13. package/lib/cjs/client/addon/components/Addon.js +76 -0
  14. package/lib/cjs/client/addon/components/Icons.js +42 -0
  15. package/lib/cjs/client/addon/components/Panel.js +68 -0
  16. package/lib/cjs/client/addon/components/TestSelect.js +63 -0
  17. package/lib/cjs/client/addon/components/Tools.js +114 -0
  18. package/lib/cjs/client/addon/decorator.js +11 -0
  19. package/lib/cjs/client/addon/index.js +31 -0
  20. package/lib/cjs/client/addon/preset.js +81 -0
  21. package/lib/cjs/client/addon/readyForCapture.js +12 -0
  22. package/lib/cjs/client/addon/register.js +100 -0
  23. package/lib/cjs/client/addon/utils.js +38 -0
  24. package/lib/cjs/client/addon/withCreevey.js +558 -0
  25. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +85 -0
  26. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +88 -0
  27. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +176 -0
  28. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +179 -0
  29. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +110 -0
  30. package/lib/cjs/client/shared/components/ImagesView/index.js +45 -0
  31. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +46 -0
  32. package/lib/cjs/client/shared/components/PageFooter/Paging.js +98 -0
  33. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +78 -0
  34. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +144 -0
  35. package/lib/cjs/client/shared/components/ResultsPage.js +173 -0
  36. package/lib/cjs/client/shared/creeveyClientApi.js +107 -0
  37. package/lib/cjs/client/shared/helpers.js +482 -0
  38. package/lib/cjs/client/shared/viewMode.js +17 -0
  39. package/lib/cjs/client/web/142.js +2 -0
  40. package/lib/cjs/client/web/142.js.LICENSE.txt +12 -0
  41. package/lib/cjs/client/web/32.js +1 -0
  42. package/lib/cjs/client/web/551.js +1 -0
  43. package/lib/cjs/client/web/566.js +2 -0
  44. package/lib/cjs/client/web/566.js.LICENSE.txt +31 -0
  45. package/lib/cjs/client/web/691.js +2 -0
  46. package/lib/cjs/client/web/691.js.LICENSE.txt +8 -0
  47. package/lib/cjs/client/web/725.js +1 -0
  48. package/lib/cjs/client/web/index.html +19 -0
  49. package/lib/cjs/client/web/main.js +2 -38
  50. package/lib/cjs/client/web/main.js.LICENSE.txt +49 -0
  51. package/lib/cjs/creevey.js +69 -0
  52. package/lib/cjs/index.js +62 -0
  53. package/lib/cjs/server/config.js +96 -0
  54. package/lib/cjs/server/docker.js +146 -0
  55. package/lib/cjs/server/extract.js +50 -0
  56. package/lib/cjs/server/index.js +83 -0
  57. package/lib/cjs/server/loaders/babel/creevey-plugin.js +86 -0
  58. package/lib/cjs/server/loaders/babel/helpers.js +469 -0
  59. package/lib/cjs/server/loaders/babel/register.js +124 -0
  60. package/lib/cjs/server/loaders/hooks/mdx.js +30 -0
  61. package/lib/cjs/server/loaders/hooks/svelte.js +65 -0
  62. package/lib/cjs/server/loaders/webpack/compile.js +293 -0
  63. package/lib/cjs/server/loaders/webpack/creevey-loader.js +179 -0
  64. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +39 -0
  65. package/lib/cjs/server/loaders/webpack/mdx-loader.js +72 -0
  66. package/lib/cjs/server/loaders/webpack/start.js +41 -0
  67. package/lib/cjs/server/logger.js +48 -0
  68. package/lib/cjs/server/master/api.js +71 -0
  69. package/lib/cjs/server/master/index.js +146 -0
  70. package/lib/cjs/server/master/master.js +57 -0
  71. package/lib/cjs/server/master/pool.js +197 -0
  72. package/lib/cjs/server/master/runner.js +281 -0
  73. package/lib/cjs/server/master/server.js +129 -0
  74. package/lib/cjs/server/messages.js +264 -0
  75. package/lib/cjs/server/selenium/browser.js +672 -0
  76. package/lib/cjs/server/selenium/index.js +31 -0
  77. package/lib/cjs/server/selenium/selenoid.js +172 -0
  78. package/lib/cjs/server/stories.js +159 -0
  79. package/lib/cjs/server/storybook/entry.js +70 -0
  80. package/lib/cjs/server/storybook/helpers.js +159 -0
  81. package/lib/cjs/server/storybook/providers/browser.js +74 -0
  82. package/lib/cjs/server/storybook/providers/hybrid.js +84 -0
  83. package/lib/cjs/server/storybook/providers/nodejs.js +239 -0
  84. package/lib/cjs/server/testsFiles/parser.js +72 -0
  85. package/lib/cjs/server/testsFiles/register.js +48 -0
  86. package/lib/cjs/server/update.js +79 -0
  87. package/lib/cjs/server/utils.js +183 -0
  88. package/lib/cjs/server/worker/chai-image.js +142 -0
  89. package/lib/cjs/server/worker/helpers.js +69 -0
  90. package/lib/cjs/server/worker/index.js +15 -0
  91. package/lib/cjs/server/worker/reporter.js +108 -0
  92. package/lib/cjs/server/worker/worker.js +268 -0
  93. package/lib/cjs/shared/index.js +89 -0
  94. package/lib/cjs/shared/serializeRegExp.js +41 -0
  95. package/lib/cjs/types.js +74 -0
  96. package/lib/esm/cli.js +4 -0
  97. package/lib/esm/client/addon/Manager.js +402 -0
  98. package/lib/esm/client/addon/components/Addon.js +58 -0
  99. package/lib/esm/client/addon/components/Icons.js +27 -0
  100. package/lib/esm/client/addon/components/Panel.js +49 -0
  101. package/lib/esm/client/addon/components/TestSelect.js +49 -0
  102. package/lib/esm/client/addon/components/Tools.js +91 -0
  103. package/lib/esm/client/addon/decorator.js +2 -0
  104. package/lib/esm/client/addon/index.js +2 -0
  105. package/lib/esm/client/addon/preset.js +56 -0
  106. package/lib/esm/client/addon/readyForCapture.js +5 -0
  107. package/lib/esm/client/addon/register.js +79 -0
  108. package/lib/esm/client/addon/utils.js +31 -0
  109. package/lib/esm/client/addon/withCreevey.js +534 -0
  110. package/lib/esm/client/shared/components/ImagesView/BlendView.js +63 -0
  111. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +65 -0
  112. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +151 -0
  113. package/lib/esm/client/shared/components/ImagesView/SlideView.js +154 -0
  114. package/lib/esm/client/shared/components/ImagesView/SwapView.js +88 -0
  115. package/lib/esm/client/shared/components/ImagesView/index.js +5 -0
  116. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +32 -0
  117. package/lib/esm/client/shared/components/PageFooter/Paging.js +84 -0
  118. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +64 -0
  119. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +120 -0
  120. package/lib/esm/client/shared/components/ResultsPage.js +143 -0
  121. package/lib/esm/client/shared/creeveyClientApi.js +98 -0
  122. package/lib/esm/client/shared/helpers.js +424 -0
  123. package/lib/esm/client/shared/viewMode.js +6 -0
  124. package/lib/esm/creevey.js +54 -0
  125. package/lib/esm/index.js +5 -0
  126. package/lib/esm/server/config.js +73 -0
  127. package/lib/esm/server/docker.js +123 -0
  128. package/lib/esm/server/extract.js +34 -0
  129. package/lib/esm/server/index.js +64 -0
  130. package/lib/esm/server/loaders/babel/creevey-plugin.js +72 -0
  131. package/lib/esm/server/loaders/babel/helpers.js +452 -0
  132. package/lib/esm/server/loaders/babel/register.js +103 -0
  133. package/lib/esm/server/loaders/hooks/mdx.js +15 -0
  134. package/lib/esm/server/loaders/hooks/svelte.js +49 -0
  135. package/lib/esm/server/loaders/webpack/compile.js +270 -0
  136. package/lib/esm/server/loaders/webpack/creevey-loader.js +158 -0
  137. package/lib/esm/server/loaders/webpack/dummy-hmr.js +32 -0
  138. package/lib/esm/server/loaders/webpack/mdx-loader.js +58 -0
  139. package/lib/esm/server/loaders/webpack/start.js +27 -0
  140. package/lib/esm/server/logger.js +20 -0
  141. package/lib/esm/server/master/api.js +60 -0
  142. package/lib/esm/server/master/index.js +125 -0
  143. package/lib/esm/server/master/master.js +38 -0
  144. package/lib/esm/server/master/pool.js +176 -0
  145. package/lib/esm/server/master/runner.js +259 -0
  146. package/lib/esm/server/master/server.js +105 -0
  147. package/lib/esm/server/messages.js +232 -0
  148. package/lib/esm/server/selenium/browser.js +639 -0
  149. package/lib/esm/server/selenium/index.js +2 -0
  150. package/lib/esm/server/selenium/selenoid.js +149 -0
  151. package/lib/esm/server/stories.js +140 -0
  152. package/lib/esm/server/storybook/entry.js +46 -0
  153. package/lib/esm/server/storybook/helpers.js +98 -0
  154. package/lib/esm/server/storybook/providers/browser.js +60 -0
  155. package/lib/esm/server/storybook/providers/hybrid.js +64 -0
  156. package/lib/esm/server/storybook/providers/nodejs.js +217 -0
  157. package/lib/esm/server/testsFiles/parser.js +50 -0
  158. package/lib/esm/server/testsFiles/register.js +35 -0
  159. package/lib/esm/server/update.js +61 -0
  160. package/lib/esm/server/utils.js +142 -0
  161. package/lib/esm/server/worker/chai-image.js +130 -0
  162. package/lib/esm/server/worker/helpers.js +60 -0
  163. package/lib/esm/server/worker/index.js +1 -0
  164. package/lib/esm/server/worker/reporter.js +86 -0
  165. package/lib/esm/server/worker/worker.js +238 -0
  166. package/lib/esm/shared/index.js +66 -0
  167. package/lib/esm/shared/serializeRegExp.js +23 -0
  168. package/lib/esm/types.js +43 -0
  169. package/lib/types/cli.d.ts +1 -1
  170. package/lib/types/client/addon/Manager.d.ts +37 -37
  171. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  172. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  173. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  174. package/lib/types/client/addon/components/TestSelect.d.ts +8 -9
  175. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  176. package/lib/types/client/addon/decorator.d.ts +1 -1
  177. package/lib/types/client/addon/index.d.ts +2 -0
  178. package/lib/types/client/addon/preset.d.ts +23 -24
  179. package/lib/types/client/addon/readyForCapture.d.ts +6 -6
  180. package/lib/types/client/addon/register.d.ts +3 -3
  181. package/lib/types/client/addon/utils.d.ts +2 -2
  182. package/lib/types/client/addon/withCreevey.d.ts +24 -24
  183. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  184. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +24 -25
  185. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  186. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  187. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  188. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  189. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +8 -9
  190. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +7 -8
  191. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  192. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +16 -17
  193. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  194. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  195. package/lib/types/client/shared/helpers.d.ts +46 -46
  196. package/lib/types/client/shared/viewMode.d.ts +4 -4
  197. package/lib/types/client/web/CreeveyApp.d.ts +11 -12
  198. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  199. package/lib/types/client/web/CreeveyLoader.d.ts +2 -3
  200. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  201. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  202. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  203. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -13
  204. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  205. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -8
  206. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  207. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  208. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  209. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  210. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  211. package/lib/types/client/web/index.d.ts +4 -4
  212. package/lib/types/creevey.d.ts +1 -1
  213. package/lib/types/index.d.ts +1 -4
  214. package/lib/types/server/config.d.ts +4 -4
  215. package/lib/types/server/docker.d.ts +7 -7
  216. package/lib/types/server/extract.d.ts +2 -2
  217. package/lib/types/server/index.d.ts +2 -2
  218. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  219. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  220. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  221. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  222. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  223. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  224. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +4 -2
  225. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  226. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  227. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  228. package/lib/types/server/logger.d.ts +10 -6
  229. package/lib/types/server/master/api.d.ts +7 -7
  230. package/lib/types/server/master/index.d.ts +3 -3
  231. package/lib/types/server/master/master.d.ts +7 -7
  232. package/lib/types/server/master/pool.d.ts +31 -31
  233. package/lib/types/server/master/runner.d.ts +26 -26
  234. package/lib/types/server/master/server.d.ts +2 -2
  235. package/lib/types/server/messages.d.ts +27 -27
  236. package/lib/types/server/selenium/browser.d.ts +17 -17
  237. package/lib/types/server/selenium/index.d.ts +2 -2
  238. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  239. package/lib/types/server/stories.d.ts +8 -8
  240. package/lib/types/server/storybook/entry.d.ts +18 -18
  241. package/lib/types/server/storybook/helpers.d.ts +24 -24
  242. package/lib/types/server/storybook/providers/browser.d.ts +4 -4
  243. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -4
  244. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -9
  245. package/lib/types/server/testsFiles/parser.d.ts +12 -12
  246. package/lib/types/server/testsFiles/register.d.ts +2 -2
  247. package/lib/types/server/update.d.ts +2 -2
  248. package/lib/types/server/utils.d.ts +20 -20
  249. package/lib/types/server/worker/chai-image.d.ts +6 -6
  250. package/lib/types/server/worker/helpers.d.ts +8 -8
  251. package/lib/types/server/worker/index.d.ts +1 -1
  252. package/lib/types/server/worker/reporter.d.ts +8 -8
  253. package/lib/types/server/worker/worker.d.ts +4 -4
  254. package/lib/types/{shared.d.ts → shared/index.d.ts} +7 -16
  255. package/lib/types/shared/serializeRegExp.d.ts +9 -0
  256. package/lib/types/types.d.ts +490 -489
  257. package/package.json +115 -102
  258. package/preset.js +9 -9
  259. package/types/babel__register.d.ts +1 -1
  260. package/types/chai.d.ts +12 -12
  261. package/types/event-source-polyfill.d.ts +6 -6
  262. package/types/mdx.d.ts +3 -2
  263. package/types/mocha.d.ts +20 -20
  264. package/types/png.d.ts +4 -4
  265. package/lib/cjs/client/web/1.js +0 -13
  266. package/lib/cjs/client/web/2.js +0 -1
  267. package/storybook-static/stories.json +0 -21
@@ -1,13 +1,12 @@
1
- /// <reference types="react" />
2
- import { TestsStatusProps } from './TestsStatus';
3
- import { CreeveyViewFilter } from '../../../shared/helpers';
4
- interface SideBarHeaderProps {
5
- testsStatus: Omit<TestsStatusProps, 'onClickByStatus'>;
6
- onStart: () => void;
7
- onStop: () => void;
8
- filter: CreeveyViewFilter;
9
- onFilterChange: (value: CreeveyViewFilter) => void;
10
- canStart?: boolean;
11
- }
12
- export declare function SideBarHeader({ testsStatus, onStop, onStart, filter, onFilterChange, canStart, }: SideBarHeaderProps): JSX.Element;
13
- export {};
1
+ import { TestsStatusProps } from './TestsStatus';
2
+ import { CreeveyViewFilter } from '../../../shared/helpers';
3
+ interface SideBarHeaderProps {
4
+ testsStatus: Omit<TestsStatusProps, 'onClickByStatus'>;
5
+ onStart: () => void;
6
+ onStop: () => void;
7
+ filter: CreeveyViewFilter;
8
+ onFilterChange: (value: CreeveyViewFilter) => void;
9
+ canStart?: boolean;
10
+ }
11
+ export declare function SideBarHeader({ testsStatus, onStop, onStart, filter, onFilterChange, canStart, }: SideBarHeaderProps): JSX.Element;
12
+ export {};
@@ -1,33 +1,33 @@
1
- import React from 'react';
2
- import { CreeveySuite } from '../../../../types';
3
- import { Theme } from '@storybook/theming';
4
- export interface SuiteLinkProps {
5
- title: string;
6
- suite: CreeveySuite;
7
- 'data-testid'?: string;
8
- }
9
- export declare const Container: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<Pick<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<{
10
- theme: Theme;
11
- disabled?: boolean | undefined;
12
- }, "disabled"> & {
13
- theme?: Theme | undefined;
14
- } & {
15
- children?: React.ReactNode;
16
- }, "key" | "theme" | keyof React.HTMLAttributes<HTMLDivElement> | "disabled"> & {
17
- ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
18
- }, "theme">>;
19
- export declare const Button: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<Pick<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & Pick<{
20
- theme: Theme;
21
- active?: boolean | undefined;
22
- focused?: boolean | undefined;
23
- }, "active" | "focused"> & {
24
- theme?: Theme | undefined;
25
- } & {
26
- children?: React.ReactNode;
27
- }, "key" | "theme" | "active" | keyof React.ButtonHTMLAttributes<HTMLButtonElement> | "focused"> & {
28
- ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
29
- }, "theme">>;
30
- export declare const SuiteContainer: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
31
- padding: number;
32
- }, Theme>;
33
- export declare function SuiteLink({ title, suite, 'data-testid': dataTid }: SuiteLinkProps): JSX.Element;
1
+ import React from 'react';
2
+ import { CreeveySuite } from '../../../../types';
3
+ import { Theme } from '@storybook/theming';
4
+ export interface SuiteLinkProps {
5
+ title: string;
6
+ suite: CreeveySuite;
7
+ 'data-testid'?: string;
8
+ }
9
+ export declare const Container: React.FC<import("@storybook/theming").AddOptionalTo<Pick<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<{
10
+ theme: Theme;
11
+ disabled?: boolean | undefined;
12
+ }, "disabled"> & {
13
+ theme?: Theme | undefined;
14
+ } & {
15
+ children?: React.ReactNode;
16
+ }, "key" | "theme" | keyof React.HTMLAttributes<HTMLDivElement> | "disabled"> & {
17
+ ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
18
+ }, "theme">>;
19
+ export declare const Button: React.FC<import("@storybook/theming").AddOptionalTo<Pick<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & Pick<{
20
+ theme: Theme;
21
+ active?: boolean | undefined;
22
+ focused?: boolean | undefined;
23
+ }, "active" | "focused"> & {
24
+ theme?: Theme | undefined;
25
+ } & {
26
+ children?: React.ReactNode;
27
+ }, "key" | "theme" | keyof React.ButtonHTMLAttributes<HTMLButtonElement> | "active" | "focused"> & {
28
+ ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
29
+ }, "theme">>;
30
+ export declare const SuiteContainer: import("@storybook/theming").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
31
+ padding: number;
32
+ }, Theme>;
33
+ export declare function SuiteLink({ title, suite, 'data-testid': dataTid }: SuiteLinkProps): JSX.Element;
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
- import { CreeveyTest } from '../../../../types';
3
- export interface TestLinkProps {
4
- title: string;
5
- opened: boolean;
6
- test: CreeveyTest;
7
- }
8
- export declare function TestLink({ title, opened, test }: TestLinkProps): JSX.Element;
1
+ import { CreeveyTest } from '../../../../types';
2
+ export interface TestLinkProps {
3
+ title: string;
4
+ opened: boolean;
5
+ test: CreeveyTest;
6
+ }
7
+ export declare function TestLink({ title, opened, test }: TestLinkProps): JSX.Element;
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
- import { Theme } from '@storybook/theming';
3
- import { TestStatus } from '../../../../types';
4
- export interface TestStatusIconProps {
5
- inverted?: boolean;
6
- status?: TestStatus;
7
- skip?: string | boolean;
8
- theme: Theme;
9
- }
10
- export declare const TestStatusIcon: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<TestStatusIconProps, "theme">>;
1
+ import React from 'react';
2
+ import { Theme } from '@storybook/theming';
3
+ import { TestStatus } from '../../../../types';
4
+ export interface TestStatusIconProps {
5
+ inverted?: boolean;
6
+ status?: TestStatus;
7
+ skip?: string | boolean;
8
+ theme: Theme;
9
+ }
10
+ export declare const TestStatusIcon: React.FC<import("@storybook/theming").AddOptionalTo<TestStatusIconProps, "theme">>;
@@ -1,9 +1,9 @@
1
- import React from 'react';
2
- import { TestStatus } from '../../../../types';
3
- import { CreeveyTestsStatus } from '../../../shared/helpers';
4
- import { Theme } from '@storybook/theming';
5
- export interface TestsStatusProps extends CreeveyTestsStatus {
6
- onClickByStatus: (value: TestStatus) => void;
7
- theme?: Theme;
8
- }
9
- export declare const TestsStatus: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<TestsStatusProps, "theme">>;
1
+ import React from 'react';
2
+ import { TestStatus } from '../../../../types';
3
+ import { CreeveyTestsStatus } from '../../../shared/helpers';
4
+ import { Theme } from '@storybook/theming';
5
+ export interface TestsStatusProps extends CreeveyTestsStatus {
6
+ onClickByStatus: (value: TestStatus) => void;
7
+ theme?: Theme;
8
+ }
9
+ export declare const TestsStatus: React.FC<import("@storybook/theming").AddOptionalTo<TestsStatusProps, "theme">>;
@@ -1,6 +1,6 @@
1
- interface ToggleProps {
2
- value?: boolean;
3
- onChange: (val: boolean) => void;
4
- }
5
- export declare const Toggle: ({ value, onChange }: ToggleProps) => JSX.Element;
6
- export {};
1
+ interface ToggleProps {
2
+ value?: boolean;
3
+ onChange: (val: boolean) => void;
4
+ }
5
+ export declare const Toggle: ({ value, onChange }: ToggleProps) => JSX.Element;
6
+ export {};
@@ -1 +1 @@
1
- export { SideBar } from './SideBar';
1
+ export { SideBar } from './SideBar';
@@ -1,13 +1,13 @@
1
- import React from 'react';
2
- import { CreeveySuite } from '../../types';
3
- import { CreeveyViewFilter } from '../shared/helpers';
4
- export interface KeyboardEventsContextType {
5
- sidebarFocusedItem: string[];
6
- setSidebarFocusedItem: (path: string[]) => void;
7
- }
8
- export declare const KeyboardEventsContext: React.Context<KeyboardEventsContextType>;
9
- export declare const KeyboardEvents: ({ children, rootSuite, filter, }: {
10
- rootSuite: CreeveySuite;
11
- filter: CreeveyViewFilter;
12
- children: React.ReactChild;
13
- }) => JSX.Element;
1
+ import React from 'react';
2
+ import { CreeveySuite } from '../../types';
3
+ import { CreeveyViewFilter } from '../shared/helpers';
4
+ export interface KeyboardEventsContextType {
5
+ sidebarFocusedItem: string[];
6
+ setSidebarFocusedItem: (path: string[]) => void;
7
+ }
8
+ export declare const KeyboardEventsContext: React.Context<KeyboardEventsContextType>;
9
+ export declare const KeyboardEvents: ({ children, rootSuite, filter, }: {
10
+ rootSuite: CreeveySuite;
11
+ filter: CreeveyViewFilter;
12
+ children: React.ReactChild;
13
+ }) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { CreeveyStatus } from '../../types';
2
- declare global {
3
- const __CREEVEY_DATA__: CreeveyStatus['tests'];
4
- }
1
+ import { CreeveyStatus } from '../../types';
2
+ declare global {
3
+ const __CREEVEY_DATA__: CreeveyStatus['tests'];
4
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,5 +1,2 @@
1
+ /// <reference types="../../types/chai" />
1
2
  export * from './types';
2
- export { loadStories as browserStoriesProvider } from './server/storybook/providers/browser';
3
- export { loadStories as nodejsStoriesProvider } from './server/storybook/providers/nodejs';
4
- export { loadStories as hybridStoriesProvider } from './server/storybook/providers/hybrid';
5
- export * from './server/testsFiles/parser';
@@ -1,4 +1,4 @@
1
- import { Config, Options } from '../types';
2
- export declare const defaultBrowser = "chrome";
3
- export declare const defaultConfig: Omit<Config, 'gridUrl' | 'storiesProvider' | 'testsDir' | 'tsConfig'>;
4
- export declare function readConfig(options: Options): Promise<Config>;
1
+ import { Config, Options } from '../types';
2
+ export declare const defaultBrowser = "chrome";
3
+ export declare const defaultConfig: Omit<Config, 'gridUrl' | 'storiesProvider' | 'testsDir' | 'tsConfig'>;
4
+ export declare function readConfig(options: Options): Promise<Config>;
@@ -1,7 +1,7 @@
1
- import { Config, DockerAuth } from '../types';
2
- export declare function pullImages(images: string[], { auth, platform }?: {
3
- auth?: DockerAuth;
4
- platform?: string;
5
- }): Promise<void>;
6
- export declare function runImage(image: string, args: string[], options: Record<string, unknown>, debug: boolean): Promise<string>;
7
- export default function (config: Config, browser: string | undefined, startContainer: () => Promise<string>): Promise<void>;
1
+ import { Config, DockerAuth } from '../types';
2
+ export declare function pullImages(images: string[], { auth, platform }?: {
3
+ auth?: DockerAuth;
4
+ platform?: string;
5
+ }): Promise<void>;
6
+ export declare function runImage(image: string, args: string[], options: Record<string, unknown>, debug: boolean): Promise<string>;
7
+ export default function (config: Config, browser: string | undefined, startContainer: () => Promise<string>): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Config, Options } from '../types';
2
- export default function extract(config: Config, options: Options): Promise<void>;
1
+ import { Config, Options } from '../types';
2
+ export default function extract(config: Config, options: Options): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Options } from '../types';
2
- export default function (options: Options): Promise<void>;
1
+ import { Options } from '../types';
2
+ export default function (options: Options): Promise<void>;
@@ -1 +1 @@
1
- export default function (): unknown;
1
+ export default function (): unknown;
@@ -1,19 +1,19 @@
1
- import { NodePath, Binding, TraverseOptions } from '@babel/traverse';
2
- export declare enum FileType {
3
- Invalid = -1,
4
- Entry = 0,
5
- Preview = 1,
6
- Story = 2
7
- }
8
- export interface VisitorState {
9
- resourcePath: string;
10
- fileType: FileType;
11
- isMDX: boolean;
12
- visitedTopPaths: Set<NodePath<any>>;
13
- visitedBindings: Set<Binding>;
14
- reexportedStories: Map<string, Set<string>>;
15
- }
16
- export declare const commonVisitor: TraverseOptions<VisitorState>;
17
- export declare const previewVisitor: TraverseOptions<VisitorState>;
18
- export declare const mdxVisitor: TraverseOptions<VisitorState>;
19
- export declare const storyVisitor: TraverseOptions<VisitorState>;
1
+ import { NodePath, Binding, TraverseOptions } from '@babel/traverse';
2
+ export declare enum FileType {
3
+ Invalid = -1,
4
+ Entry = 0,
5
+ Preview = 1,
6
+ Story = 2
7
+ }
8
+ export interface VisitorState {
9
+ resourcePath: string;
10
+ fileType: FileType;
11
+ isMDX: boolean;
12
+ visitedTopPaths: Set<NodePath<any>>;
13
+ visitedBindings: Set<Binding>;
14
+ reexportedStories: Map<string, Set<string>>;
15
+ }
16
+ export declare const commonVisitor: TraverseOptions<VisitorState>;
17
+ export declare const previewVisitor: TraverseOptions<VisitorState>;
18
+ export declare const mdxVisitor: TraverseOptions<VisitorState>;
19
+ export declare const storyVisitor: TraverseOptions<VisitorState>;
@@ -1,5 +1,5 @@
1
- /// <reference types="webpack-env" />
2
- import { Config } from '../../../types';
3
- declare function getRequireContext(rootDir: string): (rootPath: string, deep?: boolean | undefined, filter?: RegExp | undefined) => __WebpackModuleApi.RequireContext;
4
- export default function register(config: Config, debug?: boolean): Promise<ReturnType<typeof getRequireContext>>;
5
- export {};
1
+ /// <reference types="webpack-env" />
2
+ import { Config } from '../../../types';
3
+ declare function getRequireContext(rootDir: string): (rootPath: string, deep?: boolean, filter?: RegExp) => __WebpackModuleApi.RequireContext;
4
+ export default function register(config: Config, debug?: boolean): Promise<ReturnType<typeof getRequireContext>>;
5
+ export {};
@@ -1 +1 @@
1
- export declare const addMDXHook: (getStory: () => string | null) => Promise<void>;
1
+ export declare const addMDXHook: (getStory: () => string | null) => Promise<void>;
@@ -1 +1 @@
1
- export declare const addSvelteHook: (getStory: () => string | null) => Promise<void>;
1
+ export declare const addSvelteHook: (getStory: () => string | null) => Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Config, Options } from '../../../types';
2
- export default function compile(config: Config, { debug, ui }: Options): Promise<void>;
1
+ import { Config, Options } from '../../../types';
2
+ export default function compile(config: Config, { debug, ui }: Options): Promise<void>;
@@ -1,2 +1,4 @@
1
- import { loader } from 'webpack';
2
- export default function (this: loader.LoaderContext | void, source: string): string;
1
+ import { getOptions } from 'loader-utils';
2
+ declare type LoaderContext = Parameters<typeof getOptions>[0];
3
+ export default function loader(this: LoaderContext | void, source: string): string;
4
+ export {};
@@ -1,10 +1,10 @@
1
- declare global {
2
- var __CREEVEY_HMR_DATA__: {
3
- [moduleId: string]: {
4
- data: unknown;
5
- callback: (data: unknown) => void;
6
- };
7
- };
8
- }
9
- declare const _default: {};
10
- export default _default;
1
+ declare global {
2
+ var __CREEVEY_HMR_DATA__: {
3
+ [moduleId: string]: {
4
+ data: unknown;
5
+ callback: (data: unknown) => void;
6
+ };
7
+ };
8
+ }
9
+ declare const _default: {};
10
+ export default _default;
@@ -1,6 +1,6 @@
1
- export declare let mdxLoaders: any[];
2
- export declare const mdxOptions: (options?: any) => {
3
- compilers: any[];
4
- remarkPlugins: any[];
5
- };
6
- export declare function webpack(webpackConfig?: any, options?: any): any;
1
+ export declare let mdxLoaders: any[];
2
+ export declare const mdxOptions: (options?: any) => {
3
+ compilers: any[];
4
+ remarkPlugins: any[];
5
+ };
6
+ export declare function webpack(webpackConfig?: any, options?: any): any;
@@ -1 +1 @@
1
- export declare function startWebpackCompiler(): Promise<void>;
1
+ export declare function startWebpackCompiler(): Promise<void>;
@@ -1,6 +1,10 @@
1
- import { Chalk } from 'chalk';
2
- export { getLogger } from 'loglevel';
3
- export declare const colors: {
4
- [level: string]: Chalk;
5
- };
6
- export declare const logger: import("loglevel").Logger;
1
+ import chalk from 'chalk';
2
+ export { getLogger } from 'loglevel';
3
+ export declare const colors: {
4
+ TRACE: chalk.Chalk;
5
+ DEBUG: chalk.Chalk;
6
+ INFO: chalk.Chalk;
7
+ WARN: chalk.Chalk;
8
+ ERROR: chalk.Chalk;
9
+ };
10
+ export declare const logger: import("loglevel").Logger;
@@ -1,7 +1,7 @@
1
- import WebSocket from 'ws';
2
- import Runner from './runner';
3
- export interface CreeveyApi {
4
- subscribe: (wss: WebSocket.Server) => void;
5
- handleMessage: (ws: WebSocket, message: WebSocket.Data) => void;
6
- }
7
- export default function creeveyApi(runner: Runner): CreeveyApi;
1
+ import WebSocket from 'ws';
2
+ import Runner from './runner';
3
+ export interface CreeveyApi {
4
+ subscribe: (wss: WebSocket.Server) => void;
5
+ handleMessage: (ws: WebSocket, message: WebSocket.Data) => void;
6
+ }
7
+ export default function creeveyApi(runner: Runner): CreeveyApi;
@@ -1,3 +1,3 @@
1
- import { CreeveyApi } from './api';
2
- import { Config, Options } from '../../types';
3
- export default function (config: Config, options: Options, resolveApi: (api: CreeveyApi) => void): Promise<void>;
1
+ import { CreeveyApi } from './api';
2
+ import { Config, Options } from '../../types';
3
+ export default function (config: Config, options: Options, resolveApi: (api: CreeveyApi) => void): Promise<void>;
@@ -1,7 +1,7 @@
1
- import { Config } from '../../types';
2
- import Runner from './runner';
3
- export default function master(config: Config, options: {
4
- watch: boolean;
5
- debug: boolean;
6
- port: number;
7
- }): Promise<Runner>;
1
+ import { Config } from '../../types';
2
+ import Runner from './runner';
3
+ export default function master(config: Config, options: {
4
+ watch: boolean;
5
+ debug: boolean;
6
+ port: number;
7
+ }): Promise<Runner>;
@@ -1,31 +1,31 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { Config } from '../../types';
4
- export default class Pool extends EventEmitter {
5
- private browser;
6
- private maxRetries;
7
- private config;
8
- private workers;
9
- private queue;
10
- private forcedStop;
11
- private failFast;
12
- get isRunning(): boolean;
13
- constructor(config: Config, browser: string);
14
- init(): Promise<void>;
15
- start(tests: {
16
- id: string;
17
- path: string[];
18
- }[]): boolean;
19
- stop(): void;
20
- process(): void;
21
- private sendStatus;
22
- private getFreeWorker;
23
- private get aliveWorkers();
24
- private get freeWorkers();
25
- private forkWorker;
26
- private exitHandler;
27
- private gracefullyKill;
28
- private shouldRetry;
29
- private handleTestResult;
30
- private subscribe;
31
- }
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { Config } from '../../types';
4
+ export default class Pool extends EventEmitter {
5
+ private browser;
6
+ private maxRetries;
7
+ private config;
8
+ private workers;
9
+ private queue;
10
+ private forcedStop;
11
+ private failFast;
12
+ get isRunning(): boolean;
13
+ constructor(config: Config, browser: string);
14
+ init(): Promise<void>;
15
+ start(tests: {
16
+ id: string;
17
+ path: string[];
18
+ }[]): boolean;
19
+ stop(): void;
20
+ process(): void;
21
+ private sendStatus;
22
+ private getFreeWorker;
23
+ private get aliveWorkers();
24
+ private get freeWorkers();
25
+ private forkWorker;
26
+ private exitHandler;
27
+ private gracefullyKill;
28
+ private shouldRetry;
29
+ private handleTestResult;
30
+ private subscribe;
31
+ }
@@ -1,26 +1,26 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { Config, CreeveyStatus, ApprovePayload, ServerTest } from '../../types';
4
- export default class Runner extends EventEmitter {
5
- private failFast;
6
- private screenDir;
7
- private reportDir;
8
- private browsers;
9
- private pools;
10
- tests: Partial<{
11
- [id: string]: ServerTest;
12
- }>;
13
- get isRunning(): boolean;
14
- constructor(config: Config);
15
- private handlePoolMessage;
16
- private handlePoolStop;
17
- init(): Promise<void>;
18
- updateTests(testsDiff: Partial<{
19
- [id: string]: ServerTest;
20
- }>): void;
21
- start(ids: string[]): void;
22
- stop(): void;
23
- get status(): CreeveyStatus;
24
- approve({ id, retry, image }: ApprovePayload): Promise<void>;
25
- private sendUpdate;
26
- }
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { Config, CreeveyStatus, ApprovePayload, ServerTest } from '../../types';
4
+ export default class Runner extends EventEmitter {
5
+ private failFast;
6
+ private screenDir;
7
+ private reportDir;
8
+ private browsers;
9
+ private pools;
10
+ tests: Partial<{
11
+ [id: string]: ServerTest;
12
+ }>;
13
+ get isRunning(): boolean;
14
+ constructor(config: Config);
15
+ private handlePoolMessage;
16
+ private handlePoolStop;
17
+ init(): Promise<void>;
18
+ updateTests(testsDiff: Partial<{
19
+ [id: string]: ServerTest;
20
+ }>): void;
21
+ start(ids: string[]): void;
22
+ stop(): void;
23
+ get status(): CreeveyStatus;
24
+ approve({ id, retry, image }: ApprovePayload): Promise<void>;
25
+ private sendUpdate;
26
+ }
@@ -1,2 +1,2 @@
1
- import { CreeveyApi } from './api';
2
- export default function server(reportDir: string, port: number, ui: boolean): (api: CreeveyApi) => void;
1
+ import { CreeveyApi } from './api';
2
+ export default function server(reportDir: string, port: number, ui: boolean): (api: CreeveyApi) => void;
@@ -1,27 +1,27 @@
1
- /// <reference types="node" />
2
- import cluster from 'cluster';
3
- import { WorkerMessage, StoriesMessage, TestMessage, WebpackMessage, DockerMessage, WorkerHandler, StoriesHandler, TestHandler, WebpackHandler, DockerHandler, ShutdownHandler } from '../types';
4
- export declare function emitWorkerMessage(message: WorkerMessage): boolean;
5
- export declare function emitStoriesMessage(message: StoriesMessage): boolean;
6
- export declare function emitTestMessage(message: TestMessage): boolean;
7
- export declare function emitWebpackMessage(message: WebpackMessage): boolean;
8
- export declare function emitDockerMessage(message: DockerMessage): boolean;
9
- export declare function emitShutdownMessage(): boolean;
10
- export declare function sendStoriesMessage(target: NodeJS.Process | cluster.Worker, message: StoriesMessage): void;
11
- export declare function sendTestMessage(target: NodeJS.Process | cluster.Worker, message: TestMessage): void;
12
- export declare function sendDockerMessage(target: NodeJS.Process | cluster.Worker, message: DockerMessage): void;
13
- export declare function sendShutdownMessage(target: NodeJS.Process | cluster.Worker): void;
14
- export declare function subscribeOn(scope: 'worker', handler: WorkerHandler): () => void;
15
- export declare function subscribeOn(scope: 'stories', handler: StoriesHandler): () => void;
16
- export declare function subscribeOn(scope: 'test', handler: TestHandler): () => void;
17
- export declare function subscribeOn(scope: 'webpack', handler: WebpackHandler): () => void;
18
- export declare function subscribeOn(scope: 'docker', handler: DockerHandler): () => void;
19
- export declare function subscribeOn(scope: 'shutdown', handler: ShutdownHandler): () => void;
20
- export declare function subscribeOn(scope: 'worker' | 'stories' | 'test' | 'webpack' | 'docker' | 'shutdown', handler: WorkerHandler | StoriesHandler | TestHandler | WebpackHandler | DockerHandler | ShutdownHandler): () => void;
21
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'worker', handler: WorkerHandler): () => void;
22
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'stories', handler: StoriesHandler): () => void;
23
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'test', handler: TestHandler): () => void;
24
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'webpack', handler: WebpackHandler): () => void;
25
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'docker', handler: DockerHandler): () => void;
26
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'shutdown', handler: ShutdownHandler): () => void;
27
- export declare function subscribeOnWorker(worker: cluster.Worker, scope: 'worker' | 'stories' | 'test' | 'webpack' | 'docker' | 'shutdown', handler: WorkerHandler | StoriesHandler | TestHandler | WebpackHandler | DockerHandler | ShutdownHandler): () => void;
1
+ /// <reference types="node" />
2
+ import { Worker } from 'cluster';
3
+ import { WorkerMessage, StoriesMessage, TestMessage, WebpackMessage, DockerMessage, WorkerHandler, StoriesHandler, TestHandler, WebpackHandler, DockerHandler, ShutdownHandler } from '../types';
4
+ export declare function emitWorkerMessage(message: WorkerMessage): boolean;
5
+ export declare function emitStoriesMessage(message: StoriesMessage): boolean;
6
+ export declare function emitTestMessage(message: TestMessage): boolean;
7
+ export declare function emitWebpackMessage(message: WebpackMessage): boolean;
8
+ export declare function emitDockerMessage(message: DockerMessage): boolean;
9
+ export declare function emitShutdownMessage(): boolean;
10
+ export declare function sendStoriesMessage(target: NodeJS.Process | Worker, message: StoriesMessage): void;
11
+ export declare function sendTestMessage(target: NodeJS.Process | Worker, message: TestMessage): void;
12
+ export declare function sendDockerMessage(target: NodeJS.Process | Worker, message: DockerMessage): void;
13
+ export declare function sendShutdownMessage(target: NodeJS.Process | Worker): void;
14
+ export declare function subscribeOn(scope: 'worker', handler: WorkerHandler): () => void;
15
+ export declare function subscribeOn(scope: 'stories', handler: StoriesHandler): () => void;
16
+ export declare function subscribeOn(scope: 'test', handler: TestHandler): () => void;
17
+ export declare function subscribeOn(scope: 'webpack', handler: WebpackHandler): () => void;
18
+ export declare function subscribeOn(scope: 'docker', handler: DockerHandler): () => void;
19
+ export declare function subscribeOn(scope: 'shutdown', handler: ShutdownHandler): () => void;
20
+ export declare function subscribeOn(scope: 'worker' | 'stories' | 'test' | 'webpack' | 'docker' | 'shutdown', handler: WorkerHandler | StoriesHandler | TestHandler | WebpackHandler | DockerHandler | ShutdownHandler): () => void;
21
+ export declare function subscribeOnWorker(worker: Worker, scope: 'worker', handler: WorkerHandler): () => void;
22
+ export declare function subscribeOnWorker(worker: Worker, scope: 'stories', handler: StoriesHandler): () => void;
23
+ export declare function subscribeOnWorker(worker: Worker, scope: 'test', handler: TestHandler): () => void;
24
+ export declare function subscribeOnWorker(worker: Worker, scope: 'webpack', handler: WebpackHandler): () => void;
25
+ export declare function subscribeOnWorker(worker: Worker, scope: 'docker', handler: DockerHandler): () => void;
26
+ export declare function subscribeOnWorker(worker: Worker, scope: 'shutdown', handler: ShutdownHandler): () => void;
27
+ export declare function subscribeOnWorker(worker: Worker, scope: 'worker' | 'stories' | 'test' | 'webpack' | 'docker' | 'shutdown', handler: WorkerHandler | StoriesHandler | TestHandler | WebpackHandler | DockerHandler | ShutdownHandler): () => void;