creevey 0.8.0-beta.0 → 0.9.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 (225) hide show
  1. package/CHANGELOG.md +5 -9
  2. package/lib/cjs/client/web/main.js +6 -6
  3. package/lib/types/cli.d.ts +1 -1
  4. package/lib/types/client/addon/Manager.d.ts +37 -37
  5. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  6. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  7. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  8. package/lib/types/client/addon/components/TestSelect.d.ts +9 -9
  9. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  10. package/lib/types/client/addon/decorator.d.ts +1 -1
  11. package/lib/types/client/addon/preset.d.ts +24 -22
  12. package/lib/types/client/addon/readyForCapture.d.ts +6 -0
  13. package/lib/types/client/addon/register.d.ts +3 -3
  14. package/lib/types/client/addon/utils.d.ts +2 -2
  15. package/lib/types/client/addon/withCreevey.d.ts +24 -13
  16. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  17. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +25 -25
  18. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  19. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  20. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  21. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  22. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +9 -9
  23. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +8 -8
  24. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  25. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +17 -17
  26. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  27. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  28. package/lib/types/client/shared/helpers.d.ts +46 -46
  29. package/lib/types/client/shared/viewMode.d.ts +4 -4
  30. package/lib/types/client/web/CreeveyApp.d.ts +12 -12
  31. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  32. package/lib/types/client/web/CreeveyLoader.d.ts +3 -3
  33. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  34. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  35. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  36. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +13 -13
  37. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  38. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +8 -8
  39. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  40. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  41. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  42. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  43. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  44. package/lib/types/client/web/index.d.ts +4 -4
  45. package/lib/types/creevey.d.ts +1 -1
  46. package/lib/types/index.d.ts +4 -2
  47. package/lib/types/server/config.d.ts +4 -4
  48. package/lib/types/server/docker.d.ts +7 -7
  49. package/lib/types/server/extract.d.ts +2 -2
  50. package/lib/types/server/index.d.ts +2 -2
  51. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  52. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  53. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  54. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  55. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  56. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  57. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +2 -2
  58. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  59. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  60. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  61. package/lib/types/server/logger.d.ts +6 -6
  62. package/lib/types/server/master/api.d.ts +7 -7
  63. package/lib/types/server/master/index.d.ts +3 -3
  64. package/lib/types/server/master/master.d.ts +7 -6
  65. package/lib/types/server/master/pool.d.ts +31 -30
  66. package/lib/types/server/master/runner.d.ts +26 -26
  67. package/lib/types/server/master/server.d.ts +2 -2
  68. package/lib/types/server/messages.d.ts +27 -18
  69. package/lib/types/server/selenium/browser.d.ts +17 -14
  70. package/lib/types/server/selenium/index.d.ts +2 -2
  71. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  72. package/lib/types/server/stories.d.ts +8 -8
  73. package/lib/types/server/storybook/entry.d.ts +18 -18
  74. package/lib/types/server/storybook/helpers.d.ts +24 -24
  75. package/lib/types/server/storybook/providers/browser.d.ts +4 -0
  76. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -0
  77. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -0
  78. package/lib/types/server/testsFiles/parser.d.ts +12 -0
  79. package/lib/types/server/testsFiles/register.d.ts +2 -0
  80. package/lib/types/server/update.d.ts +2 -2
  81. package/lib/types/server/utils.d.ts +20 -19
  82. package/lib/types/server/worker/chai-image.d.ts +6 -6
  83. package/lib/types/server/worker/helpers.d.ts +8 -7
  84. package/lib/types/server/worker/index.d.ts +1 -1
  85. package/lib/types/server/worker/reporter.d.ts +8 -8
  86. package/lib/types/server/worker/worker.d.ts +4 -4
  87. package/lib/types/shared.d.ts +16 -4
  88. package/lib/types/types.d.ts +489 -459
  89. package/package.json +16 -7
  90. package/storybook-static/stories.json +21 -0
  91. package/types/mocha.d.ts +1 -0
  92. package/lib/cjs/cli.js +0 -5
  93. package/lib/cjs/client/addon/Manager.js +0 -413
  94. package/lib/cjs/client/addon/components/Addon.js +0 -76
  95. package/lib/cjs/client/addon/components/Icons.js +0 -42
  96. package/lib/cjs/client/addon/components/Panel.js +0 -68
  97. package/lib/cjs/client/addon/components/TestSelect.js +0 -63
  98. package/lib/cjs/client/addon/components/Tools.js +0 -114
  99. package/lib/cjs/client/addon/decorator.js +0 -11
  100. package/lib/cjs/client/addon/preset.js +0 -80
  101. package/lib/cjs/client/addon/register.js +0 -96
  102. package/lib/cjs/client/addon/utils.js +0 -38
  103. package/lib/cjs/client/addon/withCreevey.js +0 -284
  104. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
  105. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
  106. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
  107. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -178
  108. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
  109. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  110. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
  111. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
  112. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
  113. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
  114. package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
  115. package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
  116. package/lib/cjs/client/shared/helpers.js +0 -482
  117. package/lib/cjs/client/shared/viewMode.js +0 -17
  118. package/lib/cjs/client/web/index.html +0 -19
  119. package/lib/cjs/creevey.js +0 -71
  120. package/lib/cjs/index.js +0 -44
  121. package/lib/cjs/server/config.js +0 -92
  122. package/lib/cjs/server/docker.js +0 -150
  123. package/lib/cjs/server/extract.js +0 -43
  124. package/lib/cjs/server/index.js +0 -85
  125. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  126. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  127. package/lib/cjs/server/loaders/babel/register.js +0 -126
  128. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  129. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  130. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  131. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  132. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  133. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  134. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  135. package/lib/cjs/server/logger.js +0 -47
  136. package/lib/cjs/server/master/api.js +0 -71
  137. package/lib/cjs/server/master/index.js +0 -152
  138. package/lib/cjs/server/master/master.js +0 -56
  139. package/lib/cjs/server/master/pool.js +0 -206
  140. package/lib/cjs/server/master/runner.js +0 -294
  141. package/lib/cjs/server/master/server.js +0 -57
  142. package/lib/cjs/server/messages.js +0 -154
  143. package/lib/cjs/server/selenium/browser.js +0 -582
  144. package/lib/cjs/server/selenium/index.js +0 -31
  145. package/lib/cjs/server/selenium/selenoid.js +0 -174
  146. package/lib/cjs/server/stories.js +0 -167
  147. package/lib/cjs/server/storybook/entry.js +0 -68
  148. package/lib/cjs/server/storybook/helpers.js +0 -165
  149. package/lib/cjs/server/storybook/nodejs-provider.js +0 -220
  150. package/lib/cjs/server/update.js +0 -83
  151. package/lib/cjs/server/utils.js +0 -178
  152. package/lib/cjs/server/worker/chai-image.js +0 -142
  153. package/lib/cjs/server/worker/helpers.js +0 -73
  154. package/lib/cjs/server/worker/index.js +0 -15
  155. package/lib/cjs/server/worker/reporter.js +0 -120
  156. package/lib/cjs/server/worker/worker.js +0 -266
  157. package/lib/cjs/shared.js +0 -35
  158. package/lib/cjs/types.js +0 -69
  159. package/lib/esm/cli.js +0 -4
  160. package/lib/esm/client/addon/Manager.js +0 -397
  161. package/lib/esm/client/addon/components/Addon.js +0 -58
  162. package/lib/esm/client/addon/components/Icons.js +0 -27
  163. package/lib/esm/client/addon/components/Panel.js +0 -49
  164. package/lib/esm/client/addon/components/TestSelect.js +0 -49
  165. package/lib/esm/client/addon/components/Tools.js +0 -91
  166. package/lib/esm/client/addon/decorator.js +0 -2
  167. package/lib/esm/client/addon/preset.js +0 -55
  168. package/lib/esm/client/addon/register.js +0 -75
  169. package/lib/esm/client/addon/utils.js +0 -31
  170. package/lib/esm/client/addon/withCreevey.js +0 -270
  171. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -64
  172. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
  173. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -152
  174. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
  175. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -89
  176. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  177. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
  178. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
  179. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
  180. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
  181. package/lib/esm/client/shared/components/ResultsPage.js +0 -143
  182. package/lib/esm/client/shared/creeveyClientApi.js +0 -94
  183. package/lib/esm/client/shared/helpers.js +0 -424
  184. package/lib/esm/client/shared/viewMode.js +0 -6
  185. package/lib/esm/creevey.js +0 -56
  186. package/lib/esm/index.js +0 -4
  187. package/lib/esm/server/config.js +0 -71
  188. package/lib/esm/server/docker.js +0 -123
  189. package/lib/esm/server/extract.js +0 -30
  190. package/lib/esm/server/index.js +0 -65
  191. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  192. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  193. package/lib/esm/server/loaders/babel/register.js +0 -105
  194. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  195. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  196. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  197. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  198. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  199. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  200. package/lib/esm/server/loaders/webpack/start.js +0 -27
  201. package/lib/esm/server/logger.js +0 -20
  202. package/lib/esm/server/master/api.js +0 -60
  203. package/lib/esm/server/master/index.js +0 -131
  204. package/lib/esm/server/master/master.js +0 -37
  205. package/lib/esm/server/master/pool.js +0 -187
  206. package/lib/esm/server/master/runner.js +0 -272
  207. package/lib/esm/server/master/server.js +0 -37
  208. package/lib/esm/server/messages.js +0 -128
  209. package/lib/esm/server/selenium/browser.js +0 -554
  210. package/lib/esm/server/selenium/index.js +0 -2
  211. package/lib/esm/server/selenium/selenoid.js +0 -151
  212. package/lib/esm/server/stories.js +0 -147
  213. package/lib/esm/server/storybook/entry.js +0 -44
  214. package/lib/esm/server/storybook/helpers.js +0 -106
  215. package/lib/esm/server/storybook/nodejs-provider.js +0 -200
  216. package/lib/esm/server/update.js +0 -65
  217. package/lib/esm/server/utils.js +0 -141
  218. package/lib/esm/server/worker/chai-image.js +0 -130
  219. package/lib/esm/server/worker/helpers.js +0 -64
  220. package/lib/esm/server/worker/index.js +0 -1
  221. package/lib/esm/server/worker/reporter.js +0 -98
  222. package/lib/esm/server/worker/worker.js +0 -236
  223. package/lib/esm/shared.js +0 -22
  224. package/lib/esm/types.js +0 -40
  225. package/lib/types/server/storybook/nodejs-provider.d.ts +0 -5
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.readConfig = readConfig;
7
- exports.defaultConfig = exports.defaultBrowser = void 0;
8
-
9
- var _fs = _interopRequireDefault(require("fs"));
10
-
11
- var _path = _interopRequireDefault(require("path"));
12
-
13
- var _helpers = require("./storybook/helpers");
14
-
15
- var _nodejsProvider = require("./storybook/nodejs-provider");
16
-
17
- var _types = require("../types");
18
-
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
-
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
-
23
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
-
25
- const defaultBrowser = 'chrome';
26
- exports.defaultBrowser = defaultBrowser;
27
- const defaultConfig = {
28
- useDocker: true,
29
- useWebpackToExtractTests: false,
30
- dockerImage: 'aerokube/selenoid:latest-release',
31
- dockerImagePlatform: '',
32
- pullImages: true,
33
- failFast: false,
34
- storybookUrl: 'http://localhost:6006',
35
- screenDir: _path.default.resolve('images'),
36
- reportDir: _path.default.resolve('report'),
37
- storybookDir: _path.default.resolve('.storybook'),
38
- maxRetries: 0,
39
- diffOptions: {
40
- threshold: 0,
41
- includeAA: true
42
- },
43
- browsers: {
44
- [defaultBrowser]: true
45
- },
46
- hooks: {},
47
- babelOptions: _ => _
48
- };
49
- exports.defaultConfig = defaultConfig;
50
-
51
- function normalizeBrowserConfig(name, config) {
52
- if (typeof config == 'boolean') return {
53
- browserName: name
54
- };
55
- if (typeof config == 'string') return {
56
- browserName: config
57
- };
58
- return config;
59
- }
60
-
61
- function resolveConfigPath(configPath) {
62
- const rootDir = process.cwd();
63
-
64
- const configDir = _path.default.resolve('.creevey');
65
-
66
- if ((0, _types.isDefined)(configPath)) {
67
- configPath = _path.default.resolve(configPath);
68
- } else if (_fs.default.existsSync(configDir)) {
69
- configPath = _path.default.join(configDir, 'config'); // TODO We already find file with extension, why not use it?
70
- } else if (_fs.default.readdirSync(rootDir).find(filename => filename.startsWith('creevey.config'))) {
71
- configPath = _path.default.join(rootDir, 'creevey.config');
72
- }
73
-
74
- return configPath;
75
- }
76
-
77
- async function readConfig(options) {
78
- const configPath = resolveConfigPath(options.config);
79
- const userConfig = { ...defaultConfig
80
- };
81
- if ((0, _types.isDefined)(configPath)) Object.assign(userConfig, (await Promise.resolve(`${configPath}`).then(s => _interopRequireWildcard(require(s)))).default);
82
- _helpers.storybookDirRef.current = userConfig.storybookDir;
83
- if ((0, _helpers.isStorybookVersionLessThan)(6, 2)) userConfig.useWebpackToExtractTests = true;
84
- if (!userConfig.storiesProvider) userConfig.storiesProvider = (await (0, _helpers.isCSFv3Enabled)()) ? _nodejsProvider.loadStories : _nodejsProvider.loadStories;
85
- if (options.failFast != undefined) userConfig.failFast = Boolean(options.failFast);
86
- if (options.reportDir) userConfig.reportDir = _path.default.resolve(options.reportDir);
87
- if (options.screenDir) userConfig.screenDir = _path.default.resolve(options.screenDir); // NOTE: Hack to pass typescript checking
88
-
89
- const config = userConfig;
90
- Object.entries(config.browsers).forEach(([browser, browserConfig]) => config.browsers[browser] = normalizeBrowserConfig(browser, browserConfig));
91
- return config;
92
- }
@@ -1,150 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.pullImages = pullImages;
7
- exports.runImage = runImage;
8
- exports.default = _default;
9
-
10
- var _cluster = _interopRequireWildcard(require("cluster"));
11
-
12
- var _types = require("../types");
13
-
14
- var _messages = require("./messages");
15
-
16
- var _utils = require("./utils");
17
-
18
- var _dockerode = _interopRequireDefault(require("dockerode"));
19
-
20
- var _stream = require("stream");
21
-
22
- var _ora = _interopRequireDefault(require("ora"));
23
-
24
- var _logger = require("./logger");
25
-
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
- const docker = new _dockerode.default();
33
-
34
- class DevNull extends _stream.Writable {
35
- _write(_chunk, _encoding, callback) {
36
- setImmediate(callback);
37
- }
38
-
39
- }
40
-
41
- async function pullImages(images, {
42
- auth,
43
- platform
44
- } = {}) {
45
- const args = {};
46
- if (auth) args.authconfig = auth;
47
- if (platform) args.platform = platform;
48
-
49
- _logger.logger.info('Pull docker images');
50
-
51
- for (const image of images) {
52
- await new Promise((resolve, reject) => {
53
- const spinner = (0, _ora.default)(`${image}: Pull start`).start(); // eslint-disable-next-line @typescript-eslint/no-floating-promises
54
-
55
- docker.pull(image, args, function (pullError, stream) {
56
- if (pullError) {
57
- spinner.fail();
58
- return reject(pullError);
59
- } // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
60
-
61
-
62
- docker.modem.followProgress(stream, onFinished, onProgress);
63
-
64
- function onFinished(error) {
65
- if (error) {
66
- spinner.fail();
67
- return reject(error);
68
- }
69
-
70
- spinner.succeed(`${image}: Pull complete`);
71
- resolve();
72
- }
73
-
74
- function onProgress(event) {
75
- if (!/^[a-z0-9]{12}$/i.test(event.id)) return;
76
- spinner.text = `${image}: [${event.id}] ${event.status} ${event.progress ? `${event.progress}` : ''}`;
77
- }
78
- });
79
- });
80
- }
81
- }
82
-
83
- async function runImage(image, args, options, debug) {
84
- await Promise.all((await docker.listContainers({
85
- all: true,
86
- filters: {
87
- ancestor: [image]
88
- }
89
- })).map(async info => {
90
- const container = docker.getContainer(info.Id);
91
-
92
- try {
93
- await container.stop();
94
- } catch (_) {
95
- /* noop */
96
- }
97
-
98
- await container.remove();
99
- }));
100
- const hub = docker.run(image, args, debug ? process.stdout : new DevNull(), options, error => {
101
- if (error) throw error;
102
- });
103
- return new Promise(resolve => {
104
- hub.once('container', container => {
105
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
106
- (0, _messages.subscribeOn)('shutdown', async () => {
107
- try {
108
- await container.stop();
109
- await container.remove();
110
- } catch (error) {
111
- /* noop */
112
- }
113
- });
114
- });
115
- hub.once('start', container => void container.inspect().then(info => resolve(info.NetworkSettings.Networks.bridge.IPAddress)));
116
- });
117
- }
118
-
119
- async function _default(config, browser, startContainer) {
120
- if (_cluster.isMaster) {
121
- const host = await startContainer();
122
- let gridUrl = 'http://localhost:4444/wd/hub';
123
- gridUrl = _utils.isInsideDocker ? gridUrl.replace(_utils.LOCALHOST_REGEXP, host) : gridUrl;
124
-
125
- _cluster.default.on('message', (worker, message) => {
126
- if (!(0, _types.isDockerMessage)(message)) return;
127
- const dockerMessage = message;
128
- if (dockerMessage.type != 'start') return;
129
- (0, _messages.sendDockerMessage)(worker, {
130
- type: 'success',
131
- payload: {
132
- gridUrl
133
- }
134
- });
135
- });
136
- } else {
137
- if (browser && config.browsers[browser].gridUrl) return Promise.resolve();
138
- return new Promise(resolve => {
139
- (0, _messages.subscribeOn)('docker', message => {
140
- if (message.type == 'success') {
141
- config.gridUrl = message.payload.gridUrl;
142
- resolve();
143
- }
144
- });
145
- (0, _messages.emitDockerMessage)({
146
- type: 'start'
147
- });
148
- });
149
- }
150
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = extract;
7
-
8
- var _messages = require("./messages");
9
-
10
- var _stories = require("./stories");
11
-
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
-
14
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
-
16
- async function extract(config, options) {
17
- if (config.useWebpackToExtractTests && process.env.__CREEVEY_ENV__ != 'test') {
18
- await new Promise((resolve, reject) => {
19
- (0, _messages.subscribeOn)('webpack', message => {
20
- switch (message.type) {
21
- case 'success':
22
- return resolve();
23
-
24
- case 'fail':
25
- return reject();
26
- }
27
- });
28
- void (async () => (await Promise.resolve().then(() => _interopRequireWildcard(require('./loaders/webpack/compile')))).default(config, options))();
29
- });
30
- }
31
-
32
- const tests = await (0, _stories.loadTestsFromStories)(Object.keys(config.browsers), async listener => {
33
- const stories = await config.storiesProvider(config, {
34
- watch: false,
35
- debug: options.debug
36
- }, listener);
37
- if (options.extract) (0, _stories.saveStoriesJson)(stories, options.extract);
38
- return stories;
39
- });
40
- if (options.tests) (0, _stories.saveTestsJson)(tests); // eslint-disable-next-line no-process-exit
41
-
42
- process.exit(0);
43
- }
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _cluster = _interopRequireDefault(require("cluster"));
9
-
10
- var _config = require("./config");
11
-
12
- var _types = require("../types");
13
-
14
- var _logger = require("./logger");
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
22
- // NOTE: Impure function, mutate config by adding gridUrl prop
23
- async function startWebdriverServer(config, options) {
24
- if (config.useDocker) {
25
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./docker')))).default(config, options.browser, async () => (await Promise.resolve().then(() => _interopRequireWildcard(require('./selenium/selenoid')))).startSelenoidContainer(config, options.debug));
26
- } else {
27
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./selenium/selenoid')))).startSelenoidStandalone(config, options.debug);
28
- }
29
- }
30
-
31
- async function _default(options) {
32
- const config = await (0, _config.readConfig)(options);
33
- const {
34
- browser = _config.defaultBrowser,
35
- extract,
36
- tests,
37
- update,
38
- webpack,
39
- ui,
40
- port
41
- } = options;
42
- if (!config) return;
43
- const resolveApi = ui && _cluster.default.isMaster ? (await Promise.resolve().then(() => _interopRequireWildcard(require('./master/server')))).default(config.reportDir, port) : _types.noop; // NOTE: We don't need docker nor selenoid for webpack or update options
44
-
45
- if (!(config.gridUrl || Object.values(config.browsers).every(({
46
- gridUrl
47
- }) => gridUrl)) && !extract && !webpack && !tests && !update) {
48
- await startWebdriverServer(config, options);
49
- }
50
-
51
- switch (true) {
52
- case Boolean(extract) || tests:
53
- {
54
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./extract')))).default(config, options);
55
- }
56
-
57
- case Boolean(update):
58
- {
59
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./update')))).default(config, typeof update == 'string' ? update : undefined);
60
- }
61
-
62
- case webpack:
63
- {
64
- _logger.logger.info('Starting Webpack Compiler');
65
-
66
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./loaders/webpack/compile')))).default(config, options);
67
- }
68
-
69
- case _cluster.default.isMaster:
70
- {
71
- _logger.logger.info('Starting Master Process');
72
-
73
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./master')))).default(config, options, resolveApi);
74
- }
75
-
76
- default:
77
- {
78
- _logger.logger.info(`Starting Worker for ${browser}`);
79
-
80
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./worker')))).default(config, { ...options,
81
- browser
82
- });
83
- }
84
- }
85
- }
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _helpers = require("./helpers");
11
-
12
- var _logger = require("../../logger");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- let lastStoryFile = null;
17
- const stories = new Set();
18
- const reexportedStories = new Map();
19
-
20
- function _default() {
21
- return {
22
- pre() {
23
- var _this$opts$parents;
24
-
25
- const parents = (_this$opts$parents = this.opts.parents()) !== null && _this$opts$parents !== void 0 ? _this$opts$parents : [];
26
- const story = this.opts.story();
27
- this.resourcePath = this.filename;
28
- this.fileType = _helpers.FileType.Invalid; // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
-
30
- this.visitedTopPaths = new Set();
31
- this.visitedBindings = new Set();
32
- this.reexportedStories = reexportedStories;
33
-
34
- if (story && this.filename.startsWith(story) || parents.find(parent => this.reexportedStories.has(parent))) {
35
- this.fileType = _helpers.FileType.Story;
36
- this.isMDX = _path.default.parse(this.filename).ext == '.mdx';
37
- lastStoryFile = this.filename;
38
- stories.add(this.filename);
39
- } else if (this.filename.startsWith(this.opts.preview)) this.fileType = _helpers.FileType.Preview;else if (lastStoryFile && this.opts.debug) {
40
- _logger.logger.warn('Trying to transform possible non-story file', this.resourcePath, 'Please check the', lastStoryFile);
41
-
42
- lastStoryFile = null; // TODO Add link to docs, how creevey works and what user should do in this situation
43
- }
44
- },
45
-
46
- visitor: { ..._helpers.commonVisitor,
47
-
48
- ExportAllDeclaration(path) {
49
- if (this.fileType == _helpers.FileType.Story && typeof _helpers.storyVisitor.ExportAllDeclaration == 'function') {
50
- _helpers.storyVisitor.ExportAllDeclaration.call(this, path, this);
51
- }
52
- },
53
-
54
- ExportDefaultDeclaration(path) {
55
- if (this.fileType == _helpers.FileType.Story && typeof _helpers.storyVisitor.ExportDefaultDeclaration == 'function') {
56
- _helpers.storyVisitor.ExportDefaultDeclaration.call(this, path, this);
57
- }
58
- },
59
-
60
- ExportNamedDeclaration(path) {
61
- if (this.fileType == _helpers.FileType.Preview && typeof _helpers.previewVisitor.ExportNamedDeclaration == 'function') {
62
- _helpers.previewVisitor.ExportNamedDeclaration.call(this, path, this);
63
- }
64
-
65
- if (this.fileType == _helpers.FileType.Story && typeof _helpers.storyVisitor.ExportNamedDeclaration == 'function') {
66
- _helpers.storyVisitor.ExportNamedDeclaration.call(this, path, this);
67
- }
68
- },
69
-
70
- CallExpression(path) {
71
- if (this.fileType == _helpers.FileType.Preview && typeof _helpers.previewVisitor.CallExpression == 'function') {
72
- _helpers.previewVisitor.CallExpression.call(this, path, this);
73
- }
74
-
75
- if (this.fileType == _helpers.FileType.Story && typeof _helpers.storyVisitor.CallExpression == 'function') {
76
- _helpers.storyVisitor.CallExpression.call(this, path, this);
77
- }
78
- },
79
-
80
- FunctionDeclaration(path) {
81
- if (this.isMDX && typeof _helpers.mdxVisitor.FunctionDeclaration == 'function') {
82
- _helpers.mdxVisitor.FunctionDeclaration.call(this, path, this);
83
- }
84
- }
85
-
86
- }
87
- };
88
- }