Skip to content
Merged
19 changes: 9 additions & 10 deletions code/lib/cli-storybook/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,33 +41,32 @@
"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": {
"@types/cross-spawn": "^6.0.6",
"@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": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
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';

interface Options {
previewConfig: ConfigFile;
previewConfigPath: string;
globals: Expression;
globals: types.Expression;
}

/** Rename preview.js globals to initialGlobals */
Expand All @@ -25,7 +25,7 @@ export const initialGlobals: Fix<Options> = {
}

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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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<string, any>) =>
t.isExpressionStatement(stmt) &&
Expand Down
3 changes: 0 additions & 3 deletions code/lib/codemod/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
15 changes: 7 additions & 8 deletions code/lib/codemod/src/transforms/find-implicit-spies.ts
Original file line number Diff line number Diff line change
@@ -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[]) {
Expand Down Expand Up @@ -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] : []
)
);
}
Expand Down Expand Up @@ -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] : []
)
);
},
Expand All @@ -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] : []
)
: [];
};
Expand All @@ -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;
}
Expand Down
51 changes: 28 additions & 23 deletions code/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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:
Expand All @@ -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"
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down
Loading