@storybook/addon-onboarding 8.1.10 → 8.1.11

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.
Files changed (2) hide show
  1. package/dist/preset.js +3 -3
  2. package/package.json +10 -10
package/dist/preset.js CHANGED
@@ -1667,7 +1667,7 @@ in order for it to be formatted.`,cliCategory:"Other"},tabWidth:{type:"int",cate
1667
1667
  `),!mainConfigPath)throw new import_server_errors.MainFileMissingError({location:configDir})}function loadCustomPresets({configDir}){validateConfigurationFiles(configDir);let presets=serverRequire(import_path24.default.resolve(configDir,"presets"));if(serverRequire(import_path24.default.resolve(configDir,"main"))){let resolved=serverResolve(import_path24.default.resolve(configDir,"main"));if(resolved)return [resolved]}return presets||[]}var import_resolve_from=__toESM4(require_resolve_from()),safeResolveFrom=(path19,file)=>{try{return (0,import_resolve_from.default)(path19,file)}catch{return}},safeResolve=file=>{try{return __require.resolve(file)}catch{return}},import_path32=__toESM4(__require("path"));function normalizePath(id2){return import_path32.default.posix.normalize(slash3(id2))}function stripAbsNodeModulesPath(absPath){let splits=absPath.split(`node_modules${import_path32.default.sep}`);return normalizePath(splits[splits.length-1])}var isObject3=val=>val!=null&&typeof val=="object"&&Array.isArray(val)===!1,isFunction=val=>typeof val=="function";function filterPresetsConfig(presetsConfig){return presetsConfig.filter(preset=>{let presetName=typeof preset=="string"?preset:preset.name;return !/@storybook[\\\\/]preset-typescript/.test(presetName)})}function resolvePathToMjs(filePath){let{dir,name}=(0, import_path42.parse)(filePath),mjsPath=(0, import_path42.join)(dir,`${name}.mjs`);return safeResolve(mjsPath)?mjsPath:filePath}function resolvePresetFunction(input,presetOptions,storybookOptions){return isFunction(input)?[...input({...storybookOptions,...presetOptions})]:Array.isArray(input)?[...input]:[]}var resolveAddonName=(configDir,name,options9)=>{let resolve4=name.startsWith("/")?safeResolve:safeResolveFrom.bind(null,configDir),resolved=resolve4(name);if(resolved){let{dir:fdir,name:fname}=(0, import_path42.parse)(resolved);if(name.match(/\/(manager|register(-panel)?)(\.(js|mjs|ts|tsx|jsx))?$/))return {type:"virtual",name,managerEntries:[resolvePathToMjs((0, import_path42.join)(fdir,fname))]};if(name.match(/\/(preset)(\.(js|mjs|ts|tsx|jsx))?$/))return {type:"presets",name:resolved}}let checkExists=exportName=>{if(resolve4(`${name}${exportName}`))return `${name}${exportName}`},absolutizeExport=(exportName,preferMJS)=>{let found=resolve4(`${name}${exportName}`);if(found)return preferMJS?resolvePathToMjs(found):found},managerFile=absolutizeExport("/manager",!0),registerFile=absolutizeExport("/register",!0)||absolutizeExport("/register-panel",!0),previewFile=checkExists("/preview"),previewFileAbsolute=absolutizeExport("/preview",!0),presetFile=absolutizeExport("/preset",!1);if(!(managerFile||previewFile)&&presetFile)return {type:"presets",name:presetFile};if(managerFile||registerFile||previewFile||presetFile){let managerEntries=[];return managerFile&&managerEntries.push(managerFile),!managerFile&&registerFile&&!presetFile&&managerEntries.push(registerFile),{type:"virtual",name,...managerEntries.length?{managerEntries}:{},...previewFile?{previewAnnotations:[previewFileAbsolute?{bare:previewFile.includes("node_modules")?stripAbsNodeModulesPath(previewFile):previewFile,absolute:previewFileAbsolute}:previewFile]}:{},...presetFile?{presets:[{name:presetFile,options:options9}]}:{}}}if(resolved)return {type:"presets",name:resolved}},map2=({configDir})=>item=>{let options9=isObject3(item)&&item.options||void 0,name=isObject3(item)?item.name:item,resolved;try{resolved=resolveAddonName(configDir,name,options9);}catch{import_node_logger2.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
1668
1668
  ${item}`);return}if(!resolved){import_node_logger2.logger.warn(`Could not resolve addon "${name}", skipping. Is it installed?`);return}return {...options9?{options:options9}:{},...resolved}};async function getContent(input){if(input.type==="virtual"){let{type:type2,name:name2,...rest}=input;return rest}let name=input.name?input.name:input;return interopRequireDefault(name)}async function loadPreset(input,level,storybookOptions){let presetName=input.name?input.name:input;try{let presetOptions=input.options?input.options:{},contents=await getContent(input);if(typeof contents=="function"&&(contents=contents(storybookOptions,presetOptions)),Array.isArray(contents))return await loadPresets(contents,level+1,storybookOptions);if(isObject3(contents)){let{addons:addonsInput=[],presets:presetsInput=[],...rest}=contents,filter2=i3=>!0;storybookOptions.isCritical!==!0&&(storybookOptions.build?.test?.disabledAddons?.length||0)>0&&(filter2=i3=>{let name=i3.name?i3.name:i3;return !storybookOptions.build?.test?.disabledAddons?.find(n=>name.includes(n))});let subPresets=resolvePresetFunction(presetsInput,presetOptions,storybookOptions).filter(filter2),subAddons=resolvePresetFunction(addonsInput,presetOptions,storybookOptions).filter(filter2);return [...await loadPresets([...subPresets],level+1,storybookOptions),...await loadPresets([...subAddons.map(map2(storybookOptions))].filter(Boolean),level+1,storybookOptions),{name:presetName,preset:rest,options:presetOptions}]}throw new Error(import_ts_dedent2.dedent`
1669
1669
  ${input} is not a valid preset
1670
- `)}catch(error){if(storybookOptions?.isCritical)throw new import_server_errors2.CriticalPresetLoadError({error,presetName});let warning=level>0?` Failed to load preset: ${JSON.stringify(input)} on level ${level}`:` Failed to load preset: ${JSON.stringify(input)}`;return import_node_logger2.logger.warn(warning),import_node_logger2.logger.error(error),[]}}async function loadPresets(presets,level,storybookOptions){return !presets||!Array.isArray(presets)||!presets.length?[]:(await Promise.all(presets.map(async preset=>loadPreset(preset,level,storybookOptions)))).reduce((acc,loaded)=>acc.concat(loaded),[])}function applyPresets(presets,extension,config,args,storybookOptions){let presetResult=new Promise(res=>res(config));return presets.length?presets.reduce((accumulationPromise,{preset,options:options9})=>{let change=preset[extension];if(!change)return accumulationPromise;if(typeof change=="function"){let extensionFn=change,context={preset,combinedOptions:{...storybookOptions,...args,...options9,presetsList:presets,presets:{apply:async(ext,c8,a3={})=>applyPresets(presets,ext,c8,a3,storybookOptions)}}};return accumulationPromise.then(newConfig=>extensionFn.call(context.preset,newConfig,context.combinedOptions))}return accumulationPromise.then(newConfig=>Array.isArray(newConfig)&&Array.isArray(change)?[...newConfig,...change]:isObject3(newConfig)&&isObject3(change)?{...newConfig,...change}:change)},presetResult):presetResult}async function getPresets(presets,storybookOptions){let loadedPresets=await loadPresets(presets,0,storybookOptions);return {apply:async(extension,config,args={})=>applyPresets(loadedPresets,extension,config,args,storybookOptions)}}async function loadAllPresets(options9){let{corePresets=[],overridePresets=[],...restOptions}=options9,presetsConfig=[...corePresets,...loadCustomPresets(options9),...overridePresets],filteredPresetConfig=filterPresetsConfig(presetsConfig);return filteredPresetConfig.length<presetsConfig.length&&import_node_logger2.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),getPresets(filteredPresetConfig,restOptions)}var import_file_system_cache=__toESM4(require_lib5());function createFileSystemCache(options9){return (0, import_file_system_cache.default)(options9)}var import_path52=__toESM4(__require("path")),import_find_cache_dir=__toESM4(require_find_cache_dir());function resolvePathInStorybookCache(fileOrDirectoryName,sub="default"){let cacheDirectory=(0, import_find_cache_dir.default)({name:"storybook"});return cacheDirectory||=import_path52.default.join(process.cwd(),".cache","storybook"),import_path52.default.join(cacheDirectory,sub,fileOrDirectoryName)}var cache3=createFileSystemCache({basePath:resolvePathInStorybookCache("dev-server"),ns:"storybook"}),import_fs_extra2=require_lib6(),import_path72=__require("path"),import_path62=__toESM4(__require("path")),import_fs_extra=__toESM4(require_lib6());function getStorybookConfiguration(storybookScript,shortName,longName){if(!storybookScript)return null;let parts=storybookScript.split(/[\s='"]+/),index=parts.indexOf(longName);return index===-1&&(index=parts.indexOf(shortName)),index===-1?null:parts[index+1]}var rendererPackages={"@storybook/react":"react","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/server":"server","storybook-framework-qwik":"qwik","storybook-solidjs":"solid","@storybook/vue":"vue"},frameworkPackages={"@storybook/angular":"angular","@storybook/ember":"ember","@storybook/html-vite":"html-vite","@storybook/html-webpack5":"html-webpack5","@storybook/nextjs":"nextjs","@storybook/preact-vite":"preact-vite","@storybook/preact-webpack5":"preact-webpack5","@storybook/react-vite":"react-vite","@storybook/react-webpack5":"react-webpack5","@storybook/server-webpack5":"server-webpack5","@storybook/svelte-vite":"svelte-vite","@storybook/svelte-webpack5":"svelte-webpack5","@storybook/sveltekit":"sveltekit","@storybook/vue3-vite":"vue3-vite","@storybook/vue3-webpack5":"vue3-webpack5","@storybook/web-components-vite":"web-components-vite","@storybook/web-components-webpack5":"web-components-webpack5","storybook-framework-qwik":"qwik","storybook-solidjs-vite":"solid"},builderPackages=["@storybook/builder-webpack5","@storybook/builder-vite"],logger2=console,findDependency=({dependencies,devDependencies,peerDependencies},predicate)=>[Object.entries(dependencies||{}).find(predicate),Object.entries(devDependencies||{}).find(predicate),Object.entries(peerDependencies||{}).find(predicate)],getRendererInfo=packageJson=>{let[dep,devDep,peerDep]=findDependency(packageJson,([key2])=>rendererPackages[key2]),[pkg,version]=dep||devDep||peerDep||[];return dep&&devDep&&dep[0]===devDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),dep&&peerDep&&dep[0]===peerDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version,frameworkPackage:pkg}},validConfigExtensions=["ts","js","tsx","jsx","mjs","cjs"],findConfigFile2=(prefix,configDir)=>{let filePrefix=import_path62.default.join(configDir,prefix),extension=validConfigExtensions.find(ext=>import_fs_extra.default.existsSync(`${filePrefix}.${ext}`));return extension?`${filePrefix}.${extension}`:null},getConfigInfo=(packageJson,configDir)=>{let storybookConfigDir=configDir??".storybook",storybookScript=packageJson.scripts?.storybook;if(storybookScript&&!configDir){let configParam=getStorybookConfiguration(storybookScript,"-c","--config-dir");configParam&&(storybookConfigDir=configParam);}return {configDir:storybookConfigDir,mainConfig:findConfigFile2("main",storybookConfigDir),previewConfig:findConfigFile2("preview",storybookConfigDir),managerConfig:findConfigFile2("manager",storybookConfigDir)}},getStorybookInfo=(packageJson,configDir)=>{let rendererInfo=getRendererInfo(packageJson),configInfo=getConfigInfo(packageJson,configDir);return {...rendererInfo,...configInfo}},versions_default={"@storybook/addon-a11y":"8.1.10","@storybook/addon-actions":"8.1.10","@storybook/addon-backgrounds":"8.1.10","@storybook/addon-controls":"8.1.10","@storybook/addon-docs":"8.1.10","@storybook/addon-essentials":"8.1.10","@storybook/addon-highlight":"8.1.10","@storybook/addon-interactions":"8.1.10","@storybook/addon-jest":"8.1.10","@storybook/addon-links":"8.1.10","@storybook/addon-mdx-gfm":"8.1.10","@storybook/addon-measure":"8.1.10","@storybook/addon-onboarding":"8.1.10","@storybook/addon-outline":"8.1.10","@storybook/addon-storysource":"8.1.10","@storybook/addon-themes":"8.1.10","@storybook/addon-toolbars":"8.1.10","@storybook/addon-viewport":"8.1.10","@storybook/angular":"8.1.10","@storybook/blocks":"8.1.10","@storybook/builder-manager":"8.1.10","@storybook/builder-vite":"8.1.10","@storybook/builder-webpack5":"8.1.10","@storybook/channels":"8.1.10","@storybook/cli":"8.1.10","@storybook/client-logger":"8.1.10","@storybook/codemod":"8.1.10","@storybook/components":"8.1.10","@storybook/core-common":"8.1.10","@storybook/core-events":"8.1.10","@storybook/core-server":"8.1.10","@storybook/core-webpack":"8.1.10","@storybook/csf-plugin":"8.1.10","@storybook/csf-tools":"8.1.10","@storybook/docs-tools":"8.1.10","@storybook/ember":"8.1.10","@storybook/html":"8.1.10","@storybook/html-vite":"8.1.10","@storybook/html-webpack5":"8.1.10","@storybook/instrumenter":"8.1.10","@storybook/manager":"8.1.10","@storybook/manager-api":"8.1.10","@storybook/nextjs":"8.1.10","@storybook/node-logger":"8.1.10","@storybook/preact":"8.1.10","@storybook/preact-vite":"8.1.10","@storybook/preact-webpack5":"8.1.10","@storybook/preset-create-react-app":"8.1.10","@storybook/preset-html-webpack":"8.1.10","@storybook/preset-preact-webpack":"8.1.10","@storybook/preset-react-webpack":"8.1.10","@storybook/preset-server-webpack":"8.1.10","@storybook/preset-svelte-webpack":"8.1.10","@storybook/preset-vue3-webpack":"8.1.10","@storybook/preview":"8.1.10","@storybook/preview-api":"8.1.10","@storybook/react":"8.1.10","@storybook/react-dom-shim":"8.1.10","@storybook/react-vite":"8.1.10","@storybook/react-webpack5":"8.1.10","@storybook/router":"8.1.10","@storybook/server":"8.1.10","@storybook/server-webpack5":"8.1.10","@storybook/source-loader":"8.1.10","@storybook/svelte":"8.1.10","@storybook/svelte-vite":"8.1.10","@storybook/svelte-webpack5":"8.1.10","@storybook/sveltekit":"8.1.10","@storybook/telemetry":"8.1.10","@storybook/test":"8.1.10","@storybook/theming":"8.1.10","@storybook/types":"8.1.10","@storybook/vue3":"8.1.10","@storybook/vue3-vite":"8.1.10","@storybook/vue3-webpack5":"8.1.10","@storybook/web-components":"8.1.10","@storybook/web-components-vite":"8.1.10","@storybook/web-components-webpack5":"8.1.10",sb:"8.1.10",storybook:"8.1.10"};function parseList(str2){return str2.split(",").map(item=>item.trim()).filter(item=>item.length>0)}async function getCoercedStorybookVersion(packageManager){return (await Promise.all(Object.keys(rendererPackages).map(async pkg=>({name:pkg,version:await packageManager.getPackageVersion(pkg)})))).filter(({version})=>!!version)[0]?.version}function getEnvConfig(program,configEnv){Object.keys(configEnv).forEach(fieldName=>{let envVarName=configEnv[fieldName],envVarValue=process.env[envVarName];envVarValue&&(program[fieldName]=envVarValue);});}var createLogStream=async(logFileName="storybook.log")=>{let finalLogPath=(0, import_path72.join)(process.cwd(),logFileName),{temporaryFile:temporaryFile2}=await init_tempy().then(()=>tempy_exports),temporaryLogPath=temporaryFile2({name:logFileName}),logStream=(0, import_fs_extra2.createWriteStream)(temporaryLogPath,{encoding:"utf8"});return new Promise((resolve4,reject)=>{logStream.once("open",()=>{resolve4({logStream,moveLogFile:async()=>(0, import_fs_extra2.move)(temporaryLogPath,finalLogPath,{overwrite:!0}),clearLogFile:async()=>(0, import_fs_extra2.writeFile)(temporaryLogPath,""),removeLogFile:async()=>(0, import_fs_extra2.remove)(temporaryLogPath),readLogFile:async()=>(0, import_fs_extra2.readFile)(temporaryLogPath,"utf8")});}),logStream.once("error",reject);})},isCorePackage=pkg=>Object.keys(versions_default).includes(pkg),import_node_logger3=require_dist4(),predicateFor=addon=>entry=>{let name=entry.name||entry;return name&&name.replaceAll(/(\\){1,2}/g,"/").includes(addon)},isCorrectOrder=(addons,before,after)=>{let essentialsIndex=addons.findIndex(predicateFor("@storybook/addon-essentials")),beforeIndex=addons.findIndex(predicateFor(before.name)),afterIndex=addons.findIndex(predicateFor(after.name));return beforeIndex===-1&&before.inEssentials&&(beforeIndex=essentialsIndex),afterIndex===-1&&after.inEssentials&&(afterIndex=essentialsIndex),beforeIndex!==-1&&afterIndex!==-1&&beforeIndex<=afterIndex},checkAddonOrder=async({before,after,configFile,getConfig})=>{try{let config=await getConfig(configFile);if(!config?.addons){import_node_logger3.logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!isCorrectOrder(config.addons,before,after)){let orEssentials=" (or '@storybook/addon-essentials')",beforeText=`'${before.name}'${before.inEssentials?orEssentials:""}`,afterText=`'${after.name}'${after.inEssentials?orEssentials:""}`;import_node_logger3.logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`);}}catch{import_node_logger3.logger.warn(`Unable to load config file: ${configFile}`);}},import_lazy_universal_dotenv=require_lib8(),import_path82=__toESM4(__require("path")),import_find_up=__toESM4(require_find_up3()),getProjectRoot=()=>{let result;if(process.env.STORYBOOK_PROJECT_ROOT)return process.env.STORYBOOK_PROJECT_ROOT;try{let found=import_find_up.default.sync(".git",{type:"directory"});found&&(result=import_path82.default.join(found,".."));}catch{}try{let found=import_find_up.default.sync(".svn",{type:"directory"});found&&(result=result||import_path82.default.join(found,".."));}catch{}try{let found=import_find_up.default.sync(".hg",{type:"directory"});found&&(result=result||import_path82.default.join(found,".."));}catch{}try{let splitDirname=__dirname.split("node_modules");result=result||(splitDirname.length>=2?splitDirname[0]:void 0);}catch{}try{let found=import_find_up.default.sync(".yarn",{type:"directory"});found&&(result=result||import_path82.default.join(found,".."));}catch{}return result||process.cwd()},nodePathsToArray=nodePath=>nodePath.split(process.platform==="win32"?";":":").filter(Boolean).map(p7=>import_path82.default.resolve("./",p7)),relativePattern=/^\.{1,2}([/\\]|$)/;function normalizeStoryPath(filename){return relativePattern.test(filename)?filename:`.${import_path82.default.sep}${filename}`}function loadEnvs(options9={}){let defaultNodeEnv=options9.production?"production":"development",env3={NODE_ENV:process.env.NODE_ENV||defaultNodeEnv,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:options9.production?".":""};Object.keys(process.env).filter(name=>/^STORYBOOK_/.test(name)).forEach(name=>{env3[name]=process.env[name];});let base=Object.entries(env3).reduce((acc,[k14,v11])=>Object.assign(acc,{[k14]:JSON.stringify(v11)}),{}),{stringified,raw}=(0, import_lazy_universal_dotenv.getEnvironment)({nodeEnv:env3.NODE_ENV}),fullRaw={...env3,...raw};return fullRaw.NODE_PATH=nodePathsToArray(fullRaw.NODE_PATH||""),{stringified:{...base,...stringified},raw:fullRaw}}var stringifyEnvs=raw=>Object.entries(raw).reduce((acc,[key2,value])=>(acc[key2]=JSON.stringify(value),acc),{}),stringifyProcessEnvs=raw=>Object.entries(raw).reduce((acc,[key2,value])=>(acc[`process.env.${key2}`]=JSON.stringify(value),acc),{}),NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]},frameworkToRenderer={angular:"angular",ember:"ember","html-vite":"html","html-webpack5":"html",nextjs:"react","preact-vite":"preact","preact-webpack5":"preact",qwik:"qwik","react-vite":"react","react-webpack5":"react","server-webpack5":"server",solid:"solid","svelte-vite":"svelte","svelte-webpack5":"svelte",sveltekit:"svelte","vue3-vite":"vue3","vue3-webpack5":"vue3","web-components-vite":"web-components","web-components-webpack5":"web-components",html:"html",preact:"preact","react-native":"react-native",react:"react",server:"server",svelte:"svelte",vue3:"vue3","web-components":"web-components"};async function getBuilderOptions(options9){let framework=await options9.presets.apply("framework",{},options9);if(typeof framework!="string"&&framework?.options?.builder)return framework.options.builder;let{builder}=await options9.presets.apply("core",{},options9);return typeof builder!="string"&&builder?.options?builder.options:{}}var import_ts_dedent3=(init_esm(),__toCommonJS(esm_exports)),import_path92=__toESM4(__require("path"));function normalizePath2(p7){return import_path92.default.posix.normalize(p7.replace(/\\/g,"/"))}async function getFrameworkName(options9){let framework=await options9.presets.apply("framework","",options9);if(!framework)throw new Error(import_ts_dedent3.dedent`
1670
+ `)}catch(error){if(storybookOptions?.isCritical)throw new import_server_errors2.CriticalPresetLoadError({error,presetName});let warning=level>0?` Failed to load preset: ${JSON.stringify(input)} on level ${level}`:` Failed to load preset: ${JSON.stringify(input)}`;return import_node_logger2.logger.warn(warning),import_node_logger2.logger.error(error),[]}}async function loadPresets(presets,level,storybookOptions){return !presets||!Array.isArray(presets)||!presets.length?[]:(await Promise.all(presets.map(async preset=>loadPreset(preset,level,storybookOptions)))).reduce((acc,loaded)=>acc.concat(loaded),[])}function applyPresets(presets,extension,config,args,storybookOptions){let presetResult=new Promise(res=>res(config));return presets.length?presets.reduce((accumulationPromise,{preset,options:options9})=>{let change=preset[extension];if(!change)return accumulationPromise;if(typeof change=="function"){let extensionFn=change,context={preset,combinedOptions:{...storybookOptions,...args,...options9,presetsList:presets,presets:{apply:async(ext,c8,a3={})=>applyPresets(presets,ext,c8,a3,storybookOptions)}}};return accumulationPromise.then(newConfig=>extensionFn.call(context.preset,newConfig,context.combinedOptions))}return accumulationPromise.then(newConfig=>Array.isArray(newConfig)&&Array.isArray(change)?[...newConfig,...change]:isObject3(newConfig)&&isObject3(change)?{...newConfig,...change}:change)},presetResult):presetResult}async function getPresets(presets,storybookOptions){let loadedPresets=await loadPresets(presets,0,storybookOptions);return {apply:async(extension,config,args={})=>applyPresets(loadedPresets,extension,config,args,storybookOptions)}}async function loadAllPresets(options9){let{corePresets=[],overridePresets=[],...restOptions}=options9,presetsConfig=[...corePresets,...loadCustomPresets(options9),...overridePresets],filteredPresetConfig=filterPresetsConfig(presetsConfig);return filteredPresetConfig.length<presetsConfig.length&&import_node_logger2.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),getPresets(filteredPresetConfig,restOptions)}var import_file_system_cache=__toESM4(require_lib5());function createFileSystemCache(options9){return (0, import_file_system_cache.default)(options9)}var import_path52=__toESM4(__require("path")),import_find_cache_dir=__toESM4(require_find_cache_dir());function resolvePathInStorybookCache(fileOrDirectoryName,sub="default"){let cacheDirectory=(0, import_find_cache_dir.default)({name:"storybook"});return cacheDirectory||=import_path52.default.join(process.cwd(),".cache","storybook"),import_path52.default.join(cacheDirectory,sub,fileOrDirectoryName)}var cache3=createFileSystemCache({basePath:resolvePathInStorybookCache("dev-server"),ns:"storybook"}),import_fs_extra2=require_lib6(),import_path72=__require("path"),import_path62=__toESM4(__require("path")),import_fs_extra=__toESM4(require_lib6());function getStorybookConfiguration(storybookScript,shortName,longName){if(!storybookScript)return null;let parts=storybookScript.split(/[\s='"]+/),index=parts.indexOf(longName);return index===-1&&(index=parts.indexOf(shortName)),index===-1?null:parts[index+1]}var rendererPackages={"@storybook/react":"react","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/server":"server","storybook-framework-qwik":"qwik","storybook-solidjs":"solid","@storybook/vue":"vue"},frameworkPackages={"@storybook/angular":"angular","@storybook/ember":"ember","@storybook/html-vite":"html-vite","@storybook/html-webpack5":"html-webpack5","@storybook/nextjs":"nextjs","@storybook/preact-vite":"preact-vite","@storybook/preact-webpack5":"preact-webpack5","@storybook/react-vite":"react-vite","@storybook/react-webpack5":"react-webpack5","@storybook/server-webpack5":"server-webpack5","@storybook/svelte-vite":"svelte-vite","@storybook/svelte-webpack5":"svelte-webpack5","@storybook/sveltekit":"sveltekit","@storybook/vue3-vite":"vue3-vite","@storybook/vue3-webpack5":"vue3-webpack5","@storybook/web-components-vite":"web-components-vite","@storybook/web-components-webpack5":"web-components-webpack5","storybook-framework-qwik":"qwik","storybook-solidjs-vite":"solid"},builderPackages=["@storybook/builder-webpack5","@storybook/builder-vite"],logger2=console,findDependency=({dependencies,devDependencies,peerDependencies},predicate)=>[Object.entries(dependencies||{}).find(predicate),Object.entries(devDependencies||{}).find(predicate),Object.entries(peerDependencies||{}).find(predicate)],getRendererInfo=packageJson=>{let[dep,devDep,peerDep]=findDependency(packageJson,([key2])=>rendererPackages[key2]),[pkg,version]=dep||devDep||peerDep||[];return dep&&devDep&&dep[0]===devDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),dep&&peerDep&&dep[0]===peerDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version,frameworkPackage:pkg}},validConfigExtensions=["ts","js","tsx","jsx","mjs","cjs"],findConfigFile2=(prefix,configDir)=>{let filePrefix=import_path62.default.join(configDir,prefix),extension=validConfigExtensions.find(ext=>import_fs_extra.default.existsSync(`${filePrefix}.${ext}`));return extension?`${filePrefix}.${extension}`:null},getConfigInfo=(packageJson,configDir)=>{let storybookConfigDir=configDir??".storybook",storybookScript=packageJson.scripts?.storybook;if(storybookScript&&!configDir){let configParam=getStorybookConfiguration(storybookScript,"-c","--config-dir");configParam&&(storybookConfigDir=configParam);}return {configDir:storybookConfigDir,mainConfig:findConfigFile2("main",storybookConfigDir),previewConfig:findConfigFile2("preview",storybookConfigDir),managerConfig:findConfigFile2("manager",storybookConfigDir)}},getStorybookInfo=(packageJson,configDir)=>{let rendererInfo=getRendererInfo(packageJson),configInfo=getConfigInfo(packageJson,configDir);return {...rendererInfo,...configInfo}},versions_default={"@storybook/addon-a11y":"8.1.11","@storybook/addon-actions":"8.1.11","@storybook/addon-backgrounds":"8.1.11","@storybook/addon-controls":"8.1.11","@storybook/addon-docs":"8.1.11","@storybook/addon-essentials":"8.1.11","@storybook/addon-highlight":"8.1.11","@storybook/addon-interactions":"8.1.11","@storybook/addon-jest":"8.1.11","@storybook/addon-links":"8.1.11","@storybook/addon-mdx-gfm":"8.1.11","@storybook/addon-measure":"8.1.11","@storybook/addon-onboarding":"8.1.11","@storybook/addon-outline":"8.1.11","@storybook/addon-storysource":"8.1.11","@storybook/addon-themes":"8.1.11","@storybook/addon-toolbars":"8.1.11","@storybook/addon-viewport":"8.1.11","@storybook/angular":"8.1.11","@storybook/blocks":"8.1.11","@storybook/builder-manager":"8.1.11","@storybook/builder-vite":"8.1.11","@storybook/builder-webpack5":"8.1.11","@storybook/channels":"8.1.11","@storybook/cli":"8.1.11","@storybook/client-logger":"8.1.11","@storybook/codemod":"8.1.11","@storybook/components":"8.1.11","@storybook/core-common":"8.1.11","@storybook/core-events":"8.1.11","@storybook/core-server":"8.1.11","@storybook/core-webpack":"8.1.11","@storybook/csf-plugin":"8.1.11","@storybook/csf-tools":"8.1.11","@storybook/docs-tools":"8.1.11","@storybook/ember":"8.1.11","@storybook/html":"8.1.11","@storybook/html-vite":"8.1.11","@storybook/html-webpack5":"8.1.11","@storybook/instrumenter":"8.1.11","@storybook/manager":"8.1.11","@storybook/manager-api":"8.1.11","@storybook/nextjs":"8.1.11","@storybook/node-logger":"8.1.11","@storybook/preact":"8.1.11","@storybook/preact-vite":"8.1.11","@storybook/preact-webpack5":"8.1.11","@storybook/preset-create-react-app":"8.1.11","@storybook/preset-html-webpack":"8.1.11","@storybook/preset-preact-webpack":"8.1.11","@storybook/preset-react-webpack":"8.1.11","@storybook/preset-server-webpack":"8.1.11","@storybook/preset-svelte-webpack":"8.1.11","@storybook/preset-vue3-webpack":"8.1.11","@storybook/preview":"8.1.11","@storybook/preview-api":"8.1.11","@storybook/react":"8.1.11","@storybook/react-dom-shim":"8.1.11","@storybook/react-vite":"8.1.11","@storybook/react-webpack5":"8.1.11","@storybook/router":"8.1.11","@storybook/server":"8.1.11","@storybook/server-webpack5":"8.1.11","@storybook/source-loader":"8.1.11","@storybook/svelte":"8.1.11","@storybook/svelte-vite":"8.1.11","@storybook/svelte-webpack5":"8.1.11","@storybook/sveltekit":"8.1.11","@storybook/telemetry":"8.1.11","@storybook/test":"8.1.11","@storybook/theming":"8.1.11","@storybook/types":"8.1.11","@storybook/vue3":"8.1.11","@storybook/vue3-vite":"8.1.11","@storybook/vue3-webpack5":"8.1.11","@storybook/web-components":"8.1.11","@storybook/web-components-vite":"8.1.11","@storybook/web-components-webpack5":"8.1.11",sb:"8.1.11",storybook:"8.1.11"};function parseList(str2){return str2.split(",").map(item=>item.trim()).filter(item=>item.length>0)}async function getCoercedStorybookVersion(packageManager){return (await Promise.all(Object.keys(rendererPackages).map(async pkg=>({name:pkg,version:await packageManager.getPackageVersion(pkg)})))).filter(({version})=>!!version)[0]?.version}function getEnvConfig(program,configEnv){Object.keys(configEnv).forEach(fieldName=>{let envVarName=configEnv[fieldName],envVarValue=process.env[envVarName];envVarValue&&(program[fieldName]=envVarValue);});}var createLogStream=async(logFileName="storybook.log")=>{let finalLogPath=(0, import_path72.join)(process.cwd(),logFileName),{temporaryFile:temporaryFile2}=await init_tempy().then(()=>tempy_exports),temporaryLogPath=temporaryFile2({name:logFileName}),logStream=(0, import_fs_extra2.createWriteStream)(temporaryLogPath,{encoding:"utf8"});return new Promise((resolve4,reject)=>{logStream.once("open",()=>{resolve4({logStream,moveLogFile:async()=>(0, import_fs_extra2.move)(temporaryLogPath,finalLogPath,{overwrite:!0}),clearLogFile:async()=>(0, import_fs_extra2.writeFile)(temporaryLogPath,""),removeLogFile:async()=>(0, import_fs_extra2.remove)(temporaryLogPath),readLogFile:async()=>(0, import_fs_extra2.readFile)(temporaryLogPath,"utf8")});}),logStream.once("error",reject);})},isCorePackage=pkg=>Object.keys(versions_default).includes(pkg),import_node_logger3=require_dist4(),predicateFor=addon=>entry=>{let name=entry.name||entry;return name&&name.replaceAll(/(\\){1,2}/g,"/").includes(addon)},isCorrectOrder=(addons,before,after)=>{let essentialsIndex=addons.findIndex(predicateFor("@storybook/addon-essentials")),beforeIndex=addons.findIndex(predicateFor(before.name)),afterIndex=addons.findIndex(predicateFor(after.name));return beforeIndex===-1&&before.inEssentials&&(beforeIndex=essentialsIndex),afterIndex===-1&&after.inEssentials&&(afterIndex=essentialsIndex),beforeIndex!==-1&&afterIndex!==-1&&beforeIndex<=afterIndex},checkAddonOrder=async({before,after,configFile,getConfig})=>{try{let config=await getConfig(configFile);if(!config?.addons){import_node_logger3.logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!isCorrectOrder(config.addons,before,after)){let orEssentials=" (or '@storybook/addon-essentials')",beforeText=`'${before.name}'${before.inEssentials?orEssentials:""}`,afterText=`'${after.name}'${after.inEssentials?orEssentials:""}`;import_node_logger3.logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`);}}catch{import_node_logger3.logger.warn(`Unable to load config file: ${configFile}`);}},import_lazy_universal_dotenv=require_lib8(),import_path82=__toESM4(__require("path")),import_find_up=__toESM4(require_find_up3()),getProjectRoot=()=>{let result;if(process.env.STORYBOOK_PROJECT_ROOT)return process.env.STORYBOOK_PROJECT_ROOT;try{let found=import_find_up.default.sync(".git",{type:"directory"});found&&(result=import_path82.default.join(found,".."));}catch{}try{let found=import_find_up.default.sync(".svn",{type:"directory"});found&&(result=result||import_path82.default.join(found,".."));}catch{}try{let found=import_find_up.default.sync(".hg",{type:"directory"});found&&(result=result||import_path82.default.join(found,".."));}catch{}try{let splitDirname=__dirname.split("node_modules");result=result||(splitDirname.length>=2?splitDirname[0]:void 0);}catch{}try{let found=import_find_up.default.sync(".yarn",{type:"directory"});found&&(result=result||import_path82.default.join(found,".."));}catch{}return result||process.cwd()},nodePathsToArray=nodePath=>nodePath.split(process.platform==="win32"?";":":").filter(Boolean).map(p7=>import_path82.default.resolve("./",p7)),relativePattern=/^\.{1,2}([/\\]|$)/;function normalizeStoryPath(filename){return relativePattern.test(filename)?filename:`.${import_path82.default.sep}${filename}`}function loadEnvs(options9={}){let defaultNodeEnv=options9.production?"production":"development",env3={NODE_ENV:process.env.NODE_ENV||defaultNodeEnv,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:options9.production?".":""};Object.keys(process.env).filter(name=>/^STORYBOOK_/.test(name)).forEach(name=>{env3[name]=process.env[name];});let base=Object.entries(env3).reduce((acc,[k14,v11])=>Object.assign(acc,{[k14]:JSON.stringify(v11)}),{}),{stringified,raw}=(0, import_lazy_universal_dotenv.getEnvironment)({nodeEnv:env3.NODE_ENV}),fullRaw={...env3,...raw};return fullRaw.NODE_PATH=nodePathsToArray(fullRaw.NODE_PATH||""),{stringified:{...base,...stringified},raw:fullRaw}}var stringifyEnvs=raw=>Object.entries(raw).reduce((acc,[key2,value])=>(acc[key2]=JSON.stringify(value),acc),{}),stringifyProcessEnvs=raw=>Object.entries(raw).reduce((acc,[key2,value])=>(acc[`process.env.${key2}`]=JSON.stringify(value),acc),{}),NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]},frameworkToRenderer={angular:"angular",ember:"ember","html-vite":"html","html-webpack5":"html",nextjs:"react","preact-vite":"preact","preact-webpack5":"preact",qwik:"qwik","react-vite":"react","react-webpack5":"react","server-webpack5":"server",solid:"solid","svelte-vite":"svelte","svelte-webpack5":"svelte",sveltekit:"svelte","vue3-vite":"vue3","vue3-webpack5":"vue3","web-components-vite":"web-components","web-components-webpack5":"web-components",html:"html",preact:"preact","react-native":"react-native",react:"react",server:"server",svelte:"svelte",vue3:"vue3","web-components":"web-components"};async function getBuilderOptions(options9){let framework=await options9.presets.apply("framework",{},options9);if(typeof framework!="string"&&framework?.options?.builder)return framework.options.builder;let{builder}=await options9.presets.apply("core",{},options9);return typeof builder!="string"&&builder?.options?builder.options:{}}var import_ts_dedent3=(init_esm(),__toCommonJS(esm_exports)),import_path92=__toESM4(__require("path"));function normalizePath2(p7){return import_path92.default.posix.normalize(p7.replace(/\\/g,"/"))}async function getFrameworkName(options9){let framework=await options9.presets.apply("framework","",options9);if(!framework)throw new Error(import_ts_dedent3.dedent`
1671
1671
  You must specify a framework in '.storybook/main.js' config.
1672
1672
 
1673
1673
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
@@ -1720,9 +1720,9 @@ Content-Type: ${v11.type||"application/octet-stream"}\r
1720
1720
  `,v11,`\r
1721
1721
  `)),c8.push(`--${b15}--`),new B15(c8,{type:"multipart/form-data; boundary="+b15})}var t25,i3,h7,r8,m4,f10,e4,x11,FormData,init_esm_min=__esm2({"../../node_modules/formdata-polyfill/esm.min.js"(){init_fetch_blob(),init_file(),{toStringTag:t25,iterator:i3,hasInstance:h7}=Symbol,r8=Math.random,m4="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),f10=(a3,b15,c8)=>(a3+="",/^(Blob|File)$/.test(b15&&b15[t25])?[(c8=c8!==void 0?c8+"":b15[t25]=="File"?b15.name:"blob",a3),b15.name!==c8||b15[t25]=="blob"?new file_default([b15],c8,b15):b15]:[a3,b15+""]),e4=(c8,f32)=>(f32?c8:c8.replace(/\r?\n|\r/g,`\r
1722
1722
  `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),x11=(n,a3,e23)=>{if(a3.length<e23)throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e23} arguments required, but only ${a3.length} present.`)},FormData=class{#d=[];constructor(...a3){if(a3.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[t25](){return "FormData"}[i3](){return this.entries()}static[h7](o3){return o3&&typeof o3=="object"&&o3[t25]==="FormData"&&!m4.some(m22=>typeof o3[m22]!="function")}append(...a3){x11("append",arguments,2),this.#d.push(f10(...a3));}delete(a3){x11("delete",arguments,1),a3+="",this.#d=this.#d.filter(([b15])=>b15!==a3);}get(a3){x11("get",arguments,1),a3+="";for(var b15=this.#d,l=b15.length,c8=0;c8<l;c8++)if(b15[c8][0]===a3)return b15[c8][1];return null}getAll(a3,b15){return x11("getAll",arguments,1),b15=[],a3+="",this.#d.forEach(c8=>c8[0]===a3&&b15.push(c8[1])),b15}has(a3){return x11("has",arguments,1),a3+="",this.#d.some(b15=>b15[0]===a3)}forEach(a3,b15){x11("forEach",arguments,1);for(var[c8,d7]of this)a3.call(b15,d7,c8,this);}set(...a3){x11("set",arguments,2);var b15=[],c8=!0;a3=f10(...a3),this.#d.forEach(d7=>{d7[0]===a3[0]?c8&&(c8=!b15.push(a3)):b15.push(d7);}),c8&&b15.push(a3),this.#d=b15;}*entries(){yield*this.#d;}*keys(){for(var[a3]of this)yield a3;}*values(){for(var[,a3]of this)yield a3;}};}}),require_node_domexception=__commonJS4({"../../node_modules/node-domexception/index.js"(exports2,module2){if(!globalThis.DOMException)try{let{MessageChannel}=__require("worker_threads"),port=new MessageChannel().port1,ab=new ArrayBuffer;port.postMessage(ab,[ab,ab]);}catch(err){err.constructor.name==="DOMException"&&(globalThis.DOMException=err.constructor);}module2.exports=globalThis.DOMException;}}),import_node_fs3,init_from=__esm2({"../../node_modules/fetch-blob/from.js"(){import_node_fs3=__require("fs"),__require("path"),__toESM4(require_node_domexception(),1),init_file(),init_fetch_blob(),import_node_fs3.promises;}}),multipart_parser_exports={};__export6(multipart_parser_exports,{toFormData:()=>toFormData});function _fileName(headerValue){let m22=headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!m22)return;let match=m22[2]||m22[3]||"",filename=match.slice(match.lastIndexOf("\\")+1);return filename=filename.replace(/%22/g,'"'),filename=filename.replace(/&#(\d{4});/g,(m32,code)=>String.fromCharCode(code)),filename}async function toFormData(Body22,ct14){if(!/multipart/i.test(ct14))throw new TypeError("Failed to fetch");let m22=ct14.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!m22)throw new TypeError("no or bad content-type header, no multipart boundary");let parser=new MultipartParser(m22[1]||m22[2]),headerField,headerValue,entryValue,entryName,contentType,filename,entryChunks=[],formData=new FormData,onPartData=ui8a=>{entryValue+=decoder.decode(ui8a,{stream:!0});},appendToFile=ui8a=>{entryChunks.push(ui8a);},appendFileToFormData=()=>{let file=new file_default(entryChunks,filename,{type:contentType});formData.append(entryName,file);},appendEntryToFormData=()=>{formData.append(entryName,entryValue);},decoder=new TextDecoder("utf-8");decoder.decode(),parser.onPartBegin=function(){parser.onPartData=onPartData,parser.onPartEnd=appendEntryToFormData,headerField="",headerValue="",entryValue="",entryName="",contentType="",filename=null,entryChunks.length=0;},parser.onHeaderField=function(ui8a){headerField+=decoder.decode(ui8a,{stream:!0});},parser.onHeaderValue=function(ui8a){headerValue+=decoder.decode(ui8a,{stream:!0});},parser.onHeaderEnd=function(){if(headerValue+=decoder.decode(),headerField=headerField.toLowerCase(),headerField==="content-disposition"){let m32=headerValue.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);m32&&(entryName=m32[2]||m32[3]||""),filename=_fileName(headerValue),filename&&(parser.onPartData=appendToFile,parser.onPartEnd=appendFileToFormData);}else headerField==="content-type"&&(contentType=headerValue);headerValue="",headerField="";};for await(let chunk of Body22)parser.write(chunk);return parser.end(),formData}var s,S11,f24,F16,LF,CR,SPACE,HYPHEN,COLON,A14,Z21,lower,noop5,MultipartParser,init_multipart_parser=__esm2({"node_modules/node-fetch/src/utils/multipart-parser.js"(){init_from(),init_esm_min(),s=0,S11={START_BOUNDARY:s++,HEADER_FIELD_START:s++,HEADER_FIELD:s++,HEADER_VALUE_START:s++,HEADER_VALUE:s++,HEADER_VALUE_ALMOST_DONE:s++,HEADERS_ALMOST_DONE:s++,PART_DATA_START:s++,PART_DATA:s++,END:s++},f24=1,F16={PART_BOUNDARY:f24,LAST_BOUNDARY:f24*=2},LF=10,CR=13,SPACE=32,HYPHEN=45,COLON=58,A14=97,Z21=122,lower=c8=>c8|32,noop5=()=>{},MultipartParser=class{constructor(boundary){this.index=0,this.flags=0,this.onHeaderEnd=noop5,this.onHeaderField=noop5,this.onHeadersEnd=noop5,this.onHeaderValue=noop5,this.onPartBegin=noop5,this.onPartData=noop5,this.onPartEnd=noop5,this.boundaryChars={},boundary=`\r
1723
- --`+boundary;let ui8a=new Uint8Array(boundary.length);for(let i23=0;i23<boundary.length;i23++)ui8a[i23]=boundary.charCodeAt(i23),this.boundaryChars[ui8a[i23]]=!0;this.boundary=ui8a,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=S11.START_BOUNDARY;}write(data){let i23=0,length_=data.length,previousIndex=this.index,{lookbehind,boundary,boundaryChars,index,state,flags}=this,boundaryLength=this.boundary.length,boundaryEnd=boundaryLength-1,bufferLength=data.length,c8,cl4,mark=name=>{this[name+"Mark"]=i23;},clear=name=>{delete this[name+"Mark"];},callback=(callbackSymbol,start,end,ui8a)=>{(start===void 0||start!==end)&&this[callbackSymbol](ui8a&&ui8a.subarray(start,end));},dataCallback=(name,clear2)=>{let markSymbol=name+"Mark";markSymbol in this&&(clear2?(callback(name,this[markSymbol],i23,data),delete this[markSymbol]):(callback(name,this[markSymbol],data.length,data),this[markSymbol]=0));};for(i23=0;i23<length_;i23++)switch(c8=data[i23],state){case S11.START_BOUNDARY:if(index===boundary.length-2){if(c8===HYPHEN)flags|=F16.LAST_BOUNDARY;else if(c8!==CR)return;index++;break}else if(index-1===boundary.length-2){if(flags&F16.LAST_BOUNDARY&&c8===HYPHEN)state=S11.END,flags=0;else if(!(flags&F16.LAST_BOUNDARY)&&c8===LF)index=0,callback("onPartBegin"),state=S11.HEADER_FIELD_START;else return;break}c8!==boundary[index+2]&&(index=-2),c8===boundary[index+2]&&index++;break;case S11.HEADER_FIELD_START:state=S11.HEADER_FIELD,mark("onHeaderField"),index=0;case S11.HEADER_FIELD:if(c8===CR){clear("onHeaderField"),state=S11.HEADERS_ALMOST_DONE;break}if(index++,c8===HYPHEN)break;if(c8===COLON){if(index===1)return;dataCallback("onHeaderField",!0),state=S11.HEADER_VALUE_START;break}if(cl4=lower(c8),cl4<A14||cl4>Z21)return;break;case S11.HEADER_VALUE_START:if(c8===SPACE)break;mark("onHeaderValue"),state=S11.HEADER_VALUE;case S11.HEADER_VALUE:c8===CR&&(dataCallback("onHeaderValue",!0),callback("onHeaderEnd"),state=S11.HEADER_VALUE_ALMOST_DONE);break;case S11.HEADER_VALUE_ALMOST_DONE:if(c8!==LF)return;state=S11.HEADER_FIELD_START;break;case S11.HEADERS_ALMOST_DONE:if(c8!==LF)return;callback("onHeadersEnd"),state=S11.PART_DATA_START;break;case S11.PART_DATA_START:state=S11.PART_DATA,mark("onPartData");case S11.PART_DATA:if(previousIndex=index,index===0){for(i23+=boundaryEnd;i23<bufferLength&&!(data[i23]in boundaryChars);)i23+=boundaryLength;i23-=boundaryEnd,c8=data[i23];}if(index<boundary.length)boundary[index]===c8?(index===0&&dataCallback("onPartData",!0),index++):index=0;else if(index===boundary.length)index++,c8===CR?flags|=F16.PART_BOUNDARY:c8===HYPHEN?flags|=F16.LAST_BOUNDARY:index=0;else if(index-1===boundary.length)if(flags&F16.PART_BOUNDARY){if(index=0,c8===LF){flags&=~F16.PART_BOUNDARY,callback("onPartEnd"),callback("onPartBegin"),state=S11.HEADER_FIELD_START;break}}else flags&F16.LAST_BOUNDARY&&c8===HYPHEN?(callback("onPartEnd"),state=S11.END,flags=0):index=0;if(index>0)lookbehind[index-1]=c8;else if(previousIndex>0){let _lookbehind=new Uint8Array(lookbehind.buffer,lookbehind.byteOffset,lookbehind.byteLength);callback("onPartData",0,previousIndex,_lookbehind),previousIndex=0,mark("onPartData"),i23--;}break;case S11.END:break;default:throw new Error(`Unexpected state entered: ${state}`)}dataCallback("onHeaderField"),dataCallback("onHeaderValue"),dataCallback("onPartData"),this.index=index,this.state=state,this.flags=flags;}end(){if(this.state===S11.HEADER_FIELD_START&&this.index===0||this.state===S11.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==S11.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}};}}),src_exports3={};__export6(src_exports3,{addToGlobalContext:()=>addToGlobalContext,computeStorybookMetadata:()=>computeStorybookMetadata,getPrecedingUpgrade:()=>getPrecedingUpgrade,getStorybookMetadata:()=>getStorybookMetadata,metaFrameworks:()=>metaFrameworks,oneWayHash:()=>oneWayHash,sanitizeAddonName:()=>sanitizeAddonName,telemetry:()=>telemetry2});module.exports=__toCommonJS2(src_exports3);var import_client_logger=require_dist2(),import_read_pkg_up=__toESM4(require_read_pkg_up()),import_detect_package_manager=require_dist3(),import_core_common3=require_dist8(),import_csf_tools=require_dist6(),fs17=__toESM4(require_lib6()),import_path24=__toESM4(__require("path")),getActualPackageVersions=async packages=>{let packageNames=Object.keys(packages);return Promise.all(packageNames.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_path24.default.join(packageName,"package.json"),{paths:[process.cwd()]});return await fs17.readJson(resolvedPackageJson)},import_fs_extra=__toESM4(require_lib6()),import_path25=__toESM4(__require("path")),import_core_common=require_dist8(),monorepoConfigs={Nx:"nx.json",Turborepo:"turbo.json",Lerna:"lerna.json",Rush:"rush.json",Lage:"lage.config.json"},getMonorepoType=()=>{let projectRootPath=(0, import_core_common.getProjectRoot)();if(!projectRootPath)return;let monorepoType=Object.keys(monorepoConfigs).find(monorepo=>{let configFile=import_path25.default.join(projectRootPath,monorepoConfigs[monorepo]);return import_fs_extra.default.existsSync(configFile)});if(monorepoType)return monorepoType;if(import_fs_extra.default.existsSync(import_path25.default.join(projectRootPath,"package.json"))&&import_fs_extra.default.readJsonSync(import_path25.default.join(projectRootPath,"package.json"))?.workspaces)return "Workspaces"},import_path32=__toESM4(__require("path"));function regexpEscape(str2){return str2.replace(/[-[/{}()*+?.\\^$|]/g,"\\$&")}function removeAnsiEscapeCodes(input=""){return input.replace(/\u001B\[[0-9;]*m/g,"")}function cleanPaths(str2,separator=import_path32.default.sep){if(!str2)return str2;let stack2=process.cwd().split(separator);for(;stack2.length>1;){let currentPath=stack2.join(separator),currentRegex=new RegExp(regexpEscape(currentPath),"gi");str2=str2.replace(currentRegex,"$SNIP");let currentPath2=stack2.join(separator+separator),currentRegex2=new RegExp(regexpEscape(currentPath2),"gi");str2=str2.replace(currentRegex2,"$SNIP"),stack2.pop();}return str2}function sanitizeError(error,pathSeparator=import_path32.default.sep){try{error={...JSON.parse(JSON.stringify(error)),message:removeAnsiEscapeCodes(error.message),stack:removeAnsiEscapeCodes(error.stack),cause:error.cause,name:error.name};let errorString=cleanPaths(JSON.stringify(error),pathSeparator);return JSON.parse(errorString)}catch(err){return `Sanitization error: ${err?.message}`}}var import_path42=__toESM4(__require("path")),import_core_common2=require_dist8(),knownRenderers=["html","react","svelte","vue3","preact","server","vue","web-components","angular","ember"],knownBuilders=["builder-webpack5","builder-vite"];function findMatchingPackage(packageJson,suffixes){let{name="",version,dependencies,devDependencies,peerDependencies}=packageJson,allDependencies={[name]:version,...dependencies,...devDependencies,...peerDependencies};return suffixes.map(suffix=>`@storybook/${suffix}`).find(pkg=>allDependencies[pkg])}var getFrameworkPackageName=packageNameOrPath=>{let normalizedPath=import_path42.default.normalize(packageNameOrPath).replace(new RegExp(/\\/,"g"),"/");return Object.keys(import_core_common2.frameworkPackages).find(pkg=>normalizedPath.endsWith(pkg))||cleanPaths(packageNameOrPath).replace(/.*node_modules[\\/]/,"")};async function getFrameworkInfo(mainConfig){if(!mainConfig?.framework)return {};let rawName=typeof mainConfig.framework=="string"?mainConfig.framework:mainConfig.framework?.name;if(!rawName)return {};let frameworkPackageJson=await getActualPackageJson(rawName);if(!frameworkPackageJson)return {};let builder=findMatchingPackage(frameworkPackageJson,knownBuilders),renderer=findMatchingPackage(frameworkPackageJson,knownRenderers),sanitizedFrameworkName=getFrameworkPackageName(rawName),frameworkOptions=typeof mainConfig.framework=="object"?mainConfig.framework.options:{};return {framework:{name:sanitizedFrameworkName,options:frameworkOptions},builder,renderer}}function getChromaticVersionSpecifier(packageJson){return packageJson.dependencies?.chromatic||packageJson.devDependencies?.chromatic||packageJson.peerDependencies?.chromatic||(packageJson.scripts&&Object.values(packageJson.scripts).find(s23=>s23?.match(/chromatic/))?"latest":void 0)}var metaFrameworks={next:"Next","react-scripts":"CRA",gatsby:"Gatsby","@nuxtjs/storybook":"nuxt","@nrwl/storybook":"nx","@vue/cli-service":"vue-cli","@sveltejs/kit":"sveltekit"},sanitizeAddonName=name=>cleanPaths(name).replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,""),computeStorybookMetadata=async({packageJson,mainConfig})=>{let metadata={generatedAt:new Date().getTime(),hasCustomBabel:!1,hasCustomWebpack:!1,hasStaticDirs:!1,hasStorybookEslint:!1,refCount:0},allDependencies={...packageJson?.dependencies,...packageJson?.devDependencies,...packageJson?.peerDependencies},metaFramework=Object.keys(allDependencies).find(dep=>!!metaFrameworks[dep]);if(metaFramework){let{version}=await getActualPackageVersion(metaFramework);metadata.metaFramework={name:metaFrameworks[metaFramework],packageName:metaFramework,version};}let testPackages=["playwright","vitest","jest","cypress","nightwatch","webdriver","@web/test-runner","puppeteer","karma","jasmine","chai","testing-library","@ngneat/spectator","wdio","msw","miragejs","sinon"],testPackageDeps=Object.keys(allDependencies).filter(dep=>testPackages.find(pkg=>dep.includes(pkg)));metadata.testPackages=Object.fromEntries(await Promise.all(testPackageDeps.map(async dep=>[dep,(await getActualPackageVersion(dep))?.version])));let monorepoType=getMonorepoType();monorepoType&&(metadata.monorepo=monorepoType);try{let packageManagerType=await(0,import_detect_package_manager.detect)({cwd:(0,import_core_common3.getProjectRoot)()}),packageManagerVerson=await(0,import_detect_package_manager.getNpmVersion)(packageManagerType);metadata.packageManager={type:packageManagerType,version:packageManagerVerson};}catch{}metadata.hasCustomBabel=!!mainConfig.babel,metadata.hasCustomWebpack=!!mainConfig.webpackFinal,metadata.hasStaticDirs=!!mainConfig.staticDirs,typeof mainConfig.typescript=="object"&&(metadata.typescriptOptions=mainConfig.typescript);let frameworkInfo=await getFrameworkInfo(mainConfig);typeof mainConfig.refs=="object"&&(metadata.refCount=Object.keys(mainConfig.refs).length),typeof mainConfig.features=="object"&&(metadata.features=mainConfig.features);let addons={};mainConfig.addons&&mainConfig.addons.forEach(addon=>{let addonName,options9;typeof addon=="string"?addonName=sanitizeAddonName(addon):(addon.name.includes("addon-essentials")&&(options9=addon.options),addonName=sanitizeAddonName(addon.name)),addons[addonName]={options:options9,version:void 0};});let chromaticVersionSpecifier=getChromaticVersionSpecifier(packageJson);chromaticVersionSpecifier&&(addons.chromatic={version:void 0,versionSpecifier:chromaticVersionSpecifier,options:void 0}),(await getActualPackageVersions(addons)).forEach(({name,version})=>{addons[name].version=version;});let addonNames=Object.keys(addons),storybookPackages=Object.keys(allDependencies).filter(dep=>dep.includes("storybook")&&!addonNames.includes(dep)).reduce((acc,dep)=>({...acc,[dep]:{version:void 0}}),{});(await getActualPackageVersions(storybookPackages)).forEach(({name,version})=>{storybookPackages[name].version=version;});let language=allDependencies.typescript?"typescript":"javascript",hasStorybookEslint=!!allDependencies["eslint-plugin-storybook"],storybookInfo=(0, import_core_common3.getStorybookInfo)(packageJson);try{let{previewConfig}=storybookInfo;if(previewConfig){let config=await(0,import_csf_tools.readConfig)(previewConfig),usesGlobals=!!(config.getFieldNode(["globals"])||config.getFieldNode(["globalTypes"]));metadata.preview={...metadata.preview,usesGlobals};}}catch{}let storybookVersion=storybookPackages[storybookInfo.frameworkPackage]?.version;return {...metadata,...frameworkInfo,storybookVersion,storybookVersionSpecifier:storybookInfo.version,language,storybookPackages,addons,hasStorybookEslint}},cachedMetadata,getStorybookMetadata=async _configDir=>{if(cachedMetadata)return cachedMetadata;let{packageJson={}}=import_read_pkg_up.default.sync({cwd:process.cwd(),normalize:!1})||{},configDir=(_configDir||(0, import_core_common3.getStorybookConfiguration)(packageJson?.scripts?.storybook||"","-c","--config-dir"))??".storybook",mainConfig=await(0, import_core_common3.loadMainConfig)({configDir});return cachedMetadata=await computeStorybookMetadata({mainConfig,packageJson}),cachedMetadata},os13=__toESM4(__require("os")),import_node_http2=__toESM4(__require("http"),1),import_node_https=__toESM4(__require("https"),1),import_node_zlib=__toESM4(__require("zlib"),1),import_node_stream2=__toESM4(__require("stream"),1),import_node_buffer2=__require("buffer");function dataUriToBuffer(uri){if(!/^data:/i.test(uri))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');uri=uri.replace(/\r?\n/g,"");let firstComma=uri.indexOf(",");if(firstComma===-1||firstComma<=4)throw new TypeError("malformed data: URI");let meta=uri.substring(5,firstComma).split(";"),charset="",base64=!1,type2=meta[0]||"text/plain",typeFull=type2;for(let i23=1;i23<meta.length;i23++)meta[i23]==="base64"?base64=!0:meta[i23]&&(typeFull+=`;${meta[i23]}`,meta[i23].indexOf("charset=")===0&&(charset=meta[i23].substring(8)));!meta[0]&&!charset.length&&(typeFull+=";charset=US-ASCII",charset="US-ASCII");let encoding=base64?"base64":"ascii",data=unescape(uri.substring(firstComma+1)),buffer2=Buffer.from(data,encoding);return buffer2.type=type2,buffer2.typeFull=typeFull,buffer2.charset=charset,buffer2}var dist_default2=dataUriToBuffer,import_node_stream3=__toESM4(__require("stream"),1),import_node_util2=__require("util"),import_node_buffer=__require("buffer");init_fetch_blob();init_esm_min();var FetchBaseError=class extends Error{constructor(message,type2){super(message),Error.captureStackTrace(this,this.constructor),this.type=type2;}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},FetchError2=class extends FetchBaseError{constructor(message,type2,systemError){super(message,type2),systemError&&(this.code=this.errno=systemError.code,this.erroredSysCall=systemError.syscall);}},NAME=Symbol.toStringTag,isURLSearchParameters=object=>typeof object=="object"&&typeof object.append=="function"&&typeof object.delete=="function"&&typeof object.get=="function"&&typeof object.getAll=="function"&&typeof object.has=="function"&&typeof object.set=="function"&&typeof object.sort=="function"&&object[NAME]==="URLSearchParams",isBlob2=object=>object&&typeof object=="object"&&typeof object.arrayBuffer=="function"&&typeof object.type=="string"&&typeof object.stream=="function"&&typeof object.constructor=="function"&&/^(Blob|File)$/.test(object[NAME]),isAbortSignal2=object=>typeof object=="object"&&(object[NAME]==="AbortSignal"||object[NAME]==="EventTarget"),isDomainOrSubdomain3=(destination,original)=>{let orig=new URL(original).hostname,dest=new URL(destination).hostname;return orig===dest||orig.endsWith(`.${dest}`)},isSameProtocol3=(destination,original)=>{let orig=new URL(original).protocol,dest=new URL(destination).protocol;return orig===dest},pipeline2=(0, import_node_util2.promisify)(import_node_stream3.default.pipeline),INTERNALS2=Symbol("Body internals"),Body2=class{constructor(body,{size=0}={}){let boundary=null;body===null?body=null:isURLSearchParameters(body)?body=import_node_buffer.Buffer.from(body.toString()):isBlob2(body)||import_node_buffer.Buffer.isBuffer(body)||(import_node_util2.types.isAnyArrayBuffer(body)?body=import_node_buffer.Buffer.from(body):ArrayBuffer.isView(body)?body=import_node_buffer.Buffer.from(body.buffer,body.byteOffset,body.byteLength):body instanceof import_node_stream3.default||(body instanceof FormData?(body=formDataToBlob(body),boundary=body.type.split("=")[1]):body=import_node_buffer.Buffer.from(String(body))));let stream2=body;import_node_buffer.Buffer.isBuffer(body)?stream2=import_node_stream3.default.Readable.from(body):isBlob2(body)&&(stream2=import_node_stream3.default.Readable.from(body.stream())),this[INTERNALS2]={body,stream:stream2,boundary,disturbed:!1,error:null},this.size=size,body instanceof import_node_stream3.default&&body.on("error",error_=>{let error=error_ instanceof FetchBaseError?error_:new FetchError2(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`,"system",error_);this[INTERNALS2].error=error;});}get body(){return this[INTERNALS2].stream}get bodyUsed(){return this[INTERNALS2].disturbed}async arrayBuffer(){let{buffer:buffer2,byteOffset,byteLength}=await consumeBody2(this);return buffer2.slice(byteOffset,byteOffset+byteLength)}async formData(){let ct14=this.headers.get("content-type");if(ct14.startsWith("application/x-www-form-urlencoded")){let formData=new FormData,parameters=new URLSearchParams(await this.text());for(let[name,value]of parameters)formData.append(name,value);return formData}let{toFormData:toFormData2}=await Promise.resolve().then(()=>(init_multipart_parser(),multipart_parser_exports));return toFormData2(this.body,ct14)}async blob(){let ct14=this.headers&&this.headers.get("content-type")||this[INTERNALS2].body&&this[INTERNALS2].body.type||"",buf=await this.arrayBuffer();return new fetch_blob_default([buf],{type:ct14})}async json(){let text=await this.text();return JSON.parse(text)}async text(){let buffer2=await consumeBody2(this);return new TextDecoder().decode(buffer2)}buffer(){return consumeBody2(this)}};Body2.prototype.buffer=(0, import_node_util2.deprecate)(Body2.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(Body2.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0, import_node_util2.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function consumeBody2(data){if(data[INTERNALS2].disturbed)throw new TypeError(`body used already for: ${data.url}`);if(data[INTERNALS2].disturbed=!0,data[INTERNALS2].error)throw data[INTERNALS2].error;let{body}=data;if(body===null||!(body instanceof import_node_stream3.default))return import_node_buffer.Buffer.alloc(0);let accum=[],accumBytes=0;try{for await(let chunk of body){if(data.size>0&&accumBytes+chunk.length>data.size){let error=new FetchError2(`content size at ${data.url} over limit: ${data.size}`,"max-size");throw body.destroy(error),error}accumBytes+=chunk.length,accum.push(chunk);}}catch(error){throw error instanceof FetchBaseError?error:new FetchError2(`Invalid response body while trying to fetch ${data.url}: ${error.message}`,"system",error)}if(body.readableEnded===!0||body._readableState.ended===!0)try{return accum.every(c8=>typeof c8=="string")?import_node_buffer.Buffer.from(accum.join("")):import_node_buffer.Buffer.concat(accum,accumBytes)}catch(error){throw new FetchError2(`Could not create Buffer from response body for ${data.url}: ${error.message}`,"system",error)}else throw new FetchError2(`Premature close of server response while trying to fetch ${data.url}`)}var clone2=(instance2,highWaterMark)=>{let p13,p23,{body}=instance2[INTERNALS2];if(instance2.bodyUsed)throw new Error("cannot clone body after it is used");return body instanceof import_node_stream3.default&&typeof body.getBoundary!="function"&&(p13=new import_node_stream3.PassThrough({highWaterMark}),p23=new import_node_stream3.PassThrough({highWaterMark}),body.pipe(p13),body.pipe(p23),instance2[INTERNALS2].stream=p13,body=p23),body},getNonSpecFormDataBoundary=(0, import_node_util2.deprecate)(body=>body.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),extractContentType2=(body,request)=>body===null?null:typeof body=="string"?"text/plain;charset=UTF-8":isURLSearchParameters(body)?"application/x-www-form-urlencoded;charset=UTF-8":isBlob2(body)?body.type||null:import_node_buffer.Buffer.isBuffer(body)||import_node_util2.types.isAnyArrayBuffer(body)||ArrayBuffer.isView(body)?null:body instanceof FormData?`multipart/form-data; boundary=${request[INTERNALS2].boundary}`:body&&typeof body.getBoundary=="function"?`multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`:body instanceof import_node_stream3.default?null:"text/plain;charset=UTF-8",getTotalBytes2=request=>{let{body}=request[INTERNALS2];return body===null?0:isBlob2(body)?body.size:import_node_buffer.Buffer.isBuffer(body)?body.length:body&&typeof body.getLengthSync=="function"&&body.hasKnownLength&&body.hasKnownLength()?body.getLengthSync():null},writeToStream2=async(dest,{body})=>{body===null?dest.end():await pipeline2(body,dest);},import_node_util22=__require("util"),import_node_http=__toESM4(__require("http"),1),validateHeaderName=typeof import_node_http.default.validateHeaderName=="function"?import_node_http.default.validateHeaderName:name=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(name)){let error=new TypeError(`Header name must be a valid HTTP token [${name}]`);throw Object.defineProperty(error,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),error}},validateHeaderValue=typeof import_node_http.default.validateHeaderValue=="function"?import_node_http.default.validateHeaderValue:(name,value)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(value)){let error=new TypeError(`Invalid character in header content ["${name}"]`);throw Object.defineProperty(error,"code",{value:"ERR_INVALID_CHAR"}),error}},Headers2=class _Headers extends URLSearchParams{constructor(init){let result=[];if(init instanceof _Headers){let raw=init.raw();for(let[name,values]of Object.entries(raw))result.push(...values.map(value=>[name,value]));}else if(init!=null)if(typeof init=="object"&&!import_node_util22.types.isBoxedPrimitive(init)){let method=init[Symbol.iterator];if(method==null)result.push(...Object.entries(init));else {if(typeof method!="function")throw new TypeError("Header pairs must be iterable");result=[...init].map(pair=>{if(typeof pair!="object"||import_node_util22.types.isBoxedPrimitive(pair))throw new TypeError("Each header pair must be an iterable object");return [...pair]}).map(pair=>{if(pair.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return [...pair]});}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return result=result.length>0?result.map(([name,value])=>(validateHeaderName(name),validateHeaderValue(name,String(value)),[String(name).toLowerCase(),String(value)])):void 0,super(result),new Proxy(this,{get(target,p7,receiver){switch(p7){case"append":case"set":return (name,value)=>(validateHeaderName(name),validateHeaderValue(name,String(value)),URLSearchParams.prototype[p7].call(target,String(name).toLowerCase(),String(value)));case"delete":case"has":case"getAll":return name=>(validateHeaderName(name),URLSearchParams.prototype[p7].call(target,String(name).toLowerCase()));case"keys":return ()=>(target.sort(),new Set(URLSearchParams.prototype.keys.call(target)).keys());default:return Reflect.get(target,p7,receiver)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(name){let values=this.getAll(name);if(values.length===0)return null;let value=values.join(", ");return /^content-encoding$/i.test(name)&&(value=value.toLowerCase()),value}forEach(callback,thisArg=void 0){for(let name of this.keys())Reflect.apply(callback,thisArg,[this.get(name),name,this]);}*values(){for(let name of this.keys())yield this.get(name);}*entries(){for(let name of this.keys())yield [name,this.get(name)];}[Symbol.iterator](){return this.entries()}raw(){return [...this.keys()].reduce((result,key2)=>(result[key2]=this.getAll(key2),result),{})}[Symbol.for("nodejs.util.inspect.custom")](){return [...this.keys()].reduce((result,key2)=>{let values=this.getAll(key2);return key2==="host"?result[key2]=values[0]:result[key2]=values.length>1?values:values[0],result},{})}};Object.defineProperties(Headers2.prototype,["get","entries","forEach","values"].reduce((result,property)=>(result[property]={enumerable:!0},result),{}));function fromRawHeaders(headers=[]){return new Headers2(headers.reduce((result,value,index,array3)=>(index%2===0&&result.push(array3.slice(index,index+2)),result),[]).filter(([name,value])=>{try{return validateHeaderName(name),validateHeaderValue(name,String(value)),!0}catch{return !1}}))}var redirectStatus=new Set([301,302,303,307,308]),isRedirect=code=>redirectStatus.has(code),INTERNALS22=Symbol("Response internals"),Response2=class _Response extends Body2{constructor(body=null,options9={}){super(body,options9);let status=options9.status!=null?options9.status:200,headers=new Headers2(options9.headers);if(body!==null&&!headers.has("Content-Type")){let contentType=extractContentType2(body,this);contentType&&headers.append("Content-Type",contentType);}this[INTERNALS22]={type:"default",url:options9.url,status,statusText:options9.statusText||"",headers,counter:options9.counter,highWaterMark:options9.highWaterMark};}get type(){return this[INTERNALS22].type}get url(){return this[INTERNALS22].url||""}get status(){return this[INTERNALS22].status}get ok(){return this[INTERNALS22].status>=200&&this[INTERNALS22].status<300}get redirected(){return this[INTERNALS22].counter>0}get statusText(){return this[INTERNALS22].statusText}get headers(){return this[INTERNALS22].headers}get highWaterMark(){return this[INTERNALS22].highWaterMark}clone(){return new _Response(clone2(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(url3,status=302){if(!isRedirect(status))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new _Response(null,{headers:{location:new URL(url3).toString()},status})}static error(){let response=new _Response(null,{status:0,statusText:""});return response[INTERNALS22].type="error",response}static json(data=void 0,init={}){let body=JSON.stringify(data);if(body===void 0)throw new TypeError("data is not JSON serializable");let headers=new Headers2(init&&init.headers);return headers.has("content-type")||headers.set("content-type","application/json"),new _Response(body,{...init,headers})}get[Symbol.toStringTag](){return "Response"}};Object.defineProperties(Response2.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var import_node_url=__require("url"),import_node_util3=__require("util"),getSearch=parsedURL=>{if(parsedURL.search)return parsedURL.search;let lastOffset=parsedURL.href.length-1,hash=parsedURL.hash||(parsedURL.href[lastOffset]==="#"?"#":"");return parsedURL.href[lastOffset-hash.length]==="?"?"?":""},import_node_net=__require("net");function stripURLForUseAsAReferrer(url3,originOnly=!1){return url3==null||(url3=new URL(url3),/^(about|blob|data):$/.test(url3.protocol))?"no-referrer":(url3.username="",url3.password="",url3.hash="",originOnly&&(url3.pathname="",url3.search=""),url3)}var ReferrerPolicy=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),DEFAULT_REFERRER_POLICY="strict-origin-when-cross-origin";function validateReferrerPolicy(referrerPolicy){if(!ReferrerPolicy.has(referrerPolicy))throw new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);return referrerPolicy}function isOriginPotentiallyTrustworthy(url3){if(/^(http|ws)s:$/.test(url3.protocol))return !0;let hostIp=url3.host.replace(/(^\[)|(]$)/g,""),hostIPVersion=(0, import_node_net.isIP)(hostIp);return hostIPVersion===4&&/^127\./.test(hostIp)||hostIPVersion===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)?!0:url3.host==="localhost"||url3.host.endsWith(".localhost")?!1:url3.protocol==="file:"}function isUrlPotentiallyTrustworthy(url3){return /^about:(blank|srcdoc)$/.test(url3)||url3.protocol==="data:"||/^(blob|filesystem):$/.test(url3.protocol)?!0:isOriginPotentiallyTrustworthy(url3)}function determineRequestsReferrer(request,{referrerURLCallback,referrerOriginCallback}={}){if(request.referrer==="no-referrer"||request.referrerPolicy==="")return null;let policy=request.referrerPolicy;if(request.referrer==="about:client")return "no-referrer";let referrerSource=request.referrer,referrerURL=stripURLForUseAsAReferrer(referrerSource),referrerOrigin=stripURLForUseAsAReferrer(referrerSource,!0);referrerURL.toString().length>4096&&(referrerURL=referrerOrigin),referrerURLCallback&&(referrerURL=referrerURLCallback(referrerURL)),referrerOriginCallback&&(referrerOrigin=referrerOriginCallback(referrerOrigin));let currentURL=new URL(request.url);switch(policy){case"no-referrer":return "no-referrer";case"origin":return referrerOrigin;case"unsafe-url":return referrerURL;case"strict-origin":return isUrlPotentiallyTrustworthy(referrerURL)&&!isUrlPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin.toString();case"strict-origin-when-cross-origin":return referrerURL.origin===currentURL.origin?referrerURL:isUrlPotentiallyTrustworthy(referrerURL)&&!isUrlPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin;case"same-origin":return referrerURL.origin===currentURL.origin?referrerURL:"no-referrer";case"origin-when-cross-origin":return referrerURL.origin===currentURL.origin?referrerURL:referrerOrigin;case"no-referrer-when-downgrade":return isUrlPotentiallyTrustworthy(referrerURL)&&!isUrlPotentiallyTrustworthy(currentURL)?"no-referrer":referrerURL;default:throw new TypeError(`Invalid referrerPolicy: ${policy}`)}}function parseReferrerPolicyFromHeader(headers){let policyTokens=(headers.get("referrer-policy")||"").split(/[,\s]+/),policy="";for(let token2 of policyTokens)token2&&ReferrerPolicy.has(token2)&&(policy=token2);return policy}var INTERNALS3=Symbol("Request internals"),isRequest2=object=>typeof object=="object"&&typeof object[INTERNALS3]=="object",doBadDataWarn=(0, import_node_util3.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Request3=class _Request extends Body2{constructor(input,init={}){let parsedURL;if(isRequest2(input)?parsedURL=new URL(input.url):(parsedURL=new URL(input),input={}),parsedURL.username!==""||parsedURL.password!=="")throw new TypeError(`${parsedURL} is an url with embedded credentials.`);let method=init.method||input.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(method)&&(method=method.toUpperCase()),!isRequest2(init)&&"data"in init&&doBadDataWarn(),(init.body!=null||isRequest2(input)&&input.body!==null)&&(method==="GET"||method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let inputBody=init.body?init.body:isRequest2(input)&&input.body!==null?clone2(input):null;super(inputBody,{size:init.size||input.size||0});let headers=new Headers2(init.headers||input.headers||{});if(inputBody!==null&&!headers.has("Content-Type")){let contentType=extractContentType2(inputBody,this);contentType&&headers.set("Content-Type",contentType);}let signal=isRequest2(input)?input.signal:null;if("signal"in init&&(signal=init.signal),signal!=null&&!isAbortSignal2(signal))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let referrer=init.referrer==null?input.referrer:init.referrer;if(referrer==="")referrer="no-referrer";else if(referrer){let parsedReferrer=new URL(referrer);referrer=/^about:(\/\/)?client$/.test(parsedReferrer)?"client":parsedReferrer;}else referrer=void 0;this[INTERNALS3]={method,redirect:init.redirect||input.redirect||"follow",headers,parsedURL,signal,referrer},this.follow=init.follow===void 0?input.follow===void 0?20:input.follow:init.follow,this.compress=init.compress===void 0?input.compress===void 0?!0:input.compress:init.compress,this.counter=init.counter||input.counter||0,this.agent=init.agent||input.agent,this.highWaterMark=init.highWaterMark||input.highWaterMark||16384,this.insecureHTTPParser=init.insecureHTTPParser||input.insecureHTTPParser||!1,this.referrerPolicy=init.referrerPolicy||input.referrerPolicy||"";}get method(){return this[INTERNALS3].method}get url(){return (0, import_node_url.format)(this[INTERNALS3].parsedURL)}get headers(){return this[INTERNALS3].headers}get redirect(){return this[INTERNALS3].redirect}get signal(){return this[INTERNALS3].signal}get referrer(){if(this[INTERNALS3].referrer==="no-referrer")return "";if(this[INTERNALS3].referrer==="client")return "about:client";if(this[INTERNALS3].referrer)return this[INTERNALS3].referrer.toString()}get referrerPolicy(){return this[INTERNALS3].referrerPolicy}set referrerPolicy(referrerPolicy){this[INTERNALS3].referrerPolicy=validateReferrerPolicy(referrerPolicy);}clone(){return new _Request(this)}get[Symbol.toStringTag](){return "Request"}};Object.defineProperties(Request3.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var getNodeRequestOptions2=request=>{let{parsedURL}=request[INTERNALS3],headers=new Headers2(request[INTERNALS3].headers);headers.has("Accept")||headers.set("Accept","*/*");let contentLengthValue=null;if(request.body===null&&/^(post|put)$/i.test(request.method)&&(contentLengthValue="0"),request.body!==null){let totalBytes=getTotalBytes2(request);typeof totalBytes=="number"&&!Number.isNaN(totalBytes)&&(contentLengthValue=String(totalBytes));}contentLengthValue&&headers.set("Content-Length",contentLengthValue),request.referrerPolicy===""&&(request.referrerPolicy=DEFAULT_REFERRER_POLICY),request.referrer&&request.referrer!=="no-referrer"?request[INTERNALS3].referrer=determineRequestsReferrer(request):request[INTERNALS3].referrer="no-referrer",request[INTERNALS3].referrer instanceof URL&&headers.set("Referer",request.referrer),headers.has("User-Agent")||headers.set("User-Agent","node-fetch"),request.compress&&!headers.has("Accept-Encoding")&&headers.set("Accept-Encoding","gzip, deflate, br");let{agent}=request;typeof agent=="function"&&(agent=agent(parsedURL));let search=getSearch(parsedURL),options9={path:parsedURL.pathname+search,method:request.method,headers:headers[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:request.insecureHTTPParser,agent};return {parsedURL,options:options9}},AbortError2=class extends FetchBaseError{constructor(message,type2="aborted"){super(message,type2);}};init_esm_min();init_from();var supportedSchemas=new Set(["data:","http:","https:"]);async function fetch2(url3,options_){return new Promise((resolve4,reject)=>{let request=new Request3(url3,options_),{parsedURL,options:options9}=getNodeRequestOptions2(request);if(!supportedSchemas.has(parsedURL.protocol))throw new TypeError(`node-fetch cannot load ${url3}. URL scheme "${parsedURL.protocol.replace(/:$/,"")}" is not supported.`);if(parsedURL.protocol==="data:"){let data=dist_default2(request.url),response2=new Response2(data,{headers:{"Content-Type":data.typeFull}});resolve4(response2);return}let send=(parsedURL.protocol==="https:"?import_node_https.default:import_node_http2.default).request,{signal}=request,response=null,abort=()=>{let error=new AbortError2("The operation was aborted.");reject(error),request.body&&request.body instanceof import_node_stream2.default.Readable&&request.body.destroy(error),!(!response||!response.body)&&response.body.emit("error",error);};if(signal&&signal.aborted){abort();return}let abortAndFinalize=()=>{abort(),finalize();},request_=send(parsedURL.toString(),options9);signal&&signal.addEventListener("abort",abortAndFinalize);let finalize=()=>{request_.abort(),signal&&signal.removeEventListener("abort",abortAndFinalize);};request_.on("error",error=>{reject(new FetchError2(`request to ${request.url} failed, reason: ${error.message}`,"system",error)),finalize();}),fixResponseChunkedTransferBadEnding2(request_,error=>{response&&response.body&&response.body.destroy(error);}),process.version<"v14"&&request_.on("socket",s23=>{let endedWithEventsCount;s23.prependListener("end",()=>{endedWithEventsCount=s23._eventsCount;}),s23.prependListener("close",hadError=>{if(response&&endedWithEventsCount<s23._eventsCount&&!hadError){let error=new Error("Premature close");error.code="ERR_STREAM_PREMATURE_CLOSE",response.body.emit("error",error);}});}),request_.on("response",response_=>{request_.setTimeout(0);let headers=fromRawHeaders(response_.rawHeaders);if(isRedirect(response_.statusCode)){let location=headers.get("Location"),locationURL=null;try{locationURL=location===null?null:new URL(location,request.url);}catch{if(request.redirect!=="manual"){reject(new FetchError2(`uri requested responds with an invalid redirect URL: ${location}`,"invalid-redirect")),finalize();return}}switch(request.redirect){case"error":reject(new FetchError2(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`,"no-redirect")),finalize();return;case"manual":break;case"follow":{if(locationURL===null)break;if(request.counter>=request.follow){reject(new FetchError2(`maximum redirect reached at: ${request.url}`,"max-redirect")),finalize();return}let requestOptions={headers:new Headers2(request.headers),follow:request.follow,counter:request.counter+1,agent:request.agent,compress:request.compress,method:request.method,body:clone2(request),signal:request.signal,size:request.size,referrer:request.referrer,referrerPolicy:request.referrerPolicy};if(!isDomainOrSubdomain3(request.url,locationURL)||!isSameProtocol3(request.url,locationURL))for(let name of ["authorization","www-authenticate","cookie","cookie2"])requestOptions.headers.delete(name);if(response_.statusCode!==303&&request.body&&options_.body instanceof import_node_stream2.default.Readable){reject(new FetchError2("Cannot follow redirect with body being a readable stream","unsupported-redirect")),finalize();return}(response_.statusCode===303||(response_.statusCode===301||response_.statusCode===302)&&request.method==="POST")&&(requestOptions.method="GET",requestOptions.body=void 0,requestOptions.headers.delete("content-length"));let responseReferrerPolicy=parseReferrerPolicyFromHeader(headers);responseReferrerPolicy&&(requestOptions.referrerPolicy=responseReferrerPolicy),resolve4(fetch2(new Request3(locationURL,requestOptions))),finalize();return}default:return reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`))}}signal&&response_.once("end",()=>{signal.removeEventListener("abort",abortAndFinalize);});let body=(0, import_node_stream2.pipeline)(response_,new import_node_stream2.PassThrough,error=>{error&&reject(error);});process.version<"v12.10"&&response_.on("aborted",abortAndFinalize);let responseOptions={url:request.url,status:response_.statusCode,statusText:response_.statusMessage,headers,size:request.size,counter:request.counter,highWaterMark:request.highWaterMark},codings=headers.get("Content-Encoding");if(!request.compress||request.method==="HEAD"||codings===null||response_.statusCode===204||response_.statusCode===304){response=new Response2(body,responseOptions),resolve4(response);return}let zlibOptions={flush:import_node_zlib.default.Z_SYNC_FLUSH,finishFlush:import_node_zlib.default.Z_SYNC_FLUSH};if(codings==="gzip"||codings==="x-gzip"){body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createGunzip(zlibOptions),error=>{error&&reject(error);}),response=new Response2(body,responseOptions),resolve4(response);return}if(codings==="deflate"||codings==="x-deflate"){let raw=(0, import_node_stream2.pipeline)(response_,new import_node_stream2.PassThrough,error=>{error&&reject(error);});raw.once("data",chunk=>{(chunk[0]&15)===8?body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createInflate(),error=>{error&&reject(error);}):body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createInflateRaw(),error=>{error&&reject(error);}),response=new Response2(body,responseOptions),resolve4(response);}),raw.once("end",()=>{response||(response=new Response2(body,responseOptions),resolve4(response));});return}if(codings==="br"){body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createBrotliDecompress(),error=>{error&&reject(error);}),response=new Response2(body,responseOptions),resolve4(response);return}response=new Response2(body,responseOptions),resolve4(response);}),writeToStream2(request_,request).catch(reject);})}function fixResponseChunkedTransferBadEnding2(request,errorCallback){let LAST_CHUNK=import_node_buffer2.Buffer.from(`0\r
1723
+ --`+boundary;let ui8a=new Uint8Array(boundary.length);for(let i23=0;i23<boundary.length;i23++)ui8a[i23]=boundary.charCodeAt(i23),this.boundaryChars[ui8a[i23]]=!0;this.boundary=ui8a,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=S11.START_BOUNDARY;}write(data){let i23=0,length_=data.length,previousIndex=this.index,{lookbehind,boundary,boundaryChars,index,state,flags}=this,boundaryLength=this.boundary.length,boundaryEnd=boundaryLength-1,bufferLength=data.length,c8,cl4,mark=name=>{this[name+"Mark"]=i23;},clear=name=>{delete this[name+"Mark"];},callback=(callbackSymbol,start,end,ui8a)=>{(start===void 0||start!==end)&&this[callbackSymbol](ui8a&&ui8a.subarray(start,end));},dataCallback=(name,clear2)=>{let markSymbol=name+"Mark";markSymbol in this&&(clear2?(callback(name,this[markSymbol],i23,data),delete this[markSymbol]):(callback(name,this[markSymbol],data.length,data),this[markSymbol]=0));};for(i23=0;i23<length_;i23++)switch(c8=data[i23],state){case S11.START_BOUNDARY:if(index===boundary.length-2){if(c8===HYPHEN)flags|=F16.LAST_BOUNDARY;else if(c8!==CR)return;index++;break}else if(index-1===boundary.length-2){if(flags&F16.LAST_BOUNDARY&&c8===HYPHEN)state=S11.END,flags=0;else if(!(flags&F16.LAST_BOUNDARY)&&c8===LF)index=0,callback("onPartBegin"),state=S11.HEADER_FIELD_START;else return;break}c8!==boundary[index+2]&&(index=-2),c8===boundary[index+2]&&index++;break;case S11.HEADER_FIELD_START:state=S11.HEADER_FIELD,mark("onHeaderField"),index=0;case S11.HEADER_FIELD:if(c8===CR){clear("onHeaderField"),state=S11.HEADERS_ALMOST_DONE;break}if(index++,c8===HYPHEN)break;if(c8===COLON){if(index===1)return;dataCallback("onHeaderField",!0),state=S11.HEADER_VALUE_START;break}if(cl4=lower(c8),cl4<A14||cl4>Z21)return;break;case S11.HEADER_VALUE_START:if(c8===SPACE)break;mark("onHeaderValue"),state=S11.HEADER_VALUE;case S11.HEADER_VALUE:c8===CR&&(dataCallback("onHeaderValue",!0),callback("onHeaderEnd"),state=S11.HEADER_VALUE_ALMOST_DONE);break;case S11.HEADER_VALUE_ALMOST_DONE:if(c8!==LF)return;state=S11.HEADER_FIELD_START;break;case S11.HEADERS_ALMOST_DONE:if(c8!==LF)return;callback("onHeadersEnd"),state=S11.PART_DATA_START;break;case S11.PART_DATA_START:state=S11.PART_DATA,mark("onPartData");case S11.PART_DATA:if(previousIndex=index,index===0){for(i23+=boundaryEnd;i23<bufferLength&&!(data[i23]in boundaryChars);)i23+=boundaryLength;i23-=boundaryEnd,c8=data[i23];}if(index<boundary.length)boundary[index]===c8?(index===0&&dataCallback("onPartData",!0),index++):index=0;else if(index===boundary.length)index++,c8===CR?flags|=F16.PART_BOUNDARY:c8===HYPHEN?flags|=F16.LAST_BOUNDARY:index=0;else if(index-1===boundary.length)if(flags&F16.PART_BOUNDARY){if(index=0,c8===LF){flags&=~F16.PART_BOUNDARY,callback("onPartEnd"),callback("onPartBegin"),state=S11.HEADER_FIELD_START;break}}else flags&F16.LAST_BOUNDARY&&c8===HYPHEN?(callback("onPartEnd"),state=S11.END,flags=0):index=0;if(index>0)lookbehind[index-1]=c8;else if(previousIndex>0){let _lookbehind=new Uint8Array(lookbehind.buffer,lookbehind.byteOffset,lookbehind.byteLength);callback("onPartData",0,previousIndex,_lookbehind),previousIndex=0,mark("onPartData"),i23--;}break;case S11.END:break;default:throw new Error(`Unexpected state entered: ${state}`)}dataCallback("onHeaderField"),dataCallback("onHeaderValue"),dataCallback("onPartData"),this.index=index,this.state=state,this.flags=flags;}end(){if(this.state===S11.HEADER_FIELD_START&&this.index===0||this.state===S11.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==S11.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}};}}),src_exports3={};__export6(src_exports3,{addToGlobalContext:()=>addToGlobalContext,computeStorybookMetadata:()=>computeStorybookMetadata,getPrecedingUpgrade:()=>getPrecedingUpgrade,getStorybookMetadata:()=>getStorybookMetadata,metaFrameworks:()=>metaFrameworks,oneWayHash:()=>oneWayHash,sanitizeAddonName:()=>sanitizeAddonName,telemetry:()=>telemetry2});module.exports=__toCommonJS2(src_exports3);var import_client_logger=require_dist2(),import_read_pkg_up=__toESM4(require_read_pkg_up()),import_detect_package_manager=require_dist3(),import_core_common3=require_dist8(),import_csf_tools=require_dist6(),fs17=__toESM4(require_lib6()),import_path24=__toESM4(__require("path")),getActualPackageVersions=async packages=>{let packageNames=Object.keys(packages);return Promise.all(packageNames.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_path24.default.join(packageName,"package.json"),{paths:[process.cwd()]});return await fs17.readJson(resolvedPackageJson)},import_fs_extra=__toESM4(require_lib6()),import_path25=__toESM4(__require("path")),import_core_common=require_dist8(),monorepoConfigs={Nx:"nx.json",Turborepo:"turbo.json",Lerna:"lerna.json",Rush:"rush.json",Lage:"lage.config.json"},getMonorepoType=()=>{let projectRootPath=(0, import_core_common.getProjectRoot)();if(!projectRootPath)return;let monorepoType=Object.keys(monorepoConfigs).find(monorepo=>{let configFile=import_path25.default.join(projectRootPath,monorepoConfigs[monorepo]);return import_fs_extra.default.existsSync(configFile)});if(monorepoType)return monorepoType;if(import_fs_extra.default.existsSync(import_path25.default.join(projectRootPath,"package.json"))&&import_fs_extra.default.readJsonSync(import_path25.default.join(projectRootPath,"package.json"))?.workspaces)return "Workspaces"},import_path32=__toESM4(__require("path"));function regexpEscape(str2){return str2.replace(/[-[/{}()*+?.\\^$|]/g,"\\$&")}function removeAnsiEscapeCodes(input=""){return input.replace(/\u001B\[[0-9;]*m/g,"")}function cleanPaths(str2,separator=import_path32.default.sep){if(!str2)return str2;let stack2=process.cwd().split(separator);for(;stack2.length>1;){let currentPath=stack2.join(separator),currentRegex=new RegExp(regexpEscape(currentPath),"gi");str2=str2.replace(currentRegex,"$SNIP");let currentPath2=stack2.join(separator+separator),currentRegex2=new RegExp(regexpEscape(currentPath2),"gi");str2=str2.replace(currentRegex2,"$SNIP"),stack2.pop();}return str2}function sanitizeError(error,pathSeparator=import_path32.default.sep){try{error={...JSON.parse(JSON.stringify(error)),message:removeAnsiEscapeCodes(error.message),stack:removeAnsiEscapeCodes(error.stack),cause:error.cause,name:error.name};let errorString=cleanPaths(JSON.stringify(error),pathSeparator);return JSON.parse(errorString)}catch(err){return `Sanitization error: ${err?.message}`}}var import_path42=__toESM4(__require("path")),import_core_common2=require_dist8(),knownRenderers=["html","react","svelte","vue3","preact","server","vue","web-components","angular","ember"],knownBuilders=["builder-webpack5","builder-vite"];function findMatchingPackage(packageJson,suffixes){let{name="",version,dependencies,devDependencies,peerDependencies}=packageJson,allDependencies={[name]:version,...dependencies,...devDependencies,...peerDependencies};return suffixes.map(suffix=>`@storybook/${suffix}`).find(pkg=>allDependencies[pkg])}var getFrameworkPackageName=packageNameOrPath=>{let normalizedPath=import_path42.default.normalize(packageNameOrPath).replace(new RegExp(/\\/,"g"),"/");return Object.keys(import_core_common2.frameworkPackages).find(pkg=>normalizedPath.endsWith(pkg))||cleanPaths(packageNameOrPath).replace(/.*node_modules[\\/]/,"")};async function getFrameworkInfo(mainConfig){if(!mainConfig?.framework)return {};let rawName=typeof mainConfig.framework=="string"?mainConfig.framework:mainConfig.framework?.name;if(!rawName)return {};let frameworkPackageJson=await getActualPackageJson(rawName);if(!frameworkPackageJson)return {};let builder=findMatchingPackage(frameworkPackageJson,knownBuilders),renderer=findMatchingPackage(frameworkPackageJson,knownRenderers),sanitizedFrameworkName=getFrameworkPackageName(rawName),frameworkOptions=typeof mainConfig.framework=="object"?mainConfig.framework.options:{};return {framework:{name:sanitizedFrameworkName,options:frameworkOptions},builder,renderer}}function getChromaticVersionSpecifier(packageJson){return packageJson.dependencies?.chromatic||packageJson.devDependencies?.chromatic||packageJson.peerDependencies?.chromatic||(packageJson.scripts&&Object.values(packageJson.scripts).find(s23=>s23?.match(/chromatic/))?"latest":void 0)}var metaFrameworks={next:"Next","react-scripts":"CRA",gatsby:"Gatsby","@nuxtjs/storybook":"nuxt","@nrwl/storybook":"nx","@vue/cli-service":"vue-cli","@sveltejs/kit":"sveltekit"},sanitizeAddonName=name=>cleanPaths(name).replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,""),computeStorybookMetadata=async({packageJson,mainConfig})=>{let metadata={generatedAt:new Date().getTime(),hasCustomBabel:!1,hasCustomWebpack:!1,hasStaticDirs:!1,hasStorybookEslint:!1,refCount:0},allDependencies={...packageJson?.dependencies,...packageJson?.devDependencies,...packageJson?.peerDependencies},metaFramework=Object.keys(allDependencies).find(dep=>!!metaFrameworks[dep]);if(metaFramework){let{version}=await getActualPackageVersion(metaFramework);metadata.metaFramework={name:metaFrameworks[metaFramework],packageName:metaFramework,version};}let testPackages=["playwright","vitest","jest","cypress","nightwatch","webdriver","@web/test-runner","puppeteer","karma","jasmine","chai","testing-library","@ngneat/spectator","wdio","msw","miragejs","sinon"],testPackageDeps=Object.keys(allDependencies).filter(dep=>testPackages.find(pkg=>dep.includes(pkg)));metadata.testPackages=Object.fromEntries(await Promise.all(testPackageDeps.map(async dep=>[dep,(await getActualPackageVersion(dep))?.version])));let monorepoType=getMonorepoType();monorepoType&&(metadata.monorepo=monorepoType);try{let packageManagerType=await(0,import_detect_package_manager.detect)({cwd:(0,import_core_common3.getProjectRoot)()}),packageManagerVersion=await(0,import_detect_package_manager.getNpmVersion)(packageManagerType);metadata.packageManager={type:packageManagerType,version:packageManagerVersion};}catch{}metadata.hasCustomBabel=!!mainConfig.babel,metadata.hasCustomWebpack=!!mainConfig.webpackFinal,metadata.hasStaticDirs=!!mainConfig.staticDirs,typeof mainConfig.typescript=="object"&&(metadata.typescriptOptions=mainConfig.typescript);let frameworkInfo=await getFrameworkInfo(mainConfig);typeof mainConfig.refs=="object"&&(metadata.refCount=Object.keys(mainConfig.refs).length),typeof mainConfig.features=="object"&&(metadata.features=mainConfig.features);let addons={};mainConfig.addons&&mainConfig.addons.forEach(addon=>{let addonName,options9;typeof addon=="string"?addonName=sanitizeAddonName(addon):(addon.name.includes("addon-essentials")&&(options9=addon.options),addonName=sanitizeAddonName(addon.name)),addons[addonName]={options:options9,version:void 0};});let chromaticVersionSpecifier=getChromaticVersionSpecifier(packageJson);chromaticVersionSpecifier&&(addons.chromatic={version:void 0,versionSpecifier:chromaticVersionSpecifier,options:void 0}),(await getActualPackageVersions(addons)).forEach(({name,version})=>{addons[name].version=version;});let addonNames=Object.keys(addons),storybookPackages=Object.keys(allDependencies).filter(dep=>dep.includes("storybook")&&!addonNames.includes(dep)).reduce((acc,dep)=>({...acc,[dep]:{version:void 0}}),{});(await getActualPackageVersions(storybookPackages)).forEach(({name,version})=>{storybookPackages[name].version=version;});let language=allDependencies.typescript?"typescript":"javascript",hasStorybookEslint=!!allDependencies["eslint-plugin-storybook"],storybookInfo=(0, import_core_common3.getStorybookInfo)(packageJson);try{let{previewConfig}=storybookInfo;if(previewConfig){let config=await(0,import_csf_tools.readConfig)(previewConfig),usesGlobals=!!(config.getFieldNode(["globals"])||config.getFieldNode(["globalTypes"]));metadata.preview={...metadata.preview,usesGlobals};}}catch{}let storybookVersion=storybookPackages[storybookInfo.frameworkPackage]?.version;return {...metadata,...frameworkInfo,storybookVersion,storybookVersionSpecifier:storybookInfo.version,language,storybookPackages,addons,hasStorybookEslint}},cachedMetadata,getStorybookMetadata=async _configDir=>{if(cachedMetadata)return cachedMetadata;let{packageJson={}}=import_read_pkg_up.default.sync({cwd:process.cwd(),normalize:!1})||{},configDir=(_configDir||(0, import_core_common3.getStorybookConfiguration)(packageJson?.scripts?.storybook||"","-c","--config-dir"))??".storybook",mainConfig=await(0, import_core_common3.loadMainConfig)({configDir});return cachedMetadata=await computeStorybookMetadata({mainConfig,packageJson}),cachedMetadata},os13=__toESM4(__require("os")),import_node_http2=__toESM4(__require("http"),1),import_node_https=__toESM4(__require("https"),1),import_node_zlib=__toESM4(__require("zlib"),1),import_node_stream2=__toESM4(__require("stream"),1),import_node_buffer2=__require("buffer");function dataUriToBuffer(uri){if(!/^data:/i.test(uri))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');uri=uri.replace(/\r?\n/g,"");let firstComma=uri.indexOf(",");if(firstComma===-1||firstComma<=4)throw new TypeError("malformed data: URI");let meta=uri.substring(5,firstComma).split(";"),charset="",base64=!1,type2=meta[0]||"text/plain",typeFull=type2;for(let i23=1;i23<meta.length;i23++)meta[i23]==="base64"?base64=!0:meta[i23]&&(typeFull+=`;${meta[i23]}`,meta[i23].indexOf("charset=")===0&&(charset=meta[i23].substring(8)));!meta[0]&&!charset.length&&(typeFull+=";charset=US-ASCII",charset="US-ASCII");let encoding=base64?"base64":"ascii",data=unescape(uri.substring(firstComma+1)),buffer2=Buffer.from(data,encoding);return buffer2.type=type2,buffer2.typeFull=typeFull,buffer2.charset=charset,buffer2}var dist_default2=dataUriToBuffer,import_node_stream3=__toESM4(__require("stream"),1),import_node_util2=__require("util"),import_node_buffer=__require("buffer");init_fetch_blob();init_esm_min();var FetchBaseError=class extends Error{constructor(message,type2){super(message),Error.captureStackTrace(this,this.constructor),this.type=type2;}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},FetchError2=class extends FetchBaseError{constructor(message,type2,systemError){super(message,type2),systemError&&(this.code=this.errno=systemError.code,this.erroredSysCall=systemError.syscall);}},NAME=Symbol.toStringTag,isURLSearchParameters=object=>typeof object=="object"&&typeof object.append=="function"&&typeof object.delete=="function"&&typeof object.get=="function"&&typeof object.getAll=="function"&&typeof object.has=="function"&&typeof object.set=="function"&&typeof object.sort=="function"&&object[NAME]==="URLSearchParams",isBlob2=object=>object&&typeof object=="object"&&typeof object.arrayBuffer=="function"&&typeof object.type=="string"&&typeof object.stream=="function"&&typeof object.constructor=="function"&&/^(Blob|File)$/.test(object[NAME]),isAbortSignal2=object=>typeof object=="object"&&(object[NAME]==="AbortSignal"||object[NAME]==="EventTarget"),isDomainOrSubdomain3=(destination,original)=>{let orig=new URL(original).hostname,dest=new URL(destination).hostname;return orig===dest||orig.endsWith(`.${dest}`)},isSameProtocol3=(destination,original)=>{let orig=new URL(original).protocol,dest=new URL(destination).protocol;return orig===dest},pipeline2=(0, import_node_util2.promisify)(import_node_stream3.default.pipeline),INTERNALS2=Symbol("Body internals"),Body2=class{constructor(body,{size=0}={}){let boundary=null;body===null?body=null:isURLSearchParameters(body)?body=import_node_buffer.Buffer.from(body.toString()):isBlob2(body)||import_node_buffer.Buffer.isBuffer(body)||(import_node_util2.types.isAnyArrayBuffer(body)?body=import_node_buffer.Buffer.from(body):ArrayBuffer.isView(body)?body=import_node_buffer.Buffer.from(body.buffer,body.byteOffset,body.byteLength):body instanceof import_node_stream3.default||(body instanceof FormData?(body=formDataToBlob(body),boundary=body.type.split("=")[1]):body=import_node_buffer.Buffer.from(String(body))));let stream2=body;import_node_buffer.Buffer.isBuffer(body)?stream2=import_node_stream3.default.Readable.from(body):isBlob2(body)&&(stream2=import_node_stream3.default.Readable.from(body.stream())),this[INTERNALS2]={body,stream:stream2,boundary,disturbed:!1,error:null},this.size=size,body instanceof import_node_stream3.default&&body.on("error",error_=>{let error=error_ instanceof FetchBaseError?error_:new FetchError2(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`,"system",error_);this[INTERNALS2].error=error;});}get body(){return this[INTERNALS2].stream}get bodyUsed(){return this[INTERNALS2].disturbed}async arrayBuffer(){let{buffer:buffer2,byteOffset,byteLength}=await consumeBody2(this);return buffer2.slice(byteOffset,byteOffset+byteLength)}async formData(){let ct14=this.headers.get("content-type");if(ct14.startsWith("application/x-www-form-urlencoded")){let formData=new FormData,parameters=new URLSearchParams(await this.text());for(let[name,value]of parameters)formData.append(name,value);return formData}let{toFormData:toFormData2}=await Promise.resolve().then(()=>(init_multipart_parser(),multipart_parser_exports));return toFormData2(this.body,ct14)}async blob(){let ct14=this.headers&&this.headers.get("content-type")||this[INTERNALS2].body&&this[INTERNALS2].body.type||"",buf=await this.arrayBuffer();return new fetch_blob_default([buf],{type:ct14})}async json(){let text=await this.text();return JSON.parse(text)}async text(){let buffer2=await consumeBody2(this);return new TextDecoder().decode(buffer2)}buffer(){return consumeBody2(this)}};Body2.prototype.buffer=(0, import_node_util2.deprecate)(Body2.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(Body2.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0, import_node_util2.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function consumeBody2(data){if(data[INTERNALS2].disturbed)throw new TypeError(`body used already for: ${data.url}`);if(data[INTERNALS2].disturbed=!0,data[INTERNALS2].error)throw data[INTERNALS2].error;let{body}=data;if(body===null||!(body instanceof import_node_stream3.default))return import_node_buffer.Buffer.alloc(0);let accum=[],accumBytes=0;try{for await(let chunk of body){if(data.size>0&&accumBytes+chunk.length>data.size){let error=new FetchError2(`content size at ${data.url} over limit: ${data.size}`,"max-size");throw body.destroy(error),error}accumBytes+=chunk.length,accum.push(chunk);}}catch(error){throw error instanceof FetchBaseError?error:new FetchError2(`Invalid response body while trying to fetch ${data.url}: ${error.message}`,"system",error)}if(body.readableEnded===!0||body._readableState.ended===!0)try{return accum.every(c8=>typeof c8=="string")?import_node_buffer.Buffer.from(accum.join("")):import_node_buffer.Buffer.concat(accum,accumBytes)}catch(error){throw new FetchError2(`Could not create Buffer from response body for ${data.url}: ${error.message}`,"system",error)}else throw new FetchError2(`Premature close of server response while trying to fetch ${data.url}`)}var clone2=(instance2,highWaterMark)=>{let p13,p23,{body}=instance2[INTERNALS2];if(instance2.bodyUsed)throw new Error("cannot clone body after it is used");return body instanceof import_node_stream3.default&&typeof body.getBoundary!="function"&&(p13=new import_node_stream3.PassThrough({highWaterMark}),p23=new import_node_stream3.PassThrough({highWaterMark}),body.pipe(p13),body.pipe(p23),instance2[INTERNALS2].stream=p13,body=p23),body},getNonSpecFormDataBoundary=(0, import_node_util2.deprecate)(body=>body.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),extractContentType2=(body,request)=>body===null?null:typeof body=="string"?"text/plain;charset=UTF-8":isURLSearchParameters(body)?"application/x-www-form-urlencoded;charset=UTF-8":isBlob2(body)?body.type||null:import_node_buffer.Buffer.isBuffer(body)||import_node_util2.types.isAnyArrayBuffer(body)||ArrayBuffer.isView(body)?null:body instanceof FormData?`multipart/form-data; boundary=${request[INTERNALS2].boundary}`:body&&typeof body.getBoundary=="function"?`multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`:body instanceof import_node_stream3.default?null:"text/plain;charset=UTF-8",getTotalBytes2=request=>{let{body}=request[INTERNALS2];return body===null?0:isBlob2(body)?body.size:import_node_buffer.Buffer.isBuffer(body)?body.length:body&&typeof body.getLengthSync=="function"&&body.hasKnownLength&&body.hasKnownLength()?body.getLengthSync():null},writeToStream2=async(dest,{body})=>{body===null?dest.end():await pipeline2(body,dest);},import_node_util22=__require("util"),import_node_http=__toESM4(__require("http"),1),validateHeaderName=typeof import_node_http.default.validateHeaderName=="function"?import_node_http.default.validateHeaderName:name=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(name)){let error=new TypeError(`Header name must be a valid HTTP token [${name}]`);throw Object.defineProperty(error,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),error}},validateHeaderValue=typeof import_node_http.default.validateHeaderValue=="function"?import_node_http.default.validateHeaderValue:(name,value)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(value)){let error=new TypeError(`Invalid character in header content ["${name}"]`);throw Object.defineProperty(error,"code",{value:"ERR_INVALID_CHAR"}),error}},Headers2=class _Headers extends URLSearchParams{constructor(init){let result=[];if(init instanceof _Headers){let raw=init.raw();for(let[name,values]of Object.entries(raw))result.push(...values.map(value=>[name,value]));}else if(init!=null)if(typeof init=="object"&&!import_node_util22.types.isBoxedPrimitive(init)){let method=init[Symbol.iterator];if(method==null)result.push(...Object.entries(init));else {if(typeof method!="function")throw new TypeError("Header pairs must be iterable");result=[...init].map(pair=>{if(typeof pair!="object"||import_node_util22.types.isBoxedPrimitive(pair))throw new TypeError("Each header pair must be an iterable object");return [...pair]}).map(pair=>{if(pair.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return [...pair]});}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return result=result.length>0?result.map(([name,value])=>(validateHeaderName(name),validateHeaderValue(name,String(value)),[String(name).toLowerCase(),String(value)])):void 0,super(result),new Proxy(this,{get(target,p7,receiver){switch(p7){case"append":case"set":return (name,value)=>(validateHeaderName(name),validateHeaderValue(name,String(value)),URLSearchParams.prototype[p7].call(target,String(name).toLowerCase(),String(value)));case"delete":case"has":case"getAll":return name=>(validateHeaderName(name),URLSearchParams.prototype[p7].call(target,String(name).toLowerCase()));case"keys":return ()=>(target.sort(),new Set(URLSearchParams.prototype.keys.call(target)).keys());default:return Reflect.get(target,p7,receiver)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(name){let values=this.getAll(name);if(values.length===0)return null;let value=values.join(", ");return /^content-encoding$/i.test(name)&&(value=value.toLowerCase()),value}forEach(callback,thisArg=void 0){for(let name of this.keys())Reflect.apply(callback,thisArg,[this.get(name),name,this]);}*values(){for(let name of this.keys())yield this.get(name);}*entries(){for(let name of this.keys())yield [name,this.get(name)];}[Symbol.iterator](){return this.entries()}raw(){return [...this.keys()].reduce((result,key2)=>(result[key2]=this.getAll(key2),result),{})}[Symbol.for("nodejs.util.inspect.custom")](){return [...this.keys()].reduce((result,key2)=>{let values=this.getAll(key2);return key2==="host"?result[key2]=values[0]:result[key2]=values.length>1?values:values[0],result},{})}};Object.defineProperties(Headers2.prototype,["get","entries","forEach","values"].reduce((result,property)=>(result[property]={enumerable:!0},result),{}));function fromRawHeaders(headers=[]){return new Headers2(headers.reduce((result,value,index,array3)=>(index%2===0&&result.push(array3.slice(index,index+2)),result),[]).filter(([name,value])=>{try{return validateHeaderName(name),validateHeaderValue(name,String(value)),!0}catch{return !1}}))}var redirectStatus=new Set([301,302,303,307,308]),isRedirect=code=>redirectStatus.has(code),INTERNALS22=Symbol("Response internals"),Response2=class _Response extends Body2{constructor(body=null,options9={}){super(body,options9);let status=options9.status!=null?options9.status:200,headers=new Headers2(options9.headers);if(body!==null&&!headers.has("Content-Type")){let contentType=extractContentType2(body,this);contentType&&headers.append("Content-Type",contentType);}this[INTERNALS22]={type:"default",url:options9.url,status,statusText:options9.statusText||"",headers,counter:options9.counter,highWaterMark:options9.highWaterMark};}get type(){return this[INTERNALS22].type}get url(){return this[INTERNALS22].url||""}get status(){return this[INTERNALS22].status}get ok(){return this[INTERNALS22].status>=200&&this[INTERNALS22].status<300}get redirected(){return this[INTERNALS22].counter>0}get statusText(){return this[INTERNALS22].statusText}get headers(){return this[INTERNALS22].headers}get highWaterMark(){return this[INTERNALS22].highWaterMark}clone(){return new _Response(clone2(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(url3,status=302){if(!isRedirect(status))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new _Response(null,{headers:{location:new URL(url3).toString()},status})}static error(){let response=new _Response(null,{status:0,statusText:""});return response[INTERNALS22].type="error",response}static json(data=void 0,init={}){let body=JSON.stringify(data);if(body===void 0)throw new TypeError("data is not JSON serializable");let headers=new Headers2(init&&init.headers);return headers.has("content-type")||headers.set("content-type","application/json"),new _Response(body,{...init,headers})}get[Symbol.toStringTag](){return "Response"}};Object.defineProperties(Response2.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var import_node_url=__require("url"),import_node_util3=__require("util"),getSearch=parsedURL=>{if(parsedURL.search)return parsedURL.search;let lastOffset=parsedURL.href.length-1,hash=parsedURL.hash||(parsedURL.href[lastOffset]==="#"?"#":"");return parsedURL.href[lastOffset-hash.length]==="?"?"?":""},import_node_net=__require("net");function stripURLForUseAsAReferrer(url3,originOnly=!1){return url3==null||(url3=new URL(url3),/^(about|blob|data):$/.test(url3.protocol))?"no-referrer":(url3.username="",url3.password="",url3.hash="",originOnly&&(url3.pathname="",url3.search=""),url3)}var ReferrerPolicy=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),DEFAULT_REFERRER_POLICY="strict-origin-when-cross-origin";function validateReferrerPolicy(referrerPolicy){if(!ReferrerPolicy.has(referrerPolicy))throw new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);return referrerPolicy}function isOriginPotentiallyTrustworthy(url3){if(/^(http|ws)s:$/.test(url3.protocol))return !0;let hostIp=url3.host.replace(/(^\[)|(]$)/g,""),hostIPVersion=(0, import_node_net.isIP)(hostIp);return hostIPVersion===4&&/^127\./.test(hostIp)||hostIPVersion===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)?!0:url3.host==="localhost"||url3.host.endsWith(".localhost")?!1:url3.protocol==="file:"}function isUrlPotentiallyTrustworthy(url3){return /^about:(blank|srcdoc)$/.test(url3)||url3.protocol==="data:"||/^(blob|filesystem):$/.test(url3.protocol)?!0:isOriginPotentiallyTrustworthy(url3)}function determineRequestsReferrer(request,{referrerURLCallback,referrerOriginCallback}={}){if(request.referrer==="no-referrer"||request.referrerPolicy==="")return null;let policy=request.referrerPolicy;if(request.referrer==="about:client")return "no-referrer";let referrerSource=request.referrer,referrerURL=stripURLForUseAsAReferrer(referrerSource),referrerOrigin=stripURLForUseAsAReferrer(referrerSource,!0);referrerURL.toString().length>4096&&(referrerURL=referrerOrigin),referrerURLCallback&&(referrerURL=referrerURLCallback(referrerURL)),referrerOriginCallback&&(referrerOrigin=referrerOriginCallback(referrerOrigin));let currentURL=new URL(request.url);switch(policy){case"no-referrer":return "no-referrer";case"origin":return referrerOrigin;case"unsafe-url":return referrerURL;case"strict-origin":return isUrlPotentiallyTrustworthy(referrerURL)&&!isUrlPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin.toString();case"strict-origin-when-cross-origin":return referrerURL.origin===currentURL.origin?referrerURL:isUrlPotentiallyTrustworthy(referrerURL)&&!isUrlPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin;case"same-origin":return referrerURL.origin===currentURL.origin?referrerURL:"no-referrer";case"origin-when-cross-origin":return referrerURL.origin===currentURL.origin?referrerURL:referrerOrigin;case"no-referrer-when-downgrade":return isUrlPotentiallyTrustworthy(referrerURL)&&!isUrlPotentiallyTrustworthy(currentURL)?"no-referrer":referrerURL;default:throw new TypeError(`Invalid referrerPolicy: ${policy}`)}}function parseReferrerPolicyFromHeader(headers){let policyTokens=(headers.get("referrer-policy")||"").split(/[,\s]+/),policy="";for(let token2 of policyTokens)token2&&ReferrerPolicy.has(token2)&&(policy=token2);return policy}var INTERNALS3=Symbol("Request internals"),isRequest2=object=>typeof object=="object"&&typeof object[INTERNALS3]=="object",doBadDataWarn=(0, import_node_util3.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Request3=class _Request extends Body2{constructor(input,init={}){let parsedURL;if(isRequest2(input)?parsedURL=new URL(input.url):(parsedURL=new URL(input),input={}),parsedURL.username!==""||parsedURL.password!=="")throw new TypeError(`${parsedURL} is an url with embedded credentials.`);let method=init.method||input.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(method)&&(method=method.toUpperCase()),!isRequest2(init)&&"data"in init&&doBadDataWarn(),(init.body!=null||isRequest2(input)&&input.body!==null)&&(method==="GET"||method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let inputBody=init.body?init.body:isRequest2(input)&&input.body!==null?clone2(input):null;super(inputBody,{size:init.size||input.size||0});let headers=new Headers2(init.headers||input.headers||{});if(inputBody!==null&&!headers.has("Content-Type")){let contentType=extractContentType2(inputBody,this);contentType&&headers.set("Content-Type",contentType);}let signal=isRequest2(input)?input.signal:null;if("signal"in init&&(signal=init.signal),signal!=null&&!isAbortSignal2(signal))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let referrer=init.referrer==null?input.referrer:init.referrer;if(referrer==="")referrer="no-referrer";else if(referrer){let parsedReferrer=new URL(referrer);referrer=/^about:(\/\/)?client$/.test(parsedReferrer)?"client":parsedReferrer;}else referrer=void 0;this[INTERNALS3]={method,redirect:init.redirect||input.redirect||"follow",headers,parsedURL,signal,referrer},this.follow=init.follow===void 0?input.follow===void 0?20:input.follow:init.follow,this.compress=init.compress===void 0?input.compress===void 0?!0:input.compress:init.compress,this.counter=init.counter||input.counter||0,this.agent=init.agent||input.agent,this.highWaterMark=init.highWaterMark||input.highWaterMark||16384,this.insecureHTTPParser=init.insecureHTTPParser||input.insecureHTTPParser||!1,this.referrerPolicy=init.referrerPolicy||input.referrerPolicy||"";}get method(){return this[INTERNALS3].method}get url(){return (0, import_node_url.format)(this[INTERNALS3].parsedURL)}get headers(){return this[INTERNALS3].headers}get redirect(){return this[INTERNALS3].redirect}get signal(){return this[INTERNALS3].signal}get referrer(){if(this[INTERNALS3].referrer==="no-referrer")return "";if(this[INTERNALS3].referrer==="client")return "about:client";if(this[INTERNALS3].referrer)return this[INTERNALS3].referrer.toString()}get referrerPolicy(){return this[INTERNALS3].referrerPolicy}set referrerPolicy(referrerPolicy){this[INTERNALS3].referrerPolicy=validateReferrerPolicy(referrerPolicy);}clone(){return new _Request(this)}get[Symbol.toStringTag](){return "Request"}};Object.defineProperties(Request3.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var getNodeRequestOptions2=request=>{let{parsedURL}=request[INTERNALS3],headers=new Headers2(request[INTERNALS3].headers);headers.has("Accept")||headers.set("Accept","*/*");let contentLengthValue=null;if(request.body===null&&/^(post|put)$/i.test(request.method)&&(contentLengthValue="0"),request.body!==null){let totalBytes=getTotalBytes2(request);typeof totalBytes=="number"&&!Number.isNaN(totalBytes)&&(contentLengthValue=String(totalBytes));}contentLengthValue&&headers.set("Content-Length",contentLengthValue),request.referrerPolicy===""&&(request.referrerPolicy=DEFAULT_REFERRER_POLICY),request.referrer&&request.referrer!=="no-referrer"?request[INTERNALS3].referrer=determineRequestsReferrer(request):request[INTERNALS3].referrer="no-referrer",request[INTERNALS3].referrer instanceof URL&&headers.set("Referer",request.referrer),headers.has("User-Agent")||headers.set("User-Agent","node-fetch"),request.compress&&!headers.has("Accept-Encoding")&&headers.set("Accept-Encoding","gzip, deflate, br");let{agent}=request;typeof agent=="function"&&(agent=agent(parsedURL));let search=getSearch(parsedURL),options9={path:parsedURL.pathname+search,method:request.method,headers:headers[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:request.insecureHTTPParser,agent};return {parsedURL,options:options9}},AbortError2=class extends FetchBaseError{constructor(message,type2="aborted"){super(message,type2);}};init_esm_min();init_from();var supportedSchemas=new Set(["data:","http:","https:"]);async function fetch2(url3,options_){return new Promise((resolve4,reject)=>{let request=new Request3(url3,options_),{parsedURL,options:options9}=getNodeRequestOptions2(request);if(!supportedSchemas.has(parsedURL.protocol))throw new TypeError(`node-fetch cannot load ${url3}. URL scheme "${parsedURL.protocol.replace(/:$/,"")}" is not supported.`);if(parsedURL.protocol==="data:"){let data=dist_default2(request.url),response2=new Response2(data,{headers:{"Content-Type":data.typeFull}});resolve4(response2);return}let send=(parsedURL.protocol==="https:"?import_node_https.default:import_node_http2.default).request,{signal}=request,response=null,abort=()=>{let error=new AbortError2("The operation was aborted.");reject(error),request.body&&request.body instanceof import_node_stream2.default.Readable&&request.body.destroy(error),!(!response||!response.body)&&response.body.emit("error",error);};if(signal&&signal.aborted){abort();return}let abortAndFinalize=()=>{abort(),finalize();},request_=send(parsedURL.toString(),options9);signal&&signal.addEventListener("abort",abortAndFinalize);let finalize=()=>{request_.abort(),signal&&signal.removeEventListener("abort",abortAndFinalize);};request_.on("error",error=>{reject(new FetchError2(`request to ${request.url} failed, reason: ${error.message}`,"system",error)),finalize();}),fixResponseChunkedTransferBadEnding2(request_,error=>{response&&response.body&&response.body.destroy(error);}),process.version<"v14"&&request_.on("socket",s23=>{let endedWithEventsCount;s23.prependListener("end",()=>{endedWithEventsCount=s23._eventsCount;}),s23.prependListener("close",hadError=>{if(response&&endedWithEventsCount<s23._eventsCount&&!hadError){let error=new Error("Premature close");error.code="ERR_STREAM_PREMATURE_CLOSE",response.body.emit("error",error);}});}),request_.on("response",response_=>{request_.setTimeout(0);let headers=fromRawHeaders(response_.rawHeaders);if(isRedirect(response_.statusCode)){let location=headers.get("Location"),locationURL=null;try{locationURL=location===null?null:new URL(location,request.url);}catch{if(request.redirect!=="manual"){reject(new FetchError2(`uri requested responds with an invalid redirect URL: ${location}`,"invalid-redirect")),finalize();return}}switch(request.redirect){case"error":reject(new FetchError2(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`,"no-redirect")),finalize();return;case"manual":break;case"follow":{if(locationURL===null)break;if(request.counter>=request.follow){reject(new FetchError2(`maximum redirect reached at: ${request.url}`,"max-redirect")),finalize();return}let requestOptions={headers:new Headers2(request.headers),follow:request.follow,counter:request.counter+1,agent:request.agent,compress:request.compress,method:request.method,body:clone2(request),signal:request.signal,size:request.size,referrer:request.referrer,referrerPolicy:request.referrerPolicy};if(!isDomainOrSubdomain3(request.url,locationURL)||!isSameProtocol3(request.url,locationURL))for(let name of ["authorization","www-authenticate","cookie","cookie2"])requestOptions.headers.delete(name);if(response_.statusCode!==303&&request.body&&options_.body instanceof import_node_stream2.default.Readable){reject(new FetchError2("Cannot follow redirect with body being a readable stream","unsupported-redirect")),finalize();return}(response_.statusCode===303||(response_.statusCode===301||response_.statusCode===302)&&request.method==="POST")&&(requestOptions.method="GET",requestOptions.body=void 0,requestOptions.headers.delete("content-length"));let responseReferrerPolicy=parseReferrerPolicyFromHeader(headers);responseReferrerPolicy&&(requestOptions.referrerPolicy=responseReferrerPolicy),resolve4(fetch2(new Request3(locationURL,requestOptions))),finalize();return}default:return reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`))}}signal&&response_.once("end",()=>{signal.removeEventListener("abort",abortAndFinalize);});let body=(0, import_node_stream2.pipeline)(response_,new import_node_stream2.PassThrough,error=>{error&&reject(error);});process.version<"v12.10"&&response_.on("aborted",abortAndFinalize);let responseOptions={url:request.url,status:response_.statusCode,statusText:response_.statusMessage,headers,size:request.size,counter:request.counter,highWaterMark:request.highWaterMark},codings=headers.get("Content-Encoding");if(!request.compress||request.method==="HEAD"||codings===null||response_.statusCode===204||response_.statusCode===304){response=new Response2(body,responseOptions),resolve4(response);return}let zlibOptions={flush:import_node_zlib.default.Z_SYNC_FLUSH,finishFlush:import_node_zlib.default.Z_SYNC_FLUSH};if(codings==="gzip"||codings==="x-gzip"){body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createGunzip(zlibOptions),error=>{error&&reject(error);}),response=new Response2(body,responseOptions),resolve4(response);return}if(codings==="deflate"||codings==="x-deflate"){let raw=(0, import_node_stream2.pipeline)(response_,new import_node_stream2.PassThrough,error=>{error&&reject(error);});raw.once("data",chunk=>{(chunk[0]&15)===8?body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createInflate(),error=>{error&&reject(error);}):body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createInflateRaw(),error=>{error&&reject(error);}),response=new Response2(body,responseOptions),resolve4(response);}),raw.once("end",()=>{response||(response=new Response2(body,responseOptions),resolve4(response));});return}if(codings==="br"){body=(0, import_node_stream2.pipeline)(body,import_node_zlib.default.createBrotliDecompress(),error=>{error&&reject(error);}),response=new Response2(body,responseOptions),resolve4(response);return}response=new Response2(body,responseOptions),resolve4(response);}),writeToStream2(request_,request).catch(reject);})}function fixResponseChunkedTransferBadEnding2(request,errorCallback){let LAST_CHUNK=import_node_buffer2.Buffer.from(`0\r
1724
1724
  \r
1725
- `),isChunkedTransfer=!1,properLastChunkReceived=!1,previousChunk;request.on("response",response=>{let{headers}=response;isChunkedTransfer=headers["transfer-encoding"]==="chunked"&&!headers["content-length"];}),request.on("socket",socket=>{let onSocketClose=()=>{if(isChunkedTransfer&&!properLastChunkReceived){let error=new Error("Premature close");error.code="ERR_STREAM_PREMATURE_CLOSE",errorCallback(error);}},onData=buf=>{properLastChunkReceived=import_node_buffer2.Buffer.compare(buf.slice(-5),LAST_CHUNK)===0,!properLastChunkReceived&&previousChunk&&(properLastChunkReceived=import_node_buffer2.Buffer.compare(previousChunk.slice(-3),LAST_CHUNK.slice(0,3))===0&&import_node_buffer2.Buffer.compare(buf.slice(-2),LAST_CHUNK.slice(3))===0),previousChunk=buf;};socket.prependListener("close",onSocketClose),socket.on("data",onData),request.on("close",()=>{socket.removeListener("close",onSocketClose),socket.removeListener("data",onData);});});}var import_fetch_retry=__toESM4(require_fetch_retry()),import_crypto2=__require("crypto"),urlAlphabet="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",POOL_SIZE_MULTIPLIER=128,pool,poolOffset,fillPool=bytes=>{!pool||pool.length<bytes?(pool=Buffer.allocUnsafe(bytes*POOL_SIZE_MULTIPLIER),(0, import_crypto2.randomFillSync)(pool),poolOffset=0):poolOffset+bytes>pool.length&&((0, import_crypto2.randomFillSync)(pool),poolOffset=0),poolOffset+=bytes;},nanoid=(size=21)=>{fillPool(size-=0);let id2="";for(let i23=poolOffset-size;i23<poolOffset;i23++)id2+=urlAlphabet[pool[i23]&63];return id2},import_path52=__toESM4(__require("path")),import_child_process=__require("child_process"),import_core_common4=require_dist8(),import_crypto22=__require("crypto"),oneWayHash=payload=>{let hash=(0, import_crypto22.createHash)("sha256");return hash.update("storybook-telemetry-salt"),hash.update(payload),hash.digest("hex")};function normalizeGitUrl(rawUrl){return rawUrl.trim().replace(/#.*$/,"").replace(/^.*@/,"").replace(/^.*\/\//,"").replace(":","/")}var anonymousProjectId,getAnonymousProjectId=()=>{if(anonymousProjectId)return anonymousProjectId;let unhashedProjectId;try{let projectRoot=(0,import_core_common4.getProjectRoot)(),projectRootPath=import_path52.default.relative(projectRoot,process.cwd()),originBuffer=(0,import_child_process.execSync)("git config --local --get remote.origin.url",{timeout:1e3,stdio:"pipe"});unhashedProjectId=`${normalizeGitUrl(String(originBuffer))}${projectRootPath}`,anonymousProjectId=oneWayHash(unhashedProjectId);}catch{}return anonymousProjectId},import_core_common5=require_dist8(),operation=Promise.resolve(),setHelper=async(eventType,body)=>{let lastEvents=await import_core_common5.cache.get("lastEvents")||{};lastEvents[eventType]={body,timestamp:Date.now()},await import_core_common5.cache.set("lastEvents",lastEvents);},set2=async(eventType,body)=>(await operation,operation=setHelper(eventType,body),operation),upgradeFields=event=>{let{body,timestamp:timestamp2}=event;return {timestamp:timestamp2,eventType:body?.eventType,eventId:body?.eventId,sessionId:body?.sessionId}},UPGRADE_EVENTS=["init","upgrade"],RUN_EVENTS=["build","dev","error"],lastEvent=(lastEvents,eventTypes)=>{let descendingEvents=eventTypes.map(eventType=>lastEvents?.[eventType]).filter(Boolean).sort((a3,b15)=>b15.timestamp-a3.timestamp);return descendingEvents.length>0?descendingEvents[0]:void 0},getPrecedingUpgrade=async(events=void 0)=>{let lastEvents=events||await import_core_common5.cache.get("lastEvents")||{},lastUpgradeEvent=lastEvent(lastEvents,UPGRADE_EVENTS),lastRunEvent=lastEvent(lastEvents,RUN_EVENTS);if(lastUpgradeEvent)return !lastRunEvent?.timestamp||lastUpgradeEvent.timestamp>lastRunEvent.timestamp?upgradeFields(lastUpgradeEvent):void 0},import_core_common6=require_dist8(),SESSION_TIMEOUT=1e3*60*60*2,sessionId,getSessionId=async()=>{let now=Date.now();if(!sessionId){let session=await import_core_common6.cache.get("session");session&&session.lastUsed>=now-SESSION_TIMEOUT?sessionId=session.id:sessionId=nanoid();}return await import_core_common6.cache.set("session",{id:sessionId,lastUsed:now}),sessionId},URL24=process.env.STORYBOOK_TELEMETRY_URL||"https://storybook.js.org/event-log",fetch22=(0, import_fetch_retry.default)(fetch2),tasks=[],addToGlobalContext=(key2,value)=>{globalContext[key2]=value;},getOperatingSystem=()=>{try{let platform2=os13.platform();return platform2==="win32"?"Windows":platform2==="darwin"?"macOS":platform2==="linux"?"Linux":`Other: ${platform2}`}catch{return "Unknown"}},globalContext={inCI:!!process.env.CI,isTTY:process.stdout.isTTY,platform:getOperatingSystem()},prepareRequest=async(data,context,options9)=>{let{eventType,payload,metadata,...rest}=data,sessionId2=await getSessionId(),eventId=nanoid(),body={...rest,eventType,eventId,sessionId:sessionId2,metadata,payload,context};return fetch22(URL24,{method:"POST",body:JSON.stringify(body),headers:{"Content-Type":"application/json"},retries:3,retryOn:[503,504],retryDelay:attempt=>2**attempt*(typeof options9?.retryDelay=="number"&&!Number.isNaN(options9?.retryDelay)?options9.retryDelay:1e3)})};async function sendTelemetry(data,options9={retryDelay:1e3,immediate:!1}){let{eventType,payload,metadata,...rest}=data,context=options9.stripMetadata?globalContext:{...globalContext,anonymousId:getAnonymousProjectId()},request;try{request=prepareRequest(data,context,options9),tasks.push(request),options9.immediate?await Promise.all(tasks):await request;let sessionId2=await getSessionId(),eventId=nanoid(),body={...rest,eventType,eventId,sessionId:sessionId2,metadata,payload,context};await set2(eventType,body);}catch{}finally{tasks=tasks.filter(task=>task!==request);}}var import_chalk=__toESM4(require_source()),import_core_common7=require_dist8(),TELEMETRY_KEY_NOTIFY_DATE="telemetry-notification-date",logger=console,notify=async()=>{await import_core_common7.cache.get(TELEMETRY_KEY_NOTIFY_DATE,null)||(import_core_common7.cache.set(TELEMETRY_KEY_NOTIFY_DATE,Date.now()),logger.log(),logger.log(`${import_chalk.default.magenta.bold("attention")} => Storybook now collects completely anonymous telemetry regarding usage.`),logger.log("This information is used to shape Storybook's roadmap and prioritize features."),logger.log("You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:"),logger.log(import_chalk.default.cyan("https://storybook.js.org/telemetry")),logger.log());},telemetry2=async(eventType,payload={},options9={})=>{eventType!=="boot"&&await notify();let telemetryData={eventType,payload};try{options9?.stripMetadata||(telemetryData.metadata=await getStorybookMetadata(options9?.configDir));}catch(error){telemetryData.payload.metadataErrorMessage=sanitizeError(error).message,options9?.enableCrashReports&&(telemetryData.payload.metadataError=sanitizeError(error));}finally{let{error}=telemetryData.payload;error&&(telemetryData.payload.error=sanitizeError(error)),(!telemetryData.payload.error||options9?.enableCrashReports)&&(process.env?.STORYBOOK_TELEMETRY_DEBUG&&(import_client_logger.logger.info(`
1725
+ `),isChunkedTransfer=!1,properLastChunkReceived=!1,previousChunk;request.on("response",response=>{let{headers}=response;isChunkedTransfer=headers["transfer-encoding"]==="chunked"&&!headers["content-length"];}),request.on("socket",socket=>{let onSocketClose=()=>{if(isChunkedTransfer&&!properLastChunkReceived){let error=new Error("Premature close");error.code="ERR_STREAM_PREMATURE_CLOSE",errorCallback(error);}},onData=buf=>{properLastChunkReceived=import_node_buffer2.Buffer.compare(buf.slice(-5),LAST_CHUNK)===0,!properLastChunkReceived&&previousChunk&&(properLastChunkReceived=import_node_buffer2.Buffer.compare(previousChunk.slice(-3),LAST_CHUNK.slice(0,3))===0&&import_node_buffer2.Buffer.compare(buf.slice(-2),LAST_CHUNK.slice(3))===0),previousChunk=buf;};socket.prependListener("close",onSocketClose),socket.on("data",onData),request.on("close",()=>{socket.removeListener("close",onSocketClose),socket.removeListener("data",onData);});});}var import_fetch_retry=__toESM4(require_fetch_retry()),import_crypto2=__require("crypto"),urlAlphabet="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",POOL_SIZE_MULTIPLIER=128,pool,poolOffset,fillPool=bytes=>{!pool||pool.length<bytes?(pool=Buffer.allocUnsafe(bytes*POOL_SIZE_MULTIPLIER),(0, import_crypto2.randomFillSync)(pool),poolOffset=0):poolOffset+bytes>pool.length&&((0, import_crypto2.randomFillSync)(pool),poolOffset=0),poolOffset+=bytes;},nanoid=(size=21)=>{fillPool(size-=0);let id2="";for(let i23=poolOffset-size;i23<poolOffset;i23++)id2+=urlAlphabet[pool[i23]&63];return id2},import_path52=__toESM4(__require("path")),import_child_process=__require("child_process"),import_core_common4=require_dist8(),import_crypto22=__require("crypto"),oneWayHash=payload=>{let hash=(0, import_crypto22.createHash)("sha256");return hash.update("storybook-telemetry-salt"),hash.update(payload),hash.digest("hex")};function normalizeGitUrl(rawUrl){return rawUrl.trim().replace(/#.*$/,"").replace(/^.*@/,"").replace(/^.*\/\//,"").replace(":","/")}var anonymousProjectId,getAnonymousProjectId=()=>{if(anonymousProjectId)return anonymousProjectId;let unhashedProjectId;try{let projectRoot=(0,import_core_common4.getProjectRoot)(),projectRootPath=import_path52.default.relative(projectRoot,process.cwd()),originBuffer=(0,import_child_process.execSync)("git config --local --get remote.origin.url",{timeout:1e3,stdio:"pipe"});unhashedProjectId=`${normalizeGitUrl(String(originBuffer))}${projectRootPath}`,anonymousProjectId=oneWayHash(unhashedProjectId);}catch{}return anonymousProjectId},import_core_common5=require_dist8(),operation=Promise.resolve(),setHelper=async(eventType,body)=>{let lastEvents=await import_core_common5.cache.get("lastEvents")||{};lastEvents[eventType]={body,timestamp:Date.now()},await import_core_common5.cache.set("lastEvents",lastEvents);},set2=async(eventType,body)=>(await operation,operation=setHelper(eventType,body),operation),upgradeFields=event=>{let{body,timestamp:timestamp2}=event;return {timestamp:timestamp2,eventType:body?.eventType,eventId:body?.eventId,sessionId:body?.sessionId}},UPGRADE_EVENTS=["init","upgrade"],RUN_EVENTS=["build","dev","error"],lastEvent=(lastEvents,eventTypes)=>{let descendingEvents=eventTypes.map(eventType=>lastEvents?.[eventType]).filter(Boolean).sort((a3,b15)=>b15.timestamp-a3.timestamp);return descendingEvents.length>0?descendingEvents[0]:void 0},getPrecedingUpgrade=async(events=void 0)=>{let lastEvents=events||await import_core_common5.cache.get("lastEvents")||{},lastUpgradeEvent=lastEvent(lastEvents,UPGRADE_EVENTS),lastRunEvent=lastEvent(lastEvents,RUN_EVENTS);if(lastUpgradeEvent)return !lastRunEvent?.timestamp||lastUpgradeEvent.timestamp>lastRunEvent.timestamp?upgradeFields(lastUpgradeEvent):void 0},import_core_common6=require_dist8(),SESSION_TIMEOUT=1e3*60*60*2,sessionId,getSessionId=async()=>{let now=Date.now();if(!sessionId){let session=await import_core_common6.cache.get("session");session&&session.lastUsed>=now-SESSION_TIMEOUT?sessionId=session.id:sessionId=nanoid();}return await import_core_common6.cache.set("session",{id:sessionId,lastUsed:now}),sessionId},URL24=process.env.STORYBOOK_TELEMETRY_URL||"https://storybook.js.org/event-log",fetch22=(0, import_fetch_retry.default)(fetch2),tasks=[],addToGlobalContext=(key2,value)=>{globalContext[key2]=value;},getOperatingSystem=()=>{try{let platform2=os13.platform();return platform2==="win32"?"Windows":platform2==="darwin"?"macOS":platform2==="linux"?"Linux":`Other: ${platform2}`}catch{return "Unknown"}},globalContext={inCI:!!process.env.CI,isTTY:process.stdout.isTTY,platform:getOperatingSystem(),nodeVersion:process.versions.node},prepareRequest=async(data,context,options9)=>{let{eventType,payload,metadata,...rest}=data,sessionId2=await getSessionId(),eventId=nanoid(),body={...rest,eventType,eventId,sessionId:sessionId2,metadata,payload,context};return fetch22(URL24,{method:"POST",body:JSON.stringify(body),headers:{"Content-Type":"application/json"},retries:3,retryOn:[503,504],retryDelay:attempt=>2**attempt*(typeof options9?.retryDelay=="number"&&!Number.isNaN(options9?.retryDelay)?options9.retryDelay:1e3)})};async function sendTelemetry(data,options9={retryDelay:1e3,immediate:!1}){let{eventType,payload,metadata,...rest}=data,context=options9.stripMetadata?globalContext:{...globalContext,anonymousId:getAnonymousProjectId()},request;try{request=prepareRequest(data,context,options9),tasks.push(request),options9.immediate?await Promise.all(tasks):await request;let sessionId2=await getSessionId(),eventId=nanoid(),body={...rest,eventType,eventId,sessionId:sessionId2,metadata,payload,context};await set2(eventType,body);}catch{}finally{tasks=tasks.filter(task=>task!==request);}}var import_chalk=__toESM4(require_source()),import_core_common7=require_dist8(),TELEMETRY_KEY_NOTIFY_DATE="telemetry-notification-date",logger=console,notify=async()=>{await import_core_common7.cache.get(TELEMETRY_KEY_NOTIFY_DATE,null)||(import_core_common7.cache.set(TELEMETRY_KEY_NOTIFY_DATE,Date.now()),logger.log(),logger.log(`${import_chalk.default.magenta.bold("attention")} => Storybook now collects completely anonymous telemetry regarding usage.`),logger.log("This information is used to shape Storybook's roadmap and prioritize features."),logger.log("You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:"),logger.log(import_chalk.default.cyan("https://storybook.js.org/telemetry")),logger.log());},telemetry2=async(eventType,payload={},options9={})=>{eventType!=="boot"&&await notify();let telemetryData={eventType,payload};try{options9?.stripMetadata||(telemetryData.metadata=await getStorybookMetadata(options9?.configDir));}catch(error){telemetryData.payload.metadataErrorMessage=sanitizeError(error).message,options9?.enableCrashReports&&(telemetryData.payload.metadataError=sanitizeError(error));}finally{let{error}=telemetryData.payload;error&&(telemetryData.payload.error=sanitizeError(error)),(!telemetryData.payload.error||options9?.enableCrashReports)&&(process.env?.STORYBOOK_TELEMETRY_DEBUG&&(import_client_logger.logger.info(`
1726
1726
  [telemetry]`),import_client_logger.logger.info(JSON.stringify(telemetryData,null,2))),await sendTelemetry(telemetryData,options9));}};}});var STORYBOOK_ADDON_ONBOARDING_CHANNEL="STORYBOOK_ADDON_ONBOARDING_CHANNEL";var import_telemetry=__toESM(require_dist9());var experimental_serverChannel=async(channel,options9)=>{let{disableTelemetry}=await options9.presets.apply("core",{});if(!disableTelemetry){let packageJsonPath=__require.resolve("@storybook/addon-onboarding/package.json"),{version:addonVersion}=JSON.parse(fs2__default.default.readFileSync(packageJsonPath,{encoding:"utf-8"}));channel.on(STORYBOOK_ADDON_ONBOARDING_CHANNEL,({type:type2,...event})=>{type2==="telemetry"&&(0, import_telemetry.telemetry)("addon-onboarding",{...event,addonVersion});});}return channel};
1727
1727
 
1728
1728
  exports.experimental_serverChannel = experimental_serverChannel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-onboarding",
3
- "version": "8.1.10",
3
+ "version": "8.1.11",
4
4
  "description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
5
5
  "keywords": [
6
6
  "storybook-addons",
@@ -50,16 +50,16 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@radix-ui/react-dialog": "^1.0.5",
53
- "@storybook/channels": "8.1.10",
54
- "@storybook/components": "8.1.10",
55
- "@storybook/core-events": "8.1.10",
53
+ "@storybook/channels": "8.1.11",
54
+ "@storybook/components": "8.1.11",
55
+ "@storybook/core-events": "8.1.11",
56
56
  "@storybook/icons": "^1.2.5",
57
- "@storybook/manager-api": "8.1.10",
58
- "@storybook/react": "8.1.10",
59
- "@storybook/telemetry": "8.1.10",
60
- "@storybook/test": "8.1.10",
61
- "@storybook/theming": "8.1.10",
62
- "@storybook/types": "8.1.10",
57
+ "@storybook/manager-api": "8.1.11",
58
+ "@storybook/react": "8.1.11",
59
+ "@storybook/telemetry": "8.1.11",
60
+ "@storybook/test": "8.1.11",
61
+ "@storybook/theming": "8.1.11",
62
+ "@storybook/types": "8.1.11",
63
63
  "framer-motion": "^11.0.3",
64
64
  "react": "^18.2.0",
65
65
  "react-dom": "^18.2.0",