@storybook/core-server 7.1.0-alpha.7 → 7.1.0-alpha.8

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/dist/index.js CHANGED
@@ -14,7 +14,7 @@ ${this.indexingErrors.map(err=>`- ${err}`).join(`
14
14
 
15
15
  - Does that file exist?
16
16
  - If so, is it a CSF file (\`.stories.*\`)?
17
- - If so, is it matched by the \`stories\` glob in \`main.js\`?`)}dependencies.forEach(dep=>{dep.dependents.push(absolutePath)});let title=(csfEntry==null?void 0:csfEntry.title)||(0,import_preview_api.userOrAutoTitleFromSpecifier)(importPath,specifier,result.title),{defaultName}=this.options.docs,name=result.name||(csfEntry?autoName(importPath,csfEntry.importPath,defaultName):defaultName);return{id:(0,import_csf.toId)(title,name),title,name,importPath,storiesImports:sortedDependencies.map(dep=>dep.entries[0].importPath),type:"docs",tags:[...result.tags||[],csfEntry?"attached-mdx":"unattached-mdx","docs"]}}catch(err){throw(_a=err.source)!=null&&_a.match(/mdast-util-mdx-jsx/g)&&import_node_logger4.logger.warn(`\u{1F4A1} This seems to be an MDX2 syntax error. Please refer to the MDX section in the following resource for assistance on how to fix this: ${import_chalk4.default.yellow("https://storybook.js.org/migration-guides/7.0")}`),err}}chooseDuplicate(firstEntry,secondEntry){var _a;if(firstEntry.importPath===secondEntry.importPath)return firstEntry;let firstIsBetter=!0;(secondEntry.type==="story"||isMdxEntry(secondEntry)&&firstEntry.type==="docs"&&!isMdxEntry(firstEntry))&&(firstIsBetter=!1);let betterEntry=firstIsBetter?firstEntry:secondEntry,worseEntry=firstIsBetter?secondEntry:firstEntry,changeDocsName='Use `<Meta of={} name="Other Name">` to distinguish them.';if(worseEntry.type==="story")throw new IndexingError(`Duplicate stories with id: ${firstEntry.id}`,[firstEntry.importPath,secondEntry.importPath]);if(betterEntry.type==="story"){let worseDescriptor=isMdxEntry(worseEntry)?"component docs page":"automatically generated docs page";throw betterEntry.name===this.options.docs.defaultName?new IndexingError(`You have a story for ${betterEntry.title} with the same name as your default docs entry name (${betterEntry.name}), so the docs page is being dropped. Consider changing the story name.`,[firstEntry.importPath,secondEntry.importPath]):new IndexingError(`You have a story for ${betterEntry.title} with the same name as your ${worseDescriptor} (${worseEntry.name}), so the docs page is being dropped. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath])}else if(isMdxEntry(betterEntry)){if(isMdxEntry(worseEntry))throw new IndexingError(`You have two component docs pages with the same name ${betterEntry.title}:${betterEntry.name}. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath]);if((_a=worseEntry.tags)!=null&&_a.includes(AUTODOCS_TAG)&&this.options.docs.autodocs!==!0)throw new IndexingError(`You created a component docs page for '${worseEntry.title}', but also tagged the CSF file with '${AUTODOCS_TAG}'. This is probably a mistake.`,[betterEntry.importPath,worseEntry.importPath])}else return{...betterEntry,storiesImports:[...betterEntry.storiesImports,worseEntry.importPath,...worseEntry.storiesImports]};return betterEntry}async sortStories(entries){let sortableStories=Object.values(entries);if(this.options.storyStoreV7){let storySortParameter=await this.getStorySortParameter(),fileNameOrder=this.storyFileNames();(0,import_preview_api.sortStoriesV7)(sortableStories,storySortParameter,fileNameOrder)}return sortableStories.reduce((acc,item)=>(acc[item.id]=item,acc),{})}async getIndex(){if(this.lastIndex)return this.lastIndex;if(this.lastError)throw this.lastError;let storiesList=await this.ensureExtracted();try{let errorEntries=storiesList.filter(entry=>entry.type==="error");if(errorEntries.length)throw new MultipleIndexingError(errorEntries.map(entry=>entry.err));let duplicateErrors=[],indexEntries={};if(storiesList.forEach(entry=>{try{let existing=indexEntries[entry.id];existing?indexEntries[entry.id]=this.chooseDuplicate(existing,entry):indexEntries[entry.id]=entry}catch(err){duplicateErrors.push(err)}}),duplicateErrors.length)throw new MultipleIndexingError(duplicateErrors);let sorted=await this.sortStories(indexEntries),compat=sorted;if(this.options.storiesV2Compatibility){let titleToStoryCount=Object.values(sorted).reduce((acc,story)=>(acc[story.title]=(acc[story.title]||0)+1,acc),{});compat=Object.entries(sorted).reduce((acc,entry)=>{let[id,story]=entry;return story.type==="docs"||(acc[id]={...story,kind:story.title,story:story.name,parameters:{__id:story.id,docsOnly:titleToStoryCount[story.title]===1&&story.name==="Page",fileName:story.importPath}}),acc},{})}return this.lastIndex={v:4,entries:compat},this.lastIndex}catch(err){throw this.lastError=err,import_node_logger4.logger.warn(`\u{1F6A8} ${this.lastError.toString()}`),this.lastError}}invalidate(specifier,importPath,removed){let absolutePath=slash(import_path7.default.resolve(this.options.workingDir,importPath)),cache4=this.specifierToCache.get(specifier),cacheEntry=cache4[absolutePath];if(cacheEntry&&cacheEntry.type==="stories"){let{dependents}=cacheEntry,invalidated=new Set;this.specifierToCache.forEach(otherCache=>{dependents.forEach(dep=>{otherCache[dep]&&(invalidated.add(dep),otherCache[dep]=!1)})})}if(removed){if(cacheEntry&&cacheEntry.type==="docs"){let absoluteImports=cacheEntry.storiesImports.map(p=>import_path7.default.resolve(this.options.workingDir,p));this.findDependencies(absoluteImports).forEach(dep=>dep.dependents.splice(dep.dependents.indexOf(absolutePath),1))}delete cache4[absolutePath]}else cache4[absolutePath]=!1;this.lastIndex=null,this.lastError=null}async getStorySortParameter(){let previewFile=["js","jsx","ts","tsx","mjs","cjs"].map(ext=>import_path7.default.join(this.options.configDir,`preview.${ext}`)).find(fname=>import_fs_extra6.default.existsSync(fname)),storySortParameter;if(previewFile){let previewCode=(await import_fs_extra6.default.readFile(previewFile,"utf-8")).toString();storySortParameter=await(0,import_csf_tools.getStorySortParameter)(previewCode)}return storySortParameter}storyFileNames(){return Array.from(this.specifierToCache.values()).flatMap(r=>Object.keys(r))}};var PAGE_REGEX=/(page|screen)/i,isPageStory=storyId=>PAGE_REGEX.test(storyId),isExampleEntry=entry=>["example-introduction--docs","example-button--docs","example-button--primary","example-button--secondary","example-button--large","example-button--small","example-header--docs","example-header--logged-in","example-header--logged-out","example-page--logged-in","example-page--logged-out"].includes(entry.id);function summarizeIndex(storyIndex){let storyCount=0,componentTitles=new Set,exampleStoryCount=0,exampleDocsCount=0,pageStoryCount=0,playStoryCount=0,autodocsCount=0,storiesMdxCount=0,mdxCount=0;Object.values(storyIndex.entries).forEach(entry=>{var _a,_b,_c;isExampleEntry(entry)?(entry.type==="story"&&(exampleStoryCount+=1),entry.type==="docs"&&(exampleDocsCount+=1)):entry.type==="story"?(storyCount+=1,componentTitles.add(entry.title),isPageStory(entry.title)&&(pageStoryCount+=1),(_a=entry.tags)!=null&&_a.includes(PLAY_FN_TAG)&&(playStoryCount+=1)):entry.type==="docs"&&(isMdxEntry(entry)?mdxCount+=1:(_b=entry.tags)!=null&&_b.includes(STORIES_MDX_TAG)?storiesMdxCount+=1:(_c=entry.tags)!=null&&_c.includes(AUTODOCS_TAG)&&(autodocsCount+=1))});let componentCount=componentTitles.size;return{storyCount,componentCount,pageStoryCount,playStoryCount,autodocsCount,storiesMdxCount,mdxCount,exampleStoryCount,exampleDocsCount,version:storyIndex.v}}var import_client_logger=__toESM(require_dist()),import_chalk6=__toESM(require("chalk")),import_ts_dedent4=__toESM(require("ts-dedent"));var import_semver2=__toESM(require("semver"));var fs5=__toESM(require("fs-extra")),import_path8=__toESM(require("path")),getActualPackageVersions=async packages=>Promise.all(packages.map(getActualPackageVersion)),getActualPackageVersion=async packageName=>{try{let packageJson=await getActualPackageJson(packageName);return{name:packageName,version:packageJson.version}}catch{return{name:packageName,version:null}}},getActualPackageJson=async packageName=>{let resolvedPackageJson=require.resolve(import_path8.default.join(packageName,"package.json"),{paths:[process.cwd()]});return await fs5.readJson(resolvedPackageJson)};var import_core_common4=require("@storybook/core-common"),import_csf_tools2=require("@storybook/csf-tools"),import_chalk5=__toESM(require("chalk")),import_semver=__toESM(require("semver")),import_ts_dedent3=__toESM(require("ts-dedent"));var getAddonNames=mainConfig=>(mainConfig.addons||[]).map(addon=>{let name="";if(typeof addon=="string"?name=addon:typeof addon=="object"&&(name=addon.name),!name.startsWith("."))return name.replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,"")}).filter(Boolean);var getIncompatibleAddons=async mainConfig=>{let incompatibleList={"@storybook/addon-knobs":"6.4.0","@storybook/addon-postcss":"2.0.0","storybook-addon-next-router":"4.0.2","storybook-addon-outline":"1.4.2","@storybook/addon-info":"5.3.21","storybook-addon-designs":"6.3.1","storybook-addon-next":"1.7.0","storybook-docs-toc":"1.7.0","@storybook/addon-google-analytics":"6.2.9","storybook-addon-pseudo-states":"1.15.5","storybook-dark-mode":"2.1.1","storybook-addon-gatsby":"0.0.5","@etchteam/storybook-addon-css-variables-theme":"1.4.0","@storybook/addon-cssresources":"6.2.9","storybook-addon-grid":"0.3.1","storybook-multilevel-sort":"1.2.0","storybook-addon-i18next":"1.3.0","storybook-source-link":"2.0.8","babel-plugin-storybook-csf-title":"2.1.0","@urql/storybook-addon":"2.0.1","storybook-addon-intl":"2.4.1","storybook-addon-mock":"3.2.0","@chakra-ui/storybook-addon":"4.0.16","storybook-mobile-addon":"1.0.2"},addons=getAddonNames(mainConfig).filter(addon=>addon in incompatibleList);if(addons.length===0)return[];let addonVersions=await getActualPackageVersions(addons),incompatibleAddons=[];return addonVersions.forEach(({name,version:installedVersion})=>{if(installedVersion===null)return;let addonVersion=incompatibleList[name];try{import_semver2.default.lte(import_semver2.default.coerce(installedVersion),import_semver2.default.coerce(addonVersion))&&incompatibleAddons.push({name,version:installedVersion})}catch{}}),incompatibleAddons};var warnOnIncompatibleAddons=async config=>{let incompatibleAddons=await getIncompatibleAddons(config);incompatibleAddons.length>0&&import_client_logger.logger.warn(import_ts_dedent4.default`
17
+ - If so, is it matched by the \`stories\` glob in \`main.js\`?`)}dependencies.forEach(dep=>{dep.dependents.push(absolutePath)});let title=(csfEntry==null?void 0:csfEntry.title)||(0,import_preview_api.userOrAutoTitleFromSpecifier)(importPath,specifier,result.title),{defaultName}=this.options.docs,name=result.name||(csfEntry?autoName(importPath,csfEntry.importPath,defaultName):defaultName);return{id:(0,import_csf.toId)(title,name),title,name,importPath,storiesImports:sortedDependencies.map(dep=>dep.entries[0].importPath),type:"docs",tags:[...result.tags||[],csfEntry?"attached-mdx":"unattached-mdx","docs"]}}catch(err){throw(_a=err.source)!=null&&_a.match(/mdast-util-mdx-jsx/g)&&import_node_logger4.logger.warn(`\u{1F4A1} This seems to be an MDX2 syntax error. Please refer to the MDX section in the following resource for assistance on how to fix this: ${import_chalk4.default.yellow("https://storybook.js.org/migration-guides/7.0")}`),err}}chooseDuplicate(firstEntry,secondEntry){var _a;if(firstEntry.importPath===secondEntry.importPath)return firstEntry;let firstIsBetter=!0;(secondEntry.type==="story"||isMdxEntry(secondEntry)&&firstEntry.type==="docs"&&!isMdxEntry(firstEntry))&&(firstIsBetter=!1);let betterEntry=firstIsBetter?firstEntry:secondEntry,worseEntry=firstIsBetter?secondEntry:firstEntry,changeDocsName='Use `<Meta of={} name="Other Name">` to distinguish them.';if(worseEntry.type==="story")throw new IndexingError(`Duplicate stories with id: ${firstEntry.id}`,[firstEntry.importPath,secondEntry.importPath]);if(betterEntry.type==="story"){let worseDescriptor=isMdxEntry(worseEntry)?"component docs page":"automatically generated docs page";throw betterEntry.name===this.options.docs.defaultName?new IndexingError(`You have a story for ${betterEntry.title} with the same name as your default docs entry name (${betterEntry.name}), so the docs page is being dropped. Consider changing the story name.`,[firstEntry.importPath,secondEntry.importPath]):new IndexingError(`You have a story for ${betterEntry.title} with the same name as your ${worseDescriptor} (${worseEntry.name}), so the docs page is being dropped. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath])}else if(isMdxEntry(betterEntry)){if(isMdxEntry(worseEntry))throw new IndexingError(`You have two component docs pages with the same name ${betterEntry.title}:${betterEntry.name}. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath]);if((_a=worseEntry.tags)!=null&&_a.includes(AUTODOCS_TAG)&&this.options.docs.autodocs!==!0)throw new IndexingError(`You created a component docs page for '${worseEntry.title}', but also tagged the CSF file with '${AUTODOCS_TAG}'. This is probably a mistake.`,[betterEntry.importPath,worseEntry.importPath])}else return{...betterEntry,storiesImports:[...betterEntry.storiesImports,worseEntry.importPath,...worseEntry.storiesImports]};return betterEntry}async sortStories(entries){let sortableStories=Object.values(entries);if(this.options.storyStoreV7){let storySortParameter=await this.getStorySortParameter(),fileNameOrder=this.storyFileNames();(0,import_preview_api.sortStoriesV7)(sortableStories,storySortParameter,fileNameOrder)}return sortableStories.reduce((acc,item)=>(acc[item.id]=item,acc),{})}async getIndex(){if(this.lastIndex)return this.lastIndex;if(this.lastError)throw this.lastError;let storiesList=await this.ensureExtracted();try{let errorEntries=storiesList.filter(entry=>entry.type==="error");if(errorEntries.length)throw new MultipleIndexingError(errorEntries.map(entry=>entry.err));let duplicateErrors=[],indexEntries={};if(storiesList.forEach(entry=>{try{let existing=indexEntries[entry.id];existing?indexEntries[entry.id]=this.chooseDuplicate(existing,entry):indexEntries[entry.id]=entry}catch(err){duplicateErrors.push(err)}}),duplicateErrors.length)throw new MultipleIndexingError(duplicateErrors);let sorted=await this.sortStories(indexEntries),compat=sorted;if(this.options.storiesV2Compatibility){let titleToStoryCount=Object.values(sorted).reduce((acc,story)=>(acc[story.title]=(acc[story.title]||0)+1,acc),{});compat=Object.entries(sorted).reduce((acc,entry)=>{let[id,story]=entry;return story.type==="docs"||(acc[id]={...story,kind:story.title,story:story.name,parameters:{__id:story.id,docsOnly:titleToStoryCount[story.title]===1&&story.name==="Page",fileName:story.importPath}}),acc},{})}return this.lastIndex={v:4,entries:compat},this.lastIndex}catch(err){throw this.lastError=err,import_node_logger4.logger.warn(`\u{1F6A8} ${this.lastError.toString()}`),this.lastError}}invalidate(specifier,importPath,removed){let absolutePath=slash(import_path7.default.resolve(this.options.workingDir,importPath)),cache4=this.specifierToCache.get(specifier),cacheEntry=cache4[absolutePath];if(cacheEntry&&cacheEntry.type==="stories"){let{dependents}=cacheEntry,invalidated=new Set;this.specifierToCache.forEach(otherCache=>{dependents.forEach(dep=>{otherCache[dep]&&(invalidated.add(dep),otherCache[dep]=!1)})})}if(removed){if(cacheEntry&&cacheEntry.type==="docs"){let absoluteImports=cacheEntry.storiesImports.map(p=>import_path7.default.resolve(this.options.workingDir,p));this.findDependencies(absoluteImports).forEach(dep=>dep.dependents.splice(dep.dependents.indexOf(absolutePath),1))}delete cache4[absolutePath]}else cache4[absolutePath]=!1;this.lastIndex=null,this.lastError=null}async getStorySortParameter(){let previewFile=["js","jsx","ts","tsx","mjs","cjs"].map(ext=>import_path7.default.join(this.options.configDir,`preview.${ext}`)).find(fname=>import_fs_extra6.default.existsSync(fname)),storySortParameter;if(previewFile){let previewCode=(await import_fs_extra6.default.readFile(previewFile,"utf-8")).toString();storySortParameter=await(0,import_csf_tools.getStorySortParameter)(previewCode)}return storySortParameter}storyFileNames(){return Array.from(this.specifierToCache.values()).flatMap(r=>Object.keys(r))}};var PAGE_REGEX=/(page|screen)/i,isPageStory=storyId=>PAGE_REGEX.test(storyId),isExampleEntry=entry=>["example-introduction--docs","example-button--docs","example-button--primary","example-button--secondary","example-button--large","example-button--small","example-header--docs","example-header--logged-in","example-header--logged-out","example-page--logged-in","example-page--logged-out"].includes(entry.id);function summarizeIndex(storyIndex){let storyCount=0,componentTitles=new Set,exampleStoryCount=0,exampleDocsCount=0,pageStoryCount=0,playStoryCount=0,autodocsCount=0,storiesMdxCount=0,mdxCount=0;Object.values(storyIndex.entries).forEach(entry=>{var _a,_b,_c;isExampleEntry(entry)?(entry.type==="story"&&(exampleStoryCount+=1),entry.type==="docs"&&(exampleDocsCount+=1)):entry.type==="story"?(storyCount+=1,componentTitles.add(entry.title),isPageStory(entry.title)&&(pageStoryCount+=1),(_a=entry.tags)!=null&&_a.includes(PLAY_FN_TAG)&&(playStoryCount+=1)):entry.type==="docs"&&(isMdxEntry(entry)?mdxCount+=1:(_b=entry.tags)!=null&&_b.includes(STORIES_MDX_TAG)?storiesMdxCount+=1:(_c=entry.tags)!=null&&_c.includes(AUTODOCS_TAG)&&(autodocsCount+=1))});let componentCount=componentTitles.size;return{storyCount,componentCount,pageStoryCount,playStoryCount,autodocsCount,storiesMdxCount,mdxCount,exampleStoryCount,exampleDocsCount,version:storyIndex.v}}var import_client_logger=__toESM(require_dist()),import_chalk6=__toESM(require("chalk")),import_ts_dedent4=__toESM(require("ts-dedent"));var import_semver2=__toESM(require("semver"));var fs5=__toESM(require("fs-extra")),import_path8=__toESM(require("path")),getActualPackageVersions=async packages=>Promise.all(packages.map(getActualPackageVersion)),getActualPackageVersion=async packageName=>{try{let packageJson=await getActualPackageJson(packageName);return{name:packageName,version:packageJson.version}}catch{return{name:packageName,version:null}}},getActualPackageJson=async packageName=>{let resolvedPackageJson=require.resolve(import_path8.default.join(packageName,"package.json"),{paths:[process.cwd()]});return await fs5.readJson(resolvedPackageJson)};var import_core_common4=require("@storybook/core-common"),import_csf_tools2=require("@storybook/csf-tools"),import_chalk5=__toESM(require("chalk")),import_semver=__toESM(require("semver")),import_ts_dedent3=__toESM(require("ts-dedent"));var getAddonNames=mainConfig=>(mainConfig.addons||[]).map(addon=>{let name="";if(typeof addon=="string"?name=addon:typeof addon=="object"&&(name=addon.name),!name.startsWith("."))return name.replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,"")}).filter(Boolean);var getIncompatibleAddons=async mainConfig=>{let incompatibleList={"@storybook/addon-knobs":"6.4.0","@storybook/addon-postcss":"2.0.0","storybook-addon-next-router":"4.0.2","storybook-addon-outline":"1.4.2","@storybook/addon-info":"5.3.21","storybook-addon-designs":"6.3.1","storybook-addon-next":"1.7.0","storybook-docs-toc":"1.7.0","@storybook/addon-google-analytics":"6.2.9","storybook-addon-pseudo-states":"1.15.5","storybook-dark-mode":"2.1.1","storybook-addon-gatsby":"0.0.5","@etchteam/storybook-addon-css-variables-theme":"1.4.0","@storybook/addon-cssresources":"6.2.9","storybook-addon-grid":"0.3.1","storybook-multilevel-sort":"1.2.0","storybook-addon-i18next":"1.3.0","storybook-source-link":"2.0.8","babel-plugin-storybook-csf-title":"2.1.0","@urql/storybook-addon":"2.0.1","storybook-addon-intl":"2.4.1","storybook-addon-mock":"3.2.0","@chakra-ui/storybook-addon":"4.0.16","storybook-mobile-addon":"1.0.2","@storybook/addon-queryparams":"6.2.9"},addons=getAddonNames(mainConfig).filter(addon=>addon in incompatibleList);if(addons.length===0)return[];let addonVersions=await getActualPackageVersions(addons),incompatibleAddons=[];return addonVersions.forEach(({name,version:installedVersion})=>{if(installedVersion===null)return;let addonVersion=incompatibleList[name];try{import_semver2.default.lte(import_semver2.default.coerce(installedVersion),import_semver2.default.coerce(addonVersion))&&incompatibleAddons.push({name,version:installedVersion})}catch{}}),incompatibleAddons};var warnOnIncompatibleAddons=async config=>{let incompatibleAddons=await getIncompatibleAddons(config);incompatibleAddons.length>0&&import_client_logger.logger.warn(import_ts_dedent4.default`
18
18
  ${import_chalk6.default.bold(import_chalk6.default.red("Attention"))}: We've detected that you're using the following addons in versions which are known to be incompatible with Storybook 7:
19
19
 
20
20
  ${incompatibleAddons.map(({name,version})=>`- ${import_chalk6.default.cyan(`${name}@${version}`)}`).join(`
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ ${this.indexingErrors.map(err=>`- ${err}`).join(`
5
5
 
6
6
  - Does that file exist?
7
7
  - If so, is it a CSF file (\`.stories.*\`)?
8
- - If so, is it matched by the \`stories\` glob in \`main.js\`?`)}dependencies.forEach(dep=>{dep.dependents.push(absolutePath)});let title=csfEntry?.title||userOrAutoTitleFromSpecifier(importPath,specifier,result.title),{defaultName}=this.options.docs,name=result.name||(csfEntry?autoName(importPath,csfEntry.importPath,defaultName):defaultName);return{id:toId(title,name),title,name,importPath,storiesImports:sortedDependencies.map(dep=>dep.entries[0].importPath),type:"docs",tags:[...result.tags||[],csfEntry?"attached-mdx":"unattached-mdx","docs"]}}catch(err){throw err.source?.match(/mdast-util-mdx-jsx/g)&&logger3.warn(`\u{1F4A1} This seems to be an MDX2 syntax error. Please refer to the MDX section in the following resource for assistance on how to fix this: ${chalk3.yellow("https://storybook.js.org/migration-guides/7.0")}`),err}}chooseDuplicate(firstEntry,secondEntry){if(firstEntry.importPath===secondEntry.importPath)return firstEntry;let firstIsBetter=!0;(secondEntry.type==="story"||isMdxEntry(secondEntry)&&firstEntry.type==="docs"&&!isMdxEntry(firstEntry))&&(firstIsBetter=!1);let betterEntry=firstIsBetter?firstEntry:secondEntry,worseEntry=firstIsBetter?secondEntry:firstEntry,changeDocsName='Use `<Meta of={} name="Other Name">` to distinguish them.';if(worseEntry.type==="story")throw new IndexingError(`Duplicate stories with id: ${firstEntry.id}`,[firstEntry.importPath,secondEntry.importPath]);if(betterEntry.type==="story"){let worseDescriptor=isMdxEntry(worseEntry)?"component docs page":"automatically generated docs page";throw betterEntry.name===this.options.docs.defaultName?new IndexingError(`You have a story for ${betterEntry.title} with the same name as your default docs entry name (${betterEntry.name}), so the docs page is being dropped. Consider changing the story name.`,[firstEntry.importPath,secondEntry.importPath]):new IndexingError(`You have a story for ${betterEntry.title} with the same name as your ${worseDescriptor} (${worseEntry.name}), so the docs page is being dropped. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath])}else if(isMdxEntry(betterEntry)){if(isMdxEntry(worseEntry))throw new IndexingError(`You have two component docs pages with the same name ${betterEntry.title}:${betterEntry.name}. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath]);if(worseEntry.tags?.includes(AUTODOCS_TAG)&&this.options.docs.autodocs!==!0)throw new IndexingError(`You created a component docs page for '${worseEntry.title}', but also tagged the CSF file with '${AUTODOCS_TAG}'. This is probably a mistake.`,[betterEntry.importPath,worseEntry.importPath])}else return{...betterEntry,storiesImports:[...betterEntry.storiesImports,worseEntry.importPath,...worseEntry.storiesImports]};return betterEntry}async sortStories(entries){let sortableStories=Object.values(entries);if(this.options.storyStoreV7){let storySortParameter=await this.getStorySortParameter(),fileNameOrder=this.storyFileNames();sortStoriesV7(sortableStories,storySortParameter,fileNameOrder)}return sortableStories.reduce((acc,item)=>(acc[item.id]=item,acc),{})}async getIndex(){if(this.lastIndex)return this.lastIndex;if(this.lastError)throw this.lastError;let storiesList=await this.ensureExtracted();try{let errorEntries=storiesList.filter(entry=>entry.type==="error");if(errorEntries.length)throw new MultipleIndexingError(errorEntries.map(entry=>entry.err));let duplicateErrors=[],indexEntries={};if(storiesList.forEach(entry=>{try{let existing=indexEntries[entry.id];existing?indexEntries[entry.id]=this.chooseDuplicate(existing,entry):indexEntries[entry.id]=entry}catch(err){duplicateErrors.push(err)}}),duplicateErrors.length)throw new MultipleIndexingError(duplicateErrors);let sorted=await this.sortStories(indexEntries),compat=sorted;if(this.options.storiesV2Compatibility){let titleToStoryCount=Object.values(sorted).reduce((acc,story)=>(acc[story.title]=(acc[story.title]||0)+1,acc),{});compat=Object.entries(sorted).reduce((acc,entry)=>{let[id,story]=entry;return story.type==="docs"||(acc[id]={...story,kind:story.title,story:story.name,parameters:{__id:story.id,docsOnly:titleToStoryCount[story.title]===1&&story.name==="Page",fileName:story.importPath}}),acc},{})}return this.lastIndex={v:4,entries:compat},this.lastIndex}catch(err){throw this.lastError=err,logger3.warn(`\u{1F6A8} ${this.lastError.toString()}`),this.lastError}}invalidate(specifier,importPath,removed){let absolutePath=slash(path4.resolve(this.options.workingDir,importPath)),cache4=this.specifierToCache.get(specifier),cacheEntry=cache4[absolutePath];if(cacheEntry&&cacheEntry.type==="stories"){let{dependents}=cacheEntry,invalidated=new Set;this.specifierToCache.forEach(otherCache=>{dependents.forEach(dep=>{otherCache[dep]&&(invalidated.add(dep),otherCache[dep]=!1)})})}if(removed){if(cacheEntry&&cacheEntry.type==="docs"){let absoluteImports=cacheEntry.storiesImports.map(p=>path4.resolve(this.options.workingDir,p));this.findDependencies(absoluteImports).forEach(dep=>dep.dependents.splice(dep.dependents.indexOf(absolutePath),1))}delete cache4[absolutePath]}else cache4[absolutePath]=!1;this.lastIndex=null,this.lastError=null}async getStorySortParameter(){let previewFile=["js","jsx","ts","tsx","mjs","cjs"].map(ext=>path4.join(this.options.configDir,`preview.${ext}`)).find(fname=>fs4.existsSync(fname)),storySortParameter;if(previewFile){let previewCode=(await fs4.readFile(previewFile,"utf-8")).toString();storySortParameter=await getStorySortParameter(previewCode)}return storySortParameter}storyFileNames(){return Array.from(this.specifierToCache.values()).flatMap(r=>Object.keys(r))}};var PAGE_REGEX=/(page|screen)/i,isPageStory=storyId=>PAGE_REGEX.test(storyId),isExampleEntry=entry=>["example-introduction--docs","example-button--docs","example-button--primary","example-button--secondary","example-button--large","example-button--small","example-header--docs","example-header--logged-in","example-header--logged-out","example-page--logged-in","example-page--logged-out"].includes(entry.id);function summarizeIndex(storyIndex){let storyCount=0,componentTitles=new Set,exampleStoryCount=0,exampleDocsCount=0,pageStoryCount=0,playStoryCount=0,autodocsCount=0,storiesMdxCount=0,mdxCount=0;Object.values(storyIndex.entries).forEach(entry=>{isExampleEntry(entry)?(entry.type==="story"&&(exampleStoryCount+=1),entry.type==="docs"&&(exampleDocsCount+=1)):entry.type==="story"?(storyCount+=1,componentTitles.add(entry.title),isPageStory(entry.title)&&(pageStoryCount+=1),entry.tags?.includes(PLAY_FN_TAG)&&(playStoryCount+=1)):entry.type==="docs"&&(isMdxEntry(entry)?mdxCount+=1:entry.tags?.includes(STORIES_MDX_TAG)?storiesMdxCount+=1:entry.tags?.includes(AUTODOCS_TAG)&&(autodocsCount+=1))});let componentCount=componentTitles.size;return{storyCount,componentCount,pageStoryCount,playStoryCount,autodocsCount,storiesMdxCount,mdxCount,exampleStoryCount,exampleDocsCount,version:storyIndex.v}}var import_client_logger=__toESM(require_dist());import chalk5 from"chalk";import dedent3 from"ts-dedent";import semver2 from"semver";import*as fs5 from"fs-extra";import path5 from"path";var getActualPackageVersions=async packages=>Promise.all(packages.map(getActualPackageVersion)),getActualPackageVersion=async packageName=>{try{let packageJson=await getActualPackageJson(packageName);return{name:packageName,version:packageJson.version}}catch{return{name:packageName,version:null}}},getActualPackageJson=async packageName=>{let resolvedPackageJson=__require.resolve(path5.join(packageName,"package.json"),{paths:[process.cwd()]});return await fs5.readJson(resolvedPackageJson)};import{getStorybookInfo,loadMainConfig}from"@storybook/core-common";import{readConfig,writeConfig as writeConfigFile}from"@storybook/csf-tools";import chalk4 from"chalk";import semver from"semver";import dedent2 from"ts-dedent";var getAddonNames=mainConfig=>(mainConfig.addons||[]).map(addon=>{let name="";if(typeof addon=="string"?name=addon:typeof addon=="object"&&(name=addon.name),!name.startsWith("."))return name.replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,"")}).filter(Boolean);var getIncompatibleAddons=async mainConfig=>{let incompatibleList={"@storybook/addon-knobs":"6.4.0","@storybook/addon-postcss":"2.0.0","storybook-addon-next-router":"4.0.2","storybook-addon-outline":"1.4.2","@storybook/addon-info":"5.3.21","storybook-addon-designs":"6.3.1","storybook-addon-next":"1.7.0","storybook-docs-toc":"1.7.0","@storybook/addon-google-analytics":"6.2.9","storybook-addon-pseudo-states":"1.15.5","storybook-dark-mode":"2.1.1","storybook-addon-gatsby":"0.0.5","@etchteam/storybook-addon-css-variables-theme":"1.4.0","@storybook/addon-cssresources":"6.2.9","storybook-addon-grid":"0.3.1","storybook-multilevel-sort":"1.2.0","storybook-addon-i18next":"1.3.0","storybook-source-link":"2.0.8","babel-plugin-storybook-csf-title":"2.1.0","@urql/storybook-addon":"2.0.1","storybook-addon-intl":"2.4.1","storybook-addon-mock":"3.2.0","@chakra-ui/storybook-addon":"4.0.16","storybook-mobile-addon":"1.0.2"},addons=getAddonNames(mainConfig).filter(addon=>addon in incompatibleList);if(addons.length===0)return[];let addonVersions=await getActualPackageVersions(addons),incompatibleAddons=[];return addonVersions.forEach(({name,version:installedVersion})=>{if(installedVersion===null)return;let addonVersion=incompatibleList[name];try{semver2.lte(semver2.coerce(installedVersion),semver2.coerce(addonVersion))&&incompatibleAddons.push({name,version:installedVersion})}catch{}}),incompatibleAddons};var warnOnIncompatibleAddons=async config=>{let incompatibleAddons=await getIncompatibleAddons(config);incompatibleAddons.length>0&&import_client_logger.logger.warn(dedent3`
8
+ - If so, is it matched by the \`stories\` glob in \`main.js\`?`)}dependencies.forEach(dep=>{dep.dependents.push(absolutePath)});let title=csfEntry?.title||userOrAutoTitleFromSpecifier(importPath,specifier,result.title),{defaultName}=this.options.docs,name=result.name||(csfEntry?autoName(importPath,csfEntry.importPath,defaultName):defaultName);return{id:toId(title,name),title,name,importPath,storiesImports:sortedDependencies.map(dep=>dep.entries[0].importPath),type:"docs",tags:[...result.tags||[],csfEntry?"attached-mdx":"unattached-mdx","docs"]}}catch(err){throw err.source?.match(/mdast-util-mdx-jsx/g)&&logger3.warn(`\u{1F4A1} This seems to be an MDX2 syntax error. Please refer to the MDX section in the following resource for assistance on how to fix this: ${chalk3.yellow("https://storybook.js.org/migration-guides/7.0")}`),err}}chooseDuplicate(firstEntry,secondEntry){if(firstEntry.importPath===secondEntry.importPath)return firstEntry;let firstIsBetter=!0;(secondEntry.type==="story"||isMdxEntry(secondEntry)&&firstEntry.type==="docs"&&!isMdxEntry(firstEntry))&&(firstIsBetter=!1);let betterEntry=firstIsBetter?firstEntry:secondEntry,worseEntry=firstIsBetter?secondEntry:firstEntry,changeDocsName='Use `<Meta of={} name="Other Name">` to distinguish them.';if(worseEntry.type==="story")throw new IndexingError(`Duplicate stories with id: ${firstEntry.id}`,[firstEntry.importPath,secondEntry.importPath]);if(betterEntry.type==="story"){let worseDescriptor=isMdxEntry(worseEntry)?"component docs page":"automatically generated docs page";throw betterEntry.name===this.options.docs.defaultName?new IndexingError(`You have a story for ${betterEntry.title} with the same name as your default docs entry name (${betterEntry.name}), so the docs page is being dropped. Consider changing the story name.`,[firstEntry.importPath,secondEntry.importPath]):new IndexingError(`You have a story for ${betterEntry.title} with the same name as your ${worseDescriptor} (${worseEntry.name}), so the docs page is being dropped. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath])}else if(isMdxEntry(betterEntry)){if(isMdxEntry(worseEntry))throw new IndexingError(`You have two component docs pages with the same name ${betterEntry.title}:${betterEntry.name}. ${changeDocsName}`,[firstEntry.importPath,secondEntry.importPath]);if(worseEntry.tags?.includes(AUTODOCS_TAG)&&this.options.docs.autodocs!==!0)throw new IndexingError(`You created a component docs page for '${worseEntry.title}', but also tagged the CSF file with '${AUTODOCS_TAG}'. This is probably a mistake.`,[betterEntry.importPath,worseEntry.importPath])}else return{...betterEntry,storiesImports:[...betterEntry.storiesImports,worseEntry.importPath,...worseEntry.storiesImports]};return betterEntry}async sortStories(entries){let sortableStories=Object.values(entries);if(this.options.storyStoreV7){let storySortParameter=await this.getStorySortParameter(),fileNameOrder=this.storyFileNames();sortStoriesV7(sortableStories,storySortParameter,fileNameOrder)}return sortableStories.reduce((acc,item)=>(acc[item.id]=item,acc),{})}async getIndex(){if(this.lastIndex)return this.lastIndex;if(this.lastError)throw this.lastError;let storiesList=await this.ensureExtracted();try{let errorEntries=storiesList.filter(entry=>entry.type==="error");if(errorEntries.length)throw new MultipleIndexingError(errorEntries.map(entry=>entry.err));let duplicateErrors=[],indexEntries={};if(storiesList.forEach(entry=>{try{let existing=indexEntries[entry.id];existing?indexEntries[entry.id]=this.chooseDuplicate(existing,entry):indexEntries[entry.id]=entry}catch(err){duplicateErrors.push(err)}}),duplicateErrors.length)throw new MultipleIndexingError(duplicateErrors);let sorted=await this.sortStories(indexEntries),compat=sorted;if(this.options.storiesV2Compatibility){let titleToStoryCount=Object.values(sorted).reduce((acc,story)=>(acc[story.title]=(acc[story.title]||0)+1,acc),{});compat=Object.entries(sorted).reduce((acc,entry)=>{let[id,story]=entry;return story.type==="docs"||(acc[id]={...story,kind:story.title,story:story.name,parameters:{__id:story.id,docsOnly:titleToStoryCount[story.title]===1&&story.name==="Page",fileName:story.importPath}}),acc},{})}return this.lastIndex={v:4,entries:compat},this.lastIndex}catch(err){throw this.lastError=err,logger3.warn(`\u{1F6A8} ${this.lastError.toString()}`),this.lastError}}invalidate(specifier,importPath,removed){let absolutePath=slash(path4.resolve(this.options.workingDir,importPath)),cache4=this.specifierToCache.get(specifier),cacheEntry=cache4[absolutePath];if(cacheEntry&&cacheEntry.type==="stories"){let{dependents}=cacheEntry,invalidated=new Set;this.specifierToCache.forEach(otherCache=>{dependents.forEach(dep=>{otherCache[dep]&&(invalidated.add(dep),otherCache[dep]=!1)})})}if(removed){if(cacheEntry&&cacheEntry.type==="docs"){let absoluteImports=cacheEntry.storiesImports.map(p=>path4.resolve(this.options.workingDir,p));this.findDependencies(absoluteImports).forEach(dep=>dep.dependents.splice(dep.dependents.indexOf(absolutePath),1))}delete cache4[absolutePath]}else cache4[absolutePath]=!1;this.lastIndex=null,this.lastError=null}async getStorySortParameter(){let previewFile=["js","jsx","ts","tsx","mjs","cjs"].map(ext=>path4.join(this.options.configDir,`preview.${ext}`)).find(fname=>fs4.existsSync(fname)),storySortParameter;if(previewFile){let previewCode=(await fs4.readFile(previewFile,"utf-8")).toString();storySortParameter=await getStorySortParameter(previewCode)}return storySortParameter}storyFileNames(){return Array.from(this.specifierToCache.values()).flatMap(r=>Object.keys(r))}};var PAGE_REGEX=/(page|screen)/i,isPageStory=storyId=>PAGE_REGEX.test(storyId),isExampleEntry=entry=>["example-introduction--docs","example-button--docs","example-button--primary","example-button--secondary","example-button--large","example-button--small","example-header--docs","example-header--logged-in","example-header--logged-out","example-page--logged-in","example-page--logged-out"].includes(entry.id);function summarizeIndex(storyIndex){let storyCount=0,componentTitles=new Set,exampleStoryCount=0,exampleDocsCount=0,pageStoryCount=0,playStoryCount=0,autodocsCount=0,storiesMdxCount=0,mdxCount=0;Object.values(storyIndex.entries).forEach(entry=>{isExampleEntry(entry)?(entry.type==="story"&&(exampleStoryCount+=1),entry.type==="docs"&&(exampleDocsCount+=1)):entry.type==="story"?(storyCount+=1,componentTitles.add(entry.title),isPageStory(entry.title)&&(pageStoryCount+=1),entry.tags?.includes(PLAY_FN_TAG)&&(playStoryCount+=1)):entry.type==="docs"&&(isMdxEntry(entry)?mdxCount+=1:entry.tags?.includes(STORIES_MDX_TAG)?storiesMdxCount+=1:entry.tags?.includes(AUTODOCS_TAG)&&(autodocsCount+=1))});let componentCount=componentTitles.size;return{storyCount,componentCount,pageStoryCount,playStoryCount,autodocsCount,storiesMdxCount,mdxCount,exampleStoryCount,exampleDocsCount,version:storyIndex.v}}var import_client_logger=__toESM(require_dist());import chalk5 from"chalk";import dedent3 from"ts-dedent";import semver2 from"semver";import*as fs5 from"fs-extra";import path5 from"path";var getActualPackageVersions=async packages=>Promise.all(packages.map(getActualPackageVersion)),getActualPackageVersion=async packageName=>{try{let packageJson=await getActualPackageJson(packageName);return{name:packageName,version:packageJson.version}}catch{return{name:packageName,version:null}}},getActualPackageJson=async packageName=>{let resolvedPackageJson=__require.resolve(path5.join(packageName,"package.json"),{paths:[process.cwd()]});return await fs5.readJson(resolvedPackageJson)};import{getStorybookInfo,loadMainConfig}from"@storybook/core-common";import{readConfig,writeConfig as writeConfigFile}from"@storybook/csf-tools";import chalk4 from"chalk";import semver from"semver";import dedent2 from"ts-dedent";var getAddonNames=mainConfig=>(mainConfig.addons||[]).map(addon=>{let name="";if(typeof addon=="string"?name=addon:typeof addon=="object"&&(name=addon.name),!name.startsWith("."))return name.replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,"")}).filter(Boolean);var getIncompatibleAddons=async mainConfig=>{let incompatibleList={"@storybook/addon-knobs":"6.4.0","@storybook/addon-postcss":"2.0.0","storybook-addon-next-router":"4.0.2","storybook-addon-outline":"1.4.2","@storybook/addon-info":"5.3.21","storybook-addon-designs":"6.3.1","storybook-addon-next":"1.7.0","storybook-docs-toc":"1.7.0","@storybook/addon-google-analytics":"6.2.9","storybook-addon-pseudo-states":"1.15.5","storybook-dark-mode":"2.1.1","storybook-addon-gatsby":"0.0.5","@etchteam/storybook-addon-css-variables-theme":"1.4.0","@storybook/addon-cssresources":"6.2.9","storybook-addon-grid":"0.3.1","storybook-multilevel-sort":"1.2.0","storybook-addon-i18next":"1.3.0","storybook-source-link":"2.0.8","babel-plugin-storybook-csf-title":"2.1.0","@urql/storybook-addon":"2.0.1","storybook-addon-intl":"2.4.1","storybook-addon-mock":"3.2.0","@chakra-ui/storybook-addon":"4.0.16","storybook-mobile-addon":"1.0.2","@storybook/addon-queryparams":"6.2.9"},addons=getAddonNames(mainConfig).filter(addon=>addon in incompatibleList);if(addons.length===0)return[];let addonVersions=await getActualPackageVersions(addons),incompatibleAddons=[];return addonVersions.forEach(({name,version:installedVersion})=>{if(installedVersion===null)return;let addonVersion=incompatibleList[name];try{semver2.lte(semver2.coerce(installedVersion),semver2.coerce(addonVersion))&&incompatibleAddons.push({name,version:installedVersion})}catch{}}),incompatibleAddons};var warnOnIncompatibleAddons=async config=>{let incompatibleAddons=await getIncompatibleAddons(config);incompatibleAddons.length>0&&import_client_logger.logger.warn(dedent3`
9
9
  ${chalk5.bold(chalk5.red("Attention"))}: We've detected that you're using the following addons in versions which are known to be incompatible with Storybook 7:
10
10
 
11
11
  ${incompatibleAddons.map(({name,version})=>`- ${chalk5.cyan(`${name}@${version}`)}`).join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-server",
3
- "version": "7.1.0-alpha.7",
3
+ "version": "7.1.0-alpha.8",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -58,18 +58,18 @@
58
58
  "dependencies": {
59
59
  "@aw-web-design/x-default-browser": "1.4.88",
60
60
  "@discoveryjs/json-ext": "^0.5.3",
61
- "@storybook/builder-manager": "7.1.0-alpha.7",
62
- "@storybook/core-common": "7.1.0-alpha.7",
63
- "@storybook/core-events": "7.1.0-alpha.7",
61
+ "@storybook/builder-manager": "7.1.0-alpha.8",
62
+ "@storybook/core-common": "7.1.0-alpha.8",
63
+ "@storybook/core-events": "7.1.0-alpha.8",
64
64
  "@storybook/csf": "^0.1.0",
65
- "@storybook/csf-tools": "7.1.0-alpha.7",
65
+ "@storybook/csf-tools": "7.1.0-alpha.8",
66
66
  "@storybook/docs-mdx": "^0.1.0",
67
67
  "@storybook/global": "^5.0.0",
68
- "@storybook/manager": "7.1.0-alpha.7",
69
- "@storybook/node-logger": "7.1.0-alpha.7",
70
- "@storybook/preview-api": "7.1.0-alpha.7",
71
- "@storybook/telemetry": "7.1.0-alpha.7",
72
- "@storybook/types": "7.1.0-alpha.7",
68
+ "@storybook/manager": "7.1.0-alpha.8",
69
+ "@storybook/node-logger": "7.1.0-alpha.8",
70
+ "@storybook/preview-api": "7.1.0-alpha.8",
71
+ "@storybook/telemetry": "7.1.0-alpha.8",
72
+ "@storybook/types": "7.1.0-alpha.8",
73
73
  "@types/detect-port": "^1.3.0",
74
74
  "@types/node": "^16.0.0",
75
75
  "@types/node-fetch": "^2.5.7",
@@ -120,5 +120,5 @@
120
120
  ],
121
121
  "platform": "node"
122
122
  },
123
- "gitHead": "ab6f997ca1ff37b0711a7e12c12af8d76d85f0fc"
123
+ "gitHead": "ae73d1c8065f7d614cfe6f3462ae7ca55a0c4e6b"
124
124
  }