creevey 0.7.39 → 0.8.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +33 -2
  2. package/README.md +9 -1
  3. package/addon/README.md +3 -0
  4. package/addon/package.json +4 -0
  5. package/docs/config.md +37 -5
  6. package/docs/grid.md +2 -1
  7. package/jest.config.js +6 -0
  8. package/lib/cjs/client/addon/Manager.js +124 -271
  9. package/lib/cjs/client/addon/components/Addon.js +17 -38
  10. package/lib/cjs/client/addon/components/Icons.js +11 -7
  11. package/lib/cjs/client/addon/components/Panel.js +17 -13
  12. package/lib/cjs/client/addon/components/TestSelect.js +11 -9
  13. package/lib/cjs/client/addon/components/Tools.js +21 -40
  14. package/lib/cjs/client/addon/decorator.js +1 -1
  15. package/lib/cjs/client/addon/index.js +31 -0
  16. package/lib/cjs/client/addon/preset.ie11.js +74 -0
  17. package/lib/cjs/client/addon/preset.js +13 -31
  18. package/lib/cjs/client/addon/readyForCapture.js +12 -0
  19. package/lib/cjs/client/addon/register.js +46 -70
  20. package/lib/cjs/client/addon/utils.js +5 -41
  21. package/lib/cjs/client/addon/withCreevey.js +221 -155
  22. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +26 -24
  23. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +22 -18
  24. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +44 -66
  25. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +38 -50
  26. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +26 -45
  27. package/lib/cjs/client/shared/components/ImagesView/index.js +9 -9
  28. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +12 -8
  29. package/lib/cjs/client/shared/components/PageFooter/Paging.js +14 -18
  30. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +22 -18
  31. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +42 -67
  32. package/lib/cjs/client/shared/components/ResultsPage.js +39 -69
  33. package/lib/cjs/client/shared/creeveyClientApi.js +55 -82
  34. package/lib/cjs/client/shared/helpers.js +140 -211
  35. package/lib/cjs/client/shared/viewMode.js +5 -5
  36. package/lib/cjs/client/web/142.js +2 -0
  37. package/lib/cjs/client/web/142.js.LICENSE.txt +12 -0
  38. package/lib/cjs/client/web/32.js +1 -0
  39. package/lib/cjs/client/web/551.js +1 -0
  40. package/lib/cjs/client/web/566.js +2 -0
  41. package/lib/cjs/client/web/566.js.LICENSE.txt +31 -0
  42. package/lib/cjs/client/web/691.js +2 -0
  43. package/lib/cjs/client/web/691.js.LICENSE.txt +8 -0
  44. package/lib/cjs/client/web/725.js +1 -0
  45. package/lib/cjs/client/web/main.js +2 -38
  46. package/lib/cjs/client/web/main.js.LICENSE.txt +49 -0
  47. package/lib/cjs/creevey.js +3 -5
  48. package/lib/cjs/index.js +10 -15
  49. package/lib/cjs/server/config.js +5 -4
  50. package/lib/cjs/server/docker.js +3 -7
  51. package/lib/cjs/server/extract.js +7 -4
  52. package/lib/cjs/server/index.js +3 -5
  53. package/lib/cjs/server/loaders/babel/creevey-plugin.js +1 -3
  54. package/lib/cjs/server/loaders/babel/helpers.js +13 -23
  55. package/lib/cjs/server/loaders/babel/register.js +3 -4
  56. package/lib/cjs/server/loaders/webpack/compile.js +33 -50
  57. package/lib/cjs/server/loaders/webpack/creevey-loader.js +20 -22
  58. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +2 -7
  59. package/lib/cjs/server/loaders/webpack/mdx-loader.js +2 -2
  60. package/lib/cjs/server/loaders/webpack/start.js +1 -1
  61. package/lib/cjs/server/logger.js +2 -1
  62. package/lib/cjs/server/master/index.js +4 -4
  63. package/lib/cjs/server/master/master.js +1 -0
  64. package/lib/cjs/server/master/pool.js +38 -47
  65. package/lib/cjs/server/master/runner.js +53 -66
  66. package/lib/cjs/server/master/server.js +78 -4
  67. package/lib/cjs/server/messages.js +128 -18
  68. package/lib/cjs/server/selenium/browser.js +129 -55
  69. package/lib/cjs/server/selenium/selenoid.js +6 -8
  70. package/lib/cjs/server/stories.js +58 -84
  71. package/lib/cjs/server/storybook/entry.js +8 -22
  72. package/lib/cjs/server/storybook/helpers.js +22 -21
  73. package/lib/cjs/server/storybook/providers/browser.js +74 -0
  74. package/lib/cjs/server/storybook/{nodejs-provider.js → providers/nodejs.js} +44 -22
  75. package/lib/cjs/server/update.js +1 -5
  76. package/lib/cjs/server/utils.js +36 -15
  77. package/lib/cjs/server/worker/helpers.js +2 -6
  78. package/lib/cjs/server/worker/reporter.js +8 -20
  79. package/lib/cjs/server/worker/worker.js +21 -19
  80. package/lib/cjs/shared/index.js +101 -0
  81. package/lib/cjs/shared/serializeRegExp.js +42 -0
  82. package/lib/cjs/types.js +11 -6
  83. package/lib/esm/client/addon/Manager.js +124 -272
  84. package/lib/esm/client/addon/components/Addon.js +15 -34
  85. package/lib/esm/client/addon/components/Icons.js +10 -6
  86. package/lib/esm/client/addon/components/Panel.js +17 -13
  87. package/lib/esm/client/addon/components/TestSelect.js +11 -9
  88. package/lib/esm/client/addon/components/Tools.js +19 -36
  89. package/lib/esm/client/addon/decorator.js +1 -1
  90. package/lib/esm/client/addon/index.js +2 -0
  91. package/lib/esm/client/addon/preset.ie11.js +59 -0
  92. package/lib/esm/client/addon/preset.js +12 -26
  93. package/lib/esm/client/addon/readyForCapture.js +5 -0
  94. package/lib/esm/client/addon/register.js +42 -66
  95. package/lib/esm/client/addon/utils.js +3 -34
  96. package/lib/esm/client/addon/withCreevey.js +209 -156
  97. package/lib/esm/client/shared/components/ImagesView/BlendView.js +23 -20
  98. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +21 -17
  99. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +42 -63
  100. package/lib/esm/client/shared/components/ImagesView/SlideView.js +36 -47
  101. package/lib/esm/client/shared/components/ImagesView/SwapView.js +24 -42
  102. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +12 -8
  103. package/lib/esm/client/shared/components/PageFooter/Paging.js +14 -18
  104. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +22 -18
  105. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +37 -60
  106. package/lib/esm/client/shared/components/ResultsPage.js +36 -64
  107. package/lib/esm/client/shared/creeveyClientApi.js +57 -84
  108. package/lib/esm/client/shared/helpers.js +124 -195
  109. package/lib/esm/client/shared/viewMode.js +4 -4
  110. package/lib/esm/creevey.js +3 -5
  111. package/lib/esm/index.js +2 -3
  112. package/lib/esm/server/config.js +4 -5
  113. package/lib/esm/server/docker.js +2 -2
  114. package/lib/esm/server/extract.js +6 -4
  115. package/lib/esm/server/index.js +3 -4
  116. package/lib/esm/server/loaders/babel/creevey-plugin.js +1 -3
  117. package/lib/esm/server/loaders/babel/helpers.js +12 -22
  118. package/lib/esm/server/loaders/babel/register.js +3 -4
  119. package/lib/esm/server/loaders/webpack/compile.js +34 -51
  120. package/lib/esm/server/loaders/webpack/creevey-loader.js +9 -10
  121. package/lib/esm/server/loaders/webpack/dummy-hmr.js +2 -6
  122. package/lib/esm/server/loaders/webpack/mdx-loader.js +2 -2
  123. package/lib/esm/server/loaders/webpack/start.js +1 -1
  124. package/lib/esm/server/master/index.js +4 -4
  125. package/lib/esm/server/master/master.js +1 -0
  126. package/lib/esm/server/master/pool.js +38 -49
  127. package/lib/esm/server/master/runner.js +53 -66
  128. package/lib/esm/server/master/server.js +76 -6
  129. package/lib/esm/server/messages.js +118 -14
  130. package/lib/esm/server/selenium/browser.js +126 -57
  131. package/lib/esm/server/selenium/selenoid.js +5 -7
  132. package/lib/esm/server/stories.js +60 -83
  133. package/lib/esm/server/storybook/entry.js +7 -24
  134. package/lib/esm/server/storybook/helpers.js +13 -16
  135. package/lib/esm/server/storybook/providers/browser.js +60 -0
  136. package/lib/esm/server/storybook/{nodejs-provider.js → providers/nodejs.js} +42 -21
  137. package/lib/esm/server/update.js +1 -5
  138. package/lib/esm/server/utils.js +28 -10
  139. package/lib/esm/server/worker/helpers.js +2 -6
  140. package/lib/esm/server/worker/reporter.js +8 -20
  141. package/lib/esm/server/worker/worker.js +22 -20
  142. package/lib/esm/shared/index.js +78 -0
  143. package/lib/esm/shared/serializeRegExp.js +24 -0
  144. package/lib/esm/types.js +3 -0
  145. package/lib/types/cli.d.ts +1 -1
  146. package/lib/types/client/addon/Manager.d.ts +37 -37
  147. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  148. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  149. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  150. package/lib/types/client/addon/components/TestSelect.d.ts +8 -9
  151. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  152. package/lib/types/client/addon/decorator.d.ts +1 -1
  153. package/lib/types/client/addon/index.d.ts +2 -0
  154. package/lib/types/client/addon/preset.d.ts +23 -22
  155. package/lib/types/client/addon/preset.ie11.d.ts +10 -0
  156. package/lib/types/client/addon/readyForCapture.d.ts +6 -0
  157. package/lib/types/client/addon/register.d.ts +3 -3
  158. package/lib/types/client/addon/utils.d.ts +3 -6
  159. package/lib/types/client/addon/withCreevey.d.ts +24 -13
  160. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  161. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +24 -25
  162. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  163. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  164. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  165. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  166. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +8 -9
  167. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +7 -8
  168. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  169. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +16 -17
  170. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  171. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  172. package/lib/types/client/shared/helpers.d.ts +46 -46
  173. package/lib/types/client/shared/viewMode.d.ts +4 -4
  174. package/lib/types/client/web/CreeveyApp.d.ts +11 -12
  175. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  176. package/lib/types/client/web/CreeveyLoader.d.ts +2 -3
  177. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  178. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  179. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  180. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -13
  181. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  182. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -8
  183. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  184. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  185. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  186. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  187. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  188. package/lib/types/client/web/index.d.ts +4 -4
  189. package/lib/types/creevey.d.ts +1 -1
  190. package/lib/types/index.d.ts +0 -1
  191. package/lib/types/server/config.d.ts +4 -4
  192. package/lib/types/server/docker.d.ts +7 -7
  193. package/lib/types/server/extract.d.ts +2 -2
  194. package/lib/types/server/index.d.ts +2 -2
  195. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  196. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  197. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  198. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  199. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  200. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  201. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +4 -2
  202. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  203. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  204. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  205. package/lib/types/server/logger.d.ts +10 -6
  206. package/lib/types/server/master/api.d.ts +7 -7
  207. package/lib/types/server/master/index.d.ts +3 -3
  208. package/lib/types/server/master/master.d.ts +7 -6
  209. package/lib/types/server/master/pool.d.ts +31 -30
  210. package/lib/types/server/master/runner.d.ts +26 -26
  211. package/lib/types/server/master/server.d.ts +2 -2
  212. package/lib/types/server/messages.d.ts +29 -18
  213. package/lib/types/server/selenium/browser.d.ts +17 -14
  214. package/lib/types/server/selenium/index.d.ts +2 -2
  215. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  216. package/lib/types/server/stories.d.ts +8 -9
  217. package/lib/types/server/storybook/entry.d.ts +17 -14
  218. package/lib/types/server/storybook/helpers.d.ts +24 -23
  219. package/lib/types/server/storybook/providers/browser.d.ts +4 -0
  220. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -0
  221. package/lib/types/server/update.d.ts +2 -2
  222. package/lib/types/server/utils.d.ts +19 -18
  223. package/lib/types/server/worker/chai-image.d.ts +6 -6
  224. package/lib/types/server/worker/helpers.d.ts +8 -7
  225. package/lib/types/server/worker/index.d.ts +1 -1
  226. package/lib/types/server/worker/reporter.d.ts +8 -8
  227. package/lib/types/server/worker/worker.d.ts +4 -4
  228. package/lib/types/shared/index.d.ts +7 -0
  229. package/lib/types/shared/serializeRegExp.d.ts +9 -0
  230. package/lib/types/types.d.ts +487 -459
  231. package/package.json +121 -99
  232. package/preset/ie11.js +5 -0
  233. package/{preset.js → preset/index.js} +2 -2
  234. package/types/mdx.d.ts +3 -2
  235. package/types/mocha.d.ts +1 -0
  236. package/lib/cjs/client/web/1.js +0 -13
  237. package/lib/cjs/client/web/2.js +0 -1
  238. package/lib/types/server/storybook/nodejs-provider.d.ts +0 -5
  239. package/storybook-static/stories.json +0 -530
@@ -0,0 +1,24 @@
1
+ export const isRegExp = exp => {
2
+ return exp instanceof RegExp;
3
+ };
4
+ export const isSerializedRegExp = exp => {
5
+ return typeof exp === 'object' && exp !== null && Reflect.get(exp, '__regexp') === true;
6
+ };
7
+ export const serializeRegExp = exp => {
8
+ const {
9
+ source,
10
+ flags
11
+ } = exp;
12
+ return {
13
+ __regexp: true,
14
+ source,
15
+ flags
16
+ };
17
+ };
18
+ export const deserializeRegExp = _ref => {
19
+ let {
20
+ source,
21
+ flags
22
+ } = _ref;
23
+ return new RegExp(source, flags);
24
+ };
package/lib/esm/types.js CHANGED
@@ -29,6 +29,9 @@ export function isProcessMessage(message) {
29
29
  export function isWorkerMessage(message) {
30
30
  return isProcessMessage(message) && message.scope == 'worker';
31
31
  }
32
+ export function isStoriesMessage(message) {
33
+ return isProcessMessage(message) && message.scope == 'stories';
34
+ }
32
35
  export function isTestMessage(message) {
33
36
  return isProcessMessage(message) && message.scope == 'test';
34
37
  }
@@ -1 +1 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
@@ -1,37 +1,37 @@
1
- import { API } from '@storybook/api';
2
- import { SetStoriesPayload } from '@storybook/api/dist/ts3.9/lib/stories';
3
- import { CreeveyStatus, CreeveyUpdate, TestData, TestStatus, StoriesRaw } from '../../types';
4
- import { CreeveyClientApi } from '../shared/creeveyClientApi';
5
- export declare class CreeveyManager {
6
- storybookApi: API;
7
- storyId: string;
8
- activeBrowser: string;
9
- selectedTestId: string;
10
- status: CreeveyStatus;
11
- creeveyApi: CreeveyClientApi | null;
12
- stories: StoriesRaw;
13
- updateStatusListeners: Array<(update: CreeveyUpdate) => void>;
14
- changeTestListeners: Array<(testId: string) => void>;
15
- constructor(storybookApi: API);
16
- initAll: () => Promise<void>;
17
- onUpdateStatus(listener: (update: CreeveyUpdate) => void): () => void;
18
- onChangeTest(listener: (testId: string) => void): () => void;
19
- handleCreeveyUpdate: (update: CreeveyUpdate) => void;
20
- getCurrentTest: () => TestData | undefined;
21
- onStoryRendered: (storyId: string) => void;
22
- onStart: () => void;
23
- onStop: () => void;
24
- onImageApprove: (id: string, retry: number, image: string) => void;
25
- onStartAllStoryTests: () => void;
26
- onStartAllTests: () => void;
27
- onSetStories: (data: SetStoriesPayload) => void;
28
- setActiveBrowser: (browser: string) => void;
29
- setSelectedTestId: (testId: string) => void;
30
- getStoryTests: (storyId: string) => TestData[];
31
- getBrowsers: () => string[];
32
- getTestsByStoryIdAndBrowser: (browser: string) => TestData[];
33
- getTabTitle: (browser: string) => string;
34
- setPanelsTitle: () => void;
35
- addStatusesToSideBar(): Promise<void>;
36
- addStatusToStoryName(name: string, status: TestStatus | undefined, skip: string | boolean): string;
37
- }
1
+ import { API } from '@storybook/api';
2
+ import { denormalizeStoryParameters } from '../../shared';
3
+ import { CreeveyStatus, CreeveyUpdate, TestData, TestStatus, StoriesRaw } from '../../types';
4
+ import { CreeveyClientApi } from '../shared/creeveyClientApi';
5
+ export declare class CreeveyManager {
6
+ storybookApi: API;
7
+ storyId: string;
8
+ activeBrowser: string;
9
+ selectedTestId: string;
10
+ status: CreeveyStatus;
11
+ creeveyApi: CreeveyClientApi | null;
12
+ stories: StoriesRaw;
13
+ updateStatusListeners: Array<(update: CreeveyUpdate) => void>;
14
+ changeTestListeners: Array<(testId: string) => void>;
15
+ constructor(storybookApi: API);
16
+ initAll: () => Promise<void>;
17
+ onUpdateStatus(listener: (update: CreeveyUpdate) => void): () => void;
18
+ onChangeTest(listener: (testId: string) => void): () => void;
19
+ handleCreeveyUpdate: (update: CreeveyUpdate) => void;
20
+ getCurrentTest: () => TestData | undefined;
21
+ onStoryRendered: (storyId: string) => void;
22
+ onStart: () => void;
23
+ onStop: () => void;
24
+ onImageApprove: (id: string, retry: number, image: string) => void;
25
+ onStartAllStoryTests: () => void;
26
+ onStartAllTests: () => void;
27
+ onSetStories: (data: Parameters<typeof denormalizeStoryParameters>['0']) => void;
28
+ setActiveBrowser: (browser: string) => void;
29
+ setSelectedTestId: (testId: string) => void;
30
+ getStoryTests: (storyId: string) => TestData[];
31
+ getBrowsers: () => string[];
32
+ getTestsByStoryIdAndBrowser: (browser: string) => TestData[];
33
+ getTabTitle: (browser: string) => string;
34
+ setPanelsTitle: () => void;
35
+ addStatusesToSideBar(): Promise<void>;
36
+ addStatusToStoryName(name: string, status: TestStatus | undefined, skip: string | boolean): string;
37
+ }
@@ -1,8 +1,8 @@
1
- import { CreeveyManager } from '../Manager';
2
- interface AddonProps {
3
- active?: boolean;
4
- browser: string;
5
- manager: CreeveyManager;
6
- }
7
- export declare const Addon: ({ active, browser, manager }: AddonProps) => JSX.Element | null;
8
- export {};
1
+ import { CreeveyManager } from '../Manager';
2
+ interface AddonProps {
3
+ active?: boolean;
4
+ browser: string;
5
+ manager: CreeveyManager;
6
+ }
7
+ export declare const Addon: ({ active, browser, manager }: AddonProps) => JSX.Element | null;
8
+ export {};
@@ -1,7 +1,7 @@
1
- interface IconProps {
2
- width?: number;
3
- height?: number;
4
- }
5
- export declare const NextIcon: ({ width, height }: IconProps) => JSX.Element;
6
- export declare const ForwardIcon: ({ width, height }: IconProps) => JSX.Element;
7
- export {};
1
+ interface IconProps {
2
+ width?: number;
3
+ height?: number;
4
+ }
5
+ export declare const NextIcon: ({ width, height }: IconProps) => JSX.Element;
6
+ export declare const ForwardIcon: ({ width, height }: IconProps) => JSX.Element;
7
+ export {};
@@ -1,9 +1,9 @@
1
- import { TestData } from '../../../types';
2
- interface PanelProps {
3
- tests: TestData[];
4
- selectedTestId: string;
5
- onChangeTest: (testId: string) => void;
6
- onImageApprove: (id: string, retry: number, image: string) => void;
7
- }
8
- export declare const Panel: ({ tests, selectedTestId, onChangeTest, onImageApprove }: PanelProps) => JSX.Element;
9
- export {};
1
+ import { TestData } from '../../../types';
2
+ interface PanelProps {
3
+ tests: TestData[];
4
+ selectedTestId: string;
5
+ onChangeTest: (testId: string) => void;
6
+ onImageApprove: (id: string, retry: number, image: string) => void;
7
+ }
8
+ export declare const Panel: ({ tests, selectedTestId, onChangeTest, onImageApprove }: PanelProps) => JSX.Element;
9
+ export {};
@@ -1,9 +1,8 @@
1
- /// <reference types="react" />
2
- import { TestData } from '../../../types';
3
- interface TestSelectProps {
4
- tests: TestData[];
5
- selectedTestId: string;
6
- onChangeTest: (testId: string) => void;
7
- }
8
- export default function TestSelect(props: TestSelectProps): JSX.Element;
9
- export {};
1
+ import { TestData } from '../../../types';
2
+ interface TestSelectProps {
3
+ tests: TestData[];
4
+ selectedTestId: string;
5
+ onChangeTest: (testId: string) => void;
6
+ }
7
+ export default function TestSelect(props: TestSelectProps): JSX.Element;
8
+ export {};
@@ -1,6 +1,6 @@
1
- import { CreeveyManager } from '../Manager';
2
- interface ToolsProps {
3
- manager: CreeveyManager;
4
- }
5
- export declare const Tools: ({ manager }: ToolsProps) => JSX.Element | null;
6
- export {};
1
+ import { CreeveyManager } from '../Manager';
2
+ interface ToolsProps {
3
+ manager: CreeveyManager;
4
+ }
5
+ export declare const Tools: ({ manager }: ToolsProps) => JSX.Element | null;
6
+ export {};
@@ -1 +1 @@
1
- export declare const decorators: import("@storybook/addons").MakeDecoratorResult[];
1
+ export declare const decorators: import("@storybook/addons").MakeDecoratorResult[];
@@ -0,0 +1,2 @@
1
+ export * from './withCreevey';
2
+ export * from './readyForCapture';
@@ -1,22 +1,23 @@
1
- /// <reference types="webpack-dev-server" />
2
- import { Configuration } from 'webpack';
3
- export declare function config(entry?: string[]): string[];
4
- export declare function managerEntries(entry?: string[]): string[];
5
- declare global {
6
- const __CREEVEY_SERVER_PORT__: number;
7
- const __CREEVEY_CLIENT_PORT__: number | null;
8
- }
9
- export interface CreeveyAddonOptions {
10
- creeveyConfigPath?: string;
11
- creeveyPreExtract?: string;
12
- creeveyPort?: number;
13
- clientPort?: number;
14
- configType: string;
15
- configDir: string;
16
- outputDir: string;
17
- skipExtract?: boolean;
18
- presets?: {
19
- apply: <T>(preset: string) => Promise<T | undefined>;
20
- };
21
- }
22
- export declare function managerWebpack(config: Configuration, options: CreeveyAddonOptions): Promise<Configuration>;
1
+ import { Configuration } from 'webpack';
2
+ export declare function config(entry?: string[]): string[];
3
+ export declare function managerEntries(entry?: string[]): string[];
4
+ declare global {
5
+ const __CREEVEY_SERVER_HOST__: string;
6
+ const __CREEVEY_SERVER_PORT__: number;
7
+ const __CREEVEY_CLIENT_PORT__: number | null;
8
+ }
9
+ export interface CreeveyAddonOptions {
10
+ creeveyConfigPath?: string;
11
+ creeveyPreExtract?: string;
12
+ creeveyHost?: string;
13
+ creeveyPort?: number;
14
+ clientPort?: number;
15
+ configType: string;
16
+ configDir: string;
17
+ outputDir: string;
18
+ skipExtract?: boolean;
19
+ presets?: {
20
+ apply: <T>(preset: string) => Promise<T | undefined>;
21
+ };
22
+ }
23
+ export declare function managerWebpack(config: Configuration, options: CreeveyAddonOptions): Promise<Configuration>;
@@ -0,0 +1,10 @@
1
+ import type { Configuration } from 'webpack';
2
+ import { PluginItem } from '@babel/core';
3
+ interface BabelOptions {
4
+ extends: string | null;
5
+ presets: PluginItem[] | null;
6
+ }
7
+ export declare const babel: (config: BabelOptions) => BabelOptions;
8
+ export declare const managerWebpack: (webpackConfig?: Configuration) => Configuration;
9
+ export declare const webpack: (webpackConfig?: Configuration) => Configuration;
10
+ export {};
@@ -0,0 +1,6 @@
1
+ declare global {
2
+ interface Window {
3
+ __CREEVEY_SET_READY_FOR_CAPTURE__?: () => void;
4
+ }
5
+ }
6
+ export declare function readyForCapture(): void;
@@ -1,3 +1,3 @@
1
- import { API } from '@storybook/api';
2
- export declare const ADDON_ID = "creevey";
3
- export declare function registerCreeveyPanels(storybookApi: API): Promise<void>;
1
+ import { API } from '@storybook/api';
2
+ export declare const ADDON_ID = "creevey";
3
+ export declare function registerCreeveyPanels(storybookApi: API): Promise<void>;
@@ -1,6 +1,3 @@
1
- import { Parameters } from '@storybook/api';
2
- import { SetStoriesPayload } from '@storybook/api/dist/ts3.9/lib/stories';
3
- import { StoriesRaw, TestStatus } from '../../types';
4
- export declare function getEmojiByTestStatus(status: TestStatus | undefined, skip?: string | boolean): string;
5
- export declare const combineParameters: (...parameterSets: Parameters[]) => Parameters;
6
- export declare const denormalizeStoryParameters: ({ globalParameters, kindParameters, stories, }: SetStoriesPayload) => StoriesRaw;
1
+ import { TestStatus } from '../../types';
2
+ export declare function getEmojiByTestStatus(status: TestStatus | undefined, skip?: string | boolean): string;
3
+ export declare const isInternetExplorer: boolean;
@@ -1,13 +1,24 @@
1
- import { MakeDecoratorResult, Channel } from '@storybook/addons';
2
- import { StorybookGlobals } from '../../types';
3
- declare global {
4
- interface Window {
5
- __CREEVEY_SELECT_STORY__: (storyId: string, kind: string, name: string, shouldWaitForReady: boolean, callback: (error?: string) => void) => void;
6
- __CREEVEY_UPDATE_GLOBALS__: (globals: StorybookGlobals) => void;
7
- __CREEVEY_INSERT_IGNORE_STYLES__: (ignoreElements: string[]) => HTMLStyleElement;
8
- __CREEVEY_REMOVE_IGNORE_STYLES__: (ignoreStyles: HTMLStyleElement) => void;
9
- __CREEVEY_SET_READY_FOR_CAPTURE__?: () => void;
10
- __STORYBOOK_ADDONS_CHANNEL__: Channel;
11
- }
12
- }
13
- export declare function withCreevey(): MakeDecoratorResult;
1
+ import type { PreviewWeb } from '@storybook/preview-web';
2
+ import type { AnyFramework } from '@storybook/csf';
3
+ import type { StoryStore } from '@storybook/client-api';
4
+ import { MakeDecoratorResult, Channel } from '@storybook/addons';
5
+ import { CaptureOptions, StoriesRaw, StorybookGlobals } from '../../types';
6
+ declare global {
7
+ interface Window {
8
+ __CREEVEY_SERVER_HOST__: string;
9
+ __CREEVEY_SERVER_PORT__: number;
10
+ __CREEVEY_WORKER_ID__: number;
11
+ __CREEVEY_GET_STORIES__: () => Promise<StoriesRaw | void>;
12
+ __CREEVEY_SELECT_STORY__: (storyId: string, kind: string, name: string, shouldWaitForReady: boolean, callback: (response: [error?: string | null, isCaptureCalled?: boolean]) => void) => Promise<void>;
13
+ __CREEVEY_UPDATE_GLOBALS__: (globals: StorybookGlobals) => void;
14
+ __CREEVEY_INSERT_IGNORE_STYLES__: (ignoreElements: string[]) => HTMLStyleElement;
15
+ __CREEVEY_REMOVE_IGNORE_STYLES__: (ignoreStyles: HTMLStyleElement) => void;
16
+ __CREEVEY_HAS_PLAY_COMPLETED_YET__: (callback: (isPlayCompleted: boolean) => void) => void;
17
+ __CREEVEY_SET_READY_FOR_CAPTURE__?: () => void;
18
+ __STORYBOOK_ADDONS_CHANNEL__: Channel;
19
+ __STORYBOOK_STORY_STORE__: StoryStore<AnyFramework>;
20
+ __STORYBOOK_PREVIEW__: PreviewWeb<AnyFramework>;
21
+ }
22
+ }
23
+ export declare function withCreevey(): MakeDecoratorResult;
24
+ export declare function capture(options?: CaptureOptions): Promise<void>;
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const BlendView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
1
+ import React from 'react';
2
+ import { ViewPropsWithTheme } from './ImagesView';
3
+ export declare const BlendView: React.FC<import("@storybook/theming").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,25 +1,24 @@
1
- /// <reference types="react" />
2
- import { Images, ImagesViewMode } from '../../../../types';
3
- import { Theme } from '@storybook/theming';
4
- export declare const themeBorderColors: {
5
- actual: string;
6
- expect: string;
7
- diff: string;
8
- };
9
- export declare function getBorderColor(theme: Theme, color: string): string;
10
- interface ViewProps {
11
- actual: string;
12
- diff: string;
13
- expect: string;
14
- }
15
- export interface ViewPropsWithTheme extends ViewProps {
16
- theme: Theme;
17
- }
18
- interface ImagesViewProps {
19
- url: string;
20
- image: Images;
21
- canApprove: boolean;
22
- mode: ImagesViewMode;
23
- }
24
- export declare function ImagesView({ url, image, canApprove, mode }: ImagesViewProps): JSX.Element;
25
- export {};
1
+ import { Images, ImagesViewMode } from '../../../../types';
2
+ import { Theme } from '@storybook/theming';
3
+ export declare const themeBorderColors: {
4
+ actual: string;
5
+ expect: string;
6
+ diff: string;
7
+ };
8
+ export declare function getBorderColor(theme: Theme, color: string): string;
9
+ interface ViewProps {
10
+ actual: string;
11
+ diff: string;
12
+ expect: string;
13
+ }
14
+ export interface ViewPropsWithTheme extends ViewProps {
15
+ theme: Theme;
16
+ }
17
+ interface ImagesViewProps {
18
+ url: string;
19
+ image: Images;
20
+ canApprove: boolean;
21
+ mode: ImagesViewMode;
22
+ }
23
+ export declare function ImagesView({ url, image, canApprove, mode }: ImagesViewProps): JSX.Element;
24
+ export {};
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const SideBySideView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
1
+ import React from 'react';
2
+ import { ViewPropsWithTheme } from './ImagesView';
3
+ export declare const SideBySideView: React.FC<import("@storybook/theming").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const SlideView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
1
+ import React from 'react';
2
+ import { ViewPropsWithTheme } from './ImagesView';
3
+ export declare const SlideView: React.FC<import("@storybook/theming").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const SwapView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
1
+ import React from 'react';
2
+ import { ViewPropsWithTheme } from './ImagesView';
3
+ export declare const SwapView: React.FC<import("@storybook/theming").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,5 +1,5 @@
1
- export { ImagesView } from './ImagesView';
2
- export { BlendView } from './BlendView';
3
- export { SideBySideView } from './SideBySideView';
4
- export { SlideView } from './SlideView';
5
- export { SwapView } from './SwapView';
1
+ export { ImagesView } from './ImagesView';
2
+ export { BlendView } from './BlendView';
3
+ export { SideBySideView } from './SideBySideView';
4
+ export { SlideView } from './SlideView';
5
+ export { SwapView } from './SwapView';
@@ -1,9 +1,8 @@
1
- /// <reference types="react" />
2
- export interface PageFooterProps {
3
- canApprove: boolean;
4
- retriesCount: number;
5
- retry: number;
6
- onRetryChange: (retry: number) => void;
7
- onApprove: () => void;
8
- }
9
- export declare function PageFooter({ canApprove, retriesCount, retry, onRetryChange, onApprove, }: PageFooterProps): JSX.Element;
1
+ export interface PageFooterProps {
2
+ canApprove: boolean;
3
+ retriesCount: number;
4
+ retry: number;
5
+ onRetryChange: (retry: number) => void;
6
+ onApprove: () => void;
7
+ }
8
+ export declare function PageFooter({ canApprove, retriesCount, retry, onRetryChange, onApprove, }: PageFooterProps): JSX.Element;
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
- export interface PagingProps {
3
- activePage: number;
4
- onPageChange: (pageNumber: number) => void;
5
- pagesCount: number;
6
- }
7
- export declare type ItemType = number | '.' | 'forward';
8
- export declare function Paging(props: PagingProps): JSX.Element;
1
+ export interface PagingProps {
2
+ activePage: number;
3
+ onPageChange: (pageNumber: number) => void;
4
+ pagesCount: number;
5
+ }
6
+ export declare type ItemType = number | '.' | 'forward';
7
+ export declare function Paging(props: PagingProps): JSX.Element;
@@ -1,12 +1,12 @@
1
- import React from 'react';
2
- import { Theme } from '@storybook/theming';
3
- interface ImageSwapProps {
4
- url: string;
5
- isActive: boolean;
6
- onClick: (imageName: string) => void;
7
- imageName: string;
8
- theme: Theme;
9
- error?: boolean;
10
- }
11
- export declare const ImagePreview: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ImageSwapProps, "theme">>;
12
- export {};
1
+ import React from 'react';
2
+ import { Theme } from '@storybook/theming';
3
+ interface ImageSwapProps {
4
+ url: string;
5
+ isActive: boolean;
6
+ onClick: (imageName: string) => void;
7
+ imageName: string;
8
+ theme: Theme;
9
+ error?: boolean;
10
+ }
11
+ export declare const ImagePreview: React.FC<import("@storybook/theming").AddOptionalTo<ImageSwapProps, "theme">>;
12
+ export {};
@@ -1,17 +1,16 @@
1
- /// <reference types="react" />
2
- import { ImagesViewMode, Images } from '../../../../types';
3
- interface PageHeaderProps {
4
- title: string[];
5
- images?: Partial<{
6
- [name: string]: Images;
7
- }>;
8
- errorMessage?: string | null;
9
- showViewModes: boolean;
10
- showTitle?: boolean;
11
- viewMode: ImagesViewMode;
12
- imagesWithError?: string[];
13
- onImageChange: (name: string) => void;
14
- onViewModeChange: (viewMode: ImagesViewMode) => void;
15
- }
16
- export declare function PageHeader({ title, images, errorMessage, showViewModes, showTitle, viewMode, imagesWithError, onImageChange, onViewModeChange, }: PageHeaderProps): JSX.Element | null;
17
- export {};
1
+ import { ImagesViewMode, Images } from '../../../../types';
2
+ interface PageHeaderProps {
3
+ title: string[];
4
+ images?: Partial<{
5
+ [name: string]: Images;
6
+ }>;
7
+ errorMessage?: string | null;
8
+ showViewModes: boolean;
9
+ showTitle?: boolean;
10
+ viewMode: ImagesViewMode;
11
+ imagesWithError?: string[];
12
+ onImageChange: (name: string) => void;
13
+ onViewModeChange: (viewMode: ImagesViewMode) => void;
14
+ }
15
+ export declare function PageHeader({ title, images, errorMessage, showViewModes, showTitle, viewMode, imagesWithError, onImageChange, onViewModeChange, }: PageHeaderProps): JSX.Element | null;
16
+ export {};
@@ -1,18 +1,18 @@
1
- import React from 'react';
2
- import { Theme } from '@storybook/theming';
3
- import { TestResult } from '../../../types';
4
- interface TestResultsProps {
5
- id: string;
6
- path: string[];
7
- results?: TestResult[];
8
- approved?: Partial<{
9
- [image: string]: number;
10
- }>;
11
- showTitle?: boolean;
12
- onImageApprove: (id: string, retry: number, image: string) => void;
13
- theme: Theme;
14
- height?: string;
15
- }
16
- export declare function ResultsPageInternal({ id, path, results, approved, theme, onImageApprove, showTitle, height, }: TestResultsProps): JSX.Element;
17
- export declare const ResultsPage: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<TestResultsProps, "theme">>;
18
- export {};
1
+ import React from 'react';
2
+ import { Theme } from '@storybook/theming';
3
+ import { TestResult } from '../../../types';
4
+ interface TestResultsProps {
5
+ id: string;
6
+ path: string[];
7
+ results?: TestResult[];
8
+ approved?: Partial<{
9
+ [image: string]: number;
10
+ }>;
11
+ showTitle?: boolean;
12
+ onImageApprove: (id: string, retry: number, image: string) => void;
13
+ theme: Theme;
14
+ height?: string;
15
+ }
16
+ export declare function ResultsPageInternal({ id, path, results, approved, theme, onImageApprove, showTitle, height, }: TestResultsProps): JSX.Element;
17
+ export declare const ResultsPage: React.FC<import("@storybook/theming").AddOptionalTo<TestResultsProps, "theme">>;
18
+ export {};
@@ -1,9 +1,9 @@
1
- import { CreeveyUpdate, CreeveyStatus } from '../../types';
2
- export interface CreeveyClientApi {
3
- start: (ids: string[]) => void;
4
- stop: () => void;
5
- approve: (id: string, retry: number, image: string) => void;
6
- onUpdate: (fn: (update: CreeveyUpdate) => void) => () => void;
7
- readonly status: Promise<CreeveyStatus>;
8
- }
9
- export declare function initCreeveyClientApi(): Promise<CreeveyClientApi>;
1
+ import { CreeveyUpdate, CreeveyStatus } from '../../types';
2
+ export interface CreeveyClientApi {
3
+ start: (ids: string[]) => void;
4
+ stop: () => void;
5
+ approve: (id: string, retry: number, image: string) => void;
6
+ onUpdate: (fn: (update: CreeveyUpdate) => void) => () => void;
7
+ readonly status: Promise<CreeveyStatus>;
8
+ }
9
+ export declare function initCreeveyClientApi(): Promise<CreeveyClientApi>;