creevey 0.9.0-beta.13 → 0.9.0-beta.14

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 (216) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarnrc.yml +1 -0
  3. package/lib/cjs/cli.js +1 -0
  4. package/lib/cjs/client/addon/Manager.js +151 -223
  5. package/lib/cjs/client/addon/components/Addon.js +2 -9
  6. package/lib/cjs/client/addon/components/Icons.js +1 -7
  7. package/lib/cjs/client/addon/components/Panel.js +5 -18
  8. package/lib/cjs/client/addon/components/TestSelect.js +12 -25
  9. package/lib/cjs/client/addon/components/Tools.js +17 -28
  10. package/lib/cjs/client/addon/decorator.js +1 -4
  11. package/lib/cjs/client/addon/index.js +0 -4
  12. package/lib/cjs/client/addon/preset.js +3 -12
  13. package/lib/cjs/client/addon/preview.js +1 -4
  14. package/lib/cjs/client/addon/readyForCapture.js +1 -4
  15. package/lib/cjs/client/addon/register.js +11 -26
  16. package/lib/cjs/client/addon/utils.js +1 -9
  17. package/lib/cjs/client/addon/withCreevey.js +55 -134
  18. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +5 -17
  19. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +8 -24
  20. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +7 -23
  21. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +7 -22
  22. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +5 -17
  23. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -5
  24. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +1 -8
  25. package/lib/cjs/client/shared/components/PageFooter/Paging.js +2 -19
  26. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +21 -17
  27. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +5 -24
  28. package/lib/cjs/client/shared/components/ResultsPage.js +9 -37
  29. package/lib/cjs/client/shared/creeveyClientApi.js +3 -13
  30. package/lib/cjs/client/shared/helpers.js +21 -75
  31. package/lib/cjs/client/shared/viewMode.js +2 -6
  32. package/lib/cjs/client/web/192.js +1 -0
  33. package/lib/cjs/client/web/632.js +43 -0
  34. package/lib/cjs/client/web/794.js +1 -0
  35. package/lib/cjs/client/web/main.js +78 -1
  36. package/lib/cjs/client/web/main.js.LICENSE.txt +0 -15
  37. package/lib/cjs/creevey.js +5 -21
  38. package/lib/cjs/index.js +0 -15
  39. package/lib/cjs/server/config.js +13 -33
  40. package/lib/cjs/server/docker.js +5 -27
  41. package/lib/cjs/server/index.js +8 -33
  42. package/lib/cjs/server/logger.js +5 -19
  43. package/lib/cjs/server/master/api.js +1 -14
  44. package/lib/cjs/server/master/index.js +15 -46
  45. package/lib/cjs/server/master/master.js +6 -21
  46. package/lib/cjs/server/master/pool.js +2 -37
  47. package/lib/cjs/server/master/runner.js +15 -42
  48. package/lib/cjs/server/master/server.js +5 -27
  49. package/lib/cjs/server/messages.js +7 -53
  50. package/lib/cjs/server/selenium/browser.js +51 -136
  51. package/lib/cjs/server/selenium/index.js +0 -4
  52. package/lib/cjs/server/selenium/selenoid.js +7 -33
  53. package/lib/cjs/server/stories.js +25 -30
  54. package/lib/cjs/server/storybook/providers/browser.js +5 -18
  55. package/lib/cjs/server/storybook/providers/hybrid.js +9 -29
  56. package/lib/cjs/server/testsFiles/parser.js +3 -19
  57. package/lib/cjs/server/testsFiles/register.js +7 -9
  58. package/lib/cjs/server/update.js +3 -20
  59. package/lib/cjs/server/utils.js +9 -41
  60. package/lib/cjs/server/worker/chai-image.js +1 -27
  61. package/lib/cjs/server/worker/helpers.js +2 -12
  62. package/lib/cjs/server/worker/index.js +1 -3
  63. package/lib/cjs/server/worker/reporter.js +8 -24
  64. package/lib/cjs/server/worker/worker.js +5 -49
  65. package/lib/cjs/shared/index.js +22 -36
  66. package/lib/cjs/shared/serializeRegExp.js +0 -8
  67. package/lib/cjs/types.js +4 -14
  68. package/lib/esm/cli.js +1 -1
  69. package/lib/esm/client/addon/Manager.js +151 -214
  70. package/lib/esm/client/addon/components/Panel.js +4 -6
  71. package/lib/esm/client/addon/components/TestSelect.js +11 -17
  72. package/lib/esm/client/addon/components/Tools.js +15 -14
  73. package/lib/esm/client/addon/preset.js +2 -8
  74. package/lib/esm/client/addon/readyForCapture.js +1 -3
  75. package/lib/esm/client/addon/register.js +6 -8
  76. package/lib/esm/client/addon/utils.js +0 -5
  77. package/lib/esm/client/addon/withCreevey.js +54 -116
  78. package/lib/esm/client/shared/components/ImagesView/BlendView.js +1 -1
  79. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +6 -8
  80. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +3 -4
  81. package/lib/esm/client/shared/components/ImagesView/SlideView.js +3 -3
  82. package/lib/esm/client/shared/components/ImagesView/SwapView.js +1 -1
  83. package/lib/esm/client/shared/components/PageFooter/Paging.js +1 -11
  84. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +18 -7
  85. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +3 -8
  86. package/lib/esm/client/shared/components/ResultsPage.js +6 -15
  87. package/lib/esm/client/shared/creeveyClientApi.js +3 -10
  88. package/lib/esm/client/shared/helpers.js +21 -47
  89. package/lib/esm/client/web/192.js +1 -0
  90. package/lib/esm/client/web/632.js +43 -0
  91. package/lib/esm/client/web/794.js +1 -0
  92. package/lib/esm/client/web/index.html +19 -0
  93. package/lib/esm/client/web/main.js +79 -0
  94. package/lib/esm/client/web/main.js.LICENSE.txt +34 -0
  95. package/lib/esm/creevey.js +4 -8
  96. package/lib/esm/index.js +0 -1
  97. package/lib/esm/server/config.js +7 -14
  98. package/lib/esm/server/docker.js +4 -12
  99. package/lib/esm/server/index.js +7 -21
  100. package/lib/esm/server/logger.js +0 -1
  101. package/lib/esm/server/master/api.js +0 -9
  102. package/lib/esm/server/master/index.js +15 -32
  103. package/lib/esm/server/master/master.js +2 -7
  104. package/lib/esm/server/master/pool.js +0 -23
  105. package/lib/esm/server/master/runner.js +14 -27
  106. package/lib/esm/server/master/server.js +4 -9
  107. package/lib/esm/server/messages.js +6 -38
  108. package/lib/esm/server/selenium/browser.js +50 -114
  109. package/lib/esm/server/selenium/selenoid.js +6 -17
  110. package/lib/esm/server/stories.js +24 -20
  111. package/lib/esm/server/storybook/providers/browser.js +4 -8
  112. package/lib/esm/server/storybook/providers/hybrid.js +6 -14
  113. package/lib/esm/server/testsFiles/parser.js +0 -6
  114. package/lib/esm/server/testsFiles/register.js +5 -2
  115. package/lib/esm/server/update.js +0 -8
  116. package/lib/esm/server/utils.js +3 -11
  117. package/lib/esm/server/worker/chai-image.js +0 -21
  118. package/lib/esm/server/worker/helpers.js +2 -9
  119. package/lib/esm/server/worker/reporter.js +7 -10
  120. package/lib/esm/server/worker/worker.js +4 -25
  121. package/lib/esm/shared/index.js +24 -25
  122. package/lib/esm/types.js +4 -1
  123. package/lib/types/client/addon/Manager.d.ts +1 -1
  124. package/lib/types/client/addon/components/Addon.d.ts +1 -0
  125. package/lib/types/client/addon/components/Icons.d.ts +1 -0
  126. package/lib/types/client/addon/components/Panel.d.ts +1 -0
  127. package/lib/types/client/addon/components/TestSelect.d.ts +1 -0
  128. package/lib/types/client/addon/components/Tools.d.ts +1 -0
  129. package/lib/types/client/addon/decorator.d.ts +1 -1
  130. package/lib/types/client/addon/preset.d.ts +2 -2
  131. package/lib/types/client/addon/preview.d.ts +1 -1
  132. package/lib/types/client/addon/withCreevey.d.ts +3 -2
  133. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
  134. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +1 -0
  135. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -1
  136. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -1
  137. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -1
  138. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +1 -0
  139. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +1 -0
  140. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  141. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +1 -0
  142. package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
  143. package/lib/types/client/web/CreeveyApp.d.ts +1 -0
  144. package/lib/types/client/web/CreeveyLoader.d.ts +2 -1
  145. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -1
  146. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
  147. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +1 -0
  148. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
  149. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -0
  150. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +3 -1
  151. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -1
  152. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
  153. package/lib/types/shared/index.d.ts +1 -1
  154. package/lib/types/types.d.ts +7 -28
  155. package/package.json +60 -78
  156. package/lib/cjs/client/addon/preset.ie11.js +0 -74
  157. package/lib/cjs/client/addon/preset.sb7.js +0 -19
  158. package/lib/cjs/client/web/142.js +0 -2
  159. package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
  160. package/lib/cjs/client/web/32.js +0 -1
  161. package/lib/cjs/client/web/551.js +0 -1
  162. package/lib/cjs/client/web/566.js +0 -2
  163. package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
  164. package/lib/cjs/client/web/691.js +0 -2
  165. package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
  166. package/lib/cjs/client/web/725.js +0 -1
  167. package/lib/cjs/server/extract.js +0 -46
  168. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
  169. package/lib/cjs/server/loaders/babel/helpers.js +0 -469
  170. package/lib/cjs/server/loaders/babel/register.js +0 -124
  171. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  172. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  173. package/lib/cjs/server/loaders/webpack/compile.js +0 -269
  174. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -172
  175. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
  176. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  177. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  178. package/lib/cjs/server/storybook/entry.js +0 -53
  179. package/lib/cjs/server/storybook/helpers.js +0 -158
  180. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  181. package/lib/esm/client/addon/preset.ie11.js +0 -59
  182. package/lib/esm/client/addon/preset.sb7.js +0 -8
  183. package/lib/esm/server/extract.js +0 -32
  184. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
  185. package/lib/esm/server/loaders/babel/helpers.js +0 -452
  186. package/lib/esm/server/loaders/babel/register.js +0 -103
  187. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  188. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  189. package/lib/esm/server/loaders/webpack/compile.js +0 -246
  190. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -152
  191. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
  192. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  193. package/lib/esm/server/loaders/webpack/start.js +0 -27
  194. package/lib/esm/server/storybook/entry.js +0 -27
  195. package/lib/esm/server/storybook/helpers.js +0 -97
  196. package/lib/esm/server/storybook/providers/nodejs.js +0 -216
  197. package/lib/types/client/addon/preset.ie11.d.ts +0 -10
  198. package/lib/types/client/addon/preset.sb7.d.ts +0 -2
  199. package/lib/types/server/extract.d.ts +0 -2
  200. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  201. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  202. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  203. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  204. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  205. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  206. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  207. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  208. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  209. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  210. package/lib/types/server/storybook/entry.d.ts +0 -17
  211. package/lib/types/server/storybook/helpers.d.ts +0 -24
  212. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  213. package/preset/ie11.js +0 -5
  214. package/preset/index.js +0 -9
  215. package/preset/sb7.js +0 -5
  216. package/types/mdx.d.ts +0 -7
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.storiesOf = exports.setAddon = exports.raw = exports.getStorybook = exports.forceReRender = exports.configure = exports.clientApi = exports.clearDecorators = exports.channel = exports.addParameters = exports.addDecorator = void 0;
7
-
8
- var _addons = require("@storybook/addons");
9
-
10
- var _helpers = require("./helpers");
11
-
12
- const framework = (0, _helpers.getStorybookFramework)(); // eslint-disable-next-line @typescript-eslint/no-var-requires
13
-
14
- const core = require((0, _helpers.resolveFromStorybook)('@storybook/core-client'));
15
-
16
- const start = core.start;
17
- const api = start(() => void 0);
18
-
19
- const channel = _addons.addons.getChannel();
20
-
21
- exports.channel = channel;
22
- const clientApi = api.clientApi;
23
- exports.clientApi = clientApi;
24
- const forceReRender = api.forceReRender;
25
- exports.forceReRender = forceReRender;
26
-
27
- const storiesOf = (kind, m) => {
28
- return clientApi.storiesOf(kind, m).addParameters({
29
- framework
30
- });
31
- };
32
-
33
- exports.storiesOf = storiesOf;
34
-
35
- const configure = (...args) => {
36
- //NOTE Storybook 6.x pass `framework` as first argument
37
- //@ts-expect-error: ignore it
38
- return api.configure(framework, ...args);
39
- };
40
-
41
- exports.configure = configure;
42
- const addDecorator = clientApi.addDecorator;
43
- exports.addDecorator = addDecorator;
44
- const addParameters = clientApi.addParameters;
45
- exports.addParameters = addParameters;
46
- const clearDecorators = clientApi.clearDecorators;
47
- exports.clearDecorators = clearDecorators;
48
- const setAddon = clientApi.setAddon;
49
- exports.setAddon = setAddon;
50
- const getStorybook = clientApi.getStorybook;
51
- exports.getStorybook = getStorybook;
52
- const raw = clientApi.raw;
53
- exports.raw = raw;
@@ -1,158 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getStorybookFramework = getStorybookFramework;
7
- exports.getStorybookVersion = getStorybookVersion;
8
- exports.hasDocsAddon = hasDocsAddon;
9
- exports.hasSvelteCSFAddon = hasSvelteCSFAddon;
10
- exports.importStorybookClientLogger = void 0;
11
- exports.importStorybookConfig = importStorybookConfig;
12
- exports.importStorybookCoreEvents = exports.importStorybookCoreCommon = void 0;
13
- exports.isCSFv3Enabled = isCSFv3Enabled;
14
- exports.isStorybookVersion = isStorybookVersion;
15
- exports.isStorybookVersionGreaterThan = isStorybookVersionGreaterThan;
16
- exports.isStorybookVersionLessThan = isStorybookVersionLessThan;
17
- exports.storybookDirRef = exports.storybookConfigRef = exports.resolveFromStorybookCoreServer = exports.resolveFromStorybookCoreClient = exports.resolveFromStorybookBuilderWebpack4 = exports.resolveFromStorybookAddonDocs = exports.resolveFromStorybook = void 0;
18
-
19
- var _path = _interopRequireDefault(require("path"));
20
-
21
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
22
-
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
-
25
- 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); }
26
-
27
- 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; }
28
-
29
- const supportedFrameworks = ['react', 'vue', 'vue3', 'angular', 'marionette', 'mithril', 'marko', 'html', 'svelte', 'riot', 'ember', 'preact', 'rax', 'aurelia', 'server', 'web-components'];
30
- const storybookDirRef = {
31
- current: _path.default.resolve('.storybook')
32
- };
33
- exports.storybookDirRef = storybookDirRef;
34
-
35
- const resolveFromStorybook = modulePath => (0, _resolveFrom.default)(storybookDirRef.current, modulePath);
36
-
37
- exports.resolveFromStorybook = resolveFromStorybook;
38
-
39
- const resolveFromStorybookAddonDocs = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/addon-docs'), modulePath);
40
-
41
- exports.resolveFromStorybookAddonDocs = resolveFromStorybookAddonDocs;
42
-
43
- const resolveFromStorybookBuilderWebpack4 = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/builder-webpack4'), modulePath);
44
-
45
- exports.resolveFromStorybookBuilderWebpack4 = resolveFromStorybookBuilderWebpack4;
46
-
47
- const resolveFromStorybookCoreClient = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/core-client'), modulePath);
48
-
49
- exports.resolveFromStorybookCoreClient = resolveFromStorybookCoreClient;
50
-
51
- const resolveFromStorybookCoreServer = modulePath => (0, _resolveFrom.default)(resolveFromStorybook('@storybook/core-server'), modulePath);
52
-
53
- exports.resolveFromStorybookCoreServer = resolveFromStorybookCoreServer;
54
-
55
- const importFromStorybook = modulePath => Promise.resolve(`${resolveFromStorybook(modulePath)}`).then(s => _interopRequireWildcard(require(s)));
56
-
57
- const importStorybookClientLogger = () => importFromStorybook('@storybook/client-logger');
58
-
59
- exports.importStorybookClientLogger = importStorybookClientLogger;
60
-
61
- const importStorybookCoreCommon = () => importFromStorybook('@storybook/core-common');
62
-
63
- exports.importStorybookCoreCommon = importStorybookCoreCommon;
64
-
65
- const importStorybookCoreEvents = () => importFromStorybook('@storybook/core-events');
66
-
67
- exports.importStorybookCoreEvents = importStorybookCoreEvents;
68
-
69
- function hasDocsAddon() {
70
- try {
71
- resolveFromStorybook('@storybook/addon-docs');
72
- return true;
73
- } catch (_) {
74
- return false;
75
- }
76
- }
77
-
78
- function hasSvelteCSFAddon() {
79
- try {
80
- resolveFromStorybook('@storybook/addon-svelte-csf');
81
- return true;
82
- } catch (_) {
83
- return false;
84
- }
85
- }
86
-
87
- function getStorybookVersion() {
88
- // eslint-disable-next-line @typescript-eslint/no-var-requires
89
- const {
90
- version
91
- } = require(resolveFromStorybook('@storybook/core-server/package.json'));
92
-
93
- return version;
94
- }
95
-
96
- function isStorybookVersionLessThan(major, minor) {
97
- const [sbMajor, sbMinor] = (process.env.__CREEVEY_STORYBOOK_VERSION__ ?? getStorybookVersion()).split('.');
98
- return Number(sbMajor) < major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) < minor;
99
- }
100
-
101
- function isStorybookVersionGreaterThan(major, minor) {
102
- const [sbMajor, sbMinor] = (process.env.__CREEVEY_STORYBOOK_VERSION__ ?? getStorybookVersion()).split('.');
103
- return Number(sbMajor) > major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) > minor;
104
- }
105
-
106
- function isStorybookVersion(major, minor) {
107
- const [sbMajor, sbMinor] = (process.env.__CREEVEY_STORYBOOK_VERSION__ ?? getStorybookVersion()).split('.');
108
- return Number(sbMajor) == major || minor != undefined && Number(sbMajor) == major && Number(sbMinor) == minor;
109
- }
110
-
111
- function getStorybookFramework() {
112
- const framework = process.env.__CREEVEY_STORYBOOK_FRAMEWORK__ ?? supportedFrameworks.find(framework => {
113
- try {
114
- return require.resolve(resolveFromStorybook(`@storybook/${framework}`));
115
- } catch (_) {
116
- return false;
117
- }
118
- });
119
- if (!framework) throw new Error("Couldn't detect used Storybook framework. Please ensure that you install `@storybook/<framework>` package");
120
- return framework;
121
- }
122
-
123
- const storybookConfigRef = {
124
- current: {
125
- stories: []
126
- }
127
- };
128
- exports.storybookConfigRef = storybookConfigRef;
129
-
130
- async function importStorybookConfig() {
131
- const configPath = `${storybookDirRef.current}/main`;
132
-
133
- try {
134
- return storybookConfigRef.current = (await Promise.resolve(`${require.resolve(configPath)}`).then(s => _interopRequireWildcard(require(s)))).default;
135
- } catch (_) {
136
- const storybookUtilsPath = '@storybook/core-common/dist/cjs/utils';
137
- const serverRequireModule = 'interpret-require'; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
138
-
139
- const {
140
- getInterpretedFile
141
- } = await Promise.resolve(`${resolveFromStorybook(`${storybookUtilsPath}/interpret-files`)}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
142
-
143
- const {
144
- default: serverRequireFallback,
145
- serverRequire = serverRequireFallback
146
- } = await Promise.resolve(`${resolveFromStorybook(`${storybookUtilsPath}/${serverRequireModule}`)}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
147
-
148
- const mainConfigFile = getInterpretedFile(configPath); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
149
-
150
- return storybookConfigRef.current = serverRequire(mainConfigFile);
151
- }
152
- }
153
-
154
- async function isCSFv3Enabled() {
155
- var _await$importStoryboo, _await$importStoryboo2;
156
-
157
- return ((_await$importStoryboo = await importStorybookConfig()) === null || _await$importStoryboo === void 0 ? void 0 : (_await$importStoryboo2 = _await$importStoryboo.features) === null || _await$importStoryboo2 === void 0 ? void 0 : _await$importStoryboo2.previewCsfV3) ?? false;
158
- }
@@ -1,239 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.extractStoriesData = extractStoriesData;
7
- exports.loadStories = void 0;
8
-
9
- var _path = _interopRequireDefault(require("path"));
10
-
11
- var _cluster = _interopRequireDefault(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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
-
27
- 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); }
28
-
29
- 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; }
30
-
31
- async function initStorybookEnvironment() {
32
- // @ts-expect-error There is no @types/global-jsdom package
33
- (await Promise.resolve().then(() => _interopRequireWildcard(require('global-jsdom')))).default(undefined, {
34
- url: 'http://localhost'
35
- }); // NOTE Cutoff `jsdom` part from userAgent, because storybook check enviroment and create events channel if runs in browser
36
- // https://github.com/storybookjs/storybook/blob/v5.2.8/lib/core/src/client/preview/start.js#L98
37
- // Example: "Mozilla/5.0 (linux) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/15.2.1"
38
-
39
- Object.defineProperty(window.navigator, 'userAgent', {
40
- value: window.navigator.userAgent.split(' ').filter(token => !token.startsWith('jsdom')).join(' ')
41
- }); // TODO Look at creevey debug flag
42
-
43
- const {
44
- logger
45
- } = await (0, _helpers.importStorybookClientLogger)(); // NOTE: Disable duplication warnings for >=6.2 storybook
46
-
47
- if (_cluster.default.isWorker) logger.warn = _types.noop; // NOTE: disable logger for 5.x storybook
48
-
49
- logger.debug = _types.noop;
50
- return Promise.resolve().then(() => _interopRequireWildcard(require('../entry')));
51
- }
52
-
53
- function watchStories(channel, watcher, initialFiles) {
54
- const watchingFiles = initialFiles;
55
- let storiesByFiles = new Map();
56
- (0, _messages.subscribeOn)('shutdown', () => void watcher.close());
57
- watcher.add(Array.from(watchingFiles));
58
- watcher.on('change', filePath => storiesByFiles.set(_path.default.isAbsolute(filePath) ? filePath : `./${filePath.replace(/\\/g, '/')}`, []));
59
- watcher.on('unlink', filePath => storiesByFiles.set(_path.default.isAbsolute(filePath) ? filePath : `./${filePath.replace(/\\/g, '/')}`, []));
60
- return data => {
61
- const stories = data.stories;
62
- const files = new Set(Object.values(stories).map(story => story.parameters.fileName));
63
- const addedFiles = Array.from(files).filter(filePath => !watchingFiles.has(filePath));
64
- const removedFiles = Array.from(watchingFiles).filter(filePath => !files.has(filePath));
65
- watcher.add(addedFiles);
66
- addedFiles.forEach(filePath => {
67
- watchingFiles.add(filePath);
68
- storiesByFiles.set(filePath, []);
69
- });
70
- removedFiles.forEach(filePath => watchingFiles.delete(filePath));
71
- Object.values(stories).forEach(story => {
72
- var _storiesByFiles$get;
73
-
74
- return (_storiesByFiles$get = storiesByFiles.get(story.parameters.fileName)) === null || _storiesByFiles$get === void 0 ? void 0 : _storiesByFiles$get.push(story);
75
- });
76
- channel.emit('storiesUpdated', storiesByFiles);
77
- storiesByFiles = new Map();
78
- };
79
- }
80
-
81
- function loadStoriesFromBundle(watch) {
82
- const bundlePath = _path.default.join((0, _utils.getCreeveyCache)(), 'storybook/main.js');
83
-
84
- if (watch) {
85
- (0, _messages.subscribeOn)('webpack', message => {
86
- if (message.type != 'rebuild succeeded') return;
87
- Object.values(global.__CREEVEY_HMR_DATA__).filter(({
88
- callback
89
- }) => callback).forEach(({
90
- data,
91
- callback
92
- }) => callback(data));
93
- delete require.cache[bundlePath];
94
- Promise.resolve(`${bundlePath}`).then(s => _interopRequireWildcard(require(s)));
95
- });
96
- }
97
-
98
- Promise.resolve(`${bundlePath}`).then(s => _interopRequireWildcard(require(s)));
99
- }
100
-
101
- async function loadStoriesDirectly(config, {
102
- watcher,
103
- debug
104
- }) {
105
- const {
106
- toRequireContext,
107
- normalizeStoriesEntry
108
- } = await (0, _helpers.importStorybookCoreCommon)();
109
- const {
110
- addParameters,
111
- configure
112
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('../entry')));
113
- const requireContext = await (await Promise.resolve().then(() => _interopRequireWildcard(require('../../loaders/babel/register')))).default(config, debug);
114
-
115
- const preview = (() => {
116
- try {
117
- return require.resolve(`${config.storybookDir}/preview`);
118
- } catch (_) {
119
- /* noop */
120
- }
121
- })();
122
-
123
- const {
124
- stories
125
- } = await (0, _helpers.importStorybookConfig)();
126
- const contexts = stories.map(entry => {
127
- const normalizedEntry = normalizeStoriesEntry(entry, {
128
- configDir: config.storybookDir,
129
- workingDir: process.cwd()
130
- });
131
- const {
132
- path: storiesPath,
133
- recursive,
134
- match
135
- } = toRequireContext(normalizedEntry);
136
- watcher === null || watcher === void 0 ? void 0 : watcher.add(_path.default.resolve(config.storybookDir, storiesPath));
137
- return () => requireContext(storiesPath, recursive, new RegExp(match));
138
- });
139
-
140
- let disposeCallback = data => void data;
141
-
142
- Object.assign(module, {
143
- hot: {
144
- data: {},
145
-
146
- accept() {
147
- /* noop */
148
- },
149
-
150
- dispose(callback) {
151
- disposeCallback = callback;
152
- }
153
-
154
- }
155
- });
156
-
157
- async function startStorybook() {
158
- if (preview) {
159
- const {
160
- parameters,
161
- globals,
162
- globalTypes
163
- } = await Promise.resolve(`${preview}`).then(s => _interopRequireWildcard(require(s)));
164
- if (parameters) addParameters(parameters);
165
- if (globals) addParameters({
166
- globals
167
- });
168
- if (globalTypes) addParameters({
169
- globalTypes
170
- });
171
- }
172
-
173
- try {
174
- configure(contexts.map(ctx => ctx()), module, false);
175
- } catch (error) {
176
- if (_cluster.default.isPrimary) _logger.logger.error(error);
177
- }
178
- }
179
-
180
- watcher === null || watcher === void 0 ? void 0 : watcher.add(config.storybookDir);
181
- watcher === null || watcher === void 0 ? void 0 : watcher.on('all', (_event, filename) => {
182
- var _module$hot;
183
-
184
- disposeCallback((_module$hot = module.hot) === null || _module$hot === void 0 ? void 0 : _module$hot.data);
185
- delete require.cache[filename];
186
- void startStorybook();
187
- });
188
- void startStorybook();
189
- } // TODO Do we need to support multiple storybooks here?
190
-
191
-
192
- const loadStories = async (config, {
193
- watch,
194
- debug
195
- }, storiesListener) => {
196
- const storybookApi = await initStorybookEnvironment();
197
- const Events = await (0, _helpers.importStorybookCoreEvents)();
198
- const {
199
- channel
200
- } = storybookApi;
201
- channel.removeAllListeners(Events.CURRENT_STORY_WAS_SET);
202
- channel.on('storiesUpdated', storiesListener);
203
- let watcher;
204
- if (watch) watcher = _chokidar.default.watch([], {
205
- ignoreInitial: true
206
- });
207
- const loadPromise = new Promise(resolve => {
208
- channel.once(Events.SET_STORIES, data => {
209
- const stories = data.stories;
210
- const files = new Set(Object.values(stories).map(story => story.parameters.fileName));
211
- if (watcher) channel.on(Events.SET_STORIES, watchStories(channel, watcher, files));
212
- resolve(stories);
213
- });
214
- });
215
- if (config.useWebpackToExtractTests) loadStoriesFromBundle(watch);else void loadStoriesDirectly(config, {
216
- watcher,
217
- debug
218
- });
219
- return loadPromise;
220
- };
221
-
222
- exports.loadStories = loadStories;
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
- }
@@ -1,59 +0,0 @@
1
- const ie11Preset = ['@babel/preset-env', {
2
- targets: {
3
- ie: '11'
4
- }
5
- }];
6
- export const babel = config => {
7
- const {
8
- presets = []
9
- } = config;
10
- return { ...config,
11
- presets: [...(presets || []), ie11Preset]
12
- };
13
- };
14
- const nodeModulesThatNeedToBeParsedBecauseTheyExposeES6 = ['creevey', '@testing-library'];
15
- const include = new RegExp("[\\\\/](".concat(nodeModulesThatNeedToBeParsedBecauseTheyExposeES6.join('|'), ")"));
16
- const es6Loader = {
17
- test: /\.js$/,
18
- use: [{
19
- loader: require.resolve('babel-loader'),
20
- options: {
21
- presets: [ie11Preset]
22
- }
23
- }],
24
- include
25
- };
26
- export const managerWebpack = function () {
27
- var _webpackConfig$module, _webpackConfig$module2;
28
-
29
- let webpackConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
30
- return { ...webpackConfig,
31
- module: { ...webpackConfig.module,
32
- rules: [...((_webpackConfig$module = (_webpackConfig$module2 = webpackConfig.module) === null || _webpackConfig$module2 === void 0 ? void 0 : _webpackConfig$module2.rules) !== null && _webpackConfig$module !== void 0 ? _webpackConfig$module : []), es6Loader]
33
- }
34
- };
35
- };
36
- export const webpack = function () {
37
- var _webpackConfig$module3, _webpackConfig$module4;
38
-
39
- let webpackConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
- const {
41
- entry
42
- } = webpackConfig;
43
- const polyfills = [require.resolve('whatwg-fetch')];
44
-
45
- if (Array.isArray(entry)) {
46
- polyfills.forEach(polyfill => {
47
- if (!entry.includes(polyfill)) {
48
- entry.unshift(polyfill);
49
- }
50
- });
51
- }
52
-
53
- return { ...webpackConfig,
54
- entry,
55
- module: { ...webpackConfig.module,
56
- rules: [...((_webpackConfig$module3 = (_webpackConfig$module4 = webpackConfig.module) === null || _webpackConfig$module4 === void 0 ? void 0 : _webpackConfig$module4.rules) !== null && _webpackConfig$module3 !== void 0 ? _webpackConfig$module3 : []), es6Loader]
57
- }
58
- };
59
- };
@@ -1,8 +0,0 @@
1
- export const previewAnnotations = function () {
2
- let entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3
- return [...entry, require.resolve('./preview')];
4
- };
5
- export function managerEntries() {
6
- let entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
7
- return [...entry, require.resolve('./register')];
8
- }
@@ -1,32 +0,0 @@
1
- import { subscribeOn } from './messages';
2
- import { loadTestsFromStories, saveStoriesJson, saveTestsJson } from './stories';
3
- import { extractStoriesData } from './storybook/providers/nodejs';
4
- export default async function extract(config, options) {
5
- if (config.useWebpackToExtractTests && process.env.__CREEVEY_ENV__ != 'test') {
6
- await new Promise((resolve, reject) => {
7
- subscribeOn('webpack', message => {
8
- switch (message.type) {
9
- case 'success':
10
- return resolve();
11
-
12
- case 'fail':
13
- return reject();
14
- }
15
- });
16
- void (async () => (await import('./loaders/webpack/compile')).default(config, options))();
17
- });
18
- }
19
-
20
- const tests = await loadTestsFromStories(Object.keys(config.browsers), async () => {
21
- const data = await extractStoriesData(config, {
22
- watch: false,
23
- debug: options.debug
24
- });
25
- const stories = data.stories;
26
- if (options.extract) saveStoriesJson(data, options.extract);
27
- return stories;
28
- });
29
- if (options.tests) saveTestsJson(tests); // eslint-disable-next-line no-process-exit
30
-
31
- process.exit(0);
32
- }
@@ -1,72 +0,0 @@
1
- import path from 'path';
2
- import { commonVisitor, FileType, mdxVisitor, previewVisitor, storyVisitor } from './helpers';
3
- import { logger } from '../../logger';
4
- let lastStoryFile = null;
5
- const stories = new Set();
6
- const reexportedStories = new Map();
7
- export default function () {
8
- return {
9
- pre() {
10
- const parents = this.opts.parents() ?? [];
11
- const story = this.opts.story();
12
- this.resourcePath = this.filename;
13
- this.fileType = FileType.Invalid; // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
-
15
- this.visitedTopPaths = new Set();
16
- this.visitedBindings = new Set();
17
- this.reexportedStories = reexportedStories;
18
-
19
- if (story && this.filename.startsWith(story) || parents.find(parent => this.reexportedStories.has(parent))) {
20
- this.fileType = FileType.Story;
21
- this.isMDX = path.parse(this.filename).ext == '.mdx';
22
- lastStoryFile = this.filename;
23
- stories.add(this.filename);
24
- } else if (this.filename.startsWith(this.opts.preview)) this.fileType = FileType.Preview;else if (lastStoryFile && this.opts.debug) {
25
- logger.warn('Trying to transform possible non-story file', this.resourcePath, 'Please check the', lastStoryFile);
26
- lastStoryFile = null; // TODO Add link to docs, how creevey works and what user should do in this situation
27
- }
28
- },
29
-
30
- visitor: { ...commonVisitor,
31
-
32
- ExportAllDeclaration(path) {
33
- if (this.fileType == FileType.Story && typeof storyVisitor.ExportAllDeclaration == 'function') {
34
- storyVisitor.ExportAllDeclaration.call(this, path, this);
35
- }
36
- },
37
-
38
- ExportDefaultDeclaration(path) {
39
- if (this.fileType == FileType.Story && typeof storyVisitor.ExportDefaultDeclaration == 'function') {
40
- storyVisitor.ExportDefaultDeclaration.call(this, path, this);
41
- }
42
- },
43
-
44
- ExportNamedDeclaration(path) {
45
- if (this.fileType == FileType.Preview && typeof previewVisitor.ExportNamedDeclaration == 'function') {
46
- previewVisitor.ExportNamedDeclaration.call(this, path, this);
47
- }
48
-
49
- if (this.fileType == FileType.Story && typeof storyVisitor.ExportNamedDeclaration == 'function') {
50
- storyVisitor.ExportNamedDeclaration.call(this, path, this);
51
- }
52
- },
53
-
54
- CallExpression(path) {
55
- if (this.fileType == FileType.Preview && typeof previewVisitor.CallExpression == 'function') {
56
- previewVisitor.CallExpression.call(this, path, this);
57
- }
58
-
59
- if (this.fileType == FileType.Story && typeof storyVisitor.CallExpression == 'function') {
60
- storyVisitor.CallExpression.call(this, path, this);
61
- }
62
- },
63
-
64
- FunctionDeclaration(path) {
65
- if (this.isMDX && typeof mdxVisitor.FunctionDeclaration == 'function') {
66
- mdxVisitor.FunctionDeclaration.call(this, path, this);
67
- }
68
- }
69
-
70
- }
71
- };
72
- }