11import { sync as spawnSync } from 'cross-spawn' ;
2- import { telemetry , getStorybookCoreVersion } from '@storybook/telemetry' ;
2+ import { telemetry } from '@storybook/telemetry' ;
33import semver , { coerce , eq , lt } from 'semver' ;
44import { deprecate , logger } from '@storybook/node-logger' ;
55import { withTelemetry } from '@storybook/core-server' ;
@@ -11,7 +11,11 @@ import {
1111import chalk from 'chalk' ;
1212import dedent from 'ts-dedent' ;
1313import boxen from 'boxen' ;
14- import type { PackageJsonWithMaybeDeps , PackageManagerName } from './js-package-manager' ;
14+ import type {
15+ JsPackageManager ,
16+ PackageJsonWithMaybeDeps ,
17+ PackageManagerName ,
18+ } from './js-package-manager' ;
1519import { JsPackageManagerFactory , getPackageDetails , useNpmWarning } from './js-package-manager' ;
1620import { commandLog } from './helpers' ;
1721import { automigrate } from './automigrate' ;
@@ -34,6 +38,18 @@ export const getStorybookVersion = (line: string) => {
3438 } ;
3539} ;
3640
41+ const getInstalledStorybookVersion = async ( packageManager : JsPackageManager ) => {
42+ const installations = await packageManager . findInstallations ( [ 'storybook' , '@storybook/cli' ] ) ;
43+ if ( ! installations ) {
44+ return undefined ;
45+ }
46+ const cliVersion = installations . dependencies [ '@storybook/cli' ] ?. [ 0 ] . version ;
47+ if ( cliVersion ) {
48+ return cliVersion ;
49+ }
50+ return installations . dependencies [ 'storybook' ] ?. [ 0 ] . version ;
51+ } ;
52+
3753const deprecatedPackages = [
3854 {
3955 minVersion : '6.0.0-alpha.0' ,
@@ -91,9 +107,7 @@ export const checkVersionConsistency = () => {
91107 } ) ;
92108} ;
93109
94- /**
95- * DEPRECATED BEHAVIOR SECTION
96- */
110+ // #region DEPRECATED BEHAVIOR SECTION
97111
98112type ExtraFlags = Record < string , string [ ] > ;
99113const EXTRA_FLAGS : ExtraFlags = {
@@ -170,7 +184,8 @@ export const deprecatedUpgrade = async ({
170184 }
171185 const packageManager = JsPackageManagerFactory . getPackageManager ( { force : pkgMgr } ) ;
172186
173- const beforeVersion = await getStorybookCoreVersion ( ) ;
187+ // If we can't determine the existing version fallback to v0.0.0 to not block the upgrade
188+ const beforeVersion = ( await getInstalledStorybookVersion ( packageManager ) ) ?? '0.0.0' ;
174189
175190 commandLog ( `Checking for latest versions of '@storybook/*' packages` ) ;
176191
@@ -221,7 +236,7 @@ export const deprecatedUpgrade = async ({
221236 automigrationResults = await automigrate ( { dryRun, yes, packageManager : pkgMgr , configDir } ) ;
222237 }
223238 if ( ! options . disableTelemetry ) {
224- const afterVersion = await getStorybookCoreVersion ( ) ;
239+ const afterVersion = await getInstalledStorybookVersion ( packageManager ) ;
225240 const { preCheckFailure, fixResults } = automigrationResults || { } ;
226241 const automigrationTelemetry = {
227242 automigrationResults : preCheckFailure ? null : fixResults ,
@@ -237,9 +252,7 @@ export const deprecatedUpgrade = async ({
237252 }
238253} ;
239254
240- /**
241- * DEPRECATED BEHAVIOR SECTION END
242- */
255+ // #endregion DEPRECATED BEHAVIOR SECTION
243256
244257export interface UpgradeOptions {
245258 /**
@@ -292,8 +305,9 @@ export const doUpgrade = async ({
292305
293306 const packageManager = JsPackageManagerFactory . getPackageManager ( { force : pkgMgr } ) ;
294307
295- // If we can't determine the existing version (Yarn PnP), fallback to v0.0.0 to not block the upgrade
296- const beforeVersion = ( await getStorybookCoreVersion ( ) ) ?? '0.0.0' ;
308+ // If we can't determine the existing version fallback to v0.0.0 to not block the upgrade
309+ const beforeVersion = ( await getInstalledStorybookVersion ( packageManager ) ) ?? '0.0.0' ;
310+
297311 const currentVersion = versions [ '@storybook/cli' ] ;
298312 const isCanary = currentVersion . startsWith ( '0.0.0' ) ;
299313
@@ -385,7 +399,7 @@ export const doUpgrade = async ({
385399 automigrationResults = await automigrate ( { dryRun, yes, packageManager : pkgMgr , configDir } ) ;
386400 }
387401 if ( ! options . disableTelemetry ) {
388- const afterVersion = await getStorybookCoreVersion ( ) ;
402+ const afterVersion = await getInstalledStorybookVersion ( packageManager ) ;
389403 const { preCheckFailure, fixResults } = automigrationResults || { } ;
390404 const automigrationTelemetry = {
391405 automigrationResults : preCheckFailure ? null : fixResults ,
0 commit comments