diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml deleted file mode 100644 index 1a1c6b59a4a2..000000000000 --- a/.github/workflows/scorecards.yml +++ /dev/null @@ -1,72 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. They are provided -# by a third-party and are governed by separate terms of service, privacy -# policy, and support documentation. - -name: Scorecards supply-chain security -on: - # For Branch-Protection check. Only the default branch is supported. See - # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection - branch_protection_rule: - # To guarantee Maintained check is occasionally updated. See - # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained - schedule: - - cron: '31 16 * * 5' - push: - branches: [ "next" ] - -# Declare default permissions as read only. -permissions: read-all - -jobs: - analysis: - name: Scorecards analysis - runs-on: ubuntu-latest - permissions: - # Needed to upload the results to code-scanning dashboard. - security-events: write - # Needed to publish results and get a badge (see publish_results below). - id-token: write - # Uncomment the permissions below if installing in a private repository. - # contents: read - # actions: read - - steps: - - name: "Checkout code" - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 - with: - persist-credentials: false - - - name: "Run analysis" - uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # v2.0.6 - with: - results_file: results.sarif - results_format: sarif - # (Optional) Read-only PAT token. Uncomment the `repo_token` line below if: - # - you want to enable the Branch-Protection check on a *public* repository, or - # - you are installing Scorecards on a *private* repository - # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. - # repo_token: ${{ secrets.SCORECARD_READ_TOKEN }} - - # Public repositories: - # - Publish results to OpenSSF REST API for easy access by consumers - # - Allows the repository to include the Scorecard badge. - # - See https://github.com/ossf/scorecard-action#publishing-results. - # For private repositories: - # - `publish_results` will always be set to `false`, regardless - # of the value entered here. - publish_results: true - - # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF - # format to the repository Actions tab. - - name: "Upload artifact" - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 - with: - name: SARIF file - path: results.sarif - retention-days: 5 - - # Upload the results to GitHub's code scanning dashboard. - - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@807578363a7869ca324a79039e6db9c843e0e100 # v2.1.27 - with: - sarif_file: results.sarif diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index a5ab53b9e199..6180d4046fb2 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,12 @@ +## 8.3.0-alpha.4 + +- CSF: Allow overridding globals at the story level - [#26654](https://github.com/storybookjs/storybook/pull/26654), thanks @tmeasday! +- Core: Introduce run over play in portable stories, and revert back play changes of 8.2 - [#28764](https://github.com/storybookjs/storybook/pull/28764), thanks @kasperpeulen! +- Core: Split Storybook CLI - [#28519](https://github.com/storybookjs/storybook/pull/28519), thanks @kasperpeulen! +- Fix: Invariant failed: Expected package.json#version to be defined in the "undefined" package - [#28752](https://github.com/storybookjs/storybook/pull/28752), thanks @abcdmku! +- Next.js: Make RSC portable-stories compatible - [#28756](https://github.com/storybookjs/storybook/pull/28756), thanks @valentinpalkovic! +- UI: Fix collapse/expand all functionality - [#28582](https://github.com/storybookjs/storybook/pull/28582), thanks @filipemelo2002! + ## 8.3.0-alpha.3 - Angular: Fix Angular template error for props with a circular reference - [#28498](https://github.com/storybookjs/storybook/pull/28498), thanks @Marklb! diff --git a/MIGRATION.md b/MIGRATION.md index dcb75d359224..6351499f9aac 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -444,7 +444,7 @@ Starting in 8.2 `preview.js` `globals` are deprecated and have been renamed to ` // .storybook/preview.js export default { - globals: [ a: 1, b: 2 ], -+ initiaGlobals: [ a: 1, b: 2 ], ++ initialGlobals: [ a: 1, b: 2 ], } ``` diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index c32f341185aa..09276984fff3 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-a11y", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Test component compliance with web accessibility standards", "keywords": [ "a11y", diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index 1b8158a84cbf..898ef0754f2d 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-actions", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Get UI feedback when an action is performed on an interactive element", "keywords": [ "storybook", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index abde37a1235c..9c6cbac80053 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-backgrounds", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Switch backgrounds to view components in different settings", "keywords": [ "addon", diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json index 485d0ab6e853..8d5fe84da8ec 100644 --- a/code/addons/controls/package.json +++ b/code/addons/controls/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-controls", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Interact with component inputs dynamically in the Storybook UI", "keywords": [ "addon", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 37f242b8a94c..a1302ed0a8c4 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-docs", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Document component usage and properties in Markdown", "keywords": [ "addon", diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index 68712120d367..beb8eb4b8517 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-essentials", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Curated addons to bring out the best of Storybook", "keywords": [ "addon", diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json index b33950a02400..58fe31499140 100644 --- a/code/addons/gfm/package.json +++ b/code/addons/gfm/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-mdx-gfm", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "GitHub Flavored Markdown in Storybook", "keywords": [ "addon", diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index 5f79221870bf..1a3ebc1535fc 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-highlight", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Highlight DOM nodes within your stories", "keywords": [ "storybook-addons", diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 128d6a5486d5..264ccbf8068d 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-interactions", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Automate, test and debug user interactions", "keywords": [ "storybook-addons", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index fd22ad32c52e..d0a2ec7b1609 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-jest", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "React storybook addon that show component jest report", "keywords": [ "addon", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index 5ce5c2da27ba..c1259e50cb19 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-links", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Link stories together to build demos and prototypes with your UI components", "keywords": [ "addon", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index c0ce41d72120..b3dafc43f25f 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-measure", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Inspect layouts by visualizing the box model", "keywords": [ "storybook-addons", diff --git a/code/addons/onboarding/package.json b/code/addons/onboarding/package.json index f272d369329c..ad9b4fdec033 100644 --- a/code/addons/onboarding/package.json +++ b/code/addons/onboarding/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-onboarding", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook Addon Onboarding - Introduces a new onboarding experience", "keywords": [ "storybook-addons", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index aa21fbf0a84d..2a1eb92d7607 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-outline", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Outline all elements with CSS to help with layout placement and alignment", "keywords": [ "storybook-addons", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index 10478815814f..5e19655dbb88 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storysource", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "View a story’s source code to see how it works and paste into your app", "keywords": [ "addon", diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json index d715ee10eb4f..ff0ed5d26f77 100644 --- a/code/addons/themes/package.json +++ b/code/addons/themes/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-themes", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Switch between multiple themes for you components in Storybook", "keywords": [ "css", diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index fc4f5cc4604f..da507489ca9d 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-toolbars", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Create your own toolbar items that control story rendering", "keywords": [ "addon", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index 2ef52480c45a..e06d56ff12be 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Build responsive components by adjusting Storybook’s viewport size and orientation", "keywords": [ "addon", diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index a7d790840ea1..a5df7a0333a5 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "A plugin to run and build Storybooks with Vite", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme", "bugs": { diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 56d90c5f8d48..b66000089f29 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/core/package.json b/code/core/package.json index 65ac96889601..4d7553c33402 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -152,6 +152,16 @@ "import": "./dist/preview/globals.js", "require": "./dist/preview/globals.cjs" }, + "./cli": { + "types": "./dist/cli/index.d.ts", + "import": "./dist/cli/index.js", + "require": "./dist/cli/index.cjs" + }, + "./cli/bin": { + "types": "./dist/cli/bin/index.d.ts", + "import": "./dist/cli/bin/index.js", + "require": "./dist/cli/bin/index.cjs" + }, "./package.json": "./package.json" }, "main": "dist/index.cjs", @@ -239,6 +249,12 @@ ], "preview/globals": [ "./dist/preview/globals.d.ts" + ], + "cli": [ + "./dist/cli/index.d.ts" + ], + "cli/bin": [ + "./dist/cli/bin/index.d.ts" ] } }, @@ -262,7 +278,7 @@ "express": "^4.19.2", "process": "^0.11.10", "recast": "^0.23.5", - "util": "^0.12.4", + "semver": "^7.6.2", "ws": "^8.2.3" }, "devDependencies": { @@ -280,7 +296,7 @@ "@emotion/styled": "^11.11.0", "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@ndelangen/fs-extra-unified": "^1.0.3", + "@ndelangen/get-tarball": "^3.0.7", "@popperjs/core": "^2.6.0", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-scroll-area": "^1.0.5", @@ -304,9 +320,10 @@ "@types/picomatch": "^2.3.0", "@types/prettier": "^3.0.0", "@types/pretty-hrtime": "^1.0.0", + "@types/prompts": "^2.0.9", "@types/react-syntax-highlighter": "11.0.5", "@types/react-transition-group": "^4", - "@types/semver": "^7.3.4", + "@types/semver": "^7.5.8", "@types/ws": "^8", "@vitest/utils": "^1.3.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -322,6 +339,7 @@ "chai": "^4.4.1", "chalk": "^5.3.0", "cli-table3": "^0.6.1", + "commander": "^6.2.1", "comment-parser": "^1.4.1", "compression": "^1.7.4", "copy-to-clipboard": "^3.3.1", @@ -329,6 +347,7 @@ "css": "^3.0.0", "deep-object-diff": "^1.1.0", "dequal": "^2.0.2", + "detect-indent": "^7.0.1", "detect-package-manager": "^3.0.2", "detect-port": "^1.3.0", "diff": "^5.2.0", @@ -346,12 +365,14 @@ "flush-promises": "^1.0.2", "fs-extra": "^11.1.0", "fuse.js": "^3.6.1", + "get-npm-tarball-url": "^2.0.3", "glob": "^10.0.0", "globby": "^14.0.1", "handlebars": "^4.7.7", "js-yaml": "^4.1.0", "jsdoc-type-pratt-parser": "^4.0.0", "lazy-universal-dotenv": "^4.0.0", + "leven": "^4.0.0", "lodash": "^4.17.21", "markdown-to-jsx": "^7.4.5", "memoizerific": "^1.11.3", @@ -377,9 +398,9 @@ "react-transition-group": "^4.4.5", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", - "semver": "^7.3.7", "slash": "^5.0.0", "store2": "^2.14.2", + "strip-json-comments": "^5.0.1", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1", "tinyspy": "^2.2.0", diff --git a/code/core/scripts/entries.ts b/code/core/scripts/entries.ts index a618dac3b623..a7062abf9a6c 100644 --- a/code/core/scripts/entries.ts +++ b/code/core/scripts/entries.ts @@ -36,6 +36,8 @@ export const getEntries = (cwd: string) => { define('src/manager/globals-module-info.ts', ['node'], true), define('src/manager/globals.ts', ['node'], true), define('src/preview/globals.ts', ['node'], true), + define('src/cli/index.ts', ['node'], true), + define('src/cli/bin/index.ts', ['node'], true), ]; }; diff --git a/code/lib/cli/src/NpmOptions.ts b/code/core/src/cli/NpmOptions.ts similarity index 100% rename from code/lib/cli/src/NpmOptions.ts rename to code/core/src/cli/NpmOptions.ts diff --git a/code/lib/cli/src/generators/ANGULAR/helpers.ts b/code/core/src/cli/angular/helpers.ts similarity index 98% rename from code/lib/cli/src/generators/ANGULAR/helpers.ts rename to code/core/src/cli/angular/helpers.ts index d4ab56b67a62..9d651fa60cae 100644 --- a/code/lib/cli/src/generators/ANGULAR/helpers.ts +++ b/code/core/src/cli/angular/helpers.ts @@ -2,7 +2,7 @@ import fs from 'fs'; import { join } from 'path'; import prompts from 'prompts'; import { dedent } from 'ts-dedent'; -import { MissingAngularJsonError } from 'storybook/internal/server-errors'; +import { MissingAngularJsonError } from '@storybook/core/server-errors'; import boxen from 'boxen'; import { logger } from '@storybook/core/node-logger'; diff --git a/code/core/src/cli/bin/index.ts b/code/core/src/cli/bin/index.ts new file mode 100644 index 000000000000..512dc963924b --- /dev/null +++ b/code/core/src/cli/bin/index.ts @@ -0,0 +1,143 @@ +import program from 'commander'; +import chalk from 'chalk'; +import leven from 'leven'; +import { findPackageSync } from 'fd-package-json'; +import invariant from 'tiny-invariant'; + +import { logger } from '@storybook/core/node-logger'; +import { addToGlobalContext } from '@storybook/core/telemetry'; +import { parseList, getEnvConfig, versions } from '@storybook/core/common'; + +import { dev } from '../dev'; +import { build } from '../build'; + +addToGlobalContext('cliVersion', versions.storybook); + +const pkg = findPackageSync(__dirname); +invariant(pkg, 'Failed to find the closest package.json file.'); +const consoleLogger = console; + +const command = (name: string) => + program + .command(name) + .option( + '--disable-telemetry', + 'Disable sending telemetry data', + // default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true + process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false' + ) + .option('--debug', 'Get more logs in debug mode', false) + .option('--enable-crash-reports', 'Enable sending crash reports to telemetry data'); + +command('dev') + .option('-p, --port ', 'Port to run Storybook', (str) => parseInt(str, 10)) + .option('-h, --host ', 'Host to run Storybook') + .option('-c, --config-dir ', 'Directory where to load Storybook configurations from') + .option( + '--https', + 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.' + ) + .option( + '--ssl-ca ', + 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)', + parseList + ) + .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)') + .option('--ssl-key ', 'Provide an SSL key. (Required with --https)') + .option('--smoke-test', 'Exit after successful start') + .option('--ci', "CI mode (skip interactive prompts, don't open browser)") + .option('--no-open', 'Do not open Storybook automatically in the browser') + .option('--loglevel ', 'Control level of logging during build') + .option('--quiet', 'Suppress verbose build output') + .option('--no-version-updates', 'Suppress update check', true) + .option('--debug-webpack', 'Display final webpack configurations for debugging purposes') + .option( + '--webpack-stats-json [directory]', + 'Write Webpack stats JSON to disk (synonym for `--stats-json`)' + ) + .option('--stats-json [directory]', 'Write stats JSON to disk') + .option( + '--preview-url ', + 'Disables the default storybook preview and lets your use your own' + ) + .option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url') + .option('--docs', 'Build a documentation-only site using addon-docs') + .option('--exact-port', 'Exit early if the desired port is not available') + .option( + '--initial-path [path]', + 'URL path to be appended when visiting Storybook for the first time' + ) + .action(async (options) => { + logger.setLevel(program.loglevel); + consoleLogger.log(chalk.bold(`${pkg.name} v${pkg.version}`) + chalk.reset('\n')); + + // The key is the field created in `options` variable for + // each command line argument. Value is the env variable. + getEnvConfig(options, { + port: 'SBCONFIG_PORT', + host: 'SBCONFIG_HOSTNAME', + staticDir: 'SBCONFIG_STATIC_DIR', + configDir: 'SBCONFIG_CONFIG_DIR', + ci: 'CI', + }); + + if (parseInt(`${options.port}`, 10)) { + options.port = parseInt(`${options.port}`, 10); + } + + await dev({ ...options, packageJson: pkg }).catch(() => process.exit(1)); + }); + +command('build') + .option('-o, --output-dir ', 'Directory where to store built files') + .option('-c, --config-dir ', 'Directory where to load Storybook configurations from') + .option('--quiet', 'Suppress verbose build output') + .option('--loglevel ', 'Control level of logging during build') + .option('--debug-webpack', 'Display final webpack configurations for debugging purposes') + .option( + '--webpack-stats-json [directory]', + 'Write Webpack stats JSON to disk (synonym for `--stats-json`)' + ) + .option('--stats-json [directory]', 'Write stats JSON to disk') + .option( + '--preview-url ', + 'Disables the default storybook preview and lets your use your own' + ) + .option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url') + .option('--docs', 'Build a documentation-only site using addon-docs') + .option('--test', 'Build stories optimized for testing purposes.') + .action(async (options) => { + process.env.NODE_ENV = process.env.NODE_ENV || 'production'; + logger.setLevel(program.loglevel); + consoleLogger.log(chalk.bold(`${pkg.name} v${pkg.version}\n`)); + + // The key is the field created in `options` variable for + // each command line argument. Value is the env variable. + getEnvConfig(options, { + staticDir: 'SBCONFIG_STATIC_DIR', + outputDir: 'SBCONFIG_OUTPUT_DIR', + configDir: 'SBCONFIG_CONFIG_DIR', + }); + + await build({ + ...options, + packageJson: pkg, + test: !!options.test || process.env.SB_TESTBUILD === 'true', + }).catch(() => process.exit(1)); + }); + +program.on('command:*', ([invalidCmd]) => { + consoleLogger.error( + ' Invalid command: %s.\n See --help for a list of available commands.', + invalidCmd + ); + // eslint-disable-next-line no-underscore-dangle + const availableCommands = program.commands.map((cmd) => cmd._name); + const suggestion = availableCommands.find((cmd) => leven(cmd, invalidCmd) < 3); + if (suggestion) { + consoleLogger.info(`\n Did you mean ${suggestion}?`); + } + process.exit(1); +}); + +program.usage(' [options]').version(String(pkg.version)).parse(process.argv); diff --git a/code/lib/cli/src/build.ts b/code/core/src/cli/build.ts similarity index 100% rename from code/lib/cli/src/build.ts rename to code/core/src/cli/build.ts diff --git a/code/lib/cli/src/detect.test.ts b/code/core/src/cli/detect.test.ts similarity index 100% rename from code/lib/cli/src/detect.test.ts rename to code/core/src/cli/detect.test.ts diff --git a/code/lib/cli/src/detect.ts b/code/core/src/cli/detect.ts similarity index 97% rename from code/lib/cli/src/detect.ts rename to code/core/src/cli/detect.ts index 440336f74bb8..83b90237aa9b 100644 --- a/code/lib/cli/src/detect.ts +++ b/code/core/src/cli/detect.ts @@ -1,5 +1,5 @@ import * as fs from 'fs'; -import findUp from 'find-up'; +import { findUpSync } from 'find-up'; import semver from 'semver'; import { logger } from '@storybook/core/node-logger'; @@ -110,8 +110,8 @@ export function detectFrameworkPreset( * @returns CoreBuilder */ export async function detectBuilder(packageManager: JsPackageManager, projectType: ProjectType) { - const viteConfig = findUp.sync(viteConfigFiles); - const webpackConfig = findUp.sync(webpackConfigFiles); + const viteConfig = findUpSync(viteConfigFiles); + const webpackConfig = findUpSync(webpackConfigFiles); const dependencies = await packageManager.getAllDependencies(); if (viteConfig || (dependencies.vite && dependencies.webpack === undefined)) { @@ -161,7 +161,7 @@ export function isStorybookInstantiated(configDir = resolve(process.cwd(), '.sto } export async function detectPnp() { - return !!findUp.sync(['.pnp.js', '.pnp.cjs']); + return !!findUpSync(['.pnp.js', '.pnp.cjs']); } export async function detectLanguage(packageManager: JsPackageManager) { diff --git a/code/lib/cli/src/dev.ts b/code/core/src/cli/dev.ts similarity index 100% rename from code/lib/cli/src/dev.ts rename to code/core/src/cli/dev.ts diff --git a/code/lib/cli/src/dirs.ts b/code/core/src/cli/dirs.ts similarity index 88% rename from code/lib/cli/src/dirs.ts rename to code/core/src/cli/dirs.ts index 32f31f6ecadb..88515e6b6683 100644 --- a/code/lib/cli/src/dirs.ts +++ b/code/core/src/cli/dirs.ts @@ -7,16 +7,11 @@ import invariant from 'tiny-invariant'; import { externalFrameworks } from './project_types'; import type { SupportedRenderers } from './project_types'; import type { JsPackageManager } from '@storybook/core/common'; -import { versions } from '@storybook/core/common'; +import { temporaryDirectory, versions } from '@storybook/core/common'; import type { SupportedFrameworks } from '@storybook/core/types'; -export function getCliDir() { - return dirname(require.resolve('storybook/package.json')); -} - const resolveUsingBranchInstall = async (packageManager: JsPackageManager, request: string) => { - const { temporaryDirectory } = await import('tempy'); - const tempDirectory = temporaryDirectory(); + const tempDirectory = await temporaryDirectory(); const name = request as keyof typeof versions; // FIXME: this might not be the right version for community packages diff --git a/code/lib/cli/src/automigrate/helpers/eslintPlugin.test.ts b/code/core/src/cli/eslintPlugin.test.ts similarity index 100% rename from code/lib/cli/src/automigrate/helpers/eslintPlugin.test.ts rename to code/core/src/cli/eslintPlugin.test.ts diff --git a/code/lib/cli/src/automigrate/helpers/eslintPlugin.ts b/code/core/src/cli/eslintPlugin.ts similarity index 97% rename from code/lib/cli/src/automigrate/helpers/eslintPlugin.ts rename to code/core/src/cli/eslintPlugin.ts index 8544b64be5b0..75fcaa96bb4c 100644 --- a/code/lib/cli/src/automigrate/helpers/eslintPlugin.ts +++ b/code/core/src/cli/eslintPlugin.ts @@ -7,6 +7,7 @@ import chalk from 'chalk'; import { readConfig, writeConfig } from '@storybook/core/csf-tools'; import type { JsPackageManager } from '@storybook/core/common'; import { paddedLog } from '@storybook/core/common'; +import fs from 'node:fs'; export const SUPPORTED_ESLINT_EXTENSIONS = ['js', 'cjs', 'json']; const UNSUPPORTED_ESLINT_EXTENSIONS = ['yaml', 'yml']; @@ -14,7 +15,7 @@ const UNSUPPORTED_ESLINT_EXTENSIONS = ['yaml', 'yml']; export const findEslintFile = () => { const filePrefix = '.eslintrc'; const unsupportedExtension = UNSUPPORTED_ESLINT_EXTENSIONS.find((ext: string) => - fse.existsSync(`${filePrefix}.${ext}`) + fs.existsSync(`${filePrefix}.${ext}`) ); if (unsupportedExtension) { @@ -22,7 +23,7 @@ export const findEslintFile = () => { } const extension = SUPPORTED_ESLINT_EXTENSIONS.find((ext: string) => - fse.existsSync(`${filePrefix}.${ext}`) + fs.existsSync(`${filePrefix}.${ext}`) ); return extension ? `${filePrefix}.${extension}` : null; }; diff --git a/code/lib/cli/src/helpers.test.ts b/code/core/src/cli/helpers.test.ts similarity index 97% rename from code/lib/cli/src/helpers.test.ts rename to code/core/src/cli/helpers.test.ts index 1edbf8a0adb7..9464c8551a9f 100644 --- a/code/lib/cli/src/helpers.test.ts +++ b/code/core/src/cli/helpers.test.ts @@ -38,7 +38,6 @@ vi.mock('fs', async (importOriginal) => { vi.mock('./dirs', () => ({ getRendererDir: (_: JsPackageManager, renderer: string) => normalizePath(`@storybook/${renderer}`), - getCliDir: () => normalizePath('storybook'), })); vi.mock('fs-extra', async (importOriginal) => { @@ -123,11 +122,12 @@ describe('Helpers', () => { renderer: 'react', language, packageManager: packageManagerMock, + commonAssetsDir: normalizePath('create-storybook/rendererAssets/common'), }); expect(fse.copy).toHaveBeenNthCalledWith( 1, - normalizePath('storybook/rendererAssets/common'), + normalizePath('create-storybook/rendererAssets/common'), './stories', expect.anything() ); diff --git a/code/lib/cli/src/helpers.ts b/code/core/src/cli/helpers.ts similarity index 95% rename from code/lib/cli/src/helpers.ts rename to code/core/src/cli/helpers.ts index f2256e11c2b8..e0af5f76af9f 100644 --- a/code/lib/cli/src/helpers.ts +++ b/code/core/src/cli/helpers.ts @@ -5,9 +5,9 @@ import path, { join } from 'path'; import { coerce, satisfies } from 'semver'; import stripJsonComments from 'strip-json-comments'; -import findUp from 'find-up'; +import { findUpSync } from 'find-up'; import invariant from 'tiny-invariant'; -import { getCliDir, getRendererDir } from './dirs'; +import { getRendererDir } from './dirs'; import { type JsPackageManager, type PackageJson, @@ -15,8 +15,7 @@ import { frameworkToRenderer as CoreFrameworkToRenderer, } from '@storybook/core/common'; import type { SupportedFrameworks, SupportedRenderers } from '@storybook/core/types'; -import { CoreBuilder } from './project_types'; -import { SupportedLanguage } from './project_types'; +import { CoreBuilder, SupportedLanguage } from './project_types'; import { versions as storybookMonorepoPackages } from '@storybook/core/common'; const logger = console; @@ -128,7 +127,7 @@ type CopyTemplateFilesOptions = { packageManager: JsPackageManager; renderer: SupportedFrameworks | SupportedRenderers; language: SupportedLanguage; - includeCommonAssets?: boolean; + commonAssetsDir?: string; destination?: string; }; @@ -164,7 +163,7 @@ export async function copyTemplateFiles({ renderer, language, destination, - includeCommonAssets = true, + commonAssetsDir, }: CopyTemplateFilesOptions) { const languageFolderMapping: Record = { // keeping this for backwards compatibility in case community packages are using it @@ -213,14 +212,14 @@ export async function copyTemplateFiles({ }; const destinationPath = destination ?? (await targetPath()); - if (includeCommonAssets) { - await fse.copy(join(getCliDir(), 'rendererAssets', 'common'), destinationPath, { + if (commonAssetsDir) { + await fse.copy(commonAssetsDir, destinationPath, { overwrite: true, }); } await fse.copy(await templatePath(), destinationPath, { overwrite: true }); - if (includeCommonAssets) { + if (commonAssetsDir) { let rendererType = frameworkToRenderer[renderer] || 'react'; // This is only used for docs links and the docs site uses `vue` for both `vue` & `vue3` renderers if (rendererType === 'vue3') rendererType = 'vue'; @@ -260,7 +259,7 @@ export function getStorybookVersionSpecifier(packageJson: PackageJsonWithDepsAnd } export async function isNxProject() { - return findUp.sync('nx.json'); + return findUpSync('nx.json'); } export function coerceSemver(version: string) { diff --git a/code/core/src/cli/index.ts b/code/core/src/cli/index.ts new file mode 100644 index 000000000000..c99751ac2c1b --- /dev/null +++ b/code/core/src/cli/index.ts @@ -0,0 +1,7 @@ +export * from './detect'; +export * from './helpers'; +export * from './angular/helpers'; +export * from './dirs'; +export * from './project_types'; +export * from './NpmOptions'; +export * from './eslintPlugin'; diff --git a/code/lib/cli/src/project_types.test.ts b/code/core/src/cli/project_types.test.ts similarity index 100% rename from code/lib/cli/src/project_types.test.ts rename to code/core/src/cli/project_types.test.ts diff --git a/code/lib/cli/src/project_types.ts b/code/core/src/cli/project_types.ts similarity index 100% rename from code/lib/cli/src/project_types.ts rename to code/core/src/cli/project_types.ts diff --git a/code/core/src/common/js-package-manager/NPMProxy.ts b/code/core/src/common/js-package-manager/NPMProxy.ts index d4d711915925..3cdadeb17ff3 100644 --- a/code/core/src/common/js-package-manager/NPMProxy.ts +++ b/code/core/src/common/js-package-manager/NPMProxy.ts @@ -1,4 +1,4 @@ -import sort from 'semver/functions/sort'; +import sort from 'semver/functions/sort.js'; import { platform } from 'os'; import dedent from 'ts-dedent'; import { findUpSync } from 'find-up'; diff --git a/code/core/src/common/versions.ts b/code/core/src/common/versions.ts index 192f2dbea6fc..aa838eab79cc 100644 --- a/code/core/src/common/versions.ts +++ b/code/core/src/common/versions.ts @@ -1,84 +1,85 @@ // auto generated file, do not edit export default { - '@storybook/addon-a11y': '8.3.0-alpha.3', - '@storybook/addon-actions': '8.3.0-alpha.3', - '@storybook/addon-backgrounds': '8.3.0-alpha.3', - '@storybook/addon-controls': '8.3.0-alpha.3', - '@storybook/addon-docs': '8.3.0-alpha.3', - '@storybook/addon-essentials': '8.3.0-alpha.3', - '@storybook/addon-mdx-gfm': '8.3.0-alpha.3', - '@storybook/addon-highlight': '8.3.0-alpha.3', - '@storybook/addon-interactions': '8.3.0-alpha.3', - '@storybook/addon-jest': '8.3.0-alpha.3', - '@storybook/addon-links': '8.3.0-alpha.3', - '@storybook/addon-measure': '8.3.0-alpha.3', - '@storybook/addon-onboarding': '8.3.0-alpha.3', - '@storybook/addon-outline': '8.3.0-alpha.3', - '@storybook/addon-storysource': '8.3.0-alpha.3', - '@storybook/addon-themes': '8.3.0-alpha.3', - '@storybook/addon-toolbars': '8.3.0-alpha.3', - '@storybook/addon-viewport': '8.3.0-alpha.3', - '@storybook/builder-vite': '8.3.0-alpha.3', - '@storybook/builder-webpack5': '8.3.0-alpha.3', - '@storybook/core': '8.3.0-alpha.3', - '@storybook/builder-manager': '8.3.0-alpha.3', - '@storybook/channels': '8.3.0-alpha.3', - '@storybook/client-logger': '8.3.0-alpha.3', - '@storybook/components': '8.3.0-alpha.3', - '@storybook/core-common': '8.3.0-alpha.3', - '@storybook/core-events': '8.3.0-alpha.3', - '@storybook/core-server': '8.3.0-alpha.3', - '@storybook/csf-tools': '8.3.0-alpha.3', - '@storybook/docs-tools': '8.3.0-alpha.3', - '@storybook/manager': '8.3.0-alpha.3', - '@storybook/manager-api': '8.3.0-alpha.3', - '@storybook/node-logger': '8.3.0-alpha.3', - '@storybook/preview': '8.3.0-alpha.3', - '@storybook/preview-api': '8.3.0-alpha.3', - '@storybook/router': '8.3.0-alpha.3', - '@storybook/telemetry': '8.3.0-alpha.3', - '@storybook/theming': '8.3.0-alpha.3', - '@storybook/types': '8.3.0-alpha.3', - '@storybook/angular': '8.3.0-alpha.3', - '@storybook/ember': '8.3.0-alpha.3', - '@storybook/html-vite': '8.3.0-alpha.3', - '@storybook/html-webpack5': '8.3.0-alpha.3', - '@storybook/nextjs': '8.3.0-alpha.3', - '@storybook/preact-vite': '8.3.0-alpha.3', - '@storybook/preact-webpack5': '8.3.0-alpha.3', - '@storybook/react-vite': '8.3.0-alpha.3', - '@storybook/react-webpack5': '8.3.0-alpha.3', - '@storybook/server-webpack5': '8.3.0-alpha.3', - '@storybook/svelte-vite': '8.3.0-alpha.3', - '@storybook/svelte-webpack5': '8.3.0-alpha.3', - '@storybook/sveltekit': '8.3.0-alpha.3', - '@storybook/vue3-vite': '8.3.0-alpha.3', - '@storybook/vue3-webpack5': '8.3.0-alpha.3', - '@storybook/web-components-vite': '8.3.0-alpha.3', - '@storybook/web-components-webpack5': '8.3.0-alpha.3', - '@storybook/blocks': '8.3.0-alpha.3', - storybook: '8.3.0-alpha.3', - sb: '8.3.0-alpha.3', - '@storybook/cli': '8.3.0-alpha.3', - '@storybook/codemod': '8.3.0-alpha.3', - '@storybook/core-webpack': '8.3.0-alpha.3', - '@storybook/csf-plugin': '8.3.0-alpha.3', - '@storybook/instrumenter': '8.3.0-alpha.3', - '@storybook/react-dom-shim': '8.3.0-alpha.3', - '@storybook/source-loader': '8.3.0-alpha.3', - '@storybook/test': '8.3.0-alpha.3', - '@storybook/preset-create-react-app': '8.3.0-alpha.3', - '@storybook/preset-html-webpack': '8.3.0-alpha.3', - '@storybook/preset-preact-webpack': '8.3.0-alpha.3', - '@storybook/preset-react-webpack': '8.3.0-alpha.3', - '@storybook/preset-server-webpack': '8.3.0-alpha.3', - '@storybook/preset-svelte-webpack': '8.3.0-alpha.3', - '@storybook/preset-vue3-webpack': '8.3.0-alpha.3', - '@storybook/html': '8.3.0-alpha.3', - '@storybook/preact': '8.3.0-alpha.3', - '@storybook/react': '8.3.0-alpha.3', - '@storybook/server': '8.3.0-alpha.3', - '@storybook/svelte': '8.3.0-alpha.3', - '@storybook/vue3': '8.3.0-alpha.3', - '@storybook/web-components': '8.3.0-alpha.3', + '@storybook/addon-a11y': '8.3.0-alpha.4', + '@storybook/addon-actions': '8.3.0-alpha.4', + '@storybook/addon-backgrounds': '8.3.0-alpha.4', + '@storybook/addon-controls': '8.3.0-alpha.4', + '@storybook/addon-docs': '8.3.0-alpha.4', + '@storybook/addon-essentials': '8.3.0-alpha.4', + '@storybook/addon-mdx-gfm': '8.3.0-alpha.4', + '@storybook/addon-highlight': '8.3.0-alpha.4', + '@storybook/addon-interactions': '8.3.0-alpha.4', + '@storybook/addon-jest': '8.3.0-alpha.4', + '@storybook/addon-links': '8.3.0-alpha.4', + '@storybook/addon-measure': '8.3.0-alpha.4', + '@storybook/addon-onboarding': '8.3.0-alpha.4', + '@storybook/addon-outline': '8.3.0-alpha.4', + '@storybook/addon-storysource': '8.3.0-alpha.4', + '@storybook/addon-themes': '8.3.0-alpha.4', + '@storybook/addon-toolbars': '8.3.0-alpha.4', + '@storybook/addon-viewport': '8.3.0-alpha.4', + '@storybook/builder-vite': '8.3.0-alpha.4', + '@storybook/builder-webpack5': '8.3.0-alpha.4', + '@storybook/core': '8.3.0-alpha.4', + '@storybook/builder-manager': '8.3.0-alpha.4', + '@storybook/channels': '8.3.0-alpha.4', + '@storybook/client-logger': '8.3.0-alpha.4', + '@storybook/components': '8.3.0-alpha.4', + '@storybook/core-common': '8.3.0-alpha.4', + '@storybook/core-events': '8.3.0-alpha.4', + '@storybook/core-server': '8.3.0-alpha.4', + '@storybook/csf-tools': '8.3.0-alpha.4', + '@storybook/docs-tools': '8.3.0-alpha.4', + '@storybook/manager': '8.3.0-alpha.4', + '@storybook/manager-api': '8.3.0-alpha.4', + '@storybook/node-logger': '8.3.0-alpha.4', + '@storybook/preview': '8.3.0-alpha.4', + '@storybook/preview-api': '8.3.0-alpha.4', + '@storybook/router': '8.3.0-alpha.4', + '@storybook/telemetry': '8.3.0-alpha.4', + '@storybook/theming': '8.3.0-alpha.4', + '@storybook/types': '8.3.0-alpha.4', + '@storybook/angular': '8.3.0-alpha.4', + '@storybook/ember': '8.3.0-alpha.4', + '@storybook/html-vite': '8.3.0-alpha.4', + '@storybook/html-webpack5': '8.3.0-alpha.4', + '@storybook/nextjs': '8.3.0-alpha.4', + '@storybook/preact-vite': '8.3.0-alpha.4', + '@storybook/preact-webpack5': '8.3.0-alpha.4', + '@storybook/react-vite': '8.3.0-alpha.4', + '@storybook/react-webpack5': '8.3.0-alpha.4', + '@storybook/server-webpack5': '8.3.0-alpha.4', + '@storybook/svelte-vite': '8.3.0-alpha.4', + '@storybook/svelte-webpack5': '8.3.0-alpha.4', + '@storybook/sveltekit': '8.3.0-alpha.4', + '@storybook/vue3-vite': '8.3.0-alpha.4', + '@storybook/vue3-webpack5': '8.3.0-alpha.4', + '@storybook/web-components-vite': '8.3.0-alpha.4', + '@storybook/web-components-webpack5': '8.3.0-alpha.4', + '@storybook/blocks': '8.3.0-alpha.4', + storybook: '8.3.0-alpha.4', + sb: '8.3.0-alpha.4', + '@storybook/cli': '8.3.0-alpha.4', + '@storybook/codemod': '8.3.0-alpha.4', + '@storybook/core-webpack': '8.3.0-alpha.4', + 'create-storybook': '8.3.0-alpha.4', + '@storybook/csf-plugin': '8.3.0-alpha.4', + '@storybook/instrumenter': '8.3.0-alpha.4', + '@storybook/react-dom-shim': '8.3.0-alpha.4', + '@storybook/source-loader': '8.3.0-alpha.4', + '@storybook/test': '8.3.0-alpha.4', + '@storybook/preset-create-react-app': '8.3.0-alpha.4', + '@storybook/preset-html-webpack': '8.3.0-alpha.4', + '@storybook/preset-preact-webpack': '8.3.0-alpha.4', + '@storybook/preset-react-webpack': '8.3.0-alpha.4', + '@storybook/preset-server-webpack': '8.3.0-alpha.4', + '@storybook/preset-svelte-webpack': '8.3.0-alpha.4', + '@storybook/preset-vue3-webpack': '8.3.0-alpha.4', + '@storybook/html': '8.3.0-alpha.4', + '@storybook/preact': '8.3.0-alpha.4', + '@storybook/react': '8.3.0-alpha.4', + '@storybook/server': '8.3.0-alpha.4', + '@storybook/svelte': '8.3.0-alpha.4', + '@storybook/vue3': '8.3.0-alpha.4', + '@storybook/web-components': '8.3.0-alpha.4', }; diff --git a/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts b/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts index df43ed0d7738..a921f4ba3645 100644 --- a/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts +++ b/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts @@ -2,7 +2,7 @@ import { logger } from '@storybook/core/node-logger'; import { getIncompatibleStorybookPackages, getIncompatiblePackagesSummary, -} from '../../../../lib/cli/src/doctor/getIncompatibleStorybookPackages'; +} from '../../../../lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages'; export const warnOnIncompatibleAddons = async (currentStorybookVersion: string) => { const incompatiblePackagesList = await getIncompatibleStorybookPackages({ diff --git a/code/core/src/manager-api/version.ts b/code/core/src/manager-api/version.ts index ed4372bb0a36..03c54c260568 100644 --- a/code/core/src/manager-api/version.ts +++ b/code/core/src/manager-api/version.ts @@ -1 +1 @@ -export const version = '8.3.0-alpha.3'; +export const version = '8.3.0-alpha.4'; diff --git a/code/deprecated/builder-manager/package.json b/code/deprecated/builder-manager/package.json index ff84581e367e..74332f98f9db 100644 --- a/code/deprecated/builder-manager/package.json +++ b/code/deprecated/builder-manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-manager", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook manager builder", "keywords": [ "storybook" diff --git a/code/deprecated/channels/package.json b/code/deprecated/channels/package.json index 096b549584d8..8a818c01a415 100644 --- a/code/deprecated/channels/package.json +++ b/code/deprecated/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/client-logger/package.json b/code/deprecated/client-logger/package.json index b18787153df1..d0bec89f3af4 100644 --- a/code/deprecated/client-logger/package.json +++ b/code/deprecated/client-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-logger", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/components/package.json b/code/deprecated/components/package.json index eee4c335267e..ccd874cf13b9 100644 --- a/code/deprecated/components/package.json +++ b/code/deprecated/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/deprecated/core-common/package.json b/code/deprecated/core-common/package.json index 482f932b0061..8c22da2ef1ae 100644 --- a/code/deprecated/core-common/package.json +++ b/code/deprecated/core-common/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-common", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/core-events/package.json b/code/deprecated/core-events/package.json index 99c003d64c39..e667c9224053 100644 --- a/code/deprecated/core-events/package.json +++ b/code/deprecated/core-events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-events", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Event names used in storybook core", "keywords": [ "storybook" diff --git a/code/deprecated/core-server/package.json b/code/deprecated/core-server/package.json index ea58cbda9bd9..216aedca7f7a 100644 --- a/code/deprecated/core-server/package.json +++ b/code/deprecated/core-server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-server", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/csf-tools/package.json b/code/deprecated/csf-tools/package.json index a5ef9276f1ef..6f2bc53cbf77 100644 --- a/code/deprecated/csf-tools/package.json +++ b/code/deprecated/csf-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-tools", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Parse and manipulate CSF and Storybook config files", "keywords": [ "storybook" diff --git a/code/deprecated/docs-tools/package.json b/code/deprecated/docs-tools/package.json index 7b20d939a63c..720df725e668 100644 --- a/code/deprecated/docs-tools/package.json +++ b/code/deprecated/docs-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/docs-tools", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Shared utility functions for frameworks to implement docs", "keywords": [ "storybook" diff --git a/code/deprecated/manager-api/package.json b/code/deprecated/manager-api/package.json index f33b97f9f6ea..ac7f9577a1ab 100644 --- a/code/deprecated/manager-api/package.json +++ b/code/deprecated/manager-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager-api", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Core Storybook Manager API & Context", "keywords": [ "storybook" diff --git a/code/deprecated/manager/package.json b/code/deprecated/manager/package.json index b6e2c1d9e8c5..f09bdc0f725f 100644 --- a/code/deprecated/manager/package.json +++ b/code/deprecated/manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Core Storybook UI", "keywords": [ "storybook" diff --git a/code/deprecated/node-logger/package.json b/code/deprecated/node-logger/package.json index e2d5ca29789c..f62fbfcc15e5 100644 --- a/code/deprecated/node-logger/package.json +++ b/code/deprecated/node-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/node-logger", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/preview-api/package.json b/code/deprecated/preview-api/package.json index fa2d1ad01a00..11a58852dd75 100644 --- a/code/deprecated/preview-api/package.json +++ b/code/deprecated/preview-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-api", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/preview/package.json b/code/deprecated/preview/package.json index cf802594d9f1..3c1bf6c75438 100644 --- a/code/deprecated/preview/package.json +++ b/code/deprecated/preview/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/router/package.json b/code/deprecated/router/package.json index 2cbbc87731f2..582d0baf5b29 100644 --- a/code/deprecated/router/package.json +++ b/code/deprecated/router/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/router", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Core Storybook Router", "keywords": [ "storybook" diff --git a/code/deprecated/telemetry/package.json b/code/deprecated/telemetry/package.json index e79f220fa977..fc25bc4c6d1b 100644 --- a/code/deprecated/telemetry/package.json +++ b/code/deprecated/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/telemetry", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Telemetry logging for crash reports and usage statistics", "keywords": [ "storybook" diff --git a/code/deprecated/theming/package.json b/code/deprecated/theming/package.json index 4add71e71604..d21e5f81cb7a 100644 --- a/code/deprecated/theming/package.json +++ b/code/deprecated/theming/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/theming", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/deprecated/types/package.json b/code/deprecated/types/package.json index b108bc447490..32919fabe6d5 100644 --- a/code/deprecated/types/package.json +++ b/code/deprecated/types/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/types", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Core Storybook TS Types", "keywords": [ "storybook" diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 469df3aeea60..626603fdf343 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/angular", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.", "keywords": [ "storybook", diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index ff1c439e9a2d..234680cf64b4 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ember", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember", "bugs": { diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index 4dbbeec3250a..bca46d639a80 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index a53d38c3ebe0..f56806e5f6bf 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index fcccded98449..41867909afb6 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/nextjs", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Next.js", "keywords": [ "storybook", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index 5947cf6ff9aa..483dc21e9063 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 21fcff654d1a..9a623c3de8fc 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 67b0bb4f2ffd..eea8e373693f 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index d19e31a74bf2..d1fb43d5e3d3 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index f995893a118c..1cec9c4e8da2 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 885ba4b3bc00..40f581f95349 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 0c3690be70ee..9a4a5d3b6919 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index eb64f5a04d08..436902293880 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/sveltekit", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for SvelteKit", "keywords": [ "storybook", diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 5daf642b3dac..2a60b476f447 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 849f0b1e9d8a..0f5f46096a56 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 319e5b1a5821..81d467ca3b19 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 09766fee60ca..c94085c35fae 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-webpack5", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/lib/blocks/package.json b/code/lib/blocks/package.json index 230590524b11..2c2c56b2c339 100644 --- a/code/lib/blocks/package.json +++ b/code/lib/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/blocks", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook Doc Blocks", "keywords": [ "storybook" diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index a33326740553..fcd3d2044958 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -1,6 +1,6 @@ { "name": "sb", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli-storybook/.eslintrc.cjs b/code/lib/cli-storybook/.eslintrc.cjs new file mode 100644 index 000000000000..a2dae9fc88d3 --- /dev/null +++ b/code/lib/cli-storybook/.eslintrc.cjs @@ -0,0 +1,36 @@ +const ignore = 0; + +module.exports = { + overrides: [ + { + files: 'templates/**/*', + env: { + browser: true, + }, + rules: { + 'react/no-this-in-sfc': ignore, + 'import/no-unresolved': ignore, + 'react/react-in-jsx-scope': ignore, + 'import/no-extraneous-dependencies': ignore, + 'global-require': ignore, + 'no-redeclare': ignore, + 'react/prop-types': ignore, + }, + }, + { + files: 'rendererAssets/**/*', + env: { + browser: true, + }, + rules: { + 'jsx-a11y/anchor-is-valid': ignore, + 'import/no-unresolved': ignore, + 'react/prop-types': ignore, + 'react/react-in-jsx-scope': ignore, + 'import/no-extraneous-dependencies': ignore, + 'import/extensions': ignore, + 'import/named': ignore, + }, + }, + ], +}; diff --git a/code/lib/cli-storybook/README.md b/code/lib/cli-storybook/README.md index f31715566811..6e3183109f1a 100644 --- a/code/lib/cli-storybook/README.md +++ b/code/lib/cli-storybook/README.md @@ -1,3 +1,49 @@ -# Storybook CLI +# Storybook -This is a wrapper for +## CLI + +Storybook CLI (_Command Line Interface_) is the easiest way to add [Storybook](https://github.com/storybookjs/storybook) to your project. + +![Screenshot](docs/getstorybook.png) + +Go to your project and run: + +```sh +cd my-app +npx storybook@latest init +``` + +In addition to `init`, the CLI also has other commands: + +- `add` - add an addon and register it +- `info` - print out system information for bug reports +- `upgrade` - upgrade to the latest version of Storybook (or a specific version) +- `migrate` - run codemods to migrate your code + +See the command-line help with `-h` (including other useful commands) for details. + +## Core APIs + +This package has multiple sub-exports to can be used to gain access to storybook's APIs. + +### `storybook/components` + +This export contains a list of components very useful for building out addons. +We recommend addon-authors to use these components to ensure a consistent look and feel, and to reduce the amount of code they need to write. + +### `storybook/theming` + +This export exposes a few utility functions to help writing components that automatically adapt to the current theme. +Useful for addon authors who want to make their addons theme-aware. + +### `storybook/preview-api` + +This export contains the API that is available in the preview iframe. + +### `storybook/manager-api` + +This export contains the API that is available in the manager iframe. + +### `storybook/types` + +This export exposes a lot of TypeScript interfaces used throughout storybook, including for storybook configuration, addons etc. diff --git a/code/lib/cli-storybook/bin/index.cjs b/code/lib/cli-storybook/bin/index.cjs new file mode 100755 index 000000000000..ce13973e4eb9 --- /dev/null +++ b/code/lib/cli-storybook/bin/index.cjs @@ -0,0 +1,26 @@ +#!/usr/bin/env node + +const majorNodeVersion = parseInt(process.versions.node, 10); +if (majorNodeVersion < 18) { + console.error('To run Storybook you need to have Node.js 18 or higher'); + process.exit(1); +} + +// The Storybook CLI has a catch block for all of its commands, but if an error +// occurs before the command even runs, for instance, if an import fails, then +// such error will fall under the uncaughtException handler. +// This is the earliest moment we can catch such errors. +process.once('uncaughtException', (error) => { + if (error.message.includes('string-width')) { + console.error( + [ + '🔴 Error: It looks like you are having a known issue with package hoisting.', + 'Please check the following issue for details and solutions: https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092\n\n', + ].join('\n') + ); + } + + throw error; +}); + +require('../dist/bin/index.cjs'); diff --git a/code/lib/cli-storybook/index.js b/code/lib/cli-storybook/index.js deleted file mode 100755 index 7cb4855dc32f..000000000000 --- a/code/lib/cli-storybook/index.js +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('storybook/bin/index.cjs'); diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index b4bb73aee593..81454d1c71ec 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook CLI", "keywords": [ "storybook" @@ -19,15 +19,66 @@ "url": "https://opencollective.com/storybook" }, "license": "MIT", - "bin": { - "sb": "./index.js", - "storybook": "./index.js" + "author": "Storybook Team", + "type": "module", + "exports": { + "./bin/index.cjs": { + "node": "./bin/index.cjs", + "require": "./bin/index.cjs" + }, + "./package.json": "./package.json" + }, + "bin": "./bin/index.cjs", + "files": [ + "bin/**/*", + "dist/**/*", + "README.md", + "!src/**/*" + ], + "scripts": { + "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", + "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "storybook": "workspace:*" + "@babel/core": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/codemod": "workspace:*", + "@types/semver": "^7.3.4", + "chalk": "^4.1.0", + "commander": "^6.2.1", + "create-storybook": "workspace:*", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fd-package-json": "^1.2.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "giget": "^1.0.0", + "globby": "^14.0.1", + "jscodeshift": "^0.15.1", + "leven": "^3.1.0", + "prompts": "^2.4.0", + "semver": "^7.3.7", + "storybook": "workspace:*", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" + }, + "devDependencies": { + "@types/cross-spawn": "^6.0.2", + "@types/prompts": "^2.0.9", + "boxen": "^7.1.1", + "slash": "^5.0.0", + "strip-ansi": "^7.1.0", + "typescript": "^5.3.2" }, "publishConfig": { "access": "public" }, + "bundler": { + "entries": [ + "./src/index.ts", + "./src/bin/index.ts" + ], + "platform": "node" + }, "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16" } diff --git a/code/lib/cli-storybook/project.json b/code/lib/cli-storybook/project.json index 1327b61e5ba4..229b547bb854 100644 --- a/code/lib/cli-storybook/project.json +++ b/code/lib/cli-storybook/project.json @@ -2,5 +2,7 @@ "name": "cli-storybook", "$schema": "../../node_modules/nx/schemas/project-schema.json", "projectType": "library", - "targets": {} + "targets": { + "build": {} + } } diff --git a/code/lib/cli/src/add.test.ts b/code/lib/cli-storybook/src/add.test.ts similarity index 98% rename from code/lib/cli/src/add.test.ts rename to code/lib/cli-storybook/src/add.test.ts index fc0f0c5105ab..c2436982c521 100644 --- a/code/lib/cli/src/add.test.ts +++ b/code/lib/cli-storybook/src/add.test.ts @@ -25,7 +25,7 @@ const MockedConsole = { error: vi.fn(), } as any as Console; -vi.mock('@storybook/core/csf-tools', () => { +vi.mock('storybook/internal/csf-tools', () => { return { readConfig: vi.fn(() => MockedConfig), writeConfig: vi.fn(), @@ -34,7 +34,7 @@ vi.mock('@storybook/core/csf-tools', () => { vi.mock('./postinstallAddon', () => { return MockedPostInstall; }); -vi.mock('@storybook/core/common', () => { +vi.mock('storybook/internal/common', () => { return { getStorybookInfo: vi.fn(() => ({ mainConfig: {}, configDir: '' })), serverRequire: vi.fn(() => ({})), diff --git a/code/lib/cli/src/add.ts b/code/lib/cli-storybook/src/add.ts similarity index 97% rename from code/lib/cli/src/add.ts rename to code/lib/cli-storybook/src/add.ts index 14994d62afcf..11a14d8e0dfb 100644 --- a/code/lib/cli/src/add.ts +++ b/code/lib/cli-storybook/src/add.ts @@ -5,8 +5,8 @@ import { getCoercedStorybookVersion, type PackageManagerName, versions, -} from '@storybook/core/common'; -import { readConfig, writeConfig } from '@storybook/core/csf-tools'; +} from 'storybook/internal/common'; +import { readConfig, writeConfig } from 'storybook/internal/csf-tools'; import { isAbsolute, join } from 'path'; import SemVer from 'semver'; import { dedent } from 'ts-dedent'; diff --git a/code/lib/cli/src/autoblock/block-dependencies-versions.ts b/code/lib/cli-storybook/src/autoblock/block-dependencies-versions.ts similarity index 100% rename from code/lib/cli/src/autoblock/block-dependencies-versions.ts rename to code/lib/cli-storybook/src/autoblock/block-dependencies-versions.ts diff --git a/code/lib/cli/src/autoblock/block-node-version.ts b/code/lib/cli-storybook/src/autoblock/block-node-version.ts similarity index 100% rename from code/lib/cli/src/autoblock/block-node-version.ts rename to code/lib/cli-storybook/src/autoblock/block-node-version.ts diff --git a/code/lib/cli/src/autoblock/block-storystorev6.ts b/code/lib/cli-storybook/src/autoblock/block-storystorev6.ts similarity index 94% rename from code/lib/cli/src/autoblock/block-storystorev6.ts rename to code/lib/cli-storybook/src/autoblock/block-storystorev6.ts index 819d2adb8dcc..261b3dd0e5fd 100644 --- a/code/lib/cli/src/autoblock/block-storystorev6.ts +++ b/code/lib/cli-storybook/src/autoblock/block-storystorev6.ts @@ -1,6 +1,6 @@ import { createBlocker } from './types'; import { dedent } from 'ts-dedent'; -import type { StorybookConfigRaw } from '@storybook/core/types'; +import type { StorybookConfigRaw } from 'storybook/internal/types'; import chalk from 'chalk'; export const blocker = createBlocker({ diff --git a/code/lib/cli/src/autoblock/index.test.ts b/code/lib/cli-storybook/src/autoblock/index.test.ts similarity index 94% rename from code/lib/cli/src/autoblock/index.test.ts rename to code/lib/cli-storybook/src/autoblock/index.test.ts index a59263b8491d..8a7361f451ce 100644 --- a/code/lib/cli/src/autoblock/index.test.ts +++ b/code/lib/cli-storybook/src/autoblock/index.test.ts @@ -1,8 +1,8 @@ import { expect, test, vi } from 'vitest'; import { autoblock } from './index'; -import { JsPackageManagerFactory } from '@storybook/core/common'; +import { JsPackageManagerFactory } from 'storybook/internal/common'; import { createBlocker } from './types'; -import { logger as loggerRaw } from '@storybook/core/node-logger'; +import { logger as loggerRaw } from 'storybook/internal/node-logger'; import stripAnsi from 'strip-ansi'; vi.mock('node:fs/promises', async (importOriginal) => ({ @@ -12,7 +12,7 @@ vi.mock('node:fs/promises', async (importOriginal) => ({ vi.mock('boxen', () => ({ default: vi.fn((x) => x), })); -vi.mock('@storybook/core/node-logger', () => ({ +vi.mock('storybook/internal/node-logger', () => ({ logger: { info: vi.fn(), line: vi.fn(), diff --git a/code/lib/cli/src/autoblock/index.ts b/code/lib/cli-storybook/src/autoblock/index.ts similarity index 97% rename from code/lib/cli/src/autoblock/index.ts rename to code/lib/cli-storybook/src/autoblock/index.ts index 961de58dca25..adb2232932c4 100644 --- a/code/lib/cli/src/autoblock/index.ts +++ b/code/lib/cli-storybook/src/autoblock/index.ts @@ -1,5 +1,5 @@ import type { AutoblockOptions, Blocker } from './types'; -import { logger } from '@storybook/core/node-logger'; +import { logger } from 'storybook/internal/node-logger'; import chalk from 'chalk'; import boxen from 'boxen'; diff --git a/code/lib/cli/src/autoblock/types.ts b/code/lib/cli-storybook/src/autoblock/types.ts similarity index 84% rename from code/lib/cli/src/autoblock/types.ts rename to code/lib/cli-storybook/src/autoblock/types.ts index a3e7fe12da36..916af12818b8 100644 --- a/code/lib/cli/src/autoblock/types.ts +++ b/code/lib/cli-storybook/src/autoblock/types.ts @@ -1,5 +1,5 @@ -import type { JsPackageManager, PackageJson } from '@storybook/core/common'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { JsPackageManager, PackageJson } from 'storybook/internal/common'; +import type { StorybookConfig } from 'storybook/internal/types'; export interface AutoblockOptions { packageManager: JsPackageManager; diff --git a/code/lib/cli/src/automigrate/fixes/__test__/main-config-with-wrappers.js b/code/lib/cli-storybook/src/automigrate/fixes/__test__/main-config-with-wrappers.js similarity index 100% rename from code/lib/cli/src/automigrate/fixes/__test__/main-config-with-wrappers.js rename to code/lib/cli-storybook/src/automigrate/fixes/__test__/main-config-with-wrappers.js diff --git a/code/lib/cli/src/automigrate/fixes/__test__/main-config-without-wrappers.js b/code/lib/cli-storybook/src/automigrate/fixes/__test__/main-config-without-wrappers.js similarity index 100% rename from code/lib/cli/src/automigrate/fixes/__test__/main-config-without-wrappers.js rename to code/lib/cli-storybook/src/automigrate/fixes/__test__/main-config-without-wrappers.js diff --git a/code/lib/cli/src/automigrate/fixes/addon-postcss.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/addon-postcss.test.ts similarity index 88% rename from code/lib/cli/src/automigrate/fixes/addon-postcss.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/addon-postcss.test.ts index 88ce6039e8b9..ec54fe573286 100644 --- a/code/lib/cli/src/automigrate/fixes/addon-postcss.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/addon-postcss.test.ts @@ -1,6 +1,6 @@ import { addonPostCSS } from './addon-postcss'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { expect, describe, it } from 'vitest'; const checkAddonPostCSS = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/addon-postcss.ts b/code/lib/cli-storybook/src/automigrate/fixes/addon-postcss.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/addon-postcss.ts rename to code/lib/cli-storybook/src/automigrate/fixes/addon-postcss.ts diff --git a/code/lib/cli/src/automigrate/fixes/addons-api.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/addons-api.test.ts similarity index 89% rename from code/lib/cli/src/automigrate/fixes/addons-api.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/addons-api.test.ts index 0709a27dbfcb..3aebd02efd0f 100644 --- a/code/lib/cli/src/automigrate/fixes/addons-api.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/addons-api.test.ts @@ -1,6 +1,6 @@ import { addonsAPI } from './addons-api'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { expect, describe, it } from 'vitest'; const checkAddonsAPI = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/addons-api.ts b/code/lib/cli-storybook/src/automigrate/fixes/addons-api.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/addons-api.ts rename to code/lib/cli-storybook/src/automigrate/fixes/addons-api.ts diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders-multiproject.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders-multiproject.test.ts similarity index 85% rename from code/lib/cli/src/automigrate/fixes/angular-builders-multiproject.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/angular-builders-multiproject.test.ts index 6ecf6a6a12de..f48c01bdd5bd 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders-multiproject.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders-multiproject.test.ts @@ -1,9 +1,8 @@ import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { angularBuildersMultiproject } from './angular-builders-multiproject'; -import * as helpers from '../../helpers'; -import * as angularHelpers from '../../generators/ANGULAR/helpers'; +import * as helpers from 'storybook/internal/cli'; const checkAngularBuilders = async ({ packageManager, @@ -19,13 +18,9 @@ const checkAngularBuilders = async ({ }); }; -vi.mock('../../helpers', async (importOriginal) => ({ - ...(await importOriginal()), +vi.mock('storybook/internal/cli', async (importOriginal) => ({ + ...(await importOriginal()), isNxProject: vi.fn(), -})); - -vi.mock('../../generators/ANGULAR/helpers', async (importOriginal) => ({ - ...(await importOriginal()), AngularJSON: vi.fn(), })); @@ -100,7 +95,7 @@ describe('is not Nx project', () => { describe('has one Storybook builder defined', () => { beforeEach(() => { // Mock AngularJSON.constructor - vi.mocked(angularHelpers.AngularJSON).mockImplementation( + vi.mocked(helpers.AngularJSON).mockImplementation( () => ({ hasStorybookBuilder: true, @@ -121,7 +116,7 @@ describe('is not Nx project', () => { describe('has one project', () => { beforeEach(() => { // Mock AngularJSON.constructor - vi.mocked(angularHelpers.AngularJSON).mockImplementation( + vi.mocked(helpers.AngularJSON).mockImplementation( () => ({ hasStorybookBuilder: false, @@ -146,7 +141,7 @@ describe('is not Nx project', () => { describe('has multiple projects without root project defined', () => { beforeEach(() => { // Mock AngularJSON.constructor - vi.mocked(angularHelpers.AngularJSON).mockImplementation( + vi.mocked(helpers.AngularJSON).mockImplementation( () => ({ hasStorybookBuilder: false, diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders-multiproject.ts b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders-multiproject.ts similarity index 94% rename from code/lib/cli/src/automigrate/fixes/angular-builders-multiproject.ts rename to code/lib/cli-storybook/src/automigrate/fixes/angular-builders-multiproject.ts index 3f72411be011..e9a728d4ac83 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders-multiproject.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders-multiproject.ts @@ -2,8 +2,7 @@ import { dedent } from 'ts-dedent'; import semver from 'semver'; import chalk from 'chalk'; import type { Fix } from '../types'; -import { isNxProject } from '../../helpers'; -import { AngularJSON } from '../../generators/ANGULAR/helpers'; +import { isNxProject, AngularJSON } from 'storybook/internal/cli'; import { getFrameworkPackageName } from '../helpers/mainConfigFile'; interface AngularBuildersMultiprojectRunOptions {} diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders.test.ts similarity index 84% rename from code/lib/cli/src/automigrate/fixes/angular-builders.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/angular-builders.test.ts index 689e0ea24dff..a1dc26f8cb3b 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders.test.ts @@ -1,9 +1,8 @@ import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { angularBuilders } from './angular-builders'; -import * as helpers from '../../helpers'; -import * as angularHelpers from '../../generators/ANGULAR/helpers'; -import type { JsPackageManager } from '@storybook/core/common'; +import * as helpers from 'storybook/internal/cli'; +import type { JsPackageManager } from 'storybook/internal/common'; const checkAngularBuilders = async ({ packageManager, @@ -21,13 +20,9 @@ const checkAngularBuilders = async ({ }); }; -vi.mock('../../helpers', async (importOriginal) => ({ - ...(await importOriginal()), +vi.mock('storybook/internal/cli', async (importOriginal) => ({ + ...(await importOriginal()), isNxProject: vi.fn(), -})); - -vi.mock('../../generators/ANGULAR/helpers', async (importOriginal) => ({ - ...(await importOriginal()), AngularJSON: vi.fn(), })); @@ -85,7 +80,7 @@ describe('is not Nx project', () => { describe('has one Storybook builder defined', () => { beforeEach(() => { // Mock AngularJSON.constructor - vi.mocked(angularHelpers.AngularJSON).mockImplementation( + vi.mocked(helpers.AngularJSON).mockImplementation( () => ({ hasStorybookBuilder: true, @@ -106,7 +101,7 @@ describe('is not Nx project', () => { describe('has multiple projects without root project defined', () => { beforeEach(() => { // Mock AngularJSON.constructor - vi.mocked(angularHelpers.AngularJSON).mockImplementation( + vi.mocked(helpers.AngularJSON).mockImplementation( () => ({ hasStorybookBuilder: false, @@ -132,7 +127,7 @@ describe('is not Nx project', () => { describe('has one project', () => { beforeEach(() => { // Mock AngularJSON.constructor - vi.mocked(angularHelpers.AngularJSON).mockImplementation( + vi.mocked(helpers.AngularJSON).mockImplementation( () => ({ hasStorybookBuilder: false, diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders.ts b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders.ts similarity index 92% rename from code/lib/cli/src/automigrate/fixes/angular-builders.ts rename to code/lib/cli-storybook/src/automigrate/fixes/angular-builders.ts index e1cc9f5d953a..583ce3a20457 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/angular-builders.ts @@ -1,11 +1,10 @@ import { dedent } from 'ts-dedent'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import chalk from 'chalk'; import prompts from 'prompts'; import type { Fix } from '../types'; -import { isNxProject } from '../../helpers'; -import { AngularJSON } from '../../generators/ANGULAR/helpers'; -import type { JsPackageManager } from '@storybook/core/common'; +import { isNxProject, AngularJSON } from 'storybook/internal/cli'; +import type { JsPackageManager } from 'storybook/internal/common'; import { getFrameworkPackageName } from '../helpers/mainConfigFile'; interface AngularBuildersRunOptions { diff --git a/code/lib/cli/src/automigrate/fixes/autodocs-tags.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-tags.test.ts similarity index 95% rename from code/lib/cli/src/automigrate/fixes/autodocs-tags.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/autodocs-tags.test.ts index 799fb14c40f6..144679757e2f 100644 --- a/code/lib/cli/src/automigrate/fixes/autodocs-tags.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-tags.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { autodocsTags } from './autodocs-tags'; const check = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/autodocs-tags.ts b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-tags.ts similarity index 95% rename from code/lib/cli/src/automigrate/fixes/autodocs-tags.ts rename to code/lib/cli-storybook/src/automigrate/fixes/autodocs-tags.ts index b2c83ee23eea..cff6f104ac58 100644 --- a/code/lib/cli/src/automigrate/fixes/autodocs-tags.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-tags.ts @@ -1,7 +1,7 @@ import { dedent } from 'ts-dedent'; import chalk from 'chalk'; -import type { DocsOptions } from '@storybook/core/types'; -import { readConfig, writeConfig } from '@storybook/core/csf-tools'; +import type { DocsOptions } from 'storybook/internal/types'; +import { readConfig, writeConfig } from 'storybook/internal/csf-tools'; import { updateMainConfig } from '../helpers/mainConfigFile'; import type { Fix } from '../types'; diff --git a/code/lib/cli/src/automigrate/fixes/autodocs-true.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-true.test.ts similarity index 94% rename from code/lib/cli/src/automigrate/fixes/autodocs-true.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/autodocs-true.test.ts index 246cb8e00a50..427a12111fb2 100644 --- a/code/lib/cli/src/automigrate/fixes/autodocs-true.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-true.test.ts @@ -1,5 +1,5 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfigRaw, PackageJson } from '@storybook/core/types'; +import type { StorybookConfigRaw, PackageJson } from 'storybook/internal/types'; import { makePackageManager } from '../helpers/testing-helpers'; import { autodocsTrue } from './autodocs-true'; diff --git a/code/lib/cli/src/automigrate/fixes/autodocs-true.ts b/code/lib/cli-storybook/src/automigrate/fixes/autodocs-true.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/autodocs-true.ts rename to code/lib/cli-storybook/src/automigrate/fixes/autodocs-true.ts diff --git a/code/lib/cli/src/automigrate/fixes/builder-vite.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/builder-vite.test.ts similarity index 95% rename from code/lib/cli/src/automigrate/fixes/builder-vite.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/builder-vite.test.ts index 48b48b43de55..4c15622d2212 100644 --- a/code/lib/cli/src/automigrate/fixes/builder-vite.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/builder-vite.test.ts @@ -1,5 +1,5 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfigRaw, PackageJson } from '@storybook/core/types'; +import type { StorybookConfigRaw, PackageJson } from 'storybook/internal/types'; import { makePackageManager } from '../helpers/testing-helpers'; import { builderVite } from './builder-vite'; diff --git a/code/lib/cli/src/automigrate/fixes/builder-vite.ts b/code/lib/cli-storybook/src/automigrate/fixes/builder-vite.ts similarity index 93% rename from code/lib/cli/src/automigrate/fixes/builder-vite.ts rename to code/lib/cli-storybook/src/automigrate/fixes/builder-vite.ts index 5170bb6ff077..f6daefed62ec 100644 --- a/code/lib/cli/src/automigrate/fixes/builder-vite.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/builder-vite.ts @@ -1,12 +1,12 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; -import { writeConfig } from '@storybook/core/csf-tools'; +import { writeConfig } from 'storybook/internal/csf-tools'; import type { Fix } from '../types'; -import type { PackageJson } from '@storybook/core/types'; +import type { PackageJson } from 'storybook/internal/types'; import { updateMainConfig } from '../helpers/mainConfigFile'; -import { getStorybookVersionSpecifier } from '../../helpers'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; const logger = console; diff --git a/code/lib/cli/src/automigrate/fixes/cra5.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/cra5.test.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/cra5.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/cra5.test.ts index 5b7ad1efa9dd..5acfb4b59d2b 100644 --- a/code/lib/cli/src/automigrate/fixes/cra5.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/cra5.test.ts @@ -1,6 +1,6 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfigRaw } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfigRaw } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { cra5 } from './cra5'; const checkCra5 = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/cra5.ts b/code/lib/cli-storybook/src/automigrate/fixes/cra5.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/cra5.ts rename to code/lib/cli-storybook/src/automigrate/fixes/cra5.ts diff --git a/code/lib/cli/src/automigrate/fixes/eslint-plugin.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/eslint-plugin.test.ts similarity index 95% rename from code/lib/cli/src/automigrate/fixes/eslint-plugin.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/eslint-plugin.test.ts index 7677dccccb47..28dadb9a9cbf 100644 --- a/code/lib/cli/src/automigrate/fixes/eslint-plugin.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/eslint-plugin.test.ts @@ -2,11 +2,13 @@ import { describe, it, expect, vi } from 'vitest'; import { dedent } from 'ts-dedent'; import * as fsExtra from 'fs-extra'; -import type { PackageJson } from '@storybook/core/common'; +import type { PackageJson } from 'storybook/internal/common'; import { eslintPlugin } from './eslint-plugin'; import { makePackageManager } from '../helpers/testing-helpers'; +import * as fs from 'node:fs'; vi.mock('fs-extra', async () => import('../../../../../__mocks__/fs-extra')); +vi.mock('fs'); const checkEslint = async ({ packageJson, @@ -39,6 +41,7 @@ const checkEslint = async ({ } `), }); + vi.mocked(fs).existsSync.mockImplementation(() => true); return eslintPlugin.check({ packageManager: makePackageManager(packageJson), mainConfig: {} as any, diff --git a/code/lib/cli/src/automigrate/fixes/eslint-plugin.ts b/code/lib/cli-storybook/src/automigrate/fixes/eslint-plugin.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/eslint-plugin.ts rename to code/lib/cli-storybook/src/automigrate/fixes/eslint-plugin.ts index de81e08008d8..4eb2d09cbcc9 100644 --- a/code/lib/cli/src/automigrate/fixes/eslint-plugin.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/eslint-plugin.ts @@ -6,7 +6,7 @@ import { extractEslintInfo, findEslintFile, SUPPORTED_ESLINT_EXTENSIONS, -} from '../helpers/eslintPlugin'; +} from 'storybook/internal/cli'; import type { Fix } from '../types'; diff --git a/code/lib/cli/src/automigrate/fixes/index.ts b/code/lib/cli-storybook/src/automigrate/fixes/index.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/index.ts rename to code/lib/cli-storybook/src/automigrate/fixes/index.ts diff --git a/code/lib/cli/src/automigrate/fixes/initial-globals.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.test.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/initial-globals.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/initial-globals.test.ts diff --git a/code/lib/cli/src/automigrate/fixes/initial-globals.ts b/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts similarity index 92% rename from code/lib/cli/src/automigrate/fixes/initial-globals.ts rename to code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts index 0e1e71867350..b629bccaa6b1 100644 --- a/code/lib/cli/src/automigrate/fixes/initial-globals.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts @@ -2,8 +2,8 @@ import { dedent } from 'ts-dedent'; import chalk from 'chalk'; import { readFile, writeFile } from 'fs-extra'; import type { Expression } from '@babel/types'; -import type { ConfigFile } from '@storybook/core/csf-tools'; -import { loadConfig, formatConfig } from '@storybook/core/csf-tools'; +import type { ConfigFile } from 'storybook/internal/csf-tools'; +import { loadConfig, formatConfig } from 'storybook/internal/csf-tools'; import type { Fix } from '../types'; const MIGRATION = diff --git a/code/lib/cli/src/automigrate/fixes/mdx-1-to-3.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/mdx-1-to-3.test.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/mdx-1-to-3.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/mdx-1-to-3.test.ts diff --git a/code/lib/cli/src/automigrate/fixes/mdx-1-to-3.ts b/code/lib/cli-storybook/src/automigrate/fixes/mdx-1-to-3.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/mdx-1-to-3.ts rename to code/lib/cli-storybook/src/automigrate/fixes/mdx-1-to-3.ts diff --git a/code/lib/cli/src/automigrate/fixes/mdx-gfm.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/mdx-gfm.test.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/mdx-gfm.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/mdx-gfm.test.ts index 45b504ea01e2..5c00a0ce70d2 100644 --- a/code/lib/cli/src/automigrate/fixes/mdx-gfm.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/mdx-gfm.test.ts @@ -1,5 +1,5 @@ import { describe, expect, vi, it } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { mdxgfm } from './mdx-gfm'; vi.mock('globby', () => ({ diff --git a/code/lib/cli/src/automigrate/fixes/mdx-gfm.ts b/code/lib/cli-storybook/src/automigrate/fixes/mdx-gfm.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/mdx-gfm.ts rename to code/lib/cli-storybook/src/automigrate/fixes/mdx-gfm.ts index 6ddb801156ff..d65159dede4c 100644 --- a/code/lib/cli/src/automigrate/fixes/mdx-gfm.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/mdx-gfm.ts @@ -1,10 +1,10 @@ import { dedent } from 'ts-dedent'; import { join } from 'path'; import slash from 'slash'; -import { commonGlobOptions } from '@storybook/core/common'; +import { commonGlobOptions } from 'storybook/internal/common'; import { updateMainConfig } from '../helpers/mainConfigFile'; import type { Fix } from '../types'; -import { getStorybookVersionSpecifier } from '../../helpers'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; const logger = console; diff --git a/code/lib/cli/src/automigrate/fixes/mdx-to-csf.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/mdx-to-csf.test.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/mdx-to-csf.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/mdx-to-csf.test.ts index 2bf27c5eba2e..03cfa2f941b5 100644 --- a/code/lib/cli/src/automigrate/fixes/mdx-to-csf.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/mdx-to-csf.test.ts @@ -1,6 +1,6 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfigRaw, PackageJson } from '@storybook/core/types'; +import type { StorybookConfigRaw, PackageJson } from 'storybook/internal/types'; import { ansiRegex } from '../helpers/cleanLog'; import { makePackageManager } from '../helpers/testing-helpers'; import type { BareMdxStoriesGlobRunOptions } from './mdx-to-csf'; diff --git a/code/lib/cli/src/automigrate/fixes/mdx-to-csf.ts b/code/lib/cli-storybook/src/automigrate/fixes/mdx-to-csf.ts similarity index 99% rename from code/lib/cli/src/automigrate/fixes/mdx-to-csf.ts rename to code/lib/cli-storybook/src/automigrate/fixes/mdx-to-csf.ts index 230167d6d32c..dfffb66f21ef 100644 --- a/code/lib/cli/src/automigrate/fixes/mdx-to-csf.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/mdx-to-csf.ts @@ -1,6 +1,6 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; -import type { StoriesEntry } from '@storybook/core/types'; +import type { StoriesEntry } from 'storybook/internal/types'; import { updateMainConfig } from '../helpers/mainConfigFile'; import type { Fix } from '../types'; import { runCodemod } from '@storybook/codemod'; diff --git a/code/lib/cli/src/automigrate/fixes/missing-storybook-dependencies.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/missing-storybook-dependencies.test.ts similarity index 91% rename from code/lib/cli/src/automigrate/fixes/missing-storybook-dependencies.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/missing-storybook-dependencies.test.ts index 52f0e42d8ff0..14b07e905dee 100644 --- a/code/lib/cli/src/automigrate/fixes/missing-storybook-dependencies.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/missing-storybook-dependencies.test.ts @@ -9,9 +9,11 @@ vi.mock('globby', () => ({ globby: vi.fn().mockResolvedValue(['.storybook/manager.ts', 'path/to/file.stories.tsx']), })); -vi.mock('node:fs/promises', () => ({ - __esModule: true, - readFile: vi.fn().mockResolvedValue(` +vi.mock('node:fs/promises', async (importOriginal) => { + const original = (await importOriginal()) as typeof import('node:fs/promises'); + return { + ...original, + readFile: vi.fn().mockResolvedValue(` // these are NOT installed, will be reported import { someFunction } from '@storybook/preview-api'; import { anotherFunction } from '@storybook/manager-api'; @@ -19,7 +21,8 @@ vi.mock('node:fs/promises', () => ({ // this IS installed, will not be reported import { yetAnotherFunction } from '@storybook/theming'; `), -})); + }; +}); vi.mock('../../helpers', () => ({ getStorybookVersionSpecifier: vi.fn().mockReturnValue('^8.1.10'), @@ -111,12 +114,12 @@ describe('missingStorybookDependencies', () => { expect(mockPackageManager.addDependencies).toHaveBeenNthCalledWith( 1, { installAsDevDependencies: true }, - ['@storybook/preview-api@8.1.10', '@storybook/manager-api@8.1.10'] + ['@storybook/preview-api@8.1.0', '@storybook/manager-api@8.1.0'] ); expect(mockPackageManager.addDependencies).toHaveBeenNthCalledWith( 2, { installAsDevDependencies: true, skipInstall: true, packageJson: expect.anything() }, - ['@storybook/preview-api@^8.1.10', '@storybook/manager-api@^8.1.10'] + ['@storybook/preview-api@8.1.0', '@storybook/manager-api@8.1.0'] ); }); }); diff --git a/code/lib/cli/src/automigrate/fixes/missing-storybook-dependencies.ts b/code/lib/cli-storybook/src/automigrate/fixes/missing-storybook-dependencies.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/missing-storybook-dependencies.ts rename to code/lib/cli-storybook/src/automigrate/fixes/missing-storybook-dependencies.ts index cdc9bf0fe505..0907339f90d6 100644 --- a/code/lib/cli/src/automigrate/fixes/missing-storybook-dependencies.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/missing-storybook-dependencies.ts @@ -3,7 +3,7 @@ import { readFile } from 'node:fs/promises'; import { dedent } from 'ts-dedent'; import type { Fix } from '../types'; -import { getStorybookVersionSpecifier } from '../../helpers'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; import type { InstallationMetadata, JsPackageManager } from '@storybook/core/common'; const logger = console; diff --git a/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/new-frameworks.test.ts similarity index 99% rename from code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/new-frameworks.test.ts index f1f260230306..50e67cc402e6 100644 --- a/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/new-frameworks.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import * as findUp from 'find-up'; import * as rendererHelpers from '../helpers/detectRenderer'; import { newFrameworks } from './new-frameworks'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; vi.mock('find-up'); vi.mock('../helpers/detectRenderer', async (importOriginal) => ({ diff --git a/code/lib/cli/src/automigrate/fixes/new-frameworks.ts b/code/lib/cli-storybook/src/automigrate/fixes/new-frameworks.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/new-frameworks.ts rename to code/lib/cli-storybook/src/automigrate/fixes/new-frameworks.ts index f8beb1cdd89d..f96ff7bd5e10 100644 --- a/code/lib/cli/src/automigrate/fixes/new-frameworks.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/new-frameworks.ts @@ -1,12 +1,12 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; import semver from 'semver'; -import { frameworkPackages, rendererPackages } from '@storybook/core/common'; +import { frameworkPackages, rendererPackages } from 'storybook/internal/common'; -import type { Preset } from '@storybook/core/types'; +import type { Preset } from 'storybook/internal/types'; import invariant from 'tiny-invariant'; import type { Fix } from '../types'; -import { getStorybookVersionSpecifier } from '../../helpers'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; import { getNextjsAddonOptions, detectBuilderInfo, diff --git a/code/lib/cli/src/automigrate/fixes/prompt-remove-react.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/prompt-remove-react.test.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/prompt-remove-react.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/prompt-remove-react.test.ts index 363917ff68c0..bbfbbf7ea4c3 100644 --- a/code/lib/cli/src/automigrate/fixes/prompt-remove-react.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/prompt-remove-react.test.ts @@ -1,8 +1,8 @@ import { vi, describe, it, expect } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { glob } from 'glob'; import { removeReactDependency } from './prompt-remove-react'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; const check = async ({ packageManagerContent, diff --git a/code/lib/cli/src/automigrate/fixes/prompt-remove-react.ts b/code/lib/cli-storybook/src/automigrate/fixes/prompt-remove-react.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/prompt-remove-react.ts rename to code/lib/cli-storybook/src/automigrate/fixes/prompt-remove-react.ts diff --git a/code/lib/cli/src/automigrate/fixes/react-docgen.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/react-docgen.test.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/react-docgen.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/react-docgen.test.ts index 98f90c0ea3ef..be963b347d98 100644 --- a/code/lib/cli/src/automigrate/fixes/react-docgen.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/react-docgen.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { reactDocgen } from './react-docgen'; const check = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/react-docgen.ts b/code/lib/cli-storybook/src/automigrate/fixes/react-docgen.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/react-docgen.ts rename to code/lib/cli-storybook/src/automigrate/fixes/react-docgen.ts diff --git a/code/lib/cli/src/automigrate/fixes/remove-argtypes-regex.ts b/code/lib/cli-storybook/src/automigrate/fixes/remove-argtypes-regex.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/remove-argtypes-regex.ts rename to code/lib/cli-storybook/src/automigrate/fixes/remove-argtypes-regex.ts index 5c0fd4447d04..fc2e4087e72e 100644 --- a/code/lib/cli/src/automigrate/fixes/remove-argtypes-regex.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/remove-argtypes-regex.ts @@ -2,7 +2,7 @@ import type { Fix } from '../types'; import * as fs from 'node:fs/promises'; import * as babel from '@babel/core'; import type { BabelFile, NodePath } from '@babel/core'; -import { babelParse } from '@storybook/core/csf-tools'; +import { babelParse } from 'storybook/internal/csf-tools'; import { dedent } from 'ts-dedent'; import chalk from 'chalk'; diff --git a/code/lib/cli/src/automigrate/fixes/remove-global-client-apis.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/remove-global-client-apis.test.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/remove-global-client-apis.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/remove-global-client-apis.test.ts index fad5cf017903..20c94de4f2bb 100644 --- a/code/lib/cli/src/automigrate/fixes/remove-global-client-apis.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/remove-global-client-apis.test.ts @@ -3,7 +3,7 @@ import { describe, it, expect, vi } from 'vitest'; import path from 'path'; import * as fsExtra from 'fs-extra'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; import { RemovedAPIs, removedGlobalClientAPIs as migration } from './remove-global-client-apis'; vi.mock('fs-extra', async () => import('../../../../../__mocks__/fs-extra')); diff --git a/code/lib/cli/src/automigrate/fixes/remove-global-client-apis.ts b/code/lib/cli-storybook/src/automigrate/fixes/remove-global-client-apis.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/remove-global-client-apis.ts rename to code/lib/cli-storybook/src/automigrate/fixes/remove-global-client-apis.ts diff --git a/code/lib/cli/src/automigrate/fixes/remove-jest-testing-library.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/remove-jest-testing-library.test.ts similarity index 92% rename from code/lib/cli/src/automigrate/fixes/remove-jest-testing-library.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/remove-jest-testing-library.test.ts index 5613f5d0e06e..7f95a5f05494 100644 --- a/code/lib/cli/src/automigrate/fixes/remove-jest-testing-library.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/remove-jest-testing-library.test.ts @@ -1,7 +1,7 @@ import { expect, it } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { removeJestTestingLibrary } from './remove-jest-testing-library'; import ansiRegex from 'ansi-regex'; diff --git a/code/lib/cli/src/automigrate/fixes/remove-jest-testing-library.ts b/code/lib/cli-storybook/src/automigrate/fixes/remove-jest-testing-library.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/remove-jest-testing-library.ts rename to code/lib/cli-storybook/src/automigrate/fixes/remove-jest-testing-library.ts index ef8c610749d4..15ae8d08f01a 100644 --- a/code/lib/cli/src/automigrate/fixes/remove-jest-testing-library.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/remove-jest-testing-library.ts @@ -1,7 +1,7 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; import type { Fix } from '../types'; -import { getStorybookVersionSpecifier } from '../../helpers'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; import { runCodemod } from '@storybook/codemod'; import prompts from 'prompts'; diff --git a/code/lib/cli/src/automigrate/fixes/remove-legacymdx1.ts b/code/lib/cli-storybook/src/automigrate/fixes/remove-legacymdx1.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/remove-legacymdx1.ts rename to code/lib/cli-storybook/src/automigrate/fixes/remove-legacymdx1.ts index dc26e16e34de..b19147feaec1 100644 --- a/code/lib/cli/src/automigrate/fixes/remove-legacymdx1.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/remove-legacymdx1.ts @@ -1,6 +1,6 @@ import { dedent } from 'ts-dedent'; -import { writeConfig } from '@storybook/core/csf-tools'; +import { writeConfig } from 'storybook/internal/csf-tools'; import type { Fix } from '../types'; import { updateMainConfig } from '../helpers/mainConfigFile'; diff --git a/code/lib/cli/src/automigrate/fixes/sb-binary.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/sb-binary.test.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/sb-binary.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/sb-binary.test.ts index 34df12d717b6..7341656b34db 100644 --- a/code/lib/cli/src/automigrate/fixes/sb-binary.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/sb-binary.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; import { sbBinary } from './sb-binary'; const checkStorybookBinary = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/sb-binary.ts b/code/lib/cli-storybook/src/automigrate/fixes/sb-binary.ts similarity index 94% rename from code/lib/cli/src/automigrate/fixes/sb-binary.ts rename to code/lib/cli-storybook/src/automigrate/fixes/sb-binary.ts index 798655f1e28a..80fd840cc0af 100644 --- a/code/lib/cli/src/automigrate/fixes/sb-binary.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/sb-binary.ts @@ -1,8 +1,8 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; import type { Fix } from '../types'; -import { getStorybookVersionSpecifier } from '../../helpers'; -import type { PackageJsonWithDepsAndDevDeps } from '@storybook/core/common'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; +import type { PackageJsonWithDepsAndDevDeps } from 'storybook/internal/common'; interface SbBinaryRunOptions { storybookVersion: string; diff --git a/code/lib/cli/src/automigrate/fixes/sb-scripts.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/sb-scripts.test.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/sb-scripts.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/sb-scripts.test.ts index 7ac9abae66ae..d9e8f5cfa3d6 100644 --- a/code/lib/cli/src/automigrate/fixes/sb-scripts.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/sb-scripts.test.ts @@ -1,5 +1,5 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; import { getStorybookScripts, sbScripts } from './sb-scripts'; const checkSbScripts = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/sb-scripts.ts b/code/lib/cli-storybook/src/automigrate/fixes/sb-scripts.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/sb-scripts.ts rename to code/lib/cli-storybook/src/automigrate/fixes/sb-scripts.ts index c9a941de206f..91892957b62c 100644 --- a/code/lib/cli/src/automigrate/fixes/sb-scripts.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/sb-scripts.ts @@ -1,9 +1,9 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; import semver from 'semver'; -import type { PackageJson } from '@storybook/core/types'; +import type { PackageJson } from 'storybook/internal/types'; import type { Fix } from '../types'; -import type { PackageJsonWithDepsAndDevDeps } from '@storybook/core/common'; +import type { PackageJsonWithDepsAndDevDeps } from 'storybook/internal/common'; interface SbScriptsRunOptions { storybookScripts: Record; diff --git a/code/lib/cli/src/automigrate/fixes/storyshots-migration.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/storyshots-migration.test.ts similarity index 91% rename from code/lib/cli/src/automigrate/fixes/storyshots-migration.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/storyshots-migration.test.ts index 2f1b0e84e03a..860687d12eef 100644 --- a/code/lib/cli/src/automigrate/fixes/storyshots-migration.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/storyshots-migration.test.ts @@ -1,8 +1,8 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { storyshotsMigration } from './storyshots-migration'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; const check = async ({ packageManager, diff --git a/code/lib/cli/src/automigrate/fixes/storyshots-migration.ts b/code/lib/cli-storybook/src/automigrate/fixes/storyshots-migration.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/storyshots-migration.ts rename to code/lib/cli-storybook/src/automigrate/fixes/storyshots-migration.ts diff --git a/code/lib/cli/src/automigrate/fixes/upgrade-storybook-related-dependencies.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/upgrade-storybook-related-dependencies.test.ts similarity index 95% rename from code/lib/cli/src/automigrate/fixes/upgrade-storybook-related-dependencies.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/upgrade-storybook-related-dependencies.test.ts index cc3671f86c6d..1a5d4182d97e 100644 --- a/code/lib/cli/src/automigrate/fixes/upgrade-storybook-related-dependencies.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/upgrade-storybook-related-dependencies.test.ts @@ -1,6 +1,6 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import * as docsUtils from '../../doctor/getIncompatibleStorybookPackages'; import { upgradeStorybookRelatedDependencies } from './upgrade-storybook-related-dependencies'; diff --git a/code/lib/cli/src/automigrate/fixes/upgrade-storybook-related-dependencies.ts b/code/lib/cli-storybook/src/automigrate/fixes/upgrade-storybook-related-dependencies.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/upgrade-storybook-related-dependencies.ts rename to code/lib/cli-storybook/src/automigrate/fixes/upgrade-storybook-related-dependencies.ts index 5f9daef551b5..bfcba9f4eacc 100644 --- a/code/lib/cli/src/automigrate/fixes/upgrade-storybook-related-dependencies.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/upgrade-storybook-related-dependencies.ts @@ -1,8 +1,8 @@ import { dedent } from 'ts-dedent'; import { cyan, yellow } from 'chalk'; import { gt } from 'semver'; -import type { JsPackageManager } from '@storybook/core/common'; -import { isCorePackage } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; +import { isCorePackage } from 'storybook/internal/common'; import type { Fix } from '../types'; import { getIncompatibleStorybookPackages } from '../../doctor/getIncompatibleStorybookPackages'; diff --git a/code/lib/cli/src/automigrate/fixes/vite-config-file.ts b/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/vite-config-file.ts rename to code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts index a842331eb731..4dfde34c6d0c 100644 --- a/code/lib/cli/src/automigrate/fixes/vite-config-file.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts @@ -2,8 +2,8 @@ import { dedent } from 'ts-dedent'; import type { Fix } from '../types'; import findUp from 'find-up'; import { getFrameworkPackageName } from '../helpers/mainConfigFile'; -import { frameworkToRenderer } from '../../helpers'; -import { frameworkPackages } from '@storybook/core/common'; +import { frameworkToRenderer } from 'storybook/internal/cli'; +import { frameworkPackages } from 'storybook/internal/common'; import path from 'path'; interface ViteConfigFileRunOptions { diff --git a/code/lib/cli/src/automigrate/fixes/vta.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/vta.test.ts similarity index 94% rename from code/lib/cli/src/automigrate/fixes/vta.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/vta.test.ts index ce8a3118b061..4a919db21686 100644 --- a/code/lib/cli/src/automigrate/fixes/vta.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/vta.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; +import type { StorybookConfig } from 'storybook/internal/types'; import { vta } from './vta'; const check = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/vta.ts b/code/lib/cli-storybook/src/automigrate/fixes/vta.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/vta.ts rename to code/lib/cli-storybook/src/automigrate/fixes/vta.ts diff --git a/code/lib/cli/src/automigrate/fixes/vue3.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/vue3.test.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/vue3.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/vue3.test.ts index cb8b2819969a..bdd7382beacb 100644 --- a/code/lib/cli/src/automigrate/fixes/vue3.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/vue3.test.ts @@ -1,6 +1,6 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { vue3 } from './vue3'; const checkVue3 = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/vue3.ts b/code/lib/cli-storybook/src/automigrate/fixes/vue3.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/vue3.ts rename to code/lib/cli-storybook/src/automigrate/fixes/vue3.ts diff --git a/code/lib/cli/src/automigrate/fixes/webpack5-compiler-setup.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/webpack5-compiler-setup.test.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/webpack5-compiler-setup.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/webpack5-compiler-setup.test.ts index e457ccfcc5ba..bd258e10112b 100644 --- a/code/lib/cli/src/automigrate/fixes/webpack5-compiler-setup.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/webpack5-compiler-setup.test.ts @@ -1,8 +1,8 @@ import { vi, describe, it, expect } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { webpack5CompilerSetup } from './webpack5-compiler-setup'; -import { CoreWebpackCompilers } from '../../project_types'; +import { CoreWebpackCompilers } from 'storybook/internal/cli'; const check = async ({ packageManager, diff --git a/code/lib/cli/src/automigrate/fixes/webpack5-compiler-setup.ts b/code/lib/cli-storybook/src/automigrate/fixes/webpack5-compiler-setup.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/webpack5-compiler-setup.ts rename to code/lib/cli-storybook/src/automigrate/fixes/webpack5-compiler-setup.ts index 3b18ded9fbb3..ec466fd5fa62 100644 --- a/code/lib/cli/src/automigrate/fixes/webpack5-compiler-setup.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/webpack5-compiler-setup.ts @@ -1,6 +1,6 @@ import prompts from 'prompts'; -import type { SupportedFrameworks } from '@storybook/core/types'; -import { frameworkPackages } from '@storybook/core/common'; +import type { SupportedFrameworks } from 'storybook/internal/types'; +import { frameworkPackages } from 'storybook/internal/common'; import type { Fix } from '../types'; import { getAddonNames, @@ -9,13 +9,13 @@ import { getFrameworkPackageName, updateMainConfig, } from '../helpers/mainConfigFile'; -import { frameworkToDefaultBuilder } from '../../helpers'; +import { frameworkToDefaultBuilder } from 'storybook/internal/cli'; import { CoreBuilder, CoreWebpackCompilers, builderNameToCoreBuilder, compilerNameToCoreCompiler, -} from '../../project_types'; +} from 'storybook/internal/cli'; import { dedent } from 'ts-dedent'; import chalk from 'chalk'; import { add } from '../../add'; diff --git a/code/lib/cli/src/automigrate/fixes/webpack5.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/webpack5.test.ts similarity index 97% rename from code/lib/cli/src/automigrate/fixes/webpack5.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/webpack5.test.ts index 0155d9cdf9e7..fe4343aaf6c7 100644 --- a/code/lib/cli/src/automigrate/fixes/webpack5.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/webpack5.test.ts @@ -1,6 +1,6 @@ import { describe, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { StorybookConfig } from 'storybook/internal/types'; +import type { JsPackageManager } from 'storybook/internal/common'; import { webpack5 } from './webpack5'; const checkWebpack5 = async ({ diff --git a/code/lib/cli/src/automigrate/fixes/webpack5.ts b/code/lib/cli-storybook/src/automigrate/fixes/webpack5.ts similarity index 100% rename from code/lib/cli/src/automigrate/fixes/webpack5.ts rename to code/lib/cli-storybook/src/automigrate/fixes/webpack5.ts diff --git a/code/lib/cli/src/automigrate/fixes/wrap-require-utils.ts b/code/lib/cli-storybook/src/automigrate/fixes/wrap-require-utils.ts similarity index 98% rename from code/lib/cli/src/automigrate/fixes/wrap-require-utils.ts rename to code/lib/cli-storybook/src/automigrate/fixes/wrap-require-utils.ts index d7c50e804da2..5199cc54ce3a 100644 --- a/code/lib/cli/src/automigrate/fixes/wrap-require-utils.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/wrap-require-utils.ts @@ -1,5 +1,5 @@ import * as t from '@babel/types'; -import type { ConfigFile } from '@storybook/core/csf-tools'; +import type { ConfigFile } from 'storybook/internal/csf-tools'; const defaultRequireWrapperName = 'getAbsolutePath'; diff --git a/code/lib/cli/src/automigrate/fixes/wrap-require.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/wrap-require.test.ts similarity index 92% rename from code/lib/cli/src/automigrate/fixes/wrap-require.test.ts rename to code/lib/cli-storybook/src/automigrate/fixes/wrap-require.test.ts index d35afeaf0e97..b1be414b4c0f 100644 --- a/code/lib/cli/src/automigrate/fixes/wrap-require.test.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/wrap-require.test.ts @@ -1,10 +1,10 @@ import type { MockInstance } from 'vitest'; import { describe, it, expect, vi } from 'vitest'; import { wrapRequire } from './wrap-require'; -import * as detect from '../../detect'; +import * as detect from 'storybook/internal/cli'; -vi.mock('../../detect', async (importOriginal) => ({ - ...(await importOriginal()), +vi.mock('storybook/internal/cli', async (importOriginal) => ({ + ...(await importOriginal()), detectPnp: vi.fn(), })); diff --git a/code/lib/cli/src/automigrate/fixes/wrap-require.ts b/code/lib/cli-storybook/src/automigrate/fixes/wrap-require.ts similarity index 96% rename from code/lib/cli/src/automigrate/fixes/wrap-require.ts rename to code/lib/cli-storybook/src/automigrate/fixes/wrap-require.ts index 0334d4b82f33..30d62b89edd7 100644 --- a/code/lib/cli/src/automigrate/fixes/wrap-require.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/wrap-require.ts @@ -1,8 +1,8 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; -import { readConfig } from '@storybook/core/csf-tools'; +import { readConfig } from 'storybook/internal/csf-tools'; import type { Fix } from '../types'; -import { detectPnp } from '../../detect'; +import { detectPnp } from 'storybook/internal/cli'; import { updateMainConfig } from '../helpers/mainConfigFile'; import { getFieldsForRequireWrapper, diff --git a/code/lib/cli/src/automigrate/helpers/checkWebpack5Builder.test.ts b/code/lib/cli-storybook/src/automigrate/helpers/checkWebpack5Builder.test.ts similarity index 97% rename from code/lib/cli/src/automigrate/helpers/checkWebpack5Builder.test.ts rename to code/lib/cli-storybook/src/automigrate/helpers/checkWebpack5Builder.test.ts index 240e6c4d6386..ad0bbad0a8f9 100644 --- a/code/lib/cli/src/automigrate/helpers/checkWebpack5Builder.test.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/checkWebpack5Builder.test.ts @@ -1,6 +1,6 @@ import type { MockInstance } from 'vitest'; import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; -import type { StorybookConfigRaw } from '@storybook/core/types'; +import type { StorybookConfigRaw } from 'storybook/internal/types'; import { checkWebpack5Builder } from './checkWebpack5Builder'; import { getBuilderPackageName } from './mainConfigFile'; diff --git a/code/lib/cli/src/automigrate/helpers/checkWebpack5Builder.ts b/code/lib/cli-storybook/src/automigrate/helpers/checkWebpack5Builder.ts similarity index 94% rename from code/lib/cli/src/automigrate/helpers/checkWebpack5Builder.ts rename to code/lib/cli-storybook/src/automigrate/helpers/checkWebpack5Builder.ts index fccb7df3dd4b..ad906629e73d 100644 --- a/code/lib/cli/src/automigrate/helpers/checkWebpack5Builder.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/checkWebpack5Builder.ts @@ -1,7 +1,7 @@ import chalk from 'chalk'; import semver from 'semver'; import { dedent } from 'ts-dedent'; -import type { StorybookConfigRaw } from '@storybook/core/types'; +import type { StorybookConfigRaw } from 'storybook/internal/types'; import { getBuilderPackageName } from './mainConfigFile'; const logger = console; diff --git a/code/lib/cli/src/automigrate/helpers/cleanLog.ts b/code/lib/cli-storybook/src/automigrate/helpers/cleanLog.ts similarity index 100% rename from code/lib/cli/src/automigrate/helpers/cleanLog.ts rename to code/lib/cli-storybook/src/automigrate/helpers/cleanLog.ts diff --git a/code/lib/cli/src/automigrate/helpers/detectRenderer.ts b/code/lib/cli-storybook/src/automigrate/helpers/detectRenderer.ts similarity index 90% rename from code/lib/cli/src/automigrate/helpers/detectRenderer.ts rename to code/lib/cli-storybook/src/automigrate/helpers/detectRenderer.ts index 72b6e9b1bdc8..a1f4e7349bd9 100644 --- a/code/lib/cli/src/automigrate/helpers/detectRenderer.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/detectRenderer.ts @@ -1,5 +1,5 @@ -import type { PackageJson } from '@storybook/core/types'; -import { rendererPackages } from '@storybook/core/common'; +import type { PackageJson } from 'storybook/internal/types'; +import { rendererPackages } from 'storybook/internal/common'; import prompts from 'prompts'; export const detectRenderer = async (packageJson: PackageJson) => { diff --git a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts b/code/lib/cli-storybook/src/automigrate/helpers/getMigrationSummary.test.ts similarity index 97% rename from code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts rename to code/lib/cli-storybook/src/automigrate/helpers/getMigrationSummary.test.ts index 437c38086fc6..99e225011329 100644 --- a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/getMigrationSummary.test.ts @@ -1,7 +1,7 @@ import { describe, expect, vi, it } from 'vitest'; import { getMigrationSummary } from './getMigrationSummary'; import { FixStatus } from '../types'; -import type { InstallationMetadata } from '@storybook/core/common'; +import type { InstallationMetadata } from 'storybook/internal/common'; vi.mock('boxen', () => ({ default: vi.fn((str, { title = '' }) => `${title}\n\n${str.replace(/\x1b\[[0-9;]*[mG]/g, '')}`), @@ -26,7 +26,7 @@ describe('getMigrationSummary', () => { const installationMetadata: InstallationMetadata = { duplicatedDependencies: { '@storybook/instrumenter': ['6.0.0', '7.1.0'], - '@storybook/core/common': ['6.0.0', '7.1.0'], + 'storybook/internal/common': ['6.0.0', '7.1.0'], '@storybook/addon-essentials': ['7.0.0', '7.1.0'], }, dependencies: {}, diff --git a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts b/code/lib/cli-storybook/src/automigrate/helpers/getMigrationSummary.ts similarity index 97% rename from code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts rename to code/lib/cli-storybook/src/automigrate/helpers/getMigrationSummary.ts index 84a8e431cc83..1e5f119901e1 100644 --- a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/getMigrationSummary.ts @@ -1,7 +1,7 @@ import chalk from 'chalk'; import boxen from 'boxen'; import { dedent } from 'ts-dedent'; -import { type InstallationMetadata } from '@storybook/core/common'; +import { type InstallationMetadata } from 'storybook/internal/common'; import type { FixSummary } from '../types'; import { FixStatus } from '../types'; diff --git a/code/lib/cli/src/automigrate/helpers/mainConfigFile.test.ts b/code/lib/cli-storybook/src/automigrate/helpers/mainConfigFile.test.ts similarity index 100% rename from code/lib/cli/src/automigrate/helpers/mainConfigFile.test.ts rename to code/lib/cli-storybook/src/automigrate/helpers/mainConfigFile.test.ts diff --git a/code/lib/cli/src/automigrate/helpers/mainConfigFile.ts b/code/lib/cli-storybook/src/automigrate/helpers/mainConfigFile.ts similarity index 93% rename from code/lib/cli/src/automigrate/helpers/mainConfigFile.ts rename to code/lib/cli-storybook/src/automigrate/helpers/mainConfigFile.ts index 05ef4e8aad47..cc58c742a2f3 100644 --- a/code/lib/cli/src/automigrate/helpers/mainConfigFile.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/mainConfigFile.ts @@ -5,16 +5,16 @@ import { frameworkPackages, builderPackages, extractProperFrameworkName, -} from '@storybook/core/common'; -import type { StorybookConfigRaw, StorybookConfig } from '@storybook/core/types'; -import type { ConfigFile } from '@storybook/core/csf-tools'; -import { readConfig, writeConfig as writeConfigFile } from '@storybook/core/csf-tools'; +} from 'storybook/internal/common'; +import type { StorybookConfigRaw, StorybookConfig } from 'storybook/internal/types'; +import type { ConfigFile } from 'storybook/internal/csf-tools'; +import { readConfig, writeConfig as writeConfigFile } from 'storybook/internal/csf-tools'; import chalk from 'chalk'; import { dedent } from 'ts-dedent'; import path from 'path'; -import type { JsPackageManager } from '@storybook/core/common'; -import { getCoercedStorybookVersion } from '@storybook/core/common'; -import { frameworkToRenderer } from '../../helpers'; +import type { JsPackageManager } from 'storybook/internal/common'; +import { getCoercedStorybookVersion } from 'storybook/internal/common'; +import { frameworkToRenderer } from 'storybook/internal/cli'; const logger = console; diff --git a/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.test.ts b/code/lib/cli-storybook/src/automigrate/helpers/new-frameworks-utils.test.ts similarity index 99% rename from code/lib/cli/src/automigrate/helpers/new-frameworks-utils.test.ts rename to code/lib/cli-storybook/src/automigrate/helpers/new-frameworks-utils.test.ts index 090f4da1a8d2..421797768ea9 100644 --- a/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.test.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/new-frameworks-utils.test.ts @@ -4,7 +4,7 @@ import { detectBuilderInfo as _getBuilderInfo, getNextjsAddonOptions, } from './new-frameworks-utils'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; vi.mock('find-up'); diff --git a/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts b/code/lib/cli-storybook/src/automigrate/helpers/new-frameworks-utils.ts similarity index 96% rename from code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts rename to code/lib/cli-storybook/src/automigrate/helpers/new-frameworks-utils.ts index d4d6c832eb66..379fe508b3a0 100644 --- a/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/new-frameworks-utils.ts @@ -1,7 +1,7 @@ -import { frameworkPackages } from '@storybook/core/common'; -import type { Preset, StorybookConfigRaw } from '@storybook/core/types'; +import { frameworkPackages } from 'storybook/internal/common'; +import type { Preset, StorybookConfigRaw } from 'storybook/internal/types'; import findUp from 'find-up'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; import { getBuilderPackageName, getFrameworkPackageName } from './mainConfigFile'; const logger = console; diff --git a/code/lib/cli/src/automigrate/helpers/testing-helpers.ts b/code/lib/cli-storybook/src/automigrate/helpers/testing-helpers.ts similarity index 74% rename from code/lib/cli/src/automigrate/helpers/testing-helpers.ts rename to code/lib/cli-storybook/src/automigrate/helpers/testing-helpers.ts index fd9745555de9..557a8ec721d9 100644 --- a/code/lib/cli/src/automigrate/helpers/testing-helpers.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/testing-helpers.ts @@ -1,13 +1,13 @@ import { vi } from 'vitest'; -import type { JsPackageManager, PackageJson } from '@storybook/core/common'; +import type { JsPackageManager, PackageJson } from 'storybook/internal/common'; vi.mock('./mainConfigFile', async (importOriginal) => ({ ...(await importOriginal()), getStorybookData: vi.fn(), })); -vi.mock('@storybook/core/common', async (importOriginal) => ({ - ...(await importOriginal()), +vi.mock('storybook/internal/common', async (importOriginal) => ({ + ...(await importOriginal()), loadMainConfig: vi.fn(), })); diff --git a/code/lib/cli/src/automigrate/index.test.ts b/code/lib/cli-storybook/src/automigrate/index.test.ts similarity index 96% rename from code/lib/cli/src/automigrate/index.test.ts rename to code/lib/cli-storybook/src/automigrate/index.test.ts index 7e5c7dacfb94..5b2d831312b6 100644 --- a/code/lib/cli/src/automigrate/index.test.ts +++ b/code/lib/cli-storybook/src/automigrate/index.test.ts @@ -37,8 +37,8 @@ const coreCommonMock = vi.hoisted(() => { }; }); -vi.mock('@storybook/core/common', async (importOriginal) => ({ - ...(await importOriginal()), +vi.mock('storybook/internal/common', async (importOriginal) => ({ + ...(await importOriginal()), loadMainConfig: coreCommonMock.loadMainConfig, })); diff --git a/code/lib/cli/src/automigrate/index.ts b/code/lib/cli-storybook/src/automigrate/index.ts similarity index 98% rename from code/lib/cli/src/automigrate/index.ts rename to code/lib/cli-storybook/src/automigrate/index.ts index 809b14995350..29af9a9142d1 100644 --- a/code/lib/cli/src/automigrate/index.ts +++ b/code/lib/cli-storybook/src/automigrate/index.ts @@ -11,7 +11,8 @@ import { type JsPackageManager, getCoercedStorybookVersion, getStorybookInfo, -} from '@storybook/core/common'; + temporaryFile, +} from 'storybook/internal/common'; import type { Fix, @@ -40,8 +41,7 @@ const originalStdOutWrite = process.stdout.write.bind(process.stdout); const originalStdErrWrite = process.stderr.write.bind(process.stdout); const augmentLogsToFile = async () => { - const { temporaryFile } = await import('tempy'); - TEMP_LOG_FILE_PATH = temporaryFile({ name: LOG_FILE_NAME }); + TEMP_LOG_FILE_PATH = await temporaryFile({ name: LOG_FILE_NAME }); const logStream = createWriteStream(TEMP_LOG_FILE_PATH); process.stdout.write = (d: string) => { diff --git a/code/lib/cli/src/automigrate/types.ts b/code/lib/cli-storybook/src/automigrate/types.ts similarity index 95% rename from code/lib/cli/src/automigrate/types.ts rename to code/lib/cli-storybook/src/automigrate/types.ts index 8d08dd656b58..bf71f316a105 100644 --- a/code/lib/cli/src/automigrate/types.ts +++ b/code/lib/cli-storybook/src/automigrate/types.ts @@ -1,5 +1,5 @@ -import type { JsPackageManager, PackageManagerName } from '@storybook/core/common'; -import type { StorybookConfigRaw } from '@storybook/core/types'; +import type { JsPackageManager, PackageManagerName } from 'storybook/internal/common'; +import type { StorybookConfigRaw } from 'storybook/internal/types'; export interface CheckOptions { packageManager: JsPackageManager; diff --git a/code/lib/cli/src/generate.ts b/code/lib/cli-storybook/src/bin/index.ts similarity index 53% rename from code/lib/cli/src/generate.ts rename to code/lib/cli-storybook/src/bin/index.ts index a73f1889a35c..ab7a7f2adc22 100644 --- a/code/lib/cli/src/generate.ts +++ b/code/lib/cli-storybook/src/bin/index.ts @@ -5,28 +5,22 @@ import leven from 'leven'; import { findPackageSync } from 'fd-package-json'; import invariant from 'tiny-invariant'; -import { logger } from '@storybook/core/node-logger'; -import { addToGlobalContext, telemetry } from '@storybook/core/telemetry'; +import { logger } from 'storybook/internal/node-logger'; +import { addToGlobalContext, telemetry } from 'storybook/internal/telemetry'; import { - parseList, - getEnvConfig, JsPackageManagerFactory, versions, removeAddon as remove, -} from '@storybook/core/common'; -import { withTelemetry } from '@storybook/core/core-server'; +} from 'storybook/internal/common'; +import { withTelemetry } from 'storybook/internal/core-server'; -import type { CommandOptions } from './generators/types'; -import { initiate } from './initiate'; -import { add } from './add'; -import { migrate } from './migrate'; -import { upgrade, type UpgradeOptions } from './upgrade'; -import { sandbox } from './sandbox'; -import { link } from './link'; -import { doAutomigrate } from './automigrate'; -import { dev } from './dev'; -import { build } from './build'; -import { doctor } from './doctor'; +import { add } from '../add'; +import { migrate } from '../migrate'; +import { upgrade, type UpgradeOptions } from '../upgrade'; +import { sandbox } from '../sandbox'; +import { link } from '../link'; +import { doAutomigrate } from '../automigrate'; +import { doctor } from '../doctor'; addToGlobalContext('cliVersion', versions.storybook); @@ -46,32 +40,6 @@ const command = (name: string) => .option('--debug', 'Get more logs in debug mode', false) .option('--enable-crash-reports', 'Enable sending crash reports to telemetry data'); -command('init') - .description('Initialize Storybook into your project.') - .option('-f --force', 'Force add Storybook') - .option('-s --skip-install', 'Skip installing deps') - .option('--package-manager ', 'Force package manager for installing deps') - .option('--use-pnp', 'Enable pnp mode for Yarn 2+') - .option('-p --parser ', 'jscodeshift parser') - .option('-t --type ', 'Add Storybook for a specific project type') - .option('-y --yes', 'Answer yes to all prompts') - .option('-b --builder ', 'Builder library') - .option('-l --linkable', 'Prepare installation for link (contributor helper)') - // due to how Commander handles default values and negated options, we have to elevate the default into Commander, and we have to specify `--dev` - // alongside `--no-dev` even if we are unlikely to directly use `--dev`. https://github.com/tj/commander.js/issues/2068#issuecomment-1804524585 - .option( - '--dev', - 'Launch the development server after completing initialization. Enabled by default', - process.env.CI !== 'true' && process.env.IN_STORYBOOK_SANDBOX !== 'true' - ) - .option( - '--no-dev', - 'Complete the initialization of Storybook without launching the Storybook development server' - ) - .action((options: CommandOptions) => { - initiate(options).catch(() => process.exit(1)); - }); - command('add ') .description('Add an addon to your Storybook') .option( @@ -213,103 +181,6 @@ command('doctor') }); }); -command('dev') - .option('-p, --port ', 'Port to run Storybook', (str) => parseInt(str, 10)) - .option('-h, --host ', 'Host to run Storybook') - .option('-c, --config-dir ', 'Directory where to load Storybook configurations from') - .option( - '--https', - 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.' - ) - .option( - '--ssl-ca ', - 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)', - parseList - ) - .option('--ssl-cert ', 'Provide an SSL certificate. (Required with --https)') - .option('--ssl-key ', 'Provide an SSL key. (Required with --https)') - .option('--smoke-test', 'Exit after successful start') - .option('--ci', "CI mode (skip interactive prompts, don't open browser)") - .option('--no-open', 'Do not open Storybook automatically in the browser') - .option('--loglevel ', 'Control level of logging during build') - .option('--quiet', 'Suppress verbose build output') - .option('--no-version-updates', 'Suppress update check', true) - .option('--debug-webpack', 'Display final webpack configurations for debugging purposes') - .option( - '--webpack-stats-json [directory]', - 'Write Webpack stats JSON to disk (synonym for `--stats-json`)' - ) - .option('--stats-json [directory]', 'Write stats JSON to disk') - .option( - '--preview-url ', - 'Disables the default storybook preview and lets your use your own' - ) - .option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url') - .option('--docs', 'Build a documentation-only site using addon-docs') - .option('--exact-port', 'Exit early if the desired port is not available') - .option( - '--initial-path [path]', - 'URL path to be appended when visiting Storybook for the first time' - ) - .action(async (options) => { - logger.setLevel(program.loglevel); - consoleLogger.log(chalk.bold(`${pkg.name} v${pkg.version}`) + chalk.reset('\n')); - - // The key is the field created in `options` variable for - // each command line argument. Value is the env variable. - getEnvConfig(options, { - port: 'SBCONFIG_PORT', - host: 'SBCONFIG_HOSTNAME', - staticDir: 'SBCONFIG_STATIC_DIR', - configDir: 'SBCONFIG_CONFIG_DIR', - ci: 'CI', - }); - - if (parseInt(`${options.port}`, 10)) { - options.port = parseInt(`${options.port}`, 10); - } - - await dev({ ...options, packageJson: pkg }).catch(() => process.exit(1)); - }); - -command('build') - .option('-o, --output-dir ', 'Directory where to store built files') - .option('-c, --config-dir ', 'Directory where to load Storybook configurations from') - .option('--quiet', 'Suppress verbose build output') - .option('--loglevel ', 'Control level of logging during build') - .option('--debug-webpack', 'Display final webpack configurations for debugging purposes') - .option( - '--webpack-stats-json [directory]', - 'Write Webpack stats JSON to disk (synonym for `--stats-json`)' - ) - .option('--stats-json [directory]', 'Write stats JSON to disk') - .option( - '--preview-url ', - 'Disables the default storybook preview and lets your use your own' - ) - .option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url') - .option('--docs', 'Build a documentation-only site using addon-docs') - .option('--test', 'Build stories optimized for testing purposes.') - .action(async (options) => { - process.env.NODE_ENV = process.env.NODE_ENV || 'production'; - logger.setLevel(program.loglevel); - consoleLogger.log(chalk.bold(`${pkg.name} v${pkg.version}\n`)); - - // The key is the field created in `options` variable for - // each command line argument. Value is the env variable. - getEnvConfig(options, { - staticDir: 'SBCONFIG_STATIC_DIR', - outputDir: 'SBCONFIG_OUTPUT_DIR', - configDir: 'SBCONFIG_CONFIG_DIR', - }); - - await build({ - ...options, - packageJson: pkg, - test: !!options.test || process.env.SB_TESTBUILD === 'true', - }).catch(() => process.exit(1)); - }); - program.on('command:*', ([invalidCmd]) => { consoleLogger.error( ' Invalid command: %s.\n See --help for a list of available commands.', diff --git a/code/lib/cli/src/doctor/getDuplicatedDepsWarnings.ts b/code/lib/cli-storybook/src/doctor/getDuplicatedDepsWarnings.ts similarity index 95% rename from code/lib/cli/src/doctor/getDuplicatedDepsWarnings.ts rename to code/lib/cli-storybook/src/doctor/getDuplicatedDepsWarnings.ts index ecdf7e3f725a..82ac60d04217 100644 --- a/code/lib/cli/src/doctor/getDuplicatedDepsWarnings.ts +++ b/code/lib/cli-storybook/src/doctor/getDuplicatedDepsWarnings.ts @@ -1,6 +1,6 @@ import chalk from 'chalk'; -import { frameworkPackages, rendererPackages } from '@storybook/core/common'; -import type { InstallationMetadata } from '@storybook/core/common'; +import { frameworkPackages, rendererPackages } from 'storybook/internal/common'; +import type { InstallationMetadata } from 'storybook/internal/common'; import { hasMultipleVersions } from './hasMultipleVersions'; export const messageDivider = '\n\n'; diff --git a/code/lib/cli/src/doctor/getIncompatibleStorybookPackages.test.ts b/code/lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages.test.ts similarity index 97% rename from code/lib/cli/src/doctor/getIncompatibleStorybookPackages.test.ts rename to code/lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages.test.ts index d6e0ffa4592b..a75041d3d747 100644 --- a/code/lib/cli/src/doctor/getIncompatibleStorybookPackages.test.ts +++ b/code/lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages.test.ts @@ -5,7 +5,7 @@ import { getIncompatiblePackagesSummary, checkPackageCompatibility, } from './getIncompatibleStorybookPackages'; -import type { JsPackageManager } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; vi.mock('chalk', () => { return { @@ -61,7 +61,7 @@ describe('checkPackageCompatibility', () => { name: packageName, version: '1.0.0', dependencies: { - '@storybook/core/common': '8.0.0', + 'storybook/internal/common': '8.0.0', }, }); const result = await checkPackageCompatibility(packageName, { diff --git a/code/lib/cli/src/doctor/getIncompatibleStorybookPackages.ts b/code/lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages.ts similarity index 96% rename from code/lib/cli/src/doctor/getIncompatibleStorybookPackages.ts rename to code/lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages.ts index 5d6e91cf3167..bafd5e6895e0 100644 --- a/code/lib/cli/src/doctor/getIncompatibleStorybookPackages.ts +++ b/code/lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages.ts @@ -1,8 +1,11 @@ /* eslint-disable local-rules/no-uncategorized-errors */ import chalk from 'chalk'; import semver from 'semver'; -import type { JsPackageManager } from '@storybook/core/common'; -import { JsPackageManagerFactory, versions as storybookCorePackages } from '@storybook/core/common'; +import type { JsPackageManager } from 'storybook/internal/common'; +import { + JsPackageManagerFactory, + versions as storybookCorePackages, +} from 'storybook/internal/common'; export type AnalysedPackage = { packageName: string; diff --git a/code/lib/cli/src/doctor/getMismatchingVersionsWarning.ts b/code/lib/cli-storybook/src/doctor/getMismatchingVersionsWarning.ts similarity index 97% rename from code/lib/cli/src/doctor/getMismatchingVersionsWarning.ts rename to code/lib/cli-storybook/src/doctor/getMismatchingVersionsWarning.ts index c74267a5e646..4477bb517e55 100644 --- a/code/lib/cli/src/doctor/getMismatchingVersionsWarning.ts +++ b/code/lib/cli-storybook/src/doctor/getMismatchingVersionsWarning.ts @@ -1,7 +1,7 @@ import chalk from 'chalk'; import semver from 'semver'; -import { frameworkPackages, versions as storybookCorePackages } from '@storybook/core/common'; -import type { InstallationMetadata } from '@storybook/core/common'; +import { frameworkPackages, versions as storybookCorePackages } from 'storybook/internal/common'; +import type { InstallationMetadata } from 'storybook/internal/common'; function getPrimaryVersion(name: string | undefined, installationMetadata?: InstallationMetadata) { if (!name) { diff --git a/code/lib/cli/src/doctor/hasMultipleVersions.ts b/code/lib/cli-storybook/src/doctor/hasMultipleVersions.ts similarity index 100% rename from code/lib/cli/src/doctor/hasMultipleVersions.ts rename to code/lib/cli-storybook/src/doctor/hasMultipleVersions.ts diff --git a/code/lib/cli/src/doctor/index.ts b/code/lib/cli-storybook/src/doctor/index.ts similarity index 95% rename from code/lib/cli/src/doctor/index.ts rename to code/lib/cli-storybook/src/doctor/index.ts index 0e2f0747aa7a..17db9ba2ed26 100644 --- a/code/lib/cli/src/doctor/index.ts +++ b/code/lib/cli-storybook/src/doctor/index.ts @@ -4,8 +4,8 @@ import { createWriteStream, move, remove } from 'fs-extra'; import { dedent } from 'ts-dedent'; import { join } from 'path'; -import { JsPackageManagerFactory } from '@storybook/core/common'; -import type { PackageManagerName } from '@storybook/core/common'; +import { JsPackageManagerFactory, temporaryFile } from 'storybook/internal/common'; +import type { PackageManagerName } from 'storybook/internal/common'; import { getStorybookData } from '../automigrate/helpers/mainConfigFile'; import { cleanLog } from '../automigrate/helpers/cleanLog'; import { getMismatchingVersionsWarnings } from './getMismatchingVersionsWarning'; @@ -24,8 +24,7 @@ const originalStdOutWrite = process.stdout.write.bind(process.stdout); const originalStdErrWrite = process.stderr.write.bind(process.stdout); const augmentLogsToFile = async () => { - const { temporaryFile } = await import('tempy'); - TEMP_LOG_FILE_PATH = temporaryFile({ name: LOG_FILE_NAME }); + TEMP_LOG_FILE_PATH = await temporaryFile({ name: LOG_FILE_NAME }); const logStream = createWriteStream(TEMP_LOG_FILE_PATH); process.stdout.write = (d: string) => { diff --git a/code/lib/cli/src/doctor/utils.ts b/code/lib/cli-storybook/src/doctor/utils.ts similarity index 100% rename from code/lib/cli/src/doctor/utils.ts rename to code/lib/cli-storybook/src/doctor/utils.ts diff --git a/code/lib/cli-storybook/src/index.ts b/code/lib/cli-storybook/src/index.ts new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/code/lib/cli/src/link.ts b/code/lib/cli-storybook/src/link.ts similarity index 98% rename from code/lib/cli/src/link.ts rename to code/lib/cli-storybook/src/link.ts index e691aed49c30..d9e112957300 100644 --- a/code/lib/cli/src/link.ts +++ b/code/lib/cli-storybook/src/link.ts @@ -1,7 +1,7 @@ import fse from 'fs-extra'; import path from 'path'; import { sync as spawnSync, spawn as spawnAsync } from 'cross-spawn'; -import { logger } from '@storybook/core/node-logger'; +import { logger } from 'storybook/internal/node-logger'; import chalk from 'chalk'; type ExecOptions = Parameters[2]; diff --git a/code/lib/cli/src/migrate.ts b/code/lib/cli-storybook/src/migrate.ts similarity index 95% rename from code/lib/cli/src/migrate.ts rename to code/lib/cli-storybook/src/migrate.ts index afcb851dd228..36b72ed86b90 100644 --- a/code/lib/cli/src/migrate.ts +++ b/code/lib/cli-storybook/src/migrate.ts @@ -3,11 +3,11 @@ import { JsPackageManagerFactory, getCoercedStorybookVersion, getStorybookInfo, -} from '@storybook/core/common'; +} from 'storybook/internal/common'; import { runFixes } from './automigrate'; import { mdxToCSF } from './automigrate/fixes/mdx-to-csf'; -import { getStorybookVersionSpecifier } from './helpers'; +import { getStorybookVersionSpecifier } from 'storybook/internal/cli'; const logger = console; diff --git a/code/lib/cli/src/postinstallAddon.ts b/code/lib/cli-storybook/src/postinstallAddon.ts similarity index 100% rename from code/lib/cli/src/postinstallAddon.ts rename to code/lib/cli-storybook/src/postinstallAddon.ts diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli-storybook/src/sandbox-templates.ts similarity index 99% rename from code/lib/cli/src/sandbox-templates.ts rename to code/lib/cli-storybook/src/sandbox-templates.ts index e7a55f4ba360..532b20efb936 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli-storybook/src/sandbox-templates.ts @@ -1,5 +1,5 @@ -import type { StoriesEntry, StorybookConfigRaw } from '@storybook/core/types'; -import type { ConfigFile } from '@storybook/core/csf-tools'; +import type { StoriesEntry, StorybookConfigRaw } from 'storybook/internal/types'; +import type { ConfigFile } from 'storybook/internal/csf-tools'; export type SkippableTask = | 'smoke-test' diff --git a/code/lib/cli/src/sandbox.ts b/code/lib/cli-storybook/src/sandbox.ts similarity index 97% rename from code/lib/cli/src/sandbox.ts rename to code/lib/cli-storybook/src/sandbox.ts index 25f712ada798..72a6f9edf333 100644 --- a/code/lib/cli/src/sandbox.ts +++ b/code/lib/cli-storybook/src/sandbox.ts @@ -10,10 +10,10 @@ import invariant from 'tiny-invariant'; import { lt, prerelease } from 'semver'; import type { Template, TemplateKey } from './sandbox-templates'; import { allTemplates as TEMPLATES } from './sandbox-templates'; -import type { PackageManagerName } from '@storybook/core/common'; -import { JsPackageManagerFactory } from '@storybook/core/common'; -import { versions } from '@storybook/core/common'; -import { doInitiate } from './initiate'; +import type { PackageManagerName } from 'storybook/internal/common'; +import { JsPackageManagerFactory } from 'storybook/internal/common'; +import { versions } from 'storybook/internal/common'; +import { initiate } from 'create-storybook'; const logger = console; @@ -222,7 +222,7 @@ export const sandbox = async ({ const before = process.cwd(); process.chdir(templateDestination); // we run doInitiate, instead of initiate, to avoid sending this init event to telemetry, because it's not a real world project - await doInitiate({ + await initiate({ dev: process.env.CI !== 'true' && process.env.IN_STORYBOOK_SANBOX !== 'true', ...options, }); diff --git a/code/lib/cli/src/typings.d.ts b/code/lib/cli-storybook/src/typings.d.ts similarity index 100% rename from code/lib/cli/src/typings.d.ts rename to code/lib/cli-storybook/src/typings.d.ts diff --git a/code/lib/cli/src/upgrade.test.ts b/code/lib/cli-storybook/src/upgrade.test.ts similarity index 93% rename from code/lib/cli/src/upgrade.test.ts rename to code/lib/cli-storybook/src/upgrade.test.ts index 7c64dc748393..7bf478d184fd 100644 --- a/code/lib/cli/src/upgrade.test.ts +++ b/code/lib/cli-storybook/src/upgrade.test.ts @@ -1,13 +1,13 @@ import { describe, expect, it, vi } from 'vitest'; -import * as sbcc from '@storybook/core/common'; +import * as sbcc from 'storybook/internal/common'; import { UpgradeStorybookToLowerVersionError } from 'storybook/internal/server-errors'; import { doUpgrade, getStorybookVersion } from './upgrade'; -import { logger } from '@storybook/core/node-logger'; +import { logger } from 'storybook/internal/node-logger'; const findInstallationsMock = vi.fn>(); -vi.mock('@storybook/core/telemetry'); -vi.mock('@storybook/core/common', async (importOriginal) => { +vi.mock('storybook/internal/telemetry'); +vi.mock('storybook/internal/common', async (importOriginal) => { const originalModule = (await importOriginal()) as typeof sbcc; return { ...originalModule, diff --git a/code/lib/cli/src/upgrade.ts b/code/lib/cli-storybook/src/upgrade.ts similarity index 96% rename from code/lib/cli/src/upgrade.ts rename to code/lib/cli-storybook/src/upgrade.ts index 30866dac64ba..8b1bc007add2 100644 --- a/code/lib/cli/src/upgrade.ts +++ b/code/lib/cli-storybook/src/upgrade.ts @@ -1,7 +1,7 @@ import { sync as spawnSync } from 'cross-spawn'; import { telemetry } from 'storybook/internal/telemetry'; -import semver, { eq, lt, prerelease } from 'semver'; -import { logger } from '@storybook/core/node-logger'; +import semver, { eq, lt, prerelease, clean } from 'semver'; +import { logger } from 'storybook/internal/node-logger'; import { withTelemetry } from 'storybook/internal/core-server'; import { UpgradeStorybookInWrongWorkingDirectory, @@ -13,17 +13,17 @@ import { import chalk from 'chalk'; import { dedent } from 'ts-dedent'; import boxen from 'boxen'; -import type { JsPackageManager, PackageManagerName } from '@storybook/core/common'; +import type { JsPackageManager, PackageManagerName } from 'storybook/internal/common'; import { isCorePackage, versions, getStorybookInfo, loadMainConfig, JsPackageManagerFactory, -} from '@storybook/core/common'; +} from 'storybook/internal/common'; import { automigrate } from './automigrate/index'; import { autoblock } from './autoblock/index'; -import { hasStorybookDependencies } from './helpers'; +import { hasStorybookDependencies } from 'storybook/internal/cli'; type Package = { package: string; @@ -34,7 +34,7 @@ const versionRegex = /(@storybook\/[^@]+)@(\S+)/; export const getStorybookVersion = (line: string) => { if (line.startsWith('npm ')) return null; const match = versionRegex.exec(line); - if (!match || !semver.clean(match[2])) return null; + if (!match || !clean(match[2])) return null; return { package: match[1], version: match[2], diff --git a/code/lib/cli/src/warn.test.ts b/code/lib/cli-storybook/src/warn.test.ts similarity index 92% rename from code/lib/cli/src/warn.test.ts rename to code/lib/cli-storybook/src/warn.test.ts index 365847b73d42..ceda21a10089 100644 --- a/code/lib/cli/src/warn.test.ts +++ b/code/lib/cli-storybook/src/warn.test.ts @@ -1,8 +1,8 @@ import { describe, beforeEach, it, expect, vi } from 'vitest'; -import { logger } from '@storybook/core/node-logger'; +import { logger } from 'storybook/internal/node-logger'; import { warn } from './warn'; -vi.mock('@storybook/core/node-logger'); +vi.mock('storybook/internal/node-logger'); const mocks = vi.hoisted(() => { return { diff --git a/code/lib/cli/src/warn.ts b/code/lib/cli-storybook/src/warn.ts similarity index 93% rename from code/lib/cli/src/warn.ts rename to code/lib/cli-storybook/src/warn.ts index 4b75a924814c..ef995d87ef76 100644 --- a/code/lib/cli/src/warn.ts +++ b/code/lib/cli-storybook/src/warn.ts @@ -1,4 +1,4 @@ -import { logger } from '@storybook/core/node-logger'; +import { logger } from 'storybook/internal/node-logger'; interface Options { hasTSDependency: boolean; diff --git a/code/lib/cli/src/window.d.ts b/code/lib/cli-storybook/src/window.d.ts similarity index 73% rename from code/lib/cli/src/window.d.ts rename to code/lib/cli-storybook/src/window.d.ts index 35dfceecddb1..91fe506c5490 100644 --- a/code/lib/cli/src/window.d.ts +++ b/code/lib/cli-storybook/src/window.d.ts @@ -1,4 +1,4 @@ -import type { Renderer } from '@storybook/core/types'; +import type { Renderer } from 'storybook/internal/types'; import type { StoryStore } from 'storybook/internal/preview-api'; declare global { diff --git a/code/lib/cli/test/default/cli.test.cjs b/code/lib/cli-storybook/test/default/cli.test.cjs similarity index 100% rename from code/lib/cli/test/default/cli.test.cjs rename to code/lib/cli-storybook/test/default/cli.test.cjs diff --git a/code/lib/cli/test/helpers.cjs b/code/lib/cli-storybook/test/helpers.cjs similarity index 100% rename from code/lib/cli/test/helpers.cjs rename to code/lib/cli-storybook/test/helpers.cjs diff --git a/code/lib/cli-storybook/tsconfig.json b/code/lib/cli-storybook/tsconfig.json new file mode 100644 index 000000000000..73a65ef2ef6e --- /dev/null +++ b/code/lib/cli-storybook/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": {}, + "include": ["src/**/*"] +} diff --git a/code/lib/cli/bin/index.cjs b/code/lib/cli/bin/index.cjs index f7164c48f330..0aecdd1e9b9b 100755 --- a/code/lib/cli/bin/index.cjs +++ b/code/lib/cli/bin/index.cjs @@ -23,4 +23,4 @@ process.once('uncaughtException', (error) => { throw error; }); -require('../dist/generate.cjs'); +require('../dist/proxy.cjs'); diff --git a/code/lib/cli/core/cli/bin/index.cjs b/code/lib/cli/core/cli/bin/index.cjs new file mode 100644 index 000000000000..28b8be5e01cc --- /dev/null +++ b/code/lib/cli/core/cli/bin/index.cjs @@ -0,0 +1 @@ +module.exports = require('@storybook/core/cli/bin'); diff --git a/code/lib/cli/core/cli/bin/index.d.ts b/code/lib/cli/core/cli/bin/index.d.ts new file mode 100644 index 000000000000..c846fa780147 --- /dev/null +++ b/code/lib/cli/core/cli/bin/index.d.ts @@ -0,0 +1,2 @@ +export * from '@storybook/core/cli/bin'; +export type * from '@storybook/core/cli/bin'; diff --git a/code/lib/cli/core/cli/bin/index.js b/code/lib/cli/core/cli/bin/index.js new file mode 100644 index 000000000000..32a19f877c90 --- /dev/null +++ b/code/lib/cli/core/cli/bin/index.js @@ -0,0 +1 @@ +export * from '@storybook/core/cli/bin'; diff --git a/code/lib/cli/core/cli/index.cjs b/code/lib/cli/core/cli/index.cjs new file mode 100644 index 000000000000..023342dde38e --- /dev/null +++ b/code/lib/cli/core/cli/index.cjs @@ -0,0 +1 @@ +module.exports = require('@storybook/core/cli'); diff --git a/code/lib/cli/core/cli/index.d.ts b/code/lib/cli/core/cli/index.d.ts new file mode 100644 index 000000000000..2ce4e03dd15f --- /dev/null +++ b/code/lib/cli/core/cli/index.d.ts @@ -0,0 +1,2 @@ +export * from '@storybook/core/cli'; +export type * from '@storybook/core/cli'; diff --git a/code/lib/cli/core/cli/index.js b/code/lib/cli/core/cli/index.js new file mode 100644 index 000000000000..59fef763e102 --- /dev/null +++ b/code/lib/cli/core/cli/index.js @@ -0,0 +1 @@ +export * from '@storybook/core/cli'; diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index 43aadafc6dae..763d55ebc1ee 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook's CLI - install, dev, build, upgrade, and more", "keywords": [ "cli", @@ -168,6 +168,16 @@ "import": "./core/preview/globals.js", "require": "./core/preview/globals.cjs" }, + "./internal/cli": { + "types": "./core/cli/index.d.ts", + "import": "./core/cli/index.js", + "require": "./core/cli/index.cjs" + }, + "./internal/cli/bin": { + "types": "./core/cli/bin/index.d.ts", + "import": "./core/cli/bin/index.js", + "require": "./core/cli/bin/index.cjs" + }, "./internal/manager/globals": { "types": "./core/manager/globals.d.ts", "import": "./core/manager/globals.js", @@ -188,6 +198,12 @@ "internal/channels": [ "./core/channels/index.d.ts" ], + "internal/cli": [ + "./core/cli/index.d.ts" + ], + "internal/cli/bin": [ + "./core/cli/bin/index.d.ts" + ], "internal/client-logger": [ "./core/client-logger/index.d.ts" ], @@ -293,45 +309,9 @@ "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@babel/core": "^7.24.4", - "@babel/types": "^7.24.0", - "@storybook/codemod": "workspace:*", - "@storybook/core": "workspace:*", - "@types/semver": "^7.3.4", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "commander": "^6.2.1", - "cross-spawn": "^7.0.3", - "detect-indent": "^6.1.0", - "envinfo": "^7.7.3", - "execa": "^5.0.0", - "fd-package-json": "^1.2.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "giget": "^1.0.0", - "globby": "^14.0.1", - "jscodeshift": "^0.15.1", - "leven": "^3.1.0", - "ora": "^5.4.1", - "prettier": "^3.1.1", - "prompts": "^2.4.0", - "semver": "^7.3.7", - "strip-json-comments": "^3.0.1", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0" + "@storybook/core": "workspace:*" }, "devDependencies": { - "@ndelangen/get-tarball": "^3.0.7", - "@types/cross-spawn": "^6.0.2", - "@types/prompts": "^2.0.9", - "@types/util-deprecate": "^1.0.0", - "boxen": "^7.1.1", - "get-npm-tarball-url": "^2.0.3", - "slash": "^5.0.0", - "strip-ansi": "^7.1.0", - "strip-json-comments": "^3.1.1", "typescript": "^5.3.2" }, "publishConfig": { @@ -340,7 +320,7 @@ "bundler": { "pre": "./scripts/update-core-portal.ts", "entries": [ - "./src/generate.ts", + "./src/proxy.ts", "./src/core-path.ts", "./src/index.ts" ], diff --git a/code/lib/cli/src/proxy.ts b/code/lib/cli/src/proxy.ts new file mode 100644 index 000000000000..eee009524c59 --- /dev/null +++ b/code/lib/cli/src/proxy.ts @@ -0,0 +1,21 @@ +import { spawn } from 'child_process'; +import { versions } from '@storybook/core/common'; + +const args = process.argv.slice(2); + +if (['dev', 'build'].includes(args[0])) { + require('@storybook/core/cli/bin'); +} else { + const proxiedArgs = + args[0] === 'init' + ? [`create-storybook@${versions.storybook}`, ...args.slice(1)] + : [`@storybook/cli@${versions.storybook}`, ...args]; + const command = ['npx', '--yes', ...proxiedArgs]; + const child = spawn(command[0], command.slice(1), { stdio: 'inherit' }); + child.on('exit', (code) => { + if (code != null) { + process.exit(code); + } + process.exit(1); + }); +} diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index 42429cec2dc0..f715aa8b7400 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "A collection of codemod scripts written with JSCodeshift", "keywords": [ "storybook" diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index ac57568d4355..30dd28a986c6 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/create-storybook/.eslintrc.cjs b/code/lib/create-storybook/.eslintrc.cjs new file mode 100644 index 000000000000..a2dae9fc88d3 --- /dev/null +++ b/code/lib/create-storybook/.eslintrc.cjs @@ -0,0 +1,36 @@ +const ignore = 0; + +module.exports = { + overrides: [ + { + files: 'templates/**/*', + env: { + browser: true, + }, + rules: { + 'react/no-this-in-sfc': ignore, + 'import/no-unresolved': ignore, + 'react/react-in-jsx-scope': ignore, + 'import/no-extraneous-dependencies': ignore, + 'global-require': ignore, + 'no-redeclare': ignore, + 'react/prop-types': ignore, + }, + }, + { + files: 'rendererAssets/**/*', + env: { + browser: true, + }, + rules: { + 'jsx-a11y/anchor-is-valid': ignore, + 'import/no-unresolved': ignore, + 'react/prop-types': ignore, + 'react/react-in-jsx-scope': ignore, + 'import/no-extraneous-dependencies': ignore, + 'import/extensions': ignore, + 'import/named': ignore, + }, + }, + ], +}; diff --git a/code/lib/create-storybook/README.md b/code/lib/create-storybook/README.md new file mode 100644 index 000000000000..a84cddc67be2 --- /dev/null +++ b/code/lib/create-storybook/README.md @@ -0,0 +1 @@ +## Initialize Storybook into your project diff --git a/code/lib/create-storybook/bin/index.cjs b/code/lib/create-storybook/bin/index.cjs new file mode 100755 index 000000000000..ce13973e4eb9 --- /dev/null +++ b/code/lib/create-storybook/bin/index.cjs @@ -0,0 +1,26 @@ +#!/usr/bin/env node + +const majorNodeVersion = parseInt(process.versions.node, 10); +if (majorNodeVersion < 18) { + console.error('To run Storybook you need to have Node.js 18 or higher'); + process.exit(1); +} + +// The Storybook CLI has a catch block for all of its commands, but if an error +// occurs before the command even runs, for instance, if an import fails, then +// such error will fall under the uncaughtException handler. +// This is the earliest moment we can catch such errors. +process.once('uncaughtException', (error) => { + if (error.message.includes('string-width')) { + console.error( + [ + '🔴 Error: It looks like you are having a known issue with package hoisting.', + 'Please check the following issue for details and solutions: https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092\n\n', + ].join('\n') + ); + } + + throw error; +}); + +require('../dist/bin/index.cjs'); diff --git a/code/lib/create-storybook/package.json b/code/lib/create-storybook/package.json new file mode 100644 index 000000000000..0acc48d79102 --- /dev/null +++ b/code/lib/create-storybook/package.json @@ -0,0 +1,90 @@ +{ + "name": "create-storybook", + "version": "8.3.0-alpha.4", + "description": "Initialize Storybook into your project", + "homepage": "https://github.com/storybookjs/storybook/tree/next/code/lib/create-storybook", + "bugs": { + "url": "https://github.com/storybookjs/storybook/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/storybookjs/storybook.git", + "directory": "code/lib/cli" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "license": "MIT", + "author": "Storybook Team", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "node": "./dist/index.cjs", + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "./bin/index.cjs": { + "node": "./bin/index.cjs", + "require": "./bin/index.cjs" + }, + "./package.json": "./package.json" + }, + "main": "dist/index.cjs", + "module": "dist/index.js", + "types": "dist/index.d.ts", + "typesVersions": { + "*": { + "*": [ + "./dist/index.d.ts" + ] + } + }, + "bin": "./bin/index.cjs", + "files": [ + "bin/**/*", + "dist/**/*", + "rendererAssets/**/*", + "templates/**/*", + "README.md", + "!src/**/*" + ], + "scripts": { + "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", + "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" + }, + "dependencies": { + "@types/semver": "^7.3.4", + "chalk": "^4.1.0", + "commander": "^6.2.1", + "execa": "^5.0.0", + "fd-package-json": "^1.2.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "ora": "^5.4.1", + "prettier": "^3.1.1", + "prompts": "^2.4.0", + "semver": "^7.3.7", + "storybook": "workspace:*", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" + }, + "devDependencies": { + "@types/prompts": "^2.0.9", + "@types/util-deprecate": "^1.0.0", + "boxen": "^7.1.1", + "typescript": "^5.3.2" + }, + "publishConfig": { + "access": "public" + }, + "bundler": { + "entries": [ + "./src/index.ts", + "./src/bin/index.ts" + ], + "platform": "node" + }, + "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16" +} diff --git a/code/lib/create-storybook/project.json b/code/lib/create-storybook/project.json new file mode 100644 index 000000000000..66129bbf4250 --- /dev/null +++ b/code/lib/create-storybook/project.json @@ -0,0 +1,8 @@ +{ + "name": "create-storybook", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "targets": { + "build": {} + } +} diff --git a/code/lib/cli/rendererAssets/.eslintrc.json b/code/lib/create-storybook/rendererAssets/.eslintrc.json similarity index 100% rename from code/lib/cli/rendererAssets/.eslintrc.json rename to code/lib/create-storybook/rendererAssets/.eslintrc.json diff --git a/code/lib/cli/rendererAssets/common/Configure.mdx b/code/lib/create-storybook/rendererAssets/common/Configure.mdx similarity index 100% rename from code/lib/cli/rendererAssets/common/Configure.mdx rename to code/lib/create-storybook/rendererAssets/common/Configure.mdx diff --git a/code/lib/cli/rendererAssets/common/assets/accessibility.png b/code/lib/create-storybook/rendererAssets/common/assets/accessibility.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/accessibility.png rename to code/lib/create-storybook/rendererAssets/common/assets/accessibility.png diff --git a/code/lib/cli/rendererAssets/common/assets/accessibility.svg b/code/lib/create-storybook/rendererAssets/common/assets/accessibility.svg similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/accessibility.svg rename to code/lib/create-storybook/rendererAssets/common/assets/accessibility.svg diff --git a/code/lib/cli/rendererAssets/common/assets/addon-library.png b/code/lib/create-storybook/rendererAssets/common/assets/addon-library.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/addon-library.png rename to code/lib/create-storybook/rendererAssets/common/assets/addon-library.png diff --git a/code/lib/cli/rendererAssets/common/assets/assets.png b/code/lib/create-storybook/rendererAssets/common/assets/assets.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/assets.png rename to code/lib/create-storybook/rendererAssets/common/assets/assets.png diff --git a/code/lib/cli/rendererAssets/common/assets/avif-test-image.avif b/code/lib/create-storybook/rendererAssets/common/assets/avif-test-image.avif similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/avif-test-image.avif rename to code/lib/create-storybook/rendererAssets/common/assets/avif-test-image.avif diff --git a/code/lib/cli/rendererAssets/common/assets/context.png b/code/lib/create-storybook/rendererAssets/common/assets/context.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/context.png rename to code/lib/create-storybook/rendererAssets/common/assets/context.png diff --git a/code/lib/cli/rendererAssets/common/assets/discord.svg b/code/lib/create-storybook/rendererAssets/common/assets/discord.svg similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/discord.svg rename to code/lib/create-storybook/rendererAssets/common/assets/discord.svg diff --git a/code/lib/cli/rendererAssets/common/assets/docs.png b/code/lib/create-storybook/rendererAssets/common/assets/docs.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/docs.png rename to code/lib/create-storybook/rendererAssets/common/assets/docs.png diff --git a/code/lib/cli/rendererAssets/common/assets/figma-plugin.png b/code/lib/create-storybook/rendererAssets/common/assets/figma-plugin.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/figma-plugin.png rename to code/lib/create-storybook/rendererAssets/common/assets/figma-plugin.png diff --git a/code/lib/cli/rendererAssets/common/assets/github.svg b/code/lib/create-storybook/rendererAssets/common/assets/github.svg similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/github.svg rename to code/lib/create-storybook/rendererAssets/common/assets/github.svg diff --git a/code/lib/cli/rendererAssets/common/assets/share.png b/code/lib/create-storybook/rendererAssets/common/assets/share.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/share.png rename to code/lib/create-storybook/rendererAssets/common/assets/share.png diff --git a/code/lib/cli/rendererAssets/common/assets/styling.png b/code/lib/create-storybook/rendererAssets/common/assets/styling.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/styling.png rename to code/lib/create-storybook/rendererAssets/common/assets/styling.png diff --git a/code/lib/cli/rendererAssets/common/assets/testing.png b/code/lib/create-storybook/rendererAssets/common/assets/testing.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/testing.png rename to code/lib/create-storybook/rendererAssets/common/assets/testing.png diff --git a/code/lib/cli/rendererAssets/common/assets/theming.png b/code/lib/create-storybook/rendererAssets/common/assets/theming.png similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/theming.png rename to code/lib/create-storybook/rendererAssets/common/assets/theming.png diff --git a/code/lib/cli/rendererAssets/common/assets/tutorials.svg b/code/lib/create-storybook/rendererAssets/common/assets/tutorials.svg similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/tutorials.svg rename to code/lib/create-storybook/rendererAssets/common/assets/tutorials.svg diff --git a/code/lib/cli/rendererAssets/common/assets/youtube.svg b/code/lib/create-storybook/rendererAssets/common/assets/youtube.svg similarity index 100% rename from code/lib/cli/rendererAssets/common/assets/youtube.svg rename to code/lib/create-storybook/rendererAssets/common/assets/youtube.svg diff --git a/code/lib/cli/rendererAssets/common/button.css b/code/lib/create-storybook/rendererAssets/common/button.css similarity index 100% rename from code/lib/cli/rendererAssets/common/button.css rename to code/lib/create-storybook/rendererAssets/common/button.css diff --git a/code/lib/cli/rendererAssets/common/header.css b/code/lib/create-storybook/rendererAssets/common/header.css similarity index 100% rename from code/lib/cli/rendererAssets/common/header.css rename to code/lib/create-storybook/rendererAssets/common/header.css diff --git a/code/lib/cli/rendererAssets/common/page.css b/code/lib/create-storybook/rendererAssets/common/page.css similarity index 100% rename from code/lib/cli/rendererAssets/common/page.css rename to code/lib/create-storybook/rendererAssets/common/page.css diff --git a/code/lib/create-storybook/src/bin/index.ts b/code/lib/create-storybook/src/bin/index.ts new file mode 100644 index 000000000000..a3e21bfc4d60 --- /dev/null +++ b/code/lib/create-storybook/src/bin/index.ts @@ -0,0 +1,49 @@ +import program from 'commander'; +import { findPackageSync } from 'fd-package-json'; +import invariant from 'tiny-invariant'; +import { addToGlobalContext } from 'storybook/internal/telemetry'; +import { versions } from 'storybook/internal/common'; + +import type { CommandOptions } from '../generators/types'; +import { initiate } from '../initiate'; + +addToGlobalContext('cliVersion', versions.storybook); + +const pkg = findPackageSync(__dirname); +invariant(pkg, 'Failed to find the closest package.json file.'); + +program + .name('Initialize Storybook into your project.') + .option( + '--disable-telemetry', + 'Disable sending telemetry data', + // default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true + process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false' + ) + .option('--debug', 'Get more logs in debug mode', false) + .option('--enable-crash-reports', 'Enable sending crash reports to telemetry data') + .option('-f --force', 'Force add Storybook') + .option('-s --skip-install', 'Skip installing deps') + .option('--package-manager ', 'Force package manager for installing deps') + .option('--use-pnp', 'Enable pnp mode for Yarn 2+') + .option('-p --parser ', 'jscodeshift parser') + .option('-t --type ', 'Add Storybook for a specific project type') + .option('-y --yes', 'Answer yes to all prompts') + .option('-b --builder ', 'Builder library') + .option('-l --linkable', 'Prepare installation for link (contributor helper)') + // due to how Commander handles default values and negated options, we have to elevate the default into Commander, and we have to specify `--dev` + // alongside `--no-dev` even if we are unlikely to directly use `--dev`. https://github.com/tj/commander.js/issues/2068#issuecomment-1804524585 + .option( + '--dev', + 'Launch the development server after completing initialization. Enabled by default', + process.env.CI !== 'true' && process.env.IN_STORYBOOK_SANDBOX !== 'true' + ) + .option( + '--no-dev', + 'Complete the initialization of Storybook without launching the Storybook development server' + ) + .action((options: CommandOptions) => { + initiate(options).catch(() => process.exit(1)); + }) + .version(String(pkg.version)) + .parse(process.argv); diff --git a/code/lib/cli/src/generators/ANGULAR/index.ts b/code/lib/create-storybook/src/generators/ANGULAR/index.ts similarity index 91% rename from code/lib/cli/src/generators/ANGULAR/index.ts rename to code/lib/create-storybook/src/generators/ANGULAR/index.ts index 3a18fd192bf4..e7a6ec09e42a 100644 --- a/code/lib/cli/src/generators/ANGULAR/index.ts +++ b/code/lib/create-storybook/src/generators/ANGULAR/index.ts @@ -1,11 +1,10 @@ import { join } from 'path'; -import { commandLog } from '@storybook/core/common'; -import { baseGenerator } from '../baseGenerator'; +import { commandLog } from 'storybook/internal/common'; +import { baseGenerator, getCliDir } from '../baseGenerator'; import type { Generator } from '../types'; -import { CoreBuilder } from '../../project_types'; -import { AngularJSON, compoDocPreviewPrefix, promptForCompoDocs } from './helpers'; -import { getCliDir } from '../../dirs'; -import { copyTemplate } from '../../helpers'; +import { CoreBuilder } from 'storybook/internal/cli'; +import { AngularJSON, compoDocPreviewPrefix, promptForCompoDocs } from 'storybook/internal/cli'; +import { copyTemplate } from 'storybook/internal/cli'; const generator: Generator<{ projectName: string }> = async ( packageManager, diff --git a/code/lib/cli/src/generators/EMBER/index.ts b/code/lib/create-storybook/src/generators/EMBER/index.ts similarity index 87% rename from code/lib/cli/src/generators/EMBER/index.ts rename to code/lib/create-storybook/src/generators/EMBER/index.ts index 6b148964773d..cd12ca61a4d6 100644 --- a/code/lib/cli/src/generators/EMBER/index.ts +++ b/code/lib/create-storybook/src/generators/EMBER/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/HTML/index.ts b/code/lib/create-storybook/src/generators/HTML/index.ts similarity index 87% rename from code/lib/cli/src/generators/HTML/index.ts rename to code/lib/create-storybook/src/generators/HTML/index.ts index 87ee978b0865..541525e7b384 100755 --- a/code/lib/cli/src/generators/HTML/index.ts +++ b/code/lib/create-storybook/src/generators/HTML/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/NEXTJS/index.ts b/code/lib/create-storybook/src/generators/NEXTJS/index.ts similarity index 92% rename from code/lib/cli/src/generators/NEXTJS/index.ts rename to code/lib/create-storybook/src/generators/NEXTJS/index.ts index e29cb4f6a751..fbbbe7b58728 100644 --- a/code/lib/cli/src/generators/NEXTJS/index.ts +++ b/code/lib/create-storybook/src/generators/NEXTJS/index.ts @@ -1,6 +1,6 @@ import { join } from 'path'; import { existsSync } from 'fs'; -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/PREACT/index.ts b/code/lib/create-storybook/src/generators/PREACT/index.ts similarity index 87% rename from code/lib/cli/src/generators/PREACT/index.ts rename to code/lib/create-storybook/src/generators/PREACT/index.ts index 74549fc5e26b..b75293bf3c3d 100644 --- a/code/lib/cli/src/generators/PREACT/index.ts +++ b/code/lib/create-storybook/src/generators/PREACT/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/QWIK/index.ts b/code/lib/create-storybook/src/generators/QWIK/index.ts similarity index 100% rename from code/lib/cli/src/generators/QWIK/index.ts rename to code/lib/create-storybook/src/generators/QWIK/index.ts diff --git a/code/lib/cli/src/generators/REACT/index.ts b/code/lib/create-storybook/src/generators/REACT/index.ts similarity index 83% rename from code/lib/cli/src/generators/REACT/index.ts rename to code/lib/create-storybook/src/generators/REACT/index.ts index 267f15b8427a..b4b2bb1d9479 100644 --- a/code/lib/cli/src/generators/REACT/index.ts +++ b/code/lib/create-storybook/src/generators/REACT/index.ts @@ -1,5 +1,5 @@ -import { detectLanguage } from '../../detect'; -import { CoreBuilder, SupportedLanguage } from '../../project_types'; +import { detectLanguage } from 'storybook/internal/cli'; +import { CoreBuilder, SupportedLanguage } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/REACT_NATIVE/index.ts b/code/lib/create-storybook/src/generators/REACT_NATIVE/index.ts similarity index 86% rename from code/lib/cli/src/generators/REACT_NATIVE/index.ts rename to code/lib/create-storybook/src/generators/REACT_NATIVE/index.ts index 5d9cd1d82a53..377c87e94db4 100644 --- a/code/lib/cli/src/generators/REACT_NATIVE/index.ts +++ b/code/lib/create-storybook/src/generators/REACT_NATIVE/index.ts @@ -1,7 +1,7 @@ -import { copyTemplateFiles, getBabelDependencies } from '../../helpers'; -import type { JsPackageManager } from '@storybook/core/common'; -import type { NpmOptions } from '../../NpmOptions'; -import { SupportedLanguage } from '../../project_types'; +import { copyTemplateFiles, getBabelDependencies } from 'storybook/internal/cli'; +import type { JsPackageManager } from 'storybook/internal/common'; +import type { NpmOptions } from 'storybook/internal/cli'; +import { SupportedLanguage } from 'storybook/internal/cli'; const generator = async ( packageManager: JsPackageManager, @@ -59,7 +59,6 @@ const generator = async ( renderer: 'react-native', language: SupportedLanguage.TYPESCRIPT_3_8, destination: storybookConfigFolder, - includeCommonAssets: false, }); }; diff --git a/code/lib/cli/src/generators/REACT_SCRIPTS/index.ts b/code/lib/create-storybook/src/generators/REACT_SCRIPTS/index.ts similarity index 97% rename from code/lib/cli/src/generators/REACT_SCRIPTS/index.ts rename to code/lib/create-storybook/src/generators/REACT_SCRIPTS/index.ts index 4a9282b5e32a..afd1ff670bf5 100644 --- a/code/lib/cli/src/generators/REACT_SCRIPTS/index.ts +++ b/code/lib/create-storybook/src/generators/REACT_SCRIPTS/index.ts @@ -5,7 +5,7 @@ import { dedent } from 'ts-dedent'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; const generator: Generator = async (packageManager, npmOptions, options) => { const monorepoRootPath = path.join(__dirname, '..', '..', '..', '..', '..', '..'); diff --git a/code/lib/cli/src/generators/SERVER/index.ts b/code/lib/create-storybook/src/generators/SERVER/index.ts similarity index 88% rename from code/lib/cli/src/generators/SERVER/index.ts rename to code/lib/create-storybook/src/generators/SERVER/index.ts index 1e7cdb0c6ad2..c46ace7b0e65 100755 --- a/code/lib/cli/src/generators/SERVER/index.ts +++ b/code/lib/create-storybook/src/generators/SERVER/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/SOLID/index.ts b/code/lib/create-storybook/src/generators/SOLID/index.ts similarity index 86% rename from code/lib/cli/src/generators/SOLID/index.ts rename to code/lib/create-storybook/src/generators/SOLID/index.ts index 21347d057682..9f02e6256b45 100644 --- a/code/lib/cli/src/generators/SOLID/index.ts +++ b/code/lib/create-storybook/src/generators/SOLID/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/SVELTE/index.ts b/code/lib/create-storybook/src/generators/SVELTE/index.ts similarity index 100% rename from code/lib/cli/src/generators/SVELTE/index.ts rename to code/lib/create-storybook/src/generators/SVELTE/index.ts diff --git a/code/lib/cli/src/generators/SVELTEKIT/index.ts b/code/lib/create-storybook/src/generators/SVELTEKIT/index.ts similarity index 89% rename from code/lib/cli/src/generators/SVELTEKIT/index.ts rename to code/lib/create-storybook/src/generators/SVELTEKIT/index.ts index 50c440a7922d..2632f7edcdd0 100644 --- a/code/lib/cli/src/generators/SVELTEKIT/index.ts +++ b/code/lib/create-storybook/src/generators/SVELTEKIT/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/VUE3/index.ts b/code/lib/create-storybook/src/generators/VUE3/index.ts similarity index 91% rename from code/lib/cli/src/generators/VUE3/index.ts rename to code/lib/create-storybook/src/generators/VUE3/index.ts index c919b81cbbce..d7315f6cae39 100644 --- a/code/lib/cli/src/generators/VUE3/index.ts +++ b/code/lib/create-storybook/src/generators/VUE3/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/WEB-COMPONENTS/index.ts b/code/lib/create-storybook/src/generators/WEB-COMPONENTS/index.ts similarity index 88% rename from code/lib/cli/src/generators/WEB-COMPONENTS/index.ts rename to code/lib/create-storybook/src/generators/WEB-COMPONENTS/index.ts index a4424ecb2757..49135da7f517 100755 --- a/code/lib/cli/src/generators/WEB-COMPONENTS/index.ts +++ b/code/lib/create-storybook/src/generators/WEB-COMPONENTS/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/WEBPACK_REACT/index.ts b/code/lib/create-storybook/src/generators/WEBPACK_REACT/index.ts similarity index 88% rename from code/lib/cli/src/generators/WEBPACK_REACT/index.ts rename to code/lib/create-storybook/src/generators/WEBPACK_REACT/index.ts index 7274e40bf40f..7ded9e787096 100644 --- a/code/lib/cli/src/generators/WEBPACK_REACT/index.ts +++ b/code/lib/create-storybook/src/generators/WEBPACK_REACT/index.ts @@ -1,4 +1,4 @@ -import { CoreBuilder } from '../../project_types'; +import { CoreBuilder } from 'storybook/internal/cli'; import { baseGenerator } from '../baseGenerator'; import type { Generator } from '../types'; diff --git a/code/lib/cli/src/generators/baseGenerator.ts b/code/lib/create-storybook/src/generators/baseGenerator.ts similarity index 93% rename from code/lib/cli/src/generators/baseGenerator.ts rename to code/lib/create-storybook/src/generators/baseGenerator.ts index 26af38afdbf4..57631d3f7245 100644 --- a/code/lib/cli/src/generators/baseGenerator.ts +++ b/code/lib/create-storybook/src/generators/baseGenerator.ts @@ -1,19 +1,19 @@ -import path from 'path'; +import path, { dirname } from 'path'; import fse from 'fs-extra'; import { dedent } from 'ts-dedent'; import ora from 'ora'; import invariant from 'tiny-invariant'; -import type { JsPackageManager } from '@storybook/core/common'; -import { getPackageDetails, versions as packageVersions } from '@storybook/core/common'; -import type { SupportedFrameworks } from '@storybook/core/types'; -import type { NpmOptions } from '../NpmOptions'; -import type { SupportedRenderers, Builder } from '../project_types'; -import { SupportedLanguage, externalFrameworks } from '../project_types'; -import { copyTemplateFiles } from '../helpers'; +import type { JsPackageManager } from 'storybook/internal/common'; +import { getPackageDetails, versions as packageVersions } from 'storybook/internal/common'; +import type { SupportedFrameworks } from 'storybook/internal/types'; +import type { NpmOptions } from 'storybook/internal/cli'; +import type { SupportedRenderers, Builder } from 'storybook/internal/cli'; +import { SupportedLanguage, externalFrameworks } from 'storybook/internal/cli'; +import { copyTemplateFiles } from 'storybook/internal/cli'; import { configureMain, configurePreview } from './configure'; import type { FrameworkOptions, GeneratorOptions } from './types'; -import { configureEslintPlugin, extractEslintInfo } from '../automigrate/helpers/eslintPlugin'; -import { detectBuilder } from '../detect'; +import { configureEslintPlugin, extractEslintInfo } from 'storybook/internal/cli'; +import { detectBuilder } from 'storybook/internal/cli'; const logger = console; @@ -394,6 +394,11 @@ export async function baseGenerator( packageManager, language, destination: componentsDestinationPath, + commonAssetsDir: path.join(getCliDir(), 'rendererAssets', 'common'), }); } } + +export function getCliDir() { + return dirname(require.resolve('create-storybook/package.json')); +} diff --git a/code/lib/cli/src/generators/configure.test.ts b/code/lib/create-storybook/src/generators/configure.test.ts similarity index 99% rename from code/lib/cli/src/generators/configure.test.ts rename to code/lib/create-storybook/src/generators/configure.test.ts index d0e593a3c026..b9626fdcdfd5 100644 --- a/code/lib/cli/src/generators/configure.test.ts +++ b/code/lib/create-storybook/src/generators/configure.test.ts @@ -1,7 +1,7 @@ import { describe, beforeAll, expect, vi, it } from 'vitest'; import fse from 'fs-extra'; import { dedent } from 'ts-dedent'; -import { SupportedLanguage } from '../project_types'; +import { SupportedLanguage } from 'storybook/internal/cli'; import { configureMain, configurePreview } from './configure'; vi.mock('fs-extra'); diff --git a/code/lib/cli/src/generators/configure.ts b/code/lib/create-storybook/src/generators/configure.ts similarity index 97% rename from code/lib/cli/src/generators/configure.ts rename to code/lib/create-storybook/src/generators/configure.ts index 73c57dfc8fa3..791caf3887a3 100644 --- a/code/lib/cli/src/generators/configure.ts +++ b/code/lib/create-storybook/src/generators/configure.ts @@ -1,8 +1,8 @@ import fse from 'fs-extra'; import path from 'path'; import { dedent } from 'ts-dedent'; -import { logger } from '@storybook/core/node-logger'; -import { externalFrameworks, SupportedLanguage } from '../project_types'; +import { logger } from 'storybook/internal/node-logger'; +import { externalFrameworks, SupportedLanguage } from 'storybook/internal/cli'; interface ConfigureMainOptions { addons: string[]; diff --git a/code/lib/cli/src/generators/types.ts b/code/lib/create-storybook/src/generators/types.ts similarity index 86% rename from code/lib/cli/src/generators/types.ts rename to code/lib/create-storybook/src/generators/types.ts index d1478019be0a..deade843e206 100644 --- a/code/lib/cli/src/generators/types.ts +++ b/code/lib/create-storybook/src/generators/types.ts @@ -1,6 +1,6 @@ -import type { NpmOptions } from '../NpmOptions'; -import type { SupportedLanguage, Builder, ProjectType } from '../project_types'; -import type { JsPackageManager, PackageManagerName } from '@storybook/core/common'; +import type { NpmOptions } from 'storybook/internal/cli'; +import type { SupportedLanguage, Builder, ProjectType } from 'storybook/internal/cli'; +import type { JsPackageManager, PackageManagerName } from 'storybook/internal/common'; import type { FrameworkPreviewParts } from './configure'; export type GeneratorOptions = { diff --git a/code/lib/create-storybook/src/index.ts b/code/lib/create-storybook/src/index.ts new file mode 100644 index 000000000000..605631a36245 --- /dev/null +++ b/code/lib/create-storybook/src/index.ts @@ -0,0 +1 @@ +export { doInitiate as initiate } from './initiate'; diff --git a/code/lib/cli/src/initiate.ts b/code/lib/create-storybook/src/initiate.ts similarity index 97% rename from code/lib/cli/src/initiate.ts rename to code/lib/create-storybook/src/initiate.ts index 747e2c6f6ea7..5d0932926d7b 100644 --- a/code/lib/cli/src/initiate.ts +++ b/code/lib/create-storybook/src/initiate.ts @@ -3,8 +3,8 @@ import findUp from 'find-up'; import chalk from 'chalk'; import prompts from 'prompts'; import { telemetry } from 'storybook/internal/telemetry'; -import { withTelemetry } from '@storybook/core/core-server'; -import { NxProjectDetectedError } from '@storybook/core/server-errors'; +import { withTelemetry } from 'storybook/internal/core-server'; +import { NxProjectDetectedError } from 'storybook/internal/server-errors'; import { versions, HandledError, @@ -12,15 +12,15 @@ import { commandLog, paddedLog, getProjectRoot, -} from '@storybook/core/common'; -import type { JsPackageManager } from '@storybook/core/common'; +} from 'storybook/internal/common'; +import type { JsPackageManager } from 'storybook/internal/common'; import { dedent } from 'ts-dedent'; import boxen from 'boxen'; import { lt, prerelease } from 'semver'; -import type { Builder } from './project_types'; -import { installableProjectTypes, ProjectType } from './project_types'; -import { detect, isStorybookInstantiated, detectLanguage, detectPnp } from './detect'; +import type { Builder, NpmOptions } from 'storybook/internal/cli'; +import { installableProjectTypes, ProjectType } from 'storybook/internal/cli'; +import { detect, isStorybookInstantiated, detectLanguage, detectPnp } from 'storybook/internal/cli'; import angularGenerator from './generators/ANGULAR'; import emberGenerator from './generators/EMBER'; import reactGenerator from './generators/REACT'; @@ -37,7 +37,6 @@ import qwikGenerator from './generators/QWIK'; import svelteKitGenerator from './generators/SVELTEKIT'; import solidGenerator from './generators/SOLID'; import serverGenerator from './generators/SERVER'; -import type { NpmOptions } from './NpmOptions'; import type { CommandOptions, GeneratorOptions } from './generators/types'; import { currentDirectoryIsEmpty, scaffoldNewProject } from './scaffold-new-project'; diff --git a/code/lib/cli/src/scaffold-new-project.ts b/code/lib/create-storybook/src/scaffold-new-project.ts similarity index 98% rename from code/lib/cli/src/scaffold-new-project.ts rename to code/lib/create-storybook/src/scaffold-new-project.ts index eee3fbbe7939..18310892fbc5 100644 --- a/code/lib/cli/src/scaffold-new-project.ts +++ b/code/lib/create-storybook/src/scaffold-new-project.ts @@ -8,9 +8,9 @@ import { dedent } from 'ts-dedent'; import { telemetry } from 'storybook/internal/telemetry'; import { GenerateNewProjectOnInitError } from 'storybook/internal/server-errors'; -import { logger } from '@storybook/core/node-logger'; +import { logger } from 'storybook/internal/node-logger'; -import type { PackageManagerName } from '@storybook/core/common'; +import type { PackageManagerName } from 'storybook/internal/common'; import type { CommandOptions } from './generators/types'; type CoercedPackageManagerName = 'npm' | 'yarn' | 'pnpm'; diff --git a/code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.doc.json b/code/lib/create-storybook/templates/angular/application/template-csf/.storybook/tsconfig.doc.json similarity index 100% rename from code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.doc.json rename to code/lib/create-storybook/templates/angular/application/template-csf/.storybook/tsconfig.doc.json diff --git a/code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.json b/code/lib/create-storybook/templates/angular/application/template-csf/.storybook/tsconfig.json similarity index 100% rename from code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.json rename to code/lib/create-storybook/templates/angular/application/template-csf/.storybook/tsconfig.json diff --git a/code/lib/cli/templates/angular/application/template-csf/.storybook/typings.d.ts b/code/lib/create-storybook/templates/angular/application/template-csf/.storybook/typings.d.ts similarity index 100% rename from code/lib/cli/templates/angular/application/template-csf/.storybook/typings.d.ts rename to code/lib/create-storybook/templates/angular/application/template-csf/.storybook/typings.d.ts diff --git a/code/lib/cli/templates/angular/library/template-csf/.storybook/tsconfig.json b/code/lib/create-storybook/templates/angular/library/template-csf/.storybook/tsconfig.json similarity index 100% rename from code/lib/cli/templates/angular/library/template-csf/.storybook/tsconfig.json rename to code/lib/create-storybook/templates/angular/library/template-csf/.storybook/tsconfig.json diff --git a/code/lib/cli/templates/angular/library/template-csf/.storybook/typings.d.ts b/code/lib/create-storybook/templates/angular/library/template-csf/.storybook/typings.d.ts similarity index 100% rename from code/lib/cli/templates/angular/library/template-csf/.storybook/typings.d.ts rename to code/lib/create-storybook/templates/angular/library/template-csf/.storybook/typings.d.ts diff --git a/code/lib/cli/templates/aurelia/template-csf/.storybook/tsconfig.json b/code/lib/create-storybook/templates/aurelia/template-csf/.storybook/tsconfig.json similarity index 100% rename from code/lib/cli/templates/aurelia/template-csf/.storybook/tsconfig.json rename to code/lib/create-storybook/templates/aurelia/template-csf/.storybook/tsconfig.json diff --git a/code/lib/cli/templates/aurelia/template-csf/.storybook/typings.d.ts b/code/lib/create-storybook/templates/aurelia/template-csf/.storybook/typings.d.ts similarity index 100% rename from code/lib/cli/templates/aurelia/template-csf/.storybook/typings.d.ts rename to code/lib/create-storybook/templates/aurelia/template-csf/.storybook/typings.d.ts diff --git a/code/lib/create-storybook/tsconfig.json b/code/lib/create-storybook/tsconfig.json new file mode 100644 index 000000000000..73a65ef2ef6e --- /dev/null +++ b/code/lib/create-storybook/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": {}, + "include": ["src/**/*"] +} diff --git a/code/lib/create-storybook/vitest.config.ts b/code/lib/create-storybook/vitest.config.ts new file mode 100644 index 000000000000..03172200442f --- /dev/null +++ b/code/lib/create-storybook/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig, mergeConfig } from 'vitest/config'; +import { vitestCommonConfig } from '../../vitest.workspace'; + +export default mergeConfig( + vitestCommonConfig, + defineConfig({ + // Add custom config here + }) +); diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index c843d1cb287a..70410a350e66 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-plugin", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Enrich CSF files via static analysis", "keywords": [ "storybook" diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index 1cf6a12e37b8..7a5f7ca811c3 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/instrumenter", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json index 4dcd0673f1e2..f561277fd638 100644 --- a/code/lib/react-dom-shim/package.json +++ b/code/lib/react-dom-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-dom-shim", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 51b12d85850b..ab2e7abddec5 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/source-loader", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Source loader", "keywords": [ "lib", diff --git a/code/lib/test/package.json b/code/lib/test/package.json index 418ec733c626..20516e4f2f95 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/test", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/package.json b/code/package.json index fc4a1c93c6ab..9828493a397c 100644 --- a/code/package.json +++ b/code/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/root", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "private": true, "description": "Storybook root", "homepage": "https://storybook.js.org/", @@ -175,6 +175,7 @@ "@typescript-eslint/parser": "^6.18.1", "@vitejs/plugin-react": "^3.0.1", "@vitest/coverage-v8": "^1.2.2", + "create-storybook": "workspace:*", "cross-env": "^7.0.3", "danger": "^12.3.3", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index e5fae9972cb9..f9218fc2a9c0 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-create-react-app", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Create React App preset", "keywords": [ "storybook" diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index aa853a769217..6b40c4c03d68 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-html-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index ac6a24fa36e3..8b26f465123d 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-preact-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index cce758959eb9..ce6519867d55 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-react-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading", "keywords": [ "storybook" diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 20b42f8db5f2..e135900dfb9a 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-server-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 307c9a554d3c..3870a30bfffb 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-svelte-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index 221ee220960c..6ef32e52c93a 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue3-webpack", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index 834e439d380f..a36af96d8484 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook HTML renderer", "keywords": [ "storybook" diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index 5dc4a00eb5c9..8290b7e156be 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook Preact renderer", "keywords": [ "storybook" diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 4a2a57a7e928..0bb0f5299ad5 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook React renderer", "keywords": [ "storybook" @@ -78,7 +78,6 @@ "acorn-walk": "^7.2.0", "escodegen": "^2.1.0", "html-tags": "^3.1.0", - "lodash": "^4.17.21", "prop-types": "^15.7.2", "react-element-to-jsx-string": "^15.0.0", "semver": "^7.3.7", @@ -93,6 +92,7 @@ "@types/util-deprecate": "^1.0.0", "babel-plugin-react-docgen": "^4.2.1", "expect-type": "^0.15.0", + "lodash": "^4.17.21", "require-from-string": "^2.0.2" }, "peerDependencies": { diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index 7cf74018a1d0..6a4c89d642ae 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook Server renderer", "keywords": [ "storybook" diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index f93f6cf41a04..b111a2035256 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook Svelte renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index 6ea6dc753fde..993a91e97f16 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook Vue 3 renderer", "keywords": [ "storybook" @@ -69,7 +69,6 @@ "@storybook/preview-api": "workspace:^", "@storybook/theming": "workspace:^", "@vue/compiler-core": "^3.0.0", - "lodash": "^4.17.21", "ts-dedent": "^2.0.0", "type-fest": "~2.19", "vue-component-type-helpers": "latest" @@ -79,6 +78,7 @@ "@testing-library/vue": "^8.0.0", "@types/prettier": "^3.0.0", "@vitejs/plugin-vue": "^4.4.0", + "lodash": "^4.17.21", "typescript": "^5.3.2", "vue": "^3.2.47", "vue-tsc": "latest" diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index edc54767669e..6555f80209de 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook web-components renderer", "keywords": [ "lit", diff --git a/code/yarn.lock b/code/yarn.lock index 0c6f112474b9..b23440e6edb9 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -3757,19 +3757,6 @@ __metadata: languageName: node linkType: hard -"@ndelangen/fs-extra-unified@npm:^1.0.3": - version: 1.0.3 - resolution: "@ndelangen/fs-extra-unified@npm:1.0.3" - peerDependencies: - "@types/fs-extra": ^11.0.0 - fs-extra: ^11.0.0 - peerDependenciesMeta: - "@types/fs-extra": - optional: true - checksum: 10c0/397e94eb34a644e33bb7e0cf263da2758efb44924dd6b4bd90e82184868cf4dca5f116b628a9dd0837e3c5c9a36735069bec4312f5d6be2b9997cb0fd3712aaa - languageName: node - linkType: hard - "@ndelangen/get-tarball@npm:^3.0.7": version: 3.0.9 resolution: "@ndelangen/get-tarball@npm:3.0.9" @@ -5646,10 +5633,35 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/cli@workspace:lib/cli-storybook" dependencies: + "@babel/core": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + "@storybook/codemod": "workspace:*" + "@types/cross-spawn": "npm:^6.0.2" + "@types/prompts": "npm:^2.0.9" + "@types/semver": "npm:^7.3.4" + boxen: "npm:^7.1.1" + chalk: "npm:^4.1.0" + commander: "npm:^6.2.1" + create-storybook: "workspace:*" + cross-spawn: "npm:^7.0.3" + envinfo: "npm:^7.7.3" + fd-package-json: "npm:^1.2.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + giget: "npm:^1.0.0" + globby: "npm:^14.0.1" + jscodeshift: "npm:^0.15.1" + leven: "npm:^3.1.0" + prompts: "npm:^2.4.0" + semver: "npm:^7.3.7" + slash: "npm:^5.0.0" storybook: "workspace:*" + strip-ansi: "npm:^7.1.0" + tiny-invariant: "npm:^1.3.1" + ts-dedent: "npm:^2.0.0" + typescript: "npm:^5.3.2" bin: - sb: ./index.js - storybook: ./index.js + cli: ./bin/index.cjs languageName: unknown linkType: soft @@ -5758,7 +5770,7 @@ __metadata: "@emotion/styled": "npm:^11.11.0" "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1" "@fal-works/esbuild-plugin-global-externals": "npm:^2.1.2" - "@ndelangen/fs-extra-unified": "npm:^1.0.3" + "@ndelangen/get-tarball": "npm:^3.0.7" "@popperjs/core": "npm:^2.6.0" "@radix-ui/react-dialog": "npm:^1.0.5" "@radix-ui/react-scroll-area": "npm:^1.0.5" @@ -5784,9 +5796,10 @@ __metadata: "@types/picomatch": "npm:^2.3.0" "@types/prettier": "npm:^3.0.0" "@types/pretty-hrtime": "npm:^1.0.0" + "@types/prompts": "npm:^2.0.9" "@types/react-syntax-highlighter": "npm:11.0.5" "@types/react-transition-group": "npm:^4" - "@types/semver": "npm:^7.3.4" + "@types/semver": "npm:^7.5.8" "@types/ws": "npm:^8" "@vitest/utils": "npm:^1.3.1" "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" @@ -5803,6 +5816,7 @@ __metadata: chai: "npm:^4.4.1" chalk: "npm:^5.3.0" cli-table3: "npm:^0.6.1" + commander: "npm:^6.2.1" comment-parser: "npm:^1.4.1" compression: "npm:^1.7.4" copy-to-clipboard: "npm:^3.3.1" @@ -5810,6 +5824,7 @@ __metadata: css: "npm:^3.0.0" deep-object-diff: "npm:^1.1.0" dequal: "npm:^2.0.2" + detect-indent: "npm:^7.0.1" detect-package-manager: "npm:^3.0.2" detect-port: "npm:^1.3.0" diff: "npm:^5.2.0" @@ -5828,12 +5843,14 @@ __metadata: flush-promises: "npm:^1.0.2" fs-extra: "npm:^11.1.0" fuse.js: "npm:^3.6.1" + get-npm-tarball-url: "npm:^2.0.3" glob: "npm:^10.0.0" globby: "npm:^14.0.1" handlebars: "npm:^4.7.7" js-yaml: "npm:^4.1.0" jsdoc-type-pratt-parser: "npm:^4.0.0" lazy-universal-dotenv: "npm:^4.0.0" + leven: "npm:^4.0.0" lodash: "npm:^4.17.21" markdown-to-jsx: "npm:^7.4.5" memoizerific: "npm:^1.11.3" @@ -5861,9 +5878,10 @@ __metadata: recast: "npm:^0.23.5" require-from-string: "npm:^2.0.2" resolve-from: "npm:^5.0.0" - semver: "npm:^7.3.7" + semver: "npm:^7.6.2" slash: "npm:^5.0.0" store2: "npm:^2.14.2" + strip-json-comments: "npm:^5.0.1" telejson: "npm:^7.2.0" tiny-invariant: "npm:^1.3.1" tinyspy: "npm:^2.2.0" @@ -6565,6 +6583,7 @@ __metadata: "@typescript-eslint/parser": "npm:^6.18.1" "@vitejs/plugin-react": "npm:^3.0.1" "@vitest/coverage-v8": "npm:^1.2.2" + create-storybook: "workspace:*" cross-env: "npm:^7.0.3" danger: "npm:^12.3.3" esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" @@ -7951,10 +7970,10 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.5.0, @types/semver@npm:^7.5.6": - version: 7.5.7 - resolution: "@types/semver@npm:7.5.7" - checksum: 10c0/fb72d8b86a7779650f14ae89542f1da2ab624adb8188d98754b1d29a2fe3d41f0348bf9435b60ad145df1812fd2a09b3256779aa23b532c199f3dee59619a1eb +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.5.0, @types/semver@npm:^7.5.6, @types/semver@npm:^7.5.8": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa languageName: node linkType: hard @@ -12059,6 +12078,33 @@ __metadata: languageName: node linkType: hard +"create-storybook@workspace:*, create-storybook@workspace:lib/create-storybook": + version: 0.0.0-use.local + resolution: "create-storybook@workspace:lib/create-storybook" + dependencies: + "@types/prompts": "npm:^2.0.9" + "@types/semver": "npm:^7.3.4" + "@types/util-deprecate": "npm:^1.0.0" + boxen: "npm:^7.1.1" + chalk: "npm:^4.1.0" + commander: "npm:^6.2.1" + execa: "npm:^5.0.0" + fd-package-json: "npm:^1.2.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + ora: "npm:^5.4.1" + prettier: "npm:^3.1.1" + prompts: "npm:^2.4.0" + semver: "npm:^7.3.7" + storybook: "workspace:*" + tiny-invariant: "npm:^1.3.1" + ts-dedent: "npm:^2.0.0" + typescript: "npm:^5.3.2" + bin: + create-storybook: ./bin/index.cjs + languageName: unknown + linkType: soft + "critters@npm:0.0.22": version: 0.0.22 resolution: "critters@npm:0.0.22" @@ -12662,6 +12708,13 @@ __metadata: languageName: node linkType: hard +"detect-indent@npm:^7.0.1": + version: 7.0.1 + resolution: "detect-indent@npm:7.0.1" + checksum: 10c0/47b6e3e3dda603c386e73b129f3e84844ae59bc2615f5072becf3cc02eab400bed5a4e6379c49d0b18cf630e80c2b07e87e0038b777addbc6ef793ad77dd05bc + languageName: node + linkType: hard + "detect-libc@npm:^2.0.3": version: 2.0.3 resolution: "detect-libc@npm:2.0.3" @@ -18335,6 +18388,13 @@ __metadata: languageName: node linkType: hard +"leven@npm:^4.0.0": + version: 4.0.0 + resolution: "leven@npm:4.0.0" + checksum: 10c0/393bd949d93103d9ef487be96321bdb02c2e7695e372193f650642e1ad653c61b03da16bf55e45d442db59c7b6407eb947a7748b5777e48ddf0ada25f8b2a815 + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -24719,7 +24779,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.0, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": +"semver@npm:7.6.0": version: 7.6.0 resolution: "semver@npm:7.6.0" dependencies: @@ -24748,6 +24808,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c + languageName: node + linkType: hard + "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -25534,42 +25603,7 @@ __metadata: version: 0.0.0-use.local resolution: "storybook@workspace:lib/cli" dependencies: - "@babel/core": "npm:^7.24.4" - "@babel/types": "npm:^7.24.0" - "@ndelangen/get-tarball": "npm:^3.0.7" - "@storybook/codemod": "workspace:*" "@storybook/core": "workspace:*" - "@types/cross-spawn": "npm:^6.0.2" - "@types/prompts": "npm:^2.0.9" - "@types/semver": "npm:^7.3.4" - "@types/util-deprecate": "npm:^1.0.0" - "@yarnpkg/fslib": "npm:2.10.3" - "@yarnpkg/libzip": "npm:2.3.0" - boxen: "npm:^7.1.1" - chalk: "npm:^4.1.0" - commander: "npm:^6.2.1" - cross-spawn: "npm:^7.0.3" - detect-indent: "npm:^6.1.0" - envinfo: "npm:^7.7.3" - execa: "npm:^5.0.0" - fd-package-json: "npm:^1.2.0" - find-up: "npm:^5.0.0" - fs-extra: "npm:^11.1.0" - get-npm-tarball-url: "npm:^2.0.3" - giget: "npm:^1.0.0" - globby: "npm:^14.0.1" - jscodeshift: "npm:^0.15.1" - leven: "npm:^3.1.0" - ora: "npm:^5.4.1" - prettier: "npm:^3.1.1" - prompts: "npm:^2.4.0" - semver: "npm:^7.3.7" - slash: "npm:^5.0.0" - strip-ansi: "npm:^7.1.0" - strip-json-comments: "npm:^3.1.1" - tempy: "npm:^3.1.0" - tiny-invariant: "npm:^1.3.1" - ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" bin: getstorybook: ./bin/index.cjs @@ -25827,6 +25861,13 @@ __metadata: languageName: node linkType: hard +"strip-json-comments@npm:^5.0.1": + version: 5.0.1 + resolution: "strip-json-comments@npm:5.0.1" + checksum: 10c0/c9d9d55a0167c57aa688df3aa20628cf6f46f0344038f189eaa9d159978e80b2bfa6da541a40d83f7bde8a3554596259bf6b70578b2172356536a0e3fa5a0982 + languageName: node + linkType: hard + "strip-literal@npm:^2.0.0": version: 2.1.0 resolution: "strip-literal@npm:2.1.0" @@ -26219,13 +26260,6 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "temp-dir@npm:3.0.0" - checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 - languageName: node - linkType: hard - "temp@npm:^0.8.4": version: 0.8.4 resolution: "temp@npm:0.8.4" @@ -26235,18 +26269,6 @@ __metadata: languageName: node linkType: hard -"tempy@npm:^3.1.0": - version: 3.1.0 - resolution: "tempy@npm:3.1.0" - dependencies: - is-stream: "npm:^3.0.0" - temp-dir: "npm:^3.0.0" - type-fest: "npm:^2.12.2" - unique-string: "npm:^3.0.0" - checksum: 10c0/b88e70baa8d935ba8f0e0372b59ad1a961121f098da5fb4a6e05bec98ec32a49026b553532fb75c1c102ec782fd4c6a6bde0d46cbe87013fa324451ce476fb76 - languageName: node - linkType: hard - "terser-webpack-plugin@npm:*, terser-webpack-plugin@npm:^5.3.1, terser-webpack-plugin@npm:^5.3.10": version: 5.3.10 resolution: "terser-webpack-plugin@npm:5.3.10" diff --git a/docs/_snippets/portable-stories-vitest-compose-stories.md b/docs/_snippets/portable-stories-vitest-compose-stories.md index 8ee390c4824f..3ac894b23af5 100644 --- a/docs/_snippets/portable-stories-vitest-compose-stories.md +++ b/docs/_snippets/portable-stories-vitest-compose-stories.md @@ -1,6 +1,7 @@ ```tsx filename="Button.test.tsx" renderer="react" language="ts" import { test, expect } from 'vitest'; import { screen } from '@testing-library/react'; +// 👉 Using Next.js? Import from @storybook/nextjs instead import { composeStories } from '@storybook/react'; // Import all stories and the component annotations from the stories file diff --git a/docs/api/portable-stories/portable-stories-vitest.mdx b/docs/api/portable-stories/portable-stories-vitest.mdx index f44d173dffc1..3093fea2b4d4 100644 --- a/docs/api/portable-stories/portable-stories-vitest.mdx +++ b/docs/api/portable-stories/portable-stories-vitest.mdx @@ -28,7 +28,7 @@ sidebar: - **Using `Next.js`?** Next.js requires specific configuration that is only available in [Jest](./portable-stories-jest.mdx). The portable stories API is not supported in Next.js with Vitest. + **Using `Next.js`?** You can test your Next.js stories with Vitest by installing and setting up the [`vite-plugin-storybook-nextjs`](https://github.com/storybookjs/vite-plugin-storybook-nextjs) package. diff --git a/docs/versions/next.json b/docs/versions/next.json index 955a2c69a495..50ef052da1b0 100644 --- a/docs/versions/next.json +++ b/docs/versions/next.json @@ -1 +1 @@ -{"version":"8.3.0-alpha.3","info":{"plain":"- Angular: Fix Angular template error for props with a circular reference - [#28498](https://github.com/storybookjs/storybook/pull/28498), thanks @Marklb!\n- Angular: Fix template props not able to use dot notation - [#28588](https://github.com/storybookjs/storybook/pull/28588), thanks @Marklb!\n- CLI: Fix the initialization of Storybook in workspaces - [#28699](https://github.com/storybookjs/storybook/pull/28699), thanks @valentinpalkovic!\n- CPC: Fix missing exports for addon-kit - [#28691](https://github.com/storybookjs/storybook/pull/28691), thanks @ndelangen!\n- CPC: Fix type usage in renderers - [#28745](https://github.com/storybookjs/storybook/pull/28745), thanks @ndelangen!\n- Controls: Add disableSave parameter - [#28734](https://github.com/storybookjs/storybook/pull/28734), thanks @valentinpalkovic!\n- React: Avoid 'Dynamic require of react is not possible' issue - [#28730](https://github.com/storybookjs/storybook/pull/28730), thanks @valentinpalkovic!\n- Telemetry: Add mount, beforeEach, moduleMock stats - [#28624](https://github.com/storybookjs/storybook/pull/28624), thanks @shilman!\n- Telemetry: CSF feature usage - [#28622](https://github.com/storybookjs/storybook/pull/28622), thanks @shilman!\n- Types: Adjust beforeAll to be non-nullable in NormalizedProjectAnnotations - [#28671](https://github.com/storybookjs/storybook/pull/28671), thanks @kasperpeulen!\n- Vue: Fix out of memory error when using vue-component-meta for events and slots - [#28674](https://github.com/storybookjs/storybook/pull/28674), thanks @larsrickert!\n- Vue: Improve generated code snippets - [#27194](https://github.com/storybookjs/storybook/pull/27194), thanks @larsrickert!"}} +{"version":"8.3.0-alpha.4","info":{"plain":"- CSF: Allow overridding globals at the story level - [#26654](https://github.com/storybookjs/storybook/pull/26654), thanks @tmeasday!\n- Core: Introduce run over play in portable stories, and revert back play changes of 8.2 - [#28764](https://github.com/storybookjs/storybook/pull/28764), thanks @kasperpeulen!\n- Core: Split Storybook CLI - [#28519](https://github.com/storybookjs/storybook/pull/28519), thanks @kasperpeulen!\n- Fix: Invariant failed: Expected package.json#version to be defined in the \\\"undefined\\\" package - [#28752](https://github.com/storybookjs/storybook/pull/28752), thanks @abcdmku!\n- Next.js: Make RSC portable-stories compatible - [#28756](https://github.com/storybookjs/storybook/pull/28756), thanks @valentinpalkovic!\n- UI: Fix collapse/expand all functionality - [#28582](https://github.com/storybookjs/storybook/pull/28582), thanks @filipemelo2002!"}} diff --git a/scripts/create-nx-sandbox-projects.ts b/scripts/create-nx-sandbox-projects.ts index 52f7894b5078..6e9b8a6029d4 100644 --- a/scripts/create-nx-sandbox-projects.ts +++ b/scripts/create-nx-sandbox-projects.ts @@ -1,4 +1,4 @@ -import * as templates from '../code/lib/cli/src/sandbox-templates'; +import * as templates from '../code/lib/cli-storybook/src/sandbox-templates'; import * as fs from 'fs'; import * as path from 'path'; diff --git a/scripts/event-log-checker.ts b/scripts/event-log-checker.ts index bbcc1aeaf12f..164431aa342c 100644 --- a/scripts/event-log-checker.ts +++ b/scripts/event-log-checker.ts @@ -1,7 +1,7 @@ import chalk from 'chalk'; import assert from 'assert'; import { esMain } from './utils/esmain'; -import { allTemplates } from '../code/lib/cli/src/sandbox-templates'; +import { allTemplates } from '../code/lib/cli-storybook/src/sandbox-templates'; import versions from '../code/core/src/common/versions'; import { oneWayHash } from '../code/core/src/telemetry/one-way-hash'; diff --git a/scripts/get-template.ts b/scripts/get-template.ts index a04924c4c473..166f191fc6de 100644 --- a/scripts/get-template.ts +++ b/scripts/get-template.ts @@ -11,7 +11,7 @@ import { type Cadence, type Template as TTemplate, type SkippableTask, -} from '../code/lib/cli/src/sandbox-templates'; +} from '../code/lib/cli-storybook/src/sandbox-templates'; import { SANDBOX_DIRECTORY } from './utils/constants'; const sandboxDir = process.env.SANDBOX_ROOT || SANDBOX_DIRECTORY; diff --git a/scripts/sandbox/generate.ts b/scripts/sandbox/generate.ts index 88871e6eec4d..8ada9832705b 100755 --- a/scripts/sandbox/generate.ts +++ b/scripts/sandbox/generate.ts @@ -9,7 +9,7 @@ import { esMain } from '../utils/esmain'; import type { OptionValues } from '../utils/options'; import { createOptions } from '../utils/options'; -import { allTemplates as sandboxTemplates } from '../../code/lib/cli/src/sandbox-templates'; +import { allTemplates as sandboxTemplates } from '../../code/lib/cli-storybook/src/sandbox-templates'; import storybookVersions from '../../code/core/src/common/versions'; import { JsPackageManagerFactory } from '../../code/core/src/common/js-package-manager/JsPackageManagerFactory'; @@ -38,11 +38,11 @@ const sbInit = async ( flags?: string[], debug?: boolean ) => { - const sbCliBinaryPath = join(__dirname, `../../code/lib/cli/bin/index.cjs`); + const sbCliBinaryPath = join(__dirname, `../../code/lib/create-storybook/bin/index.cjs`); console.log(`🎁 Installing storybook`); const env = { STORYBOOK_DISABLE_TELEMETRY: 'true', ...envVars }; const fullFlags = ['--yes', ...(flags || [])]; - await runCommand(`${sbCliBinaryPath} init ${fullFlags.join(' ')}`, { cwd, env }, debug); + await runCommand(`${sbCliBinaryPath} ${fullFlags.join(' ')}`, { cwd, env }, debug); }; type LocalRegistryProps = { diff --git a/scripts/sandbox/utils/template.ts b/scripts/sandbox/utils/template.ts index 3694259d66cb..5f5228a46dc5 100644 --- a/scripts/sandbox/utils/template.ts +++ b/scripts/sandbox/utils/template.ts @@ -2,7 +2,7 @@ import { render } from 'ejs'; import { readFile } from 'fs-extra'; import prettier from 'prettier'; import type { GeneratorConfig } from './types'; -import { allTemplates as sandboxTemplates } from '../../../code/lib/cli/src/sandbox-templates'; +import { allTemplates as sandboxTemplates } from '../../../code/lib/cli-storybook/src/sandbox-templates'; export async function renderTemplate(templatePath: string, templateData: Record) { const template = await readFile(templatePath, 'utf8'); diff --git a/scripts/task.ts b/scripts/task.ts index 80fa759036b4..857a87c75bbc 100644 --- a/scripts/task.ts +++ b/scripts/task.ts @@ -32,7 +32,7 @@ import { allTemplates as TEMPLATES, type TemplateKey, type Template, -} from '../code/lib/cli/src/sandbox-templates'; +} from '../code/lib/cli-storybook/src/sandbox-templates'; import { version } from '../code/package.json'; diff --git a/scripts/tasks/sandbox-parts.ts b/scripts/tasks/sandbox-parts.ts index 90cdd9c43e45..bcde26616339 100644 --- a/scripts/tasks/sandbox-parts.ts +++ b/scripts/tasks/sandbox-parts.ts @@ -29,8 +29,8 @@ import type { ConfigFile } from '../../code/core/src/csf-tools'; import { writeConfig } from '../../code/core/src/csf-tools'; import { filterExistsInCodeDir } from '../utils/filterExistsInCodeDir'; import { findFirstPath } from '../utils/paths'; -import { detectLanguage } from '../../code/lib/cli/src/detect'; -import { SupportedLanguage } from '../../code/lib/cli/src/project_types'; +import { detectLanguage } from '../../code/core/src/cli/detect'; +import { SupportedLanguage } from '../../code/core/src/cli/project_types'; import { updatePackageScripts } from '../utils/package-json'; import { addPreviewAnnotations, readMainConfig } from '../utils/main-js'; import { @@ -41,7 +41,7 @@ import { import { workspacePath } from '../utils/workspace'; import { babelParse } from '../../code/core/src/csf-tools/babelParse'; import { CODE_DIRECTORY, REPROS_DIRECTORY } from '../utils/constants'; -import type { TemplateKey } from '../../code/lib/cli/src/sandbox-templates'; +import type { TemplateKey } from '../../code/lib/cli-storybook/src/sandbox-templates'; import { isFunction } from 'lodash'; const logger = console; diff --git a/scripts/utils/cli-step.ts b/scripts/utils/cli-step.ts index 76e6f4f0498a..c05e03041891 100644 --- a/scripts/utils/cli-step.ts +++ b/scripts/utils/cli-step.ts @@ -5,6 +5,8 @@ import { exec } from './exec'; const require = createRequire(import.meta.url); const cliExecutable = require.resolve('../../code/lib/cli/bin/index.cjs'); +const toolboxExecutable = require.resolve('../../code/lib/cli-storybook/bin/index.cjs'); +const createStorybookExecutable = require.resolve('../../code/lib/create-storybook/bin/index.cjs'); export type CLIStep = { command: string; @@ -83,7 +85,13 @@ export async function executeCLIStep( if (cliStep.hasArgument && !options.argument) throw new Error(`Argument required for ${cliStep.command} command.`); - const prefix = `node ${cliExecutable} ${cliStep.command}`; + const cliCommand = cliStep.command; + + const prefix = ['dev', 'build'].includes(cliCommand) + ? `node ${cliExecutable} ${cliCommand}` + : cliCommand === 'init' + ? `node ${createStorybookExecutable} ${cliCommand}` + : `node ${toolboxExecutable} ${cliCommand}`; const command = getCommand( cliStep.hasArgument ? `${prefix} ${options.argument}` : prefix, cliStep.options, diff --git a/scripts/verdaccio.yaml b/scripts/verdaccio.yaml index 6bb220a09948..9ac5a6ef6932 100644 --- a/scripts/verdaccio.yaml +++ b/scripts/verdaccio.yaml @@ -125,6 +125,10 @@ packages: access: $all publish: $all + 'create-storybook': + access: $all + publish: $all + 'storybook': access: $all publish: $all