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,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.raw = exports.getStorybook = exports.setAddon = exports.clearDecorators = exports.addParameters = exports.addDecorator = exports.configure = exports.storiesOf = exports.forceReRender = exports.clientApi = exports.channel = void 0;
7
-
8
- var _addons = require("@storybook/addons");
9
-
10
- var _helpers = require("./helpers");
11
-
12
- var _api$channel, _api$context;
13
-
14
- const framework = (0, _helpers.getStorybookFramework)(); // eslint-disable-next-line @typescript-eslint/no-var-requires
15
-
16
- const core = require((0, _helpers.resolveFromStorybook)('@storybook/core')); //@ts-expect-error: 6.2 use named exports
17
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
18
-
19
-
20
- const start = (0, _helpers.isStorybookVersionLessThan)(6, 2) ? core.default.start : core.start;
21
- const api = start(() => void 0);
22
- const channel = (0, _helpers.isStorybookVersionLessThan)(6, 4) ? (_api$channel = api.channel) !== null && _api$channel !== void 0 ? _api$channel : (_api$context = api.context) === null || _api$context === void 0 ? void 0 : _api$context.channel : _addons.addons.getChannel();
23
- exports.channel = channel;
24
- const clientApi = api.clientApi;
25
- exports.clientApi = clientApi;
26
- const forceReRender = api.forceReRender;
27
- exports.forceReRender = forceReRender;
28
-
29
- const storiesOf = (kind, m) => {
30
- return clientApi.storiesOf(kind, m).addParameters({
31
- framework
32
- });
33
- };
34
-
35
- exports.storiesOf = storiesOf;
36
-
37
- const configure = (...args) => {
38
- if ((0, _helpers.isStorybookVersionLessThan)(5, 2)) {
39
- //NOTE: Storybook <= 5.1 pass args as is
40
- //@ts-expect-error: ignore it
41
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
42
- return api.configApi.configure(...args);
43
- }
44
-
45
- if ((0, _helpers.isStorybookVersionLessThan)(6)) {
46
- //NOTE: Storybook <= 5.3 pass `framework` as last argument
47
- //@ts-expect-error: ignore it
48
- return api.configure(...args, framework);
49
- } //NOTE Storybook 6.x pass `framework` as first argument
50
- //@ts-expect-error: ignore it
51
-
52
-
53
- return api.configure(framework, ...args);
54
- };
55
-
56
- exports.configure = configure;
57
- const addDecorator = clientApi.addDecorator;
58
- exports.addDecorator = addDecorator;
59
- const addParameters = clientApi.addParameters;
60
- exports.addParameters = addParameters;
61
- const clearDecorators = clientApi.clearDecorators;
62
- exports.clearDecorators = clearDecorators;
63
- const setAddon = clientApi.setAddon;
64
- exports.setAddon = setAddon;
65
- const getStorybook = clientApi.getStorybook;
66
- exports.getStorybook = getStorybook;
67
- const raw = clientApi.raw;
68
- exports.raw = raw;
@@ -1,165 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.hasDocsAddon = hasDocsAddon;
7
- exports.hasSvelteCSFAddon = hasSvelteCSFAddon;
8
- exports.getStorybookVersion = getStorybookVersion;
9
- exports.isStorybookVersionLessThan = isStorybookVersionLessThan;
10
- exports.isStorybookVersionGreaterThan = isStorybookVersionGreaterThan;
11
- exports.isStorybookVersion = isStorybookVersion;
12
- exports.getStorybookFramework = getStorybookFramework;
13
- exports.importStorybookConfig = importStorybookConfig;
14
- exports.isCSFv3Enabled = isCSFv3Enabled;
15
- exports.storybookConfigRef = exports.importStorybookCoreEvents = exports.importStorybookCoreCommon = exports.importStorybookClientLogger = exports.resolveFromStorybookCoreServer = exports.resolveFromStorybookCore = exports.resolveFromStorybookBuilderWebpack4 = exports.resolveFromStorybookAddonDocs = exports.resolveFromStorybook = exports.storybookDirRef = void 0;
16
-
17
- var _path = _interopRequireDefault(require("path"));
18
-
19
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
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 supportedFrameworks = ['react', 'vue', 'vue3', 'angular', 'marionette', 'mithril', 'marko', 'html', 'svelte', 'riot', 'ember', 'preact', 'rax', 'aurelia', 'server', 'web-components'];
28
- const storybookDirRef = {
29
- current: _path.default.resolve('.storybook')
30
- };
31
- exports.storybookDirRef = storybookDirRef;
32
-
33
- const resolveFromStorybook = modulePath => (0, _resolveFrom.default)(storybookDirRef.current, modulePath);
34
-
35
- exports.resolveFromStorybook = resolveFromStorybook;
36
-
37
- const resolveFromStorybookAddonDocs = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/addon-docs'), modulePath);
38
-
39
- exports.resolveFromStorybookAddonDocs = resolveFromStorybookAddonDocs;
40
-
41
- const resolveFromStorybookBuilderWebpack4 = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/builder-webpack4'), modulePath);
42
-
43
- exports.resolveFromStorybookBuilderWebpack4 = resolveFromStorybookBuilderWebpack4;
44
-
45
- const resolveFromStorybookCore = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/core'), modulePath);
46
-
47
- exports.resolveFromStorybookCore = resolveFromStorybookCore;
48
-
49
- const resolveFromStorybookCoreServer = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/core-server'), modulePath);
50
-
51
- exports.resolveFromStorybookCoreServer = resolveFromStorybookCoreServer;
52
-
53
- const importFromStorybook = modulePath => Promise.resolve(`${resolveFromStorybook(modulePath)}`).then(s => _interopRequireWildcard(require(s)));
54
-
55
- const importStorybookClientLogger = () => importFromStorybook('@storybook/client-logger');
56
-
57
- exports.importStorybookClientLogger = importStorybookClientLogger;
58
-
59
- const importStorybookCoreCommon = () => importFromStorybook('@storybook/core-common');
60
-
61
- exports.importStorybookCoreCommon = importStorybookCoreCommon;
62
-
63
- const importStorybookCoreEvents = () => importFromStorybook('@storybook/core-events');
64
-
65
- exports.importStorybookCoreEvents = importStorybookCoreEvents;
66
-
67
- function hasDocsAddon() {
68
- try {
69
- resolveFromStorybook('@storybook/addon-docs');
70
- return true;
71
- } catch (_) {
72
- return false;
73
- }
74
- }
75
-
76
- function hasSvelteCSFAddon() {
77
- try {
78
- resolveFromStorybook('@storybook/addon-svelte-csf');
79
- return true;
80
- } catch (_) {
81
- return false;
82
- }
83
- }
84
-
85
- function getStorybookVersion() {
86
- // eslint-disable-next-line @typescript-eslint/no-var-requires
87
- const {
88
- version
89
- } = require(resolveFromStorybook('@storybook/core/package.json'));
90
-
91
- return version;
92
- }
93
-
94
- function isStorybookVersionLessThan(major, minor) {
95
- var _process$env$__CREEVE;
96
-
97
- const [sbMajor, sbMinor] = ((_process$env$__CREEVE = process.env.__CREEVEY_STORYBOOK_VERSION__) !== null && _process$env$__CREEVE !== void 0 ? _process$env$__CREEVE : getStorybookVersion()).split('.');
98
- return Number(sbMajor) < major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) < minor;
99
- }
100
-
101
- function isStorybookVersionGreaterThan(major, minor) {
102
- var _process$env$__CREEVE2;
103
-
104
- const [sbMajor, sbMinor] = ((_process$env$__CREEVE2 = process.env.__CREEVEY_STORYBOOK_VERSION__) !== null && _process$env$__CREEVE2 !== void 0 ? _process$env$__CREEVE2 : getStorybookVersion()).split('.');
105
- return Number(sbMajor) > major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) > minor;
106
- }
107
-
108
- function isStorybookVersion(major, minor) {
109
- var _process$env$__CREEVE3;
110
-
111
- const [sbMajor, sbMinor] = ((_process$env$__CREEVE3 = process.env.__CREEVEY_STORYBOOK_VERSION__) !== null && _process$env$__CREEVE3 !== void 0 ? _process$env$__CREEVE3 : getStorybookVersion()).split('.');
112
- return Number(sbMajor) == major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) == minor;
113
- }
114
-
115
- function getStorybookFramework() {
116
- var _process$env$__CREEVE4;
117
-
118
- const framework = (_process$env$__CREEVE4 = process.env.__CREEVEY_STORYBOOK_FRAMEWORK__) !== null && _process$env$__CREEVE4 !== void 0 ? _process$env$__CREEVE4 : supportedFrameworks.find(framework => {
119
- try {
120
- return require.resolve(resolveFromStorybook(`@storybook/${framework}`));
121
- } catch (_) {
122
- return false;
123
- }
124
- });
125
- if (!framework) throw new Error("Couldn't detect used Storybook framework. Please ensure that you install `@storybook/<framework>` package");
126
- return framework;
127
- }
128
-
129
- const storybookConfigRef = {
130
- current: {
131
- stories: []
132
- }
133
- };
134
- exports.storybookConfigRef = storybookConfigRef;
135
-
136
- async function importStorybookConfig() {
137
- const configPath = `${storybookDirRef.current}/main`;
138
-
139
- try {
140
- return storybookConfigRef.current = (await Promise.resolve(`${require.resolve(configPath)}`).then(s => _interopRequireWildcard(require(s)))).default;
141
- } catch (_) {
142
- const storybookUtilsPath = isStorybookVersionLessThan(6, 2) ? '@storybook/core/dist/server/utils' : '@storybook/core-common/dist/cjs/utils';
143
- const serverRequireModule = isStorybookVersionLessThan(6, 2) ? 'server-require' : 'interpret-require'; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
144
-
145
- const {
146
- getInterpretedFile
147
- } = await Promise.resolve(`${resolveFromStorybook(`${storybookUtilsPath}/interpret-files`)}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
148
-
149
- const {
150
- default: serverRequireFallback,
151
- serverRequire = serverRequireFallback
152
- } = await Promise.resolve(`${resolveFromStorybook(`${storybookUtilsPath}/${serverRequireModule}`)}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
153
-
154
- const mainConfigFile = isStorybookVersionLessThan(6, 1) ? configPath : // eslint-disable-next-line @typescript-eslint/no-unsafe-call
155
- getInterpretedFile(configPath); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
156
-
157
- return storybookConfigRef.current = serverRequire(mainConfigFile);
158
- }
159
- }
160
-
161
- async function isCSFv3Enabled() {
162
- var _await$importStoryboo, _await$importStoryboo2, _await$importStoryboo3;
163
-
164
- return (_await$importStoryboo = (_await$importStoryboo2 = await importStorybookConfig()) === null || _await$importStoryboo2 === void 0 ? void 0 : (_await$importStoryboo3 = _await$importStoryboo2.features) === null || _await$importStoryboo3 === void 0 ? void 0 : _await$importStoryboo3.previewCsfV3) !== null && _await$importStoryboo !== void 0 ? _await$importStoryboo : false;
165
- }
@@ -1,239 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.loadStories = loadStories;
7
- exports.extractStoriesData = extractStoriesData;
8
-
9
- var _path = _interopRequireDefault(require("path"));
10
-
11
- var _cluster = require("cluster");
12
-
13
- var _chokidar = _interopRequireDefault(require("chokidar"));
14
-
15
- var _types = require("../../../types");
16
-
17
- var _utils = require("../../utils");
18
-
19
- var _messages = require("../../messages");
20
-
21
- var _helpers = require("../helpers");
22
-
23
- var _logger = require("../../logger");
24
-
25
- var _shared = require("../../../shared");
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
- 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); }
30
-
31
- 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; }
32
-
33
- async function initStorybookEnvironment() {
34
- // @ts-expect-error There is no @types/global-jsdom package
35
- (await Promise.resolve().then(() => _interopRequireWildcard(require('global-jsdom')))).default(undefined, {
36
- url: 'http://localhost'
37
- }); // NOTE Cutoff `jsdom` part from userAgent, because storybook check enviroment and create events channel if runs in browser
38
- // https://github.com/storybookjs/storybook/blob/v5.2.8/lib/core/src/client/preview/start.js#L98
39
- // Example: "Mozilla/5.0 (linux) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/15.2.1"
40
-
41
- Object.defineProperty(window.navigator, 'userAgent', {
42
- value: window.navigator.userAgent.split(' ').filter(token => !token.startsWith('jsdom')).join(' ')
43
- }); // TODO Look at creevey debug flag
44
-
45
- const {
46
- logger
47
- } = await (0, _helpers.importStorybookClientLogger)(); // NOTE: Disable duplication warnings for >=6.2 storybook
48
-
49
- if (_cluster.isWorker) logger.warn = _types.noop; // NOTE: disable logger for 5.x storybook
50
-
51
- logger.debug = _types.noop;
52
- return Promise.resolve().then(() => _interopRequireWildcard(require('../entry')));
53
- }
54
-
55
- function watchStories(channel, watcher, initialFiles) {
56
- const watchingFiles = initialFiles;
57
- let storiesByFiles = new Map();
58
- (0, _messages.subscribeOn)('shutdown', () => void watcher.close());
59
- watcher.add(Array.from(watchingFiles));
60
- watcher.on('change', filePath => storiesByFiles.set(_path.default.isAbsolute(filePath) ? filePath : `./${filePath.replace(/\\/g, '/')}`, []));
61
- watcher.on('unlink', filePath => storiesByFiles.set(_path.default.isAbsolute(filePath) ? filePath : `./${filePath.replace(/\\/g, '/')}`, []));
62
- return data => {
63
- const stories = (0, _helpers.isStorybookVersionLessThan)(6) || (0, _helpers.isStorybookVersionGreaterThan)(6, 3) ? data.stories : (0, _shared.denormalizeStoryParameters)(data);
64
- const files = new Set(Object.values(stories).map(story => story.parameters.fileName));
65
- const addedFiles = Array.from(files).filter(filePath => !watchingFiles.has(filePath));
66
- const removedFiles = Array.from(watchingFiles).filter(filePath => !files.has(filePath));
67
- watcher.add(addedFiles);
68
- addedFiles.forEach(filePath => {
69
- watchingFiles.add(filePath);
70
- storiesByFiles.set(filePath, []);
71
- });
72
- removedFiles.forEach(filePath => watchingFiles.delete(filePath));
73
- Object.values(stories).forEach(story => {
74
- var _storiesByFiles$get;
75
-
76
- return (_storiesByFiles$get = storiesByFiles.get(story.parameters.fileName)) === null || _storiesByFiles$get === void 0 ? void 0 : _storiesByFiles$get.push(story);
77
- });
78
- channel.emit('storiesUpdated', storiesByFiles);
79
- storiesByFiles = new Map();
80
- };
81
- }
82
-
83
- function loadStoriesFromBundle(watch) {
84
- const bundlePath = _path.default.join((0, _utils.getCreeveyCache)(), 'storybook/main.js');
85
-
86
- if (watch) {
87
- (0, _messages.subscribeOn)('webpack', message => {
88
- if (message.type != 'rebuild succeeded') return;
89
- Object.values(global.__CREEVEY_HMR_DATA__).filter(({
90
- callback
91
- }) => callback).forEach(({
92
- data,
93
- callback
94
- }) => callback(data));
95
- delete require.cache[bundlePath];
96
- Promise.resolve(`${bundlePath}`).then(s => _interopRequireWildcard(require(s)));
97
- });
98
- }
99
-
100
- Promise.resolve(`${bundlePath}`).then(s => _interopRequireWildcard(require(s)));
101
- }
102
-
103
- async function loadStoriesDirectly(config, {
104
- watcher,
105
- debug
106
- }) {
107
- const {
108
- toRequireContext,
109
- normalizeStoriesEntry
110
- } = await (0, _helpers.importStorybookCoreCommon)();
111
- const {
112
- addParameters,
113
- configure
114
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('../entry')));
115
- const requireContext = await (await Promise.resolve().then(() => _interopRequireWildcard(require('../../loaders/babel/register')))).default(config, debug);
116
-
117
- const preview = (() => {
118
- try {
119
- return require.resolve(`${config.storybookDir}/preview`);
120
- } catch (_) {
121
- /* noop */
122
- }
123
- })();
124
-
125
- const {
126
- stories
127
- } = await (0, _helpers.importStorybookConfig)();
128
- const contexts = stories.map(entry => {
129
- const normalizedEntry = (0, _helpers.isStorybookVersionLessThan)(6, 4) ? entry : normalizeStoriesEntry(entry, {
130
- configDir: config.storybookDir,
131
- workingDir: process.cwd()
132
- });
133
- const {
134
- path: storiesPath,
135
- recursive,
136
- match
137
- } = toRequireContext(normalizedEntry);
138
- watcher === null || watcher === void 0 ? void 0 : watcher.add(_path.default.resolve(config.storybookDir, storiesPath));
139
- return () => requireContext(storiesPath, recursive, new RegExp(match));
140
- });
141
-
142
- let disposeCallback = data => void data;
143
-
144
- Object.assign(module, {
145
- hot: {
146
- data: {},
147
-
148
- accept() {
149
- /* noop */
150
- },
151
-
152
- dispose(callback) {
153
- disposeCallback = callback;
154
- }
155
-
156
- }
157
- });
158
-
159
- async function startStorybook() {
160
- if (preview) {
161
- const {
162
- parameters,
163
- globals,
164
- globalTypes
165
- } = await Promise.resolve(`${preview}`).then(s => _interopRequireWildcard(require(s)));
166
- if (parameters) addParameters(parameters);
167
- if (globals) addParameters({
168
- globals
169
- });
170
- if (globalTypes) addParameters({
171
- globalTypes
172
- });
173
- }
174
-
175
- try {
176
- configure(contexts.map(ctx => ctx()), module, false);
177
- } catch (error) {
178
- if (_cluster.isMaster) _logger.logger.error(error);
179
- }
180
- }
181
-
182
- watcher === null || watcher === void 0 ? void 0 : watcher.add(config.storybookDir);
183
- watcher === null || watcher === void 0 ? void 0 : watcher.on('all', (_event, filename) => {
184
- var _module$hot;
185
-
186
- disposeCallback((_module$hot = module.hot) === null || _module$hot === void 0 ? void 0 : _module$hot.data);
187
- delete require.cache[filename];
188
- void startStorybook();
189
- });
190
- void startStorybook();
191
- } // TODO Do we need to support multiple storybooks here?
192
-
193
-
194
- async function loadStories(config, {
195
- watch,
196
- debug
197
- }, storiesListener) {
198
- const storybookApi = await initStorybookEnvironment();
199
- const Events = await (0, _helpers.importStorybookCoreEvents)();
200
- const {
201
- channel
202
- } = storybookApi;
203
- channel.removeAllListeners(Events.CURRENT_STORY_WAS_SET);
204
- channel.on('storiesUpdated', storiesListener);
205
- let watcher;
206
- if (watch) watcher = _chokidar.default.watch([], {
207
- ignoreInitial: true
208
- });
209
- const loadPromise = new Promise(resolve => {
210
- channel.once(Events.SET_STORIES, data => {
211
- const stories = (0, _helpers.isStorybookVersionLessThan)(6) || (0, _helpers.isStorybookVersionGreaterThan)(6, 3) ? data.stories : (0, _shared.denormalizeStoryParameters)(data);
212
- const files = new Set(Object.values(stories).map(story => story.parameters.fileName));
213
- if (watcher) channel.on(Events.SET_STORIES, watchStories(channel, watcher, files));
214
- resolve(stories);
215
- });
216
- });
217
- if (config.useWebpackToExtractTests) loadStoriesFromBundle(watch);else void loadStoriesDirectly(config, {
218
- watcher,
219
- debug
220
- });
221
- return loadPromise;
222
- }
223
-
224
- async function extractStoriesData(config, {
225
- watch,
226
- debug
227
- }) {
228
- const storybookApi = await initStorybookEnvironment();
229
- const Events = await (0, _helpers.importStorybookCoreEvents)();
230
- const {
231
- channel
232
- } = storybookApi;
233
- channel.removeAllListeners(Events.CURRENT_STORY_WAS_SET);
234
- const loadPromise = new Promise(resolve => channel.once(Events.SET_STORIES, resolve));
235
- if (config.useWebpackToExtractTests) loadStoriesFromBundle(watch);else void loadStoriesDirectly(config, {
236
- debug
237
- });
238
- return loadPromise;
239
- }
package/lib/cjs/shared.js DELETED
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.deserializeStory = exports.deserializeRawStories = exports.serializeRawStories = exports.deserializeRegExp = exports.serializeRegExp = exports.isSerializedRegExp = exports.denormalizeStoryParameters = exports.combineParameters = void 0;
7
-
8
- var _lodash = require("lodash");
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17
-
18
- // NOTE: Copy-paste from storybook/api
19
- var combineParameters = function combineParameters() {
20
- for (var _len = arguments.length, parameterSets = new Array(_len), _key = 0; _key < _len; _key++) {
21
- parameterSets[_key] = arguments[_key];
22
- }
23
-
24
- return (// eslint-disable-next-line @typescript-eslint/no-unsafe-return
25
- _lodash.mergeWith.apply(void 0, [{}].concat(parameterSets, [function (_, srcValue) {
26
- // Treat arrays as scalars:
27
- if (Array.isArray(srcValue)) return srcValue;
28
- return undefined;
29
- }]))
30
- );
31
- }; // NOTE: Copy-paste from storybook/api
32
-
33
-
34
- exports.combineParameters = combineParameters;
35
-
36
- var denormalizeStoryParameters = function denormalizeStoryParameters(_ref) {
37
- var globalParameters = _ref.globalParameters,
38
- kindParameters = _ref.kindParameters,
39
- stories = _ref.stories;
40
- return (0, _lodash.mapValues)(stories, function (storyData) {
41
- var _globalParameters$cre, _kindParameters$story, _kindParameters$story2;
42
-
43
- storyData.parameters.creevey = combineParameters((_globalParameters$cre = globalParameters.creevey) !== null && _globalParameters$cre !== void 0 ? _globalParameters$cre : {}, (_kindParameters$story = (_kindParameters$story2 = kindParameters[storyData.kind]) === null || _kindParameters$story2 === void 0 ? void 0 : _kindParameters$story2.creevey) !== null && _kindParameters$story !== void 0 ? _kindParameters$story : {}, storyData.parameters.creevey);
44
- return storyData;
45
- });
46
- };
47
-
48
- exports.denormalizeStoryParameters = denormalizeStoryParameters;
49
-
50
- var isSerializedRegExp = function isSerializedRegExp(exp) {
51
- return _typeof(exp) === 'object' && exp !== null && Reflect.get(exp, '__regexp') === true;
52
- };
53
-
54
- exports.isSerializedRegExp = isSerializedRegExp;
55
-
56
- var serializeRegExp = function serializeRegExp(exp) {
57
- var source = exp.source,
58
- flags = exp.flags;
59
- return {
60
- __regexp: true,
61
- source: source,
62
- flags: flags
63
- };
64
- };
65
-
66
- exports.serializeRegExp = serializeRegExp;
67
-
68
- var deserializeRegExp = function deserializeRegExp(_ref2) {
69
- var source = _ref2.source,
70
- flags = _ref2.flags;
71
- return new RegExp(source, flags);
72
- };
73
-
74
- exports.deserializeRegExp = deserializeRegExp;
75
-
76
- var serializeRawStories = function serializeRawStories(stories) {
77
- return (0, _lodash.mapValues)(stories, function (storyData) {
78
- var creevey = storyData.parameters.creevey;
79
-
80
- if (creevey !== null && creevey !== void 0 && creevey.skip) {
81
- creevey.skip = (0, _lodash.cloneDeepWith)(creevey.skip, function (value) {
82
- if (value instanceof RegExp) {
83
- return serializeRegExp(value);
84
- }
85
-
86
- return undefined;
87
- });
88
- }
89
-
90
- return storyData;
91
- });
92
- };
93
-
94
- exports.serializeRawStories = serializeRawStories;
95
-
96
- var deserializeRawStories = function deserializeRawStories(stories) {
97
- return (0, _lodash.mapValues)(stories, deserializeStory);
98
- };
99
-
100
- exports.deserializeRawStories = deserializeRawStories;
101
-
102
- var deserializeStory = function deserializeStory(story) {
103
- var creevey = story.parameters.creevey;
104
-
105
- if (creevey !== null && creevey !== void 0 && creevey.skip) {
106
- return _objectSpread(_objectSpread({}, story), {}, {
107
- parameters: _objectSpread(_objectSpread({}, story.parameters), {}, {
108
- creevey: _objectSpread(_objectSpread({}, creevey), {}, {
109
- skip: (0, _lodash.cloneDeepWith)(creevey.skip, function (value) {
110
- if (isSerializedRegExp(value)) {
111
- return deserializeRegExp(value);
112
- }
113
-
114
- return undefined;
115
- })
116
- })
117
- })
118
- });
119
- }
120
-
121
- return story;
122
- };
123
-
124
- exports.deserializeStory = deserializeStory;
@@ -1,34 +0,0 @@
1
- import { denormalizeStoryParameters } from '../shared';
2
- import { subscribeOn } from './messages';
3
- import { loadTestsFromStories, saveStoriesJson, saveTestsJson } from './stories';
4
- import { isStorybookVersionGreaterThan, isStorybookVersionLessThan } from './storybook/helpers';
5
- import { extractStoriesData } from './storybook/providers/nodejs';
6
- export default async function extract(config, options) {
7
- if (config.useWebpackToExtractTests && process.env.__CREEVEY_ENV__ != 'test') {
8
- await new Promise((resolve, reject) => {
9
- subscribeOn('webpack', message => {
10
- switch (message.type) {
11
- case 'success':
12
- return resolve();
13
-
14
- case 'fail':
15
- return reject();
16
- }
17
- });
18
- void (async () => (await import('./loaders/webpack/compile')).default(config, options))();
19
- });
20
- }
21
-
22
- const tests = await loadTestsFromStories(Object.keys(config.browsers), async () => {
23
- const data = await extractStoriesData(config, {
24
- watch: false,
25
- debug: options.debug
26
- });
27
- const stories = isStorybookVersionLessThan(6) || isStorybookVersionGreaterThan(6, 3) ? data.stories : denormalizeStoryParameters(data);
28
- if (options.extract) saveStoriesJson(data, options.extract);
29
- return stories;
30
- });
31
- if (options.tests) saveTestsJson(tests); // eslint-disable-next-line no-process-exit
32
-
33
- process.exit(0);
34
- }