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

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 (267) hide show
  1. package/AUTHORS +15 -15
  2. package/CHANGELOG.md +1275 -1275
  3. package/LICENSE +21 -21
  4. package/README.md +7 -0
  5. package/addon/README.md +3 -0
  6. package/addon/package.json +4 -0
  7. package/docs/config.md +212 -212
  8. package/docs/grid.md +10 -10
  9. package/docs/tests.md +63 -63
  10. package/jest.config.js +6 -0
  11. package/lib/cjs/cli.js +5 -0
  12. package/lib/cjs/client/addon/Manager.js +418 -0
  13. package/lib/cjs/client/addon/components/Addon.js +76 -0
  14. package/lib/cjs/client/addon/components/Icons.js +42 -0
  15. package/lib/cjs/client/addon/components/Panel.js +68 -0
  16. package/lib/cjs/client/addon/components/TestSelect.js +63 -0
  17. package/lib/cjs/client/addon/components/Tools.js +114 -0
  18. package/lib/cjs/client/addon/decorator.js +11 -0
  19. package/lib/cjs/client/addon/index.js +31 -0
  20. package/lib/cjs/client/addon/preset.js +81 -0
  21. package/lib/cjs/client/addon/readyForCapture.js +12 -0
  22. package/lib/cjs/client/addon/register.js +100 -0
  23. package/lib/cjs/client/addon/utils.js +38 -0
  24. package/lib/cjs/client/addon/withCreevey.js +558 -0
  25. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +85 -0
  26. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +88 -0
  27. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +176 -0
  28. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +179 -0
  29. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +110 -0
  30. package/lib/cjs/client/shared/components/ImagesView/index.js +45 -0
  31. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +46 -0
  32. package/lib/cjs/client/shared/components/PageFooter/Paging.js +98 -0
  33. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +78 -0
  34. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +144 -0
  35. package/lib/cjs/client/shared/components/ResultsPage.js +173 -0
  36. package/lib/cjs/client/shared/creeveyClientApi.js +107 -0
  37. package/lib/cjs/client/shared/helpers.js +482 -0
  38. package/lib/cjs/client/shared/viewMode.js +17 -0
  39. package/lib/cjs/client/web/142.js +2 -0
  40. package/lib/cjs/client/web/142.js.LICENSE.txt +12 -0
  41. package/lib/cjs/client/web/32.js +1 -0
  42. package/lib/cjs/client/web/551.js +1 -0
  43. package/lib/cjs/client/web/566.js +2 -0
  44. package/lib/cjs/client/web/566.js.LICENSE.txt +31 -0
  45. package/lib/cjs/client/web/691.js +2 -0
  46. package/lib/cjs/client/web/691.js.LICENSE.txt +8 -0
  47. package/lib/cjs/client/web/725.js +1 -0
  48. package/lib/cjs/client/web/index.html +19 -0
  49. package/lib/cjs/client/web/main.js +2 -38
  50. package/lib/cjs/client/web/main.js.LICENSE.txt +49 -0
  51. package/lib/cjs/creevey.js +69 -0
  52. package/lib/cjs/index.js +62 -0
  53. package/lib/cjs/server/config.js +96 -0
  54. package/lib/cjs/server/docker.js +146 -0
  55. package/lib/cjs/server/extract.js +50 -0
  56. package/lib/cjs/server/index.js +83 -0
  57. package/lib/cjs/server/loaders/babel/creevey-plugin.js +86 -0
  58. package/lib/cjs/server/loaders/babel/helpers.js +469 -0
  59. package/lib/cjs/server/loaders/babel/register.js +124 -0
  60. package/lib/cjs/server/loaders/hooks/mdx.js +30 -0
  61. package/lib/cjs/server/loaders/hooks/svelte.js +65 -0
  62. package/lib/cjs/server/loaders/webpack/compile.js +293 -0
  63. package/lib/cjs/server/loaders/webpack/creevey-loader.js +179 -0
  64. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +39 -0
  65. package/lib/cjs/server/loaders/webpack/mdx-loader.js +72 -0
  66. package/lib/cjs/server/loaders/webpack/start.js +41 -0
  67. package/lib/cjs/server/logger.js +48 -0
  68. package/lib/cjs/server/master/api.js +71 -0
  69. package/lib/cjs/server/master/index.js +146 -0
  70. package/lib/cjs/server/master/master.js +57 -0
  71. package/lib/cjs/server/master/pool.js +197 -0
  72. package/lib/cjs/server/master/runner.js +281 -0
  73. package/lib/cjs/server/master/server.js +129 -0
  74. package/lib/cjs/server/messages.js +264 -0
  75. package/lib/cjs/server/selenium/browser.js +672 -0
  76. package/lib/cjs/server/selenium/index.js +31 -0
  77. package/lib/cjs/server/selenium/selenoid.js +172 -0
  78. package/lib/cjs/server/stories.js +159 -0
  79. package/lib/cjs/server/storybook/entry.js +70 -0
  80. package/lib/cjs/server/storybook/helpers.js +159 -0
  81. package/lib/cjs/server/storybook/providers/browser.js +74 -0
  82. package/lib/cjs/server/storybook/providers/hybrid.js +84 -0
  83. package/lib/cjs/server/storybook/providers/nodejs.js +239 -0
  84. package/lib/cjs/server/testsFiles/parser.js +72 -0
  85. package/lib/cjs/server/testsFiles/register.js +48 -0
  86. package/lib/cjs/server/update.js +79 -0
  87. package/lib/cjs/server/utils.js +183 -0
  88. package/lib/cjs/server/worker/chai-image.js +142 -0
  89. package/lib/cjs/server/worker/helpers.js +69 -0
  90. package/lib/cjs/server/worker/index.js +15 -0
  91. package/lib/cjs/server/worker/reporter.js +108 -0
  92. package/lib/cjs/server/worker/worker.js +268 -0
  93. package/lib/cjs/shared/index.js +89 -0
  94. package/lib/cjs/shared/serializeRegExp.js +41 -0
  95. package/lib/cjs/types.js +74 -0
  96. package/lib/esm/cli.js +4 -0
  97. package/lib/esm/client/addon/Manager.js +402 -0
  98. package/lib/esm/client/addon/components/Addon.js +58 -0
  99. package/lib/esm/client/addon/components/Icons.js +27 -0
  100. package/lib/esm/client/addon/components/Panel.js +49 -0
  101. package/lib/esm/client/addon/components/TestSelect.js +49 -0
  102. package/lib/esm/client/addon/components/Tools.js +91 -0
  103. package/lib/esm/client/addon/decorator.js +2 -0
  104. package/lib/esm/client/addon/index.js +2 -0
  105. package/lib/esm/client/addon/preset.js +56 -0
  106. package/lib/esm/client/addon/readyForCapture.js +5 -0
  107. package/lib/esm/client/addon/register.js +79 -0
  108. package/lib/esm/client/addon/utils.js +31 -0
  109. package/lib/esm/client/addon/withCreevey.js +534 -0
  110. package/lib/esm/client/shared/components/ImagesView/BlendView.js +63 -0
  111. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +65 -0
  112. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +151 -0
  113. package/lib/esm/client/shared/components/ImagesView/SlideView.js +154 -0
  114. package/lib/esm/client/shared/components/ImagesView/SwapView.js +88 -0
  115. package/lib/esm/client/shared/components/ImagesView/index.js +5 -0
  116. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +32 -0
  117. package/lib/esm/client/shared/components/PageFooter/Paging.js +84 -0
  118. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +64 -0
  119. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +120 -0
  120. package/lib/esm/client/shared/components/ResultsPage.js +143 -0
  121. package/lib/esm/client/shared/creeveyClientApi.js +98 -0
  122. package/lib/esm/client/shared/helpers.js +424 -0
  123. package/lib/esm/client/shared/viewMode.js +6 -0
  124. package/lib/esm/creevey.js +54 -0
  125. package/lib/esm/index.js +5 -0
  126. package/lib/esm/server/config.js +73 -0
  127. package/lib/esm/server/docker.js +123 -0
  128. package/lib/esm/server/extract.js +34 -0
  129. package/lib/esm/server/index.js +64 -0
  130. package/lib/esm/server/loaders/babel/creevey-plugin.js +72 -0
  131. package/lib/esm/server/loaders/babel/helpers.js +452 -0
  132. package/lib/esm/server/loaders/babel/register.js +103 -0
  133. package/lib/esm/server/loaders/hooks/mdx.js +15 -0
  134. package/lib/esm/server/loaders/hooks/svelte.js +49 -0
  135. package/lib/esm/server/loaders/webpack/compile.js +270 -0
  136. package/lib/esm/server/loaders/webpack/creevey-loader.js +158 -0
  137. package/lib/esm/server/loaders/webpack/dummy-hmr.js +32 -0
  138. package/lib/esm/server/loaders/webpack/mdx-loader.js +58 -0
  139. package/lib/esm/server/loaders/webpack/start.js +27 -0
  140. package/lib/esm/server/logger.js +20 -0
  141. package/lib/esm/server/master/api.js +60 -0
  142. package/lib/esm/server/master/index.js +125 -0
  143. package/lib/esm/server/master/master.js +38 -0
  144. package/lib/esm/server/master/pool.js +176 -0
  145. package/lib/esm/server/master/runner.js +259 -0
  146. package/lib/esm/server/master/server.js +105 -0
  147. package/lib/esm/server/messages.js +232 -0
  148. package/lib/esm/server/selenium/browser.js +639 -0
  149. package/lib/esm/server/selenium/index.js +2 -0
  150. package/lib/esm/server/selenium/selenoid.js +149 -0
  151. package/lib/esm/server/stories.js +140 -0
  152. package/lib/esm/server/storybook/entry.js +46 -0
  153. package/lib/esm/server/storybook/helpers.js +98 -0
  154. package/lib/esm/server/storybook/providers/browser.js +60 -0
  155. package/lib/esm/server/storybook/providers/hybrid.js +64 -0
  156. package/lib/esm/server/storybook/providers/nodejs.js +217 -0
  157. package/lib/esm/server/testsFiles/parser.js +50 -0
  158. package/lib/esm/server/testsFiles/register.js +35 -0
  159. package/lib/esm/server/update.js +61 -0
  160. package/lib/esm/server/utils.js +142 -0
  161. package/lib/esm/server/worker/chai-image.js +130 -0
  162. package/lib/esm/server/worker/helpers.js +60 -0
  163. package/lib/esm/server/worker/index.js +1 -0
  164. package/lib/esm/server/worker/reporter.js +86 -0
  165. package/lib/esm/server/worker/worker.js +238 -0
  166. package/lib/esm/shared/index.js +66 -0
  167. package/lib/esm/shared/serializeRegExp.js +23 -0
  168. package/lib/esm/types.js +43 -0
  169. package/lib/types/cli.d.ts +1 -1
  170. package/lib/types/client/addon/Manager.d.ts +37 -37
  171. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  172. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  173. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  174. package/lib/types/client/addon/components/TestSelect.d.ts +8 -9
  175. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  176. package/lib/types/client/addon/decorator.d.ts +1 -1
  177. package/lib/types/client/addon/index.d.ts +2 -0
  178. package/lib/types/client/addon/preset.d.ts +23 -24
  179. package/lib/types/client/addon/readyForCapture.d.ts +6 -6
  180. package/lib/types/client/addon/register.d.ts +3 -3
  181. package/lib/types/client/addon/utils.d.ts +2 -2
  182. package/lib/types/client/addon/withCreevey.d.ts +24 -24
  183. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  184. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +24 -25
  185. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  186. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  187. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  188. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  189. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +8 -9
  190. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +7 -8
  191. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  192. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +16 -17
  193. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  194. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  195. package/lib/types/client/shared/helpers.d.ts +46 -46
  196. package/lib/types/client/shared/viewMode.d.ts +4 -4
  197. package/lib/types/client/web/CreeveyApp.d.ts +11 -12
  198. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  199. package/lib/types/client/web/CreeveyLoader.d.ts +2 -3
  200. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  201. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  202. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  203. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -13
  204. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  205. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -8
  206. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  207. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  208. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  209. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  210. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  211. package/lib/types/client/web/index.d.ts +4 -4
  212. package/lib/types/creevey.d.ts +1 -1
  213. package/lib/types/index.d.ts +1 -4
  214. package/lib/types/server/config.d.ts +4 -4
  215. package/lib/types/server/docker.d.ts +7 -7
  216. package/lib/types/server/extract.d.ts +2 -2
  217. package/lib/types/server/index.d.ts +2 -2
  218. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  219. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  220. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  221. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  222. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  223. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  224. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +4 -2
  225. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  226. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  227. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  228. package/lib/types/server/logger.d.ts +10 -6
  229. package/lib/types/server/master/api.d.ts +7 -7
  230. package/lib/types/server/master/index.d.ts +3 -3
  231. package/lib/types/server/master/master.d.ts +7 -7
  232. package/lib/types/server/master/pool.d.ts +31 -31
  233. package/lib/types/server/master/runner.d.ts +26 -26
  234. package/lib/types/server/master/server.d.ts +2 -2
  235. package/lib/types/server/messages.d.ts +27 -27
  236. package/lib/types/server/selenium/browser.d.ts +17 -17
  237. package/lib/types/server/selenium/index.d.ts +2 -2
  238. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  239. package/lib/types/server/stories.d.ts +8 -8
  240. package/lib/types/server/storybook/entry.d.ts +18 -18
  241. package/lib/types/server/storybook/helpers.d.ts +24 -24
  242. package/lib/types/server/storybook/providers/browser.d.ts +4 -4
  243. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -4
  244. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -9
  245. package/lib/types/server/testsFiles/parser.d.ts +12 -12
  246. package/lib/types/server/testsFiles/register.d.ts +2 -2
  247. package/lib/types/server/update.d.ts +2 -2
  248. package/lib/types/server/utils.d.ts +20 -20
  249. package/lib/types/server/worker/chai-image.d.ts +6 -6
  250. package/lib/types/server/worker/helpers.d.ts +8 -8
  251. package/lib/types/server/worker/index.d.ts +1 -1
  252. package/lib/types/server/worker/reporter.d.ts +8 -8
  253. package/lib/types/server/worker/worker.d.ts +4 -4
  254. package/lib/types/{shared.d.ts → shared/index.d.ts} +7 -16
  255. package/lib/types/shared/serializeRegExp.d.ts +9 -0
  256. package/lib/types/types.d.ts +490 -489
  257. package/package.json +115 -102
  258. package/preset.js +9 -9
  259. package/types/babel__register.d.ts +1 -1
  260. package/types/chai.d.ts +12 -12
  261. package/types/event-source-polyfill.d.ts +6 -6
  262. package/types/mdx.d.ts +3 -2
  263. package/types/mocha.d.ts +20 -20
  264. package/types/png.d.ts +4 -4
  265. package/lib/cjs/client/web/1.js +0 -13
  266. package/lib/cjs/client/web/2.js +0 -1
  267. package/storybook-static/stories.json +0 -21
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.storyVisitor = exports.previewVisitor = exports.mdxVisitor = exports.commonVisitor = exports.FileType = void 0;
7
+
8
+ var t = _interopRequireWildcard(require("@babel/types"));
9
+
10
+ var _types2 = require("../../../types");
11
+
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
16
+ function isExports(path) {
17
+ const {
18
+ parentPath
19
+ } = path;
20
+ return path.node.name == 'exports' && path.scope.hasGlobal('exports') && !path.scope.hasBinding('exports') && parentPath.isMemberExpression() && parentPath.get('object').isIdentifier({
21
+ name: 'exports'
22
+ });
23
+ }
24
+
25
+ function isModuleExports(path) {
26
+ const {
27
+ parentPath
28
+ } = path;
29
+ return path.node.name == 'module' && path.scope.hasGlobal('module') && !path.scope.hasBinding('module') && parentPath.isMemberExpression() && parentPath.get('object').isIdentifier({
30
+ name: 'module'
31
+ }) && parentPath.get('property').isIdentifier({
32
+ name: 'exports'
33
+ });
34
+ }
35
+
36
+ function isObjectAssign(path) {
37
+ if (!(path !== null && path !== void 0 && path.isCallExpression())) return false;
38
+ const calleePath = path.get('callee');
39
+ return calleePath.isMemberExpression() && calleePath.get('object').isIdentifier({
40
+ name: 'Object'
41
+ }) && calleePath.get('property').isIdentifier({
42
+ name: 'assign'
43
+ });
44
+ }
45
+
46
+ function isTemplateBind(path) {
47
+ if (!(path !== null && path !== void 0 && path.isCallExpression())) return false;
48
+ const calleePath = path.get('callee');
49
+ return calleePath.isMemberExpression() && calleePath.get('object').isIdentifier() && calleePath.get('property').isIdentifier({
50
+ name: 'bind'
51
+ });
52
+ }
53
+
54
+ function findRootPath(path) {
55
+ return path.find(x => {
56
+ var _x$parentPath;
57
+
58
+ return Boolean((_x$parentPath = x.parentPath) === null || _x$parentPath === void 0 ? void 0 : _x$parentPath.isProgram());
59
+ });
60
+ }
61
+
62
+ function getPropertyPath(path, name) {
63
+ const propertyPath = path.get('properties').find(propPath => propPath.isObjectProperty() && t.isIdentifier(propPath.node.key, {
64
+ name
65
+ }));
66
+ return propertyPath !== null && propertyPath !== void 0 && propertyPath.isObjectProperty() ? propertyPath : undefined;
67
+ } // TODO Support import and process them
68
+
69
+
70
+ function getDeclaratorPath(path) {
71
+ if (path !== null && path !== void 0 && path.isIdentifier()) {
72
+ const {
73
+ path: bindingPath
74
+ } = path.scope.getBinding(path.node.name) ?? {};
75
+ if (bindingPath !== null && bindingPath !== void 0 && bindingPath.isVariableDeclarator() || bindingPath !== null && bindingPath !== void 0 && bindingPath.isFunctionDeclaration() || bindingPath !== null && bindingPath !== void 0 && bindingPath.isImportSpecifier()) return bindingPath;
76
+ }
77
+ }
78
+
79
+ function getKindObjectNodePath(path) {
80
+ if (path.isObjectExpression()) {
81
+ return getPropertyPath(path, 'title') ? path : undefined;
82
+ }
83
+ }
84
+
85
+ function getIdentifiers(path) {
86
+ return path.map(x => x.isFunctionDeclaration() ? x.get('id') : x.get('id')).map(idPath => idPath.isIdentifier() ? idPath : null).filter(_types2.isDefined);
87
+ }
88
+
89
+ function removeAllPropsExcept(path, propNames) {
90
+ const getPropName = propPath => propNames.find(names => {
91
+ const keyPath = propPath.isObjectProperty() ? propPath.get('key') : propPath.get('key');
92
+ if (!keyPath.isIdentifier()) return;
93
+ const name = Array.isArray(names) ? names[0] : names;
94
+ return typeof name == 'string' ? keyPath.isIdentifier({
95
+ name
96
+ }) : name(keyPath.node.name);
97
+ });
98
+
99
+ path.get('properties').forEach(propPath => {
100
+ if (propPath.isObjectProperty() || propPath.isObjectMethod()) {
101
+ const propName = getPropName(propPath);
102
+ if (!propName) return propPath.remove();
103
+ const restNames = Array.isArray(propName) ? propName.slice(1) : [];
104
+ if (propPath.isObjectProperty() && restNames.length != 0) removeAllExpressionPropsExcept(propPath === null || propPath === void 0 ? void 0 : propPath.get('value'), restNames);
105
+ if (propPath.isObjectMethod() && restNames[0] == 'storyName') replaceStoryFnToNoop(propPath);
106
+ } else if (propPath.isSpreadElement()) {
107
+ removeAllExpressionPropsExcept(propPath.get('argument'), propNames);
108
+ } else propPath.remove();
109
+ });
110
+ }
111
+
112
+ function removeAllPropAssignsExcept(propAssigns, propNames) {
113
+ for (const [assignPath, props] of propAssigns ?? []) {
114
+ const restNames = props.reduce((subPropNames, prop) => {
115
+ const propName = subPropNames.find(names => {
116
+ const name = Array.isArray(names) ? names[0] : names;
117
+ return typeof name == 'string' ? name == prop : name(prop);
118
+ });
119
+ if (Array.isArray(propName)) return propName.slice(1);
120
+ if (!propName) assignPath.remove();
121
+ return [];
122
+ }, propNames);
123
+ if (restNames.length != 0) removeAllExpressionPropsExcept(assignPath.get('right'), restNames);
124
+ }
125
+ }
126
+
127
+ function replaceStoryFnToNoop(path) {
128
+ if (path !== null && path !== void 0 && path.isArrowFunctionExpression()) path.get('body').replaceWith(t.blockStatement([]));else if (path !== null && path !== void 0 && path.isFunctionDeclaration()) path.get('body').replaceWith(t.blockStatement([]));else if (path !== null && path !== void 0 && path.isFunctionExpression()) path.get('body').replaceWith(t.blockStatement([]));else if (path !== null && path !== void 0 && path.isObjectMethod()) path.get('body').replaceWith(t.blockStatement([]));
129
+ }
130
+
131
+ function getAssignmentPathWithProps(refPath) {
132
+ const assignmentPath = refPath.findParent(parentPath => parentPath.isAssignmentExpression());
133
+ if (!(assignmentPath !== null && assignmentPath !== void 0 && assignmentPath.isAssignmentExpression())) return;
134
+ const props = [];
135
+
136
+ for (let propPath = refPath.parentPath; propPath != assignmentPath; propPath = propPath.parentPath) {
137
+ var _propPath;
138
+
139
+ if (!((_propPath = propPath) !== null && _propPath !== void 0 && _propPath.isMemberExpression())) return;
140
+ const propNode = propPath.node.property;
141
+ if (!t.isIdentifier(propNode)) return;
142
+ props.push(propNode.name);
143
+ }
144
+
145
+ if (props.length != 0) return [assignmentPath, props];
146
+ }
147
+
148
+ function getPropertyAssignmentPaths(idPaths) {
149
+ const assignPaths = new Map();
150
+ idPaths.forEach(idPath => {
151
+ var _idPath$scope$getBind;
152
+
153
+ const referencePaths = ((_idPath$scope$getBind = idPath.scope.getBinding(idPath.node.name)) === null || _idPath$scope$getBind === void 0 ? void 0 : _idPath$scope$getBind.referencePaths) ?? [];
154
+ referencePaths.forEach(refPath => {
155
+ const [assignmentPath, props] = getAssignmentPathWithProps(refPath) ?? [];
156
+ if (assignmentPath && props) assignPaths.set(assignmentPath, props);
157
+ });
158
+ });
159
+ return assignPaths;
160
+ }
161
+
162
+ function removeAllExpressionPropsExcept(expressionPath, propNames) {
163
+ const resolvedDeclPath = getDeclaratorPath(expressionPath);
164
+ if (expressionPath !== null && expressionPath !== void 0 && expressionPath.isObjectExpression()) removeAllPropsExcept(expressionPath, propNames);else if (expressionPath !== null && expressionPath !== void 0 && expressionPath.isCallExpression()) {
165
+ if (isObjectAssign(expressionPath)) expressionPath.get('arguments').forEach(argumentPath => removeAllExpressionPropsExcept(argumentPath, storyProps));else if (isTemplateBind(expressionPath)) {
166
+ const calleePath = expressionPath.get('callee');
167
+ if (calleePath.isMemberExpression()) removeAllExpressionPropsExcept(calleePath.get('object'), propNames);
168
+ } else if (propNames[0] == 'storyName') {
169
+ expressionPath === null || expressionPath === void 0 ? void 0 : expressionPath.replaceWith(t.arrowFunctionExpression([], t.blockStatement([])));
170
+ }
171
+ } else if ((expressionPath !== null && expressionPath !== void 0 && expressionPath.isFunctionExpression() || expressionPath !== null && expressionPath !== void 0 && expressionPath.isArrowFunctionExpression()) && propNames[0] == 'storyName') replaceStoryFnToNoop(expressionPath);else if ((!resolvedDeclPath || resolvedDeclPath.isImportSpecifier()) && propNames[0] == 'storyName') expressionPath === null || expressionPath === void 0 ? void 0 : expressionPath.replaceWith(t.arrowFunctionExpression([], t.blockStatement([])));
172
+
173
+ if (resolvedDeclPath) {
174
+ if (!resolvedDeclPath.isImportSpecifier()) removeAllPropAssignsExcept(getPropertyAssignmentPaths(getIdentifiers([resolvedDeclPath])).entries(), propNames);
175
+ if (resolvedDeclPath.isVariableDeclarator()) removeAllExpressionPropsExcept(resolvedDeclPath.get('init'), propNames);
176
+ if (resolvedDeclPath.isFunctionDeclaration() && propNames[0] == 'storyName') replaceStoryFnToNoop(resolvedDeclPath);
177
+ }
178
+ }
179
+
180
+ function cleanUpStoriesOfCallChain(storiesOfPath) {
181
+ let callPath = storiesOfPath;
182
+
183
+ do {
184
+ const childCallPath = callPath;
185
+ const {
186
+ parentPath: memberPath
187
+ } = childCallPath;
188
+ if (!memberPath || !memberPath.isMemberExpression()) return;
189
+ callPath = memberPath.parentPath;
190
+ const propPath = memberPath.get('property');
191
+ if (!callPath.isCallExpression()) return;
192
+
193
+ if (propPath.isIdentifier({
194
+ name: 'add'
195
+ })) {
196
+ const [, storyPath, parametersPath] = callPath.get('arguments');
197
+ storyPath.replaceWith(t.arrowFunctionExpression([], t.blockStatement([])));
198
+ removeAllExpressionPropsExcept(parametersPath, ['creevey']);
199
+ } else if (propPath.isIdentifier({
200
+ name: 'addDecorator'
201
+ })) {
202
+ callPath.replaceWith(childCallPath);
203
+ } else if (propPath.isIdentifier({
204
+ name: 'addParameters'
205
+ })) {
206
+ const [parametersPath] = callPath.get('arguments');
207
+ removeAllExpressionPropsExcept(parametersPath, ['creevey']);
208
+ }
209
+ } while (callPath.parentPath != null);
210
+ }
211
+
212
+ function recursivelyRemoveUnreferencedBindings(path) {
213
+ const getUnreferencedBindings = () => {
214
+ path.scope.crawl();
215
+ return Object.values(path.scope.bindings).filter(binding => !binding.referenced || binding.referencePaths.every(refPath => refPath.find(x => x.node == binding.path.node)));
216
+ };
217
+
218
+ let bindings = getUnreferencedBindings();
219
+
220
+ do {
221
+ bindings.forEach(binding => !binding.path.removed && binding.path.remove());
222
+ } while ((bindings = getUnreferencedBindings()).length > 0);
223
+ }
224
+
225
+ function getUnvisitedRefs(paths, // eslint-disable-next-line @typescript-eslint/no-explicit-any
226
+ state) {
227
+ const rootPaths = [...new Set(paths.map(findRootPath).filter(_types2.isDefined))];
228
+ const bindings = new Set();
229
+ rootPaths.forEach(rootPath => {
230
+ state.visitedTopPaths.add(rootPath);
231
+ rootPath.traverse({
232
+ Identifier(identifierPath) {
233
+ const binding = identifierPath.scope.getBinding(identifierPath.node.name);
234
+
235
+ if ((binding === null || binding === void 0 ? void 0 : binding.scope) == rootPath.scope && !state.visitedBindings.has(binding)) {
236
+ bindings.add(binding);
237
+ state.visitedBindings.add(binding);
238
+ }
239
+ }
240
+
241
+ });
242
+ });
243
+ const refs = [].concat(...[...bindings].map(b => [b.path, ...b.referencePaths]));
244
+ return [...new Set(refs)];
245
+ }
246
+
247
+ let FileType;
248
+ exports.FileType = FileType;
249
+
250
+ (function (FileType) {
251
+ FileType[FileType["Invalid"] = -1] = "Invalid";
252
+ FileType[FileType["Entry"] = 0] = "Entry";
253
+ FileType[FileType["Preview"] = 1] = "Preview";
254
+ FileType[FileType["Story"] = 2] = "Story";
255
+ })(FileType || (exports.FileType = FileType = {}));
256
+
257
+ const commonVisitor = {
258
+ Program: {
259
+ enter(path) {
260
+ path.traverse({
261
+ TSDeclareFunction(path) {
262
+ path.remove();
263
+ },
264
+
265
+ TSTypeAliasDeclaration(path) {
266
+ path.remove();
267
+ },
268
+
269
+ TSInterfaceDeclaration(path) {
270
+ path.remove();
271
+ },
272
+
273
+ TSTypeAnnotation(path) {
274
+ path.remove();
275
+ },
276
+
277
+ TSAsExpression(path) {
278
+ path.replaceWith(path.get('expression'));
279
+ }
280
+
281
+ });
282
+ },
283
+
284
+ exit(path) {
285
+ if (this.fileType != FileType.Story && this.fileType != FileType.Preview) return;
286
+ recursivelyRemoveUnreferencedBindings(path);
287
+ path.traverse({
288
+ ImportDeclaration(path) {
289
+ if (path.node.specifiers.length == 0) path.remove();
290
+ }
291
+
292
+ });
293
+ let refs = [...this.visitedTopPaths];
294
+
295
+ while (refs.length > 0) {
296
+ refs = getUnvisitedRefs(refs, this);
297
+ }
298
+
299
+ path.get('body').filter(x => !this.visitedTopPaths.has(x)).forEach(x => x.remove());
300
+ }
301
+
302
+ }
303
+ };
304
+ exports.commonVisitor = commonVisitor;
305
+ const previewVisitor = {
306
+ ExportNamedDeclaration(namedPath) {
307
+ this.visitedTopPaths.add(namedPath);
308
+ const declarationPath = namedPath.get('declaration');
309
+ if (!declarationPath.isVariableDeclaration()) return;
310
+ declarationPath.get('declarations').forEach(declPath => {
311
+ if (!declPath.isVariableDeclarator()) return;
312
+ if (t.isIdentifier(declPath.node.id, {
313
+ name: 'decorators'
314
+ })) return declPath.remove();
315
+
316
+ if (t.isIdentifier(declPath.node.id, {
317
+ name: 'parameters'
318
+ })) {
319
+ removeAllExpressionPropsExcept(declPath.get('init'), ['creevey']);
320
+ }
321
+ });
322
+ },
323
+
324
+ CallExpression(rootCallPath) {
325
+ const rootPath = findRootPath(rootCallPath);
326
+ const calleePath = rootCallPath.get('callee');
327
+ if (calleePath.isIdentifier({
328
+ name: 'configure'
329
+ }) && rootPath) this.visitedTopPaths.add(rootPath);else if (calleePath.isIdentifier({
330
+ name: 'addDecorator'
331
+ })) rootCallPath.remove();else if (calleePath.isIdentifier({
332
+ name: 'addParameters'
333
+ })) {
334
+ const [argPath] = rootCallPath.get('arguments');
335
+ if (!argPath || !argPath.isObjectExpression()) return;
336
+ if (rootPath) this.visitedTopPaths.add(rootPath);
337
+ removeAllPropsExcept(argPath, ['creevey']);
338
+ }
339
+ }
340
+
341
+ };
342
+ exports.previewVisitor = previewVisitor;
343
+ const mdxVisitor = {
344
+ FunctionDeclaration(functionPath) {
345
+ var _functionPath$get$nod, _rootPath$scope$getBi;
346
+
347
+ const functionName = (_functionPath$get$nod = functionPath.get('id').node) === null || _functionPath$get$nod === void 0 ? void 0 : _functionPath$get$nod.name;
348
+ if (functionName != 'MDXContent') return;
349
+ const rootPath = findRootPath(functionPath);
350
+ const refs = (rootPath === null || rootPath === void 0 ? void 0 : (_rootPath$scope$getBi = rootPath.scope.getBinding(functionName)) === null || _rootPath$scope$getBi === void 0 ? void 0 : _rootPath$scope$getBi.referencePaths) ?? [];
351
+ refs.forEach(refPath => {
352
+ var _findRootPath;
353
+
354
+ return (_findRootPath = findRootPath(refPath)) === null || _findRootPath === void 0 ? void 0 : _findRootPath.remove();
355
+ });
356
+ rootPath === null || rootPath === void 0 ? void 0 : rootPath.remove();
357
+ }
358
+
359
+ };
360
+ exports.mdxVisitor = mdxVisitor;
361
+ const kindProps = ['title', 'id', ['parameters', 'creevey'], 'includeStories', 'excludeStories'];
362
+ const storyProps = ['storyName', ['story', 'name', ['parameters', 'creevey', 'docsOnly']], ['parameters', 'creevey', 'docsOnly']];
363
+ const exportsProps = [['default', ...kindProps], [name => name != 'default', ...storyProps]];
364
+ const storyVisitor = {
365
+ ExportDefaultDeclaration(defaultPath) {
366
+ const defaultDeclaration = defaultPath.get('declaration');
367
+ const declaratorPath = getDeclaratorPath(defaultDeclaration);
368
+ const kindPath = declaratorPath !== null && declaratorPath !== void 0 && declaratorPath.isVariableDeclarator() ? getKindObjectNodePath(declaratorPath.get('init')) : getKindObjectNodePath(defaultDeclaration);
369
+ if (!kindPath) return;
370
+ this.visitedTopPaths.add(defaultPath);
371
+ removeAllPropsExcept(kindPath, kindProps);
372
+ if (declaratorPath && !declaratorPath.isImportSpecifier()) removeAllPropAssignsExcept(getPropertyAssignmentPaths(getIdentifiers([declaratorPath])).entries(), kindProps);
373
+ },
374
+
375
+ ExportAllDeclaration(allPath) {
376
+ const request = allPath.get('source').node.value;
377
+ this.reexportedStories.set(this.resourcePath, (this.reexportedStories.get(this.resourcePath) ?? new Set()).add(request));
378
+ this.visitedTopPaths.add(allPath);
379
+ },
380
+
381
+ ExportNamedDeclaration(namedPath) {
382
+ this.visitedTopPaths.add(namedPath);
383
+ const declarationPath = namedPath.get('declaration');
384
+ let storyFnPropAssigns = new Map();
385
+
386
+ if (declarationPath.isVariableDeclaration()) {
387
+ const declarations = declarationPath.get('declarations');
388
+ declarations.map(x => x.get('init')).forEach(initPath => removeAllExpressionPropsExcept(initPath, storyProps));
389
+ storyFnPropAssigns = getPropertyAssignmentPaths(getIdentifiers(declarations));
390
+ } else if (declarationPath.isFunctionDeclaration()) {
391
+ replaceStoryFnToNoop(declarationPath);
392
+ storyFnPropAssigns = getPropertyAssignmentPaths(getIdentifiers([declarationPath]));
393
+ }
394
+
395
+ removeAllPropAssignsExcept(storyFnPropAssigns.entries(), storyProps);
396
+ },
397
+
398
+ CallExpression(rootCallPath) {
399
+ const rootPath = findRootPath(rootCallPath);
400
+ if (!rootCallPath.get('callee').isIdentifier({
401
+ name: 'storiesOf'
402
+ })) return;
403
+ if (rootPath) this.visitedTopPaths.add(rootPath);
404
+
405
+ if (rootPath !== null && rootPath !== void 0 && rootPath.isVariableDeclaration()) {
406
+ var _rootPath$get$find;
407
+
408
+ const storiesIdPath = (_rootPath$get$find = rootPath.get('declarations').find(decl => decl.get('init') == rootCallPath)) === null || _rootPath$get$find === void 0 ? void 0 : _rootPath$get$find.get('id');
409
+
410
+ if (storiesIdPath !== null && storiesIdPath !== void 0 && storiesIdPath.isIdentifier()) {
411
+ var _storiesIdPath$scope$;
412
+
413
+ (((_storiesIdPath$scope$ = storiesIdPath.scope.getBinding(storiesIdPath.node.name)) === null || _storiesIdPath$scope$ === void 0 ? void 0 : _storiesIdPath$scope$.referencePaths) ?? []).forEach(cleanUpStoriesOfCallChain);
414
+ }
415
+ }
416
+
417
+ cleanUpStoriesOfCallChain(rootCallPath);
418
+ },
419
+
420
+ Identifier(identifierPath) {
421
+ if (isExports(identifierPath)) {
422
+ const rootPath = findRootPath(identifierPath);
423
+ if (rootPath) this.visitedTopPaths.add(rootPath);
424
+ const [assignmentPath, props] = getAssignmentPathWithProps(identifierPath) ?? [];
425
+
426
+ if (assignmentPath && props) {
427
+ if (props.length == 1 && props[0] != 'default') {
428
+ const declaratorPath = getDeclaratorPath(assignmentPath.get('right'));
429
+
430
+ if (declaratorPath && !declaratorPath.isImportSpecifier()) {
431
+ removeAllPropAssignsExcept(getPropertyAssignmentPaths(getIdentifiers([declaratorPath])).entries(), storyProps);
432
+ } else {
433
+ const rightPath = assignmentPath.get('right');
434
+
435
+ if (isObjectAssign(rightPath)) {
436
+ rightPath.get('arguments').forEach(argumentPath => removeAllExpressionPropsExcept(argumentPath, storyProps));
437
+ } else rightPath.replaceWith(t.arrowFunctionExpression([], t.blockStatement([])));
438
+ }
439
+ } else removeAllPropAssignsExcept(new Map([[assignmentPath, props]]).entries(), exportsProps);
440
+ }
441
+ }
442
+
443
+ if (isModuleExports(identifierPath)) {
444
+ const rootPath = findRootPath(identifierPath);
445
+ if (rootPath) this.visitedTopPaths.add(rootPath);
446
+ const [assignmentPath, props] = getAssignmentPathWithProps(identifierPath) ?? [];
447
+
448
+ if (assignmentPath && props) {
449
+ if (props.length == 1 && props[0] == 'exports') {
450
+ removeAllExpressionPropsExcept(assignmentPath.get('right'), exportsProps);
451
+ } else if (props.length == 2 && props[0] == 'exports' && props[1] != 'default') {
452
+ const declaratorPath = getDeclaratorPath(assignmentPath.get('right'));
453
+
454
+ if (declaratorPath && !declaratorPath.isImportSpecifier()) {
455
+ removeAllPropAssignsExcept(getPropertyAssignmentPaths(getIdentifiers([declaratorPath])).entries(), storyProps);
456
+ } else {
457
+ const rightPath = assignmentPath.get('right');
458
+
459
+ if (isObjectAssign(rightPath)) {
460
+ rightPath.get('arguments').forEach(argumentPath => removeAllExpressionPropsExcept(argumentPath, storyProps));
461
+ } else rightPath.replaceWith(t.arrowFunctionExpression([], t.blockStatement([])));
462
+ }
463
+ } else removeAllPropAssignsExcept(new Map([[assignmentPath, props]]).entries(), [['exports', ...exportsProps]]);
464
+ }
465
+ }
466
+ }
467
+
468
+ };
469
+ exports.storyVisitor = storyVisitor;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = register;
7
+
8
+ var _module = _interopRequireDefault(require("module"));
9
+
10
+ var _fs = _interopRequireDefault(require("fs"));
11
+
12
+ var _path = require("path");
13
+
14
+ var _pirates = require("pirates");
15
+
16
+ var _types = require("../../../types");
17
+
18
+ var _utils = require("../../utils");
19
+
20
+ var _creeveyPlugin = _interopRequireDefault(require("./creevey-plugin"));
21
+
22
+ var _helpers = require("../../storybook/helpers");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ let parents = null;
31
+ let story = null; //@ts-expect-error private field doesn't have types
32
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
33
+
34
+ const jsLoader = _module.default._extensions['.js']; //@ts-expect-error private field doesn't have types
35
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
36
+
37
+ _module.default._extensions['.js'] = function (mod, filename) {
38
+ parents = Object.values(require.cache).filter(m => m === null || m === void 0 ? void 0 : m.children.includes(mod)).filter(_types.isDefined).map(m => m.filename); // eslint-disable-next-line @typescript-eslint/no-unsafe-call
39
+
40
+ jsLoader(mod, filename);
41
+ parents = null;
42
+ };
43
+
44
+ (0, _pirates.addHook)(() => '', {
45
+ exts: ['.jpg', '.jpeg', '.png', '.gif', '.eot', '.otf', '.svg', '.ttf', '.woff', '.woff2', '.css', '.less', '.scss', '.styl'],
46
+ ignoreNodeModules: false
47
+ });
48
+
49
+ function getRequireContext(rootDir) {
50
+ return function requireContext(rootPath, deep, filter) {
51
+ const ids = [];
52
+ let contextPath; // Relative path
53
+
54
+ if (rootPath.startsWith('.')) contextPath = (0, _path.resolve)(rootDir, rootPath); // Module path
55
+ else if (!(0, _path.isAbsolute)(rootPath)) contextPath = require.resolve(rootPath); // Absolute path
56
+ else contextPath = rootPath;
57
+
58
+ const traverse = dirPath => {
59
+ _fs.default.readdirSync(dirPath, {
60
+ withFileTypes: true
61
+ }).forEach(dirent => {
62
+ const filename = dirent.name;
63
+ const filePath = (0, _path.join)(dirPath, filename);
64
+ if (dirent.isDirectory() && deep) return traverse(filePath);
65
+ if (dirent.isFile() && ((filter === null || filter === void 0 ? void 0 : filter.test(`./${(0, _path.relative)(contextPath, filePath)}`)) ?? true)) return ids.push(filePath);
66
+ });
67
+ };
68
+
69
+ traverse(contextPath);
70
+
71
+ const context = id => {
72
+ story = id; // eslint-disable-next-line @typescript-eslint/no-var-requires
73
+
74
+ const storyModule = require(id);
75
+
76
+ story = null;
77
+ return storyModule;
78
+ };
79
+
80
+ context.id = contextPath;
81
+
82
+ context.keys = () => ids;
83
+
84
+ context.resolve = id => id;
85
+
86
+ return context;
87
+ };
88
+ }
89
+
90
+ async function register(config, debug = false) {
91
+ const rootDir = (0, _helpers.isStorybookVersionLessThan)(6, 4) ? config.storybookDir : process.cwd();
92
+ const requireContext = getRequireContext(rootDir);
93
+ const preview = (0, _path.resolve)(config.storybookDir, 'preview');
94
+ if ((0, _helpers.hasDocsAddon)()) await (await Promise.resolve().then(() => _interopRequireWildcard(require('../hooks/mdx')))).addMDXHook(() => story);
95
+ if ((0, _helpers.hasSvelteCSFAddon)()) await (await Promise.resolve().then(() => _interopRequireWildcard(require('../hooks/svelte')))).addSvelteHook(() => story); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
96
+
97
+ (await Promise.resolve().then(() => _interopRequireWildcard(require('@babel/register')))).default(config.babelOptions({
98
+ babelrc: false,
99
+ rootMode: 'upward-optional',
100
+ ignore: [/node_modules/],
101
+ extensions: [..._utils.extensions, ...((0, _helpers.hasDocsAddon)() ? ['.mdx'] : []), ...((0, _helpers.hasSvelteCSFAddon)() ? ['.svelte'] : [])],
102
+ parserOpts: {
103
+ sourceType: 'module',
104
+ plugins: ['classProperties', 'decorators-legacy', 'jsx', 'typescript']
105
+ },
106
+ plugins: [[_creeveyPlugin.default, {
107
+ debug,
108
+ preview,
109
+ parents: () => parents,
110
+ story: () => story
111
+ }], ['@babel/plugin-transform-runtime', {
112
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
113
+ version: require('@babel/helpers/package.json').version,
114
+ absoluteRuntime: true,
115
+ corejs: 3
116
+ }]],
117
+ presets: [['@babel/preset-env', {
118
+ targets: {
119
+ node: '10'
120
+ }
121
+ }]]
122
+ }));
123
+ return requireContext;
124
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addMDXHook = void 0;
7
+
8
+ var _pirates = require("pirates");
9
+
10
+ var _helpers = require("../../storybook/helpers");
11
+
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
16
+ const addMDXHook = async getStory => {
17
+ const mdx = (await Promise.resolve(`${(0, _helpers.resolveFromStorybookAddonDocs)('@mdx-js/mdx')}`).then(s => _interopRequireWildcard(require(s)))).default;
18
+ const {
19
+ mdxOptions
20
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require('../webpack/mdx-loader')));
21
+ (0, _pirates.addHook)((code, filename) => {
22
+ const story = getStory();
23
+ if (!story || !filename.startsWith(story)) return code;
24
+ return mdx.sync(code, mdxOptions());
25
+ }, {
26
+ exts: ['.mdx']
27
+ });
28
+ };
29
+
30
+ exports.addMDXHook = addMDXHook;