creevey 0.9.0-beta.2 → 0.9.0-beta.21

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 (518) hide show
  1. package/.yarnrc.yml +1 -0
  2. package/CHANGELOG.md +51 -0
  3. package/README.md +11 -3
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +5 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/client/addon/components/Addon.d.ts +8 -0
  8. package/dist/client/addon/components/Addon.js +57 -0
  9. package/dist/client/addon/components/Addon.js.map +1 -0
  10. package/dist/client/addon/components/Icons.js +18 -0
  11. package/dist/client/addon/components/Icons.js.map +1 -0
  12. package/{lib/types → dist}/client/addon/components/Panel.d.ts +1 -1
  13. package/dist/client/addon/components/Panel.js +32 -0
  14. package/dist/client/addon/components/Panel.js.map +1 -0
  15. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +1 -2
  16. package/dist/client/addon/components/TestSelect.js +33 -0
  17. package/dist/client/addon/components/TestSelect.js.map +1 -0
  18. package/dist/client/addon/components/Tools.d.ts +6 -0
  19. package/dist/client/addon/components/Tools.js +89 -0
  20. package/dist/client/addon/components/Tools.js.map +1 -0
  21. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +9 -8
  22. package/dist/client/addon/controller.js +208 -0
  23. package/dist/client/addon/controller.js.map +1 -0
  24. package/dist/client/addon/decorator.d.ts +1 -0
  25. package/dist/client/addon/decorator.js +6 -0
  26. package/dist/client/addon/decorator.js.map +1 -0
  27. package/dist/client/addon/index.d.ts +2 -0
  28. package/dist/client/addon/index.js +19 -0
  29. package/dist/client/addon/index.js.map +1 -0
  30. package/dist/client/addon/manager.js +41 -0
  31. package/dist/client/addon/manager.js.map +1 -0
  32. package/dist/client/addon/preset.d.ts +2 -0
  33. package/dist/client/addon/preset.js +6 -0
  34. package/dist/client/addon/preset.js.map +1 -0
  35. package/dist/client/addon/preview.d.ts +4 -0
  36. package/dist/client/addon/preview.js +8 -0
  37. package/dist/client/addon/preview.js.map +1 -0
  38. package/dist/client/addon/readyForCapture.js +7 -0
  39. package/dist/client/addon/readyForCapture.js.map +1 -0
  40. package/{lib/types → dist}/client/addon/utils.d.ts +2 -1
  41. package/dist/client/addon/utils.js +27 -0
  42. package/dist/client/addon/utils.js.map +1 -0
  43. package/{lib/types → dist}/client/addon/withCreevey.d.ts +6 -5
  44. package/dist/client/addon/withCreevey.js +286 -0
  45. package/dist/client/addon/withCreevey.js.map +1 -0
  46. package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
  47. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  48. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  49. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  50. package/dist/client/shared/components/ImagesView/ImagesView.js +43 -0
  51. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  52. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
  53. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  54. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  55. package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
  56. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  57. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  58. package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
  59. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  60. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  61. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +1 -11
  62. package/dist/client/shared/components/ImagesView/common.js +14 -0
  63. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  64. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  65. package/dist/client/shared/components/ImagesView/index.js +14 -0
  66. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  67. package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +0 -1
  68. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
  69. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  70. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +1 -2
  71. package/dist/client/shared/components/PageFooter/Paging.js +68 -0
  72. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  73. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  74. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  75. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  76. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +2 -5
  77. package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
  78. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  79. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +5 -5
  80. package/dist/client/shared/components/ResultsPage.js +95 -0
  81. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  82. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +1 -1
  83. package/dist/client/shared/creeveyClientApi.js +53 -0
  84. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  85. package/{lib/types → dist}/client/shared/helpers.d.ts +3 -3
  86. package/dist/client/shared/helpers.js +381 -0
  87. package/dist/client/shared/helpers.js.map +1 -0
  88. package/{lib/types → dist}/client/shared/viewMode.d.ts +1 -1
  89. package/dist/client/shared/viewMode.js +11 -0
  90. package/dist/client/shared/viewMode.js.map +1 -0
  91. package/dist/client/web/202.js +1 -0
  92. package/dist/client/web/270.js +43 -0
  93. package/dist/client/web/752.js +1 -0
  94. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +2 -3
  95. package/dist/client/web/CreeveyApp.js +130 -0
  96. package/dist/client/web/CreeveyApp.js.map +1 -0
  97. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +1 -1
  98. package/dist/client/web/CreeveyContext.js +17 -0
  99. package/dist/client/web/CreeveyContext.js.map +1 -0
  100. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  101. package/dist/client/web/CreeveyLoader.js +52 -0
  102. package/dist/client/web/CreeveyLoader.js.map +1 -0
  103. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +6 -3
  104. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  105. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  106. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  107. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  108. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +2 -2
  109. package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
  110. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  111. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +2 -3
  112. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  113. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  114. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
  115. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  116. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  117. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -2
  118. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  119. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  120. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +4 -2
  121. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  122. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  123. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  124. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  125. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  126. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  127. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  128. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  129. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  130. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  131. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +6 -4
  132. package/dist/client/web/KeyboardEventsContext.js +116 -0
  133. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  134. package/{lib/types → dist}/client/web/index.d.ts +1 -1
  135. package/{lib/cjs → dist}/client/web/index.html +12 -3
  136. package/dist/client/web/index.js +75 -0
  137. package/dist/client/web/index.js.map +1 -0
  138. package/dist/client/web/main.js +79 -0
  139. package/dist/client/web/main.js.LICENSE.txt +34 -0
  140. package/dist/creevey.d.ts +1 -0
  141. package/dist/creevey.js +52 -0
  142. package/dist/creevey.js.map +1 -0
  143. package/dist/index.d.ts +5 -0
  144. package/dist/index.js +24 -0
  145. package/dist/index.js.map +1 -0
  146. package/{lib/types → dist}/server/config.d.ts +1 -1
  147. package/dist/server/config.js +84 -0
  148. package/dist/server/config.js.map +1 -0
  149. package/{lib/types → dist}/server/docker.d.ts +2 -2
  150. package/dist/server/docker.js +122 -0
  151. package/dist/server/docker.js.map +1 -0
  152. package/{lib/types → dist}/server/index.d.ts +1 -1
  153. package/dist/server/index.js +47 -0
  154. package/dist/server/index.js.map +1 -0
  155. package/dist/server/logger.d.ts +10 -0
  156. package/dist/server/logger.js +25 -0
  157. package/dist/server/logger.js.map +1 -0
  158. package/{lib/types → dist}/server/master/api.d.ts +1 -1
  159. package/dist/server/master/api.js +50 -0
  160. package/dist/server/master/api.js.map +1 -0
  161. package/dist/server/master/index.d.ts +3 -0
  162. package/dist/server/master/index.js +110 -0
  163. package/dist/server/master/index.js.map +1 -0
  164. package/{lib/types → dist}/server/master/master.d.ts +2 -2
  165. package/dist/server/master/master.js +40 -0
  166. package/dist/server/master/master.js.map +1 -0
  167. package/{lib/types → dist}/server/master/pool.d.ts +1 -2
  168. package/dist/server/master/pool.js +186 -0
  169. package/dist/server/master/pool.js.map +1 -0
  170. package/{lib/types → dist}/server/master/runner.d.ts +3 -8
  171. package/dist/server/master/runner.js +172 -0
  172. package/dist/server/master/runner.js.map +1 -0
  173. package/dist/server/master/server.d.ts +2 -0
  174. package/dist/server/master/server.js +114 -0
  175. package/dist/server/master/server.js.map +1 -0
  176. package/{lib/types → dist}/server/messages.d.ts +13 -14
  177. package/dist/server/messages.js +222 -0
  178. package/dist/server/messages.js.map +1 -0
  179. package/{lib/types → dist}/server/selenium/browser.d.ts +5 -3
  180. package/dist/server/selenium/browser.js +634 -0
  181. package/dist/server/selenium/browser.js.map +1 -0
  182. package/dist/server/selenium/index.d.ts +2 -0
  183. package/dist/server/selenium/index.js +19 -0
  184. package/dist/server/selenium/index.js.map +1 -0
  185. package/{lib/types → dist}/server/selenium/selenoid.d.ts +1 -1
  186. package/dist/server/selenium/selenoid.js +120 -0
  187. package/dist/server/selenium/selenoid.js.map +1 -0
  188. package/{lib/types → dist}/server/stories.d.ts +2 -7
  189. package/dist/server/stories.js +92 -0
  190. package/dist/server/stories.js.map +1 -0
  191. package/dist/server/storybook/providers/browser.d.ts +2 -0
  192. package/dist/server/storybook/providers/browser.js +60 -0
  193. package/dist/server/storybook/providers/browser.js.map +1 -0
  194. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  195. package/dist/server/storybook/providers/hybrid.js +59 -0
  196. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  197. package/dist/server/telemetry.d.ts +2 -0
  198. package/dist/server/telemetry.js +196 -0
  199. package/dist/server/telemetry.js.map +1 -0
  200. package/{lib/types → dist}/server/testsFiles/parser.d.ts +2 -6
  201. package/dist/server/testsFiles/parser.js +50 -0
  202. package/dist/server/testsFiles/parser.js.map +1 -0
  203. package/dist/server/update.d.ts +2 -0
  204. package/dist/server/update.js +53 -0
  205. package/dist/server/update.js.map +1 -0
  206. package/{lib/types → dist}/server/utils.d.ts +11 -7
  207. package/dist/server/utils.js +142 -0
  208. package/dist/server/utils.js.map +1 -0
  209. package/{lib/types → dist}/server/worker/chai-image.d.ts +1 -2
  210. package/dist/server/worker/chai-image.js +113 -0
  211. package/dist/server/worker/chai-image.js.map +1 -0
  212. package/{lib/types → dist}/server/worker/helpers.d.ts +1 -1
  213. package/dist/server/worker/helpers.js +57 -0
  214. package/dist/server/worker/helpers.js.map +1 -0
  215. package/dist/server/worker/index.d.ts +1 -0
  216. package/dist/server/worker/index.js +6 -0
  217. package/dist/server/worker/index.js.map +1 -0
  218. package/dist/server/worker/reporter.js +130 -0
  219. package/dist/server/worker/reporter.js.map +1 -0
  220. package/dist/server/worker/worker.d.ts +4 -0
  221. package/dist/server/worker/worker.js +213 -0
  222. package/dist/server/worker/worker.js.map +1 -0
  223. package/dist/shared/index.d.ts +7 -0
  224. package/dist/shared/index.js +77 -0
  225. package/dist/shared/index.js.map +1 -0
  226. package/dist/shared/serializeRegExp.d.ts +9 -0
  227. package/dist/shared/serializeRegExp.js +25 -0
  228. package/dist/shared/serializeRegExp.js.map +1 -0
  229. package/{lib/types → dist}/types.d.ts +73 -103
  230. package/dist/types.js +61 -0
  231. package/dist/types.js.map +1 -0
  232. package/docs/config.md +30 -30
  233. package/docs/tests.md +3 -3
  234. package/eslint.config.mjs +62 -0
  235. package/manager/README.md +3 -0
  236. package/manager/package.json +3 -0
  237. package/package.json +137 -165
  238. package/preset/README.md +3 -0
  239. package/preset/package.json +3 -0
  240. package/preview/README.md +3 -0
  241. package/preview/package.json +3 -0
  242. package/src/cli.ts +3 -0
  243. package/src/client/addon/components/Addon.tsx +53 -0
  244. package/src/client/addon/components/Icons.tsx +28 -0
  245. package/src/client/addon/components/Panel.tsx +53 -0
  246. package/src/client/addon/components/TestSelect.tsx +48 -0
  247. package/src/client/addon/components/Tools.tsx +93 -0
  248. package/src/client/addon/controller.ts +224 -0
  249. package/src/client/addon/decorator.ts +3 -0
  250. package/src/client/addon/index.ts +2 -0
  251. package/src/client/addon/manager.ts +44 -0
  252. package/src/client/addon/preset.ts +3 -0
  253. package/src/client/addon/preview.ts +7 -0
  254. package/src/client/addon/readyForCapture.ts +9 -0
  255. package/src/client/addon/utils.tsx +24 -0
  256. package/src/client/addon/withCreevey.ts +326 -0
  257. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  258. package/src/client/shared/components/ImagesView/ImagesView.tsx +62 -0
  259. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  260. package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
  261. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  262. package/src/client/shared/components/ImagesView/common.ts +23 -0
  263. package/src/client/shared/components/ImagesView/index.ts +5 -0
  264. package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
  265. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  266. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  267. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  268. package/src/client/shared/components/ResultsPage.tsx +135 -0
  269. package/src/client/shared/creeveyClientApi.ts +64 -0
  270. package/src/client/shared/helpers.ts +422 -0
  271. package/src/client/shared/viewMode.ts +10 -0
  272. package/src/client/web/CreeveyApp.tsx +177 -0
  273. package/src/client/web/CreeveyContext.tsx +20 -0
  274. package/src/client/web/CreeveyLoader.tsx +56 -0
  275. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  276. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  277. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
  278. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  279. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  280. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  281. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  282. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  283. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  284. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  285. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  286. package/src/client/web/index.html +28 -0
  287. package/src/client/web/index.tsx +63 -0
  288. package/src/creevey.ts +47 -0
  289. package/src/index.ts +4 -0
  290. package/src/server/config.ts +83 -0
  291. package/src/server/docker.ts +136 -0
  292. package/src/server/index.ts +51 -0
  293. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  294. package/src/server/master/api.ts +55 -0
  295. package/src/server/master/index.ts +111 -0
  296. package/src/server/master/master.ts +47 -0
  297. package/src/server/master/pool.ts +203 -0
  298. package/src/server/master/runner.ts +189 -0
  299. package/src/server/master/server.ts +124 -0
  300. package/src/server/messages.ts +273 -0
  301. package/src/server/selenium/browser.ts +834 -0
  302. package/src/server/selenium/index.ts +2 -0
  303. package/src/server/selenium/selenoid.ts +154 -0
  304. package/src/server/stories.ts +133 -0
  305. package/src/server/storybook/providers/browser.ts +58 -0
  306. package/src/server/storybook/providers/hybrid.ts +70 -0
  307. package/src/server/telemetry.ts +212 -0
  308. package/src/server/testsFiles/parser.ts +60 -0
  309. package/src/server/update.ts +74 -0
  310. package/src/server/utils.ts +184 -0
  311. package/src/server/worker/chai-image.ts +147 -0
  312. package/src/server/worker/helpers.ts +61 -0
  313. package/src/server/worker/index.ts +1 -0
  314. package/src/server/worker/reporter.ts +170 -0
  315. package/src/server/worker/worker.ts +234 -0
  316. package/src/shared/index.ts +76 -0
  317. package/src/shared/serializeRegExp.ts +26 -0
  318. package/src/types.ts +500 -0
  319. package/types/chai.d.ts +0 -1
  320. package/types/global.d.ts +5 -0
  321. package/types/mocha.d.ts +1 -1
  322. package/webpack.config.mjs +46 -0
  323. package/lib/cjs/cli.js +0 -5
  324. package/lib/cjs/client/addon/Manager.js +0 -412
  325. package/lib/cjs/client/addon/components/Addon.js +0 -76
  326. package/lib/cjs/client/addon/components/Icons.js +0 -42
  327. package/lib/cjs/client/addon/components/Panel.js +0 -68
  328. package/lib/cjs/client/addon/components/TestSelect.js +0 -63
  329. package/lib/cjs/client/addon/components/Tools.js +0 -114
  330. package/lib/cjs/client/addon/decorator.js +0 -11
  331. package/lib/cjs/client/addon/preset.js +0 -81
  332. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  333. package/lib/cjs/client/addon/register.js +0 -96
  334. package/lib/cjs/client/addon/utils.js +0 -38
  335. package/lib/cjs/client/addon/withCreevey.js +0 -531
  336. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
  337. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
  338. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
  339. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -179
  340. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
  341. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  342. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
  343. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
  344. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
  345. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
  346. package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
  347. package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
  348. package/lib/cjs/client/shared/helpers.js +0 -482
  349. package/lib/cjs/client/shared/viewMode.js +0 -17
  350. package/lib/cjs/client/web/1.js +0 -13
  351. package/lib/cjs/client/web/2.js +0 -1
  352. package/lib/cjs/client/web/main.js +0 -38
  353. package/lib/cjs/creevey.js +0 -71
  354. package/lib/cjs/index.js +0 -62
  355. package/lib/cjs/server/config.js +0 -96
  356. package/lib/cjs/server/docker.js +0 -150
  357. package/lib/cjs/server/extract.js +0 -50
  358. package/lib/cjs/server/index.js +0 -83
  359. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  360. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  361. package/lib/cjs/server/loaders/babel/register.js +0 -126
  362. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  363. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  364. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  365. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  366. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  367. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  368. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  369. package/lib/cjs/server/logger.js +0 -47
  370. package/lib/cjs/server/master/api.js +0 -71
  371. package/lib/cjs/server/master/index.js +0 -146
  372. package/lib/cjs/server/master/master.js +0 -57
  373. package/lib/cjs/server/master/pool.js +0 -206
  374. package/lib/cjs/server/master/runner.js +0 -294
  375. package/lib/cjs/server/master/server.js +0 -129
  376. package/lib/cjs/server/messages.js +0 -266
  377. package/lib/cjs/server/selenium/browser.js +0 -680
  378. package/lib/cjs/server/selenium/index.js +0 -31
  379. package/lib/cjs/server/selenium/selenoid.js +0 -174
  380. package/lib/cjs/server/stories.js +0 -170
  381. package/lib/cjs/server/storybook/entry.js +0 -68
  382. package/lib/cjs/server/storybook/helpers.js +0 -165
  383. package/lib/cjs/server/storybook/providers/browser.js +0 -78
  384. package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
  385. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  386. package/lib/cjs/server/testsFiles/parser.js +0 -72
  387. package/lib/cjs/server/testsFiles/register.js +0 -48
  388. package/lib/cjs/server/update.js +0 -83
  389. package/lib/cjs/server/utils.js +0 -185
  390. package/lib/cjs/server/worker/chai-image.js +0 -142
  391. package/lib/cjs/server/worker/helpers.js +0 -69
  392. package/lib/cjs/server/worker/index.js +0 -15
  393. package/lib/cjs/server/worker/reporter.js +0 -120
  394. package/lib/cjs/server/worker/worker.js +0 -278
  395. package/lib/cjs/shared.js +0 -124
  396. package/lib/cjs/types.js +0 -74
  397. package/lib/esm/cli.js +0 -4
  398. package/lib/esm/client/addon/Manager.js +0 -396
  399. package/lib/esm/client/addon/components/Addon.js +0 -58
  400. package/lib/esm/client/addon/components/Icons.js +0 -27
  401. package/lib/esm/client/addon/components/Panel.js +0 -49
  402. package/lib/esm/client/addon/components/TestSelect.js +0 -49
  403. package/lib/esm/client/addon/components/Tools.js +0 -91
  404. package/lib/esm/client/addon/decorator.js +0 -2
  405. package/lib/esm/client/addon/preset.js +0 -56
  406. package/lib/esm/client/addon/readyForCapture.js +0 -5
  407. package/lib/esm/client/addon/register.js +0 -75
  408. package/lib/esm/client/addon/utils.js +0 -31
  409. package/lib/esm/client/addon/withCreevey.js +0 -509
  410. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -63
  411. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
  412. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -151
  413. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
  414. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -88
  415. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  416. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
  417. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
  418. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
  419. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
  420. package/lib/esm/client/shared/components/ResultsPage.js +0 -143
  421. package/lib/esm/client/shared/creeveyClientApi.js +0 -94
  422. package/lib/esm/client/shared/helpers.js +0 -424
  423. package/lib/esm/client/shared/viewMode.js +0 -6
  424. package/lib/esm/creevey.js +0 -56
  425. package/lib/esm/index.js +0 -7
  426. package/lib/esm/server/config.js +0 -73
  427. package/lib/esm/server/docker.js +0 -123
  428. package/lib/esm/server/extract.js +0 -34
  429. package/lib/esm/server/index.js +0 -64
  430. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  431. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  432. package/lib/esm/server/loaders/babel/register.js +0 -105
  433. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  434. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  435. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  436. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  437. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  438. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  439. package/lib/esm/server/loaders/webpack/start.js +0 -27
  440. package/lib/esm/server/master/api.js +0 -60
  441. package/lib/esm/server/master/index.js +0 -125
  442. package/lib/esm/server/master/master.js +0 -38
  443. package/lib/esm/server/master/pool.js +0 -187
  444. package/lib/esm/server/master/runner.js +0 -272
  445. package/lib/esm/server/master/server.js +0 -105
  446. package/lib/esm/server/messages.js +0 -234
  447. package/lib/esm/server/selenium/browser.js +0 -647
  448. package/lib/esm/server/selenium/index.js +0 -2
  449. package/lib/esm/server/selenium/selenoid.js +0 -151
  450. package/lib/esm/server/stories.js +0 -151
  451. package/lib/esm/server/storybook/entry.js +0 -44
  452. package/lib/esm/server/storybook/helpers.js +0 -106
  453. package/lib/esm/server/storybook/providers/browser.js +0 -61
  454. package/lib/esm/server/storybook/providers/hybrid.js +0 -64
  455. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  456. package/lib/esm/server/testsFiles/parser.js +0 -50
  457. package/lib/esm/server/testsFiles/register.js +0 -35
  458. package/lib/esm/server/update.js +0 -65
  459. package/lib/esm/server/utils.js +0 -146
  460. package/lib/esm/server/worker/chai-image.js +0 -130
  461. package/lib/esm/server/worker/helpers.js +0 -60
  462. package/lib/esm/server/worker/index.js +0 -1
  463. package/lib/esm/server/worker/reporter.js +0 -98
  464. package/lib/esm/server/worker/worker.js +0 -248
  465. package/lib/esm/shared.js +0 -93
  466. package/lib/esm/types.js +0 -43
  467. package/lib/types/cli.d.ts +0 -1
  468. package/lib/types/client/addon/components/Addon.d.ts +0 -8
  469. package/lib/types/client/addon/components/Tools.d.ts +0 -6
  470. package/lib/types/client/addon/decorator.d.ts +0 -1
  471. package/lib/types/client/addon/preset.d.ts +0 -24
  472. package/lib/types/client/addon/register.d.ts +0 -3
  473. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
  474. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
  475. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
  476. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
  477. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  478. package/lib/types/client/web/CreeveyLoader.d.ts +0 -3
  479. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  480. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  481. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  482. package/lib/types/index.d.ts +0 -3
  483. package/lib/types/server/extract.d.ts +0 -2
  484. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  485. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  486. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  487. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  488. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  489. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  490. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -2
  491. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  492. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  493. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  494. package/lib/types/server/logger.d.ts +0 -6
  495. package/lib/types/server/master/index.d.ts +0 -3
  496. package/lib/types/server/master/server.d.ts +0 -2
  497. package/lib/types/server/selenium/index.d.ts +0 -2
  498. package/lib/types/server/storybook/entry.d.ts +0 -18
  499. package/lib/types/server/storybook/helpers.d.ts +0 -24
  500. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  501. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  502. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  503. package/lib/types/server/testsFiles/register.d.ts +0 -2
  504. package/lib/types/server/update.d.ts +0 -2
  505. package/lib/types/server/worker/index.d.ts +0 -1
  506. package/lib/types/server/worker/worker.d.ts +0 -4
  507. package/lib/types/shared.d.ts +0 -16
  508. package/preset.js +0 -9
  509. package/storybook-static/stories.json +0 -21
  510. package/types/babel__register.d.ts +0 -1
  511. package/types/event-source-polyfill.d.ts +0 -6
  512. package/types/mdx.d.ts +0 -6
  513. /package/{lib/types → dist}/client/addon/components/Icons.d.ts +0 -0
  514. /package/{lib/types/creevey.d.ts → dist/client/addon/manager.d.ts} +0 -0
  515. /package/{lib/types → dist}/client/addon/readyForCapture.d.ts +0 -0
  516. /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +0 -0
  517. /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +0 -0
  518. /package/{lib/types → dist}/server/worker/reporter.d.ts +0 -0
@@ -1,105 +0,0 @@
1
- import Module from 'module';
2
- import fs from 'fs';
3
- import { isAbsolute, join, relative, resolve } from 'path';
4
- import { addHook } from 'pirates';
5
- import { isDefined } from '../../../types';
6
- import { extensions } from '../../utils';
7
- import plugin from './creevey-plugin';
8
- import { hasDocsAddon, hasSvelteCSFAddon, isStorybookVersionLessThan } from '../../storybook/helpers';
9
- let parents = null;
10
- let story = null; //@ts-expect-error private field doesn't have types
11
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
12
-
13
- const jsLoader = Module._extensions['.js']; //@ts-expect-error private field doesn't have types
14
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
15
-
16
- Module._extensions['.js'] = function (mod, filename) {
17
- parents = Object.values(require.cache).filter(m => m === null || m === void 0 ? void 0 : m.children.includes(mod)).filter(isDefined).map(m => m.filename); // eslint-disable-next-line @typescript-eslint/no-unsafe-call
18
-
19
- jsLoader(mod, filename);
20
- parents = null;
21
- };
22
-
23
- addHook(() => '', {
24
- exts: ['.jpg', '.jpeg', '.png', '.gif', '.eot', '.otf', '.svg', '.ttf', '.woff', '.woff2', '.css', '.less', '.scss', '.styl'],
25
- ignoreNodeModules: false
26
- });
27
-
28
- function getRequireContext(rootDir) {
29
- return function requireContext(rootPath, deep, filter) {
30
- const ids = [];
31
- let contextPath; // Relative path
32
-
33
- if (rootPath.startsWith('.')) contextPath = resolve(rootDir, rootPath); // Module path
34
- else if (!isAbsolute(rootPath)) contextPath = require.resolve(rootPath); // Absolute path
35
- else contextPath = rootPath;
36
-
37
- const traverse = dirPath => {
38
- fs.readdirSync(dirPath, {
39
- withFileTypes: true
40
- }).forEach(dirent => {
41
- var _filter$test;
42
-
43
- const filename = dirent.name;
44
- const filePath = join(dirPath, filename);
45
- if (dirent.isDirectory() && deep) return traverse(filePath);
46
- if (dirent.isFile() && ((_filter$test = filter === null || filter === void 0 ? void 0 : filter.test(`./${relative(contextPath, filePath)}`)) !== null && _filter$test !== void 0 ? _filter$test : true)) return ids.push(filePath);
47
- });
48
- };
49
-
50
- traverse(contextPath);
51
-
52
- const context = id => {
53
- story = id; // eslint-disable-next-line @typescript-eslint/no-var-requires
54
-
55
- const storyModule = require(id);
56
-
57
- story = null;
58
- return storyModule;
59
- };
60
-
61
- context.id = contextPath;
62
-
63
- context.keys = () => ids;
64
-
65
- context.resolve = id => id;
66
-
67
- return context;
68
- };
69
- }
70
-
71
- export default async function register(config, debug = false) {
72
- const rootDir = isStorybookVersionLessThan(6, 4) ? config.storybookDir : process.cwd();
73
- const requireContext = getRequireContext(rootDir);
74
- const preview = resolve(config.storybookDir, 'preview');
75
- if (hasDocsAddon()) await (await import('../hooks/mdx')).addMDXHook(() => story);
76
- if (hasSvelteCSFAddon()) await (await import('../hooks/svelte')).addSvelteHook(() => story); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
77
-
78
- (await import('@babel/register')).default(config.babelOptions({
79
- babelrc: false,
80
- rootMode: 'upward-optional',
81
- ignore: [/node_modules/],
82
- extensions: [...extensions, ...(hasDocsAddon() ? ['.mdx'] : []), ...(hasSvelteCSFAddon() ? ['.svelte'] : [])],
83
- parserOpts: {
84
- sourceType: 'module',
85
- plugins: ['classProperties', 'decorators-legacy', 'jsx', 'typescript']
86
- },
87
- plugins: [[plugin, {
88
- debug,
89
- preview,
90
- parents: () => parents,
91
- story: () => story
92
- }], ['@babel/plugin-transform-runtime', {
93
- // eslint-disable-next-line @typescript-eslint/no-var-requires
94
- version: require('@babel/helpers/package.json').version,
95
- absoluteRuntime: true,
96
- corejs: 3
97
- }]],
98
- presets: [['@babel/preset-env', {
99
- targets: {
100
- node: '10'
101
- }
102
- }]]
103
- }));
104
- return requireContext;
105
- }
@@ -1,15 +0,0 @@
1
- import { addHook } from 'pirates';
2
- import { resolveFromStorybookAddonDocs } from '../../storybook/helpers';
3
- export const addMDXHook = async getStory => {
4
- const mdx = (await import(resolveFromStorybookAddonDocs('@mdx-js/mdx'))).default;
5
- const {
6
- mdxOptions
7
- } = await import('../webpack/mdx-loader');
8
- addHook((code, filename) => {
9
- const story = getStory();
10
- if (!story || !filename.startsWith(story)) return code;
11
- return mdx.sync(code, mdxOptions());
12
- }, {
13
- exts: ['.mdx']
14
- });
15
- };
@@ -1,49 +0,0 @@
1
- import { addHook } from 'pirates';
2
- import { logger } from '../../logger';
3
- import { resolveFromStorybook, storybookConfigRef } from '../../storybook/helpers';
4
- export const addSvelteHook = async getStory => {
5
- const {
6
- compile,
7
- preprocess
8
- } = await import(resolveFromStorybook('svelte/compiler'));
9
- const {
10
- default: svelteCSFLoader
11
- } = await import(resolveFromStorybook('@storybook/addon-svelte-csf/dist/cjs/parser/svelte-stories-loader'));
12
- addHook((code, filename) => {
13
- var _options$compilerOpti;
14
-
15
- const story = getStory();
16
- const config = storybookConfigRef.current;
17
- const {
18
- svelteOptions: options = {}
19
- } = config; // NOTE: Copy-paste compiling code from https://github.com/sveltejs/svelte-loader/blob/3c4d66d/index.js
20
-
21
- const compileOptions = {
22
- filename,
23
- css: false,
24
- ...options.compilerOptions,
25
- format: ((_options$compilerOpti = options.compilerOptions) === null || _options$compilerOpti === void 0 ? void 0 : _options$compilerOpti.format) || 'esm'
26
- }; // TODO Can't use preprocess here because it async and hook must be sync
27
- // The only way to fix it, load stories by using `import()` instead of require
28
- // And write native nodejs `.svelte` resolver https://nodejs.org/api/esm.html#esm_resolve_specifier_context_defaultresolve
29
- // const processed = await preprocess(code, options.preprocess, { filename });
30
-
31
- void preprocess;
32
- const {
33
- js: {
34
- code: compiledCode
35
- },
36
- warnings
37
- } = compile(code, compileOptions);
38
- warnings.forEach(warning => logger.warn(warning));
39
- if (!story || !filename.startsWith(story)) return compiledCode;
40
- return svelteCSFLoader.call({
41
- _module: {
42
- resource: filename
43
- }
44
- }, compiledCode); // TODO Extract parameters from `create_fragment` that created by compiler
45
- // TODO Write babel transformation for it
46
- }, {
47
- exts: ['.svelte']
48
- });
49
- };
@@ -1,263 +0,0 @@
1
- import { rmdirSync, writeFile } from 'fs';
2
- import path from 'path';
3
- import webpack from 'webpack';
4
- import nodeExternals from 'webpack-node-externals';
5
- import { extensions as fallbackExtensions, getCreeveyCache } from '../../utils';
6
- import { getStorybookFramework, hasDocsAddon, importStorybookConfig, isStorybookVersionLessThan, resolveFromStorybook } from '../../storybook/helpers';
7
- import { noop } from '../../../types';
8
- import { emitWebpackMessage, subscribeOn } from '../../messages';
9
- import { logger } from '../../logger';
10
- let isInitiated = false;
11
- let dumpStats = noop;
12
-
13
- function handleWebpackBuild(error, stats) {
14
- dumpStats(stats);
15
-
16
- if (error || !stats || stats.hasErrors()) {
17
- emitWebpackMessage({
18
- type: isInitiated ? 'rebuild failed' : 'fail'
19
- });
20
- console.error('=> Failed to build the Storybook preview bundle');
21
- if (error) return console.error(error.message);
22
-
23
- if (stats && (stats.hasErrors() || stats.hasWarnings())) {
24
- const {
25
- warnings,
26
- errors
27
- } = stats.toJson();
28
- errors.forEach(e => console.error(e));
29
- warnings.forEach(e => console.error(e));
30
- return;
31
- }
32
- }
33
-
34
- stats.toJson().warnings.forEach(e => console.warn(e));
35
-
36
- if (!isInitiated) {
37
- isInitiated = true;
38
- emitWebpackMessage({
39
- type: 'success'
40
- });
41
- } else {
42
- emitWebpackMessage({
43
- type: 'rebuild succeeded'
44
- });
45
- }
46
-
47
- return;
48
- }
49
-
50
- async function applyMdxLoader(config, areAddonsRemoved, loader) {
51
- const {
52
- mdxLoaders
53
- } = await import('./mdx-loader');
54
- mdxLoaders.splice(1, 0, loader);
55
- const mdxRegexps = isStorybookVersionLessThan(6, 2) ? [/\.(stories|story).mdx$/, /\.(stories|story)\.mdx$/] : [/(stories|story)\.mdx$/]; // NOTE replace md/mdx to null loader
56
-
57
- const mdRegexps = [/\.md$/, /\.mdx$/];
58
-
59
- if (areAddonsRemoved) {
60
- var _config$module2;
61
-
62
- mdRegexps.forEach(test => {
63
- var _config$module;
64
-
65
- return (_config$module = config.module) === null || _config$module === void 0 ? void 0 : _config$module.rules.unshift({
66
- test,
67
- exclude: /(stories|story)\.mdx$/,
68
- use: require.resolve('null-loader')
69
- });
70
- });
71
- (_config$module2 = config.module) === null || _config$module2 === void 0 ? void 0 : _config$module2.rules.unshift({
72
- test: /(stories|story)\.mdx$/,
73
- use: mdxLoaders
74
- });
75
- } else {
76
- var _config$module3, _config$module4, _config$module$rules$, _config$module5;
77
-
78
- // NOTE Exclude addons' entry points
79
- config.entry = Array.isArray(config.entry) ? config.entry.filter(entry => !/@storybook(\/|\\)addon/.test(entry)) : config.entry;
80
- (_config$module3 = config.module) === null || _config$module3 === void 0 ? void 0 : _config$module3.rules.filter(rule => mdRegexps.some(test => {
81
- var _rule$test;
82
-
83
- return ((_rule$test = rule.test) === null || _rule$test === void 0 ? void 0 : _rule$test.toString()) == test.toString();
84
- })).forEach(rule => rule.use = require.resolve('null-loader'));
85
- (_config$module4 = config.module) === null || _config$module4 === void 0 ? void 0 : _config$module4.rules.filter(rule => mdxRegexps.some(test => {
86
- var _rule$test2;
87
-
88
- return ((_rule$test2 = rule.test) === null || _rule$test2 === void 0 ? void 0 : _rule$test2.toString()) == test.toString();
89
- })).forEach(rule => rule.use = mdxLoaders); // NOTE Exclude source-loader
90
-
91
- config.module = { ...config.module,
92
- rules: (_config$module$rules$ = (_config$module5 = config.module) === null || _config$module5 === void 0 ? void 0 : _config$module5.rules.filter(rule => !(typeof rule.loader == 'string' && /@storybook(\/|\\)source-loader/.test(rule.loader)))) !== null && _config$module$rules$ !== void 0 ? _config$module$rules$ : []
93
- };
94
- }
95
- }
96
-
97
- async function getWebpackConfigForStorybook_pre6_2(framework, configDir, outputDir) {
98
- const {
99
- default: storybookFrameworkOptions
100
- } = await import(resolveFromStorybook(`@storybook/${framework}/dist/server/options`)); // eslint-disable-next-line node/no-missing-import, @typescript-eslint/no-unsafe-assignment, import/no-unresolved
101
-
102
- const {
103
- default: getConfig
104
- } = await import(resolveFromStorybook('@storybook/core/dist/server/config')); // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
105
-
106
- return getConfig({
107
- // NOTE: 6.1 storybook don't support quite any more. But we still have older versions
108
- quiet: true,
109
- configType: 'PRODUCTION',
110
- outputDir,
111
- cache: {},
112
- // eslint-disable-next-line node/no-missing-require
113
- corePresets: [resolveFromStorybook('@storybook/core/dist/server/preview/preview-preset')],
114
- overridePresets: [...(hasDocsAddon() ? [require.resolve('./mdx-loader')] : []), // eslint-disable-next-line node/no-missing-require
115
- resolveFromStorybook('@storybook/core/dist/server/preview/custom-webpack-preset')],
116
- ...storybookFrameworkOptions,
117
- configDir
118
- });
119
- }
120
-
121
- async function getWebpackConfigForStorybook_6_2(framework, configDir, outputDir) {
122
- const {
123
- default: storybookFrameworkOptions
124
- } = await import(resolveFromStorybook(`@storybook/${framework}/dist/cjs/server/options`));
125
- const options = {
126
- quiet: true,
127
- configType: 'PRODUCTION',
128
- outputDir,
129
- configDir,
130
- ...storybookFrameworkOptions
131
- }; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
132
-
133
- const {
134
- getPreviewBuilder
135
- } = await import(resolveFromStorybook('@storybook/core-server/dist/cjs/utils/get-preview-builder')); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
136
-
137
- const {
138
- loadAllPresets
139
- } = await import(resolveFromStorybook('@storybook/core-common')); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
140
-
141
- const builder = await getPreviewBuilder(configDir); // NOTE: Copy-paste from storybook/lib/core-server/src/build-dev.ts
142
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
143
-
144
- const presets = loadAllPresets({
145
- corePresets: [// eslint-disable-next-line node/no-missing-require
146
- resolveFromStorybook('@storybook/core-server/dist/cjs/presets/common-preset'), // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
147
- ...builder.corePresets, // eslint-disable-next-line node/no-missing-require
148
- resolveFromStorybook('@storybook/core-server/dist/cjs/presets/babel-cache-preset')],
149
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
150
- overridePresets: [...(hasDocsAddon() ? [require.resolve('./mdx-loader')] : []), // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
151
- ...builder.overridePresets],
152
- ...options
153
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
154
-
155
- return builder.getConfig({ ...options,
156
- presets
157
- });
158
- }
159
-
160
- async function removeAddons() {
161
- try {
162
- var _config$core;
163
-
164
- const config = await importStorybookConfig();
165
-
166
- if (((_config$core = config.core) === null || _config$core === void 0 ? void 0 : _config$core.builder) == 'webpack5') {
167
- logger.warn("Be aware Creevey doesn't fully support webpack@5, some feature might not work well");
168
- }
169
-
170
- if (config.addons && config.stories) {
171
- config.addons = [];
172
- return true;
173
- }
174
- } catch (_) {
175
- /* noop */
176
- }
177
-
178
- return false;
179
- }
180
-
181
- export default async function compile(config, {
182
- debug,
183
- ui
184
- }) {
185
- var _storybookWebpackConf, _storybookWebpackConf2, _storybookWebpackConf3, _extensions$map, _storybookWebpackConf4, _storybookWebpackConf5, _storybookWebpackConf6;
186
-
187
- const storybookFramework = getStorybookFramework();
188
- const outputDir = path.join(getCreeveyCache(), 'storybook');
189
-
190
- try {
191
- rmdirSync(outputDir, {
192
- recursive: true
193
- });
194
- } catch (_) {
195
- /* noop */
196
- }
197
-
198
- const creeveyLoader = {
199
- loader: require.resolve('./creevey-loader'),
200
- options: {
201
- debug,
202
- storybookDir: config.storybookDir
203
- }
204
- };
205
- process.env.NODE_ENV = 'production'; // NOTE Remove addons by monkey patching, only for new config file (main.js)
206
-
207
- const areAddonsRemoved = await removeAddons();
208
- const getWebpackConfig = isStorybookVersionLessThan(6, 2) ? getWebpackConfigForStorybook_pre6_2 : getWebpackConfigForStorybook_6_2;
209
- const storybookWebpackConfig = await getWebpackConfig(storybookFramework, config.storybookDir, outputDir);
210
- const extensions = (_storybookWebpackConf = (_storybookWebpackConf2 = storybookWebpackConfig.resolve) === null || _storybookWebpackConf2 === void 0 ? void 0 : _storybookWebpackConf2.extensions) !== null && _storybookWebpackConf !== void 0 ? _storybookWebpackConf : fallbackExtensions;
211
- delete storybookWebpackConfig.optimization;
212
- storybookWebpackConfig.devtool = false;
213
- storybookWebpackConfig.performance = false;
214
- storybookWebpackConfig.profile = debug;
215
- storybookWebpackConfig.mode = 'development';
216
- storybookWebpackConfig.target = 'node';
217
- storybookWebpackConfig.output = { ...storybookWebpackConfig.output,
218
- filename: 'main.js'
219
- }; // NOTE Add hack to allow stories HMR work in nodejs
220
-
221
- Array.isArray(storybookWebpackConfig.entry) && storybookWebpackConfig.entry.unshift(require.resolve('./dummy-hmr')); // NOTE apply creevey loader to output from mdx loader
222
-
223
- if (hasDocsAddon()) await applyMdxLoader(storybookWebpackConfig, areAddonsRemoved, creeveyLoader); // NOTE Add creevey-loader to cut off all unnecessary code except stories meta and tests
224
-
225
- (_storybookWebpackConf3 = storybookWebpackConfig.module) === null || _storybookWebpackConf3 === void 0 ? void 0 : _storybookWebpackConf3.rules.unshift({
226
- enforce: 'pre',
227
- test: new RegExp(`\\.(${(_extensions$map = extensions.map(x => x.slice(1))) === null || _extensions$map === void 0 ? void 0 : _extensions$map.join('|')})$`),
228
- exclude: /node_modules/,
229
- use: creeveyLoader
230
- });
231
- const aliases = (_storybookWebpackConf4 = (_storybookWebpackConf5 = storybookWebpackConfig.resolve) === null || _storybookWebpackConf5 === void 0 ? void 0 : _storybookWebpackConf5.alias) !== null && _storybookWebpackConf4 !== void 0 ? _storybookWebpackConf4 : {};
232
- const excluded = ['@storybook/addons', '@storybook/api', '@storybook/channel-postmessage', '@storybook/channels', '@storybook/client-api', '@storybook/client-logger', '@storybook/components', '@storybook/core-events', '@storybook/router', '@storybook/semver', '@storybook/theming']; // NOTE Exclude from bundle all modules from node_modules
233
-
234
- storybookWebpackConfig.externals = [...Object.entries(aliases).filter(([alias]) => excluded.includes(alias)).map(([, aliasPath]) => ({
235
- [aliasPath]: `commonjs ${aliasPath}`
236
- })), // NOTE Replace `@storybook/${framework}` to ../../storybook.ts
237
- {
238
- [`@storybook/${storybookFramework}`]: `commonjs ${require.resolve('../../storybook/entry')}`
239
- }, nodeExternals({
240
- includeAbsolutePaths: true,
241
- allowlist: /(webpack|dummy-hmr|generated-stories-entry|generated-config-entry|generated-other-entry)/
242
- }), // TODO Don't work well with monorepos
243
- nodeExternals({
244
- modulesDir: resolveFromStorybook('@storybook/core').split('@storybook')[0],
245
- includeAbsolutePaths: true,
246
- allowlist: /(webpack|dummy-hmr|generated-stories-entry|generated-config-entry|generated-other-entry)/
247
- })]; // NOTE Exclude some plugins
248
-
249
- const excludedPlugins = ['DocgenPlugin', 'ForkTsCheckerWebpackPlugin'];
250
- storybookWebpackConfig.plugins = (_storybookWebpackConf6 = storybookWebpackConfig.plugins) === null || _storybookWebpackConf6 === void 0 ? void 0 : _storybookWebpackConf6.filter(plugin => !excludedPlugins.includes(plugin.constructor.name));
251
- const storybookWebpackCompiler = webpack(storybookWebpackConfig);
252
-
253
- if (debug) {
254
- dumpStats = stats => writeFile(path.join(config.reportDir, 'stats.json'), JSON.stringify(stats.toJson(), null, 2), noop);
255
- }
256
-
257
- if (ui) {
258
- const watcher = storybookWebpackCompiler.watch({}, handleWebpackBuild);
259
- subscribeOn('shutdown', () => watcher.close(noop));
260
- } else {
261
- storybookWebpackCompiler.run(handleWebpackBuild);
262
- }
263
- }
@@ -1,153 +0,0 @@
1
- import path from 'path';
2
- import { codeFrameColumns } from '@babel/code-frame';
3
- import { getOptions } from 'loader-utils';
4
- import { validate } from 'schema-utils';
5
- import { parse } from '@babel/parser';
6
- import traverse from '@babel/traverse';
7
- import generate from '@babel/generator';
8
- import { isStorybookVersionLessThan } from '../../storybook/helpers';
9
- import { commonVisitor, mdxVisitor, previewVisitor, storyVisitor, FileType } from '../babel/helpers';
10
- import { logger } from '../../logger';
11
-
12
- function transform(ast) {
13
- traverse(ast, { ...commonVisitor,
14
- ...(fileType == FileType.Preview ? previewVisitor : undefined),
15
- ...(fileType == FileType.Story ? storyVisitor : undefined),
16
- ...(isMDX ? mdxVisitor : undefined)
17
- }, undefined, {
18
- resourcePath,
19
- fileType,
20
- isMDX,
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
- visitedTopPaths: new Set(),
23
- visitedBindings: new Set(),
24
- reexportedStories
25
- });
26
- return generate(ast, {
27
- retainLines: true
28
- }).code;
29
- }
30
-
31
- function toPosix(filePath) {
32
- return filePath.split(path.win32.sep).join(path.posix.sep).replace(/^[a-z]:/i, '');
33
- }
34
-
35
- function getIssuerResource(context) {
36
- var _context$_module, _context$_module$issu;
37
-
38
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
39
- return (_context$_module = context._module) === null || _context$_module === void 0 ? void 0 : (_context$_module$issu = _context$_module.issuer) === null || _context$_module$issu === void 0 ? void 0 : _context$_module$issu.resource;
40
- }
41
-
42
- function getIssuerConstructorName(context) {
43
- var _context$_module2, _context$_module2$iss, _context$_module2$iss2;
44
-
45
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
46
- return (_context$_module2 = context._module) === null || _context$_module2 === void 0 ? void 0 : (_context$_module2$iss = _context$_module2.issuer) === null || _context$_module2$iss === void 0 ? void 0 : (_context$_module2$iss2 = _context$_module2$iss.constructor) === null || _context$_module2$iss2 === void 0 ? void 0 : _context$_module2$iss2.name;
47
- }
48
-
49
- function isEntry(context) {
50
- return getIssuerConstructorName(context) == 'MultiModule';
51
- }
52
-
53
- function isPreview(context, options) {
54
- const {
55
- dir: resourceDir,
56
- name: resourceName
57
- } = path.posix.parse(toPosix(context.resourcePath));
58
- const storybookDir = typeof options.storybookDir == 'string' ? toPosix(options.storybookDir) : '';
59
- const isConfigFile = resourceDir == storybookDir && (resourceName == 'preview' || resourceName == 'config');
60
-
61
- if (isStorybookVersionLessThan(6)) {
62
- return isEntry(context) && isConfigFile;
63
- }
64
-
65
- const issuerResource = getIssuerResource(context);
66
- return Boolean(issuerResource && entries.has(issuerResource) && isConfigFile);
67
- }
68
-
69
- function isStoryFile(context) {
70
- var _reexportedStories$ge, _context$_module3;
71
-
72
- const issuerResource = getIssuerResource(context);
73
- return getIssuerConstructorName(context) == 'ContextModule' || // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
74
- Boolean(issuerResource && ((_reexportedStories$ge = reexportedStories.get(issuerResource)) === null || _reexportedStories$ge === void 0 ? void 0 : _reexportedStories$ge.has((_context$_module3 = context._module) === null || _context$_module3 === void 0 ? void 0 : _context$_module3.rawRequest))) || issuerResource == previewPath && path.posix.parse(toPosix(previewPath)).name == 'config';
75
- } // NOTE: non-story files before preview => issuer.resource is entry
76
-
77
-
78
- const schema = {
79
- type: 'object',
80
- properties: {
81
- debug: {
82
- type: 'boolean'
83
- },
84
- storybookDir: {
85
- type: 'string'
86
- }
87
- }
88
- };
89
- let fileType = FileType.Invalid;
90
- let isMDX = false;
91
- let previewPath = '';
92
- let resourcePath = '';
93
- const entries = new Set();
94
- const stories = new Set();
95
- const reexportedStories = new Map();
96
- const isTest = process.env.__CREEVEY_ENV__ == 'test';
97
- const defaultOptions = {
98
- debug: isTest,
99
- storybookDir: process.cwd()
100
- };
101
- export default function (source) {
102
- const options = this ? getOptions(this) || defaultOptions : defaultOptions;
103
- validate(schema, options, {
104
- name: 'Creevey Stories Loader'
105
- });
106
- fileType = FileType.Invalid;
107
-
108
- if (this) {
109
- const issuerResource = getIssuerResource(this);
110
- resourcePath = this.resourcePath;
111
-
112
- if (isStoryFile(this)) {
113
- fileType = FileType.Story;
114
- isMDX = path.parse(resourcePath).ext == '.mdx';
115
- stories.add(this.resourcePath);
116
- } else if (isPreview(this, options)) {
117
- fileType = FileType.Preview;
118
- previewPath = this.resourcePath;
119
- } else if (isEntry(this)) {
120
- fileType = FileType.Entry;
121
- entries.add(this.resourcePath);
122
- return source;
123
- } else if (issuerResource && stories.has(issuerResource) && options.debug) {
124
- logger.warn('Trying to transform possible non-story file', this.resourcePath, 'Please check the', issuerResource); // TODO Add link to docs, how creevey works and what user should do in this situation
125
- }
126
- }
127
-
128
- if (isTest && !Number.isNaN(Number(process.env.CREEVEY_LOADER_FILE_TYPE))) {
129
- fileType = Number(process.env.CREEVEY_LOADER_FILE_TYPE);
130
- }
131
-
132
- try {
133
- const ast = parse(source, {
134
- sourceType: 'module',
135
- plugins: ['classProperties', 'decorators-legacy', 'jsx', 'typescript']
136
- });
137
- return transform(ast);
138
- } catch (error) {
139
- this && logger.warn('Failed to transform file', this.resourcePath);
140
-
141
- if (typeof error == 'object' && error && 'loc' in error) {
142
- logger.warn(codeFrameColumns(source, {
143
- start: error.loc
144
- }, {
145
- highlightCode: true
146
- }));
147
- } else {
148
- logger.warn(error);
149
- }
150
-
151
- return source;
152
- }
153
- }
@@ -1,36 +0,0 @@
1
- var _global$__CREEVEY_HMR;
2
-
3
- global.__CREEVEY_HMR_DATA__ = (_global$__CREEVEY_HMR = global.__CREEVEY_HMR_DATA__) !== null && _global$__CREEVEY_HMR !== void 0 ? _global$__CREEVEY_HMR : {};
4
- Object.entries(__webpack_require__.m).forEach(([key, moduleFn]) => {
5
- __webpack_require__.m[key] = new Proxy(moduleFn, {
6
- apply(target, thisArg, args) {
7
- var _global$__CREEVEY_HMR2;
8
-
9
- const [module] = args;
10
- const {
11
- data
12
- } = global.__CREEVEY_HMR_DATA__[module.i] = (_global$__CREEVEY_HMR2 = global.__CREEVEY_HMR_DATA__[module.i]) !== null && _global$__CREEVEY_HMR2 !== void 0 ? _global$__CREEVEY_HMR2 : {
13
- data: {}
14
- };
15
- Object.assign(module, {
16
- hot: {
17
- accept() {
18
- /* noop */
19
- },
20
-
21
- get data() {
22
- return data;
23
- },
24
-
25
- dispose(callback) {
26
- global.__CREEVEY_HMR_DATA__[module.i].callback = callback;
27
- }
28
-
29
- }
30
- });
31
- return target.apply(thisArg, args);
32
- }
33
-
34
- });
35
- });
36
- export default {};
@@ -1,58 +0,0 @@
1
- /* eslint-disable */
2
-
3
- /* Copy-paste from storybook/addons/docs/src/frameworks/common/preset.ts */
4
- import { isStorybookVersionLessThan, resolveFromStorybook, resolveFromStorybookAddonDocs, resolveFromStorybookBuilderWebpack4, resolveFromStorybookCore } from '../../storybook/helpers';
5
- export let mdxLoaders = []; // for frameworks that are not working with react, we need to configure
6
- // the jsx to transpile mdx, for now there will be a flag for that
7
- // for more complex solutions we can find alone that we need to add '@babel/plugin-transform-react-jsx'
8
-
9
- function createBabelOptions({
10
- babelOptions,
11
- mdxBabelOptions,
12
- configureJSX
13
- }) {
14
- const babelPlugins = (mdxBabelOptions === null || mdxBabelOptions === void 0 ? void 0 : mdxBabelOptions.plugins) || (babelOptions === null || babelOptions === void 0 ? void 0 : babelOptions.plugins) || [];
15
- const jsxPlugin = [resolveFromStorybookAddonDocs('@babel/plugin-transform-react-jsx'), {
16
- pragma: 'React.createElement',
17
- pragmaFrag: 'React.Fragment'
18
- }];
19
- const plugins = configureJSX ? [...babelPlugins, jsxPlugin] : babelPlugins;
20
- return {
21
- // don't use the root babelrc by default (users can override this in mdxBabelOptions)
22
- babelrc: false,
23
- configFile: false,
24
- ...babelOptions,
25
- ...mdxBabelOptions,
26
- plugins
27
- };
28
- }
29
-
30
- const remarkPlugins = ['remark-slug', 'remark-external-links'].map(plugin => require(resolveFromStorybookAddonDocs(plugin)));
31
-
32
- const createCompiler = require(resolveFromStorybook('@storybook/addon-docs/mdx-compiler-plugin'));
33
-
34
- export const mdxOptions = (options = {}) => ({
35
- compilers: [createCompiler(options)],
36
- remarkPlugins
37
- });
38
- export function webpack(webpackConfig = {}, options = {}) {
39
- // it will reuse babel options that are already in use in storybook
40
- // also, these babel options are chained with other presets.
41
- const {
42
- babelOptions,
43
- mdxBabelOptions,
44
- configureJSX = true
45
- } = options;
46
- mdxLoaders = [{
47
- loader: isStorybookVersionLessThan(6, 2) ? resolveFromStorybookCore('babel-loader') : resolveFromStorybookBuilderWebpack4('babel-loader'),
48
- options: createBabelOptions({
49
- babelOptions,
50
- mdxBabelOptions,
51
- configureJSX
52
- })
53
- }, {
54
- loader: resolveFromStorybookAddonDocs('@mdx-js/loader'),
55
- options: mdxOptions(options)
56
- }];
57
- return webpackConfig;
58
- }