Skip to content

Commit 9d4616c

Browse files
authored
Merge pull request #25843 from storybookjs/version-patch-from-7.6.12
Release: Patch 7.6.13
2 parents cebb1a7 + fdd7a22 commit 9d4616c

File tree

19 files changed

+81
-105
lines changed

19 files changed

+81
-105
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 7.6.13
2+
3+
- Next.js: Fix frameworkOptions resolution - [#25907](https://github.com/storybookjs/storybook/pull/25907), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
4+
- React Native: Fix init fails when package is already installed - [#25908](https://github.com/storybookjs/storybook/pull/25908), thanks [@dannyhw](https://github.com/dannyhw)!
5+
- React Native: Remove watcher from init - [#25895](https://github.com/storybookjs/storybook/pull/25895), thanks [@dannyhw](https://github.com/dannyhw)!
6+
- Webpack: Update StorybookConfig import in core-webpack types.ts - [#25740](https://github.com/storybookjs/storybook/pull/25740), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
7+
18
## 7.6.12
29

310
- CLI: Fix `upgrade` detecting the wrong version of existing Storybooks - [#25752](https://github.com/storybookjs/storybook/pull/25752), thanks [@JReinhold](https://github.com/JReinhold)!

code/builders/builder-webpack5/src/types.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ import type {
33
Options,
44
BuilderResult as BuilderResultBase,
55
StorybookConfig,
6+
TypescriptOptions as WebpackTypescriptOptions,
67
} from '@storybook/core-webpack';
78

89
import type ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
910

10-
type TypeScriptOptionsBase = Required<StorybookConfig>['typescript'];
11+
type TypeScriptOptionsBase = Partial<WebpackTypescriptOptions>;
1112

1213
/**
1314
* Options for TypeScript usage within Storybook.
@@ -19,7 +20,7 @@ export interface TypescriptOptions extends TypeScriptOptionsBase {
1920
checkOptions?: ConstructorParameters<typeof ForkTsCheckerWebpackPlugin>[0];
2021
}
2122

22-
export interface StorybookConfigWebpack extends Pick<StorybookConfig, 'webpack' | 'webpackFinal'> {
23+
export interface StorybookConfigWebpack extends Omit<StorybookConfig, 'webpack' | 'webpackFinal'> {
2324
/**
2425
* Modify or return a custom Webpack config after the Storybook's default configuration
2526
* has run (mostly used by addons).

code/frameworks/angular/src/preset.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ export const previewAnnotations: StorybookConfig['previewAnnotations'] = (
2525
return annotations;
2626
};
2727

28-
export const core: PresetProperty<'core', StorybookConfig> = async (config, options) => {
29-
const framework = await options.presets.apply<StorybookConfig['framework']>('framework');
28+
export const core: PresetProperty<'core'> = async (config, options) => {
29+
const framework = await options.presets.apply('framework');
3030

3131
return {
3232
...config,
@@ -37,7 +37,7 @@ export const core: PresetProperty<'core', StorybookConfig> = async (config, opti
3737
};
3838
};
3939

40-
export const typescript: PresetProperty<'typescript', StorybookConfig> = async (config) => {
40+
export const typescript: PresetProperty<'typescript'> = async (config) => {
4141
return {
4242
...config,
4343
skipBabel: true,

code/frameworks/ember/src/preset.ts

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { dirname, join } from 'path';
2+
import { getVirtualModules } from '@storybook/builder-webpack5';
3+
import { getProjectRoot, resolvePathInStorybookCache } from '@storybook/core-common';
24
import type { PresetProperty } from '@storybook/types';
35
import type { StorybookConfig } from './types';
46

@@ -10,8 +12,39 @@ export const addons: PresetProperty<'addons', StorybookConfig> = [
1012
require.resolve('./server/framework-preset-ember-docs'),
1113
];
1214

13-
export const core: PresetProperty<'core', StorybookConfig> = async (config, options) => {
14-
const framework = await options.presets.apply<StorybookConfig['framework']>('framework');
15+
export const webpackFinal: StorybookConfig['webpackFinal'] = async (baseConfig, options) => {
16+
const { virtualModules } = await getVirtualModules(options);
17+
18+
const babelOptions = await options.presets.apply('babel', {}, options);
19+
const typescriptOptions = await options.presets.apply('typescript', {}, options);
20+
21+
return {
22+
...baseConfig,
23+
module: {
24+
...baseConfig.module,
25+
rules: [
26+
...(baseConfig.module?.rules ?? []),
27+
{
28+
test: typescriptOptions.skipCompiler ? /\.((c|m)?jsx?)$/ : /\.((c|m)?(j|t)sx?)$/,
29+
use: [
30+
{
31+
loader: require.resolve('babel-loader'),
32+
options: {
33+
cacheDirectory: resolvePathInStorybookCache('babel'),
34+
...babelOptions,
35+
},
36+
},
37+
],
38+
include: [getProjectRoot()],
39+
exclude: [/node_modules/, ...Object.keys(virtualModules)],
40+
},
41+
],
42+
},
43+
};
44+
};
45+
46+
export const core: PresetProperty<'core'> = async (config, options) => {
47+
const framework = await options.presets.apply('framework');
1548

1649
return {
1750
...config,
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import type { PresetProperty } from '@storybook/types';
22
import { dirname, join } from 'path';
3-
import type { StorybookConfig } from './types';
43

54
function getAbsolutePath<I extends string>(value: I): I {
65
return dirname(require.resolve(join(value, 'package.json'))) as any;
76
}
87

9-
export const core: PresetProperty<'core', StorybookConfig> = {
8+
export const core: PresetProperty<'core'> = {
109
builder: getAbsolutePath('@storybook/builder-vite'),
1110
renderer: getAbsolutePath('@storybook/html'),
1211
};

code/frameworks/nextjs/src/preset.ts

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// https://storybook.js.org/docs/react/addons/writing-presets
22
import { dirname, join } from 'path';
3-
import type { Options, PresetProperty } from '@storybook/types';
3+
import type { PresetProperty } from '@storybook/types';
44
import type { ConfigItem, PluginItem, TransformOptions } from '@babel/core';
55
import { loadPartialConfig } from '@babel/core';
66
import { getProjectRoot } from '@storybook/core-common';
@@ -23,38 +23,8 @@ export const addons: PresetProperty<'addons', StorybookConfig> = [
2323
dirname(require.resolve(join('@storybook/preset-react-webpack', 'package.json'))),
2424
];
2525

26-
const defaultFrameworkOptions: FrameworkOptions = {};
27-
28-
export const frameworkOptions = async (
29-
_: never,
30-
options: Options
31-
): Promise<StorybookConfig['framework']> => {
32-
const config = await options.presets.apply<StorybookConfig['framework']>('framework');
33-
34-
if (typeof config === 'string') {
35-
return {
36-
name: config,
37-
options: defaultFrameworkOptions,
38-
};
39-
}
40-
if (typeof config === 'undefined') {
41-
return {
42-
name: require.resolve('@storybook/nextjs') as '@storybook/nextjs',
43-
options: defaultFrameworkOptions,
44-
};
45-
}
46-
47-
return {
48-
name: config.name,
49-
options: {
50-
...defaultFrameworkOptions,
51-
...config.options,
52-
},
53-
};
54-
};
55-
56-
export const core: PresetProperty<'core', StorybookConfig> = async (config, options) => {
57-
const framework = await options.presets.apply<StorybookConfig['framework']>('framework');
26+
export const core: PresetProperty<'core'> = async (config, options) => {
27+
const framework = await options.presets.apply('framework');
5828

5929
return {
6030
...config,
@@ -134,11 +104,10 @@ export const babel = async (baseConfig: TransformOptions): Promise<TransformOpti
134104
};
135105

136106
export const webpackFinal: StorybookConfig['webpackFinal'] = async (baseConfig, options) => {
137-
// eslint-disable-next-line @typescript-eslint/no-shadow
138-
const frameworkOptions = await options.presets.apply<{ options: FrameworkOptions }>(
107+
const { builder, nextConfigPath } = await options.presets.apply<FrameworkOptions>(
139108
'frameworkOptions'
140109
);
141-
const { options: { nextConfigPath, builder } = {} } = frameworkOptions;
110+
142111
const nextConfig = await configureConfig({
143112
baseConfig,
144113
nextConfigPath,

code/frameworks/preact-vite/src/preset.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { StorybookConfig } from './types';
77
const getAbsolutePath = <I extends string>(input: I): I =>
88
dirname(require.resolve(join(input, 'package.json'))) as any;
99

10-
export const core: PresetProperty<'core', StorybookConfig> = {
10+
export const core: PresetProperty<'core'> = {
1111
builder: getAbsolutePath('@storybook/builder-vite'),
1212
renderer: getAbsolutePath('@storybook/preact'),
1313
};

code/frameworks/react-vite/src/preset.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { StorybookConfig } from './types';
77
const getAbsolutePath = <I extends string>(input: I): I =>
88
dirname(require.resolve(join(input, 'package.json'))) as any;
99

10-
export const core: PresetProperty<'core', StorybookConfig> = {
10+
export const core: PresetProperty<'core'> = {
1111
builder: getAbsolutePath('@storybook/builder-vite'),
1212
renderer: getAbsolutePath('@storybook/react'),
1313
};

code/frameworks/react-webpack5/src/preset.ts

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
/* eslint-disable no-param-reassign */
2-
31
import { dirname, join } from 'path';
4-
import type { PresetProperty, Options } from '@storybook/types';
5-
import type { FrameworkOptions, StorybookConfig } from './types';
2+
import type { PresetProperty } from '@storybook/types';
3+
import type { StorybookConfig } from './types';
64

75
const getAbsolutePath = <I extends string>(input: I): I =>
86
dirname(require.resolve(join(input, 'package.json'))) as any;
@@ -11,40 +9,8 @@ export const addons: PresetProperty<'addons', StorybookConfig> = [
119
getAbsolutePath('@storybook/preset-react-webpack'),
1210
];
1311

14-
const defaultFrameworkOptions: FrameworkOptions = {
15-
legacyRootApi: true,
16-
};
17-
18-
export const frameworkOptions = async (
19-
_: never,
20-
options: Options
21-
): Promise<StorybookConfig['framework']> => {
22-
const config = await options.presets.apply<StorybookConfig['framework']>('framework');
23-
24-
if (typeof config === 'string') {
25-
return {
26-
name: config,
27-
options: defaultFrameworkOptions,
28-
};
29-
}
30-
if (typeof config === 'undefined') {
31-
return {
32-
name: getAbsolutePath('@storybook/react-webpack5'),
33-
options: defaultFrameworkOptions,
34-
};
35-
}
36-
37-
return {
38-
name: config.name,
39-
options: {
40-
...defaultFrameworkOptions,
41-
...config.options,
42-
},
43-
};
44-
};
45-
46-
export const core: PresetProperty<'core', StorybookConfig> = async (config, options) => {
47-
const framework = await options.presets.apply<StorybookConfig['framework']>('framework');
12+
export const core: PresetProperty<'core'> = async (config, options) => {
13+
const framework = await options.presets.apply('framework');
4814

4915
return {
5016
...config,
@@ -57,8 +23,10 @@ export const core: PresetProperty<'core', StorybookConfig> = async (config, opti
5723
};
5824

5925
export const webpack: StorybookConfig['webpack'] = async (config) => {
26+
// eslint-disable-next-line no-param-reassign
6027
config.resolve = config.resolve || {};
6128

29+
// eslint-disable-next-line no-param-reassign
6230
config.resolve.alias = {
6331
...config.resolve?.alias,
6432
'@storybook/react': getAbsolutePath('@storybook/react'),

code/frameworks/svelte-vite/src/preset.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { svelteDocgen } from './plugins/svelte-docgen';
88
const getAbsolutePath = <I extends string>(input: I): I =>
99
dirname(require.resolve(join(input, 'package.json'))) as any;
1010

11-
export const core: PresetProperty<'core', StorybookConfig> = {
11+
export const core: PresetProperty<'core'> = {
1212
builder: getAbsolutePath('@storybook/builder-vite'),
1313
renderer: getAbsolutePath('@storybook/svelte'),
1414
};

code/frameworks/vue3-webpack5/src/preset.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
import { dirname, join } from 'path';
22
import type { PresetProperty } from '@storybook/types';
3-
import type { StorybookConfig } from './types';
43

54
const getAbsolutePath = <I extends string>(input: I): I =>
65
dirname(require.resolve(join(input, 'package.json'))) as any;
76

8-
export const addons: PresetProperty<'addons', StorybookConfig> = [
9-
getAbsolutePath('@storybook/preset-vue3-webpack'),
10-
];
7+
export const addons: PresetProperty<'addons'> = [getAbsolutePath('@storybook/preset-vue3-webpack')];
118

12-
export const core: PresetProperty<'core', StorybookConfig> = async (config, options) => {
13-
const framework = await options.presets.apply<StorybookConfig['framework']>('framework');
9+
export const core: PresetProperty<'core'> = async (config, options) => {
10+
const framework = await options.presets.apply('framework');
1411

1512
return {
1613
...config,
@@ -22,7 +19,7 @@ export const core: PresetProperty<'core', StorybookConfig> = async (config, opti
2219
};
2320
};
2421

25-
export const typescript: PresetProperty<'typescript', StorybookConfig> = async (config) => ({
22+
export const typescript: PresetProperty<'typescript'> = async (config) => ({
2623
...config,
2724
skipBabel: true,
2825
skipCompiler: true,
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import type { PresetProperty } from '@storybook/types';
22
import { dirname, join } from 'path';
3-
import type { StorybookConfig } from './types';
43

54
const getAbsolutePath = <I extends string>(input: I): I =>
65
dirname(require.resolve(join(input, 'package.json'))) as any;
76

8-
export const core: PresetProperty<'core', StorybookConfig> = {
7+
export const core: PresetProperty<'core'> = {
98
builder: getAbsolutePath('@storybook/builder-vite'),
109
renderer: getAbsolutePath('@storybook/web-components'),
1110
};

code/lib/cli/src/generators/REACT_NATIVE/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,15 @@ const generator = async (
1414

1515
const reactVersion = packageJson.dependencies.react;
1616

17-
const packagesToResolve = [
18-
// addon-ondevice-controls peer deps
17+
const controlsPeerDependencies = [
1918
'react-native-safe-area-context',
2019
'@react-native-async-storage/async-storage',
2120
'@react-native-community/datetimepicker',
2221
'@react-native-community/slider',
22+
].filter((dep) => !packageJson.dependencies[dep] && !packageJson.devDependencies[dep]);
23+
24+
const packagesToResolve = [
25+
...controlsPeerDependencies,
2326
'@storybook/addon-ondevice-controls',
2427
'@storybook/addon-ondevice-actions',
2528
'@storybook/react-native',
@@ -47,7 +50,6 @@ const generator = async (
4750

4851
packageManager.addScripts({
4952
'storybook-generate': 'sb-rn-get-stories',
50-
'storybook-watch': 'sb-rn-watcher',
5153
});
5254

5355
const storybookConfigFolder = '.storybook';

code/lib/preview-api/src/modules/preview-web/UrlStore.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const getFirstString = (v: ValueOf<qs.ParsedQs>): string | void => {
6565
};
6666

6767
export const getSelectionSpecifierFromPath: () => SelectionSpecifier | null = () => {
68-
const query = qs.parse(document.location.search, { ignoreQueryPrefix: true });
68+
const query = qs.parse(document?.location?.search, { ignoreQueryPrefix: true });
6969
const args = typeof query.args === 'string' ? parseArgsParam(query.args) : undefined;
7070
const globals = typeof query.globals === 'string' ? parseArgsParam(query.globals) : undefined;
7171

code/lib/preview-api/src/modules/preview-web/WebView.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class WebView implements View<HTMLElement> {
4747
constructor() {
4848
// Special code for testing situations
4949
// eslint-disable-next-line @typescript-eslint/naming-convention
50-
const { __SPECIAL_TEST_PARAMETER__ } = qs.parse(document.location.search, {
50+
const { __SPECIAL_TEST_PARAMETER__ } = qs.parse(document?.location?.search, {
5151
ignoreQueryPrefix: true,
5252
});
5353
switch (__SPECIAL_TEST_PARAMETER__) {

code/lib/types/src/modules/core-common.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ interface DirectoryMapping {
6767
export interface Presets {
6868
apply(
6969
extension: 'typescript',
70-
config: TypescriptOptions,
70+
config: Partial<TypescriptOptions>,
7171
args?: Options
72-
): Promise<TypescriptOptions>;
72+
): Promise<Partial<TypescriptOptions>>;
7373
apply(extension: 'framework', config?: {}, args?: any): Promise<Preset>;
7474
apply(extension: 'babel', config?: {}, args?: any): Promise<BabelOptions>;
7575
apply(extension: 'swc', config?: {}, args?: any): Promise<SWCOptions>;

code/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,5 +329,6 @@
329329
"Dependency Upgrades"
330330
]
331331
]
332-
}
332+
},
333+
"deferredNextVersion": "7.6.13"
333334
}

docs/versions/latest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"7.6.12","info":{"plain":"- CLI: Fix `upgrade` detecting the wrong version of existing Storybooks - [#25752](https://github.com/storybookjs/storybook/pull/25752), thanks [@JReinhold](https://github.com/JReinhold)!"}}
1+
{"version":"7.6.13","info":{"plain":"- Next.js: Fix frameworkOptions resolution - [#25907](https://github.com/storybookjs/storybook/pull/25907), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!\n- React Native: Fix init fails when package is already installed - [#25908](https://github.com/storybookjs/storybook/pull/25908), thanks [@dannyhw](https://github.com/dannyhw)!\n- React Native: Remove watcher from init - [#25895](https://github.com/storybookjs/storybook/pull/25895), thanks [@dannyhw](https://github.com/dannyhw)!\n- Webpack: Update StorybookConfig import in core-webpack types.ts - [#25740](https://github.com/storybookjs/storybook/pull/25740), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!"}}

docs/versions/next.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"8.0.0-alpha.16","info":{"plain":"- CLI: Fix `upgrade` detecting the wrong version of existing Storybooks - [#25752](https://github.com/storybookjs/storybook/pull/25752), thanks [@JReinhold](https://github.com/JReinhold)!\n- CLI: Update init for react native v7 - [#25780](https://github.com/storybookjs/storybook/pull/25780), thanks [@dannyhw](https://github.com/dannyhw)!\n- UI: Improve how the addon panel work on mobile - [#25787](https://github.com/storybookjs/storybook/pull/25787), thanks [@cdedreuille](https://github.com/cdedreuille)!"}}
1+
{"version":"8.0.0-beta.0","info":{"plain":"- CLI: Add Visual Tests addon to `init` - [#25850](https://github.com/storybookjs/storybook/pull/25850), thanks [@shilman](https://github.com/shilman)!\n- CLI: Upgrade boxen library - [#25713](https://github.com/storybookjs/storybook/pull/25713), thanks [@yannbf](https://github.com/yannbf)!\n- UI: Fix custom tabs not showing in the manager - [#25792](https://github.com/storybookjs/storybook/pull/25792), thanks [@ndelangen](https://github.com/ndelangen)!"}}

0 commit comments

Comments
 (0)