creevey 0.9.0-beta.0 → 0.9.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/lib/types/index.d.ts +4 -3
  2. package/lib/types/server/config.d.ts +1 -1
  3. package/lib/types/server/messages.d.ts +0 -1
  4. package/lib/types/server/{parser.d.ts → testsFiles/parser.d.ts} +1 -1
  5. package/lib/types/server/testsFiles/register.d.ts +2 -0
  6. package/lib/types/types.d.ts +3 -2
  7. package/package.json +5 -2
  8. package/lib/cjs/cli.js +0 -5
  9. package/lib/cjs/client/addon/Manager.js +0 -412
  10. package/lib/cjs/client/addon/components/Addon.js +0 -76
  11. package/lib/cjs/client/addon/components/Icons.js +0 -42
  12. package/lib/cjs/client/addon/components/Panel.js +0 -68
  13. package/lib/cjs/client/addon/components/TestSelect.js +0 -63
  14. package/lib/cjs/client/addon/components/Tools.js +0 -114
  15. package/lib/cjs/client/addon/decorator.js +0 -11
  16. package/lib/cjs/client/addon/preset.js +0 -81
  17. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  18. package/lib/cjs/client/addon/register.js +0 -96
  19. package/lib/cjs/client/addon/utils.js +0 -38
  20. package/lib/cjs/client/addon/withCreevey.js +0 -556
  21. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
  22. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
  23. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
  24. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -179
  25. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
  26. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  27. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
  28. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
  29. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
  30. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
  31. package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
  32. package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
  33. package/lib/cjs/client/shared/helpers.js +0 -482
  34. package/lib/cjs/client/shared/viewMode.js +0 -17
  35. package/lib/cjs/client/web/index.html +0 -19
  36. package/lib/cjs/creevey.js +0 -71
  37. package/lib/cjs/index.js +0 -62
  38. package/lib/cjs/server/config.js +0 -96
  39. package/lib/cjs/server/docker.js +0 -150
  40. package/lib/cjs/server/extract.js +0 -50
  41. package/lib/cjs/server/index.js +0 -83
  42. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  43. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  44. package/lib/cjs/server/loaders/babel/register.js +0 -126
  45. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  46. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  47. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  48. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  49. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  50. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  51. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  52. package/lib/cjs/server/logger.js +0 -47
  53. package/lib/cjs/server/master/api.js +0 -71
  54. package/lib/cjs/server/master/index.js +0 -146
  55. package/lib/cjs/server/master/master.js +0 -57
  56. package/lib/cjs/server/master/pool.js +0 -206
  57. package/lib/cjs/server/master/runner.js +0 -294
  58. package/lib/cjs/server/master/server.js +0 -129
  59. package/lib/cjs/server/messages.js +0 -266
  60. package/lib/cjs/server/parser.js +0 -85
  61. package/lib/cjs/server/selenium/browser.js +0 -680
  62. package/lib/cjs/server/selenium/index.js +0 -31
  63. package/lib/cjs/server/selenium/selenoid.js +0 -174
  64. package/lib/cjs/server/stories.js +0 -170
  65. package/lib/cjs/server/storybook/entry.js +0 -68
  66. package/lib/cjs/server/storybook/helpers.js +0 -165
  67. package/lib/cjs/server/storybook/providers/browser.js +0 -78
  68. package/lib/cjs/server/storybook/providers/hybrid.js +0 -79
  69. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  70. package/lib/cjs/server/update.js +0 -83
  71. package/lib/cjs/server/utils.js +0 -185
  72. package/lib/cjs/server/worker/chai-image.js +0 -142
  73. package/lib/cjs/server/worker/helpers.js +0 -69
  74. package/lib/cjs/server/worker/index.js +0 -15
  75. package/lib/cjs/server/worker/reporter.js +0 -120
  76. package/lib/cjs/server/worker/worker.js +0 -278
  77. package/lib/cjs/shared.js +0 -107
  78. package/lib/cjs/types.js +0 -74
  79. package/lib/esm/cli.js +0 -4
  80. package/lib/esm/client/addon/Manager.js +0 -396
  81. package/lib/esm/client/addon/components/Addon.js +0 -58
  82. package/lib/esm/client/addon/components/Icons.js +0 -27
  83. package/lib/esm/client/addon/components/Panel.js +0 -49
  84. package/lib/esm/client/addon/components/TestSelect.js +0 -49
  85. package/lib/esm/client/addon/components/Tools.js +0 -91
  86. package/lib/esm/client/addon/decorator.js +0 -2
  87. package/lib/esm/client/addon/preset.js +0 -56
  88. package/lib/esm/client/addon/readyForCapture.js +0 -5
  89. package/lib/esm/client/addon/register.js +0 -75
  90. package/lib/esm/client/addon/utils.js +0 -31
  91. package/lib/esm/client/addon/withCreevey.js +0 -532
  92. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -63
  93. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
  94. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -151
  95. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
  96. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -88
  97. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  98. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
  99. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
  100. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
  101. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
  102. package/lib/esm/client/shared/components/ResultsPage.js +0 -143
  103. package/lib/esm/client/shared/creeveyClientApi.js +0 -94
  104. package/lib/esm/client/shared/helpers.js +0 -424
  105. package/lib/esm/client/shared/viewMode.js +0 -6
  106. package/lib/esm/creevey.js +0 -56
  107. package/lib/esm/index.js +0 -7
  108. package/lib/esm/server/config.js +0 -73
  109. package/lib/esm/server/docker.js +0 -123
  110. package/lib/esm/server/extract.js +0 -34
  111. package/lib/esm/server/index.js +0 -64
  112. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  113. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  114. package/lib/esm/server/loaders/babel/register.js +0 -105
  115. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  116. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  117. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  118. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  119. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  120. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  121. package/lib/esm/server/loaders/webpack/start.js +0 -27
  122. package/lib/esm/server/logger.js +0 -20
  123. package/lib/esm/server/master/api.js +0 -60
  124. package/lib/esm/server/master/index.js +0 -125
  125. package/lib/esm/server/master/master.js +0 -38
  126. package/lib/esm/server/master/pool.js +0 -187
  127. package/lib/esm/server/master/runner.js +0 -272
  128. package/lib/esm/server/master/server.js +0 -105
  129. package/lib/esm/server/messages.js +0 -234
  130. package/lib/esm/server/parser.js +0 -63
  131. package/lib/esm/server/selenium/browser.js +0 -647
  132. package/lib/esm/server/selenium/index.js +0 -2
  133. package/lib/esm/server/selenium/selenoid.js +0 -151
  134. package/lib/esm/server/stories.js +0 -151
  135. package/lib/esm/server/storybook/entry.js +0 -44
  136. package/lib/esm/server/storybook/helpers.js +0 -106
  137. package/lib/esm/server/storybook/providers/browser.js +0 -61
  138. package/lib/esm/server/storybook/providers/hybrid.js +0 -63
  139. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  140. package/lib/esm/server/update.js +0 -65
  141. package/lib/esm/server/utils.js +0 -146
  142. package/lib/esm/server/worker/chai-image.js +0 -130
  143. package/lib/esm/server/worker/helpers.js +0 -60
  144. package/lib/esm/server/worker/index.js +0 -1
  145. package/lib/esm/server/worker/reporter.js +0 -98
  146. package/lib/esm/server/worker/worker.js +0 -248
  147. package/lib/esm/shared.js +0 -76
  148. package/lib/esm/types.js +0 -43
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _browser = require("./browser");
8
-
9
- Object.keys(_browser).forEach(function (key) {
10
- if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _browser[key]) return;
12
- Object.defineProperty(exports, key, {
13
- enumerable: true,
14
- get: function () {
15
- return _browser[key];
16
- }
17
- });
18
- });
19
-
20
- var _selenoid = require("./selenoid");
21
-
22
- Object.keys(_selenoid).forEach(function (key) {
23
- if (key === "default" || key === "__esModule") return;
24
- if (key in exports && exports[key] === _selenoid[key]) return;
25
- Object.defineProperty(exports, key, {
26
- enumerable: true,
27
- get: function () {
28
- return _selenoid[key];
29
- }
30
- });
31
- });
@@ -1,174 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.startSelenoidStandalone = startSelenoidStandalone;
7
- exports.startSelenoidContainer = startSelenoidContainer;
8
-
9
- var _path = _interopRequireDefault(require("path"));
10
-
11
- var _util = require("util");
12
-
13
- var _fs = require("fs");
14
-
15
- var _utils = require("../utils");
16
-
17
- var _docker = require("../docker");
18
-
19
- var _core = require("@octokit/core");
20
-
21
- var _messages = require("../messages");
22
-
23
- var _cluster = require("cluster");
24
-
25
- var _shelljs = require("shelljs");
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
- const mkdirAsync = (0, _util.promisify)(_fs.mkdir);
30
- const writeFileAsync = (0, _util.promisify)(_fs.writeFile);
31
- const copyFileAsync = (0, _util.promisify)(_fs.copyFile);
32
-
33
- async function createSelenoidConfig(browsers, {
34
- useDocker
35
- }) {
36
- const selenoidConfig = {};
37
-
38
- const selenoidConfigDir = _path.default.join((0, _utils.getCreeveyCache)(), 'selenoid');
39
-
40
- browsers.forEach(({
41
- browserName,
42
- version = 'latest',
43
- dockerImage = `selenoid/${browserName}:${version}`,
44
- webdriverCommand = []
45
- }) => {
46
- if (!selenoidConfig[browserName]) selenoidConfig[browserName] = {
47
- default: version,
48
- versions: {}
49
- };
50
- if (!useDocker && webdriverCommand.length == 0) throw new Error('Please specify "webdriverCommand" browser option with path to browser webdriver');
51
- selenoidConfig[browserName].versions[version] = {
52
- image: useDocker ? dockerImage : webdriverCommand,
53
- port: '4444',
54
- path: !useDocker || ['chrome', 'opera', 'webkit', 'MicrosoftEdge'].includes(browserName) ? '/' : '/wd/hub'
55
- };
56
- });
57
- await mkdirAsync(selenoidConfigDir, {
58
- recursive: true
59
- });
60
- await writeFileAsync(_path.default.join(selenoidConfigDir, 'browsers.json'), JSON.stringify(selenoidConfig));
61
- return selenoidConfigDir;
62
- }
63
-
64
- async function downloadSelenoidBinary(destination) {
65
- var _assets$find;
66
-
67
- const platformNameMapping = {
68
- darwin: 'selenoid_darwin_amd64',
69
- linux: 'selenoid_linux_amd64',
70
- win32: 'selenoid_windows_amd64.exe'
71
- };
72
- const octokit = new _core.Octokit();
73
- const response = await octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
74
- owner: 'aerokube',
75
- repo: 'selenoid'
76
- });
77
- const {
78
- assets
79
- } = response.data;
80
- const {
81
- browser_download_url: downloadUrl,
82
- size: binarySize
83
- } = (_assets$find = assets.find(({
84
- name
85
- }) => platformNameMapping[process.platform] == name)) !== null && _assets$find !== void 0 ? _assets$find : {};
86
- if ((0, _fs.existsSync)(destination) && (0, _fs.lstatSync)(destination).size == binarySize) return;
87
-
88
- if (!downloadUrl) {
89
- throw new Error(`Couldn't get download url for selenoid binary. Please download it manually from "https://github.com/aerokube/selenoid/releases/latest" and define "selenoidPath" option in the Creevey config`);
90
- }
91
-
92
- return (0, _utils.downloadBinary)(downloadUrl, destination);
93
- }
94
-
95
- async function startSelenoidStandalone(config, debug) {
96
- config.gridUrl = 'http://localhost:4444/wd/hub';
97
- if (_cluster.isWorker) return;
98
- const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
99
- const selenoidConfigDir = await createSelenoidConfig(browsers, {
100
- useDocker: false
101
- });
102
-
103
- const binaryPath = _path.default.join(selenoidConfigDir, process.platform == 'win32' ? 'selenoid.exe' : 'selenoid');
104
-
105
- if (config.selenoidPath) {
106
- await copyFileAsync(_path.default.resolve(config.selenoidPath), binaryPath);
107
- } else {
108
- await downloadSelenoidBinary(binaryPath);
109
- } // TODO Download browser webdrivers
110
-
111
-
112
- try {
113
- if (process.platform != 'win32') (0, _shelljs.chmod)('+x', binaryPath);
114
- } catch (_) {
115
- /* noop */
116
- }
117
-
118
- const selenoidProcess = (0, _shelljs.exec)(`${binaryPath} -conf ./browsers.json -disable-docker`, {
119
- async: true,
120
- cwd: selenoidConfigDir
121
- });
122
-
123
- if (debug) {
124
- var _selenoidProcess$stdo, _selenoidProcess$stde;
125
-
126
- (_selenoidProcess$stdo = selenoidProcess.stdout) === null || _selenoidProcess$stdo === void 0 ? void 0 : _selenoidProcess$stdo.pipe(process.stdout);
127
- (_selenoidProcess$stde = selenoidProcess.stderr) === null || _selenoidProcess$stde === void 0 ? void 0 : _selenoidProcess$stde.pipe(process.stderr);
128
- }
129
-
130
- (0, _messages.subscribeOn)('shutdown', () => selenoidProcess.kill());
131
- }
132
-
133
- async function startSelenoidContainer(config, debug) {
134
- const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
135
- const images = [];
136
- let limit = 0;
137
- browsers.forEach(({
138
- browserName,
139
- version = 'latest',
140
- limit: browserLimit = 1,
141
- dockerImage = `selenoid/${browserName}:${version}`
142
- }) => {
143
- limit += browserLimit;
144
- images.push(dockerImage);
145
- });
146
- const selenoidImage = config.dockerImage;
147
- const pullOptions = {
148
- auth: config.dockerAuth,
149
- platform: config.dockerImagePlatform
150
- };
151
-
152
- if (config.pullImages) {
153
- await (0, _docker.pullImages)([selenoidImage], pullOptions);
154
- await (0, _docker.pullImages)(images, pullOptions);
155
- } // TODO Allow pass custom options
156
-
157
-
158
- const selenoidOptions = {
159
- ExposedPorts: {
160
- '4444/tcp': {}
161
- },
162
- HostConfig: {
163
- PortBindings: {
164
- '4444/tcp': [{
165
- HostPort: '4444'
166
- }]
167
- },
168
- Binds: ['/var/run/docker.sock:/var/run/docker.sock', `${await createSelenoidConfig(browsers, {
169
- useDocker: true
170
- })}:/etc/selenoid/:ro`]
171
- }
172
- };
173
- return (0, _docker.runImage)(selenoidImage, ['-limit', String(limit)], selenoidOptions, debug);
174
- }
@@ -1,170 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.loadTestsFromStories = loadTestsFromStories;
7
- exports.saveStoriesJson = saveStoriesJson;
8
- exports.saveTestsJson = saveTestsJson;
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _fs = require("fs");
13
-
14
- var _crypto = require("crypto");
15
-
16
- var _lodash = require("lodash");
17
-
18
- var _types = require("../types");
19
-
20
- var _utils = require("./utils");
21
-
22
- var _helpers = require("./storybook/helpers");
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- function storyTestFabric(delay, testFn) {
27
- return async function storyTest() {
28
- var _testFn$call;
29
-
30
- delay ? await new Promise(resolve => setTimeout(resolve, delay)) : void 0;
31
- await ((_testFn$call = testFn === null || testFn === void 0 ? void 0 : testFn.call(this)) !== null && _testFn$call !== void 0 ? _testFn$call : this.screenshots.length > 0 ? this.expect(this.screenshots.reduce((screenshots, {
32
- imageName,
33
- screenshot
34
- }, index) => ({ ...screenshots,
35
- [imageName !== null && imageName !== void 0 ? imageName : `screenshot_${index}`]: screenshot
36
- }), {})).to.matchImages() : this.expect(await this.takeScreenshot()).to.matchImage());
37
- };
38
- }
39
-
40
- function createCreeveyTest(browser, storyMeta, skipOptions, testName) {
41
- const {
42
- kind,
43
- name: story,
44
- id: storyId
45
- } = storyMeta;
46
- const path = [kind, story, testName, browser].filter(_types.isDefined);
47
- const skip = skipOptions ? (0, _utils.shouldSkip)(browser, {
48
- kind,
49
- story
50
- }, skipOptions, testName) : false;
51
- const id = (0, _crypto.createHash)('sha1').update(path.join('/')).digest('hex');
52
- return {
53
- id,
54
- skip,
55
- browser,
56
- testName,
57
- storyPath: [...kind.split('/').map(x => x.trim()), story],
58
- storyId
59
- };
60
- }
61
-
62
- function convertStories(browserName, stories) {
63
- const tests = {};
64
- (Array.isArray(stories) ? stories : Object.values(stories)).forEach(storyMeta => {
65
- var _storyMeta$parameters;
66
-
67
- // TODO Skip docsOnly stories for now
68
- if (storyMeta.parameters.docsOnly) return;
69
- const {
70
- delay: delayParam,
71
- tests: storyTests,
72
- skip
73
- } = (_storyMeta$parameters = storyMeta.parameters.creevey) !== null && _storyMeta$parameters !== void 0 ? _storyMeta$parameters : {};
74
- const delay = typeof delayParam == 'number' ? delayParam : delayParam !== null && delayParam !== void 0 && delayParam.for.includes(browserName) ? delayParam.ms : 0; // typeof tests === "undefined" => rootSuite -> kindSuite -> storyTest -> [browsers.png]
75
- // typeof tests === "function" => rootSuite -> kindSuite -> storyTest -> browser -> [images.png]
76
- // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> [browsers.png]
77
- // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> browser -> [images.png]
78
-
79
- if (!storyTests) {
80
- const test = createCreeveyTest(browserName, storyMeta, skip);
81
- tests[test.id] = { ...test,
82
- storyId: storyMeta.id,
83
- story: storyMeta,
84
- fn: storyTestFabric(delay)
85
- };
86
- return;
87
- }
88
-
89
- Object.entries(storyTests).forEach(([testName, testFn]) => {
90
- const test = createCreeveyTest(browserName, storyMeta, skip, testName);
91
- tests[test.id] = { ...test,
92
- storyId: storyMeta.id,
93
- story: storyMeta,
94
- fn: storyTestFabric(delay, testFn)
95
- };
96
- });
97
- });
98
- return tests;
99
- }
100
-
101
- async function loadTestsFromStories(browsers, provider, update) {
102
- const testIdsByFiles = new Map();
103
- const stories = await provider(storiesByFiles => {
104
- const testsDiff = {};
105
- const tests = {};
106
- browsers.forEach(browser => {
107
- Array.from(storiesByFiles.entries()).forEach(([filename, stories]) => {
108
- var _testIdsByFiles$get$f, _testIdsByFiles$get;
109
-
110
- Object.assign(tests, convertStories(browser, stories));
111
- const changed = Object.keys(tests);
112
- const removed = (_testIdsByFiles$get$f = (_testIdsByFiles$get = testIdsByFiles.get(filename)) === null || _testIdsByFiles$get === void 0 ? void 0 : _testIdsByFiles$get.filter(testId => !tests[testId])) !== null && _testIdsByFiles$get$f !== void 0 ? _testIdsByFiles$get$f : [];
113
- if (changed.length == 0) testIdsByFiles.delete(filename);else testIdsByFiles.set(filename, changed);
114
- Object.assign(testsDiff, tests);
115
- removed.forEach(testId => testsDiff[testId] = undefined);
116
- });
117
- });
118
- update === null || update === void 0 ? void 0 : update(testsDiff);
119
- });
120
- const tests = browsers.reduce((tests, browser) => Object.assign(tests, convertStories(browser, stories)), {});
121
- Object.values(tests).filter(_types.isDefined).forEach(({
122
- id,
123
- story: {
124
- parameters: {
125
- fileName
126
- }
127
- }
128
- }) => {
129
- var _testIdsByFiles$get2;
130
-
131
- return (// TODO Don't use filename as a key, due possible collisions if two require.context with same structure of modules are defined
132
- testIdsByFiles.set(fileName, [...((_testIdsByFiles$get2 = testIdsByFiles.get(fileName)) !== null && _testIdsByFiles$get2 !== void 0 ? _testIdsByFiles$get2 : []), id])
133
- );
134
- });
135
- return tests;
136
- }
137
-
138
- function saveStoriesJson(storiesData, extract) {
139
- var _storiesData$stories;
140
-
141
- const outputDir = typeof extract == 'boolean' ? 'storybook-static' : extract;
142
-
143
- if (!(0, _helpers.isStorybookVersionLessThan)(6)) {
144
- // NOTE Copy-pasted from Storybook's `getStoriesJsonData` method
145
- const allowed = ['fileName', 'docsOnly', 'framework', '__id', '__isArgsStory'];
146
- storiesData.globalParameters = (0, _lodash.pick)(storiesData.globalParameters, allowed); // @ts-expect-error ignore error
147
-
148
- storiesData.kindParameters = (0, _lodash.mapValues)(storiesData.kindParameters, v => (0, _lodash.pick)(v, allowed)); // @ts-expect-error ignore error
149
-
150
- storiesData.stories = (0, _lodash.mapValues)(storiesData.stories, v => ({ ...(0, _lodash.pick)(v, ['id', 'name', 'kind', 'story']),
151
- parameters: (0, _lodash.pick)(v.parameters, allowed)
152
- }));
153
- } // TODO Fix args stories
154
-
155
-
156
- (0, _utils.removeProps)(storiesData !== null && storiesData !== void 0 ? storiesData : {}, ['stories', () => true, 'parameters', '__isArgsStory']);
157
- Object.values((_storiesData$stories = storiesData === null || storiesData === void 0 ? void 0 : storiesData.stories) !== null && _storiesData$stories !== void 0 ? _storiesData$stories : {}).forEach(story => (0, _types.isObject)(story) && 'parameters' in story && (0, _types.isObject)(story.parameters) && delete story.parameters.__isArgsStory);
158
- (0, _fs.mkdirSync)(outputDir, {
159
- recursive: true
160
- });
161
- (0, _fs.writeFileSync)(_path.default.join(outputDir, 'stories.json'), JSON.stringify(storiesData, null, 2));
162
- }
163
-
164
- function saveTestsJson(tests, dstPath = process.cwd()) {
165
- (0, _fs.mkdirSync)(dstPath, {
166
- recursive: true
167
- });
168
- (0, _fs.writeFileSync)(_path.default.join(dstPath, 'tests.json'), // eslint-disable-next-line @typescript-eslint/no-unsafe-return
169
- JSON.stringify(tests, (_, value) => (0, _types.isFunction)(value) ? value.toString() : value, 2));
170
- }
@@ -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
- }