@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,989 @@
|
|
|
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
|
+
RN_STORYBOOK_DIR
|
|
14
|
+
} from "./chunk-SWO5CDYU.js";
|
|
15
|
+
import {
|
|
16
|
+
createModuleResolver
|
|
17
|
+
} from "./chunk-YZFWBA5L.js";
|
|
18
|
+
import {
|
|
19
|
+
detectIndent
|
|
20
|
+
} from "./chunk-RZMQ7S3L.js";
|
|
21
|
+
import {
|
|
22
|
+
findFilesUp,
|
|
23
|
+
getProjectRoot
|
|
24
|
+
} from "./chunk-SLWQNBGO.js";
|
|
25
|
+
import {
|
|
26
|
+
up2 as up
|
|
27
|
+
} from "./chunk-JDXXX6LB.js";
|
|
28
|
+
import {
|
|
29
|
+
invariant
|
|
30
|
+
} from "./chunk-34EO2PUT.js";
|
|
31
|
+
import {
|
|
32
|
+
importModule
|
|
33
|
+
} from "./chunk-F3ZFKBHY.js";
|
|
34
|
+
import {
|
|
35
|
+
storybookConfigExtensions
|
|
36
|
+
} from "./chunk-TNJIXE37.js";
|
|
37
|
+
import {
|
|
38
|
+
require_picocolors
|
|
39
|
+
} from "./chunk-2BUPBPFB.js";
|
|
40
|
+
import {
|
|
41
|
+
slash
|
|
42
|
+
} from "./chunk-DC7DKR5K.js";
|
|
43
|
+
import {
|
|
44
|
+
glob,
|
|
45
|
+
globSync
|
|
46
|
+
} from "./chunk-ZMAMXQKP.js";
|
|
47
|
+
import {
|
|
48
|
+
__toESM
|
|
49
|
+
} from "./chunk-CXRU72ET.js";
|
|
50
|
+
|
|
51
|
+
// src/common/versions.ts
|
|
52
|
+
var versions_default = { "@aussieljk/forkbook": "0.0.1-2" };
|
|
53
|
+
|
|
54
|
+
// src/common/utils/HandledError.ts
|
|
55
|
+
var HandledError = class extends Error {
|
|
56
|
+
constructor(error) {
|
|
57
|
+
super(String(error));
|
|
58
|
+
this.handled = !0;
|
|
59
|
+
typeof error != "string" && (this.cause = error);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// src/common/utils/get-pkg-pr-new-package-specifier.ts
|
|
64
|
+
var PKG_PR_NEW_STORYBOOK_SPECIFIER_RE = /^(https?:\/\/[^/\s]*pkg\.pr\.new\/(?:[^@\s/]+\/[^@\s/]+\/)?)(?:create-storybook|storybook|@storybook\/[^@\s]+)(@[^\s]+)$/, isPkgPrNewVersionSpecifier = (storybookVersionSpecifier) => !!storybookVersionSpecifier?.match(PKG_PR_NEW_STORYBOOK_SPECIFIER_RE), getPkgPrNewPackageSpecifier = (packageName, storybookVersionSpecifier) => {
|
|
65
|
+
if (!storybookVersionSpecifier)
|
|
66
|
+
return;
|
|
67
|
+
let match = storybookVersionSpecifier.match(PKG_PR_NEW_STORYBOOK_SPECIFIER_RE);
|
|
68
|
+
if (!match)
|
|
69
|
+
return;
|
|
70
|
+
let [, prefix, suffix] = match;
|
|
71
|
+
return `${prefix}${packageName}${suffix}`;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// src/common/js-package-manager/util.ts
|
|
75
|
+
import { gt, prerelease, valid } from "semver";
|
|
76
|
+
var FORKBOOK_PACKAGE_PATTERNS = [
|
|
77
|
+
"@aussieljk/forkbook",
|
|
78
|
+
"@storybook/*",
|
|
79
|
+
"eslint-plugin-storybook"
|
|
80
|
+
], escapePatternForRegex = (pattern) => pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), packagePatternToRegex = (pattern) => new RegExp(`^${escapePatternForRegex(pattern).replace(/\\\*/g, ".*")}$`), hasStorybookMinimumAgeExclusions = (configuredPatterns) => FORKBOOK_PACKAGE_PATTERNS.every(
|
|
81
|
+
(storybookPattern) => configuredPatterns.some(
|
|
82
|
+
(configuredPattern) => packagePatternToRegex(configuredPattern).test(storybookPattern)
|
|
83
|
+
)
|
|
84
|
+
), parsePackageData = (packageName = "") => {
|
|
85
|
+
let [first, second, third] = packageName.replace(/[└─├]+/g, "").trim().split("@"), version = (third || second).replace("npm:", "");
|
|
86
|
+
return { name: third ? `@${second}` : first, value: { version, location: "" } };
|
|
87
|
+
}, parsePositiveIntegerConfigValue = (value) => {
|
|
88
|
+
let normalizedValue = value?.trim() ?? "";
|
|
89
|
+
if (!normalizedValue || normalizedValue === "undefined" || normalizedValue === "null" || normalizedValue === "false")
|
|
90
|
+
return null;
|
|
91
|
+
let parsedValue = Number.parseInt(normalizedValue, 10);
|
|
92
|
+
return !Number.isFinite(parsedValue) || parsedValue <= 0 ? null : parsedValue;
|
|
93
|
+
}, parseReleaseTime = (value) => {
|
|
94
|
+
if (typeof value != "string" || value.length === 0)
|
|
95
|
+
return null;
|
|
96
|
+
let releaseTime = new Date(value);
|
|
97
|
+
return Number.isNaN(releaseTime.getTime()) ? null : releaseTime;
|
|
98
|
+
}, parsePackageTimeMap = (value) => {
|
|
99
|
+
if (Array.isArray(value) && value.length === 1 && (value = value[0]), !value || typeof value != "object" || Array.isArray(value))
|
|
100
|
+
return null;
|
|
101
|
+
let timeMap = {};
|
|
102
|
+
for (let [version, releaseTime] of Object.entries(value))
|
|
103
|
+
typeof releaseTime == "string" && releaseTime.length > 0 && (timeMap[version] = releaseTime);
|
|
104
|
+
return timeMap;
|
|
105
|
+
}, getAgeInMinutes = (publishedAt, now = /* @__PURE__ */ new Date()) => Math.floor((now.getTime() - publishedAt.getTime()) / 6e4), getLatestStableVersionAdheringToMinimumAgeGate = (timeMap, minimumAgeGateMinutes, now = /* @__PURE__ */ new Date()) => {
|
|
106
|
+
let cutoff = now.getTime() - minimumAgeGateMinutes * 6e4, latestStableVersion = null;
|
|
107
|
+
for (let [version, releaseTime] of Object.entries(timeMap)) {
|
|
108
|
+
if (!valid(version) || prerelease(version))
|
|
109
|
+
continue;
|
|
110
|
+
let publishedAt = parseReleaseTime(releaseTime);
|
|
111
|
+
!publishedAt || publishedAt.getTime() > cutoff || (!latestStableVersion || gt(version, latestStableVersion)) && (latestStableVersion = version);
|
|
112
|
+
}
|
|
113
|
+
return latestStableVersion;
|
|
114
|
+
};
|
|
115
|
+
function getVitestStorybookRunCommand(packageManager, file) {
|
|
116
|
+
let args = ["vitest", "--project", "storybook", "run"];
|
|
117
|
+
return file && args.push(file), packageManager.getPackageCommand(args);
|
|
118
|
+
}
|
|
119
|
+
function getMswInitCommand(packageManager) {
|
|
120
|
+
return packageManager.getPackageCommand(["msw", "init", "./public", "--save"]);
|
|
121
|
+
}
|
|
122
|
+
var FORKBOOK_RERUN_INSTRUCTION = "Please rerun Forkbook creation with:", getStorybookRerunCommand = (compatibleVersion) => compatibleVersion ? `npx @aussieljk/forkbook@${compatibleVersion} init` : "npx @aussieljk/forkbook@<compatible-version> init", getErrorLogs = (error) => {
|
|
123
|
+
if (typeof error == "string")
|
|
124
|
+
return error;
|
|
125
|
+
if (error && typeof error == "object") {
|
|
126
|
+
let structuredError = error, structuredLogs = [
|
|
127
|
+
structuredError.shortMessage,
|
|
128
|
+
structuredError.originalMessage,
|
|
129
|
+
structuredError.stderr,
|
|
130
|
+
structuredError.stdout,
|
|
131
|
+
structuredError.message
|
|
132
|
+
].filter((entry) => typeof entry == "string" && entry.length > 0);
|
|
133
|
+
if (structuredLogs.length > 0)
|
|
134
|
+
return structuredLogs.join(`
|
|
135
|
+
`);
|
|
136
|
+
}
|
|
137
|
+
return String(error);
|
|
138
|
+
}, INSTALL_ERROR_TAIL_LINES = 15, getInstallErrorTail = (error, lines = INSTALL_ERROR_TAIL_LINES) => {
|
|
139
|
+
let output = getErrorLogs(error).trimEnd();
|
|
140
|
+
return output ? output.split(`
|
|
141
|
+
`).slice(-lines).join(`
|
|
142
|
+
`).trim() : "";
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// src/common/js-package-manager/vite-plus-versions.ts
|
|
146
|
+
import { logger } from "@aussieljk/forkbook/internal/node-logger";
|
|
147
|
+
var cachedVersions;
|
|
148
|
+
async function getVitePlusVersions() {
|
|
149
|
+
if (cachedVersions !== void 0)
|
|
150
|
+
return cachedVersions;
|
|
151
|
+
try {
|
|
152
|
+
let mod = await import("vite-plus/versions"), versions = mod.versions ?? mod;
|
|
153
|
+
if (versions && typeof versions.vite == "string")
|
|
154
|
+
return logger.debug(`Detected vite-plus: vite=${versions.vite}, vitest=${versions.vitest ?? "N/A"}`), cachedVersions = versions, versions;
|
|
155
|
+
} catch {
|
|
156
|
+
}
|
|
157
|
+
return cachedVersions = null, null;
|
|
158
|
+
}
|
|
159
|
+
function clearVitePlusCache() {
|
|
160
|
+
cachedVersions = void 0;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// src/common/js-package-manager/JsPackageManager.ts
|
|
164
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
165
|
+
import { dirname, isAbsolute, join, normalize, resolve } from "node:path";
|
|
166
|
+
import { logger as logger2, prompt } from "@aussieljk/forkbook/internal/node-logger";
|
|
167
|
+
var import_picocolors = __toESM(require_picocolors(), 1);
|
|
168
|
+
import { coerce, gt as gt2, satisfies, validRange } from "semver";
|
|
169
|
+
var PackageManagerName = /* @__PURE__ */ ((PackageManagerName2) => (PackageManagerName2.NPM = "npm", PackageManagerName2.YARN1 = "yarn1", PackageManagerName2.YARN2 = "yarn2", PackageManagerName2.PNPM = "pnpm", PackageManagerName2.BUN = "bun", PackageManagerName2))(PackageManagerName || {}), indentSymbol = /* @__PURE__ */ Symbol("indent"), PACKAGE_MANAGER_LABEL = {
|
|
170
|
+
npm: "npm",
|
|
171
|
+
yarn1: "Yarn Classic (v1)",
|
|
172
|
+
yarn2: "Yarn Berry",
|
|
173
|
+
pnpm: "pnpm",
|
|
174
|
+
bun: "Bun"
|
|
175
|
+
};
|
|
176
|
+
function isValidPackageManagerName(name) {
|
|
177
|
+
return Object.hasOwn(PACKAGE_MANAGER_LABEL, name);
|
|
178
|
+
}
|
|
179
|
+
function getPrettyPackageManagerName(packageManager) {
|
|
180
|
+
return packageManager ? isValidPackageManagerName(packageManager) ? PACKAGE_MANAGER_LABEL[packageManager] : packageManager : "unknown package manager";
|
|
181
|
+
}
|
|
182
|
+
function getPackageDetails(pkg) {
|
|
183
|
+
let isScopedPackage = pkg.startsWith("@"), scopeSeparatorIndex = isScopedPackage ? pkg.indexOf("/") : -1, versionSeparatorIndex = isScopedPackage ? scopeSeparatorIndex === -1 ? -1 : pkg.indexOf("@", scopeSeparatorIndex + 1) : pkg.indexOf("@");
|
|
184
|
+
if (versionSeparatorIndex <= 0)
|
|
185
|
+
return [pkg, void 0];
|
|
186
|
+
let packageName = pkg.slice(0, versionSeparatorIndex), packageVersion = pkg.slice(versionSeparatorIndex + 1);
|
|
187
|
+
return [packageName, packageVersion];
|
|
188
|
+
}
|
|
189
|
+
var JsPackageManager = class _JsPackageManager {
|
|
190
|
+
static {
|
|
191
|
+
/** Cache for latest version results to avoid repeated network calls. */
|
|
192
|
+
this.latestVersionCache = /* @__PURE__ */ new Map();
|
|
193
|
+
}
|
|
194
|
+
static {
|
|
195
|
+
/** Cache for installed version results to avoid repeated file system calls. */
|
|
196
|
+
this.installedVersionCache = /* @__PURE__ */ new Map();
|
|
197
|
+
}
|
|
198
|
+
static {
|
|
199
|
+
/** Cache for package.json files to avoid repeated file system calls. */
|
|
200
|
+
this.packageJsonCache = /* @__PURE__ */ new Map();
|
|
201
|
+
}
|
|
202
|
+
constructor(options) {
|
|
203
|
+
this.cwd = options?.cwd || process.cwd(), this.instanceDir = options?.configDir ? isAbsolute(options?.configDir) ? dirname(options?.configDir) : dirname(join(this.cwd, options?.configDir)) : this.cwd, this.packageJsonPaths = _JsPackageManager.listAllPackageJsonPaths(
|
|
204
|
+
this.instanceDir,
|
|
205
|
+
options?.storiesPaths
|
|
206
|
+
), this.primaryPackageJson = this.#getPrimaryPackageJson();
|
|
207
|
+
}
|
|
208
|
+
isStorybookInMonorepo() {
|
|
209
|
+
let turboJsonPath = up("turbo.json", { last: getProjectRoot() }), rushJsonPath = up("rush.json", { last: getProjectRoot() }), nxJsonPath = up("nx.json", { last: getProjectRoot() });
|
|
210
|
+
if (turboJsonPath || rushJsonPath || nxJsonPath)
|
|
211
|
+
return !0;
|
|
212
|
+
let packageJsonPaths = findFilesUp(["package.json"]);
|
|
213
|
+
if (packageJsonPaths.length === 0)
|
|
214
|
+
return !1;
|
|
215
|
+
for (let packageJsonPath of packageJsonPaths) {
|
|
216
|
+
let packageJsonFile = readFileSync(packageJsonPath, "utf8");
|
|
217
|
+
if (JSON.parse(packageJsonFile).workspaces)
|
|
218
|
+
return !0;
|
|
219
|
+
}
|
|
220
|
+
return !1;
|
|
221
|
+
}
|
|
222
|
+
async installDependencies(options) {
|
|
223
|
+
try {
|
|
224
|
+
await prompt.executeTaskWithSpinner(() => this.runInstall(options), {
|
|
225
|
+
id: "install-dependencies",
|
|
226
|
+
intro: "Installing dependencies...",
|
|
227
|
+
error: "Installation of dependencies failed!",
|
|
228
|
+
success: "Dependencies installed"
|
|
229
|
+
});
|
|
230
|
+
} catch (error) {
|
|
231
|
+
let tail = getInstallErrorTail(error);
|
|
232
|
+
throw tail && (logger2.error(tail), error instanceof Error && !error.message.includes(tail) && (error.message = `${error.message}
|
|
233
|
+
|
|
234
|
+
${tail}`)), error;
|
|
235
|
+
}
|
|
236
|
+
this.clearInstalledVersionCache();
|
|
237
|
+
}
|
|
238
|
+
async precheckStorybookPackageInstall(options) {
|
|
239
|
+
}
|
|
240
|
+
async dedupeDependencies(options) {
|
|
241
|
+
await prompt.executeTask(
|
|
242
|
+
(_signal) => this.runInternalCommand("dedupe", [...options?.force ? ["--force"] : []], this.cwd),
|
|
243
|
+
{
|
|
244
|
+
intro: "Deduplicating dependencies...",
|
|
245
|
+
error: "An error occurred while deduplicating dependencies.",
|
|
246
|
+
success: "Dependencies deduplicated"
|
|
247
|
+
}
|
|
248
|
+
), this.clearInstalledVersionCache();
|
|
249
|
+
}
|
|
250
|
+
/** Read the `package.json` file available in the provided directory */
|
|
251
|
+
static getPackageJson(packageJsonPath) {
|
|
252
|
+
let absolutePath = normalize(resolve(packageJsonPath)), cached = _JsPackageManager.packageJsonCache.get(absolutePath);
|
|
253
|
+
if (cached)
|
|
254
|
+
return logger2.debug(`Using cached package.json for ${absolutePath}...`), cached;
|
|
255
|
+
let jsonContent = readFileSync(absolutePath, "utf8"), packageJSON = JSON.parse(jsonContent);
|
|
256
|
+
packageJSON[indentSymbol] = detectIndent(jsonContent).indent ?? 2;
|
|
257
|
+
let result = {
|
|
258
|
+
...packageJSON,
|
|
259
|
+
dependencies: { ...packageJSON.dependencies || {} },
|
|
260
|
+
devDependencies: { ...packageJSON.devDependencies || {} },
|
|
261
|
+
peerDependencies: { ...packageJSON.peerDependencies || {} }
|
|
262
|
+
};
|
|
263
|
+
return _JsPackageManager.packageJsonCache.set(absolutePath, result), result;
|
|
264
|
+
}
|
|
265
|
+
#getIndent(filePath) {
|
|
266
|
+
try {
|
|
267
|
+
return _JsPackageManager.getPackageJson(filePath)[indentSymbol];
|
|
268
|
+
} catch {
|
|
269
|
+
return 2;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
writePackageJson(packageJson, directory = this.cwd) {
|
|
273
|
+
let packageJsonToWrite = { ...packageJson };
|
|
274
|
+
["dependencies", "devDependencies", "peerDependencies"].forEach((type) => {
|
|
275
|
+
packageJsonToWrite[type] && Object.keys(packageJsonToWrite[type]).length === 0 && delete packageJsonToWrite[type];
|
|
276
|
+
});
|
|
277
|
+
let filePath = join(directory, "package.json"), indent = this.#getIndent(filePath), packageJsonPath = normalize(resolve(directory, "package.json")), content = `${JSON.stringify(packageJsonToWrite, null, indent)}
|
|
278
|
+
`;
|
|
279
|
+
writeFileSync(packageJsonPath, content, "utf8");
|
|
280
|
+
let cachedPackageJson = packageJsonToWrite;
|
|
281
|
+
cachedPackageJson.dependencies = { ...packageJsonToWrite.dependencies || {} }, cachedPackageJson.devDependencies = { ...packageJsonToWrite.devDependencies || {} }, cachedPackageJson.peerDependencies = { ...packageJsonToWrite.peerDependencies || {} }, cachedPackageJson[indentSymbol] = indent, _JsPackageManager.packageJsonCache.set(packageJsonPath, cachedPackageJson);
|
|
282
|
+
}
|
|
283
|
+
getAllDependencies() {
|
|
284
|
+
let allDependencies = {};
|
|
285
|
+
for (let packageJsonPath of this.packageJsonPaths) {
|
|
286
|
+
let packageJson = _JsPackageManager.getPackageJson(packageJsonPath), { dependencies, devDependencies, peerDependencies } = packageJson;
|
|
287
|
+
Object.assign(allDependencies, dependencies, devDependencies, peerDependencies);
|
|
288
|
+
}
|
|
289
|
+
return allDependencies;
|
|
290
|
+
}
|
|
291
|
+
isDependencyInstalled(dependency) {
|
|
292
|
+
return Object.keys(this.getAllDependencies()).includes(dependency);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Resolve the effective version/range of a declared dependency: the installed version if present,
|
|
296
|
+
* otherwise the declared semver range. Returns null when the package is not declared or only a
|
|
297
|
+
* non-semver specifier is declared. PNPMProxy additionally resolves pnpm `catalog:` references.
|
|
298
|
+
*/
|
|
299
|
+
async getDeclaredVersionSpecifier(packageName) {
|
|
300
|
+
let installed = await this.getInstalledVersion(packageName);
|
|
301
|
+
if (installed)
|
|
302
|
+
return installed;
|
|
303
|
+
let declared = this.getAllDependencies()[packageName];
|
|
304
|
+
return declared && validRange(declared) ? declared : null;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Pin `packages` to `version`, mirroring how `anchorPackage` is declared. The base implementation
|
|
308
|
+
* pins each directly (`pkg@version`). PNPMProxy overrides this to honor pnpm catalogs: when
|
|
309
|
+
* `anchorPackage` is declared through a catalog, the packages are registered in that catalog and
|
|
310
|
+
* referenced as `catalog:` instead. Returns the install specifiers to write to package.json.
|
|
311
|
+
*/
|
|
312
|
+
applyVersionToRelatedPackages(packages, version, _anchorPackage) {
|
|
313
|
+
return packages.map((pkg) => `${pkg}@${version}`);
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Add dependencies to a project using `yarn add` or `npm install`.
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
*
|
|
320
|
+
* ```ts
|
|
321
|
+
* addDependencies(options, [
|
|
322
|
+
* `@aussieljk/forkbook/react@${storybookVersion}`,
|
|
323
|
+
* `@aussieljk/forkbook/addon-links@${linksVersion}`,
|
|
324
|
+
* ]);
|
|
325
|
+
* ```
|
|
326
|
+
*
|
|
327
|
+
* @param {Object} options Contains `skipInstall`, `packageJson` and `installAsDevDependencies`
|
|
328
|
+
* which we use to determine how we install packages.
|
|
329
|
+
* @param {Array} dependencies Contains a list of packages to add.
|
|
330
|
+
*/
|
|
331
|
+
async addDependencies(options, dependencies) {
|
|
332
|
+
let {
|
|
333
|
+
skipInstall,
|
|
334
|
+
writeOutputToFile = !0,
|
|
335
|
+
packageJsonInfo = this.primaryPackageJson
|
|
336
|
+
} = options;
|
|
337
|
+
if (skipInstall) {
|
|
338
|
+
let { operationDir, packageJson } = packageJsonInfo, dependenciesMap = {};
|
|
339
|
+
for (let dep of dependencies) {
|
|
340
|
+
let [packageName, packageVersion] = getPackageDetails(dep);
|
|
341
|
+
dependenciesMap[packageName] = packageVersion ?? "latest";
|
|
342
|
+
}
|
|
343
|
+
let targetDeps = packageJson[options.type];
|
|
344
|
+
Object.assign(targetDeps, dependenciesMap), this.writePackageJson(packageJson, operationDir);
|
|
345
|
+
} else
|
|
346
|
+
try {
|
|
347
|
+
let result = this.runAddDeps(
|
|
348
|
+
dependencies,
|
|
349
|
+
options.type === "devDependencies",
|
|
350
|
+
writeOutputToFile
|
|
351
|
+
);
|
|
352
|
+
return this.clearInstalledVersionCache(), result;
|
|
353
|
+
} catch (e) {
|
|
354
|
+
throw logger2.error(`
|
|
355
|
+
An error occurred while adding dependencies to your package.json:`), logger2.log(String(e)), e?.fromStorybook ? e : new HandledError(e);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Removing dependencies from the package.json file, which is found first starting from the
|
|
360
|
+
* instance root. The method does not run a package manager install like `npm install`.
|
|
361
|
+
*
|
|
362
|
+
* @example
|
|
363
|
+
*
|
|
364
|
+
* ```ts
|
|
365
|
+
* removeDependencies([`@aussieljk/forkbook/react`]);
|
|
366
|
+
* ```
|
|
367
|
+
*
|
|
368
|
+
* @param dependencies Contains a list of packages to remove.
|
|
369
|
+
*/
|
|
370
|
+
async removeDependencies(dependencies) {
|
|
371
|
+
for (let pjPath of this.packageJsonPaths)
|
|
372
|
+
try {
|
|
373
|
+
let packageJson = _JsPackageManager.getPackageJson(pjPath), modified = !1;
|
|
374
|
+
if (dependencies.forEach((dep) => {
|
|
375
|
+
packageJson.dependencies && packageJson.dependencies[dep] && (delete packageJson.dependencies[dep], modified = !0), packageJson.devDependencies && packageJson.devDependencies[dep] && (delete packageJson.devDependencies[dep], modified = !0), packageJson.peerDependencies && packageJson.peerDependencies[dep] && (delete packageJson.peerDependencies[dep], modified = !0);
|
|
376
|
+
}), modified) {
|
|
377
|
+
this.writePackageJson(packageJson, dirname(pjPath));
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
} catch (e) {
|
|
381
|
+
logger2.warn(`Could not process ${pjPath} for dependency removal: ${String(e)}`);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Return an array of strings matching following format: `<storybook_package_name>@<package_latest_version>`
|
|
386
|
+
*
|
|
387
|
+
* For packages in the storybook monorepo, when the latest version is equal to the version of the
|
|
388
|
+
* current CLI the version is not added to the string.
|
|
389
|
+
*
|
|
390
|
+
* When a package is in the monorepo, and the version is not equal to the CLI version, the version
|
|
391
|
+
* is taken from the versions.ts file and added to the string.
|
|
392
|
+
*
|
|
393
|
+
* When a package is not in the monorepo, we don't change the package version and return the package name as is.
|
|
394
|
+
* The package manager will resolve the latest version of the package upon installing it.
|
|
395
|
+
*
|
|
396
|
+
* @param packages
|
|
397
|
+
*/
|
|
398
|
+
getVersionedPackages(packages, options) {
|
|
399
|
+
return Promise.all(
|
|
400
|
+
packages.map(async (pkg) => {
|
|
401
|
+
let [packageName, packageVersion] = getPackageDetails(pkg);
|
|
402
|
+
if (!(packageName in versions_default))
|
|
403
|
+
return pkg;
|
|
404
|
+
if (packageName in versions_default) {
|
|
405
|
+
let pkgPrNewSpecifier = getPkgPrNewPackageSpecifier(
|
|
406
|
+
packageName,
|
|
407
|
+
options?.storybookVersionSpecifier
|
|
408
|
+
);
|
|
409
|
+
if (pkgPrNewSpecifier)
|
|
410
|
+
return `${packageName}@${pkgPrNewSpecifier}`;
|
|
411
|
+
}
|
|
412
|
+
let latestInRange = await this.latestVersion(packageName, packageVersion), currentVersion = versions_default[packageName];
|
|
413
|
+
return currentVersion === latestInRange || !currentVersion ? `${packageName}@^${latestInRange}` : `${packageName}@${currentVersion}`;
|
|
414
|
+
})
|
|
415
|
+
);
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Return an array of string standing for the latest version of the input packages. To be able to
|
|
419
|
+
* identify which version goes with which package the order of the input array is keep.
|
|
420
|
+
*
|
|
421
|
+
* @param packageNames
|
|
422
|
+
*/
|
|
423
|
+
getVersions(...packageNames) {
|
|
424
|
+
return Promise.all(
|
|
425
|
+
packageNames.map((packageName) => this.getVersion(packageName))
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Return the latest version of the input package available on npmjs registry. If constraint are
|
|
430
|
+
* provided it return the latest version matching the constraints.
|
|
431
|
+
*
|
|
432
|
+
* For `@storybook/*` packages the latest version is retrieved from `cli/src/versions.json` file
|
|
433
|
+
* directly
|
|
434
|
+
*
|
|
435
|
+
* @param packageName The name of the package
|
|
436
|
+
* @param constraint A valid semver constraint, example: '1.x || >=2.5.0 || 5.0.0 - 7.2.3'
|
|
437
|
+
*/
|
|
438
|
+
async getVersion(packageName, constraint) {
|
|
439
|
+
let current;
|
|
440
|
+
packageName in versions_default && (current = versions_default[packageName]);
|
|
441
|
+
let latest;
|
|
442
|
+
try {
|
|
443
|
+
if (latest = await this.latestVersion(packageName, constraint), !latest)
|
|
444
|
+
throw new Error(`No version found for ${packageName}`);
|
|
445
|
+
} catch (e) {
|
|
446
|
+
if (current)
|
|
447
|
+
return logger2.warn(`
|
|
448
|
+
${import_picocolors.default.yellow(String(e))}`), current;
|
|
449
|
+
throw logger2.error(`
|
|
450
|
+
${import_picocolors.default.red(String(e))}`), new HandledError(e);
|
|
451
|
+
}
|
|
452
|
+
return `^${current && (!constraint || satisfies(current, constraint)) && gt2(current, latest) ? current : latest}`;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Get the latest version of the package available on npmjs.com. If constraint is set then it
|
|
456
|
+
* returns a version satisfying it, otherwise the latest version available is returned.
|
|
457
|
+
*
|
|
458
|
+
* @param packageName Name of the package
|
|
459
|
+
* @param constraint Version range to use to constraint the returned version
|
|
460
|
+
*/
|
|
461
|
+
async latestVersion(packageName, constraint) {
|
|
462
|
+
let cacheKey = constraint ? `${packageName}@${constraint}` : packageName, cachedVersion = _JsPackageManager.latestVersionCache.get(cacheKey);
|
|
463
|
+
if (cachedVersion)
|
|
464
|
+
return logger2.debug(`Using cached version for ${packageName}...`), cachedVersion;
|
|
465
|
+
let result;
|
|
466
|
+
logger2.debug(`Getting CLI versions from NPM for ${packageName}...`);
|
|
467
|
+
try {
|
|
468
|
+
if (!constraint)
|
|
469
|
+
result = await this.runGetVersions(packageName, !1);
|
|
470
|
+
else {
|
|
471
|
+
let latestVersionSatisfyingTheConstraint = (await this.runGetVersions(packageName, !0)).reverse().find((version) => satisfies(version, constraint));
|
|
472
|
+
invariant(
|
|
473
|
+
latestVersionSatisfyingTheConstraint != null,
|
|
474
|
+
`No version satisfying the constraint: ${packageName}${constraint}`
|
|
475
|
+
), result = latestVersionSatisfyingTheConstraint;
|
|
476
|
+
}
|
|
477
|
+
return _JsPackageManager.latestVersionCache.set(cacheKey, result), result;
|
|
478
|
+
} catch (e) {
|
|
479
|
+
return logger2.debug(`Failed to fetch the latest version for ${packageName}: ${String(e)}`), _JsPackageManager.latestVersionCache.set(cacheKey, null), null;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Clear the latest version cache. Useful for testing or when you want to refresh version
|
|
484
|
+
* information.
|
|
485
|
+
*
|
|
486
|
+
* @param packageName Optional package name to clear only specific entries. If not provided,
|
|
487
|
+
* clears all cache.
|
|
488
|
+
*/
|
|
489
|
+
static clearLatestVersionCache(packageName) {
|
|
490
|
+
packageName ? Array.from(_JsPackageManager.latestVersionCache.keys()).filter(
|
|
491
|
+
(key) => key === packageName || key.startsWith(`${packageName}@`)
|
|
492
|
+
).forEach((key) => _JsPackageManager.latestVersionCache.delete(key)) : _JsPackageManager.latestVersionCache.clear();
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Clear the installed version cache for a specific package or all packages.
|
|
496
|
+
*
|
|
497
|
+
* @param packageName Optional package name to clear from cache. If not provided, clears all.
|
|
498
|
+
*/
|
|
499
|
+
clearInstalledVersionCache(packageName) {
|
|
500
|
+
packageName ? Array.from(_JsPackageManager.installedVersionCache.keys()).filter(
|
|
501
|
+
(key) => key.endsWith(`::${packageName}`)
|
|
502
|
+
).forEach((key) => _JsPackageManager.installedVersionCache.delete(key)) : _JsPackageManager.installedVersionCache.clear();
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Clear both the latest version cache and installed version cache. This should be called after
|
|
506
|
+
* any operation that modifies dependencies.
|
|
507
|
+
*/
|
|
508
|
+
clearAllVersionCaches() {
|
|
509
|
+
_JsPackageManager.clearLatestVersionCache(), this.clearInstalledVersionCache();
|
|
510
|
+
}
|
|
511
|
+
addStorybookCommandInScripts(options) {
|
|
512
|
+
let storybookCmd = `forkbook dev -p ${options?.port ?? 6006}`, buildStorybookCmd = "forkbook build", preCommand = options?.preCommand ? this.getRunCommand(options.preCommand) : void 0;
|
|
513
|
+
this.addScripts({
|
|
514
|
+
forkbook: [preCommand, storybookCmd].filter(Boolean).join(" && "),
|
|
515
|
+
"build-forkbook": [preCommand, buildStorybookCmd].filter(Boolean).join(" && ")
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
addScripts(scripts) {
|
|
519
|
+
let { operationDir, packageJson } = this.#getPrimaryPackageJson();
|
|
520
|
+
packageJson.scripts = {
|
|
521
|
+
...packageJson.scripts,
|
|
522
|
+
...scripts
|
|
523
|
+
}, this.writePackageJson(packageJson, operationDir);
|
|
524
|
+
}
|
|
525
|
+
addPackageResolutions(versions) {
|
|
526
|
+
let { operationDir, packageJson } = this.#getPrimaryPackageJson(), resolutions = this.getResolutions(packageJson, versions);
|
|
527
|
+
this.writePackageJson({ ...packageJson, ...resolutions }, operationDir);
|
|
528
|
+
}
|
|
529
|
+
/** Returns the installed version of a specified package */
|
|
530
|
+
async getInstalledVersion(packageName) {
|
|
531
|
+
let cacheKey = packageName;
|
|
532
|
+
try {
|
|
533
|
+
let cachedVersion = _JsPackageManager.installedVersionCache.get(cacheKey);
|
|
534
|
+
if (cachedVersion !== void 0)
|
|
535
|
+
return logger2.debug(`Using cached installed version for ${packageName}...`), cachedVersion;
|
|
536
|
+
logger2.debug(`Getting installed version for ${packageName}...`);
|
|
537
|
+
let version = null, vitePlusVersions = await getVitePlusVersions();
|
|
538
|
+
if (vitePlusVersions?.[packageName] && (version = vitePlusVersions[packageName]), !version) {
|
|
539
|
+
let installations = await this.findInstallations([packageName]);
|
|
540
|
+
installations && (version = Object.entries(installations.dependencies)[0]?.[1]?.[0].version || null);
|
|
541
|
+
}
|
|
542
|
+
if (!version)
|
|
543
|
+
return logger2.debug(`No installations found for ${packageName}`), _JsPackageManager.installedVersionCache.set(cacheKey, null), null;
|
|
544
|
+
let coercedVersion = coerce(version, { includePrerelease: !0 })?.toString() ?? version;
|
|
545
|
+
return logger2.debug(`Installed version for ${packageName}: ${coercedVersion}`), _JsPackageManager.installedVersionCache.set(cacheKey, coercedVersion), coercedVersion;
|
|
546
|
+
} catch (e) {
|
|
547
|
+
return logger2.error(`Error getting installed version for ${packageName}: ${String(e)}`), _JsPackageManager.installedVersionCache.set(cacheKey, null), null;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
async isPackageInstalled(packageName) {
|
|
551
|
+
return await this.getInstalledVersion(packageName) !== null;
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Searches for a dependency/devDependency in all package.json files and returns the version of
|
|
555
|
+
* the dependency.
|
|
556
|
+
*/
|
|
557
|
+
getDependencyVersion(dependency) {
|
|
558
|
+
return logger2.debug(`Getting dependency version for ${dependency}...`), this.packageJsonPaths.map((path) => {
|
|
559
|
+
let packageJson = _JsPackageManager.getPackageJson(path);
|
|
560
|
+
return packageJson.dependencies?.[dependency] ?? packageJson.devDependencies?.[dependency];
|
|
561
|
+
}).filter(Boolean)[0] ?? null;
|
|
562
|
+
}
|
|
563
|
+
// Helper to read and check a package.json for storybook dependency
|
|
564
|
+
static hasStorybookDependency(packageJsonPath) {
|
|
565
|
+
try {
|
|
566
|
+
let content = readFileSync(packageJsonPath, "utf-8"), packageJson = JSON.parse(content);
|
|
567
|
+
return !!(packageJson.dependencies && packageJson.dependencies.storybook || packageJson.devDependencies && packageJson.devDependencies.storybook);
|
|
568
|
+
} catch {
|
|
569
|
+
return !1;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
// Helper to read and check a package.json for storybook dependency
|
|
573
|
+
static hasAnyStorybookDependency(packageJsonPath) {
|
|
574
|
+
try {
|
|
575
|
+
let content = readFileSync(packageJsonPath, "utf-8"), packageJson = JSON.parse(content), allDeps = {
|
|
576
|
+
...packageJson.dependencies,
|
|
577
|
+
...packageJson.devDependencies
|
|
578
|
+
};
|
|
579
|
+
return Object.keys(allDeps).some(
|
|
580
|
+
(dep) => dep.includes("storybook") || dep === "@aussieljk/forkbook"
|
|
581
|
+
);
|
|
582
|
+
} catch {
|
|
583
|
+
return !1;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Find the primary package.json file in the project root. The primary package.json file is the
|
|
588
|
+
* one that contains the `storybook` dependency. If no primary package.json file is found, the
|
|
589
|
+
* function will return the package.json file in the project root.
|
|
590
|
+
*/
|
|
591
|
+
#findPrimaryPackageJsonPath() {
|
|
592
|
+
for (let packageJsonPath of this.packageJsonPaths)
|
|
593
|
+
if (_JsPackageManager.hasStorybookDependency(packageJsonPath))
|
|
594
|
+
return packageJsonPath;
|
|
595
|
+
return this.packageJsonPaths[0] ?? resolve(this.cwd, "package.json");
|
|
596
|
+
}
|
|
597
|
+
/** List all package.json files starting from the given directory and stopping at the project root. */
|
|
598
|
+
static listAllPackageJsonPaths(instanceDir, storiesPaths) {
|
|
599
|
+
let packageJsonPaths = findFilesUp(["package.json"], instanceDir);
|
|
600
|
+
if (!storiesPaths)
|
|
601
|
+
return packageJsonPaths;
|
|
602
|
+
let projectRoot = getProjectRoot(), relevantPackageJsons = globSync("**/package.json", {
|
|
603
|
+
cwd: projectRoot,
|
|
604
|
+
absolute: !0,
|
|
605
|
+
ignore: ["**/node_modules/**", "**/dist/**"]
|
|
606
|
+
}).filter((packageJsonPath) => {
|
|
607
|
+
let packageDir = dirname(packageJsonPath);
|
|
608
|
+
return storiesPaths.some((storyPath) => storyPath.startsWith(packageDir));
|
|
609
|
+
});
|
|
610
|
+
return Array.from(/* @__PURE__ */ new Set([...packageJsonPaths, ...relevantPackageJsons]));
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* Get the primary package.json file and its operation directory. The primary package.json file is
|
|
614
|
+
* the one that contains the storybook dependency. If the primary package.json file is not found,
|
|
615
|
+
* the function returns information about thepackage.json file in the current working directory.
|
|
616
|
+
*/
|
|
617
|
+
#getPrimaryPackageJson() {
|
|
618
|
+
let finalTargetPackageJsonPath = this.#findPrimaryPackageJsonPath();
|
|
619
|
+
return _JsPackageManager.getPackageJsonInfo(finalTargetPackageJsonPath);
|
|
620
|
+
}
|
|
621
|
+
static getPackageJsonInfo(packageJsonPath) {
|
|
622
|
+
logger2.debug(`Getting package.json info for ${packageJsonPath}...`);
|
|
623
|
+
let operationDir = dirname(packageJsonPath);
|
|
624
|
+
return {
|
|
625
|
+
packageJsonPath,
|
|
626
|
+
operationDir,
|
|
627
|
+
get packageJson() {
|
|
628
|
+
return _JsPackageManager.getPackageJson(packageJsonPath);
|
|
629
|
+
}
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
};
|
|
633
|
+
|
|
634
|
+
// src/common/utils/framework.ts
|
|
635
|
+
import {
|
|
636
|
+
SupportedBuilder,
|
|
637
|
+
SupportedFramework,
|
|
638
|
+
SupportedRenderer
|
|
639
|
+
} from "@aussieljk/forkbook/internal/types";
|
|
640
|
+
var frameworkToRenderer = {
|
|
641
|
+
// frameworks
|
|
642
|
+
[SupportedFramework.NEXTJS_VITE]: SupportedRenderer.REACT,
|
|
643
|
+
[SupportedFramework.REACT_VITE]: SupportedRenderer.REACT,
|
|
644
|
+
// renderers
|
|
645
|
+
[SupportedRenderer.REACT_NATIVE]: SupportedRenderer.REACT_NATIVE,
|
|
646
|
+
[SupportedRenderer.REACT]: SupportedRenderer.REACT
|
|
647
|
+
}, frameworkToBuilder = {
|
|
648
|
+
// frameworks
|
|
649
|
+
[SupportedFramework.NEXTJS_VITE]: SupportedBuilder.VITE,
|
|
650
|
+
[SupportedFramework.REACT_VITE]: SupportedBuilder.VITE
|
|
651
|
+
};
|
|
652
|
+
|
|
653
|
+
// src/common/utils/normalize-path.ts
|
|
654
|
+
import { posix } from "node:path";
|
|
655
|
+
function normalizePath(p) {
|
|
656
|
+
return posix.normalize(p.replace(/\\/g, "/"));
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
// src/common/utils/get-addon-names.ts
|
|
660
|
+
var normalizeAddonName = (addon) => {
|
|
661
|
+
let name = "";
|
|
662
|
+
if (typeof addon == "string" ? name = addon : typeof addon == "object" && (name = addon.name), !name.startsWith("."))
|
|
663
|
+
return name = normalizePath(name), name = name.replace(/.*node_modules\//, ""), name.replace(/\/dist\/.*$/, "").replace(/\.[mc]?[tj]?sx?$/, "").replace(/\/register$/, "").replace(/\/manager$/, "").replace(/\/preset$/, "");
|
|
664
|
+
}, getAddonNames = (mainConfig) => (mainConfig.addons || []).map(normalizeAddonName).filter((item) => item != null);
|
|
665
|
+
|
|
666
|
+
// src/common/utils/default-config-dir.ts
|
|
667
|
+
import { existsSync } from "node:fs";
|
|
668
|
+
import { join as join2 } from "node:path";
|
|
669
|
+
function defaultConfigDir(cwd = process.cwd()) {
|
|
670
|
+
return !existsSync(join2(cwd, ".forkbook")) && existsSync(join2(cwd, ".storybook")) ? ".storybook" : ".forkbook";
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
// src/common/utils/get-framework-name.ts
|
|
674
|
+
import { dedent as dedent3 } from "ts-dedent";
|
|
675
|
+
|
|
676
|
+
// src/common/utils/get-storybook-info.ts
|
|
677
|
+
import { existsSync as existsSync3, readFileSync as readFileSync2 } from "node:fs";
|
|
678
|
+
import { basename, dirname as dirname2, join as join4 } from "node:path";
|
|
679
|
+
import {
|
|
680
|
+
SupportedBuilder as SupportedBuilder2,
|
|
681
|
+
SupportedFramework as SupportedFramework2,
|
|
682
|
+
SupportedRenderer as SupportedRenderer2
|
|
683
|
+
} from "@aussieljk/forkbook/internal/types";
|
|
684
|
+
|
|
685
|
+
// src/common/utils/get-storybook-configuration.ts
|
|
686
|
+
function getStorybookConfiguration(storybookScript, shortName, longName) {
|
|
687
|
+
if (!storybookScript)
|
|
688
|
+
return null;
|
|
689
|
+
let parts = storybookScript.split(/[\s='"]+/), index = parts.indexOf(longName);
|
|
690
|
+
return index === -1 && (index = parts.indexOf(shortName)), index === -1 ? null : parts[index + 1];
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
// src/common/utils/load-main-config.ts
|
|
694
|
+
import { readFile, rm, writeFile } from "node:fs/promises";
|
|
695
|
+
import { join as join3, parse, relative, resolve as resolve3 } from "node:path";
|
|
696
|
+
import { logger as logger3 } from "@aussieljk/forkbook/internal/node-logger";
|
|
697
|
+
import { MainFileEvaluationError } from "@aussieljk/forkbook/internal/server-errors";
|
|
698
|
+
import { dedent as dedent2 } from "ts-dedent";
|
|
699
|
+
|
|
700
|
+
// src/common/utils/interpret-files.ts
|
|
701
|
+
import { existsSync as existsSync2 } from "node:fs";
|
|
702
|
+
import { extname } from "node:path";
|
|
703
|
+
var typescriptFallbackExtensions = {
|
|
704
|
+
".js": [".ts", ".tsx"],
|
|
705
|
+
".mjs": [".mts"],
|
|
706
|
+
".cjs": [".cts"],
|
|
707
|
+
".jsx": [".tsx"]
|
|
708
|
+
}, supportedExtensions = storybookConfigExtensions;
|
|
709
|
+
function getInterpretedFile(pathToFile) {
|
|
710
|
+
return supportedExtensions.map((ext) => pathToFile.endsWith(ext) ? pathToFile : `${pathToFile}${ext}`).find((candidate) => existsSync2(candidate));
|
|
711
|
+
}
|
|
712
|
+
var importResolver = createModuleResolver({
|
|
713
|
+
extensions: [...supportedExtensions],
|
|
714
|
+
mainFields: ["module", "main"]
|
|
715
|
+
});
|
|
716
|
+
function resolveImport(id, options) {
|
|
717
|
+
try {
|
|
718
|
+
return resolveSync(id, options.basedir);
|
|
719
|
+
} catch (error) {
|
|
720
|
+
let ext = extname(id), fallbackExtensions = typescriptFallbackExtensions[ext];
|
|
721
|
+
if (!fallbackExtensions)
|
|
722
|
+
throw error;
|
|
723
|
+
let fallbackError = error, baseId = id.slice(0, -ext.length);
|
|
724
|
+
for (let fallbackExtension of fallbackExtensions)
|
|
725
|
+
try {
|
|
726
|
+
return resolveSync(`${baseId}${fallbackExtension}`, options.basedir);
|
|
727
|
+
} catch (err) {
|
|
728
|
+
fallbackError = err;
|
|
729
|
+
}
|
|
730
|
+
throw fallbackError;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
function resolveSync(id, basedir) {
|
|
734
|
+
return importResolver.resolveSync(basedir, id);
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
// src/common/utils/validate-configuration-files.ts
|
|
738
|
+
import { resolve as resolve2 } from "node:path";
|
|
739
|
+
import { once } from "@aussieljk/forkbook/internal/node-logger";
|
|
740
|
+
import { MainFileMissingError } from "@aussieljk/forkbook/internal/server-errors";
|
|
741
|
+
import { dedent } from "ts-dedent";
|
|
742
|
+
async function validateConfigurationFiles(configDir, cwd) {
|
|
743
|
+
let extensionsPattern = `{${Array.from(supportedExtensions).join(",")}}`, mainConfigMatches = await glob(slash(resolve2(configDir, `main${extensionsPattern}`)), {
|
|
744
|
+
cwd: cwd ?? process.cwd()
|
|
745
|
+
}), [mainConfigPath] = mainConfigMatches;
|
|
746
|
+
if (mainConfigMatches.length > 1 && once.warn(dedent`
|
|
747
|
+
Multiple main files found in your configDir (${resolve2(configDir)}).
|
|
748
|
+
Forkbook will use the first one found and ignore the others. Please remove the extra files.
|
|
749
|
+
`), !mainConfigPath)
|
|
750
|
+
throw new MainFileMissingError({ location: configDir });
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
// src/common/utils/load-main-config.ts
|
|
754
|
+
async function loadMainConfig({
|
|
755
|
+
configDir = defaultConfigDir(),
|
|
756
|
+
cwd,
|
|
757
|
+
skipCache
|
|
758
|
+
}) {
|
|
759
|
+
await validateConfigurationFiles(configDir, cwd);
|
|
760
|
+
let mainPath = getInterpretedFile(resolve3(configDir, "main"));
|
|
761
|
+
try {
|
|
762
|
+
let out = await importModule(mainPath, { skipCache });
|
|
763
|
+
return withForkbookFramework(out);
|
|
764
|
+
} catch (e) {
|
|
765
|
+
if (!(e instanceof Error))
|
|
766
|
+
throw e;
|
|
767
|
+
if (e.message.includes("not defined in ES module scope")) {
|
|
768
|
+
logger3.info(
|
|
769
|
+
"Loading main config failed as the file does not seem to be valid ESM. Trying a temporary fix, please ensure the main config is valid ESM."
|
|
770
|
+
);
|
|
771
|
+
let comment = "// end of Forkbook 10 migration assistant header, you can delete the above code", content = await readFile(mainPath, "utf-8");
|
|
772
|
+
if (!content.includes(comment)) {
|
|
773
|
+
let header = dedent2`
|
|
774
|
+
import { createRequire } from "node:module";
|
|
775
|
+
import { dirname } from "node:path";
|
|
776
|
+
import { fileURLToPath } from "node:url";
|
|
777
|
+
|
|
778
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
779
|
+
const __dirname = dirname(__filename);
|
|
780
|
+
const require = createRequire(import.meta.url);
|
|
781
|
+
`, { ext, name, dir } = parse(mainPath), modifiedMainPath = join3(dir, `${name}.tmp.${ext}`);
|
|
782
|
+
await writeFile(modifiedMainPath, [header, comment, content].join(`
|
|
783
|
+
|
|
784
|
+
`));
|
|
785
|
+
let out;
|
|
786
|
+
try {
|
|
787
|
+
out = await importModule(modifiedMainPath);
|
|
788
|
+
} finally {
|
|
789
|
+
await rm(modifiedMainPath);
|
|
790
|
+
}
|
|
791
|
+
return withForkbookFramework(out);
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
throw new MainFileEvaluationError({
|
|
795
|
+
location: relative(process.cwd(), mainPath),
|
|
796
|
+
error: e
|
|
797
|
+
});
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
// src/common/utils/get-storybook-info.ts
|
|
802
|
+
var rendererPackages = {
|
|
803
|
+
"@aussieljk/forkbook/react": SupportedRenderer2.REACT,
|
|
804
|
+
"@storybook/react-native": SupportedRenderer2.REACT_NATIVE
|
|
805
|
+
}, frameworkPackages = {
|
|
806
|
+
"@aussieljk/forkbook/react-vite": SupportedFramework2.REACT_VITE,
|
|
807
|
+
"@aussieljk/forkbook/nextjs-vite": SupportedFramework2.NEXTJS_VITE
|
|
808
|
+
}, builderPackages = {
|
|
809
|
+
"@aussieljk/forkbook/builder-vite": SupportedBuilder2.VITE
|
|
810
|
+
}, findDependency = ({ dependencies, devDependencies, peerDependencies }, predicate) => [
|
|
811
|
+
Object.entries(dependencies || {}).find(predicate),
|
|
812
|
+
Object.entries(devDependencies || {}).find(predicate),
|
|
813
|
+
Object.entries(peerDependencies || {}).find(predicate)
|
|
814
|
+
], getStorybookVersionSpecifier = (configDir) => {
|
|
815
|
+
let packageJsonPaths = JsPackageManager.listAllPackageJsonPaths(dirname2(configDir));
|
|
816
|
+
for (let packageJsonPath of packageJsonPaths) {
|
|
817
|
+
let packageJson = JSON.parse(readFileSync2(packageJsonPath, "utf-8")), [dep, devDep, peerDep] = findDependency(
|
|
818
|
+
packageJson,
|
|
819
|
+
([key]) => key === "@aussieljk/forkbook"
|
|
820
|
+
), [pkg, version] = dep || devDep || peerDep || [];
|
|
821
|
+
if (pkg && version)
|
|
822
|
+
return version;
|
|
823
|
+
}
|
|
824
|
+
}, findConfigFile = (prefix, configDir) => {
|
|
825
|
+
let filePrefix = join4(configDir, prefix), extension = storybookConfigExtensions.find((ext) => existsSync3(`${filePrefix}${ext}`));
|
|
826
|
+
return extension ? `${filePrefix}${extension}` : null;
|
|
827
|
+
}, getConfigInfo = (configDir) => {
|
|
828
|
+
let storybookConfigDir = configDir ?? defaultConfigDir();
|
|
829
|
+
if (!existsSync3(storybookConfigDir)) {
|
|
830
|
+
let packageJsonPaths = JsPackageManager.listAllPackageJsonPaths(storybookConfigDir);
|
|
831
|
+
for (let packageJsonPath of packageJsonPaths) {
|
|
832
|
+
let packageJson = JSON.parse(readFileSync2(packageJsonPath, "utf-8")), storybookScript = packageJson.scripts?.forkbook ?? packageJson.scripts?.storybook;
|
|
833
|
+
if (storybookScript && !configDir) {
|
|
834
|
+
let configParam = getStorybookConfiguration(storybookScript, "-c", "--config-dir");
|
|
835
|
+
if (configParam) {
|
|
836
|
+
storybookConfigDir = configParam;
|
|
837
|
+
break;
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
return {
|
|
843
|
+
configDir: storybookConfigDir,
|
|
844
|
+
mainConfigPath: findConfigFile("main", storybookConfigDir),
|
|
845
|
+
previewConfigPath: findConfigFile("preview", storybookConfigDir),
|
|
846
|
+
managerConfigPath: findConfigFile("manager", storybookConfigDir)
|
|
847
|
+
};
|
|
848
|
+
}, getStorybookInfo = async (configDir = defaultConfigDir(), cwd, { skipCache } = {}) => {
|
|
849
|
+
let configInfo = getConfigInfo(configDir), mainConfig = await loadMainConfig({
|
|
850
|
+
configDir: configInfo.configDir,
|
|
851
|
+
cwd,
|
|
852
|
+
// When the main config may have been rewritten earlier in the same process (e.g. by
|
|
853
|
+
// `forkbook add`), callers must skip the module cache to read the
|
|
854
|
+
// current on-disk config instead of a stale, previously-evaluated version.
|
|
855
|
+
skipCache
|
|
856
|
+
});
|
|
857
|
+
invariant(mainConfig, `Unable to find or evaluate ${configInfo.mainConfigPath}`);
|
|
858
|
+
let frameworkValue = mainConfig.framework, frameworkField = typeof frameworkValue == "string" ? frameworkValue : frameworkValue?.name, addons = getAddonNames(mainConfig), versionSpecifier = getStorybookVersionSpecifier(configDir);
|
|
859
|
+
if (!frameworkField)
|
|
860
|
+
return basename(configInfo.configDir) === RN_STORYBOOK_DIR ? {
|
|
861
|
+
...configInfo,
|
|
862
|
+
versionSpecifier,
|
|
863
|
+
addons,
|
|
864
|
+
mainConfig,
|
|
865
|
+
frameworkPackage: "@storybook/react-native",
|
|
866
|
+
rendererPackage: "@storybook/react-native",
|
|
867
|
+
renderer: SupportedRenderer2.REACT_NATIVE,
|
|
868
|
+
mainConfigPath: configInfo.mainConfigPath ?? void 0,
|
|
869
|
+
previewConfigPath: configInfo.previewConfigPath ?? void 0,
|
|
870
|
+
managerConfigPath: configInfo.managerConfigPath ?? void 0
|
|
871
|
+
} : {
|
|
872
|
+
...configInfo,
|
|
873
|
+
versionSpecifier,
|
|
874
|
+
addons,
|
|
875
|
+
mainConfig,
|
|
876
|
+
mainConfigPath: configInfo.mainConfigPath ?? void 0,
|
|
877
|
+
previewConfigPath: configInfo.previewConfigPath ?? void 0,
|
|
878
|
+
managerConfigPath: configInfo.managerConfigPath ?? void 0
|
|
879
|
+
};
|
|
880
|
+
let frameworkPackage = extractFrameworkPackageName(frameworkField), framework = frameworkPackages[frameworkPackage], renderer = await extractRenderer(frameworkPackage), builder = frameworkToBuilder[framework], rendererPackage = Object.entries(rendererPackages).find(
|
|
881
|
+
([, value]) => value === renderer
|
|
882
|
+
)?.[0], builderPackage = Object.entries(builderPackages).find(
|
|
883
|
+
([, value]) => value === builder
|
|
884
|
+
)?.[0];
|
|
885
|
+
return {
|
|
886
|
+
...configInfo,
|
|
887
|
+
addons,
|
|
888
|
+
mainConfig,
|
|
889
|
+
framework,
|
|
890
|
+
versionSpecifier,
|
|
891
|
+
renderer: renderer ?? void 0,
|
|
892
|
+
builder: builder ?? void 0,
|
|
893
|
+
frameworkPackage,
|
|
894
|
+
rendererPackage,
|
|
895
|
+
builderPackage,
|
|
896
|
+
mainConfigPath: configInfo.mainConfigPath ?? void 0,
|
|
897
|
+
previewConfigPath: configInfo.previewConfigPath ?? void 0,
|
|
898
|
+
managerConfigPath: configInfo.managerConfigPath ?? void 0
|
|
899
|
+
};
|
|
900
|
+
};
|
|
901
|
+
|
|
902
|
+
// src/common/utils/get-framework-name.ts
|
|
903
|
+
async function getFrameworkName(options) {
|
|
904
|
+
let framework = await options.presets.apply("framework", "", options);
|
|
905
|
+
if (!framework)
|
|
906
|
+
throw new Error(dedent3`
|
|
907
|
+
You must specify a framework in '.forkbook/main.js' config.
|
|
908
|
+
|
|
909
|
+
https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
|
|
910
|
+
`);
|
|
911
|
+
return typeof framework == "object" ? framework.name : framework;
|
|
912
|
+
}
|
|
913
|
+
var storybookFrameworkNames = {
|
|
914
|
+
"@storybook/react-vite": "@aussieljk/forkbook/react-vite",
|
|
915
|
+
"@storybook/nextjs-vite": "@aussieljk/forkbook/nextjs-vite"
|
|
916
|
+
};
|
|
917
|
+
function forkbookFramework(framework) {
|
|
918
|
+
let name = typeof framework == "string" ? framework : framework?.name, forkbookName = name ? storybookFrameworkNames[name] : void 0;
|
|
919
|
+
return forkbookName ? typeof framework == "string" ? forkbookName : { ...framework, name: forkbookName } : framework;
|
|
920
|
+
}
|
|
921
|
+
function withForkbookFramework(config) {
|
|
922
|
+
let framework = forkbookFramework(config?.framework);
|
|
923
|
+
return framework === config?.framework ? config : { ...config, framework };
|
|
924
|
+
}
|
|
925
|
+
var extractFrameworkPackageName = (framework) => {
|
|
926
|
+
let normalizedPath = normalizePath(forkbookFramework(framework));
|
|
927
|
+
return Object.keys(frameworkPackages).find((pkg) => normalizedPath.endsWith(pkg)) ?? framework;
|
|
928
|
+
};
|
|
929
|
+
|
|
930
|
+
// src/common/utils/get-renderer-name.ts
|
|
931
|
+
async function getRendererName(options) {
|
|
932
|
+
let core = await options.presets.apply("core", {}, options);
|
|
933
|
+
return !core || !core.renderer ? getFrameworkName(options) : core.renderer;
|
|
934
|
+
}
|
|
935
|
+
async function extractRenderer(frameworkName) {
|
|
936
|
+
let extractedFrameworkName = extractFrameworkPackageName(frameworkName), framework = frameworkPackages[extractedFrameworkName];
|
|
937
|
+
return framework ? frameworkToRenderer[framework] : null;
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
export {
|
|
941
|
+
versions_default,
|
|
942
|
+
HandledError,
|
|
943
|
+
isPkgPrNewVersionSpecifier,
|
|
944
|
+
getPkgPrNewPackageSpecifier,
|
|
945
|
+
FORKBOOK_PACKAGE_PATTERNS,
|
|
946
|
+
hasStorybookMinimumAgeExclusions,
|
|
947
|
+
parsePackageData,
|
|
948
|
+
parsePositiveIntegerConfigValue,
|
|
949
|
+
parseReleaseTime,
|
|
950
|
+
parsePackageTimeMap,
|
|
951
|
+
getAgeInMinutes,
|
|
952
|
+
getLatestStableVersionAdheringToMinimumAgeGate,
|
|
953
|
+
getVitestStorybookRunCommand,
|
|
954
|
+
getMswInitCommand,
|
|
955
|
+
FORKBOOK_RERUN_INSTRUCTION,
|
|
956
|
+
getStorybookRerunCommand,
|
|
957
|
+
getErrorLogs,
|
|
958
|
+
INSTALL_ERROR_TAIL_LINES,
|
|
959
|
+
getInstallErrorTail,
|
|
960
|
+
getVitePlusVersions,
|
|
961
|
+
clearVitePlusCache,
|
|
962
|
+
PackageManagerName,
|
|
963
|
+
getPrettyPackageManagerName,
|
|
964
|
+
getPackageDetails,
|
|
965
|
+
JsPackageManager,
|
|
966
|
+
frameworkToRenderer,
|
|
967
|
+
frameworkToBuilder,
|
|
968
|
+
normalizeAddonName,
|
|
969
|
+
getAddonNames,
|
|
970
|
+
defaultConfigDir,
|
|
971
|
+
getRendererName,
|
|
972
|
+
extractRenderer,
|
|
973
|
+
getStorybookConfiguration,
|
|
974
|
+
supportedExtensions,
|
|
975
|
+
getInterpretedFile,
|
|
976
|
+
resolveImport,
|
|
977
|
+
validateConfigurationFiles,
|
|
978
|
+
loadMainConfig,
|
|
979
|
+
rendererPackages,
|
|
980
|
+
frameworkPackages,
|
|
981
|
+
builderPackages,
|
|
982
|
+
findConfigFile,
|
|
983
|
+
getConfigInfo,
|
|
984
|
+
getStorybookInfo,
|
|
985
|
+
getFrameworkName,
|
|
986
|
+
forkbookFramework,
|
|
987
|
+
withForkbookFramework,
|
|
988
|
+
extractFrameworkPackageName
|
|
989
|
+
};
|