@storybook/cli 7.0.0-beta.8 → 7.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +1 -0
- package/bin/index.js +6 -1
- package/dist/chunk-VV5NJWNA.mjs +16 -0
- package/dist/generate.d.ts +1 -0
- package/dist/generate.js +358 -312
- package/dist/generate.mjs +298 -267
- package/dist/index.d.ts +134 -0
- package/dist/index.js +10 -0
- package/dist/index.mjs +1 -0
- package/package.json +33 -17
- package/rendererAssets/common/Introduction.mdx +1 -1
- package/rendererAssets/common/header.css +1 -1
- package/rendererAssets/common/page.css +1 -1
- package/templates/angular/template-csf/.storybook/tsconfig.json +5 -4
- package/templates/react-native/template-csf/storybook/addons.js +0 -3
- package/templates/react-native/template-csf/storybook/index.js +0 -29
- package/templates/react-native/template-csf/storybook/rn-addons.js +0 -2
- package/templates/react-native/template-csf/storybook/stories/Button/Button.stories.js +0 -20
- package/templates/react-native/template-csf/storybook/stories/Button/index.js +0 -17
- package/templates/react-native/template-csf/storybook/stories/CenterView/index.js +0 -16
- package/templates/react-native/template-csf/storybook/stories/CenterView/style.js +0 -8
- package/templates/react-native/template-csf/storybook/stories/Welcome/Welcome.stories.js +0 -6
- package/templates/react-native/template-csf/storybook/stories/Welcome/index.js +0 -57
- package/templates/react-native/template-csf/storybook/stories/index.js +0 -2
- package/templates/server/template-csf/.storybook/preview.js +0 -5
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { PackageJson } from '@storybook/types';
|
|
2
|
+
export { PackageJson } from '@storybook/types';
|
|
3
|
+
|
|
4
|
+
declare const useNpmWarning: () => void;
|
|
5
|
+
|
|
6
|
+
type PackageJsonWithDepsAndDevDeps = PackageJson & Required<Pick<PackageJson, 'dependencies' | 'devDependencies'>>;
|
|
7
|
+
type PackageJsonWithMaybeDeps = Partial<Pick<PackageJson, 'dependencies' | 'devDependencies' | 'peerDependencies' | 'files'>>;
|
|
8
|
+
|
|
9
|
+
type PackageManagerName = 'npm' | 'yarn1' | 'yarn2' | 'pnpm';
|
|
10
|
+
/**
|
|
11
|
+
* Extract package name and version from input
|
|
12
|
+
*
|
|
13
|
+
* @param pkg A string like `@storybook/cli`, `react` or `react@^16`
|
|
14
|
+
* @return A tuple of 2 elements: [packageName, packageVersion]
|
|
15
|
+
*/
|
|
16
|
+
declare function getPackageDetails(pkg: string): [string, string?];
|
|
17
|
+
interface JsPackageManagerOptions {
|
|
18
|
+
cwd?: string;
|
|
19
|
+
}
|
|
20
|
+
declare abstract class JsPackageManager {
|
|
21
|
+
abstract readonly type: PackageManagerName;
|
|
22
|
+
abstract initPackageJson(): void;
|
|
23
|
+
abstract getRunStorybookCommand(): string;
|
|
24
|
+
abstract getRunCommand(command: string): string;
|
|
25
|
+
setRegistryURL(url: string): void;
|
|
26
|
+
getRegistryURL(): string;
|
|
27
|
+
readonly cwd?: string;
|
|
28
|
+
constructor(options?: JsPackageManagerOptions);
|
|
29
|
+
/**
|
|
30
|
+
* Install dependencies listed in `package.json`
|
|
31
|
+
*/
|
|
32
|
+
installDependencies(): void;
|
|
33
|
+
packageJsonPath(): string;
|
|
34
|
+
readPackageJson(): PackageJson;
|
|
35
|
+
writePackageJson(packageJson: PackageJson): void;
|
|
36
|
+
/**
|
|
37
|
+
* Read the `package.json` file available in the directory the command was call from
|
|
38
|
+
* If there is no `package.json` it will create one.
|
|
39
|
+
*/
|
|
40
|
+
retrievePackageJson(): PackageJsonWithDepsAndDevDeps;
|
|
41
|
+
getAllDependencies(): Record<string, string>;
|
|
42
|
+
/**
|
|
43
|
+
* Add dependencies to a project using `yarn add` or `npm install`.
|
|
44
|
+
*
|
|
45
|
+
* @param {Object} options contains `skipInstall`, `packageJson` and `installAsDevDependencies` which we use to determine how we install packages.
|
|
46
|
+
* @param {Array} dependencies contains a list of packages to add.
|
|
47
|
+
* @example
|
|
48
|
+
* addDependencies(options, [
|
|
49
|
+
* `@storybook/react@${storybookVersion}`,
|
|
50
|
+
* `@storybook/addon-actions@${actionsVersion}`,
|
|
51
|
+
* `@storybook/addon-links@${linksVersion}`,
|
|
52
|
+
* `@storybook/preview-api@${addonsVersion}`,
|
|
53
|
+
* ]);
|
|
54
|
+
*/
|
|
55
|
+
addDependencies(options: {
|
|
56
|
+
skipInstall?: boolean;
|
|
57
|
+
installAsDevDependencies?: boolean;
|
|
58
|
+
packageJson?: PackageJson;
|
|
59
|
+
}, dependencies: string[]): void;
|
|
60
|
+
/**
|
|
61
|
+
* Remove dependencies from a project using `yarn remove` or `npm uninstall`.
|
|
62
|
+
*
|
|
63
|
+
* @param {Object} options contains `skipInstall`, `packageJson` and `installAsDevDependencies` which we use to determine how we install packages.
|
|
64
|
+
* @param {Array} dependencies contains a list of packages to remove.
|
|
65
|
+
* @example
|
|
66
|
+
* removeDependencies(options, [
|
|
67
|
+
* `@storybook/react`,
|
|
68
|
+
* `@storybook/addon-actions`,
|
|
69
|
+
* ]);
|
|
70
|
+
*/
|
|
71
|
+
removeDependencies(options: {
|
|
72
|
+
skipInstall?: boolean;
|
|
73
|
+
packageJson?: PackageJson;
|
|
74
|
+
}, dependencies: string[]): void;
|
|
75
|
+
/**
|
|
76
|
+
* Return an array of strings matching following format: `<package_name>@<package_latest_version>`
|
|
77
|
+
*
|
|
78
|
+
* @param packages
|
|
79
|
+
*/
|
|
80
|
+
getVersionedPackages(packages: string[]): Promise<string[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Return an array of string standing for the latest version of the input packages.
|
|
83
|
+
* To be able to identify which version goes with which package the order of the input array is keep.
|
|
84
|
+
*
|
|
85
|
+
* @param packageNames
|
|
86
|
+
*/
|
|
87
|
+
getVersions(...packageNames: string[]): Promise<string[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Return the latest version of the input package available on npmjs registry.
|
|
90
|
+
* If constraint are provided it return the latest version matching the constraints.
|
|
91
|
+
*
|
|
92
|
+
* For `@storybook/*` packages the latest version is retrieved from `cli/src/versions.json` file directly
|
|
93
|
+
*
|
|
94
|
+
* @param packageName The name of the package
|
|
95
|
+
* @param constraint A valid semver constraint, example: '1.x || >=2.5.0 || 5.0.0 - 7.2.3'
|
|
96
|
+
*/
|
|
97
|
+
getVersion(packageName: string, constraint?: string): Promise<string>;
|
|
98
|
+
/**
|
|
99
|
+
* Get the latest version of the package available on npmjs.com.
|
|
100
|
+
* If constraint is set then it returns a version satisfying it, otherwise the latest version available is returned.
|
|
101
|
+
*
|
|
102
|
+
* @param packageName Name of the package
|
|
103
|
+
* @param constraint Version range to use to constraint the returned version
|
|
104
|
+
*/
|
|
105
|
+
latestVersion(packageName: string, constraint?: string): Promise<string>;
|
|
106
|
+
addStorybookCommandInScripts(options?: {
|
|
107
|
+
port: number;
|
|
108
|
+
preCommand?: string;
|
|
109
|
+
}): void;
|
|
110
|
+
addESLintConfig(): void;
|
|
111
|
+
addScripts(scripts: Record<string, string>): void;
|
|
112
|
+
addPackageResolutions(versions: Record<string, string>): void;
|
|
113
|
+
protected abstract runInstall(): void;
|
|
114
|
+
protected abstract runAddDeps(dependencies: string[], installAsDevDependencies: boolean): void;
|
|
115
|
+
protected abstract runRemoveDeps(dependencies: string[]): void;
|
|
116
|
+
protected abstract getResolutions(packageJson: PackageJson, versions: Record<string, string>): Record<string, any>;
|
|
117
|
+
/**
|
|
118
|
+
* Get the latest or all versions of the input package available on npmjs.com
|
|
119
|
+
*
|
|
120
|
+
* @param packageName Name of the package
|
|
121
|
+
* @param fetchAllVersions Should return
|
|
122
|
+
*/
|
|
123
|
+
protected abstract runGetVersions<T extends boolean>(packageName: string, fetchAllVersions: T): Promise<T extends true ? string[] : string>;
|
|
124
|
+
abstract runPackageCommand(command: string, args: string[], cwd?: string): string;
|
|
125
|
+
executeCommand(command: string, args: string[], stdio?: 'pipe' | 'inherit', cwd?: string): string;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
declare class JsPackageManagerFactory {
|
|
129
|
+
static getPackageManager({ force }?: {
|
|
130
|
+
force?: PackageManagerName;
|
|
131
|
+
}, cwd?: string): JsPackageManager;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export { JsPackageManager, JsPackageManagerFactory, PackageJsonWithDepsAndDevDeps, PackageJsonWithMaybeDeps, PackageManagerName, getPackageDetails, useNpmWarning };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{JsPackageManager:()=>JsPackageManager,JsPackageManagerFactory:()=>JsPackageManagerFactory,getPackageDetails:()=>getPackageDetails,useNpmWarning:()=>useNpmWarning});module.exports=__toCommonJS(src_exports);var import_util_deprecate=__toESM(require("util-deprecate")),useNpmWarning=(0,import_util_deprecate.default)(()=>{},"`--use-npm` is deprecated and will be removed in Storybook 8.0. \nPlease use the `--package-manager=npm` option instead.\nRead more at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#cli-option---use-npm-deprecated");var import_node_path=__toESM(require("path")),import_cross_spawn2=require("cross-spawn"),import_find_up=require("find-up");var import_chalk2=__toESM(require("chalk")),import_semver3=require("semver"),import_cross_spawn=require("cross-spawn"),import_path=__toESM(require("path")),import_fs=__toESM(require("fs"));var import_fs_extra=__toESM(require("fs-extra")),import_chalk=__toESM(require("chalk")),import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments"));var import_get_tarball=__toESM(require("@ndelangen/get-tarball")),import_get_npm_tarball_url=__toESM(require("get-npm-tarball-url")),tempy=__toESM(require("tempy"));var import_semver=require("semver");var ProjectType=(ProjectType2=>(ProjectType2.UNDETECTED="UNDETECTED",ProjectType2.UNSUPPORTED="UNSUPPORTED",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",ProjectType2.REACT="REACT",ProjectType2.REACT_NATIVE="REACT_NATIVE",ProjectType2.REACT_PROJECT="REACT_PROJECT",ProjectType2.WEBPACK_REACT="WEBPACK_REACT",ProjectType2.NEXTJS="NEXTJS",ProjectType2.VUE="VUE",ProjectType2.VUE3="VUE3",ProjectType2.SFC_VUE="SFC_VUE",ProjectType2.ANGULAR="ANGULAR",ProjectType2.EMBER="EMBER",ProjectType2.WEB_COMPONENTS="WEB_COMPONENTS",ProjectType2.MITHRIL="MITHRIL",ProjectType2.MARIONETTE="MARIONETTE",ProjectType2.MARKO="MARKO",ProjectType2.HTML="HTML",ProjectType2.QWIK="QWIK",ProjectType2.RIOT="RIOT",ProjectType2.PREACT="PREACT",ProjectType2.SVELTE="SVELTE",ProjectType2.SVELTEKIT="SVELTEKIT",ProjectType2.RAX="RAX",ProjectType2.AURELIA="AURELIA",ProjectType2.SERVER="SERVER",ProjectType2.NX="NX",ProjectType2.SOLID="SOLID",ProjectType2))(ProjectType||{});var notInstallableProjectTypes=["UNDETECTED","UNSUPPORTED"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());var versions_default={"@storybook/addon-a11y":"7.0.0-rc.0","@storybook/addon-actions":"7.0.0-rc.0","@storybook/addon-backgrounds":"7.0.0-rc.0","@storybook/addon-controls":"7.0.0-rc.0","@storybook/addon-docs":"7.0.0-rc.0","@storybook/addon-essentials":"7.0.0-rc.0","@storybook/addon-highlight":"7.0.0-rc.0","@storybook/addon-interactions":"7.0.0-rc.0","@storybook/addon-jest":"7.0.0-rc.0","@storybook/addon-links":"7.0.0-rc.0","@storybook/addon-mdx-gfm":"7.0.0-rc.0","@storybook/addon-measure":"7.0.0-rc.0","@storybook/addon-outline":"7.0.0-rc.0","@storybook/addon-storyshots":"7.0.0-rc.0","@storybook/addon-storyshots-puppeteer":"7.0.0-rc.0","@storybook/addon-storysource":"7.0.0-rc.0","@storybook/addon-toolbars":"7.0.0-rc.0","@storybook/addon-viewport":"7.0.0-rc.0","@storybook/addons":"7.0.0-rc.0","@storybook/angular":"7.0.0-rc.0","@storybook/api":"7.0.0-rc.0","@storybook/blocks":"7.0.0-rc.0","@storybook/builder-manager":"7.0.0-rc.0","@storybook/builder-vite":"7.0.0-rc.0","@storybook/builder-webpack5":"7.0.0-rc.0","@storybook/channel-postmessage":"7.0.0-rc.0","@storybook/channel-websocket":"7.0.0-rc.0","@storybook/channels":"7.0.0-rc.0","@storybook/cli":"7.0.0-rc.0","@storybook/client-api":"7.0.0-rc.0","@storybook/client-logger":"7.0.0-rc.0","@storybook/codemod":"7.0.0-rc.0","@storybook/components":"7.0.0-rc.0","@storybook/core-client":"7.0.0-rc.0","@storybook/core-common":"7.0.0-rc.0","@storybook/core-events":"7.0.0-rc.0","@storybook/core-server":"7.0.0-rc.0","@storybook/core-webpack":"7.0.0-rc.0","@storybook/csf-plugin":"7.0.0-rc.0","@storybook/csf-tools":"7.0.0-rc.0","@storybook/docs-tools":"7.0.0-rc.0","@storybook/ember":"7.0.0-rc.0","@storybook/html":"7.0.0-rc.0","@storybook/html-vite":"7.0.0-rc.0","@storybook/html-webpack5":"7.0.0-rc.0","@storybook/instrumenter":"7.0.0-rc.0","@storybook/manager":"7.0.0-rc.0","@storybook/manager-api":"7.0.0-rc.0","@storybook/nextjs":"7.0.0-rc.0","@storybook/node-logger":"7.0.0-rc.0","@storybook/postinstall":"7.0.0-rc.0","@storybook/preact":"7.0.0-rc.0","@storybook/preact-vite":"7.0.0-rc.0","@storybook/preact-webpack5":"7.0.0-rc.0","@storybook/preset-create-react-app":"7.0.0-rc.0","@storybook/preset-html-webpack":"7.0.0-rc.0","@storybook/preset-preact-webpack":"7.0.0-rc.0","@storybook/preset-react-webpack":"7.0.0-rc.0","@storybook/preset-server-webpack":"7.0.0-rc.0","@storybook/preset-svelte-webpack":"7.0.0-rc.0","@storybook/preset-vue-webpack":"7.0.0-rc.0","@storybook/preset-vue3-webpack":"7.0.0-rc.0","@storybook/preset-web-components-webpack":"7.0.0-rc.0","@storybook/preview":"7.0.0-rc.0","@storybook/preview-api":"7.0.0-rc.0","@storybook/preview-web":"7.0.0-rc.0","@storybook/react":"7.0.0-rc.0","@storybook/react-dom-shim":"7.0.0-rc.0","@storybook/react-vite":"7.0.0-rc.0","@storybook/react-webpack5":"7.0.0-rc.0","@storybook/router":"7.0.0-rc.0","@storybook/server":"7.0.0-rc.0","@storybook/server-webpack5":"7.0.0-rc.0","@storybook/source-loader":"7.0.0-rc.0","@storybook/store":"7.0.0-rc.0","@storybook/svelte":"7.0.0-rc.0","@storybook/svelte-vite":"7.0.0-rc.0","@storybook/svelte-webpack5":"7.0.0-rc.0","@storybook/sveltekit":"7.0.0-rc.0","@storybook/telemetry":"7.0.0-rc.0","@storybook/theming":"7.0.0-rc.0","@storybook/types":"7.0.0-rc.0","@storybook/vue":"7.0.0-rc.0","@storybook/vue-vite":"7.0.0-rc.0","@storybook/vue-webpack5":"7.0.0-rc.0","@storybook/vue3":"7.0.0-rc.0","@storybook/vue3-vite":"7.0.0-rc.0","@storybook/vue3-webpack5":"7.0.0-rc.0","@storybook/web-components":"7.0.0-rc.0","@storybook/web-components-vite":"7.0.0-rc.0","@storybook/web-components-webpack5":"7.0.0-rc.0",sb:"7.0.0-rc.0",storybook:"7.0.0-rc.0"};var logger=console;var commandLog=message=>(process.stdout.write(import_chalk.default.cyan(" \u2022 ")+message),(errorMessage,errorInfo)=>{if(errorMessage){if(process.stdout.write(`. ${import_chalk.default.red("\u2716")}
|
|
2
|
+
`),logger.error(`
|
|
3
|
+
${import_chalk.default.red(errorMessage)}`),!errorInfo)return;let newErrorInfo=errorInfo.split(`
|
|
4
|
+
`).map(line=>` ${import_chalk.default.dim(line)}`).join(`
|
|
5
|
+
`);logger.error(`${newErrorInfo}
|
|
6
|
+
`);return}process.stdout.write(`. ${import_chalk.default.green("\u2713")}
|
|
7
|
+
`)});var logger2=console;function getPackageDetails(pkg){let idx=pkg.lastIndexOf("@");if(idx<=0)return[pkg,void 0];let packageName=pkg.slice(0,idx),packageVersion=pkg.slice(idx+1);return[packageName,packageVersion]}var JsPackageManager=class{setRegistryURL(url){url?this.executeCommand("npm",["config","set","registry",url]):this.executeCommand("npm",["config","delete","registry"])}getRegistryURL(){let url=this.executeCommand("npm",["config","get","registry"]).trim();return url==="undefined"?void 0:url}constructor(options){this.cwd=options==null?void 0:options.cwd}installDependencies(){let done=commandLog("Preparing to install dependencies");done(),logger2.log(),logger2.log(),done=commandLog("Installing dependencies");try{this.runInstall()}catch{done("An error occurred while installing dependencies."),process.exit(1)}done()}packageJsonPath(){return this.cwd?import_path.default.resolve(this.cwd,"package.json"):import_path.default.resolve("package.json")}readPackageJson(){let packageJsonPath=this.packageJsonPath();if(!import_fs.default.existsSync(packageJsonPath))throw new Error(`Could not read package.json file at ${packageJsonPath}`);let jsonContent=import_fs.default.readFileSync(packageJsonPath,"utf8");return JSON.parse(jsonContent)}writePackageJson(packageJson){let packageJsonToWrite={...packageJson};packageJsonToWrite.dependencies&&Object.keys(packageJsonToWrite.dependencies).length===0&&delete packageJsonToWrite.dependencies,packageJsonToWrite.devDependencies&&Object.keys(packageJsonToWrite.devDependencies).length===0&&delete packageJsonToWrite.devDependencies,packageJsonToWrite.dependencies&&Object.keys(packageJsonToWrite.peerDependencies).length===0&&delete packageJsonToWrite.peerDependencies;let content=`${JSON.stringify(packageJsonToWrite,null,2)}
|
|
8
|
+
`;import_fs.default.writeFileSync(this.packageJsonPath(),content,"utf8")}retrievePackageJson(){let packageJson;try{packageJson=this.readPackageJson()}catch{this.initPackageJson(),packageJson=this.readPackageJson()}return{...packageJson,dependencies:{...packageJson.dependencies},devDependencies:{...packageJson.devDependencies},peerDependencies:{...packageJson.peerDependencies}}}getAllDependencies(){let{dependencies,devDependencies,peerDependencies}=this.retrievePackageJson();return{...dependencies,...devDependencies,...peerDependencies}}addDependencies(options,dependencies){let{skipInstall}=options;if(skipInstall){let{packageJson}=options,dependenciesMap=dependencies.reduce((acc,dep)=>{let[packageName,packageVersion]=getPackageDetails(dep);return{...acc,[packageName]:packageVersion}},{});options.installAsDevDependencies?packageJson.devDependencies={...packageJson.devDependencies,...dependenciesMap}:packageJson.dependencies={...packageJson.dependencies,...dependenciesMap},this.writePackageJson(packageJson)}else try{this.runAddDeps(dependencies,options.installAsDevDependencies)}catch(e){logger2.error("An error occurred while installing dependencies."),logger2.log(e.message),process.exit(1)}}removeDependencies(options,dependencies){let{skipInstall}=options;if(skipInstall){let{packageJson}=options;dependencies.forEach(dep=>{packageJson.devDependencies&&delete packageJson.devDependencies[dep],packageJson.dependencies&&delete packageJson.dependencies[dep]}),this.writePackageJson(packageJson)}else try{this.runRemoveDeps(dependencies)}catch(e){logger2.error("An error occurred while removing dependencies."),logger2.log(e.message),process.exit(1)}}getVersionedPackages(packages){return Promise.all(packages.map(async pkg=>{let[packageName,packageVersion]=getPackageDetails(pkg);return`${packageName}@${await this.getVersion(packageName,packageVersion)}`}))}getVersions(...packageNames){return Promise.all(packageNames.map(packageName=>this.getVersion(packageName)))}async getVersion(packageName,constraint){let current;/(@storybook|^sb$|^storybook$)/.test(packageName)&&(current=versions_default[packageName]);let latest;try{latest=await this.latestVersion(packageName,constraint)}catch(e){if(current)return logger2.warn(`
|
|
9
|
+
${import_chalk2.default.yellow(e.message)}`),current;logger2.error(`
|
|
10
|
+
${import_chalk2.default.red(e.message)}`),process.exit(1)}return`^${current&&(!constraint||(0,import_semver3.satisfies)(current,constraint))&&(0,import_semver3.gt)(current,latest)?current:latest}`}async latestVersion(packageName,constraint){return constraint?(await this.runGetVersions(packageName,!0)).reverse().find(version=>(0,import_semver3.satisfies)(version,constraint)):this.runGetVersions(packageName,!1)}addStorybookCommandInScripts(options){let storybookCmd=`storybook dev -p ${(options==null?void 0:options.port)??6006}`,buildStorybookCmd="storybook build",preCommand=options!=null&&options.preCommand?this.getRunCommand(options.preCommand):void 0;this.addScripts({storybook:[preCommand,storybookCmd].filter(Boolean).join(" && "),"build-storybook":[preCommand,buildStorybookCmd].filter(Boolean).join(" && ")})}addESLintConfig(){var _a;let packageJson=this.retrievePackageJson();this.writePackageJson({...packageJson,eslintConfig:{...packageJson.eslintConfig,overrides:[...((_a=packageJson.eslintConfig)==null?void 0:_a.overrides)||[],{files:["**/*.stories.*"],rules:{"import/no-anonymous-default-export":"off"}}]}})}addScripts(scripts){let packageJson=this.retrievePackageJson();this.writePackageJson({...packageJson,scripts:{...packageJson.scripts,...scripts}})}addPackageResolutions(versions){let packageJson=this.retrievePackageJson(),resolutions=this.getResolutions(packageJson,versions);this.writePackageJson({...packageJson,...resolutions})}executeCommand(command,args,stdio,cwd){let commandResult=(0,import_cross_spawn.sync)(command,args,{cwd:cwd??this.cwd,stdio:stdio??"pipe",encoding:"utf-8",shell:!0});if(commandResult.status!==0)throw new Error(commandResult.stderr??"");return commandResult.stdout??""}};var NPMProxy=class extends JsPackageManager{constructor(){super(...arguments);this.type="npm"}initPackageJson(){return this.executeCommand("npm",["init","-y"])}getRunStorybookCommand(){return"npm run storybook"}getRunCommand(command){return`npm run ${command}`}getNpmVersion(){return this.executeCommand("npm",["--version"])}getInstallArgs(){return this.installArgs||(this.installArgs=[]),this.installArgs}runPackageCommand(command,args,cwd){return this.executeCommand("npm",["exec","--",command,...args],void 0,cwd)}getResolutions(packageJson,versions){return{overrides:{...packageJson.overrides,...versions}}}runInstall(){this.executeCommand("npm",["install",...this.getInstallArgs()],"inherit")}runAddDeps(dependencies,installAsDevDependencies){let args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]),this.executeCommand("npm",["install",...this.getInstallArgs(),...args],"inherit")}runRemoveDeps(dependencies){let args=[...dependencies];this.executeCommand("npm",["uninstall",...this.getInstallArgs(),...args],"inherit")}runGetVersions(packageName,fetchAllVersions){let args=[fetchAllVersions?"versions":"version","--json"],commandResult=this.executeCommand("npm",["info",packageName,...args]);try{let parsedOutput=JSON.parse(commandResult);if(parsedOutput.error)throw new Error(parsedOutput.error.summary);return parsedOutput}catch{throw new Error(`Unable to find versions of ${packageName} using npm`)}}};var import_fs_extra2=require("fs-extra");var PNPMProxy=class extends JsPackageManager{constructor(){super(...arguments);this.type="pnpm"}detectWorkspaceRoot(){let pnpmWorkspaceYaml=`${process.cwd()}/pnpm-workspace.yaml`;return(0,import_fs_extra2.pathExistsSync)(pnpmWorkspaceYaml)}initPackageJson(){return this.executeCommand("pnpm",["init","-y"])}getRunStorybookCommand(){return"pnpm run storybook"}getRunCommand(command){return`pnpm run ${command}`}getPnpmVersion(){return this.executeCommand("pnpm",["--version"])}getInstallArgs(){return this.installArgs||(this.installArgs=[],this.detectWorkspaceRoot()&&this.installArgs.push("-w")),this.installArgs}runPackageCommand(command,args,cwd){return this.executeCommand("pnpm",["exec",command,...args],void 0,cwd)}getResolutions(packageJson,versions){return{overrides:{...packageJson.overrides,...versions}}}runInstall(){this.executeCommand("pnpm",["install",...this.getInstallArgs()],"inherit")}runAddDeps(dependencies,installAsDevDependencies){let args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]),this.executeCommand("pnpm",["add",...args,...this.getInstallArgs()],"inherit")}runRemoveDeps(dependencies){let args=[...dependencies];this.executeCommand("pnpm",["remove",...args,...this.getInstallArgs()],"inherit")}runGetVersions(packageName,fetchAllVersions){let args=[fetchAllVersions?"versions":"version","--json"],commandResult=this.executeCommand("pnpm",["info",packageName,...args]);try{let parsedOutput=JSON.parse(commandResult);if(parsedOutput.error)throw new Error(parsedOutput.error.summary);return parsedOutput}catch{throw new Error(`Unable to find versions of ${packageName} using pnpm`)}}};var Yarn2Proxy=class extends JsPackageManager{constructor(){super(...arguments);this.type="yarn2"}getInstallArgs(){return this.installArgs||(this.installArgs=[]),this.installArgs}initPackageJson(){return this.executeCommand("yarn",["init"])}getRunStorybookCommand(){return"yarn storybook"}getRunCommand(command){return`yarn ${command}`}runPackageCommand(command,args,cwd){return this.executeCommand("yarn",[command,...args],void 0,cwd)}getResolutions(packageJson,versions){return{resolutions:{...packageJson.resolutions,...versions}}}runInstall(){this.executeCommand("yarn",["install",...this.getInstallArgs()],"inherit")}runAddDeps(dependencies,installAsDevDependencies){let args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]),this.executeCommand("yarn",["add",...this.getInstallArgs(),...args],"inherit")}runRemoveDeps(dependencies){let args=[...dependencies];this.executeCommand("yarn",["remove",...this.getInstallArgs(),...args],"inherit")}runGetVersions(packageName,fetchAllVersions){let field=fetchAllVersions?"versions":"version",args=["--fields",field,"--json"],commandResult=this.executeCommand("yarn",["npm","info",packageName,...args]);try{return JSON.parse(commandResult)[field]}catch{throw new Error(`Unable to find versions of ${packageName} using yarn 2`)}}};var Yarn1Proxy=class extends JsPackageManager{constructor(){super(...arguments);this.type="yarn1"}getInstallArgs(){return this.installArgs||(this.installArgs=["--ignore-workspace-root-check"]),this.installArgs}initPackageJson(){return this.executeCommand("yarn",["init","-y"])}getRunStorybookCommand(){return"yarn storybook"}getRunCommand(command){return`yarn ${command}`}runPackageCommand(command,args,cwd){return this.executeCommand("yarn",[command,...args],void 0,cwd)}getResolutions(packageJson,versions){return{resolutions:{...packageJson.resolutions,...versions}}}runInstall(){this.executeCommand("yarn",["install",...this.getInstallArgs()],"inherit")}runAddDeps(dependencies,installAsDevDependencies){let args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]),this.executeCommand("yarn",["add",...this.getInstallArgs(),...args],"inherit")}runRemoveDeps(dependencies){let args=[...dependencies];this.executeCommand("yarn",["remove",...this.getInstallArgs(),...args],"inherit")}runGetVersions(packageName,fetchAllVersions){let args=[fetchAllVersions?"versions":"version","--json"],commandResult=this.executeCommand("yarn",["info",packageName,...args]);try{let parsedOutput=JSON.parse(commandResult);if(parsedOutput.type==="inspect")return parsedOutput.data;throw new Error(`Unable to find versions of ${packageName} using yarn`)}catch{throw new Error(`Unable to find versions of ${packageName} using yarn`)}}};var NPM_LOCKFILE="package-lock.json",PNPM_LOCKFILE="pnpm-lock.yaml",YARN_LOCKFILE="yarn.lock",JsPackageManagerFactory=class{static getPackageManager({force}={},cwd){if(force==="npm")return new NPMProxy({cwd});if(force==="pnpm")return new PNPMProxy({cwd});if(force==="yarn1")return new Yarn1Proxy({cwd});if(force==="yarn2")return new Yarn2Proxy({cwd});let yarnVersion=getYarnVersion(cwd),closestLockfilePath=(0,import_find_up.sync)([YARN_LOCKFILE,PNPM_LOCKFILE,NPM_LOCKFILE],{cwd}),closestLockfile=closestLockfilePath&&import_node_path.default.basename(closestLockfilePath),hasNPMCommand=hasNPM(cwd),hasPNPMCommand=hasPNPM(cwd);if(yarnVersion&&(closestLockfile===YARN_LOCKFILE||!hasNPMCommand&&!hasPNPMCommand))return yarnVersion===1?new Yarn1Proxy({cwd}):new Yarn2Proxy({cwd});if(hasPNPMCommand&&closestLockfile===PNPM_LOCKFILE)return new PNPMProxy({cwd});if(hasNPMCommand)return new NPMProxy({cwd});throw new Error("Unable to find a usable package manager within NPM, PNPM, Yarn and Yarn 2")}};function hasNPM(cwd){return(0,import_cross_spawn2.sync)("npm",["--version"],{cwd,shell:!0}).status===0}function hasPNPM(cwd){return(0,import_cross_spawn2.sync)("pnpm",["--version"],{cwd,shell:!0}).status===0}function getYarnVersion(cwd){let yarnVersionCommand=(0,import_cross_spawn2.sync)("yarn",["--version"],{cwd,shell:!0});if(yarnVersionCommand.status!==0)return;let yarnVersion=yarnVersionCommand.output.toString().replace(/,/g,"").replace(/"/g,"");return/^1\.+/.test(yarnVersion)?1:2}0&&(module.exports={JsPackageManager,JsPackageManagerFactory,getPackageDetails,useNpmWarning});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{JsPackageManager,JsPackageManagerFactory,getPackageDetails,useNpmWarning}from"./chunk-VV5NJWNA.mjs";export{JsPackageManager,JsPackageManagerFactory,getPackageDetails,useNpmWarning};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/cli",
|
|
3
|
-
"version": "7.0.0-
|
|
3
|
+
"version": "7.0.0-rc.0",
|
|
4
4
|
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -22,6 +22,19 @@
|
|
|
22
22
|
},
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"author": "Storybook Team",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"node": "./dist/index.js",
|
|
28
|
+
"require": "./dist/index.js",
|
|
29
|
+
"import": "./dist/index.mjs",
|
|
30
|
+
"types": "./dist/index.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json",
|
|
33
|
+
"./bin/index": "./bin/index.js"
|
|
34
|
+
},
|
|
35
|
+
"main": "dist/index.js",
|
|
36
|
+
"module": "dist/index.mjs",
|
|
37
|
+
"types": "dist/index.d.ts",
|
|
25
38
|
"bin": {
|
|
26
39
|
"getstorybook": "./bin/index.js",
|
|
27
40
|
"sb": "./bin/index.js"
|
|
@@ -43,13 +56,14 @@
|
|
|
43
56
|
"dependencies": {
|
|
44
57
|
"@babel/core": "^7.20.2",
|
|
45
58
|
"@babel/preset-env": "^7.20.2",
|
|
46
|
-
"@
|
|
47
|
-
"@storybook/
|
|
48
|
-
"@storybook/core-
|
|
49
|
-
"@storybook/
|
|
50
|
-
"@storybook/
|
|
51
|
-
"@storybook/
|
|
52
|
-
"@storybook/
|
|
59
|
+
"@ndelangen/get-tarball": "^3.0.7",
|
|
60
|
+
"@storybook/codemod": "7.0.0-rc.0",
|
|
61
|
+
"@storybook/core-common": "7.0.0-rc.0",
|
|
62
|
+
"@storybook/core-server": "7.0.0-rc.0",
|
|
63
|
+
"@storybook/csf-tools": "7.0.0-rc.0",
|
|
64
|
+
"@storybook/node-logger": "7.0.0-rc.0",
|
|
65
|
+
"@storybook/telemetry": "7.0.0-rc.0",
|
|
66
|
+
"@storybook/types": "7.0.0-rc.0",
|
|
53
67
|
"@types/semver": "^7.3.4",
|
|
54
68
|
"boxen": "^5.1.2",
|
|
55
69
|
"chalk": "^4.1.0",
|
|
@@ -60,43 +74,45 @@
|
|
|
60
74
|
"execa": "^5.0.0",
|
|
61
75
|
"express": "^4.17.3",
|
|
62
76
|
"find-up": "^5.0.0",
|
|
63
|
-
"fs-extra": "^
|
|
77
|
+
"fs-extra": "^11.1.0",
|
|
78
|
+
"get-npm-tarball-url": "^2.0.3",
|
|
64
79
|
"get-port": "^5.1.1",
|
|
65
80
|
"giget": "^1.0.0",
|
|
66
81
|
"globby": "^11.0.2",
|
|
67
|
-
"jscodeshift": "^0.
|
|
82
|
+
"jscodeshift": "^0.14.0",
|
|
68
83
|
"leven": "^3.1.0",
|
|
84
|
+
"prettier": "^2.8.0",
|
|
69
85
|
"prompts": "^2.4.0",
|
|
70
86
|
"puppeteer-core": "^2.1.1",
|
|
71
87
|
"read-pkg-up": "^7.0.1",
|
|
72
88
|
"semver": "^7.3.7",
|
|
73
89
|
"shelljs": "^0.8.5",
|
|
90
|
+
"simple-update-notifier": "^1.0.0",
|
|
74
91
|
"strip-json-comments": "^3.0.1",
|
|
92
|
+
"tempy": "^1.0.1",
|
|
75
93
|
"ts-dedent": "^2.0.0",
|
|
76
|
-
"update-notifier": "^6.0.2",
|
|
77
94
|
"util-deprecate": "^1.0.2"
|
|
78
95
|
},
|
|
79
96
|
"devDependencies": {
|
|
80
|
-
"@storybook/client-api": "7.0.0-
|
|
97
|
+
"@storybook/client-api": "7.0.0-rc.0",
|
|
81
98
|
"@types/cross-spawn": "^6.0.2",
|
|
82
99
|
"@types/prompts": "^2.0.9",
|
|
83
100
|
"@types/puppeteer-core": "^2.1.0",
|
|
84
101
|
"@types/semver": "^7.3.4",
|
|
85
102
|
"@types/shelljs": "^0.8.7",
|
|
86
|
-
"@types/update-notifier": "^6.0.1",
|
|
87
103
|
"@types/util-deprecate": "^1.0.0",
|
|
88
104
|
"strip-json-comments": "^3.1.1",
|
|
89
|
-
"typescript": "~4.9.3"
|
|
90
|
-
"update-notifier": "^6.0.2"
|
|
105
|
+
"typescript": "~4.9.3"
|
|
91
106
|
},
|
|
92
107
|
"publishConfig": {
|
|
93
108
|
"access": "public"
|
|
94
109
|
},
|
|
95
110
|
"bundler": {
|
|
96
111
|
"entries": [
|
|
97
|
-
"./src/generate.ts"
|
|
112
|
+
"./src/generate.ts",
|
|
113
|
+
"./src/index.ts"
|
|
98
114
|
],
|
|
99
115
|
"platform": "node"
|
|
100
116
|
},
|
|
101
|
-
"gitHead": "
|
|
117
|
+
"gitHead": "6d1bcb2579203a3075467a2ba83738d854545053"
|
|
102
118
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "
|
|
2
|
+
"extends": "../tsconfig.app.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
"types": ["node"],
|
|
5
|
-
"allowSyntheticDefaultImports": true
|
|
5
|
+
"allowSyntheticDefaultImports": true,
|
|
6
|
+
"resolveJsonModule": true
|
|
6
7
|
},
|
|
7
|
-
"exclude": ["../src/test.ts", "../src/**/*.spec.ts"
|
|
8
|
-
"include": ["../src/**/*", "
|
|
8
|
+
"exclude": ["../src/test.ts", "../src/**/*.spec.ts"],
|
|
9
|
+
"include": ["../src/**/*", "./preview.ts"],
|
|
9
10
|
"files": ["./typings.d.ts"]
|
|
10
11
|
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// if you use expo remove this line
|
|
2
|
-
import { AppRegistry } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import { getStorybookUI, configure, addDecorator } from '@storybook/react-native';
|
|
5
|
-
import { withKnobs } from '@storybook/addon-knobs';
|
|
6
|
-
|
|
7
|
-
import './rn-addons';
|
|
8
|
-
|
|
9
|
-
// enables knobs for all stories
|
|
10
|
-
addDecorator(withKnobs);
|
|
11
|
-
|
|
12
|
-
// import stories
|
|
13
|
-
configure(
|
|
14
|
-
() => {
|
|
15
|
-
require('./stories');
|
|
16
|
-
},
|
|
17
|
-
module,
|
|
18
|
-
false
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
// Refer to https://github.com/storybookjs/react-native/tree/master/app/react-native#getstorybookui-options
|
|
22
|
-
// To find allowed options for getStorybookUI
|
|
23
|
-
const StorybookUIRoot = getStorybookUI({});
|
|
24
|
-
|
|
25
|
-
// If you are using React Native vanilla and after installation you don't see your app name here, write it manually.
|
|
26
|
-
// If you use Expo you should remove this line.
|
|
27
|
-
AppRegistry.registerComponent('%APP_NAME%', () => StorybookUIRoot);
|
|
28
|
-
|
|
29
|
-
export default StorybookUIRoot;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { action } from '@storybook/addon-actions';
|
|
2
|
-
import { text } from '@storybook/addon-knobs';
|
|
3
|
-
import { storiesOf } from '@storybook/react-native';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { Text } from 'react-native';
|
|
6
|
-
import Button from '.';
|
|
7
|
-
import CenterView from '../CenterView';
|
|
8
|
-
|
|
9
|
-
storiesOf('Button', module)
|
|
10
|
-
.addDecorator((getStory) => <CenterView>{getStory()}</CenterView>)
|
|
11
|
-
.add('with text', () => (
|
|
12
|
-
<Button onPress={action('clicked-text')}>
|
|
13
|
-
<Text>{text('Button text', 'Hello Button')}</Text>
|
|
14
|
-
</Button>
|
|
15
|
-
))
|
|
16
|
-
.add('with some emoji', () => (
|
|
17
|
-
<Button onPress={action('clicked-emoji')}>
|
|
18
|
-
<Text>😀 😎 👍 💯</Text>
|
|
19
|
-
</Button>
|
|
20
|
-
));
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { TouchableHighlight } from 'react-native';
|
|
4
|
-
|
|
5
|
-
export default function Button({ onPress, label }) {
|
|
6
|
-
return <TouchableHighlight onPress={onPress}>{label}</TouchableHighlight>;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
Button.defaultProps = {
|
|
10
|
-
label: null,
|
|
11
|
-
onPress: () => {},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
Button.propTypes = {
|
|
15
|
-
label: PropTypes.node,
|
|
16
|
-
onPress: PropTypes.func,
|
|
17
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { View } from 'react-native';
|
|
4
|
-
import style from './style';
|
|
5
|
-
|
|
6
|
-
export default function CenterView({ label }) {
|
|
7
|
-
return <View style={style.main}>{label}</View>;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
CenterView.defaultProps = {
|
|
11
|
-
label: null,
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
CenterView.propTypes = {
|
|
15
|
-
label: PropTypes.node,
|
|
16
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { View, Text } from 'react-native';
|
|
4
|
-
|
|
5
|
-
export default class Welcome extends React.Component {
|
|
6
|
-
styles = {
|
|
7
|
-
wrapper: {
|
|
8
|
-
flex: 1,
|
|
9
|
-
padding: 24,
|
|
10
|
-
justifyContent: 'center',
|
|
11
|
-
},
|
|
12
|
-
header: {
|
|
13
|
-
fontSize: 18,
|
|
14
|
-
marginBottom: 18,
|
|
15
|
-
},
|
|
16
|
-
content: {
|
|
17
|
-
fontSize: 12,
|
|
18
|
-
marginBottom: 10,
|
|
19
|
-
lineHeight: 18,
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
showApp = (event) => {
|
|
24
|
-
const { showApp } = this.props;
|
|
25
|
-
event.preventDefault();
|
|
26
|
-
|
|
27
|
-
if (showApp) {
|
|
28
|
-
showApp();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
render() {
|
|
33
|
-
return (
|
|
34
|
-
<View style={this.styles.wrapper}>
|
|
35
|
-
<Text style={this.styles.header}>Welcome to React Native Storybook</Text>
|
|
36
|
-
<Text style={this.styles.content}>
|
|
37
|
-
This is a UI Component development environment for your React Native app. Here you can
|
|
38
|
-
display and interact with your UI components as stories. A story is a single state of one
|
|
39
|
-
or more UI components. You can have as many stories as you want. In other words a story is
|
|
40
|
-
like a visual test case.
|
|
41
|
-
</Text>
|
|
42
|
-
<Text style={this.styles.content}>
|
|
43
|
-
We have added some stories inside the "storybook/stories" directory for examples. Try
|
|
44
|
-
editing the "storybook/stories/Welcome.js" file to edit this message.
|
|
45
|
-
</Text>
|
|
46
|
-
</View>
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
Welcome.defaultProps = {
|
|
52
|
-
showApp: null,
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
Welcome.propTypes = {
|
|
56
|
-
showApp: PropTypes.func,
|
|
57
|
-
};
|