diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index c3b4dc4afcf2..11f99fb2af8b 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -41,23 +41,13 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@babel/types": "^7.24.0", "@storybook/codemod": "workspace:*", "@types/semver": "^7.3.4", "commander": "^12.1.0", "create-storybook": "workspace:*", - "cross-spawn": "^7.0.6", - "envinfo": "^7.7.3", - "execa": "^9.5.2", "giget": "^1.0.0", - "globby": "^14.0.1", "jscodeshift": "^0.15.1", - "leven": "^3.1.0", - "p-limit": "^6.2.0", - "prompts": "^2.4.0", - "semver": "^7.3.7", "storybook": "workspace:*", - "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, "devDependencies": { @@ -65,9 +55,18 @@ "@types/prompts": "^2.0.9", "boxen": "^7.1.1", "comment-json": "^4.2.5", + "cross-spawn": "^7.0.6", + "envinfo": "^7.14.0", + "execa": "^9.6.0", "find-up": "^7.0.0", + "globby": "^14.0.1", + "leven": "^4.0.0", + "p-limit": "^6.2.0", "picocolors": "^1.1.0", + "prompts": "^2.4.0", + "semver": "^7.7.2", "slash": "^5.0.0", + "tiny-invariant": "^1.3.3", "typescript": "^5.8.3" }, "publishConfig": { diff --git a/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts b/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts index e7704a1e305a..a7bbcc2ec31e 100644 --- a/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/initial-globals.ts @@ -1,9 +1,9 @@ import { readFile, writeFile } from 'node:fs/promises'; +import type { types } from 'storybook/internal/babel'; import type { ConfigFile } from 'storybook/internal/csf-tools'; import { formatConfig, loadConfig } from 'storybook/internal/csf-tools'; -import type { Expression } from '@babel/types'; import picocolors from 'picocolors'; import type { Fix } from '../types'; @@ -11,7 +11,7 @@ import type { Fix } from '../types'; interface Options { previewConfig: ConfigFile; previewConfigPath: string; - globals: Expression; + globals: types.Expression; } /** Rename preview.js globals to initialGlobals */ @@ -25,7 +25,7 @@ export const initialGlobals: Fix = { } const previewConfig = loadConfig((await readFile(previewConfigPath)).toString()).parse(); - const globals = previewConfig.getFieldNode(['globals']) as Expression; + const globals = previewConfig.getFieldNode(['globals']) as types.Expression; if (!globals) { return null; diff --git a/code/lib/cli-storybook/src/automigrate/helpers/addon-a11y-parameters.ts b/code/lib/cli-storybook/src/automigrate/helpers/addon-a11y-parameters.ts index 574444af24fd..9e781438d816 100644 --- a/code/lib/cli-storybook/src/automigrate/helpers/addon-a11y-parameters.ts +++ b/code/lib/cli-storybook/src/automigrate/helpers/addon-a11y-parameters.ts @@ -1,7 +1,6 @@ +import { types as t } from 'storybook/internal/babel'; import { type ConfigFile, type CsfFile, loadConfig, loadCsf } from 'storybook/internal/csf-tools'; -import * as t from '@babel/types'; - // TODO: this is copied from the codemod, we should move both utilities to the csf-tools package at some point const isStoryAnnotation = (stmt: t.Statement, objectExports: Record) => t.isExpressionStatement(stmt) && diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index 335f12a3f8a0..719eabef380e 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -47,9 +47,6 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@babel/core": "^7.24.4", - "@babel/preset-env": "^7.24.4", - "@babel/types": "^7.24.0", "@types/cross-spawn": "^6.0.6", "cross-spawn": "^7.0.6", "es-toolkit": "^1.36.0", diff --git a/code/lib/codemod/src/transforms/find-implicit-spies.ts b/code/lib/codemod/src/transforms/find-implicit-spies.ts index 3defb20bcdea..c573f460da92 100644 --- a/code/lib/codemod/src/transforms/find-implicit-spies.ts +++ b/code/lib/codemod/src/transforms/find-implicit-spies.ts @@ -1,8 +1,7 @@ +import type { BabelFile } from 'storybook/internal/babel'; +import { core as babel, types as t } from 'storybook/internal/babel'; import { loadCsf } from 'storybook/internal/csf-tools'; -import type { BabelFile } from '@babel/core'; -import * as babel from '@babel/core'; -import { isIdentifier, isObjectExpression, isObjectProperty } from '@babel/types'; import type { FileInfo } from 'jscodeshift'; function findImplicitSpies(path: babel.NodePath, file: string, keys: string[]) { @@ -41,7 +40,7 @@ function getAnnotationKeys(file: BabelFile, storyName: string, annotationName: s ) { argKeys.push( ...right.node.properties.flatMap((value) => - isObjectProperty(value) && isIdentifier(value.key) ? [value.key.name] : [] + t.isObjectProperty(value) && t.isIdentifier(value.key) ? [value.key.name] : [] ) ); } @@ -73,7 +72,7 @@ function getAnnotationKeys(file: BabelFile, storyName: string, annotationName: s } argKeys.push( ...argsValue.node.properties.flatMap((value) => - isObjectProperty(value) && isIdentifier(value.key) ? [value.key.name] : [] + t.isObjectProperty(value) && t.isIdentifier(value.key) ? [value.key.name] : [] ) ); }, @@ -83,9 +82,9 @@ function getAnnotationKeys(file: BabelFile, storyName: string, annotationName: s } const getObjectExpressionKeys = (node: babel.Node | undefined) => { - return isObjectExpression(node) + return t.isObjectExpression(node) ? node.properties.flatMap((value) => - isObjectProperty(value) && isIdentifier(value.key) ? [value.key.name] : [] + t.isObjectProperty(value) && t.isIdentifier(value.key) ? [value.key.name] : [] ) : []; }; @@ -106,7 +105,7 @@ export default async function transform(info: FileInfo) { ...getObjectExpressionKeys(csf._metaAnnotations.argTypes), ]; - Object.entries(csf.stories).forEach(([key, { name }]) => { + Object.values(csf.stories).forEach(({ name }) => { if (!name) { return; } diff --git a/code/yarn.lock b/code/yarn.lock index 90df77424489..8252a99d2eef 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6221,7 +6221,6 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/cli@workspace:lib/cli-storybook" dependencies: - "@babel/types": "npm:^7.24.0" "@storybook/codemod": "workspace:*" "@types/cross-spawn": "npm:^6.0.6" "@types/prompts": "npm:^2.0.9" @@ -6231,20 +6230,20 @@ __metadata: comment-json: "npm:^4.2.5" create-storybook: "workspace:*" cross-spawn: "npm:^7.0.6" - envinfo: "npm:^7.7.3" - execa: "npm:^9.5.2" + envinfo: "npm:^7.14.0" + execa: "npm:^9.6.0" find-up: "npm:^7.0.0" giget: "npm:^1.0.0" globby: "npm:^14.0.1" jscodeshift: "npm:^0.15.1" - leven: "npm:^3.1.0" + leven: "npm:^4.0.0" p-limit: "npm:^6.2.0" picocolors: "npm:^1.1.0" prompts: "npm:^2.4.0" - semver: "npm:^7.3.7" + semver: "npm:^7.7.2" slash: "npm:^5.0.0" storybook: "workspace:*" - tiny-invariant: "npm:^1.3.1" + tiny-invariant: "npm:^1.3.3" ts-dedent: "npm:^2.0.0" typescript: "npm:^5.8.3" bin: @@ -6256,9 +6255,6 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/codemod@workspace:lib/codemod" dependencies: - "@babel/core": "npm:^7.24.4" - "@babel/preset-env": "npm:^7.24.4" - "@babel/types": "npm:^7.24.0" "@types/cross-spawn": "npm:^6.0.6" "@types/jscodeshift": "npm:^0.11.10" ansi-regex: "npm:^6.0.1" @@ -13097,7 +13093,7 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:^7.7.3": +"envinfo@npm:^7.14.0": version: 7.14.0 resolution: "envinfo@npm:7.14.0" bin: @@ -14354,23 +14350,23 @@ __metadata: languageName: node linkType: hard -"execa@npm:^9.5.2": - version: 9.5.2 - resolution: "execa@npm:9.5.2" +"execa@npm:^9.5.2, execa@npm:^9.6.0": + version: 9.6.0 + resolution: "execa@npm:9.6.0" dependencies: "@sindresorhus/merge-streams": "npm:^4.0.0" - cross-spawn: "npm:^7.0.3" + cross-spawn: "npm:^7.0.6" figures: "npm:^6.1.0" get-stream: "npm:^9.0.0" - human-signals: "npm:^8.0.0" + human-signals: "npm:^8.0.1" is-plain-obj: "npm:^4.1.0" is-stream: "npm:^4.0.1" npm-run-path: "npm:^6.0.0" - pretty-ms: "npm:^9.0.0" + pretty-ms: "npm:^9.2.0" signal-exit: "npm:^4.1.0" strip-final-newline: "npm:^4.0.0" - yoctocolors: "npm:^2.0.0" - checksum: 10c0/94782a6282e03253224406c29068d18f9095cc251a45d1f19ac3d8f2a9db2cbe32fb8ceb039db1451d8fce3531135a6c0c559f76d634f85416268fc4a6995365 + yoctocolors: "npm:^2.1.1" + checksum: 10c0/2c44a33142f77d3a6a590a3b769b49b27029a76768593bac1f26fed4dd1330e9c189ee61eba6a8c990fb77e37286c68c7445472ebf24c22b31e9ff320e73d7ac languageName: node linkType: hard @@ -16379,7 +16375,7 @@ __metadata: languageName: node linkType: hard -"human-signals@npm:^8.0.0": +"human-signals@npm:^8.0.1": version: 8.0.1 resolution: "human-signals@npm:8.0.1" checksum: 10c0/195ac607108c56253757717242e17cd2e21b29f06c5d2dad362e86c672bf2d096e8a3bbb2601841c376c2301c4ae7cff129e87f740aa4ebff1390c163114c7c4 @@ -17939,7 +17935,7 @@ __metadata: languageName: node linkType: hard -"leven@npm:^3.1.0, leven@npm:^3.1.0 < 4": +"leven@npm:^3.1.0 < 4": version: 3.1.0 resolution: "leven@npm:3.1.0" checksum: 10c0/cd778ba3fbab0f4d0500b7e87d1f6e1f041507c56fdcd47e8256a3012c98aaee371d4c15e0a76e0386107af2d42e2b7466160a2d80688aaa03e66e49949f42df @@ -21661,7 +21657,7 @@ __metadata: languageName: node linkType: hard -"pretty-ms@npm:^9.0.0": +"pretty-ms@npm:^9.2.0": version: 9.2.0 resolution: "pretty-ms@npm:9.2.0" dependencies: @@ -23704,7 +23700,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.1, semver@npm:^7.0.0, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3, semver@npm:^7.7.1": +"semver@npm:7.7.1": version: 7.7.1 resolution: "semver@npm:7.7.1" bin: @@ -23731,6 +23727,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.0.0, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3, semver@npm:^7.7.1, semver@npm:^7.7.2": + version: 7.7.2 + resolution: "semver@npm:7.7.2" + bin: + semver: bin/semver.js + checksum: 10c0/aca305edfbf2383c22571cb7714f48cadc7ac95371b4b52362fb8eeffdfbc0de0669368b82b2b15978f8848f01d7114da65697e56cd8c37b0dab8c58e543f9ea + languageName: node + linkType: hard + "send@npm:0.19.0": version: 0.19.0 resolution: "send@npm:0.19.0" @@ -27728,7 +27733,7 @@ __metadata: languageName: node linkType: hard -"yoctocolors@npm:^2.0.0": +"yoctocolors@npm:^2.1.1": version: 2.1.1 resolution: "yoctocolors@npm:2.1.1" checksum: 10c0/85903f7fa96f1c70badee94789fade709f9d83dab2ec92753d612d84fcea6d34c772337a9f8914c6bed2f5fc03a428ac5d893e76fab636da5f1236ab725486d0