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
@@ -0,0 +1,34 @@
1
+ /*
2
+ object-assign
3
+ (c) Sindre Sorhus
4
+ @license MIT
5
+ */
6
+
7
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
8
+
9
+ /** @license React v0.20.2
10
+ * scheduler.production.min.js
11
+ *
12
+ * Copyright (c) Facebook, Inc. and its affiliates.
13
+ *
14
+ * This source code is licensed under the MIT license found in the
15
+ * LICENSE file in the root directory of this source tree.
16
+ */
17
+
18
+ /** @license React v17.0.2
19
+ * react-dom.production.min.js
20
+ *
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */
26
+
27
+ /** @license React v17.0.2
28
+ * react.production.min.js
29
+ *
30
+ * Copyright (c) Facebook, Inc. and its affiliates.
31
+ *
32
+ * This source code is licensed under the MIT license found in the
33
+ * LICENSE file in the root directory of this source tree.
34
+ */
@@ -1,31 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _cluster = _interopRequireDefault(require("cluster"));
4
-
5
4
  var _minimist = _interopRequireDefault(require("minimist"));
6
-
7
5
  var _server = _interopRequireDefault(require("./server"));
8
-
9
6
  var _types = require("./types");
10
-
11
7
  var _messages = require("./server/messages");
12
-
13
8
  var _utils = require("./server/utils");
14
-
15
9
  var _loglevel = require("loglevel");
16
-
17
10
  var _logger = require("./server/logger");
18
-
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
-
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
12
  function shutdownOnException(reason) {
22
- var _reason$stack;
23
-
24
13
  if (_utils.isShuttingDown.current) return;
25
- const error = reason instanceof Error ? (_reason$stack = reason.stack) !== null && _reason$stack !== void 0 ? _reason$stack : reason.message : reason;
26
-
14
+ const error = reason instanceof Error ? reason.stack ?? reason.message : reason;
27
15
  _logger.logger.error(error);
28
-
29
16
  process.exitCode = -1;
30
17
  if (_cluster.default.isWorker) (0, _messages.emitWorkerMessage)({
31
18
  type: 'error',
@@ -33,16 +20,15 @@ function shutdownOnException(reason) {
33
20
  error
34
21
  }
35
22
  });
36
- if (_cluster.default.isMaster && !_utils.isShuttingDown.current) void (0, _utils.shutdownWorkers)();
23
+ if (_cluster.default.isPrimary && !_utils.isShuttingDown.current) void (0, _utils.shutdownWorkers)();
37
24
  }
38
-
39
25
  process.on('uncaughtException', shutdownOnException);
40
26
  process.on('unhandledRejection', shutdownOnException);
41
27
  if (_cluster.default.isWorker) process.on('SIGINT', _types.noop);
42
- if (_cluster.default.isMaster) process.on('SIGINT', _utils.shutdown);
28
+ if (_cluster.default.isPrimary) process.on('SIGINT', _utils.shutdown);
43
29
  const argv = (0, _minimist.default)(process.argv.slice(2), {
44
- string: ['browser', 'config', 'reporter', 'reportDir', 'screenDir'],
45
- boolean: ['debug', 'ui', 'saveReport', 'webpack', 'tests'],
30
+ string: ['browser', 'config', 'reporter', 'reportDir', 'screenDir', 'storybookUrl'],
31
+ boolean: ['debug', 'trace', 'ui', 'saveReport', 'tests'],
46
32
  default: {
47
33
  port: 3000,
48
34
  saveReport: true
@@ -51,21 +37,20 @@ const argv = (0, _minimist.default)(process.argv.slice(2), {
51
37
  port: 'p',
52
38
  config: 'c',
53
39
  debug: 'd',
54
- update: 'u',
55
- extract: 'e'
40
+ update: 'u'
56
41
  }
57
- }); // @ts-expect-error: define log level for storybook
58
-
59
- global.LOGLEVEL = argv.debug ? 'debug' : 'warn';
60
-
61
- if (argv.debug) {
42
+ });
43
+
44
+ // @ts-expect-error: define log level for storybook
45
+ global.LOGLEVEL = argv.trace ? 'trace' : argv.debug ? 'debug' : 'warn';
46
+ if (argv.trace) {
47
+ _logger.logger.setDefaultLevel(_loglevel.levels.TRACE);
48
+ (0, _loglevel.setDefaultLevel)(_loglevel.levels.TRACE);
49
+ } else if (argv.debug) {
62
50
  _logger.logger.setDefaultLevel(_loglevel.levels.DEBUG);
63
-
64
51
  (0, _loglevel.setDefaultLevel)(_loglevel.levels.DEBUG);
65
52
  } else {
66
53
  _logger.logger.setDefaultLevel(_loglevel.levels.INFO);
67
-
68
54
  (0, _loglevel.setDefaultLevel)(_loglevel.levels.INFO);
69
55
  }
70
-
71
56
  void (0, _server.default)(argv);
package/lib/cjs/index.js CHANGED
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {
7
7
  browserStoriesProvider: true,
8
- nodejsStoriesProvider: true,
9
8
  hybridStoriesProvider: true
10
9
  };
11
10
  Object.defineProperty(exports, "browserStoriesProvider", {
@@ -14,21 +13,13 @@ Object.defineProperty(exports, "browserStoriesProvider", {
14
13
  return _browser.loadStories;
15
14
  }
16
15
  });
17
- Object.defineProperty(exports, "nodejsStoriesProvider", {
18
- enumerable: true,
19
- get: function () {
20
- return _nodejs.loadStories;
21
- }
22
- });
23
16
  Object.defineProperty(exports, "hybridStoriesProvider", {
24
17
  enumerable: true,
25
18
  get: function () {
26
19
  return _hybrid.loadStories;
27
20
  }
28
21
  });
29
-
30
22
  var _types = require("./types");
31
-
32
23
  Object.keys(_types).forEach(function (key) {
33
24
  if (key === "default" || key === "__esModule") return;
34
25
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -40,15 +31,9 @@ Object.keys(_types).forEach(function (key) {
40
31
  }
41
32
  });
42
33
  });
43
-
44
34
  var _browser = require("./server/storybook/providers/browser");
45
-
46
- var _nodejs = require("./server/storybook/providers/nodejs");
47
-
48
35
  var _hybrid = require("./server/storybook/providers/hybrid");
49
-
50
36
  var _parser = require("./server/testsFiles/parser");
51
-
52
37
  Object.keys(_parser).forEach(function (key) {
53
38
  if (key === "default" || key === "__esModule") return;
54
39
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -3,32 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.readConfig = readConfig;
7
6
  exports.defaultConfig = exports.defaultBrowser = void 0;
8
-
7
+ exports.readConfig = readConfig;
9
8
  var _fs = _interopRequireDefault(require("fs"));
10
-
11
9
  var _path = _interopRequireDefault(require("path"));
12
-
13
- var _helpers = require("./storybook/helpers");
14
-
15
- var _nodejs = require("./storybook/providers/nodejs");
16
-
17
10
  var _browser = require("./storybook/providers/browser");
18
-
19
11
  var _types = require("../types");
20
-
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
-
23
- 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); }
24
-
25
- 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; }
26
-
27
- const defaultBrowser = 'chrome';
28
- exports.defaultBrowser = defaultBrowser;
29
- const defaultConfig = {
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ const defaultBrowser = exports.defaultBrowser = 'chrome';
16
+ const defaultConfig = exports.defaultConfig = {
17
+ disableTelemetry: false,
30
18
  useDocker: true,
31
- useWebpackToExtractTests: false,
32
19
  dockerImage: 'aerokube/selenoid:latest-release',
33
20
  dockerImagePlatform: '',
34
21
  pullImages: true,
@@ -36,7 +23,6 @@ const defaultConfig = {
36
23
  storybookUrl: 'http://localhost:6006',
37
24
  screenDir: _path.default.resolve('images'),
38
25
  reportDir: _path.default.resolve('report'),
39
- storybookDir: _path.default.resolve('.storybook'),
40
26
  maxRetries: 0,
41
27
  diffOptions: {
42
28
  threshold: 0,
@@ -49,8 +35,6 @@ const defaultConfig = {
49
35
  babelOptions: _ => _,
50
36
  testsRegex: /\.creevey\.(t|j)s$/
51
37
  };
52
- exports.defaultConfig = defaultConfig;
53
-
54
38
  function normalizeBrowserConfig(name, config) {
55
39
  if (typeof config == 'boolean') return {
56
40
  browserName: name
@@ -60,36 +44,32 @@ function normalizeBrowserConfig(name, config) {
60
44
  };
61
45
  return config;
62
46
  }
63
-
64
47
  function resolveConfigPath(configPath) {
65
48
  const rootDir = process.cwd();
66
-
67
49
  const configDir = _path.default.resolve('.creevey');
68
-
69
50
  if ((0, _types.isDefined)(configPath)) {
70
51
  configPath = _path.default.resolve(configPath);
71
52
  } else if (_fs.default.existsSync(configDir)) {
72
- configPath = _path.default.join(configDir, 'config'); // TODO We already find file with extension, why not use it?
53
+ configPath = _path.default.join(configDir, 'config');
54
+ // TODO We already find file with extension, why not use it?
73
55
  } else if (_fs.default.readdirSync(rootDir).find(filename => filename.startsWith('creevey.config'))) {
74
56
  configPath = _path.default.join(rootDir, 'creevey.config');
75
57
  }
76
-
77
58
  return configPath;
78
59
  }
79
-
80
60
  async function readConfig(options) {
81
61
  const configPath = resolveConfigPath(options.config);
82
- const userConfig = { ...defaultConfig
62
+ const userConfig = {
63
+ ...defaultConfig
83
64
  };
84
- if ((0, _types.isDefined)(configPath)) Object.assign(userConfig, (await Promise.resolve(`${configPath}`).then(s => _interopRequireWildcard(require(s)))).default);
85
- _helpers.storybookDirRef.current = userConfig.storybookDir;
86
- if ((0, _helpers.isStorybookVersionLessThan)(6, 2)) userConfig.useWebpackToExtractTests = true;
87
- if (!userConfig.storiesProvider) userConfig.storiesProvider = (await (0, _helpers.isCSFv3Enabled)()) && (0, _helpers.isStorybookVersionGreaterThan)(5) ? _browser.loadStories : _nodejs.loadStories;
88
- if (userConfig.storiesProvider == _browser.loadStories && (0, _helpers.isStorybookVersionLessThan)(6)) throw new Error("Creevey browser stories provider doesn't support Storybook 5.x or older versions");
65
+ if ((0, _types.isDefined)(configPath)) Object.assign(userConfig, (await (specifier => new Promise(r => r(`${specifier}`)).then(s => _interopRequireWildcard(require(s))))(configPath)).default);
66
+ if (!userConfig.storiesProvider) userConfig.storiesProvider = _browser.loadStories;
89
67
  if (options.failFast != undefined) userConfig.failFast = Boolean(options.failFast);
90
68
  if (options.reportDir) userConfig.reportDir = _path.default.resolve(options.reportDir);
91
- if (options.screenDir) userConfig.screenDir = _path.default.resolve(options.screenDir); // NOTE: Hack to pass typescript checking
69
+ if (options.screenDir) userConfig.screenDir = _path.default.resolve(options.screenDir);
70
+ if (options.storybookUrl) userConfig.storybookUrl = options.storybookUrl;
92
71
 
72
+ // NOTE: Hack to pass typescript checking
93
73
  const config = userConfig;
94
74
  Object.entries(config.browsers).forEach(([browser, browserConfig]) => config.browsers[browser] = normalizeBrowserConfig(browser, browserConfig));
95
75
  return config;
@@ -3,41 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = _default;
6
7
  exports.pullImages = pullImages;
7
8
  exports.runImage = runImage;
8
- exports.default = _default;
9
-
10
- var _cluster = _interopRequireWildcard(require("cluster"));
11
-
9
+ var _cluster = _interopRequireDefault(require("cluster"));
12
10
  var _types = require("../types");
13
-
14
11
  var _messages = require("./messages");
15
-
16
12
  var _utils = require("./utils");
17
-
18
13
  var _dockerode = _interopRequireDefault(require("dockerode"));
19
-
20
14
  var _stream = require("stream");
21
-
22
15
  var _ora = _interopRequireDefault(require("ora"));
23
-
24
16
  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
-
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
32
18
  const docker = new _dockerode.default();
33
-
34
19
  class DevNull extends _stream.Writable {
35
20
  _write(_chunk, _encoding, callback) {
36
21
  setImmediate(callback);
37
22
  }
38
-
39
23
  }
40
-
41
24
  async function pullImages(images, {
42
25
  auth,
43
26
  platform
@@ -45,32 +28,28 @@ async function pullImages(images, {
45
28
  const args = {};
46
29
  if (auth) args.authconfig = auth;
47
30
  if (platform) args.platform = platform;
48
-
49
31
  _logger.logger.info('Pull docker images');
50
-
51
32
  for (const image of images) {
52
33
  await new Promise((resolve, reject) => {
53
- const spinner = (0, _ora.default)(`${image}: Pull start`).start(); // eslint-disable-next-line @typescript-eslint/no-floating-promises
34
+ const spinner = (0, _ora.default)(`${image}: Pull start`).start();
54
35
 
36
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
55
37
  docker.pull(image, args, function (pullError, stream) {
56
38
  if (pullError) {
57
39
  spinner.fail();
58
40
  return reject(pullError);
59
- } // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
60
-
41
+ }
61
42
 
43
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
62
44
  docker.modem.followProgress(stream, onFinished, onProgress);
63
-
64
45
  function onFinished(error) {
65
46
  if (error) {
66
47
  spinner.fail();
67
48
  return reject(error);
68
49
  }
69
-
70
50
  spinner.succeed(`${image}: Pull complete`);
71
51
  resolve();
72
52
  }
73
-
74
53
  function onProgress(event) {
75
54
  if (!/^[a-z0-9]{12}$/i.test(event.id)) return;
76
55
  spinner.text = `${image}: [${event.id}] ${event.status} ${event.progress ? `${event.progress}` : ''}`;
@@ -79,7 +58,6 @@ async function pullImages(images, {
79
58
  });
80
59
  }
81
60
  }
82
-
83
61
  async function runImage(image, args, options, debug) {
84
62
  await Promise.all((await docker.listContainers({
85
63
  all: true,
@@ -88,13 +66,11 @@ async function runImage(image, args, options, debug) {
88
66
  }
89
67
  })).map(async info => {
90
68
  const container = docker.getContainer(info.Id);
91
-
92
69
  try {
93
70
  await container.stop();
94
71
  } catch (_) {
95
72
  /* noop */
96
73
  }
97
-
98
74
  await container.remove();
99
75
  }));
100
76
  const hub = docker.run(image, args, debug ? process.stdout : new DevNull(), options, error => {
@@ -115,13 +91,11 @@ async function runImage(image, args, options, debug) {
115
91
  hub.once('start', container => void container.inspect().then(info => resolve(info.NetworkSettings.Networks.bridge.IPAddress)));
116
92
  });
117
93
  }
118
-
119
94
  async function _default(config, browser, startContainer) {
120
- if (_cluster.isMaster) {
95
+ if (_cluster.default.isPrimary) {
121
96
  const host = await startContainer();
122
97
  let gridUrl = 'http://localhost:4444/wd/hub';
123
98
  gridUrl = _utils.isInsideDocker ? gridUrl.replace(_utils.LOCALHOST_REGEXP, host) : gridUrl;
124
-
125
99
  _cluster.default.on('message', (worker, message) => {
126
100
  if (!(0, _types.isDockerMessage)(message)) return;
127
101
  const dockerMessage = message;
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = _default;
7
-
8
7
  var _cluster = _interopRequireDefault(require("cluster"));
9
-
10
8
  var _config = require("./config");
11
-
12
9
  var _logger = require("./logger");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- 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); }
17
-
18
- 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; }
19
-
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
13
  // NOTE: Impure function, mutate config by adding gridUrl prop
21
14
  async function startWebdriverServer(config, options) {
22
15
  if (config.useDocker) {
@@ -25,57 +18,39 @@ async function startWebdriverServer(config, options) {
25
18
  return (await Promise.resolve().then(() => _interopRequireWildcard(require('./selenium/selenoid')))).startSelenoidStandalone(config, options.debug);
26
19
  }
27
20
  }
28
-
29
21
  async function _default(options) {
30
22
  const config = await (0, _config.readConfig)(options);
31
23
  const {
32
24
  browser = _config.defaultBrowser,
33
- extract,
34
25
  tests,
35
26
  update,
36
- webpack,
37
27
  ui,
38
28
  port
39
29
  } = options;
40
- if (!config) return; // NOTE: We don't need docker nor selenoid for webpack or update options
30
+ if (!config) return;
41
31
 
32
+ // NOTE: We don't need docker nor selenoid for webpack or update options
42
33
  if (!(config.gridUrl || Object.values(config.browsers).every(({
43
34
  gridUrl
44
- }) => gridUrl)) && !extract && !webpack && !tests && !update) {
35
+ }) => gridUrl)) && !tests && !update) {
45
36
  await startWebdriverServer(config, options);
46
37
  }
47
-
48
38
  switch (true) {
49
- case Boolean(extract) || tests:
50
- {
51
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./extract')))).default(config, options);
52
- }
53
-
54
39
  case Boolean(update):
55
40
  {
56
41
  return (await Promise.resolve().then(() => _interopRequireWildcard(require('./update')))).default(config, typeof update == 'string' ? update : undefined);
57
42
  }
58
-
59
- case webpack:
60
- {
61
- _logger.logger.info('Starting Webpack Compiler');
62
-
63
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./loaders/webpack/compile')))).default(config, options);
64
- }
65
-
66
- case _cluster.default.isMaster:
43
+ case _cluster.default.isPrimary:
67
44
  {
68
45
  _logger.logger.info('Starting Master Process');
69
-
70
46
  const resolveApi = (await Promise.resolve().then(() => _interopRequireWildcard(require('./master/server')))).default(config.reportDir, port, ui);
71
47
  return (await Promise.resolve().then(() => _interopRequireWildcard(require('./master')))).default(config, options, resolveApi);
72
48
  }
73
-
74
49
  default:
75
50
  {
76
51
  _logger.logger.info(`Starting Worker for ${browser}`);
77
-
78
- return (await Promise.resolve().then(() => _interopRequireWildcard(require('./worker')))).default(config, { ...options,
52
+ return (await Promise.resolve().then(() => _interopRequireWildcard(require('./worker')))).default(config, {
53
+ ...options,
79
54
  browser
80
55
  });
81
56
  }
@@ -3,45 +3,32 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.colors = void 0;
6
7
  Object.defineProperty(exports, "getLogger", {
7
8
  enumerable: true,
8
9
  get: function () {
9
10
  return _loglevel.getLogger;
10
11
  }
11
12
  });
12
- exports.logger = exports.colors = void 0;
13
-
13
+ exports.logger = void 0;
14
14
  var _chalk = _interopRequireDefault(require("chalk"));
15
-
16
15
  var _loglevel = _interopRequireWildcard(require("loglevel"));
17
-
18
16
  var _loglevelPluginPrefix = _interopRequireDefault(require("loglevel-plugin-prefix"));
19
-
20
- 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); }
21
-
22
- 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; }
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- const colors = {
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ const colors = exports.colors = {
27
21
  TRACE: _chalk.default.magenta,
28
22
  DEBUG: _chalk.default.cyan,
29
23
  INFO: _chalk.default.blue,
30
24
  WARN: _chalk.default.yellow,
31
25
  ERROR: _chalk.default.red
32
26
  };
33
- exports.colors = colors;
34
-
35
27
  _loglevelPluginPrefix.default.reg(_loglevel.default);
36
-
37
28
  _loglevelPluginPrefix.default.apply(_loglevel.default, {
38
29
  format(level, name = 'Creevey') {
39
30
  const levelColor = colors[level.toUpperCase()];
40
31
  return `[${name}:${_chalk.default.gray(process.pid)}] ${levelColor(level)} =>`;
41
32
  }
42
-
43
33
  });
44
-
45
- const logger = _loglevel.default.getLogger('Creevey');
46
-
47
- exports.logger = logger;
34
+ const logger = exports.logger = _loglevel.default.getLogger('Creevey');
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = creeveyApi;
7
-
8
7
  var _ws = _interopRequireDefault(require("ws"));
9
-
10
8
  var _logger = require("../logger");
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
10
  function broadcast(wss, message) {
15
11
  wss.clients.forEach(ws => {
16
12
  if (ws.readyState === _ws.default.OPEN) {
@@ -18,7 +14,6 @@ function broadcast(wss, message) {
18
14
  }
19
15
  });
20
16
  }
21
-
22
17
  function creeveyApi(runner) {
23
18
  return {
24
19
  subscribe(wss) {
@@ -27,16 +22,12 @@ function creeveyApi(runner) {
27
22
  payload
28
23
  }));
29
24
  },
30
-
31
25
  handleMessage(ws, message) {
32
26
  if (typeof message != 'string') {
33
27
  _logger.logger.info('unhandled message', message);
34
-
35
28
  return;
36
29
  }
37
-
38
30
  const command = JSON.parse(message);
39
-
40
31
  switch (command.type) {
41
32
  case 'status':
42
33
  {
@@ -46,19 +37,16 @@ function creeveyApi(runner) {
46
37
  }));
47
38
  return;
48
39
  }
49
-
50
40
  case 'start':
51
41
  {
52
42
  runner.start(command.payload);
53
43
  return;
54
44
  }
55
-
56
45
  case 'stop':
57
46
  {
58
47
  runner.stop();
59
48
  return;
60
49
  }
61
-
62
50
  case 'approve':
63
51
  {
64
52
  void runner.approve(command.payload);
@@ -66,6 +54,5 @@ function creeveyApi(runner) {
66
54
  }
67
55
  }
68
56
  }
69
-
70
57
  };
71
58
  }