@aussieljk/forkbook 0.0.0-stage → 0.0.1-2
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.
- package/LICENSE +22 -0
- package/README.md +77 -2
- package/assets/addon-vitest/templates/vitest.config.4.template.ts +36 -0
- package/assets/browser/favicon-wrapper.svg +46 -0
- package/assets/browser/favicon.svg +1 -0
- package/assets/browser/nunito-sans-bold-italic.woff2 +0 -0
- package/assets/browser/nunito-sans-bold.woff2 +0 -0
- package/assets/browser/nunito-sans-italic.woff2 +0 -0
- package/assets/browser/nunito-sans-regular.woff2 +0 -0
- package/assets/builder-vite/iframe.html +99 -0
- package/assets/create/rendererAssets/.eslintrc.json +16 -0
- package/assets/create/rendererAssets/common/Configure.mdx +388 -0
- package/assets/create/rendererAssets/common/assets/accessibility.png +0 -0
- package/assets/create/rendererAssets/common/assets/accessibility.svg +1 -0
- package/assets/create/rendererAssets/common/assets/addon-library.png +0 -0
- package/assets/create/rendererAssets/common/assets/assets.png +0 -0
- package/assets/create/rendererAssets/common/assets/avif-test-image.avif +0 -0
- package/assets/create/rendererAssets/common/assets/context.png +0 -0
- package/assets/create/rendererAssets/common/assets/discord.svg +1 -0
- package/assets/create/rendererAssets/common/assets/docs.png +0 -0
- package/assets/create/rendererAssets/common/assets/figma-plugin.png +0 -0
- package/assets/create/rendererAssets/common/assets/github.svg +1 -0
- package/assets/create/rendererAssets/common/assets/share.png +0 -0
- package/assets/create/rendererAssets/common/assets/styling.png +0 -0
- package/assets/create/rendererAssets/common/assets/testing.png +0 -0
- package/assets/create/rendererAssets/common/assets/theming.png +0 -0
- package/assets/create/rendererAssets/common/assets/tutorials.svg +1 -0
- package/assets/create/rendererAssets/common/assets/youtube.svg +1 -0
- package/assets/create/rendererAssets/common/button.css +30 -0
- package/assets/create/rendererAssets/common/header.css +32 -0
- package/assets/create/rendererAssets/common/page.css +68 -0
- package/assets/create/templates/react-native/index.expo.js +20 -0
- package/assets/create/templates/react-native/index.js +25 -0
- package/assets/docs/addon-backgrounds.gif +0 -0
- package/assets/docs/addon-controls-args-annotated.png +0 -0
- package/assets/docs/addon-controls-args-background-color.png +0 -0
- package/assets/docs/addon-controls-args-background-string.png +0 -0
- package/assets/docs/addon-controls-args-docs.png +0 -0
- package/assets/docs/addon-controls-args-logging.png +0 -0
- package/assets/docs/addon-controls-args-no-annotation.png +0 -0
- package/assets/docs/addon-controls-args-reflow-slider.png +0 -0
- package/assets/docs/addon-controls-args-reflow.png +0 -0
- package/assets/docs/addon-controls-args-template.png +0 -0
- package/assets/docs/addon-controls-expanded.png +0 -0
- package/assets/docs/addon-controls-hero.gif +0 -0
- package/assets/docs/addon-controls-install.png +0 -0
- package/assets/docs/hero.gif +0 -0
- package/assets/docs/highlight.png +0 -0
- package/assets/docs/message-reference.png +0 -0
- package/assets/docs/viewport.png +0 -0
- package/assets/react-native/metro-env.d.ts +69 -0
- package/assets/server/addon.tsconfig.json +6 -0
- package/assets/server/base-preview-body.html +116 -0
- package/assets/server/base-preview-head.html +494 -0
- package/assets/server/openBrowser.applescript +94 -0
- package/assets/server/template.ejs +87 -0
- package/dist/.build-stamp +0 -0
- package/dist/_browser-chunks/Color-PCLE2J36.js +1025 -0
- package/dist/_browser-chunks/DocsRenderer-JXND3PVQ.js +10 -0
- package/dist/_browser-chunks/WithTooltip-XSQFTBMB.js +1619 -0
- package/dist/_browser-chunks/chunk-2JDQ35OA.js +247 -0
- package/dist/_browser-chunks/chunk-2JT76G3E.js +104 -0
- package/dist/_browser-chunks/chunk-2MEPHP35.js +17 -0
- package/dist/_browser-chunks/chunk-2SCZVUKW.js +24 -0
- package/dist/_browser-chunks/chunk-46Z7NGAS.js +41 -0
- package/dist/_browser-chunks/chunk-4ATQOMJB.js +30 -0
- package/dist/_browser-chunks/chunk-52CW7FF7.js +49 -0
- package/dist/_browser-chunks/chunk-5I7E4GMO.js +62 -0
- package/dist/_browser-chunks/chunk-5P4QA6MY.js +20 -0
- package/dist/_browser-chunks/chunk-5WMXI5GW.js +816 -0
- package/dist/_browser-chunks/chunk-66OCZ54D.js +2604 -0
- package/dist/_browser-chunks/chunk-6SXYJQST.js +253 -0
- package/dist/_browser-chunks/chunk-AYRF6EJB.js +36 -0
- package/dist/_browser-chunks/chunk-B4AUNNU4.js +156 -0
- package/dist/_browser-chunks/chunk-BCP2FFXF.js +369 -0
- package/dist/_browser-chunks/chunk-C3D4HEFY.js +3396 -0
- package/dist/_browser-chunks/chunk-CFAOWGL7.js +43 -0
- package/dist/_browser-chunks/chunk-CFWWCCZV.js +223 -0
- package/dist/_browser-chunks/chunk-CNED6RYH.js +18 -0
- package/dist/_browser-chunks/chunk-DRQKCCAG.js +136 -0
- package/dist/_browser-chunks/chunk-ECQ75MKQ.js +0 -0
- package/dist/_browser-chunks/chunk-EIYAKDGP.js +302 -0
- package/dist/_browser-chunks/chunk-ENKK74N4.js +12 -0
- package/dist/_browser-chunks/chunk-FENFYI4X.js +698 -0
- package/dist/_browser-chunks/chunk-FJGWSWL5.js +155 -0
- package/dist/_browser-chunks/chunk-FVSEPWWX.js +2810 -0
- package/dist/_browser-chunks/chunk-GNZY6LOW.js +10116 -0
- package/dist/_browser-chunks/chunk-IE4ULIOQ.js +14 -0
- package/dist/_browser-chunks/chunk-IMSF75WX.js +42 -0
- package/dist/_browser-chunks/chunk-IWQGIXJS.js +14 -0
- package/dist/_browser-chunks/chunk-JMC7AIKT.js +108 -0
- package/dist/_browser-chunks/chunk-JPUOQJUI.js +8 -0
- package/dist/_browser-chunks/chunk-JSBKXXXF.js +218 -0
- package/dist/_browser-chunks/chunk-JWSKPMPC.js +73 -0
- package/dist/_browser-chunks/chunk-JYVGARBG.js +2943 -0
- package/dist/_browser-chunks/chunk-KBK7GKBN.js +35 -0
- package/dist/_browser-chunks/chunk-KQ7CRO2B.js +108 -0
- package/dist/_browser-chunks/chunk-LAWXTSXK.js +18 -0
- package/dist/_browser-chunks/chunk-LE2LTDW3.js +14 -0
- package/dist/_browser-chunks/chunk-LEVSOOLQ.js +48 -0
- package/dist/_browser-chunks/chunk-LV5PIKV4.js +93 -0
- package/dist/_browser-chunks/chunk-MDOL7KML.js +56 -0
- package/dist/_browser-chunks/chunk-MFMDGWP6.js +34 -0
- package/dist/_browser-chunks/chunk-MLBOOZL4.js +67 -0
- package/dist/_browser-chunks/chunk-NQUD4B7H.js +91 -0
- package/dist/_browser-chunks/chunk-NULBREPZ.js +43 -0
- package/dist/_browser-chunks/chunk-NZMVUW5T.js +7 -0
- package/dist/_browser-chunks/chunk-OD6IBQCC.js +117 -0
- package/dist/_browser-chunks/chunk-ODVJ3XZJ.js +157 -0
- package/dist/_browser-chunks/chunk-OQWFVDIN.js +386 -0
- package/dist/_browser-chunks/chunk-OVH3USFB.js +20 -0
- package/dist/_browser-chunks/chunk-OZZPSYQR.js +14 -0
- package/dist/_browser-chunks/chunk-P6PK47TQ.js +1970 -0
- package/dist/_browser-chunks/chunk-PFRNG3UC.js +22 -0
- package/dist/_browser-chunks/chunk-PJSMZ27A.js +13 -0
- package/dist/_browser-chunks/chunk-QC4HFS6K.js +41 -0
- package/dist/_browser-chunks/chunk-QDXFODK4.js +274 -0
- package/dist/_browser-chunks/chunk-RBCHTR7C.js +28 -0
- package/dist/_browser-chunks/chunk-RMYQ3QN3.js +294 -0
- package/dist/_browser-chunks/chunk-RNTIV5CE.js +411 -0
- package/dist/_browser-chunks/chunk-RSPAQWVJ.js +80 -0
- package/dist/_browser-chunks/chunk-S6TK43XQ.js +836 -0
- package/dist/_browser-chunks/chunk-SC67XZST.js +18 -0
- package/dist/_browser-chunks/chunk-SFVA4SBT.js +683 -0
- package/dist/_browser-chunks/chunk-SZYFOQMT.js +25 -0
- package/dist/_browser-chunks/chunk-TBJCJXK4.js +18 -0
- package/dist/_browser-chunks/chunk-UMDO3KB7.js +205 -0
- package/dist/_browser-chunks/chunk-V2G23FV7.js +11 -0
- package/dist/_browser-chunks/chunk-V5M7Q4HT.js +88 -0
- package/dist/_browser-chunks/chunk-W5M6NPS3.js +198 -0
- package/dist/_browser-chunks/chunk-W7NE2JXW.js +84 -0
- package/dist/_browser-chunks/chunk-WGVAAM43.js +1110 -0
- package/dist/_browser-chunks/chunk-WHQRNHXD.js +8 -0
- package/dist/_browser-chunks/chunk-WOSOWBCA.js +12 -0
- package/dist/_browser-chunks/chunk-WZ7KR7SH.js +85 -0
- package/dist/_browser-chunks/chunk-YEKO6BHJ.js +20 -0
- package/dist/_browser-chunks/chunk-YI2IBIQS.js +7 -0
- package/dist/_browser-chunks/chunk-YTIT5NA5.js +1966 -0
- package/dist/_browser-chunks/chunk-ZEHRUHTA.js +6 -0
- package/dist/_browser-chunks/chunk-ZTQ5MEJ5.js +203 -0
- package/dist/_browser-chunks/matchers-YLBYSYAF.js +1263 -0
- package/dist/_browser-chunks/react-dom-client-4OHE3QDV.js +9 -0
- package/dist/_node-chunks/attached-runtime-I2G4WLJI.js +282 -0
- package/dist/_node-chunks/builder-manager-VVHYQXCH.js +1661 -0
- package/dist/_node-chunks/chunk-2BUPBPFB.js +82 -0
- package/dist/_node-chunks/chunk-2DSIDINN.js +884 -0
- package/dist/_node-chunks/chunk-2RU7BKEW.js +23 -0
- package/dist/_node-chunks/chunk-34EO2PUT.js +26 -0
- package/dist/_node-chunks/chunk-3BKIBF5S.js +3008 -0
- package/dist/_node-chunks/chunk-3SDUYDXH.js +98 -0
- package/dist/_node-chunks/chunk-3T4ZSNPH.js +662 -0
- package/dist/_node-chunks/chunk-3W7F2B7P.js +79 -0
- package/dist/_node-chunks/chunk-3Y6AAY5H.js +80 -0
- package/dist/_node-chunks/chunk-42UWAGPW.js +1193 -0
- package/dist/_node-chunks/chunk-4FEANXWU.js +1986 -0
- package/dist/_node-chunks/chunk-5DQFEZEA.js +40 -0
- package/dist/_node-chunks/chunk-6KEHV53S.js +1218 -0
- package/dist/_node-chunks/chunk-6LMWA44H.js +3837 -0
- package/dist/_node-chunks/chunk-6YKBRP72.js +20 -0
- package/dist/_node-chunks/chunk-7GUDZVRQ.js +110 -0
- package/dist/_node-chunks/chunk-B5J7Q7J4.js +21 -0
- package/dist/_node-chunks/chunk-BS2WMZMR.js +90 -0
- package/dist/_node-chunks/chunk-BSKFCWQD.js +47 -0
- package/dist/_node-chunks/chunk-BXVYT7SB.js +36 -0
- package/dist/_node-chunks/chunk-CCOTJ4FC.js +688 -0
- package/dist/_node-chunks/chunk-CQKMLL5J.js +33 -0
- package/dist/_node-chunks/chunk-CXRU72ET.js +63 -0
- package/dist/_node-chunks/chunk-DC7DKR5K.js +20 -0
- package/dist/_node-chunks/chunk-DHJFTB4K.js +25 -0
- package/dist/_node-chunks/chunk-DUR55DJJ.js +1094 -0
- package/dist/_node-chunks/chunk-E6YESGLX.js +7032 -0
- package/dist/_node-chunks/chunk-EHUNOMDD.js +52345 -0
- package/dist/_node-chunks/chunk-ET7PWEO7.js +298 -0
- package/dist/_node-chunks/chunk-EWOX7HPJ.js +20 -0
- package/dist/_node-chunks/chunk-F3ZFKBHY.js +844 -0
- package/dist/_node-chunks/chunk-FK7KGTV7.js +26 -0
- package/dist/_node-chunks/chunk-FPZB5OI7.js +35 -0
- package/dist/_node-chunks/chunk-FW2HQUBQ.js +25 -0
- package/dist/_node-chunks/chunk-FY6UXW6G.js +11 -0
- package/dist/_node-chunks/chunk-GEFQN7K3.js +499 -0
- package/dist/_node-chunks/chunk-GRBLDJCR.js +989 -0
- package/dist/_node-chunks/chunk-H32DYT6P.js +87 -0
- package/dist/_node-chunks/chunk-H4PPVMP5.js +23 -0
- package/dist/_node-chunks/chunk-HMP2G23X.js +25 -0
- package/dist/_node-chunks/chunk-ICPBH3E7.js +59 -0
- package/dist/_node-chunks/chunk-IDEL2J23.js +23 -0
- package/dist/_node-chunks/chunk-IK4FGZLR.js +223 -0
- package/dist/_node-chunks/chunk-JDXXX6LB.js +68 -0
- package/dist/_node-chunks/chunk-JGGFYIG5.js +5468 -0
- package/dist/_node-chunks/chunk-JPAZLYJ3.js +29 -0
- package/dist/_node-chunks/chunk-JZOO7GGC.js +48 -0
- package/dist/_node-chunks/chunk-KISMCCP5.js +4744 -0
- package/dist/_node-chunks/chunk-LCK4ZQKG.js +115 -0
- package/dist/_node-chunks/chunk-LO56I6E2.js +132 -0
- package/dist/_node-chunks/chunk-LXBD4UL4.js +104 -0
- package/dist/_node-chunks/chunk-MA24JW6C.js +7162 -0
- package/dist/_node-chunks/chunk-MK2KYAI6.js +5414 -0
- package/dist/_node-chunks/chunk-NDWKJ4CL.js +2102 -0
- package/dist/_node-chunks/chunk-NIBT7XDZ.js +168 -0
- package/dist/_node-chunks/chunk-NPO45IMH.js +33 -0
- package/dist/_node-chunks/chunk-OISX4AGQ.js +414 -0
- package/dist/_node-chunks/chunk-OUW6R7C3.js +26 -0
- package/dist/_node-chunks/chunk-OWNFOGTA.js +194 -0
- package/dist/_node-chunks/chunk-Q7QNUM5H.js +49 -0
- package/dist/_node-chunks/chunk-QEQLR22M.js +1877 -0
- package/dist/_node-chunks/chunk-RRN2V55B.js +45 -0
- package/dist/_node-chunks/chunk-RWFIFGO5.js +144 -0
- package/dist/_node-chunks/chunk-RXNJDRGO.js +209 -0
- package/dist/_node-chunks/chunk-RZMQ7S3L.js +92 -0
- package/dist/_node-chunks/chunk-SIEXZVCR.js +51 -0
- package/dist/_node-chunks/chunk-SLWQNBGO.js +2034 -0
- package/dist/_node-chunks/chunk-SVTBJ7Q3.js +35 -0
- package/dist/_node-chunks/chunk-SWO5CDYU.js +32 -0
- package/dist/_node-chunks/chunk-TD5PLLQG.js +121 -0
- package/dist/_node-chunks/chunk-TEQGGSP7.js +33 -0
- package/dist/_node-chunks/chunk-TFCEV2XX.js +155 -0
- package/dist/_node-chunks/chunk-TFEWM4E3.js +1073 -0
- package/dist/_node-chunks/chunk-TINO74G5.js +21 -0
- package/dist/_node-chunks/chunk-TNJIXE37.js +40 -0
- package/dist/_node-chunks/chunk-TWI4GVH7.js +19 -0
- package/dist/_node-chunks/chunk-U5W53R2J.js +1011 -0
- package/dist/_node-chunks/chunk-UBOGWBEA.js +148 -0
- package/dist/_node-chunks/chunk-UMUBKI6E.js +3787 -0
- package/dist/_node-chunks/chunk-UVINFLGY.js +56 -0
- package/dist/_node-chunks/chunk-V2DY426G.js +1133 -0
- package/dist/_node-chunks/chunk-VLOXOXXE.js +45 -0
- package/dist/_node-chunks/chunk-W4OMYLSP.js +1297 -0
- package/dist/_node-chunks/chunk-WAXVSN3O.js +18 -0
- package/dist/_node-chunks/chunk-WCULS5TP.js +3767 -0
- package/dist/_node-chunks/chunk-WNZ2UMFM.js +153 -0
- package/dist/_node-chunks/chunk-WZJF2OUH.js +74 -0
- package/dist/_node-chunks/chunk-XGIUVY52.js +611 -0
- package/dist/_node-chunks/chunk-XHL2LVBM.js +415 -0
- package/dist/_node-chunks/chunk-XI6B6P47.js +59 -0
- package/dist/_node-chunks/chunk-XLP2ZKXV.js +60 -0
- package/dist/_node-chunks/chunk-YCMRA6RX.js +95 -0
- package/dist/_node-chunks/chunk-YZFWBA5L.js +2700 -0
- package/dist/_node-chunks/chunk-ZMAMXQKP.js +4731 -0
- package/dist/_node-chunks/chunk-ZWBCQ4MJ.js +110 -0
- package/dist/_node-chunks/dist-VTSTZKUB.js +16 -0
- package/dist/_node-chunks/globby-OEMHPBFY.js +2884 -0
- package/dist/_node-chunks/jiti-NFX6UU74.js +3848 -0
- package/dist/_node-chunks/lib-MDVARD7W.js +366 -0
- package/dist/_node-chunks/local-runtime-NTKIN2QT.js +78 -0
- package/dist/_node-chunks/mdx-plugin-MWISDWDQ.js +5680 -0
- package/dist/_node-chunks/monorepo-LIRFMQXE.js +121 -0
- package/dist/_node-chunks/monorepo-optimized-tests-relaxed-limits-no-story-deletion-CPDW4XTW.js +121 -0
- package/dist/_node-chunks/optimized-tests-HDOLR3EY.js +22 -0
- package/dist/_node-chunks/pattern-copy-play-EKHIUAU2.js +807 -0
- package/dist/_node-chunks/postinstallAddon-GYGMWDL6.js +20 -0
- package/dist/_node-chunks/rehype-external-links-BUN3HUCO.js +121 -0
- package/dist/_node-chunks/rehype-slug-PLADX223.js +52 -0
- package/dist/_node-chunks/relaxed-limits-GBHW6KIQ.js +117 -0
- package/dist/_node-chunks/run-KDTIZNSY.js +103 -0
- package/dist/_node-chunks/run-NL66VTNR.js +4532 -0
- package/dist/_node-chunks/session-id-KIIVOQLR.js +23 -0
- package/dist/_node-chunks/setup-MGC7BQO6.js +278 -0
- package/dist/_node-chunks/vitest.config.4.template-JH2THZFG.js +54 -0
- package/dist/actions/decorator.d.ts +7 -0
- package/dist/actions/decorator.js +43 -0
- package/dist/actions/index.d.ts +67 -0
- package/dist/actions/index.js +28 -0
- package/dist/addon-a11y/index.d.ts +52 -0
- package/dist/addon-a11y/index.js +16 -0
- package/dist/addon-a11y/manager.js +1429 -0
- package/dist/addon-a11y/preset.js +18 -0
- package/dist/addon-a11y/preview.d.ts +17 -0
- package/dist/addon-a11y/preview.js +15 -0
- package/dist/addon-docs/blocks.d.ts +1061 -0
- package/dist/addon-docs/blocks.js +2461 -0
- package/dist/addon-docs/index.d.ts +236 -0
- package/dist/addon-docs/index.js +16 -0
- package/dist/addon-docs/manager.js +90 -0
- package/dist/addon-docs/mdx-react-shim.d.ts +1 -0
- package/dist/addon-docs/mdx-react-shim.js +2 -0
- package/dist/addon-docs/preset.js +378 -0
- package/dist/addon-docs/preview.d.ts +4 -0
- package/dist/addon-docs/preview.js +7 -0
- package/dist/addon-links/index.d.ts +22 -0
- package/dist/addon-links/index.js +20 -0
- package/dist/addon-links/manager.js +14 -0
- package/dist/addon-links/preview.d.ts +6 -0
- package/dist/addon-links/preview.js +9 -0
- package/dist/addon-links/react/index.d.ts +25 -0
- package/dist/addon-links/react/index.js +52 -0
- package/dist/addon-mcp/preset.js +1345 -0
- package/dist/addon-mcp/preview.js +29 -0
- package/dist/addon-mcp/tools/preview-stories/preview-stories-app-script.js +1153 -0
- package/dist/addon-ondevice-actions/index.d.ts +4 -0
- package/dist/addon-ondevice-actions/index.js +7 -0
- package/dist/addon-ondevice-actions/register.js +7 -0
- package/dist/addon-ondevice-controls/index.d.ts +6 -0
- package/dist/addon-ondevice-controls/index.js +14 -0
- package/dist/addon-ondevice-controls/register.js +10 -0
- package/dist/addon-pseudo-states/index.d.ts +35 -0
- package/dist/addon-pseudo-states/index.js +15 -0
- package/dist/addon-pseudo-states/manager.js +53 -0
- package/dist/addon-pseudo-states/preview.d.ts +9 -0
- package/dist/addon-pseudo-states/preview.js +10 -0
- package/dist/addon-themes/index.d.ts +80 -0
- package/dist/addon-themes/index.js +104 -0
- package/dist/addon-themes/manager.js +97 -0
- package/dist/addon-themes/postinstall.js +33 -0
- package/dist/addon-themes/preview.d.ts +6 -0
- package/dist/addon-themes/preview.js +8 -0
- package/dist/addon-vitest/constants.d.ts +132 -0
- package/dist/addon-vitest/constants.js +66 -0
- package/dist/addon-vitest/index.d.ts +4 -0
- package/dist/addon-vitest/index.js +8 -0
- package/dist/addon-vitest/manager.js +665 -0
- package/dist/addon-vitest/node/coverage-reporter.js +1284 -0
- package/dist/addon-vitest/node/vitest.js +674 -0
- package/dist/addon-vitest/postinstall.js +24 -0
- package/dist/addon-vitest/preset.js +943 -0
- package/dist/addon-vitest/vitest-plugin/global-setup.js +162 -0
- package/dist/addon-vitest/vitest-plugin/index.d.ts +56 -0
- package/dist/addon-vitest/vitest-plugin/index.js +463 -0
- package/dist/addon-vitest/vitest-plugin/setup-file-with-project-annotations.js +9 -0
- package/dist/addon-vitest/vitest-plugin/setup-file.browser.4.js +20 -0
- package/dist/addon-vitest/vitest-plugin/setup-file.js +50 -0
- package/dist/addon-vitest/vitest-plugin/test-utils.js +128 -0
- package/dist/babel/index.d.ts +2301 -0
- package/dist/babel/index.js +61 -0
- package/dist/backgrounds/index.d.ts +6 -0
- package/dist/backgrounds/index.js +15 -0
- package/dist/bin/core.js +1705 -0
- package/dist/bin/dispatcher.js +43 -0
- package/dist/bin/loader.js +115 -0
- package/dist/builder-vite/index.d.ts +50 -0
- package/dist/builder-vite/index.js +245 -0
- package/dist/builder-vite/preset.js +27 -0
- package/dist/channels/index.d.ts +2 -0
- package/dist/channels/index.js +352 -0
- package/dist/chunk-B2t1tGRh.d.ts +284 -0
- package/dist/chunk-BCoJQE-f.d.ts +602 -0
- package/dist/chunk-BGkgZp-H.d.ts +214 -0
- package/dist/chunk-BTVrWliM.d.ts +115 -0
- package/dist/chunk-BXLImeLy.d.ts +197 -0
- package/dist/chunk-BfBzpgct.d.ts +916 -0
- package/dist/chunk-Bpi2tz-6.d.ts +511 -0
- package/dist/chunk-BxWufQms.d.ts +142 -0
- package/dist/chunk-C-bavsOH.d.ts +34 -0
- package/dist/chunk-C2p5r3Vt.d.ts +13001 -0
- package/dist/chunk-C6PAgHLT.d.ts +12 -0
- package/dist/chunk-CMeX4WRe.d.ts +179 -0
- package/dist/chunk-Ct9xd6IM.d.ts +65 -0
- package/dist/chunk-CwQKNaYL.d.ts +15 -0
- package/dist/chunk-D7DwV41f.d.ts +3622 -0
- package/dist/chunk-DEVFdzxR.d.ts +253 -0
- package/dist/chunk-DaVb55-_.d.ts +124 -0
- package/dist/chunk-DgRNfmj_.d.ts +40 -0
- package/dist/chunk-DoIGKY33.d.ts +666 -0
- package/dist/chunk-Dr3R0DXk.d.ts +40 -0
- package/dist/chunk-DtHByo32.d.ts +55 -0
- package/dist/chunk-Dw1z1Pki.d.ts +933 -0
- package/dist/chunk-DzuY9DXg.d.ts +79 -0
- package/dist/chunk-FjDVzZTj.d.ts +62 -0
- package/dist/chunk-Kt1tW-D1.d.ts +59 -0
- package/dist/chunk-XP8oHzpE.d.ts +6 -0
- package/dist/chunk-gCX81nOr.d.ts +61 -0
- package/dist/chunk-pcFXCimE.d.ts +741 -0
- package/dist/cli/index.d.ts +1174 -0
- package/dist/cli/index.js +5613 -0
- package/dist/cli/skills/content/index.d.ts +72 -0
- package/dist/cli/skills/content/index.js +335 -0
- package/dist/cli/tools/sdk/child-host.d.ts +61 -0
- package/dist/cli/tools/sdk/child-host.js +131 -0
- package/dist/cli/tools/sdk/index.d.ts +137 -0
- package/dist/cli/tools/sdk/index.js +44 -0
- package/dist/cli-commands/bin/index.js +25 -0
- package/dist/client-logger/index.d.ts +31 -0
- package/dist/client-logger/index.js +63 -0
- package/dist/common/index.d.ts +1103 -0
- package/dist/common/index.js +364 -0
- package/dist/components/index.d.ts +1924 -0
- package/dist/components/index.js +13759 -0
- package/dist/core-events/index.d.ts +155 -0
- package/dist/core-events/index.js +136 -0
- package/dist/core-server/index.d.ts +2200 -0
- package/dist/core-server/index.js +4165 -0
- package/dist/core-server/presets/common-manager.css +170 -0
- package/dist/core-server/presets/common-manager.js +4168 -0
- package/dist/core-server/presets/common-override-preset.js +81 -0
- package/dist/core-server/presets/common-preset.js +2187 -0
- package/dist/create/bin/index.js +23 -0
- package/dist/create/index.js +25 -0
- package/dist/csf/csf-utils.d.ts +2 -0
- package/dist/csf/csf-utils.js +19 -0
- package/dist/csf/index.d.ts +7 -0
- package/dist/csf/index.js +2142 -0
- package/dist/csf-tools/index.d.ts +1157 -0
- package/dist/csf-tools/index.js +736 -0
- package/dist/docs-tools/index.d.ts +197 -0
- package/dist/docs-tools/index.js +61 -0
- package/dist/highlight/index.d.ts +10 -0
- package/dist/highlight/index.js +15 -0
- package/dist/instrumenter/index.d.ts +113 -0
- package/dist/instrumenter/index.js +2595 -0
- package/dist/manager/_manager-chunks/globals-runtime-8HkdnU2F.js +6144 -0
- package/dist/manager/_manager-chunks/globals-runtime-BIKBO23x.js +3389 -0
- package/dist/manager/_manager-chunks/globals-runtime-BdGkqNEt.js +45 -0
- package/dist/manager/_manager-chunks/globals-runtime-BmphMP6z.js +1190 -0
- package/dist/manager/_manager-chunks/globals-runtime-BvM-NY2g.js +13307 -0
- package/dist/manager/_manager-chunks/globals-runtime-C02fvgcd.js +9243 -0
- package/dist/manager/_manager-chunks/globals-runtime-DkAPXCvc.js +9766 -0
- package/dist/manager/_manager-chunks/globals-runtime-DpNYC-qi.js +5564 -0
- package/dist/manager/_manager-chunks/globals-runtime-DtcOnYHR.js +5357 -0
- package/dist/manager/_manager-chunks/globals-runtime-DwFqpqya.js +722 -0
- package/dist/manager/_manager-chunks/globals-runtime-FC201B7s.js +6837 -0
- package/dist/manager/_manager-chunks/globals-runtime-Rp_zjGnh.js +121 -0
- package/dist/manager/_manager-chunks/globals-runtime-ZHrQFa3-.js +10463 -0
- package/dist/manager/_manager-chunks/globals-runtime-eLPTIfX-.js +7759 -0
- package/dist/manager/_manager-chunks/globals-runtime-qKvCZHFY.js +4468 -0
- package/dist/manager/_manager-chunks/globals-runtime-sGpNlIJ1.js +5102 -0
- package/dist/manager/_manager-chunks/runtime-B1L9TH89.js +452 -0
- package/dist/manager/_manager-chunks/runtime-BK0zF7FN.js +22 -0
- package/dist/manager/_manager-chunks/runtime-BhkT2CXl.js +1408 -0
- package/dist/manager/_manager-chunks/runtime-Bly6WJLN.js +998 -0
- package/dist/manager/_manager-chunks/runtime-D0UOWx0U.js +979 -0
- package/dist/manager/_manager-chunks/runtime-D94Vq3oR.js +4014 -0
- package/dist/manager/_manager-chunks/runtime-DMig8mT7.js +77 -0
- package/dist/manager/_manager-chunks/runtime-EITvVbkG.js +46 -0
- package/dist/manager/_manager-chunks/runtime-cp5pazY2.js +8936 -0
- package/dist/manager/_manager-chunks/runtime-eDVAYF7N.js +6860 -0
- package/dist/manager/_manager-chunks/runtime-i-PDAHLR.js +2493 -0
- package/dist/manager/globals-runtime.js +2 -0
- package/dist/manager/globals.d.ts +23 -0
- package/dist/manager/globals.js +26 -0
- package/dist/manager/manager-stores.d.ts +2 -0
- package/dist/manager/manager-stores.js +19 -0
- package/dist/manager/runtime.js +2 -0
- package/dist/manager-api/index.d.ts +2 -0
- package/dist/manager-api/index.js +3257 -0
- package/dist/manager-errors.d.ts +89 -0
- package/dist/manager-errors.js +20 -0
- package/dist/mcp/index.d.ts +270 -0
- package/dist/mcp/index.js +305 -0
- package/dist/mocking-utils/index.d.ts +689 -0
- package/dist/mocking-utils/index.js +521 -0
- package/dist/mocking-utils/mocker-runtime.js +1254 -0
- package/dist/nextjs-vite/config/preview.js +3 -0
- package/dist/nextjs-vite/export-mocks/cache/index.d.ts +25 -0
- package/dist/nextjs-vite/export-mocks/cache/index.js +29 -0
- package/dist/nextjs-vite/export-mocks/headers/index.d.ts +37 -0
- package/dist/nextjs-vite/export-mocks/headers/index.js +54 -0
- package/dist/nextjs-vite/export-mocks/link/index.d.ts +9 -0
- package/dist/nextjs-vite/export-mocks/link/index.js +59 -0
- package/dist/nextjs-vite/export-mocks/navigation/index.d.ts +28 -0
- package/dist/nextjs-vite/export-mocks/navigation/index.js +58 -0
- package/dist/nextjs-vite/export-mocks/router/index.d.ts +34 -0
- package/dist/nextjs-vite/export-mocks/router/index.js +63 -0
- package/dist/nextjs-vite/index.d.ts +92 -0
- package/dist/nextjs-vite/index.js +58 -0
- package/dist/nextjs-vite/node/index.d.ts +6 -0
- package/dist/nextjs-vite/node/index.js +20 -0
- package/dist/nextjs-vite/preset.js +648 -0
- package/dist/nextjs-vite/preview.d.ts +20 -0
- package/dist/nextjs-vite/preview.js +11 -0
- package/dist/nextjs-vite/vite-plugin/index.d.ts +6 -0
- package/dist/nextjs-vite/vite-plugin/index.js +19 -0
- package/dist/nextjs-vite-plugin/index.d.ts +28 -0
- package/dist/nextjs-vite-plugin/index.js +923 -0
- package/dist/nextjs-vite-plugin/mocks/storybook.global.js +29 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/image-context.js +8 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/image-default-loader.js +23 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/next-image.js +28 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/next-legacy-image.js +17 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/cache/index.js +29 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/dynamic/index.js +40 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/headers/index.js +55 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/link/index.js +63 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/navigation/index.js +71 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/router/index.js +74 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/rsc/server-only.js +7 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/safe-stable-stringify/index.js +13 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/compatibility/draft-mode.compat.js +7 -0
- package/dist/node-logger/index.d.ts +495 -0
- package/dist/node-logger/index.js +42 -0
- package/dist/oxc-parser/index.d.ts +99 -0
- package/dist/oxc-parser/index.js +275 -0
- package/dist/oxc-parser/worker.js +37 -0
- package/dist/preview/_chunks/runtime-BIzIdDbb.js +10263 -0
- package/dist/preview/_chunks/runtime-BTPtVY1p.js +1102 -0
- package/dist/preview/_chunks/runtime-BZSnICCg.js +8484 -0
- package/dist/preview/_chunks/runtime-BdGkqNEt.js +45 -0
- package/dist/preview/_chunks/runtime-BwSxqk3t.js +63 -0
- package/dist/preview/_chunks/runtime-CqHxptiK.js +6143 -0
- package/dist/preview/_chunks/runtime-CsV4HZPV.js +5064 -0
- package/dist/preview/_chunks/runtime-CxZK_Ln3.js +284 -0
- package/dist/preview/_chunks/runtime-DZToXfvO.js +9767 -0
- package/dist/preview/_chunks/runtime-DrTjJkPY.js +3872 -0
- package/dist/preview/_chunks/runtime-DuHdxMFA.js +387 -0
- package/dist/preview/_chunks/runtime-iXdo8CR8.js +3635 -0
- package/dist/preview/_chunks/runtime-q3wt0e_N.js +6838 -0
- package/dist/preview/globals.d.ts +16 -0
- package/dist/preview/globals.js +20 -0
- package/dist/preview/runtime.js +6 -0
- package/dist/preview-api/index.d.ts +4 -0
- package/dist/preview-api/index.js +147 -0
- package/dist/preview-errors.d.ts +186 -0
- package/dist/preview-errors.js +56 -0
- package/dist/react/docgen/docgen-worker.js +38 -0
- package/dist/react/entry-preview-argtypes.js +9 -0
- package/dist/react/entry-preview-docs.js +12 -0
- package/dist/react/entry-preview-rsc.js +11 -0
- package/dist/react/entry-preview.js +21 -0
- package/dist/react/index.d.ts +119 -0
- package/dist/react/index.js +26 -0
- package/dist/react/preset.js +301 -0
- package/dist/react/preview.d.ts +2 -0
- package/dist/react/preview.js +11 -0
- package/dist/react-native/bin/get-stories.js +34 -0
- package/dist/react-native/index.d.ts +160 -0
- package/dist/react-native/index.js +1547 -0
- package/dist/react-native/metro/node.d.ts +83 -0
- package/dist/react-native/metro/node.js +21 -0
- package/dist/react-native/metro/withStorybook.d.ts +2269 -0
- package/dist/react-native/metro/withStorybook.js +138 -0
- package/dist/react-native/preview.d.ts +6 -0
- package/dist/react-native/preview.js +20 -0
- package/dist/react-native/scripts/generate.d.ts +22 -0
- package/dist/react-native/scripts/generate.js +18 -0
- package/dist/react-native/stub.js +20 -0
- package/dist/react-native-theming/index.d.ts +175 -0
- package/dist/react-native-theming/index.js +2591 -0
- package/dist/react-native-ui/index.d.ts +130 -0
- package/dist/react-native-ui/index.js +1448 -0
- package/dist/react-native-ui-common/index.d.ts +230 -0
- package/dist/react-native-ui-common/index.js +514 -0
- package/dist/react-vite/index.d.ts +4 -0
- package/dist/react-vite/index.js +8 -0
- package/dist/react-vite/node/index.d.ts +6 -0
- package/dist/react-vite/node/index.js +20 -0
- package/dist/react-vite/preset.d.ts +6 -0
- package/dist/react-vite/preset.js +21 -0
- package/dist/router/index.d.ts +141 -0
- package/dist/router/index.js +1217 -0
- package/dist/server-errors.d.ts +2 -0
- package/dist/server-errors.js +149 -0
- package/dist/shared/open-service/index.d.ts +3 -0
- package/dist/shared/open-service/index.js +115 -0
- package/dist/shared/open-service/services/docgen/worker/docgen-worker.js +75 -0
- package/dist/shared/open-service/toolsets/docs/public.d.ts +1296 -0
- package/dist/shared/open-service/toolsets/docs/public.js +991 -0
- package/dist/telemetry/index.d.ts +314 -0
- package/dist/telemetry/index.js +103 -0
- package/dist/test/index.d.ts +158 -0
- package/dist/test/index.js +19421 -0
- package/dist/theming/create.d.ts +15 -0
- package/dist/theming/create.js +11 -0
- package/dist/theming/index.d.ts +54 -0
- package/dist/theming/index.js +511 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +48 -0
- package/dist/viewport/index.d.ts +275 -0
- package/dist/viewport/index.js +21 -0
- package/package.json +1054 -4
- package/template/nextjs-vite/cli/.eslintrc.json +6 -0
- package/template/nextjs-vite/cli/js/Button.jsx +42 -0
- package/template/nextjs-vite/cli/js/Button.stories.js +49 -0
- package/template/nextjs-vite/cli/js/Configure.mdx +470 -0
- package/template/nextjs-vite/cli/js/Header.jsx +58 -0
- package/template/nextjs-vite/cli/js/Header.stories.js +30 -0
- package/template/nextjs-vite/cli/js/Page.jsx +68 -0
- package/template/nextjs-vite/cli/js/Page.stories.js +28 -0
- package/template/nextjs-vite/cli/ts/Button.stories.ts +54 -0
- package/template/nextjs-vite/cli/ts/Button.tsx +39 -0
- package/template/nextjs-vite/cli/ts/Configure.mdx +446 -0
- package/template/nextjs-vite/cli/ts/Header.stories.ts +34 -0
- package/template/nextjs-vite/cli/ts/Header.tsx +54 -0
- package/template/nextjs-vite/cli/ts/Page.stories.ts +33 -0
- package/template/nextjs-vite/cli/ts/Page.tsx +73 -0
- package/template/react/cli/.eslintrc.json +5 -0
- package/template/react/cli/js/Button.jsx +39 -0
- package/template/react/cli/js/Button.stories.js +49 -0
- package/template/react/cli/js/Header.jsx +56 -0
- package/template/react/cli/js/Header.stories.js +29 -0
- package/template/react/cli/js/Page.jsx +69 -0
- package/template/react/cli/js/Page.stories.js +28 -0
- package/template/react/cli/ts/Button.stories.ts +54 -0
- package/template/react/cli/ts/Button.tsx +37 -0
- package/template/react/cli/ts/Header.stories.ts +34 -0
- package/template/react/cli/ts/Header.tsx +56 -0
- package/template/react/cli/ts/Page.stories.ts +33 -0
- package/template/react/cli/ts/Page.tsx +73 -0
- package/template/react-vite/cli/.eslintrc.json +5 -0
- package/template/react-vite/cli/js/Button.jsx +39 -0
- package/template/react-vite/cli/js/Button.stories.js +49 -0
- package/template/react-vite/cli/js/Header.jsx +56 -0
- package/template/react-vite/cli/js/Header.stories.js +29 -0
- package/template/react-vite/cli/js/Page.jsx +69 -0
- package/template/react-vite/cli/js/Page.stories.js +28 -0
- package/template/react-vite/cli/ts/Button.stories.ts +54 -0
- package/template/react-vite/cli/ts/Button.tsx +37 -0
- package/template/react-vite/cli/ts/Header.stories.ts +34 -0
- package/template/react-vite/cli/ts/Header.tsx +56 -0
- package/template/react-vite/cli/ts/Page.stories.ts +33 -0
- package/template/react-vite/cli/ts/Page.tsx +73 -0
|
@@ -0,0 +1,1094 @@
|
|
|
1
|
+
import CJS_COMPAT_NODE_URL_ro17f80mg6k from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_ro17f80mg6k from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_ro17f80mg6k from "node:module";
|
|
4
|
+
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_ro17f80mg6k.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_ro17f80mg6k.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_ro17f80mg6k.createRequire(import.meta.url);
|
|
8
|
+
|
|
9
|
+
// ------------------------------------------------------------
|
|
10
|
+
// end of CJS compatibility banner, injected by Forkbook's esbuild configuration
|
|
11
|
+
// ------------------------------------------------------------
|
|
12
|
+
import {
|
|
13
|
+
cache
|
|
14
|
+
} from "./chunk-UVINFLGY.js";
|
|
15
|
+
import {
|
|
16
|
+
importMetaResolve
|
|
17
|
+
} from "./chunk-F3ZFKBHY.js";
|
|
18
|
+
import {
|
|
19
|
+
slash
|
|
20
|
+
} from "./chunk-DC7DKR5K.js";
|
|
21
|
+
|
|
22
|
+
// src/builder-vite/preset.ts
|
|
23
|
+
import { findConfigFile } from "@aussieljk/forkbook/internal/common";
|
|
24
|
+
|
|
25
|
+
// src/builder-vite/plugins/storybook-config-plugin.ts
|
|
26
|
+
import { isPreservingSymlinks } from "@aussieljk/forkbook/internal/common";
|
|
27
|
+
function storybookConfigPlugin(options) {
|
|
28
|
+
return [
|
|
29
|
+
{
|
|
30
|
+
name: "storybook:config-plugin",
|
|
31
|
+
enforce: "pre",
|
|
32
|
+
async config(config) {
|
|
33
|
+
let { defaultClientConditions = [] } = await import("vite"), existingEnvPrefix = config.envPrefix, mergedEnvPrefix = existingEnvPrefix ? Array.from(
|
|
34
|
+
/* @__PURE__ */ new Set([
|
|
35
|
+
...Array.isArray(existingEnvPrefix) ? existingEnvPrefix : [existingEnvPrefix],
|
|
36
|
+
"FORKBOOK_"
|
|
37
|
+
])
|
|
38
|
+
) : ["VITE_", "FORKBOOK_"];
|
|
39
|
+
return {
|
|
40
|
+
resolve: {
|
|
41
|
+
conditions: ["storybook", "stories", "test", ...defaultClientConditions],
|
|
42
|
+
preserveSymlinks: isPreservingSymlinks()
|
|
43
|
+
},
|
|
44
|
+
envPrefix: mergedEnvPrefix
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "storybook:allow-storybook-dir",
|
|
50
|
+
enforce: "post",
|
|
51
|
+
config(config) {
|
|
52
|
+
config?.server?.fs?.allow && config.server.fs.allow.push(options.configDir);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/builder-vite/plugins/storybook-optimize-deps-plugin.ts
|
|
59
|
+
import { loadPreviewOrConfigFile } from "@aussieljk/forkbook/internal/common";
|
|
60
|
+
import {
|
|
61
|
+
babelParser,
|
|
62
|
+
extractMockCalls,
|
|
63
|
+
findMockRedirect
|
|
64
|
+
} from "@aussieljk/forkbook/internal/mocking-utils";
|
|
65
|
+
import { resolve as resolve2 } from "pathe";
|
|
66
|
+
|
|
67
|
+
// src/builder-vite/utils/process-preview-annotation.ts
|
|
68
|
+
import { isAbsolute, normalize, resolve } from "pathe";
|
|
69
|
+
function processPreviewAnnotation(path, projectRoot) {
|
|
70
|
+
return typeof path == "object" ? normalize(path.absolute) : isAbsolute(path) ? normalize(path) : normalize(resolve(projectRoot, path));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// src/builder-vite/utils/unique-import-paths.ts
|
|
74
|
+
function getUniqueImportPaths(index) {
|
|
75
|
+
return [...new Set(Object.values(index.entries).map((entry) => entry.importPath))];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// src/builder-vite/plugins/storybook-optimize-deps-plugin.ts
|
|
79
|
+
function escapeGlobPath(filePath) {
|
|
80
|
+
return filePath.replace(/[()[\]{}!*?|+@]/g, "\\$&");
|
|
81
|
+
}
|
|
82
|
+
function getMockRedirectIncludeEntries(mockCalls) {
|
|
83
|
+
return Array.from(
|
|
84
|
+
new Set(
|
|
85
|
+
mockCalls.map((mockCall) => mockCall.redirectPath).filter((redirectPath) => redirectPath !== null).map(escapeGlobPath)
|
|
86
|
+
)
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
function storybookOptimizeDepsPlugin(options) {
|
|
90
|
+
return {
|
|
91
|
+
name: "storybook:optimize-deps-plugin",
|
|
92
|
+
async config(config, { command }) {
|
|
93
|
+
if (command !== "serve")
|
|
94
|
+
return;
|
|
95
|
+
let projectRoot = resolve2(options.configDir, ".."), [extraOptimizeDeps, storyIndexGenerator, previewAnnotations] = await Promise.all([
|
|
96
|
+
options.presets.apply("optimizeViteDeps", []),
|
|
97
|
+
options.presets.apply("storyIndexGenerator"),
|
|
98
|
+
options.presets.apply("previewAnnotations", [], options)
|
|
99
|
+
]), index = await storyIndexGenerator.getIndex(), previewOrConfigFile = loadPreviewOrConfigFile({ configDir: options.configDir }), mockRedirectIncludeEntries = previewOrConfigFile ? getMockRedirectIncludeEntries(
|
|
100
|
+
extractMockCalls(
|
|
101
|
+
{
|
|
102
|
+
previewConfigPath: previewOrConfigFile,
|
|
103
|
+
coreOptions: { disableTelemetry: !0 },
|
|
104
|
+
configDir: options.configDir
|
|
105
|
+
},
|
|
106
|
+
babelParser,
|
|
107
|
+
projectRoot,
|
|
108
|
+
findMockRedirect
|
|
109
|
+
)
|
|
110
|
+
) : [], previewAnnotationEntries = [...previewAnnotations, previewOrConfigFile].filter((path) => path !== void 0).map((path) => processPreviewAnnotation(path, projectRoot));
|
|
111
|
+
return {
|
|
112
|
+
optimizeDeps: {
|
|
113
|
+
// Story files + preview annotation files as entry points for the dep optimizer.
|
|
114
|
+
// Vite will crawl these to discover all transitive CJS dependencies that need
|
|
115
|
+
// pre-bundling, removing the need for a hard-coded include list.
|
|
116
|
+
// Paths are escaped so that special glob characters (e.g. parentheses in Next.js route
|
|
117
|
+
// group directories) are treated as literal characters, not glob syntax.
|
|
118
|
+
entries: [
|
|
119
|
+
...typeof config.optimizeDeps?.entries == "string" ? [config.optimizeDeps.entries] : config.optimizeDeps?.entries ?? [],
|
|
120
|
+
...mockRedirectIncludeEntries,
|
|
121
|
+
...getUniqueImportPaths(index).map(escapeGlobPath),
|
|
122
|
+
...previewAnnotationEntries.map(escapeGlobPath)
|
|
123
|
+
],
|
|
124
|
+
// Extra deps explicitly included by Forkbook presets (e.g. framework-specific packages).
|
|
125
|
+
include: [...extraOptimizeDeps, ...config.optimizeDeps?.include ?? []]
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// src/builder-vite/codegen-project-annotations.ts
|
|
133
|
+
import { getFrameworkName, loadPreviewOrConfigFile as loadPreviewOrConfigFile2 } from "@aussieljk/forkbook/internal/common";
|
|
134
|
+
import { isCsfFactoryPreview, readConfig } from "@aussieljk/forkbook/internal/csf-tools";
|
|
135
|
+
|
|
136
|
+
// ../../node_modules/knitwork/dist/index.mjs
|
|
137
|
+
function genString(input, options = {}) {
|
|
138
|
+
let str = JSON.stringify(input);
|
|
139
|
+
return options.singleQuotes ? `'${escapeString(str).slice(1, -1)}'` : str;
|
|
140
|
+
}
|
|
141
|
+
var NEEDS_ESCAPE_RE = /[\n\r'\\\u2028\u2029]/, QUOTE_NEWLINE_RE = /([\n\r'\u2028\u2029])/g, BACKSLASH_RE = /\\/g;
|
|
142
|
+
function escapeString(id) {
|
|
143
|
+
return NEEDS_ESCAPE_RE.test(id) ? id.replace(BACKSLASH_RE, "\\\\").replace(QUOTE_NEWLINE_RE, "\\$1") : id;
|
|
144
|
+
}
|
|
145
|
+
function genSafeVariableName(name) {
|
|
146
|
+
return reservedNames.has(name) ? `_${name}` : name.replace(/^\d/, (r) => `_${r}`).replace(/\W/g, (r) => "_" + r.charCodeAt(0));
|
|
147
|
+
}
|
|
148
|
+
var reservedNames = /* @__PURE__ */ new Set([
|
|
149
|
+
"Infinity",
|
|
150
|
+
"NaN",
|
|
151
|
+
"arguments",
|
|
152
|
+
"await",
|
|
153
|
+
"break",
|
|
154
|
+
"case",
|
|
155
|
+
"catch",
|
|
156
|
+
"class",
|
|
157
|
+
"const",
|
|
158
|
+
"continue",
|
|
159
|
+
"debugger",
|
|
160
|
+
"default",
|
|
161
|
+
"delete",
|
|
162
|
+
"do",
|
|
163
|
+
"else",
|
|
164
|
+
"enum",
|
|
165
|
+
"eval",
|
|
166
|
+
"export",
|
|
167
|
+
"extends",
|
|
168
|
+
"false",
|
|
169
|
+
"finally",
|
|
170
|
+
"for",
|
|
171
|
+
"function",
|
|
172
|
+
"if",
|
|
173
|
+
"implements",
|
|
174
|
+
"import",
|
|
175
|
+
"in",
|
|
176
|
+
"instanceof",
|
|
177
|
+
"interface",
|
|
178
|
+
"let",
|
|
179
|
+
"new",
|
|
180
|
+
"null",
|
|
181
|
+
"package",
|
|
182
|
+
"private",
|
|
183
|
+
"protected",
|
|
184
|
+
"public",
|
|
185
|
+
"return",
|
|
186
|
+
"static",
|
|
187
|
+
"super",
|
|
188
|
+
"switch",
|
|
189
|
+
"this",
|
|
190
|
+
"throw",
|
|
191
|
+
"true",
|
|
192
|
+
"try",
|
|
193
|
+
"typeof",
|
|
194
|
+
"undefined",
|
|
195
|
+
"var",
|
|
196
|
+
"void",
|
|
197
|
+
"while",
|
|
198
|
+
"with",
|
|
199
|
+
"yield"
|
|
200
|
+
]), VALID_IDENTIFIER_RE = /^[$_]?([A-Z_a-z]\w*|\d)$/;
|
|
201
|
+
function _genStatement(type, specifier, names, options = {}) {
|
|
202
|
+
let specifierString = genString(specifier, options);
|
|
203
|
+
if (!names)
|
|
204
|
+
return `${type} ${specifierString};`;
|
|
205
|
+
let nameArray = Array.isArray(names), namesString = (nameArray ? names : [names]).map((index) => typeof index == "string" ? { name: index } : (index.name === index.as && (index = { name: index.name }), index)).map((index) => index.as ? `${index.name} as ${index.as}` : index.name).join(", ");
|
|
206
|
+
return nameArray ? `${type} { ${namesString} } from ${genString(
|
|
207
|
+
specifier,
|
|
208
|
+
options
|
|
209
|
+
)}${_genImportAttributes(type, options)};` : `${type} ${namesString} from ${genString(
|
|
210
|
+
specifier,
|
|
211
|
+
options
|
|
212
|
+
)}${_genImportAttributes(type, options)};`;
|
|
213
|
+
}
|
|
214
|
+
function _genImportAttributes(type, options) {
|
|
215
|
+
return type === "import type" || type === "export type" ? "" : typeof options.attributes?.type == "string" ? ` with { type: ${genString(options.attributes.type)} }` : typeof options.assert?.type == "string" ? ` assert { type: ${genString(options.assert.type)} }` : "";
|
|
216
|
+
}
|
|
217
|
+
function genImport(specifier, imports, options = {}) {
|
|
218
|
+
return _genStatement("import", specifier, imports, options);
|
|
219
|
+
}
|
|
220
|
+
function genDynamicImport(specifier, options = {}) {
|
|
221
|
+
let commentString = options.comment ? ` /* ${options.comment} */` : "", wrapperString = options.wrapper === !1 ? "" : "() => ", interopString = options.interopDefault ? ".then(m => m.default || m)" : "", optionsString = _genDynamicImportAttributes(options);
|
|
222
|
+
return `${wrapperString}import(${genString(
|
|
223
|
+
specifier,
|
|
224
|
+
options
|
|
225
|
+
)}${commentString}${optionsString})${interopString}`;
|
|
226
|
+
}
|
|
227
|
+
function _genDynamicImportAttributes(options = {}) {
|
|
228
|
+
return typeof options.assert?.type == "string" ? `, { assert: { type: ${genString(options.assert.type)} } }` : typeof options.attributes?.type == "string" ? `, { with: { type: ${genString(options.attributes.type)} } }` : "";
|
|
229
|
+
}
|
|
230
|
+
function wrapInDelimiters(lines, indent = "", delimiters = "{}", withComma = !0) {
|
|
231
|
+
if (lines.length === 0)
|
|
232
|
+
return delimiters;
|
|
233
|
+
let [start, end] = delimiters;
|
|
234
|
+
return `${start}
|
|
235
|
+
` + lines.join(withComma ? `,
|
|
236
|
+
` : `
|
|
237
|
+
`) + `
|
|
238
|
+
${indent}${end}`;
|
|
239
|
+
}
|
|
240
|
+
function genObjectKey(key) {
|
|
241
|
+
return VALID_IDENTIFIER_RE.test(key) ? key : genString(key);
|
|
242
|
+
}
|
|
243
|
+
function genObjectFromRaw(object, indent = "", options = {}) {
|
|
244
|
+
return genObjectFromRawEntries(Object.entries(object), indent, options);
|
|
245
|
+
}
|
|
246
|
+
function genArrayFromRaw(array, indent = "", options = {}) {
|
|
247
|
+
let newIdent = indent + " ";
|
|
248
|
+
return wrapInDelimiters(
|
|
249
|
+
array.map((index) => `${newIdent}${genRawValue(index, newIdent, options)}`),
|
|
250
|
+
indent,
|
|
251
|
+
"[]"
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
function genObjectFromRawEntries(array, indent = "", options = {}) {
|
|
255
|
+
let newIdent = indent + " ";
|
|
256
|
+
return wrapInDelimiters(
|
|
257
|
+
array.map(
|
|
258
|
+
([key, value]) => `${newIdent}${genObjectKey(key)}: ${genRawValue(value, newIdent, options)}`
|
|
259
|
+
),
|
|
260
|
+
indent,
|
|
261
|
+
"{}"
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
function genRawValue(value, indent = "", options = {}) {
|
|
265
|
+
return value === void 0 ? "undefined" : value === null ? "null" : Array.isArray(value) ? genArrayFromRaw(value, indent, options) : value && typeof value == "object" ? genObjectFromRaw(value, indent, options) : options.preserveTypes && typeof value != "function" ? JSON.stringify(value) : value.toString();
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// src/builder-vite/codegen-project-annotations.ts
|
|
269
|
+
import { filename } from "pathe/utils";
|
|
270
|
+
import { dedent } from "ts-dedent";
|
|
271
|
+
async function generateProjectAnnotationsCode(options, projectRoot) {
|
|
272
|
+
let { presets, configDir } = options, frameworkName = await getFrameworkName(options), previewOrConfigFile = loadPreviewOrConfigFile2({ configDir }), previewConfig = previewOrConfigFile ? await readConfig(previewOrConfigFile) : void 0, isCsf4 = previewConfig ? isCsfFactoryPreview(previewConfig) : !1, previewAnnotations = await presets.apply(
|
|
273
|
+
"previewAnnotations",
|
|
274
|
+
[],
|
|
275
|
+
options
|
|
276
|
+
);
|
|
277
|
+
return generateProjectAnnotationsCodeFromPreviews({
|
|
278
|
+
previewAnnotations: [...previewAnnotations, previewOrConfigFile],
|
|
279
|
+
projectRoot,
|
|
280
|
+
frameworkName,
|
|
281
|
+
isCsf4
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
function generateProjectAnnotationsCodeFromPreviews(options) {
|
|
285
|
+
let { projectRoot } = options, previewAnnotationURLs = options.previewAnnotations.filter((path) => path !== void 0).map((path) => processPreviewAnnotation(path, projectRoot)), variables = [], imports = [];
|
|
286
|
+
for (let previewAnnotation of previewAnnotationURLs) {
|
|
287
|
+
let variable = genSafeVariableName(filename(previewAnnotation) ?? "").replace(/_(45|46|47)/g, "_") + "_" + hash(previewAnnotation);
|
|
288
|
+
variables.push(variable), imports.push(genImport(previewAnnotation, { name: "*", as: variable }));
|
|
289
|
+
}
|
|
290
|
+
let previewFileURL = previewAnnotationURLs[previewAnnotationURLs.length - 1], previewFileVariable = variables[variables.length - 1], previewFileImport = imports[imports.length - 1];
|
|
291
|
+
return options.isCsf4 ? dedent`
|
|
292
|
+
${previewFileImport}
|
|
293
|
+
|
|
294
|
+
export function getProjectAnnotations(hmrPreviewAnnotationModules = []) {
|
|
295
|
+
const preview = hmrPreviewAnnotationModules[0] ?? ${previewFileVariable};
|
|
296
|
+
return preview.default.composed;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
if (import.meta.hot) {
|
|
300
|
+
import.meta.hot.accept([${JSON.stringify(previewFileURL)}], (previewAnnotationModules) => {
|
|
301
|
+
// getProjectAnnotations has changed so we need to patch the new one in
|
|
302
|
+
window?.__STORYBOOK_PREVIEW__?.onGetProjectAnnotationsChanged({
|
|
303
|
+
getProjectAnnotations: () => getProjectAnnotations(previewAnnotationModules),
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
`.trim() : dedent`
|
|
308
|
+
import { composeConfigs } from '@aussieljk/forkbook/preview-api';
|
|
309
|
+
|
|
310
|
+
${imports.join(`
|
|
311
|
+
`)}
|
|
312
|
+
|
|
313
|
+
export function getProjectAnnotations(hmrPreviewAnnotationModules = []) {
|
|
314
|
+
const configs = ${genArrayFromRaw(
|
|
315
|
+
variables.map(
|
|
316
|
+
(previewAnnotation, index) => (
|
|
317
|
+
// Prefer the updated module from an HMR update, otherwise the original module
|
|
318
|
+
`hmrPreviewAnnotationModules[${index}] ?? ${previewAnnotation}`
|
|
319
|
+
)
|
|
320
|
+
),
|
|
321
|
+
" "
|
|
322
|
+
)};
|
|
323
|
+
return composeConfigs(configs);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
if (import.meta.hot) {
|
|
327
|
+
import.meta.hot.accept(${JSON.stringify(previewAnnotationURLs)}, (previewAnnotationModules) => {
|
|
328
|
+
// getProjectAnnotations has changed so we need to patch the new one in
|
|
329
|
+
window?.__STORYBOOK_PREVIEW__?.onGetProjectAnnotationsChanged({
|
|
330
|
+
getProjectAnnotations: () => getProjectAnnotations(previewAnnotationModules),
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
`.trim();
|
|
335
|
+
}
|
|
336
|
+
function hash(value) {
|
|
337
|
+
let acc = 5381;
|
|
338
|
+
for (let i = 0; i < value.length; i++)
|
|
339
|
+
acc = (acc << 5) + acc + value.charCodeAt(i) >>> 0;
|
|
340
|
+
return acc;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// src/builder-vite/virtual-file-names.ts
|
|
344
|
+
var SB_VIRTUAL_FILES = {
|
|
345
|
+
VIRTUAL_APP_FILE: "virtual:/@storybook/builder-vite/vite-app.js",
|
|
346
|
+
VIRTUAL_STORIES_FILE: "virtual:/@storybook/builder-vite/storybook-stories.js",
|
|
347
|
+
VIRTUAL_ADDON_SETUP_FILE: "virtual:/@storybook/builder-vite/setup-addons.js"
|
|
348
|
+
}, SB_VIRTUAL_FILE_IDS = Object.values(SB_VIRTUAL_FILES);
|
|
349
|
+
function getResolvedVirtualModuleId(virtualModuleId) {
|
|
350
|
+
return `\0${virtualModuleId}`;
|
|
351
|
+
}
|
|
352
|
+
function getOriginalVirtualModuleId(resolvedVirtualModuleId) {
|
|
353
|
+
return resolvedVirtualModuleId.slice(1);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// src/builder-vite/plugins/storybook-project-annotations-plugin.ts
|
|
357
|
+
var VIRTUAL_ID = "virtual:/@storybook/builder-vite/project-annotations.js", RESOLVED_VIRTUAL_ID = getResolvedVirtualModuleId(VIRTUAL_ID);
|
|
358
|
+
function storybookProjectAnnotationsPlugin(options) {
|
|
359
|
+
let projectRoot;
|
|
360
|
+
return {
|
|
361
|
+
name: "storybook:project-annotations-plugin",
|
|
362
|
+
enforce: "pre",
|
|
363
|
+
configResolved(config) {
|
|
364
|
+
projectRoot = config.root;
|
|
365
|
+
},
|
|
366
|
+
resolveId(source) {
|
|
367
|
+
if (source === VIRTUAL_ID)
|
|
368
|
+
return RESOLVED_VIRTUAL_ID;
|
|
369
|
+
},
|
|
370
|
+
async load(id) {
|
|
371
|
+
if (id === RESOLVED_VIRTUAL_ID)
|
|
372
|
+
return generateProjectAnnotationsCode(options, projectRoot);
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// src/builder-vite/envs.ts
|
|
378
|
+
import { stringifyEnvs } from "@aussieljk/forkbook/internal/common";
|
|
379
|
+
var allowedEnvVariables = [
|
|
380
|
+
"STORYBOOK",
|
|
381
|
+
// Vite `import.meta.env` default variables
|
|
382
|
+
// @see https://github.com/vitejs/vite/blob/6b8d94dca2a1a8b4952e3e3fcd0aed1aedb94215/packages/vite/types/importMeta.d.ts#L68-L75
|
|
383
|
+
"BASE_URL",
|
|
384
|
+
"MODE",
|
|
385
|
+
"DEV",
|
|
386
|
+
"PROD",
|
|
387
|
+
"SSR"
|
|
388
|
+
];
|
|
389
|
+
function stringifyProcessEnvs(raw, envPrefix) {
|
|
390
|
+
let updatedRaw = {}, envs = Object.entries(raw).reduce((acc, [key, value]) => ((allowedEnvVariables.includes(key) || Array.isArray(envPrefix) && envPrefix.find((prefix) => key.startsWith(prefix)) || typeof envPrefix == "string" && key.startsWith(envPrefix)) && (acc[`import.meta.env.${key}`] = JSON.stringify(value), updatedRaw[key] = value), acc), {});
|
|
391
|
+
return envs["import.meta.env"] = JSON.stringify(stringifyEnvs(updatedRaw)), envs;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
// src/builder-vite/plugins/storybook-runtime-plugin.ts
|
|
395
|
+
async function storybookSanitizeEnvs(options) {
|
|
396
|
+
let plugins = [], envs = await options.presets.apply("env");
|
|
397
|
+
return envs && Object.keys(envs).length > 0 && plugins.push({
|
|
398
|
+
name: "storybook:env-plugin",
|
|
399
|
+
config(config) {
|
|
400
|
+
return {
|
|
401
|
+
define: stringifyProcessEnvs(envs, config.envPrefix)
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
}), plugins;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// src/builder-vite/plugins/vite-inject-mocker/plugin.ts
|
|
408
|
+
import { fileURLToPath } from "node:url";
|
|
409
|
+
var ENTRY_PATH = "/vite-inject-mocker-entry.js", viteInjectMockerRuntime = (options) => {
|
|
410
|
+
let mockerRuntimePath = fileURLToPath(
|
|
411
|
+
import.meta.resolve("@aussieljk/forkbook/internal/mocking-utils/mocker-runtime")
|
|
412
|
+
), viteConfig;
|
|
413
|
+
return {
|
|
414
|
+
name: "vite:storybook-inject-mocker-runtime",
|
|
415
|
+
enforce: "pre",
|
|
416
|
+
buildStart() {
|
|
417
|
+
viteConfig.command === "build" && this.emitFile({
|
|
418
|
+
type: "chunk",
|
|
419
|
+
id: mockerRuntimePath,
|
|
420
|
+
fileName: ENTRY_PATH.slice(1)
|
|
421
|
+
});
|
|
422
|
+
},
|
|
423
|
+
configResolved(config) {
|
|
424
|
+
viteConfig = config;
|
|
425
|
+
},
|
|
426
|
+
configureServer(server) {
|
|
427
|
+
options.previewConfigPath && server.watcher.on("change", (file) => {
|
|
428
|
+
file === options.previewConfigPath && server.ws.send({
|
|
429
|
+
type: "custom",
|
|
430
|
+
event: "invalidate-mocker"
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
},
|
|
434
|
+
resolveId: {
|
|
435
|
+
filter: { id: /\/vite-inject-mocker-entry\.js/ },
|
|
436
|
+
handler(source) {
|
|
437
|
+
if (source === ENTRY_PATH)
|
|
438
|
+
return mockerRuntimePath;
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
transformIndexHtml(html) {
|
|
442
|
+
let headTag = html.match(/<head[^>]*>/);
|
|
443
|
+
if (headTag) {
|
|
444
|
+
let entryCode = `<script type="module" src="${viteConfig.command === "build" ? `.${ENTRY_PATH}` : ENTRY_PATH}"></script>`, headTagIndex = html.indexOf(headTag[0]);
|
|
445
|
+
return html.slice(0, headTagIndex + headTag[0].length) + entryCode + html.slice(headTagIndex + headTag[0].length);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
};
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
// src/builder-vite/plugins/vite-mock/plugin.ts
|
|
452
|
+
import { readFileSync } from "node:fs";
|
|
453
|
+
import {
|
|
454
|
+
babelParser as babelParser2,
|
|
455
|
+
extractMockCalls as extractMockCalls2,
|
|
456
|
+
findMockRedirect as findMockRedirect2,
|
|
457
|
+
getAutomockCode,
|
|
458
|
+
getRealPath,
|
|
459
|
+
rewriteSbMockImportCalls
|
|
460
|
+
} from "@aussieljk/forkbook/internal/mocking-utils";
|
|
461
|
+
import { logger } from "@aussieljk/forkbook/internal/node-logger";
|
|
462
|
+
import { normalize as normalize2 } from "pathe";
|
|
463
|
+
|
|
464
|
+
// src/builder-vite/plugins/vite-mock/utils.ts
|
|
465
|
+
function getCleanId(id) {
|
|
466
|
+
return id.replace(/^.*\/deps\//, "").replace(/\.js.*$/, "").replace(/_/g, "/");
|
|
467
|
+
}
|
|
468
|
+
function invalidateAllRelatedModules(server, absPath, pkgName) {
|
|
469
|
+
for (let mod of server.moduleGraph.idToModuleMap.values())
|
|
470
|
+
(mod.id === absPath || mod.id && getCleanId(mod.id) === pkgName) && server.moduleGraph.invalidateModule(mod);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
// src/builder-vite/plugins/vite-mock/plugin.ts
|
|
474
|
+
function viteMockPlugin(options) {
|
|
475
|
+
let viteConfig, mockCalls = [], normalizedPreviewConfigPath = normalize2(options.previewConfigPath);
|
|
476
|
+
return [
|
|
477
|
+
{
|
|
478
|
+
name: "storybook:mock-loader",
|
|
479
|
+
configResolved(config) {
|
|
480
|
+
viteConfig = config;
|
|
481
|
+
},
|
|
482
|
+
buildStart() {
|
|
483
|
+
mockCalls = extractMockCalls2(options, babelParser2, viteConfig.root, findMockRedirect2);
|
|
484
|
+
},
|
|
485
|
+
configureServer(server) {
|
|
486
|
+
async function invalidateAffectedFiles(file) {
|
|
487
|
+
if (file === options.previewConfigPath || file.includes("__mocks__")) {
|
|
488
|
+
let oldMockCalls = mockCalls;
|
|
489
|
+
mockCalls = extractMockCalls2(options, babelParser2, viteConfig.root, findMockRedirect2);
|
|
490
|
+
let previewMod = server.moduleGraph.getModuleById(options.previewConfigPath);
|
|
491
|
+
previewMod && server.moduleGraph.invalidateModule(previewMod);
|
|
492
|
+
for (let call of mockCalls)
|
|
493
|
+
invalidateAllRelatedModules(server, call.absolutePath, call.path);
|
|
494
|
+
let newAbsPaths = new Set(mockCalls.map((c) => c.absolutePath));
|
|
495
|
+
for (let oldCall of oldMockCalls)
|
|
496
|
+
newAbsPaths.has(oldCall.absolutePath) || invalidateAllRelatedModules(server, oldCall.absolutePath, oldCall.path);
|
|
497
|
+
return server.ws.send({ type: "full-reload" }), [];
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
server.watcher.on("change", invalidateAffectedFiles), server.watcher.on("add", invalidateAffectedFiles), server.watcher.on("unlink", invalidateAffectedFiles);
|
|
501
|
+
},
|
|
502
|
+
load: {
|
|
503
|
+
order: "pre",
|
|
504
|
+
handler(id) {
|
|
505
|
+
let preserveSymlinks = viteConfig.resolve.preserveSymlinks, idNorm = getRealPath(id, preserveSymlinks), cleanId = getCleanId(idNorm);
|
|
506
|
+
for (let call of mockCalls)
|
|
507
|
+
if (!(getRealPath(call.absolutePath, preserveSymlinks) !== idNorm && call.path !== cleanId) && call.redirectPath)
|
|
508
|
+
return this.addWatchFile(call.redirectPath), readFileSync(call.redirectPath, "utf-8");
|
|
509
|
+
return null;
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
transform: {
|
|
513
|
+
order: "pre",
|
|
514
|
+
handler(code, id) {
|
|
515
|
+
for (let call of mockCalls) {
|
|
516
|
+
let preserveSymlinks = viteConfig.resolve.preserveSymlinks, idNorm = getRealPath(id, preserveSymlinks), callNorm = getRealPath(call.absolutePath, preserveSymlinks);
|
|
517
|
+
if (viteConfig.command !== "serve") {
|
|
518
|
+
if (callNorm !== idNorm)
|
|
519
|
+
continue;
|
|
520
|
+
} else {
|
|
521
|
+
let cleanId = getCleanId(idNorm);
|
|
522
|
+
if (call.path !== cleanId && callNorm !== idNorm)
|
|
523
|
+
continue;
|
|
524
|
+
}
|
|
525
|
+
try {
|
|
526
|
+
if (!call.redirectPath) {
|
|
527
|
+
let automockedCode = getAutomockCode(code, call.spy, babelParser2);
|
|
528
|
+
return {
|
|
529
|
+
code: automockedCode.toString(),
|
|
530
|
+
map: automockedCode.generateMap().toString()
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
} catch (e) {
|
|
534
|
+
return logger.error(`Error automocking ${id}: ${e}`), null;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
return null;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
name: "storybook:mock-loader-preview",
|
|
543
|
+
transform: {
|
|
544
|
+
filter: { id: normalizedPreviewConfigPath },
|
|
545
|
+
handler(code, id) {
|
|
546
|
+
if (id === normalizedPreviewConfigPath)
|
|
547
|
+
try {
|
|
548
|
+
return rewriteSbMockImportCalls(code);
|
|
549
|
+
} catch (e) {
|
|
550
|
+
return logger.debug(`Could not transform sb.mock(import(...)) calls in ${id}: ${e}`), null;
|
|
551
|
+
}
|
|
552
|
+
return null;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
];
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
// src/builder-vite/utils/preview-runtime-path.ts
|
|
560
|
+
import { createRequire } from "node:module";
|
|
561
|
+
import { dirname, join } from "pathe";
|
|
562
|
+
var builderRequire = createRequire(import.meta.url), corePath = dirname(builderRequire.resolve("@aussieljk/forkbook/package.json")), previewRuntimePath = join(corePath, "dist", "preview", "runtime.js");
|
|
563
|
+
|
|
564
|
+
// src/builder-vite/vite-config.ts
|
|
565
|
+
import { existsSync as existsSync2 } from "node:fs";
|
|
566
|
+
import { resolve as resolve3 } from "node:path";
|
|
567
|
+
import {
|
|
568
|
+
getBuilderOptions,
|
|
569
|
+
resolvePathInStorybookCache
|
|
570
|
+
} from "@aussieljk/forkbook/internal/common";
|
|
571
|
+
|
|
572
|
+
// src/builder-vite/plugins/code-generator-plugin.ts
|
|
573
|
+
import { readFileSync as readFileSync2 } from "node:fs";
|
|
574
|
+
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
575
|
+
|
|
576
|
+
// src/builder-vite/codegen-importfn-script.ts
|
|
577
|
+
import { join as join2, normalize as normalize3, relative } from "pathe";
|
|
578
|
+
import { dedent as dedent2 } from "ts-dedent";
|
|
579
|
+
function generateImportFnScriptCode(index) {
|
|
580
|
+
let objectEntries = getUniqueImportPaths(index).map(
|
|
581
|
+
(importPath) => {
|
|
582
|
+
if (importPath.startsWith("virtual:"))
|
|
583
|
+
return [importPath, genDynamicImport(importPath)];
|
|
584
|
+
let relativePath = normalize3(relative(process.cwd(), importPath)), normalizedRelativePath = relativePath.startsWith("../") ? relativePath : `./${relativePath}`, absolutePath = normalize3(join2(process.cwd(), importPath));
|
|
585
|
+
return [normalizedRelativePath, genDynamicImport(absolutePath)];
|
|
586
|
+
}
|
|
587
|
+
);
|
|
588
|
+
return dedent2`
|
|
589
|
+
const importers = ${genObjectFromRawEntries(objectEntries)};
|
|
590
|
+
|
|
591
|
+
export async function importFn(path) {
|
|
592
|
+
return await importers[path]();
|
|
593
|
+
}
|
|
594
|
+
`;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
// src/builder-vite/codegen-modern-iframe-script.ts
|
|
598
|
+
import { STORY_HOT_UPDATED } from "@aussieljk/forkbook/internal/core-events";
|
|
599
|
+
import { dedent as dedent3 } from "ts-dedent";
|
|
600
|
+
async function generateModernIframeScriptCode() {
|
|
601
|
+
let hmrHandler = dedent3`
|
|
602
|
+
if (import.meta.hot) {
|
|
603
|
+
import.meta.hot.on('vite:afterUpdate', () => {
|
|
604
|
+
window.__STORYBOOK_PREVIEW__.channel.emit('${STORY_HOT_UPDATED}');
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
import.meta.hot.accept('${SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE}', (newModule) => {
|
|
608
|
+
// importFn has changed so we need to patch the new one in
|
|
609
|
+
window.__STORYBOOK_PREVIEW__.onStoriesChanged({ importFn: newModule.importFn });
|
|
610
|
+
});
|
|
611
|
+
}`.trim();
|
|
612
|
+
return dedent3`
|
|
613
|
+
import { setup } from '${previewRuntimePath}';
|
|
614
|
+
|
|
615
|
+
import '${SB_VIRTUAL_FILES.VIRTUAL_ADDON_SETUP_FILE}';
|
|
616
|
+
|
|
617
|
+
setup();
|
|
618
|
+
|
|
619
|
+
import { PreviewWeb } from '@aussieljk/forkbook/preview-api';
|
|
620
|
+
import { importFn } from '${SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE}';
|
|
621
|
+
import { getProjectAnnotations } from '${VIRTUAL_ID}';
|
|
622
|
+
|
|
623
|
+
window.__STORYBOOK_PREVIEW__ = window.__STORYBOOK_PREVIEW__ || new PreviewWeb(importFn, getProjectAnnotations);
|
|
624
|
+
|
|
625
|
+
window.__STORYBOOK_STORY_STORE__ = window.__STORYBOOK_STORY_STORE__ || window.__STORYBOOK_PREVIEW__.storyStore;
|
|
626
|
+
|
|
627
|
+
${hmrHandler};
|
|
628
|
+
|
|
629
|
+
`.trim();
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
// src/builder-vite/codegen-set-addon-channel.ts
|
|
633
|
+
async function generateAddonSetupCode() {
|
|
634
|
+
return `
|
|
635
|
+
import { createBrowserChannel } from '@aussieljk/forkbook/internal/channels';
|
|
636
|
+
import { addons } from '@aussieljk/forkbook/preview-api';
|
|
637
|
+
|
|
638
|
+
const channel = createBrowserChannel({ page: 'preview' });
|
|
639
|
+
addons.setChannel(channel);
|
|
640
|
+
|
|
641
|
+
if (window.CONFIG_TYPE === 'DEVELOPMENT'){
|
|
642
|
+
window.__STORYBOOK_SERVER_CHANNEL__ = channel;
|
|
643
|
+
}
|
|
644
|
+
`.trim();
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
// src/builder-vite/transform-iframe-html.ts
|
|
648
|
+
import { normalizeStories } from "@aussieljk/forkbook/internal/common";
|
|
649
|
+
async function transformIframeHtml(html, options) {
|
|
650
|
+
let { configType, features, presets } = options, build = await presets.apply("build"), frameworkOptions = await presets.apply("frameworkOptions"), headHtmlSnippet = await presets.apply("previewHead"), bodyHtmlSnippet = await presets.apply("previewBody"), logLevel = await presets.apply("logLevel", void 0), docsOptions = await presets.apply("docs"), tagsOptions = await presets.apply("tags"), security = await presets.apply("security"), coreOptions = await presets.apply("core"), stories = normalizeStories(await options.presets.apply("stories", [], options), {
|
|
651
|
+
configDir: options.configDir,
|
|
652
|
+
workingDir: process.cwd()
|
|
653
|
+
}).map((specifier) => ({
|
|
654
|
+
...specifier,
|
|
655
|
+
importPathMatcher: specifier.importPathMatcher.source
|
|
656
|
+
})), otherGlobals = {
|
|
657
|
+
...build?.test?.disableBlocks ? { __STORYBOOK_BLOCKS_EMPTY_MODULE__: {} } : {},
|
|
658
|
+
...security?.insecureIframeMessaging ? { INSECURE_IFRAME_MESSAGING: !0 } : {}
|
|
659
|
+
}, transformedHtml = html.replace("[CONFIG_TYPE HERE]", configType || "").replace("[LOGLEVEL HERE]", logLevel || "").replace("'[FRAMEWORK_OPTIONS HERE]'", JSON.stringify(frameworkOptions)).replace(
|
|
660
|
+
"('OTHER_GLOBALS HERE');",
|
|
661
|
+
Object.entries(otherGlobals).map(([k, v]) => `window["${k}"] = ${JSON.stringify(v)};`).join("")
|
|
662
|
+
).replace(
|
|
663
|
+
"'[CHANNEL_OPTIONS HERE]'",
|
|
664
|
+
JSON.stringify(coreOptions && coreOptions.channelOptions ? coreOptions.channelOptions : {})
|
|
665
|
+
).replace("'[FEATURES HERE]'", JSON.stringify(features || {})).replace("'[STORIES HERE]'", JSON.stringify(stories || {})).replace("'[DOCS_OPTIONS HERE]'", JSON.stringify(docsOptions || {})).replace("'[TAGS_OPTIONS HERE]'", JSON.stringify(tagsOptions || {})).replace("<!-- [HEAD HTML SNIPPET HERE] -->", headHtmlSnippet || "").replace("<!-- [BODY HTML SNIPPET HERE] -->", bodyHtmlSnippet || "");
|
|
666
|
+
return configType === "DEVELOPMENT" ? transformedHtml.replace(
|
|
667
|
+
"virtual:/@storybook/builder-vite/vite-app.js",
|
|
668
|
+
`/@id/__x00__${SB_VIRTUAL_FILES.VIRTUAL_APP_FILE}`
|
|
669
|
+
) : transformedHtml;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
// src/builder-vite/utils/vite-features.ts
|
|
673
|
+
function eachOutput(config, fn) {
|
|
674
|
+
config.build ??= {};
|
|
675
|
+
let options = config.build.rolldownOptions ??= {};
|
|
676
|
+
if (Array.isArray(options.output)) {
|
|
677
|
+
options.output.length === 0 && options.output.push({}), options.output.forEach(fn);
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
680
|
+
options.output ??= {}, fn(options.output);
|
|
681
|
+
}
|
|
682
|
+
function ensureStrictExecutionOrder(config) {
|
|
683
|
+
eachOutput(config, (output) => {
|
|
684
|
+
output.strictExecutionOrder = !0;
|
|
685
|
+
});
|
|
686
|
+
}
|
|
687
|
+
function applyChunkedPreviewRuntime(config) {
|
|
688
|
+
eachOutput(config, (output) => {
|
|
689
|
+
let splitting = output.codeSplitting, base = splitting && typeof splitting == "object" ? splitting : {};
|
|
690
|
+
output.codeSplitting = {
|
|
691
|
+
...base,
|
|
692
|
+
groups: [...base.groups ?? [], { name: "sb", maxSize: 512e3 }]
|
|
693
|
+
};
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
// src/builder-vite/plugins/code-generator-plugin.ts
|
|
698
|
+
function codeGeneratorPlugin(options) {
|
|
699
|
+
let iframePath = fileURLToPath2(
|
|
700
|
+
importMetaResolve("@aussieljk/forkbook/builder-vite/input/iframe.html")
|
|
701
|
+
), iframeId, storyIndexGeneratorPromise = options.presets.apply("storyIndexGenerator");
|
|
702
|
+
return {
|
|
703
|
+
name: "storybook:code-generator-plugin",
|
|
704
|
+
enforce: "pre",
|
|
705
|
+
async configureServer(server) {
|
|
706
|
+
(await storyIndexGeneratorPromise).onInvalidated(() => {
|
|
707
|
+
server.watcher.emit(
|
|
708
|
+
"change",
|
|
709
|
+
getResolvedVirtualModuleId(SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE)
|
|
710
|
+
);
|
|
711
|
+
});
|
|
712
|
+
},
|
|
713
|
+
config(config, { command }) {
|
|
714
|
+
command === "build" && (config.build ??= {}, config.build.rolldownOptions = { ...config.build.rolldownOptions, input: iframePath }, ensureStrictExecutionOrder(config), options.features?.experimentalChunkedPreviewRuntime && applyChunkedPreviewRuntime(config));
|
|
715
|
+
},
|
|
716
|
+
configResolved(config) {
|
|
717
|
+
iframeId = `${config.root}/iframe.html`;
|
|
718
|
+
},
|
|
719
|
+
resolveId(source) {
|
|
720
|
+
if (SB_VIRTUAL_FILE_IDS.includes(source))
|
|
721
|
+
return getResolvedVirtualModuleId(source);
|
|
722
|
+
if (source === iframePath)
|
|
723
|
+
return iframeId;
|
|
724
|
+
},
|
|
725
|
+
async load(id) {
|
|
726
|
+
switch (id) {
|
|
727
|
+
case getResolvedVirtualModuleId(SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE): {
|
|
728
|
+
let index = await (await storyIndexGeneratorPromise)?.getIndex();
|
|
729
|
+
return generateImportFnScriptCode(index);
|
|
730
|
+
}
|
|
731
|
+
case getResolvedVirtualModuleId(SB_VIRTUAL_FILES.VIRTUAL_ADDON_SETUP_FILE):
|
|
732
|
+
return generateAddonSetupCode();
|
|
733
|
+
case getResolvedVirtualModuleId(SB_VIRTUAL_FILES.VIRTUAL_APP_FILE):
|
|
734
|
+
return generateModernIframeScriptCode();
|
|
735
|
+
case iframeId:
|
|
736
|
+
return readFileSync2(
|
|
737
|
+
fileURLToPath2(importMetaResolve("@aussieljk/forkbook/builder-vite/input/iframe.html")),
|
|
738
|
+
"utf-8"
|
|
739
|
+
);
|
|
740
|
+
}
|
|
741
|
+
},
|
|
742
|
+
async transformIndexHtml(html, ctx) {
|
|
743
|
+
if (ctx.path === "/iframe.html")
|
|
744
|
+
return transformIframeHtml(html, options);
|
|
745
|
+
}
|
|
746
|
+
};
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
// ../../node_modules/es-module-lexer/dist/lexer.js
|
|
750
|
+
var ImportType;
|
|
751
|
+
(function(A2) {
|
|
752
|
+
A2[A2.Static = 1] = "Static", A2[A2.Dynamic = 2] = "Dynamic", A2[A2.ImportMeta = 3] = "ImportMeta", A2[A2.StaticSourcePhase = 4] = "StaticSourcePhase", A2[A2.DynamicSourcePhase = 5] = "DynamicSourcePhase", A2[A2.StaticDeferPhase = 6] = "StaticDeferPhase", A2[A2.DynamicDeferPhase = 7] = "DynamicDeferPhase";
|
|
753
|
+
})(ImportType || (ImportType = {}));
|
|
754
|
+
var A = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
|
|
755
|
+
function parse(E2, g = "@") {
|
|
756
|
+
if (!C) return init.then((() => parse(E2)));
|
|
757
|
+
let I = E2.length + 1, w = (C.__heap_base.value || C.__heap_base) + 4 * I - C.memory.buffer.byteLength;
|
|
758
|
+
w > 0 && C.memory.grow(Math.ceil(w / 65536));
|
|
759
|
+
let K = C.sa(I - 1);
|
|
760
|
+
if ((A ? B : Q)(E2, new Uint16Array(C.memory.buffer, K, I)), !C.parse()) throw Object.assign(new Error(`Parse error ${g}:${E2.slice(0, C.e()).split(`
|
|
761
|
+
`).length}:${C.e() - E2.lastIndexOf(`
|
|
762
|
+
`, C.e() - 1)}`), { idx: C.e() });
|
|
763
|
+
let o = [], D = [];
|
|
764
|
+
for (; C.ri(); ) {
|
|
765
|
+
let A2 = C.is(), Q2 = C.ie(), B2 = C.it(), g2 = C.ai(), I2 = C.id(), w2 = C.ss(), K2 = C.se(), D2;
|
|
766
|
+
C.ip() && (D2 = k(E2.slice(I2 === -1 ? A2 - 1 : A2, I2 === -1 ? Q2 + 1 : Q2))), o.push({ n: D2, t: B2, s: A2, e: Q2, ss: w2, se: K2, d: I2, a: g2 });
|
|
767
|
+
}
|
|
768
|
+
for (; C.re(); ) {
|
|
769
|
+
let A2 = C.es(), Q2 = C.ee(), B2 = C.els(), g2 = C.ele(), I2 = E2.slice(A2, Q2), w2 = I2[0], K2 = B2 < 0 ? void 0 : E2.slice(B2, g2), o2 = K2 ? K2[0] : "";
|
|
770
|
+
D.push({ s: A2, e: Q2, ls: B2, le: g2, n: w2 === '"' || w2 === "'" ? k(I2) : I2, ln: o2 === '"' || o2 === "'" ? k(K2) : K2 });
|
|
771
|
+
}
|
|
772
|
+
function k(A2) {
|
|
773
|
+
try {
|
|
774
|
+
return (0, eval)(A2);
|
|
775
|
+
} catch {
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
return [o, D, !!C.f(), !!C.ms()];
|
|
779
|
+
}
|
|
780
|
+
function Q(A2, Q2) {
|
|
781
|
+
let B2 = A2.length, C2 = 0;
|
|
782
|
+
for (; C2 < B2; ) {
|
|
783
|
+
let B3 = A2.charCodeAt(C2);
|
|
784
|
+
Q2[C2++] = (255 & B3) << 8 | B3 >>> 8;
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
function B(A2, Q2) {
|
|
788
|
+
let B2 = A2.length, C2 = 0;
|
|
789
|
+
for (; C2 < B2; ) Q2[C2] = A2.charCodeAt(C2++);
|
|
790
|
+
}
|
|
791
|
+
var C, E = () => {
|
|
792
|
+
return A2 = "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GzYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQIMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhAiABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIAJBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiACECA0BBACACQQJqNgKwCgJAAkACQEEBECkiAkEiRg0AIAJBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQIMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSECDAELIAIQLCECCwJAIAJBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAkEiRg0AIAJBJ0YNAEEAIAE2ArAKDwsgAhAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAkEsRg0AIAJB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiECDAELC0EAKALwCSIBIAA2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=", typeof Buffer < "u" ? Buffer.from(A2, "base64") : Uint8Array.from(atob(A2), ((A3) => A3.charCodeAt(0)));
|
|
793
|
+
var A2;
|
|
794
|
+
}, init = WebAssembly.compile(E()).then(WebAssembly.instantiate).then((({ exports: A2 }) => {
|
|
795
|
+
C = A2;
|
|
796
|
+
}));
|
|
797
|
+
|
|
798
|
+
// src/builder-vite/plugins/inject-export-order-plugin.ts
|
|
799
|
+
import MagicString from "magic-string";
|
|
800
|
+
async function injectExportOrderPlugin() {
|
|
801
|
+
let { createFilter } = await import("vite"), include = [/\.stories\.([tj])sx?$/, /(stories|story).mdx$/], filter = createFilter(include);
|
|
802
|
+
return {
|
|
803
|
+
name: "storybook:inject-export-order-plugin",
|
|
804
|
+
// This should only run after the typescript has been transpiled
|
|
805
|
+
enforce: "post",
|
|
806
|
+
transform: {
|
|
807
|
+
filter: { id: include },
|
|
808
|
+
async handler(code, id) {
|
|
809
|
+
if (!filter(id))
|
|
810
|
+
return;
|
|
811
|
+
let [, exports] = await parse(code), exportNames = exports.map((e) => code.substring(e.s, e.e));
|
|
812
|
+
if (exportNames.includes("__namedExportsOrder"))
|
|
813
|
+
return;
|
|
814
|
+
let s = new MagicString(code), orderedExports = exportNames.filter((e) => e !== "default");
|
|
815
|
+
return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`), {
|
|
816
|
+
code: s.toString(),
|
|
817
|
+
map: s.generateMap({ hires: !0, source: id }).toString()
|
|
818
|
+
};
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
};
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
// src/builder-vite/plugins/strip-story-hmr-boundaries.ts
|
|
825
|
+
import MagicString2 from "magic-string";
|
|
826
|
+
async function stripStoryHMRBoundary() {
|
|
827
|
+
let { createFilter } = await import("vite"), include = /\.stories\.(tsx?|jsx?)$/, filter = createFilter(include);
|
|
828
|
+
return {
|
|
829
|
+
name: "storybook:strip-hmr-boundary-plugin",
|
|
830
|
+
enforce: "post",
|
|
831
|
+
transform: {
|
|
832
|
+
filter: { id: include },
|
|
833
|
+
async handler(src, id) {
|
|
834
|
+
if (!filter(id))
|
|
835
|
+
return;
|
|
836
|
+
let s = new MagicString2(src);
|
|
837
|
+
return s.replace(/import\.meta\.hot\.accept\w*/, "(function hmrBoundaryNoop(){})"), {
|
|
838
|
+
code: s.toString(),
|
|
839
|
+
map: s.generateMap({ hires: !0, source: id }).toString()
|
|
840
|
+
};
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
// src/builder-vite/plugins/storybook-entry-plugin.ts
|
|
847
|
+
async function storybookEntryPlugin(options) {
|
|
848
|
+
return [
|
|
849
|
+
// Pre-enforcement: handles virtual module resolution and loading (must run first)
|
|
850
|
+
codeGeneratorPlugin(options),
|
|
851
|
+
// Post-enforcement: injects __namedExportsOrder after TypeScript transpilation
|
|
852
|
+
await injectExportOrderPlugin(),
|
|
853
|
+
// Post-enforcement: removes import.meta.hot.accept() from story files
|
|
854
|
+
await stripStoryHMRBoundary()
|
|
855
|
+
];
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
// src/builder-vite/plugins/webpack-stats-plugin.ts
|
|
859
|
+
import { relative as relative2 } from "node:path";
|
|
860
|
+
function stripQueryParams(filePath) {
|
|
861
|
+
return filePath.split("?")[0];
|
|
862
|
+
}
|
|
863
|
+
function isUserCode(moduleName) {
|
|
864
|
+
return moduleName ? Object.values(SB_VIRTUAL_FILES).includes(getOriginalVirtualModuleId(moduleName)) ? !0 : !moduleName.startsWith("vite/") && !moduleName.startsWith("\0") && moduleName !== "react/jsx-runtime" : !1;
|
|
865
|
+
}
|
|
866
|
+
function pluginWebpackStats({ workingDir }) {
|
|
867
|
+
function normalize4(filename2) {
|
|
868
|
+
if (filename2.startsWith("virtual:"))
|
|
869
|
+
return `/${filename2}`;
|
|
870
|
+
if (Object.values(SB_VIRTUAL_FILES).includes(getOriginalVirtualModuleId(filename2)))
|
|
871
|
+
return `/${getOriginalVirtualModuleId(filename2)}`;
|
|
872
|
+
{
|
|
873
|
+
let relativePath = relative2(workingDir, stripQueryParams(filename2));
|
|
874
|
+
return `./${slash(relativePath)}`;
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
function createReasons(importers) {
|
|
878
|
+
return (importers || []).map((i) => ({ moduleName: normalize4(i) }));
|
|
879
|
+
}
|
|
880
|
+
function createStatsMapModule(filename2, importers) {
|
|
881
|
+
return {
|
|
882
|
+
id: filename2,
|
|
883
|
+
name: filename2,
|
|
884
|
+
reasons: createReasons(importers)
|
|
885
|
+
};
|
|
886
|
+
}
|
|
887
|
+
let statsMap = /* @__PURE__ */ new Map();
|
|
888
|
+
return {
|
|
889
|
+
name: "storybook:rollup-plugin-webpack-stats",
|
|
890
|
+
// We want this to run after the vite build plugins (https://vitejs.dev/guide/api-plugin.html#plugin-ordering)
|
|
891
|
+
enforce: "post",
|
|
892
|
+
moduleParsed: function(mod) {
|
|
893
|
+
isUserCode(mod.id) && mod.importedIds.concat(mod.dynamicallyImportedIds).filter((name) => isUserCode(name)).forEach((depIdUnsafe) => {
|
|
894
|
+
let depId = normalize4(depIdUnsafe);
|
|
895
|
+
if (!statsMap.has(depId)) {
|
|
896
|
+
statsMap.set(depId, createStatsMapModule(depId, [mod.id]));
|
|
897
|
+
return;
|
|
898
|
+
}
|
|
899
|
+
let m = statsMap.get(depId);
|
|
900
|
+
m && (m.reasons = (m.reasons ?? []).concat(createReasons([mod.id])).filter((r) => r.moduleName !== depId), statsMap.set(depId, m));
|
|
901
|
+
});
|
|
902
|
+
},
|
|
903
|
+
storybookGetStats() {
|
|
904
|
+
let stats = { modules: Array.from(statsMap.values()) };
|
|
905
|
+
return { ...stats, toJson: () => stats };
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
// src/builder-vite/plugins/storybook-external-globals-plugin.ts
|
|
911
|
+
import { existsSync } from "node:fs";
|
|
912
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
913
|
+
import { dirname as dirname2, join as join3 } from "node:path";
|
|
914
|
+
import { globalsNameReferenceMap } from "@aussieljk/forkbook/internal/preview/globals";
|
|
915
|
+
import MagicString3 from "magic-string";
|
|
916
|
+
var escapeKeys = (key) => key.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), defaultImportRegExp = "import ([^*{}]+) from", emptyImportRegExp = /^import(?:\s*\{\s*\}\s*from)?\s*['"][^'"]+['"]\s*;?$/, replacementMap = /* @__PURE__ */ new Map([
|
|
917
|
+
["import ", "const "],
|
|
918
|
+
["import{", "const {"],
|
|
919
|
+
["* as ", ""],
|
|
920
|
+
[" as ", ": "],
|
|
921
|
+
[" from ", " = "],
|
|
922
|
+
["}from", "} ="]
|
|
923
|
+
]);
|
|
924
|
+
async function storybookExternalGlobalsPlugin(options) {
|
|
925
|
+
let build = await options.presets.apply("build"), externals = globalsNameReferenceMap;
|
|
926
|
+
build?.test?.disableBlocks && (externals["@aussieljk/forkbook/addon-docs/blocks"] = "__STORYBOOK_BLOCKS_EMPTY_MODULE__"), await init;
|
|
927
|
+
let { mergeAlias } = await import("vite"), globalsList = Object.keys(externals), globalsCodeFilter = new RegExp(globalsList.map(escapeKeys).join("|"));
|
|
928
|
+
return {
|
|
929
|
+
name: "storybook:external-globals-plugin",
|
|
930
|
+
enforce: "post",
|
|
931
|
+
// In dev (serve), we set up aliases to files that we write into node_modules/.cache.
|
|
932
|
+
async config(config, { command }) {
|
|
933
|
+
if (command !== "serve")
|
|
934
|
+
return;
|
|
935
|
+
let newAlias = mergeAlias([], config.resolve?.alias), cachePath = cache("sb-vite-plugin-externals", { create: !0 }) ?? join3(process.cwd(), "node_modules", ".cache", "sb-vite-plugin-externals");
|
|
936
|
+
return await Promise.all(
|
|
937
|
+
Object.keys(externals).map(async (externalKey) => {
|
|
938
|
+
let externalCachePath = join3(cachePath, `${externalKey}.js`);
|
|
939
|
+
if (newAlias.push({ find: new RegExp(`^${externalKey}$`), replacement: externalCachePath }), !existsSync(externalCachePath)) {
|
|
940
|
+
let directory = dirname2(externalCachePath);
|
|
941
|
+
await mkdir(directory, { recursive: !0 });
|
|
942
|
+
}
|
|
943
|
+
await writeFile(externalCachePath, `module.exports = ${externals[externalKey]};`);
|
|
944
|
+
})
|
|
945
|
+
), {
|
|
946
|
+
resolve: {
|
|
947
|
+
alias: newAlias
|
|
948
|
+
}
|
|
949
|
+
};
|
|
950
|
+
},
|
|
951
|
+
// Replace imports with variables destructured from global scope
|
|
952
|
+
transform: {
|
|
953
|
+
filter: { code: globalsCodeFilter },
|
|
954
|
+
async handler(code, id) {
|
|
955
|
+
if (globalsList.every((glob) => !code.includes(glob)))
|
|
956
|
+
return;
|
|
957
|
+
let [imports] = parse(code), src = new MagicString3(code), didRewrite = !1;
|
|
958
|
+
imports.forEach(({ n: path, ss: startPosition, se: endPosition }) => {
|
|
959
|
+
let packageName = path;
|
|
960
|
+
if (packageName && globalsList.includes(packageName)) {
|
|
961
|
+
let importStatement = src.slice(startPosition, endPosition), transformedImport = rewriteImport(importStatement, externals, packageName);
|
|
962
|
+
src.update(startPosition, endPosition, transformedImport), didRewrite = !0;
|
|
963
|
+
}
|
|
964
|
+
});
|
|
965
|
+
let rewritten = src.toString();
|
|
966
|
+
return {
|
|
967
|
+
code: didRewrite ? ensurePreviewRuntimePrecedesGlobals(rewritten, id) : rewritten,
|
|
968
|
+
map: null
|
|
969
|
+
};
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
};
|
|
973
|
+
}
|
|
974
|
+
var bundledPreviewRuntimePattern = /[/\\]dist[/\\]preview[/\\]/;
|
|
975
|
+
function ensurePreviewRuntimePrecedesGlobals(code, id) {
|
|
976
|
+
return bundledPreviewRuntimePattern.test(id.split("?")[0]) ? code : `import { setup as __sbInitializePreviewGlobals } from ${JSON.stringify(previewRuntimePath)};
|
|
977
|
+
__sbInitializePreviewGlobals();
|
|
978
|
+
${code}`;
|
|
979
|
+
}
|
|
980
|
+
function getDefaultImportReplacement(match) {
|
|
981
|
+
let matched = match.match(defaultImportRegExp);
|
|
982
|
+
return matched && `const {default: ${matched[1]}} =`;
|
|
983
|
+
}
|
|
984
|
+
function getEmptyImportReplacement(importStatement, globalReference) {
|
|
985
|
+
if (!emptyImportRegExp.test(importStatement.trim()))
|
|
986
|
+
return;
|
|
987
|
+
let statementTerminator = importStatement.trimEnd().endsWith(";") ? ";" : "";
|
|
988
|
+
return `void ${globalReference}${statementTerminator}`;
|
|
989
|
+
}
|
|
990
|
+
function getSearchRegExp(packageName) {
|
|
991
|
+
let staticKeys = [...replacementMap.keys()].map(escapeKeys), packageNameLiteral = `.${packageName}.`, dynamicImportExpression = `await import\\(.${packageName}.\\)`, lookup = [defaultImportRegExp, ...staticKeys, packageNameLiteral, dynamicImportExpression];
|
|
992
|
+
return new RegExp(`(${lookup.join("|")})`, "g");
|
|
993
|
+
}
|
|
994
|
+
function rewriteImport(importStatement, globs, packageName) {
|
|
995
|
+
let emptyImportReplacement = getEmptyImportReplacement(importStatement, globs[packageName]);
|
|
996
|
+
if (emptyImportReplacement)
|
|
997
|
+
return emptyImportReplacement;
|
|
998
|
+
let search = getSearchRegExp(packageName);
|
|
999
|
+
return importStatement.replace(
|
|
1000
|
+
search,
|
|
1001
|
+
(match) => replacementMap.get(match) ?? getDefaultImportReplacement(match) ?? globs[packageName]
|
|
1002
|
+
);
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
// src/builder-vite/vite-config.ts
|
|
1006
|
+
var configEnvServe = {
|
|
1007
|
+
mode: "development",
|
|
1008
|
+
command: "serve",
|
|
1009
|
+
isSsrBuild: !1
|
|
1010
|
+
}, configEnvBuild = {
|
|
1011
|
+
mode: "production",
|
|
1012
|
+
command: "build",
|
|
1013
|
+
isSsrBuild: !1
|
|
1014
|
+
};
|
|
1015
|
+
async function loadUserViteConfig(options, type) {
|
|
1016
|
+
let configEnv = type === "development" ? configEnvServe : configEnvBuild, { loadConfigFromFile } = await import("vite"), { viteConfigPath, configLoader } = await getBuilderOptions(options), projectRoot = resolve3(options.configDir, "..");
|
|
1017
|
+
return (await loadConfigFromFile(
|
|
1018
|
+
configEnv,
|
|
1019
|
+
viteConfigPath,
|
|
1020
|
+
projectRoot,
|
|
1021
|
+
void 0,
|
|
1022
|
+
void 0,
|
|
1023
|
+
configLoader
|
|
1024
|
+
))?.config ?? {};
|
|
1025
|
+
}
|
|
1026
|
+
async function resolveVitePublicDir(options, type) {
|
|
1027
|
+
let { publicDir } = await loadUserViteConfig(options, type);
|
|
1028
|
+
if (publicDir === !1 || publicDir === "")
|
|
1029
|
+
return;
|
|
1030
|
+
let resolved = resolve3(options.configDir, "..", publicDir ?? "public");
|
|
1031
|
+
return existsSync2(resolved) ? resolved : void 0;
|
|
1032
|
+
}
|
|
1033
|
+
async function commonConfig(options, _type) {
|
|
1034
|
+
let { mergeConfig } = await import("vite"), projectRoot = resolve3(options.configDir, ".."), { build: buildProperty = void 0, ...userConfig } = await loadUserViteConfig(
|
|
1035
|
+
options,
|
|
1036
|
+
_type
|
|
1037
|
+
), sbConfig = {
|
|
1038
|
+
configFile: !1,
|
|
1039
|
+
plugins: await pluginConfig(options),
|
|
1040
|
+
root: projectRoot,
|
|
1041
|
+
// Allow storybook deployed as subfolder. See https://github.com/storybookjs/builder-vite/issues/238
|
|
1042
|
+
base: "./",
|
|
1043
|
+
...options.cacheKey ? { cacheDir: resolvePathInStorybookCache("sb-vite", options.cacheKey) } : {},
|
|
1044
|
+
// Pass build.target option from user's vite config
|
|
1045
|
+
build: {
|
|
1046
|
+
target: buildProperty?.target
|
|
1047
|
+
}
|
|
1048
|
+
};
|
|
1049
|
+
return mergeConfig(userConfig, sbConfig);
|
|
1050
|
+
}
|
|
1051
|
+
async function pluginConfig(options) {
|
|
1052
|
+
return [
|
|
1053
|
+
// Shared core plugins (resolve conditions, envPrefix, fs.allow, externals, env vars, etc.)
|
|
1054
|
+
...await viteCorePlugins([], options),
|
|
1055
|
+
await storybookExternalGlobalsPlugin(options),
|
|
1056
|
+
// Entry plugin: virtual modules for stories, addon setup, and main app entry
|
|
1057
|
+
...await storybookEntryPlugin(options),
|
|
1058
|
+
// Builder-specific: webpack-compatible stats for turbosnap/chromatic
|
|
1059
|
+
pluginWebpackStats({ workingDir: process.cwd() })
|
|
1060
|
+
];
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
// src/builder-vite/preset.ts
|
|
1064
|
+
var optimizeViteDeps = [previewRuntimePath];
|
|
1065
|
+
async function viteCorePlugins(_, options) {
|
|
1066
|
+
let previewConfigPath = findConfigFile("preview", options.configDir);
|
|
1067
|
+
return [
|
|
1068
|
+
storybookProjectAnnotationsPlugin(options),
|
|
1069
|
+
...storybookConfigPlugin({ configDir: options.configDir }),
|
|
1070
|
+
storybookOptimizeDepsPlugin(options),
|
|
1071
|
+
...await storybookSanitizeEnvs(options),
|
|
1072
|
+
...previewConfigPath ? [
|
|
1073
|
+
viteInjectMockerRuntime({ previewConfigPath }),
|
|
1074
|
+
viteMockPlugin({
|
|
1075
|
+
previewConfigPath,
|
|
1076
|
+
coreOptions: await options.presets.apply("core"),
|
|
1077
|
+
configDir: options.configDir
|
|
1078
|
+
})
|
|
1079
|
+
] : []
|
|
1080
|
+
];
|
|
1081
|
+
}
|
|
1082
|
+
var staticDirs = async (values = [], options) => {
|
|
1083
|
+
if (options.configType !== "PRODUCTION")
|
|
1084
|
+
return values;
|
|
1085
|
+
let publicDir = await resolveVitePublicDir(options, "build");
|
|
1086
|
+
return publicDir ? [...values, { from: publicDir, to: "/" }] : values;
|
|
1087
|
+
};
|
|
1088
|
+
|
|
1089
|
+
export {
|
|
1090
|
+
optimizeViteDeps,
|
|
1091
|
+
viteCorePlugins,
|
|
1092
|
+
staticDirs,
|
|
1093
|
+
commonConfig
|
|
1094
|
+
};
|