creevey 0.9.0-beta.2 → 0.9.0-beta.20

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 (226) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarnrc.yml +1 -0
  3. package/CHANGELOG.md +51 -0
  4. package/README.md +9 -1
  5. package/addon/README.md +3 -0
  6. package/addon/package.json +5 -0
  7. package/docs/config.md +29 -26
  8. package/jest.config.js +6 -0
  9. package/lib/cjs/cli.js +1 -0
  10. package/lib/cjs/client/addon/Manager.js +170 -390
  11. package/lib/cjs/client/addon/components/Addon.js +17 -45
  12. package/lib/cjs/client/addon/components/Icons.js +12 -14
  13. package/lib/cjs/client/addon/components/Panel.js +21 -30
  14. package/lib/cjs/client/addon/components/TestSelect.js +20 -31
  15. package/lib/cjs/client/addon/components/Tools.js +35 -65
  16. package/lib/cjs/client/addon/decorator.js +1 -4
  17. package/lib/cjs/client/addon/index.js +27 -0
  18. package/lib/cjs/client/addon/preset.js +3 -76
  19. package/lib/cjs/client/addon/preview.js +11 -0
  20. package/lib/cjs/client/addon/readyForCapture.js +1 -4
  21. package/lib/cjs/client/addon/register.js +43 -82
  22. package/lib/cjs/client/addon/utils.js +4 -8
  23. package/lib/cjs/client/addon/withCreevey.js +145 -404
  24. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +25 -35
  25. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +29 -41
  26. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +46 -83
  27. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +39 -67
  28. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +26 -57
  29. package/lib/cjs/client/shared/components/ImagesView/index.js +9 -14
  30. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +13 -16
  31. package/lib/cjs/client/shared/components/PageFooter/Paging.js +16 -37
  32. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +42 -34
  33. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +40 -84
  34. package/lib/cjs/client/shared/components/ResultsPage.js +42 -99
  35. package/lib/cjs/client/shared/creeveyClientApi.js +56 -93
  36. package/lib/cjs/client/shared/helpers.js +149 -274
  37. package/lib/cjs/client/shared/viewMode.js +5 -9
  38. package/lib/cjs/client/web/192.js +1 -0
  39. package/lib/cjs/client/web/632.js +43 -0
  40. package/lib/cjs/client/web/794.js +1 -0
  41. package/lib/cjs/client/web/main.js +79 -38
  42. package/lib/cjs/client/web/main.js.LICENSE.txt +34 -0
  43. package/lib/cjs/creevey.js +15 -30
  44. package/lib/cjs/index.js +0 -15
  45. package/lib/cjs/server/config.js +16 -36
  46. package/lib/cjs/server/docker.js +8 -34
  47. package/lib/cjs/server/index.js +9 -34
  48. package/lib/cjs/server/logger.js +7 -20
  49. package/lib/cjs/server/master/api.js +1 -14
  50. package/lib/cjs/server/master/index.js +25 -49
  51. package/lib/cjs/server/master/master.js +6 -21
  52. package/lib/cjs/server/master/pool.js +10 -53
  53. package/lib/cjs/server/master/runner.js +65 -105
  54. package/lib/cjs/server/master/server.js +10 -29
  55. package/lib/cjs/server/messages.js +14 -62
  56. package/lib/cjs/server/selenium/browser.js +149 -185
  57. package/lib/cjs/server/selenium/index.js +0 -4
  58. package/lib/cjs/server/selenium/selenoid.js +18 -44
  59. package/lib/cjs/server/stories.js +35 -57
  60. package/lib/cjs/server/storybook/providers/browser.js +15 -29
  61. package/lib/cjs/server/storybook/providers/hybrid.js +16 -37
  62. package/lib/cjs/server/telemetry.js +167 -0
  63. package/lib/cjs/server/testsFiles/parser.js +3 -19
  64. package/lib/cjs/server/testsFiles/register.js +8 -14
  65. package/lib/cjs/server/update.js +4 -25
  66. package/lib/cjs/server/utils.js +35 -76
  67. package/lib/cjs/server/worker/chai-image.js +1 -27
  68. package/lib/cjs/server/worker/helpers.js +2 -12
  69. package/lib/cjs/server/worker/index.js +1 -3
  70. package/lib/cjs/server/worker/reporter.js +16 -43
  71. package/lib/cjs/server/worker/worker.js +32 -72
  72. package/lib/cjs/shared/index.js +87 -0
  73. package/lib/cjs/shared/serializeRegExp.js +34 -0
  74. package/lib/cjs/types.js +11 -20
  75. package/lib/esm/cli.js +1 -1
  76. package/lib/esm/client/addon/Manager.js +170 -381
  77. package/lib/esm/client/addon/components/Addon.js +15 -34
  78. package/lib/esm/client/addon/components/Icons.js +10 -6
  79. package/lib/esm/client/addon/components/Panel.js +20 -18
  80. package/lib/esm/client/addon/components/TestSelect.js +19 -23
  81. package/lib/esm/client/addon/components/Tools.js +33 -49
  82. package/lib/esm/client/addon/decorator.js +1 -1
  83. package/lib/esm/client/addon/index.js +2 -0
  84. package/lib/esm/client/addon/preset.js +2 -56
  85. package/lib/esm/client/addon/preview.js +5 -0
  86. package/lib/esm/client/addon/readyForCapture.js +1 -3
  87. package/lib/esm/client/addon/register.js +41 -67
  88. package/lib/esm/client/addon/utils.js +3 -7
  89. package/lib/esm/client/addon/withCreevey.js +142 -388
  90. package/lib/esm/client/shared/components/ImagesView/BlendView.js +22 -18
  91. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +27 -25
  92. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +43 -63
  93. package/lib/esm/client/shared/components/ImagesView/SlideView.js +36 -47
  94. package/lib/esm/client/shared/components/ImagesView/SwapView.js +23 -40
  95. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +12 -8
  96. package/lib/esm/client/shared/components/PageFooter/Paging.js +15 -29
  97. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +40 -25
  98. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +38 -66
  99. package/lib/esm/client/shared/components/ResultsPage.js +39 -75
  100. package/lib/esm/client/shared/creeveyClientApi.js +56 -90
  101. package/lib/esm/client/shared/helpers.js +133 -230
  102. package/lib/esm/client/shared/viewMode.js +4 -4
  103. package/lib/esm/client/web/192.js +1 -0
  104. package/lib/esm/client/web/632.js +43 -0
  105. package/lib/esm/client/web/794.js +1 -0
  106. package/lib/esm/client/web/index.html +19 -0
  107. package/lib/esm/client/web/main.js +79 -0
  108. package/lib/esm/client/web/main.js.LICENSE.txt +34 -0
  109. package/lib/esm/creevey.js +13 -16
  110. package/lib/esm/index.js +1 -4
  111. package/lib/esm/server/config.js +9 -16
  112. package/lib/esm/server/docker.js +6 -14
  113. package/lib/esm/server/index.js +8 -22
  114. package/lib/esm/server/logger.js +0 -1
  115. package/lib/esm/server/master/api.js +0 -9
  116. package/lib/esm/server/master/index.js +25 -35
  117. package/lib/esm/server/master/master.js +2 -7
  118. package/lib/esm/server/master/pool.js +8 -41
  119. package/lib/esm/server/master/runner.js +64 -90
  120. package/lib/esm/server/master/server.js +9 -11
  121. package/lib/esm/server/messages.js +8 -42
  122. package/lib/esm/server/selenium/browser.js +147 -163
  123. package/lib/esm/server/selenium/selenoid.js +16 -27
  124. package/lib/esm/server/stories.js +34 -46
  125. package/lib/esm/server/storybook/providers/browser.js +12 -17
  126. package/lib/esm/server/storybook/providers/hybrid.js +11 -22
  127. package/lib/esm/server/telemetry.js +160 -0
  128. package/lib/esm/server/testsFiles/parser.js +0 -6
  129. package/lib/esm/server/testsFiles/register.js +6 -7
  130. package/lib/esm/server/update.js +1 -13
  131. package/lib/esm/server/utils.js +20 -41
  132. package/lib/esm/server/worker/chai-image.js +0 -21
  133. package/lib/esm/server/worker/helpers.js +2 -9
  134. package/lib/esm/server/worker/reporter.js +15 -29
  135. package/lib/esm/server/worker/worker.js +31 -48
  136. package/lib/esm/shared/index.js +77 -0
  137. package/lib/esm/shared/serializeRegExp.js +24 -0
  138. package/lib/esm/types.js +5 -1
  139. package/lib/types/client/addon/Manager.d.ts +3 -3
  140. package/lib/types/client/addon/components/Addon.d.ts +1 -0
  141. package/lib/types/client/addon/components/Icons.d.ts +1 -0
  142. package/lib/types/client/addon/components/Panel.d.ts +1 -0
  143. package/lib/types/client/addon/components/Tools.d.ts +1 -0
  144. package/lib/types/client/addon/decorator.d.ts +1 -1
  145. package/lib/types/client/addon/index.d.ts +2 -0
  146. package/lib/types/client/addon/preset.d.ts +2 -24
  147. package/lib/types/client/addon/preview.d.ts +4 -0
  148. package/lib/types/client/addon/utils.d.ts +1 -0
  149. package/lib/types/client/addon/withCreevey.d.ts +4 -3
  150. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
  151. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -1
  152. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -1
  153. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -1
  154. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  155. package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
  156. package/lib/types/client/web/CreeveyLoader.d.ts +1 -1
  157. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +6 -3
  158. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
  159. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
  160. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +3 -1
  161. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -1
  162. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
  163. package/lib/types/client/web/KeyboardEventsContext.d.ts +4 -2
  164. package/lib/types/index.d.ts +4 -1
  165. package/lib/types/server/logger.d.ts +6 -2
  166. package/lib/types/server/messages.d.ts +14 -12
  167. package/lib/types/server/selenium/browser.d.ts +5 -3
  168. package/lib/types/server/storybook/providers/browser.d.ts +2 -4
  169. package/lib/types/server/storybook/providers/hybrid.d.ts +2 -4
  170. package/lib/types/server/telemetry.d.ts +2 -0
  171. package/lib/types/server/utils.d.ts +5 -1
  172. package/lib/types/shared/index.d.ts +7 -0
  173. package/lib/types/shared/serializeRegExp.d.ts +9 -0
  174. package/lib/types/types.d.ts +29 -36
  175. package/package.json +132 -133
  176. package/types/global.d.ts +5 -0
  177. package/lib/cjs/client/web/1.js +0 -13
  178. package/lib/cjs/client/web/2.js +0 -1
  179. package/lib/cjs/server/extract.js +0 -50
  180. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  181. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  182. package/lib/cjs/server/loaders/babel/register.js +0 -126
  183. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  184. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  185. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  186. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  187. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  188. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  189. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  190. package/lib/cjs/server/storybook/entry.js +0 -68
  191. package/lib/cjs/server/storybook/helpers.js +0 -165
  192. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  193. package/lib/cjs/shared.js +0 -124
  194. package/lib/esm/server/extract.js +0 -34
  195. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  196. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  197. package/lib/esm/server/loaders/babel/register.js +0 -105
  198. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  199. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  200. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  201. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  202. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  203. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  204. package/lib/esm/server/loaders/webpack/start.js +0 -27
  205. package/lib/esm/server/storybook/entry.js +0 -44
  206. package/lib/esm/server/storybook/helpers.js +0 -106
  207. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  208. package/lib/esm/shared.js +0 -93
  209. package/lib/types/server/extract.d.ts +0 -2
  210. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  211. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  212. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  213. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  214. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  215. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  216. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -2
  217. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  218. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  219. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  220. package/lib/types/server/storybook/entry.d.ts +0 -18
  221. package/lib/types/server/storybook/helpers.d.ts +0 -24
  222. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  223. package/lib/types/shared.d.ts +0 -16
  224. package/preset.js +0 -9
  225. package/storybook-static/stories.json +0 -21
  226. package/types/mdx.d.ts +0 -6
@@ -1,14 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="chai" />
3
- import type { API as StorybookAPI } from '@storybook/api';
4
- import type { DecoratorFunction } from '@storybook/addons';
3
+ import type { DecoratorFunction } from '@storybook/csf';
5
4
  import type { IKey } from 'selenium-webdriver/lib/input';
6
5
  import type { Worker as ClusterWorker } from 'cluster';
7
6
  import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
8
7
  import type Pixelmatch from 'pixelmatch';
9
8
  import type { Context } from 'mocha';
9
+ import { StoryContextForEnhancers } from '@storybook/csf';
10
10
  export declare type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
11
11
  export declare type SetStoriesData = {
12
+ v?: number;
12
13
  globalParameters: {
13
14
  creevey?: CreeveyStoryParams;
14
15
  };
@@ -20,16 +21,14 @@ export declare type SetStoriesData = {
20
21
  }>;
21
22
  stories: StoriesRaw;
22
23
  };
23
- export declare type StoriesRaw = StorybookAPI extends {
24
- setStories: (stories: infer SS) => void;
25
- } ? SS : never;
24
+ export declare type StoriesRaw = Record<string, StoryContextForEnhancers>;
26
25
  export declare type StoryInput = StoriesRaw extends {
27
26
  [id: string]: infer S;
28
27
  } ? S : never;
29
- export interface StoryMeta<StoryFnReturnType = unknown> {
28
+ export interface StoryMeta {
30
29
  title: string;
31
30
  component?: unknown;
32
- decorators?: DecoratorFunction<StoryFnReturnType>[];
31
+ decorators?: DecoratorFunction[];
33
32
  parameters?: {
34
33
  creevey?: CreeveyStoryParams;
35
34
  [name: string]: unknown;
@@ -52,14 +51,14 @@ export interface CSFStory<StoryFnReturnType = unknown> {
52
51
  */
53
52
  story?: {
54
53
  name?: string;
55
- decorators?: DecoratorFunction<StoryFnReturnType>[];
54
+ decorators?: DecoratorFunction[];
56
55
  parameters?: {
57
56
  creevey?: CreeveyStoryParams;
58
57
  [name: string]: unknown;
59
58
  };
60
59
  };
61
60
  storyName?: string;
62
- decorators?: DecoratorFunction<StoryFnReturnType>[];
61
+ decorators?: DecoratorFunction[];
63
62
  parameters?: {
64
63
  creevey?: CreeveyStoryParams;
65
64
  [name: string]: unknown;
@@ -73,6 +72,11 @@ export interface CreeveyStory {
73
72
  }
74
73
  export interface Capabilities {
75
74
  browserName: string;
75
+ browserVersion?: string;
76
+ platformName?: string;
77
+ /**
78
+ * @deprecated use `browserVersion` instead
79
+ */
76
80
  version?: string;
77
81
  [prop: string]: unknown;
78
82
  }
@@ -87,7 +91,7 @@ export declare type BrowserConfig = Capabilities & {
87
91
  _storybookGlobals?: StorybookGlobals;
88
92
  /**
89
93
  * Specify custom docker image. Used only with `useDocker == true`
90
- * @default `selenoid/${browserName}:${version ?? 'latest'}`
94
+ * @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
91
95
  */
92
96
  dockerImage?: string;
93
97
  /**
@@ -141,11 +145,6 @@ export interface Config {
141
145
  * @default path.join(process.cwd(), './report')
142
146
  */
143
147
  reportDir: string;
144
- /**
145
- * Absolute path to storybook config directory
146
- * @default path.join(process.cwd(), './.storybook')
147
- */
148
- storybookDir: string;
149
148
  /**
150
149
  * How much test would be retried
151
150
  * @default 0
@@ -172,18 +171,6 @@ export interface Config {
172
171
  * Works only with `useDocker == false`
173
172
  */
174
173
  selenoidPath?: string;
175
- /**
176
- * Creevey extract tests by using babel transformations
177
- * and load stories to nodejs directly.
178
- * In some edge cases it may fail to load tests.
179
- * In that case you can enable this option.
180
- * Creevey uses Storybook webpack config to build nodejs bundle with tests.
181
- * But it slightly slower and doesn't work if you use custom bundler for Storybook
182
- *
183
- * Affects only for Storybook 6.2+
184
- * @default false
185
- */
186
- useWebpackToExtractTests: boolean;
187
174
  /**
188
175
  * Creevey has two built-in stories providers.
189
176
  *
@@ -208,11 +195,7 @@ export interface Config {
208
195
  * }
209
196
  * ```
210
197
  */
211
- storiesProvider: (config: Config, options: {
212
- watch: boolean;
213
- debug: boolean;
214
- port: number;
215
- }, storiesListener: (stories: Map<string, StoryInput[]>) => void) => Promise<StoriesRaw>;
198
+ storiesProvider: StoriesProvider;
216
199
  /**
217
200
  * Define custom babel options for load stories transformation
218
201
  */
@@ -249,21 +232,32 @@ export interface Config {
249
232
  testsRegex?: RegExp;
250
233
  testsDir?: string;
251
234
  tsConfig?: string;
235
+ /**
236
+ * Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
237
+ * It's being sent only for projects from git.skbkontur.ru
238
+ * @default false
239
+ */
240
+ disableTelemetry?: boolean;
241
+ }
242
+ export interface StoriesProvider<T = any> {
243
+ (config: Config, options: T, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
244
+ providerName?: string;
252
245
  }
253
246
  export declare type CreeveyConfig = Partial<Config>;
254
247
  export interface Options {
248
+ _: string[];
255
249
  config?: string;
256
250
  port: number;
257
251
  ui: boolean;
258
252
  update: boolean | string;
259
- webpack: boolean;
260
253
  debug: boolean;
261
- extract: boolean | string;
254
+ trace: boolean;
262
255
  tests: boolean;
263
256
  browser?: string;
264
257
  reporter?: string;
265
258
  screenDir?: string;
266
259
  reportDir?: string;
260
+ storybookUrl?: string;
267
261
  saveReport: boolean;
268
262
  failFast?: boolean;
269
263
  }
@@ -402,13 +396,12 @@ export interface CreeveyUpdate {
402
396
  removedTests?: TestMeta[];
403
397
  }
404
398
  export interface SkipOption {
405
- reason?: string;
406
399
  in?: string | string[] | RegExp;
407
400
  kinds?: string | string[] | RegExp;
408
401
  stories?: string | string[] | RegExp;
409
402
  tests?: string | string[] | RegExp;
410
403
  }
411
- export declare type SkipOptions = boolean | string | SkipOption | SkipOption[] | Record<string, SkipOption | SkipOption[]>;
404
+ export declare type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
412
405
  export declare type CreeveyTestFunction = (this: {
413
406
  browser: WebDriver;
414
407
  until: typeof until;
package/package.json CHANGED
@@ -13,9 +13,27 @@
13
13
  "addon",
14
14
  "test"
15
15
  ],
16
- "version": "0.9.0-beta.2",
17
- "bin": {
18
- "creevey": "./lib/cjs/cli.js"
16
+ "version": "0.9.0-beta.20",
17
+ "bin": "./lib/cjs/cli.js",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./lib/types/index.d.ts",
21
+ "default": "./lib/cjs/index.js"
22
+ },
23
+ "./addon": {
24
+ "types": "./lib/types/client/addon/index.d.ts",
25
+ "module": "./lib/esm/client/addon/index.js",
26
+ "default": "./lib/cjs/client/addon/index.js"
27
+ },
28
+ "./preset": {
29
+ "types": "./lib/types/client/addon/preset.js",
30
+ "module": "./lib/esm/client/addon/preset.js",
31
+ "default": "./lib/cjs/client/addon/preset.js"
32
+ },
33
+ "./lib/cjs/client/addon/preview.js": {
34
+ "default": "./lib/cjs/client/addon/preview.js"
35
+ },
36
+ "./package.json": "./package.json"
19
37
  },
20
38
  "main": "lib/cjs/index.js",
21
39
  "module": "lib/esm/index.js",
@@ -29,187 +47,168 @@
29
47
  "scripts": {
30
48
  "commit": "git-cz",
31
49
  "clean": "rimraf lib",
32
- "lint": "run-p --continue-on-error lint:*",
50
+ "lint": "redrun -p \"lint:*\"",
33
51
  "lint:tsc": "tsc --noEmit",
34
52
  "lint:eslint": "eslint --ext .js,.ts,.tsx ./",
35
53
  "lint:prettier": "prettier --check *.{md,json,js,ts} ./**/*.{js,ts,tsx}",
36
- "pretest:e2e": "yarn build && yarn pack -f creevey.tgz",
37
- "bootstrap:storybook": "cd ../storybook && yarn install && yarn bootstrap --core",
38
- "test": "run-p test:*",
39
- "test:unit": "mocha ./tests/{client,server}/**/*.test.ts ./tests/*.test.ts",
40
- "test:e2e": "mocha ./tests/e2e/*.test.ts",
41
- "start": "run-p start:*",
54
+ "test": "jest --config jest.config.js",
55
+ "start": "redrun -p \"start:*\"",
42
56
  "start:client": "webpack-dev-server",
43
- "start:storybook": "start-storybook --ci -p 6006",
57
+ "start:storybook": "storybook dev --ci -p 6006",
44
58
  "start:creevey": "yarn creevey --ui",
45
- "start:creevey:github": "yarn creevey:github --ui",
46
59
  "creevey": "node --require ./scripts/babel-register -- src/cli",
47
60
  "creevey:github": "yarn creevey --config .creevey/github.config.ts",
48
61
  "creevey:gitlab": "yarn creevey --config .creevey/gitlab.config.ts",
49
62
  "creevey:hybrid": "yarn creevey --config .creevey/hybrid.config.ts",
50
- "fix": "run-s fix:*",
63
+ "fix": "redrun \"fix:*\"",
51
64
  "fix:eslint": "eslint --fix ./",
52
65
  "fix:prettier": "prettier --write .",
53
66
  "prebuild": "yarn clean && mkdir lib",
54
- "build": "run-p --continue-on-error build:*",
67
+ "build": "yarn prebuild && redrun -p \"build:*\" && yarn postbuild",
55
68
  "build:types": "tsc --emitDeclarationOnly -p scripts/tsconfig.prod.json",
56
- "build:creevey": "run-p \"build:creevey:* --extensions .ts,.tsx --ignore src/client/web\"",
57
- "build:creevey:cjs": "cross-env BABEL_MODE=cjs babel src --out-dir lib/cjs",
58
- "build:creevey:esm": "cross-env BABEL_MODE=esm babel src --out-dir lib/esm",
59
- "build:client": "webpack --mode production",
60
- "postbuild": "run-p copy:*",
61
- "copy:index": "cpx scripts/dist/types/* lib/types/",
62
- "copy:html": "cpx src/client/web/index.html lib/cjs/client/web",
69
+ "build:creevey:cjs": "cross-env BABEL_MODE=cjs babel src --out-dir lib/cjs --extensions=.ts,.tsx --ignore=src/client/web",
70
+ "build:creevey:esm": "cross-env BABEL_MODE=esm babel src --out-dir lib/esm --extensions=.ts,.tsx --ignore=src/client/web",
71
+ "build:client": "webpack --mode production && cpx src/client/web/index.html lib/cjs/client/web",
72
+ "postbuild": "redrun -p \"copy:*\"",
73
+ "copy:types": "cpx \"scripts/dist/types/*\" lib/types",
74
+ "copy:web": "cpx \"lib/cjs/client/web/*\" lib/esm/client/web",
63
75
  "version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",
64
- "build-storybook": "build-storybook",
76
+ "build-storybook": "storybook build",
65
77
  "chromatic": "npx chromatic --project-token t3010eknrh",
66
78
  "prepare": "husky install"
67
79
  },
68
80
  "engines": {
69
- "node": ">=10.10"
81
+ "node": ">=18.0"
70
82
  },
71
83
  "dependencies": {
72
- "@babel/code-frame": "^7.12.13",
73
- "@babel/generator": "^7.15.0",
74
- "@babel/helpers": "^7.15.3",
75
- "@babel/parser": "^7.15.3",
76
- "@babel/plugin-transform-runtime": "^7.15.0",
77
- "@babel/preset-env": "^7.15.0",
78
- "@babel/preset-typescript": "^7.15.0",
79
- "@babel/register": "^7.15.3",
80
- "@babel/runtime-corejs3": "^7.15.3",
81
- "@babel/traverse": "^7.15.0",
82
- "@babel/types": "^7.15.0",
83
- "@koa/cors": "^3.2.0",
84
- "@octokit/core": "^3.3.1",
85
- "@storybook/components": "^6.4.19",
86
- "@storybook/csf": "0.0.2--canary.87bc651.0",
87
- "@storybook/testing-library": "^0.0.9",
88
- "@storybook/theming": "^6.4.19",
89
- "@types/chai": "^4.2.15",
90
- "@types/selenium-webdriver": "^4.0.12",
84
+ "@babel/plugin-transform-runtime": "^7.22.0",
85
+ "@babel/preset-env": "^7.22.0",
86
+ "@babel/preset-typescript": "^7.22.0",
87
+ "@babel/register": "^7.22.0",
88
+ "@babel/runtime-corejs3": "^7.22.0",
89
+ "@koa/cors": "^3.3.0",
90
+ "@octokit/core": "^4.0.4",
91
+ "@storybook/components": "^7.6.20",
92
+ "@storybook/core-events": "^7.6.20",
93
+ "@storybook/csf": "^0.1.2",
94
+ "@storybook/manager-api": "^7.6.20",
95
+ "@storybook/preview-api": "^7.6.20",
96
+ "@storybook/theming": "^7.6.20",
97
+ "@types/chai": "^4.3.1",
98
+ "@types/selenium-webdriver": "^4.1.26",
91
99
  "airbnb-js-shims": "^2.2.1",
92
100
  "babel-plugin-tsconfig-paths": "^1.0.3",
93
- "chai": "^4.3.4",
101
+ "chai": "^4.3.6",
94
102
  "chalk": "^4.1.2",
95
- "chokidar": "^3.5.1",
96
- "core-js": "^3.16.3",
97
- "dockerode": "^3.2.1",
98
- "event-source-polyfill": "1.0.25",
103
+ "chokidar": "^3.5.3",
104
+ "core-js": "^3.23.4",
105
+ "dockerode": "^3.3.2",
99
106
  "find-cache-dir": "^3.3.1",
100
107
  "get-tsconfig": "^4.2.0",
101
- "global-jsdom": "8.3.0",
102
- "jsdom": "^16.5.2",
103
- "koa": "^2.13.1",
108
+ "koa": "^2.13.4",
104
109
  "koa-bodyparser": "^4.3.0",
105
110
  "koa-mount": "^4.0.0",
106
111
  "koa-static": "^5.0.0",
107
- "loader-utils": "^2.0.0",
108
112
  "lodash": "^4.17.21",
109
- "loglevel": "^1.7.1",
113
+ "loglevel": "^1.8.0",
110
114
  "loglevel-plugin-prefix": "^0.8.4",
111
- "micromatch": "^4.0.4",
112
- "minimist": "^1.2.5",
113
- "mocha": "~9.1.0",
114
- "null-loader": "^4.0.1",
115
- "ora": "^5.4.0",
116
- "pirates": "^4.0.1",
117
- "pixelmatch": "^5.2.1",
115
+ "micromatch": "^4.0.5",
116
+ "minimist": "^1.2.6",
117
+ "mocha": "~10.0.0",
118
+ "ora": "^5.4.1",
119
+ "pirates": "^4.0.5",
120
+ "pixelmatch": "^5.3.0",
118
121
  "pngjs": "^6.0.0",
119
- "polished": "^4.1.1",
120
- "qs": "^6.10.1",
122
+ "polished": "^4.2.2",
123
+ "qs": "^6.11.0",
121
124
  "regenerator-runtime": "^0.13.7",
122
- "resolve-from": "^5.0.0",
123
- "schema-utils": "^3.0.0",
124
- "selenium-webdriver": "^4.0.0-beta.3",
125
- "shelljs": "^0.8.4",
126
- "ts-node": "^10.9.1",
127
- "tsconfig-paths": "^3.11.0",
128
- "webpack-node-externals": "^3.0.0",
129
- "ws": "^7.4.6"
125
+ "selenium-webdriver": "^4.25.0",
126
+ "shelljs": "^0.8.5",
127
+ "tsconfig-paths": "^4.0.0",
128
+ "uuid": "^10.0.0",
129
+ "ws": "^8.8.0"
130
130
  },
131
131
  "devDependencies": {
132
- "@babel/cli": "^7.13.14",
133
- "@babel/core": "^7.15.0",
134
- "@babel/plugin-proposal-class-properties": "^7.13.0",
135
- "@babel/preset-react": "^7.13.13",
136
- "@mdx-js/mdx": "^1.6.22",
137
- "@storybook/addon-essentials": "^6.4.19",
138
- "@storybook/addon-postcss": "^2.0.0",
139
- "@storybook/addons": "^6.4.19",
140
- "@storybook/api": "^6.4.19",
141
- "@storybook/channels": "^6.4.19",
142
- "@storybook/client-api": "^6.4.19",
143
- "@storybook/client-logger": "^6.4.19",
144
- "@storybook/core": "^6.4.19",
145
- "@storybook/core-client": "^6.4.19",
146
- "@storybook/core-common": "^6.4.19",
147
- "@storybook/core-events": "^6.4.19",
148
- "@storybook/core-server": "^6.4.19",
149
- "@storybook/preview-web": "^6.4.19",
150
- "@storybook/react": "^6.4.19",
151
- "@types/babel__code-frame": "^7.0.2",
152
- "@types/babel__generator": "^7.6.2",
153
- "@types/babel__traverse": "^7.11.1",
154
- "@types/dockerode": "^3.2.3",
132
+ "@babel/cli": "^7.22.0",
133
+ "@babel/core": "^7.22.0",
134
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
135
+ "@babel/preset-react": "^7.22.0",
136
+ "@storybook/addon-essentials": "^7.6.20",
137
+ "@storybook/addon-interactions": "^7.6.20",
138
+ "@storybook/addon-links": "^7.6.20",
139
+ "@storybook/addon-onboarding": "^1.0.10",
140
+ "@storybook/addons": "^7.6.20",
141
+ "@storybook/api": "^7.6.20",
142
+ "@storybook/channels": "^7.6.20",
143
+ "@storybook/client-api": "^7.6.20",
144
+ "@storybook/client-logger": "^7.6.20",
145
+ "@storybook/core-client": "^7.6.20",
146
+ "@storybook/core-common": "^7.6.20",
147
+ "@storybook/core-server": "^7.6.20",
148
+ "@storybook/preview-web": "^7.6.20",
149
+ "@storybook/react": "^7.6.20",
150
+ "@storybook/react-webpack5": "^7.6.20",
151
+ "@storybook/testing-library": "^0.2.2",
152
+ "@types/cpx": "^1",
153
+ "@types/dockerode": "^3.3.9",
155
154
  "@types/find-cache-dir": "^3.2.0",
156
155
  "@types/koa": "^2.13.1",
157
156
  "@types/koa-bodyparser": "^4.3.7",
158
157
  "@types/koa-mount": "^4.0.1",
159
158
  "@types/koa-static": "^4.0.1",
160
- "@types/koa__cors": "^3.1.1",
161
- "@types/loader-utils": "^2.0.2",
162
- "@types/lodash": "^4.14.172",
159
+ "@types/koa__cors": "^3.3.0",
160
+ "@types/lodash": "^4.14.182",
163
161
  "@types/micromatch": "^4.0.1",
164
162
  "@types/minimist": "^1.2.1",
165
- "@types/mocha": "^9.0.0",
166
- "@types/node": "^14.14.37",
163
+ "@types/mocha": "^9.1.1",
164
+ "@types/node": "^18.19.50",
167
165
  "@types/pixelmatch": "^5.2.2",
168
166
  "@types/pngjs": "^6.0.0",
169
167
  "@types/qs": "^6.9.6",
170
168
  "@types/react": "^17.0.19",
171
169
  "@types/react-dom": "^17.0.3",
172
- "@types/resize-observer-browser": "^0.1.5",
173
- "@types/shelljs": "^0.8.8",
174
- "@types/tmp": "^0.2.0",
175
- "@types/webpack": "^4.41.26",
176
- "@types/webpack-dev-server": "^3.11.3",
177
- "@types/webpack-node-externals": "^2.5.1",
178
- "@types/ws": "^7.4.0",
179
- "@typescript-eslint/eslint-plugin": "^4.29.3",
180
- "@typescript-eslint/parser": "^4.29.3",
181
- "babel-loader": "^8.2.1",
182
- "browserstack-local": "^1.4.8",
183
- "chromatic": "^5.7.0",
184
- "conventional-changelog-cli": "^2.1.1",
185
- "cpx": "1.5.0",
170
+ "@types/resize-observer-browser": "^0.1.7",
171
+ "@types/shelljs": "^0.8.11",
172
+ "@types/tmp": "^0.2.3",
173
+ "@types/uuid": "^10",
174
+ "@types/webpack": "^5.28.0",
175
+ "@types/ws": "^8.5.3",
176
+ "@typescript-eslint/eslint-plugin": "^5.30.5",
177
+ "@typescript-eslint/parser": "^5.30.5",
178
+ "babel-loader": "^8.2.5",
179
+ "browserstack-local": "^1.5.1",
180
+ "chromatic": "^6.7.0",
181
+ "conventional-changelog-cli": "^2.2.2",
182
+ "cpx": "^1.5.0",
186
183
  "cross-env": "7.0.3",
187
- "dotenv": "^10.0.0",
188
- "eslint": "^7.32.0",
189
- "eslint-config-prettier": "^8.1.0",
190
- "eslint-plugin-import": "^2.24.2",
191
- "eslint-plugin-jsx-a11y": "^6.4.1",
184
+ "dotenv": "^16.0.1",
185
+ "eslint": "^8.19.0",
186
+ "eslint-config-prettier": "^8.5.0",
187
+ "eslint-plugin-import": "^2.26.0",
188
+ "eslint-plugin-jsx-a11y": "^6.6.0",
192
189
  "eslint-plugin-node": "^11.1.0",
193
- "eslint-plugin-prettier": "^3.4.1",
194
- "eslint-plugin-react": "^7.23.1",
195
- "eslint-plugin-react-hooks": "^4.2.0",
196
- "git-cz": "^4.7.4",
197
- "husky": "^7.0.2",
198
- "immer": "^9.0.1",
199
- "lint-staged": "^11.1.2",
200
- "npm-run-all": "^4.1.5",
201
- "pinst": "^2.1.6",
202
- "prettier": "^2.2.0",
190
+ "eslint-plugin-prettier": "^4.2.1",
191
+ "eslint-plugin-react": "^7.30.1",
192
+ "eslint-plugin-react-hooks": "^4.6.0",
193
+ "git-cz": "^4.9.0",
194
+ "husky": "^8.0.1",
195
+ "immer": "^9.0.15",
196
+ "jest": "^28.1.3",
197
+ "lint-staged": "^13.0.3",
198
+ "pinst": "^3.0.0",
199
+ "prettier": "^2.7.1",
203
200
  "react": "^17.0.2",
204
201
  "react-dom": "^17.0.2",
205
202
  "react-is": "^17.0.2",
203
+ "redrun": "^11.0.5",
206
204
  "rimraf": "^3.0.2",
205
+ "storybook": "^7.6.20",
207
206
  "tmp": "^0.2.1",
208
- "typescript": "~4.4.2",
209
- "use-immer": "^0.6.0",
210
- "webpack": "^4.44.2",
211
- "webpack-cli": "^3.3.12",
212
- "webpack-dev-server": "^3.11.2"
207
+ "typescript": "~4.7.4",
208
+ "use-immer": "^0.7.0",
209
+ "webpack": "^5.73.0",
210
+ "webpack-cli": "^4.10.0",
211
+ "webpack-dev-server": "^4.9.3"
213
212
  },
214
213
  "config": {
215
214
  "commitizen": {
@@ -229,7 +228,7 @@
229
228
  "displayName": "Creevey"
230
229
  },
231
230
  "volta": {
232
- "node": "14.19.0",
233
- "yarn": "1.22.17"
231
+ "node": "20.16.0",
232
+ "yarn": "4.4.0"
234
233
  }
235
234
  }
@@ -0,0 +1,5 @@
1
+ /* eslint-disable no-var */
2
+
3
+ declare var __CREEVEY_SERVER_HOST__: string;
4
+ declare var __CREEVEY_SERVER_PORT__: number;
5
+ declare var __CREEVEY_CLIENT_PORT__: number | null;