@storybook/cli 8.6.0-alpha.4 → 8.6.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,59 +1,61 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var require_picocolors=__commonJS({"../../node_modules/picocolors/picocolors.js"(exports2,module2){"use strict";var p=process||{},argv=p.argv||[],env2=p.env||{},isColorSupported=!(env2.NO_COLOR||argv.includes("--no-color"))&&(!!env2.FORCE_COLOR||argv.includes("--color")||p.platform==="win32"||(p.stdout||{}).isTTY&&env2.TERM!=="dumb"||!!env2.CI),formatter=(open,close,replace=open)=>input=>{let string=""+input,index=string.indexOf(close,open.length);return~index?open+replaceClose(string,close,replace,index)+close:open+string+close},replaceClose=(string,close,replace,index)=>{let result="",cursor=0;do result+=string.substring(cursor,index)+replace,cursor=index+close.length,index=string.indexOf(close,cursor);while(~index);return result+string.substring(cursor)},createColors=(enabled=isColorSupported)=>{let f=enabled?formatter:()=>String;return{isColorSupported:enabled,reset:f("\x1B[0m","\x1B[0m"),bold:f("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:f("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:f("\x1B[3m","\x1B[23m"),underline:f("\x1B[4m","\x1B[24m"),inverse:f("\x1B[7m","\x1B[27m"),hidden:f("\x1B[8m","\x1B[28m"),strikethrough:f("\x1B[9m","\x1B[29m"),black:f("\x1B[30m","\x1B[39m"),red:f("\x1B[31m","\x1B[39m"),green:f("\x1B[32m","\x1B[39m"),yellow:f("\x1B[33m","\x1B[39m"),blue:f("\x1B[34m","\x1B[39m"),magenta:f("\x1B[35m","\x1B[39m"),cyan:f("\x1B[36m","\x1B[39m"),white:f("\x1B[37m","\x1B[39m"),gray:f("\x1B[90m","\x1B[39m"),bgBlack:f("\x1B[40m","\x1B[49m"),bgRed:f("\x1B[41m","\x1B[49m"),bgGreen:f("\x1B[42m","\x1B[49m"),bgYellow:f("\x1B[43m","\x1B[49m"),bgBlue:f("\x1B[44m","\x1B[49m"),bgMagenta:f("\x1B[45m","\x1B[49m"),bgCyan:f("\x1B[46m","\x1B[49m"),bgWhite:f("\x1B[47m","\x1B[49m"),blackBright:f("\x1B[90m","\x1B[39m"),redBright:f("\x1B[91m","\x1B[39m"),greenBright:f("\x1B[92m","\x1B[39m"),yellowBright:f("\x1B[93m","\x1B[39m"),blueBright:f("\x1B[94m","\x1B[39m"),magentaBright:f("\x1B[95m","\x1B[39m"),cyanBright:f("\x1B[96m","\x1B[39m"),whiteBright:f("\x1B[97m","\x1B[39m"),bgBlackBright:f("\x1B[100m","\x1B[49m"),bgRedBright:f("\x1B[101m","\x1B[49m"),bgGreenBright:f("\x1B[102m","\x1B[49m"),bgYellowBright:f("\x1B[103m","\x1B[49m"),bgBlueBright:f("\x1B[104m","\x1B[49m"),bgMagentaBright:f("\x1B[105m","\x1B[49m"),bgCyanBright:f("\x1B[106m","\x1B[49m"),bgWhiteBright:f("\x1B[107m","\x1B[49m")}};module2.exports=createColors();module2.exports.createColors=createColors}});var require_eastasianwidth=__commonJS({"../../node_modules/eastasianwidth/eastasianwidth.js"(exports2,module2){"use strict";var eaw={};typeof module2>"u"?window.eastasianwidth=eaw:module2.exports=eaw;eaw.eastAsianWidth=function(character){var x=character.charCodeAt(0),y=character.length==2?character.charCodeAt(1):0,codePoint=x;return 55296<=x&&x<=56319&&56320<=y&&y<=57343&&(x&=1023,y&=1023,codePoint=x<<10|y,codePoint+=65536),codePoint==12288||65281<=codePoint&&codePoint<=65376||65504<=codePoint&&codePoint<=65510?"F":codePoint==8361||65377<=codePoint&&codePoint<=65470||65474<=codePoint&&codePoint<=65479||65482<=codePoint&&codePoint<=65487||65490<=codePoint&&codePoint<=65495||65498<=codePoint&&codePoint<=65500||65512<=codePoint&&codePoint<=65518?"H":4352<=codePoint&&codePoint<=4447||4515<=codePoint&&codePoint<=4519||4602<=codePoint&&codePoint<=4607||9001<=codePoint&&codePoint<=9002||11904<=codePoint&&codePoint<=11929||11931<=codePoint&&codePoint<=12019||12032<=codePoint&&codePoint<=12245||12272<=codePoint&&codePoint<=12283||12289<=codePoint&&codePoint<=12350||12353<=codePoint&&codePoint<=12438||12441<=codePoint&&codePoint<=12543||12549<=codePoint&&codePoint<=12589||12593<=codePoint&&codePoint<=12686||12688<=codePoint&&codePoint<=12730||12736<=codePoint&&codePoint<=12771||12784<=codePoint&&codePoint<=12830||12832<=codePoint&&codePoint<=12871||12880<=codePoint&&codePoint<=13054||13056<=codePoint&&codePoint<=19903||19968<=codePoint&&codePoint<=42124||42128<=codePoint&&codePoint<=42182||43360<=codePoint&&codePoint<=43388||44032<=codePoint&&codePoint<=55203||55216<=codePoint&&codePoint<=55238||55243<=codePoint&&codePoint<=55291||63744<=codePoint&&codePoint<=64255||65040<=codePoint&&codePoint<=65049||65072<=codePoint&&codePoint<=65106||65108<=codePoint&&codePoint<=65126||65128<=codePoint&&codePoint<=65131||110592<=codePoint&&codePoint<=110593||127488<=codePoint&&codePoint<=127490||127504<=codePoint&&codePoint<=127546||127552<=codePoint&&codePoint<=127560||127568<=codePoint&&codePoint<=127569||131072<=codePoint&&codePoint<=194367||177984<=codePoint&&codePoint<=196605||196608<=codePoint&&codePoint<=262141?"W":32<=codePoint&&codePoint<=126||162<=codePoint&&codePoint<=163||165<=codePoint&&codePoint<=166||codePoint==172||codePoint==175||10214<=codePoint&&codePoint<=10221||10629<=codePoint&&codePoint<=10630?"Na":codePoint==161||codePoint==164||167<=codePoint&&codePoint<=168||codePoint==170||173<=codePoint&&codePoint<=174||176<=codePoint&&codePoint<=180||182<=codePoint&&codePoint<=186||188<=codePoint&&codePoint<=191||codePoint==198||codePoint==208||215<=codePoint&&codePoint<=216||222<=codePoint&&codePoint<=225||codePoint==230||232<=codePoint&&codePoint<=234||236<=codePoint&&codePoint<=237||codePoint==240||242<=codePoint&&codePoint<=243||247<=codePoint&&codePoint<=250||codePoint==252||codePoint==254||codePoint==257||codePoint==273||codePoint==275||codePoint==283||294<=codePoint&&codePoint<=295||codePoint==299||305<=codePoint&&codePoint<=307||codePoint==312||319<=codePoint&&codePoint<=322||codePoint==324||328<=codePoint&&codePoint<=331||codePoint==333||338<=codePoint&&codePoint<=339||358<=codePoint&&codePoint<=359||codePoint==363||codePoint==462||codePoint==464||codePoint==466||codePoint==468||codePoint==470||codePoint==472||codePoint==474||codePoint==476||codePoint==593||codePoint==609||codePoint==708||codePoint==711||713<=codePoint&&codePoint<=715||codePoint==717||codePoint==720||728<=codePoint&&codePoint<=731||codePoint==733||codePoint==735||768<=codePoint&&codePoint<=879||913<=codePoint&&codePoint<=929||931<=codePoint&&codePoint<=937||945<=codePoint&&codePoint<=961||963<=codePoint&&codePoint<=969||codePoint==1025||1040<=codePoint&&codePoint<=1103||codePoint==1105||codePoint==8208||8211<=codePoint&&codePoint<=8214||8216<=codePoint&&codePoint<=8217||8220<=codePoint&&codePoint<=8221||8224<=codePoint&&codePoint<=8226||8228<=codePoint&&codePoint<=8231||codePoint==8240||8242<=codePoint&&codePoint<=8243||codePoint==8245||codePoint==8251||codePoint==8254||codePoint==8308||codePoint==8319||8321<=codePoint&&codePoint<=8324||codePoint==8364||codePoint==8451||codePoint==8453||codePoint==8457||codePoint==8467||codePoint==8470||8481<=codePoint&&codePoint<=8482||codePoint==8486||codePoint==8491||8531<=codePoint&&codePoint<=8532||8539<=codePoint&&codePoint<=8542||8544<=codePoint&&codePoint<=8555||8560<=codePoint&&codePoint<=8569||codePoint==8585||8592<=codePoint&&codePoint<=8601||8632<=codePoint&&codePoint<=8633||codePoint==8658||codePoint==8660||codePoint==8679||codePoint==8704||8706<=codePoint&&codePoint<=8707||8711<=codePoint&&codePoint<=8712||codePoint==8715||codePoint==8719||codePoint==8721||codePoint==8725||codePoint==8730||8733<=codePoint&&codePoint<=8736||codePoint==8739||codePoint==8741||8743<=codePoint&&codePoint<=8748||codePoint==8750||8756<=codePoint&&codePoint<=8759||8764<=codePoint&&codePoint<=8765||codePoint==8776||codePoint==8780||codePoint==8786||8800<=codePoint&&codePoint<=8801||8804<=codePoint&&codePoint<=8807||8810<=codePoint&&codePoint<=8811||8814<=codePoint&&codePoint<=8815||8834<=codePoint&&codePoint<=8835||8838<=codePoint&&codePoint<=8839||codePoint==8853||codePoint==8857||codePoint==8869||codePoint==8895||codePoint==8978||9312<=codePoint&&codePoint<=9449||9451<=codePoint&&codePoint<=9547||9552<=codePoint&&codePoint<=9587||9600<=codePoint&&codePoint<=9615||9618<=codePoint&&codePoint<=9621||9632<=codePoint&&codePoint<=9633||9635<=codePoint&&codePoint<=9641||9650<=codePoint&&codePoint<=9651||9654<=codePoint&&codePoint<=9655||9660<=codePoint&&codePoint<=9661||9664<=codePoint&&codePoint<=9665||9670<=codePoint&&codePoint<=9672||codePoint==9675||9678<=codePoint&&codePoint<=9681||9698<=codePoint&&codePoint<=9701||codePoint==9711||9733<=codePoint&&codePoint<=9734||codePoint==9737||9742<=codePoint&&codePoint<=9743||9748<=codePoint&&codePoint<=9749||codePoint==9756||codePoint==9758||codePoint==9792||codePoint==9794||9824<=codePoint&&codePoint<=9825||9827<=codePoint&&codePoint<=9829||9831<=codePoint&&codePoint<=9834||9836<=codePoint&&codePoint<=9837||codePoint==9839||9886<=codePoint&&codePoint<=9887||9918<=codePoint&&codePoint<=9919||9924<=codePoint&&codePoint<=9933||9935<=codePoint&&codePoint<=9953||codePoint==9955||9960<=codePoint&&codePoint<=9983||codePoint==10045||codePoint==10071||10102<=codePoint&&codePoint<=10111||11093<=codePoint&&codePoint<=11097||12872<=codePoint&&codePoint<=12879||57344<=codePoint&&codePoint<=63743||65024<=codePoint&&codePoint<=65039||codePoint==65533||127232<=codePoint&&codePoint<=127242||127248<=codePoint&&codePoint<=127277||127280<=codePoint&&codePoint<=127337||127344<=codePoint&&codePoint<=127386||917760<=codePoint&&codePoint<=917999||983040<=codePoint&&codePoint<=1048573||1048576<=codePoint&&codePoint<=1114109?"A":"N"};eaw.characterLength=function(character){var code=this.eastAsianWidth(character);return code=="F"||code=="W"||code=="A"?2:1};function stringToArray(string){return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}eaw.length=function(string){for(var characters=stringToArray(string),len=0,i=0;i<characters.length;i++)len=len+this.characterLength(characters[i]);return len};eaw.slice=function(text,start,end){textLen=eaw.length(text),start=start||0,end=end||1,start<0&&(start=textLen+start),end<0&&(end=textLen+end);for(var result="",eawLen=0,chars=stringToArray(text),i=0;i<chars.length;i++){var char=chars[i],charLen=eaw.length(char);if(eawLen>=start-(charLen==2?1:0))if(eawLen+charLen<=end)result+=char;else break;eawLen+=charLen}return result}}});var require_emoji_regex=__commonJS({"../../node_modules/emoji-regex/index.js"(exports2,module2){"use strict";module2.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}});var require_boxes=__commonJS({"../../node_modules/cli-boxes/boxes.json"(exports2,module2){module2.exports={single:{topLeft:"\u250C",top:"\u2500",topRight:"\u2510",right:"\u2502",bottomRight:"\u2518",bottom:"\u2500",bottomLeft:"\u2514",left:"\u2502"},double:{topLeft:"\u2554",top:"\u2550",topRight:"\u2557",right:"\u2551",bottomRight:"\u255D",bottom:"\u2550",bottomLeft:"\u255A",left:"\u2551"},round:{topLeft:"\u256D",top:"\u2500",topRight:"\u256E",right:"\u2502",bottomRight:"\u256F",bottom:"\u2500",bottomLeft:"\u2570",left:"\u2502"},bold:{topLeft:"\u250F",top:"\u2501",topRight:"\u2513",right:"\u2503",bottomRight:"\u251B",bottom:"\u2501",bottomLeft:"\u2517",left:"\u2503"},singleDouble:{topLeft:"\u2553",top:"\u2500",topRight:"\u2556",right:"\u2551",bottomRight:"\u255C",bottom:"\u2500",bottomLeft:"\u2559",left:"\u2551"},doubleSingle:{topLeft:"\u2552",top:"\u2550",topRight:"\u2555",right:"\u2502",bottomRight:"\u255B",bottom:"\u2550",bottomLeft:"\u2558",left:"\u2502"},classic:{topLeft:"+",top:"-",topRight:"+",right:"|",bottomRight:"+",bottom:"-",bottomLeft:"+",left:"|"},arrow:{topLeft:"\u2198",top:"\u2193",topRight:"\u2199",right:"\u2190",bottomRight:"\u2196",bottom:"\u2191",bottomLeft:"\u2197",left:"\u2192"}}}});var require_cli_boxes=__commonJS({"../../node_modules/cli-boxes/index.js"(exports2,module2){"use strict";var cliBoxes2=require_boxes();module2.exports=cliBoxes2;module2.exports.default=cliBoxes2}});var require_ansi_regex=__commonJS({"../../node_modules/string-width/node_modules/ansi-regex/index.js"(exports2,module2){"use strict";module2.exports=({onlyFirst=!1}={})=>{let pattern=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(pattern,onlyFirst?void 0:"g")}}});var require_strip_ansi=__commonJS({"../../node_modules/string-width/node_modules/strip-ansi/index.js"(exports2,module2){"use strict";var ansiRegex3=require_ansi_regex();module2.exports=string=>typeof string=="string"?string.replace(ansiRegex3(),""):string}});var require_is_fullwidth_code_point=__commonJS({"../../node_modules/is-fullwidth-code-point/index.js"(exports2,module2){"use strict";var isFullwidthCodePoint=codePoint=>Number.isNaN(codePoint)?!1:codePoint>=4352&&(codePoint<=4447||codePoint===9001||codePoint===9002||11904<=codePoint&&codePoint<=12871&&codePoint!==12351||12880<=codePoint&&codePoint<=19903||19968<=codePoint&&codePoint<=42182||43360<=codePoint&&codePoint<=43388||44032<=codePoint&&codePoint<=55203||63744<=codePoint&&codePoint<=64255||65040<=codePoint&&codePoint<=65049||65072<=codePoint&&codePoint<=65131||65281<=codePoint&&codePoint<=65376||65504<=codePoint&&codePoint<=65510||110592<=codePoint&&codePoint<=110593||127488<=codePoint&&codePoint<=127569||131072<=codePoint&&codePoint<=262141);module2.exports=isFullwidthCodePoint;module2.exports.default=isFullwidthCodePoint}});var require_emoji_regex2=__commonJS({"../../node_modules/string-width/node_modules/emoji-regex/index.js"(exports2,module2){"use strict";module2.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}});var require_string_width=__commonJS({"../../node_modules/string-width/index.js"(exports2,module2){"use strict";var stripAnsi2=require_strip_ansi(),isFullwidthCodePoint=require_is_fullwidth_code_point(),emojiRegex4=require_emoji_regex2(),stringWidth4=string=>{if(typeof string!="string"||string.length===0||(string=stripAnsi2(string),string.length===0))return 0;string=string.replace(emojiRegex4()," ");let width=0;for(let i=0;i<string.length;i++){let code=string.codePointAt(i);code<=31||code>=127&&code<=159||code>=768&&code<=879||(code>65535&&i++,width+=isFullwidthCodePoint(code)?2:1)}return width};module2.exports=stringWidth4;module2.exports.default=stringWidth4}});var require_ansi_align=__commonJS({"../../node_modules/ansi-align/index.js"(exports2,module2){"use strict";var stringWidth4=require_string_width();function ansiAlign2(text,opts){if(!text)return text;opts=opts||{};let align=opts.align||"center";if(align==="left")return text;let split=opts.split||`
2
- `,pad=opts.pad||" ",widthDiffFn=align!=="right"?halfDiff:fullDiff,returnString=!1;Array.isArray(text)||(returnString=!0,text=String(text).split(split));let width,maxWidth=0;return text=text.map(function(str){return str=String(str),width=stringWidth4(str),maxWidth=Math.max(width,maxWidth),{str,width}}).map(function(obj){return new Array(widthDiffFn(maxWidth,obj.width)+1).join(pad)+obj.str}),returnString?text.join(split):text}ansiAlign2.left=function(text){return ansiAlign2(text,{align:"left"})};ansiAlign2.center=function(text){return ansiAlign2(text,{align:"center"})};ansiAlign2.right=function(text){return ansiAlign2(text,{align:"right"})};module2.exports=ansiAlign2;function halfDiff(maxWidth,curWidth){return Math.floor((maxWidth-curWidth)/2)}function fullDiff(maxWidth,curWidth){return maxWidth-curWidth}}});var init_types=__esm({"src/autoblock/types.ts"(){"use strict"}});var block_storystorev6_exports={};__export(block_storystorev6_exports,{blocker:()=>blocker});var import_picocolors39,import_ts_dedent40,blocker,init_block_storystorev6=__esm({"src/autoblock/block-storystorev6.ts"(){"use strict";import_picocolors39=__toESM(require_picocolors(),1),import_ts_dedent40=require("ts-dedent");init_types();blocker={id:"storyStoreV7removal",async check({mainConfig}){let features=mainConfig?.features;return features===void 0?!1:!!Object.hasOwn(features,"storyStoreV7")},log(){return import_ts_dedent40.dedent`
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var require_picocolors=__commonJS({"../../node_modules/picocolors/picocolors.js"(exports2,module2){"use strict";var argv=process.argv||[],env2=process.env,isColorSupported=!("NO_COLOR"in env2||argv.includes("--no-color"))&&("FORCE_COLOR"in env2||argv.includes("--color")||process.platform==="win32"||require!=null&&require("tty").isatty(1)&&env2.TERM!=="dumb"||"CI"in env2),formatter=(open,close,replace=open)=>input=>{let string=""+input,index=string.indexOf(close,open.length);return~index?open+replaceClose(string,close,replace,index)+close:open+string+close},replaceClose=(string,close,replace,index)=>{let result="",cursor=0;do result+=string.substring(cursor,index)+replace,cursor=index+close.length,index=string.indexOf(close,cursor);while(~index);return result+string.substring(cursor)},createColors=(enabled=isColorSupported)=>{let init=enabled?formatter:()=>String;return{isColorSupported:enabled,reset:init("\x1B[0m","\x1B[0m"),bold:init("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:init("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:init("\x1B[3m","\x1B[23m"),underline:init("\x1B[4m","\x1B[24m"),inverse:init("\x1B[7m","\x1B[27m"),hidden:init("\x1B[8m","\x1B[28m"),strikethrough:init("\x1B[9m","\x1B[29m"),black:init("\x1B[30m","\x1B[39m"),red:init("\x1B[31m","\x1B[39m"),green:init("\x1B[32m","\x1B[39m"),yellow:init("\x1B[33m","\x1B[39m"),blue:init("\x1B[34m","\x1B[39m"),magenta:init("\x1B[35m","\x1B[39m"),cyan:init("\x1B[36m","\x1B[39m"),white:init("\x1B[37m","\x1B[39m"),gray:init("\x1B[90m","\x1B[39m"),bgBlack:init("\x1B[40m","\x1B[49m"),bgRed:init("\x1B[41m","\x1B[49m"),bgGreen:init("\x1B[42m","\x1B[49m"),bgYellow:init("\x1B[43m","\x1B[49m"),bgBlue:init("\x1B[44m","\x1B[49m"),bgMagenta:init("\x1B[45m","\x1B[49m"),bgCyan:init("\x1B[46m","\x1B[49m"),bgWhite:init("\x1B[47m","\x1B[49m"),blackBright:init("\x1B[90m","\x1B[39m"),redBright:init("\x1B[91m","\x1B[39m"),greenBright:init("\x1B[92m","\x1B[39m"),yellowBright:init("\x1B[93m","\x1B[39m"),blueBright:init("\x1B[94m","\x1B[39m"),magentaBright:init("\x1B[95m","\x1B[39m"),cyanBright:init("\x1B[96m","\x1B[39m"),whiteBright:init("\x1B[97m","\x1B[39m"),bgBlackBright:init("\x1B[100m","\x1B[49m"),bgRedBright:init("\x1B[101m","\x1B[49m"),bgGreenBright:init("\x1B[102m","\x1B[49m"),bgYellowBright:init("\x1B[103m","\x1B[49m"),bgBlueBright:init("\x1B[104m","\x1B[49m"),bgMagentaBright:init("\x1B[105m","\x1B[49m"),bgCyanBright:init("\x1B[106m","\x1B[49m"),bgWhiteBright:init("\x1B[107m","\x1B[49m")}};module2.exports=createColors();module2.exports.createColors=createColors}});var require_eastasianwidth=__commonJS({"../../node_modules/eastasianwidth/eastasianwidth.js"(exports2,module2){"use strict";var eaw={};typeof module2>"u"?window.eastasianwidth=eaw:module2.exports=eaw;eaw.eastAsianWidth=function(character){var x=character.charCodeAt(0),y=character.length==2?character.charCodeAt(1):0,codePoint=x;return 55296<=x&&x<=56319&&56320<=y&&y<=57343&&(x&=1023,y&=1023,codePoint=x<<10|y,codePoint+=65536),codePoint==12288||65281<=codePoint&&codePoint<=65376||65504<=codePoint&&codePoint<=65510?"F":codePoint==8361||65377<=codePoint&&codePoint<=65470||65474<=codePoint&&codePoint<=65479||65482<=codePoint&&codePoint<=65487||65490<=codePoint&&codePoint<=65495||65498<=codePoint&&codePoint<=65500||65512<=codePoint&&codePoint<=65518?"H":4352<=codePoint&&codePoint<=4447||4515<=codePoint&&codePoint<=4519||4602<=codePoint&&codePoint<=4607||9001<=codePoint&&codePoint<=9002||11904<=codePoint&&codePoint<=11929||11931<=codePoint&&codePoint<=12019||12032<=codePoint&&codePoint<=12245||12272<=codePoint&&codePoint<=12283||12289<=codePoint&&codePoint<=12350||12353<=codePoint&&codePoint<=12438||12441<=codePoint&&codePoint<=12543||12549<=codePoint&&codePoint<=12589||12593<=codePoint&&codePoint<=12686||12688<=codePoint&&codePoint<=12730||12736<=codePoint&&codePoint<=12771||12784<=codePoint&&codePoint<=12830||12832<=codePoint&&codePoint<=12871||12880<=codePoint&&codePoint<=13054||13056<=codePoint&&codePoint<=19903||19968<=codePoint&&codePoint<=42124||42128<=codePoint&&codePoint<=42182||43360<=codePoint&&codePoint<=43388||44032<=codePoint&&codePoint<=55203||55216<=codePoint&&codePoint<=55238||55243<=codePoint&&codePoint<=55291||63744<=codePoint&&codePoint<=64255||65040<=codePoint&&codePoint<=65049||65072<=codePoint&&codePoint<=65106||65108<=codePoint&&codePoint<=65126||65128<=codePoint&&codePoint<=65131||110592<=codePoint&&codePoint<=110593||127488<=codePoint&&codePoint<=127490||127504<=codePoint&&codePoint<=127546||127552<=codePoint&&codePoint<=127560||127568<=codePoint&&codePoint<=127569||131072<=codePoint&&codePoint<=194367||177984<=codePoint&&codePoint<=196605||196608<=codePoint&&codePoint<=262141?"W":32<=codePoint&&codePoint<=126||162<=codePoint&&codePoint<=163||165<=codePoint&&codePoint<=166||codePoint==172||codePoint==175||10214<=codePoint&&codePoint<=10221||10629<=codePoint&&codePoint<=10630?"Na":codePoint==161||codePoint==164||167<=codePoint&&codePoint<=168||codePoint==170||173<=codePoint&&codePoint<=174||176<=codePoint&&codePoint<=180||182<=codePoint&&codePoint<=186||188<=codePoint&&codePoint<=191||codePoint==198||codePoint==208||215<=codePoint&&codePoint<=216||222<=codePoint&&codePoint<=225||codePoint==230||232<=codePoint&&codePoint<=234||236<=codePoint&&codePoint<=237||codePoint==240||242<=codePoint&&codePoint<=243||247<=codePoint&&codePoint<=250||codePoint==252||codePoint==254||codePoint==257||codePoint==273||codePoint==275||codePoint==283||294<=codePoint&&codePoint<=295||codePoint==299||305<=codePoint&&codePoint<=307||codePoint==312||319<=codePoint&&codePoint<=322||codePoint==324||328<=codePoint&&codePoint<=331||codePoint==333||338<=codePoint&&codePoint<=339||358<=codePoint&&codePoint<=359||codePoint==363||codePoint==462||codePoint==464||codePoint==466||codePoint==468||codePoint==470||codePoint==472||codePoint==474||codePoint==476||codePoint==593||codePoint==609||codePoint==708||codePoint==711||713<=codePoint&&codePoint<=715||codePoint==717||codePoint==720||728<=codePoint&&codePoint<=731||codePoint==733||codePoint==735||768<=codePoint&&codePoint<=879||913<=codePoint&&codePoint<=929||931<=codePoint&&codePoint<=937||945<=codePoint&&codePoint<=961||963<=codePoint&&codePoint<=969||codePoint==1025||1040<=codePoint&&codePoint<=1103||codePoint==1105||codePoint==8208||8211<=codePoint&&codePoint<=8214||8216<=codePoint&&codePoint<=8217||8220<=codePoint&&codePoint<=8221||8224<=codePoint&&codePoint<=8226||8228<=codePoint&&codePoint<=8231||codePoint==8240||8242<=codePoint&&codePoint<=8243||codePoint==8245||codePoint==8251||codePoint==8254||codePoint==8308||codePoint==8319||8321<=codePoint&&codePoint<=8324||codePoint==8364||codePoint==8451||codePoint==8453||codePoint==8457||codePoint==8467||codePoint==8470||8481<=codePoint&&codePoint<=8482||codePoint==8486||codePoint==8491||8531<=codePoint&&codePoint<=8532||8539<=codePoint&&codePoint<=8542||8544<=codePoint&&codePoint<=8555||8560<=codePoint&&codePoint<=8569||codePoint==8585||8592<=codePoint&&codePoint<=8601||8632<=codePoint&&codePoint<=8633||codePoint==8658||codePoint==8660||codePoint==8679||codePoint==8704||8706<=codePoint&&codePoint<=8707||8711<=codePoint&&codePoint<=8712||codePoint==8715||codePoint==8719||codePoint==8721||codePoint==8725||codePoint==8730||8733<=codePoint&&codePoint<=8736||codePoint==8739||codePoint==8741||8743<=codePoint&&codePoint<=8748||codePoint==8750||8756<=codePoint&&codePoint<=8759||8764<=codePoint&&codePoint<=8765||codePoint==8776||codePoint==8780||codePoint==8786||8800<=codePoint&&codePoint<=8801||8804<=codePoint&&codePoint<=8807||8810<=codePoint&&codePoint<=8811||8814<=codePoint&&codePoint<=8815||8834<=codePoint&&codePoint<=8835||8838<=codePoint&&codePoint<=8839||codePoint==8853||codePoint==8857||codePoint==8869||codePoint==8895||codePoint==8978||9312<=codePoint&&codePoint<=9449||9451<=codePoint&&codePoint<=9547||9552<=codePoint&&codePoint<=9587||9600<=codePoint&&codePoint<=9615||9618<=codePoint&&codePoint<=9621||9632<=codePoint&&codePoint<=9633||9635<=codePoint&&codePoint<=9641||9650<=codePoint&&codePoint<=9651||9654<=codePoint&&codePoint<=9655||9660<=codePoint&&codePoint<=9661||9664<=codePoint&&codePoint<=9665||9670<=codePoint&&codePoint<=9672||codePoint==9675||9678<=codePoint&&codePoint<=9681||9698<=codePoint&&codePoint<=9701||codePoint==9711||9733<=codePoint&&codePoint<=9734||codePoint==9737||9742<=codePoint&&codePoint<=9743||9748<=codePoint&&codePoint<=9749||codePoint==9756||codePoint==9758||codePoint==9792||codePoint==9794||9824<=codePoint&&codePoint<=9825||9827<=codePoint&&codePoint<=9829||9831<=codePoint&&codePoint<=9834||9836<=codePoint&&codePoint<=9837||codePoint==9839||9886<=codePoint&&codePoint<=9887||9918<=codePoint&&codePoint<=9919||9924<=codePoint&&codePoint<=9933||9935<=codePoint&&codePoint<=9953||codePoint==9955||9960<=codePoint&&codePoint<=9983||codePoint==10045||codePoint==10071||10102<=codePoint&&codePoint<=10111||11093<=codePoint&&codePoint<=11097||12872<=codePoint&&codePoint<=12879||57344<=codePoint&&codePoint<=63743||65024<=codePoint&&codePoint<=65039||codePoint==65533||127232<=codePoint&&codePoint<=127242||127248<=codePoint&&codePoint<=127277||127280<=codePoint&&codePoint<=127337||127344<=codePoint&&codePoint<=127386||917760<=codePoint&&codePoint<=917999||983040<=codePoint&&codePoint<=1048573||1048576<=codePoint&&codePoint<=1114109?"A":"N"};eaw.characterLength=function(character){var code=this.eastAsianWidth(character);return code=="F"||code=="W"||code=="A"?2:1};function stringToArray(string){return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}eaw.length=function(string){for(var characters=stringToArray(string),len=0,i=0;i<characters.length;i++)len=len+this.characterLength(characters[i]);return len};eaw.slice=function(text,start,end){textLen=eaw.length(text),start=start||0,end=end||1,start<0&&(start=textLen+start),end<0&&(end=textLen+end);for(var result="",eawLen=0,chars=stringToArray(text),i=0;i<chars.length;i++){var char=chars[i],charLen=eaw.length(char);if(eawLen>=start-(charLen==2?1:0))if(eawLen+charLen<=end)result+=char;else break;eawLen+=charLen}return result}}});var require_emoji_regex=__commonJS({"../../node_modules/emoji-regex/index.js"(exports2,module2){"use strict";module2.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}});var require_boxes=__commonJS({"../../node_modules/cli-boxes/boxes.json"(exports2,module2){module2.exports={single:{topLeft:"\u250C",top:"\u2500",topRight:"\u2510",right:"\u2502",bottomRight:"\u2518",bottom:"\u2500",bottomLeft:"\u2514",left:"\u2502"},double:{topLeft:"\u2554",top:"\u2550",topRight:"\u2557",right:"\u2551",bottomRight:"\u255D",bottom:"\u2550",bottomLeft:"\u255A",left:"\u2551"},round:{topLeft:"\u256D",top:"\u2500",topRight:"\u256E",right:"\u2502",bottomRight:"\u256F",bottom:"\u2500",bottomLeft:"\u2570",left:"\u2502"},bold:{topLeft:"\u250F",top:"\u2501",topRight:"\u2513",right:"\u2503",bottomRight:"\u251B",bottom:"\u2501",bottomLeft:"\u2517",left:"\u2503"},singleDouble:{topLeft:"\u2553",top:"\u2500",topRight:"\u2556",right:"\u2551",bottomRight:"\u255C",bottom:"\u2500",bottomLeft:"\u2559",left:"\u2551"},doubleSingle:{topLeft:"\u2552",top:"\u2550",topRight:"\u2555",right:"\u2502",bottomRight:"\u255B",bottom:"\u2550",bottomLeft:"\u2558",left:"\u2502"},classic:{topLeft:"+",top:"-",topRight:"+",right:"|",bottomRight:"+",bottom:"-",bottomLeft:"+",left:"|"},arrow:{topLeft:"\u2198",top:"\u2193",topRight:"\u2199",right:"\u2190",bottomRight:"\u2196",bottom:"\u2191",bottomLeft:"\u2197",left:"\u2192"}}}});var require_cli_boxes=__commonJS({"../../node_modules/cli-boxes/index.js"(exports2,module2){"use strict";var cliBoxes2=require_boxes();module2.exports=cliBoxes2;module2.exports.default=cliBoxes2}});var require_ansi_regex=__commonJS({"../../node_modules/string-width/node_modules/ansi-regex/index.js"(exports2,module2){"use strict";module2.exports=({onlyFirst=!1}={})=>{let pattern=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(pattern,onlyFirst?void 0:"g")}}});var require_strip_ansi=__commonJS({"../../node_modules/string-width/node_modules/strip-ansi/index.js"(exports2,module2){"use strict";var ansiRegex3=require_ansi_regex();module2.exports=string=>typeof string=="string"?string.replace(ansiRegex3(),""):string}});var require_is_fullwidth_code_point=__commonJS({"../../node_modules/is-fullwidth-code-point/index.js"(exports2,module2){"use strict";var isFullwidthCodePoint=codePoint=>Number.isNaN(codePoint)?!1:codePoint>=4352&&(codePoint<=4447||codePoint===9001||codePoint===9002||11904<=codePoint&&codePoint<=12871&&codePoint!==12351||12880<=codePoint&&codePoint<=19903||19968<=codePoint&&codePoint<=42182||43360<=codePoint&&codePoint<=43388||44032<=codePoint&&codePoint<=55203||63744<=codePoint&&codePoint<=64255||65040<=codePoint&&codePoint<=65049||65072<=codePoint&&codePoint<=65131||65281<=codePoint&&codePoint<=65376||65504<=codePoint&&codePoint<=65510||110592<=codePoint&&codePoint<=110593||127488<=codePoint&&codePoint<=127569||131072<=codePoint&&codePoint<=262141);module2.exports=isFullwidthCodePoint;module2.exports.default=isFullwidthCodePoint}});var require_emoji_regex2=__commonJS({"../../node_modules/string-width/node_modules/emoji-regex/index.js"(exports2,module2){"use strict";module2.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}});var require_string_width=__commonJS({"../../node_modules/string-width/index.js"(exports2,module2){"use strict";var stripAnsi2=require_strip_ansi(),isFullwidthCodePoint=require_is_fullwidth_code_point(),emojiRegex4=require_emoji_regex2(),stringWidth4=string=>{if(typeof string!="string"||string.length===0||(string=stripAnsi2(string),string.length===0))return 0;string=string.replace(emojiRegex4()," ");let width=0;for(let i=0;i<string.length;i++){let code=string.codePointAt(i);code<=31||code>=127&&code<=159||code>=768&&code<=879||(code>65535&&i++,width+=isFullwidthCodePoint(code)?2:1)}return width};module2.exports=stringWidth4;module2.exports.default=stringWidth4}});var require_ansi_align=__commonJS({"../../node_modules/ansi-align/index.js"(exports2,module2){"use strict";var stringWidth4=require_string_width();function ansiAlign2(text,opts){if(!text)return text;opts=opts||{};let align=opts.align||"center";if(align==="left")return text;let split=opts.split||`
2
+ `,pad=opts.pad||" ",widthDiffFn=align!=="right"?halfDiff:fullDiff,returnString=!1;Array.isArray(text)||(returnString=!0,text=String(text).split(split));let width,maxWidth=0;return text=text.map(function(str){return str=String(str),width=stringWidth4(str),maxWidth=Math.max(width,maxWidth),{str,width}}).map(function(obj){return new Array(widthDiffFn(maxWidth,obj.width)+1).join(pad)+obj.str}),returnString?text.join(split):text}ansiAlign2.left=function(text){return ansiAlign2(text,{align:"left"})};ansiAlign2.center=function(text){return ansiAlign2(text,{align:"center"})};ansiAlign2.right=function(text){return ansiAlign2(text,{align:"right"})};module2.exports=ansiAlign2;function halfDiff(maxWidth,curWidth){return Math.floor((maxWidth-curWidth)/2)}function fullDiff(maxWidth,curWidth){return maxWidth-curWidth}}});var init_types=__esm({"src/autoblock/types.ts"(){"use strict"}});var block_storystorev6_exports={};__export(block_storystorev6_exports,{blocker:()=>blocker});var import_picocolors42,import_ts_dedent41,blocker,init_block_storystorev6=__esm({"src/autoblock/block-storystorev6.ts"(){"use strict";import_picocolors42=__toESM(require_picocolors(),1),import_ts_dedent41=require("ts-dedent");init_types();blocker={id:"storyStoreV7removal",async check({mainConfig}){let features=mainConfig?.features;return features===void 0?!1:!!Object.hasOwn(features,"storyStoreV7")},log(){return import_ts_dedent41.dedent`
3
3
  StoryStoreV7 feature must be removed from your Storybook configuration.
4
4
  This feature was removed in Storybook 8.0.0.
5
5
  Please see the migration guide for more information:
6
- ${import_picocolors39.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated")}
6
+ ${import_picocolors42.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated")}
7
7
 
8
8
  In your Storybook configuration we found storyStoreV7 feature defined. For instance:
9
9
 
10
10
  export default = {
11
11
  features: {
12
- ${import_picocolors39.default.cyan("storyStoreV7: false")}, <--- ${import_picocolors39.default.bold("remove this line")}
12
+ ${import_picocolors42.default.cyan("storyStoreV7: false")}, <--- ${import_picocolors42.default.bold("remove this line")}
13
13
  },
14
14
  };
15
15
 
16
16
  You need to remove the storyStoreV7 property.
17
- `}}}});var block_dependencies_versions_exports={};__export(block_dependencies_versions_exports,{blocker:()=>blocker2});var import_picocolors40,import_semver15,import_ts_dedent41,minimalVersionsMap,typedKeys,blocker2,init_block_dependencies_versions=__esm({"src/autoblock/block-dependencies-versions.ts"(){"use strict";import_picocolors40=__toESM(require_picocolors(),1),import_semver15=require("semver"),import_ts_dedent41=require("ts-dedent");init_types();minimalVersionsMap={"@angular/core":"15.0.0","react-scripts":"5.0.0",next:"13.5.0",preact:"10.0.0",svelte:"4.0.0",vue:"3.0.0",vite:"4.0.0"},typedKeys=obj=>Object.keys(obj),blocker2={id:"dependenciesVersions",async check({packageManager}){return(await Promise.all(typedKeys(minimalVersionsMap).map(async packageName=>({packageName,installedVersion:await packageManager.getPackageVersion(packageName),minimumVersion:minimalVersionsMap[packageName]})))).reduce((acc,{installedVersion,minimumVersion,packageName})=>acc||(packageName&&installedVersion&&(0,import_semver15.lt)(installedVersion,minimumVersion)?{installedVersion,packageName,minimumVersion}:acc),!1)},log(options,data){switch(data.packageName){case"react-scripts":return import_ts_dedent41.dedent`
17
+ `}}}});var block_dependencies_versions_exports={};__export(block_dependencies_versions_exports,{blocker:()=>blocker2});var import_picocolors43,import_semver15,import_ts_dedent42,minimalVersionsMap,typedKeys,blocker2,init_block_dependencies_versions=__esm({"src/autoblock/block-dependencies-versions.ts"(){"use strict";import_picocolors43=__toESM(require_picocolors(),1),import_semver15=require("semver"),import_ts_dedent42=require("ts-dedent");init_types();minimalVersionsMap={"@angular/core":"15.0.0","react-scripts":"5.0.0",next:"13.5.0",preact:"10.0.0",svelte:"4.0.0",vue:"3.0.0",vite:"4.0.0"},typedKeys=obj=>Object.keys(obj),blocker2={id:"dependenciesVersions",async check({packageManager}){return(await Promise.all(typedKeys(minimalVersionsMap).map(async packageName=>({packageName,installedVersion:await packageManager.getPackageVersion(packageName),minimumVersion:minimalVersionsMap[packageName]})))).reduce((acc,{installedVersion,minimumVersion,packageName})=>acc||(packageName&&installedVersion&&(0,import_semver15.lt)(installedVersion,minimumVersion)?{installedVersion,packageName,minimumVersion}:acc),!1)},log(options,data){switch(data.packageName){case"react-scripts":return import_ts_dedent42.dedent`
18
18
  Support for react-script < 5.0.0 has been removed.
19
19
  Please see the migration guide for more information:
20
- ${import_picocolors40.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#create-react-app-dropped-cra4-support")}
20
+ ${import_picocolors43.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#create-react-app-dropped-cra4-support")}
21
21
 
22
22
  Upgrade to the latest version of react-scripts.
23
- `;case"vue":return import_ts_dedent41.dedent`
23
+ `;case"vue":return import_ts_dedent42.dedent`
24
24
  Support for Vue 2 has been removed.
25
25
  Please see the migration guide for more information:
26
- ${import_picocolors40.default.yellow("https://v3-migration.vuejs.org/")}
26
+ ${import_picocolors43.default.yellow("https://v3-migration.vuejs.org/")}
27
27
 
28
28
  Please upgrade to the latest version of Vue.
29
- `;case"@angular/core":return import_ts_dedent41.dedent`
29
+ `;case"@angular/core":return import_ts_dedent42.dedent`
30
30
  Support for Angular < 15 has been removed.
31
31
  Please see the migration guide for more information:
32
- ${import_picocolors40.default.yellow("https://angular.io/guide/update-to-version-15")}
32
+ ${import_picocolors43.default.yellow("https://angular.io/guide/update-to-version-15")}
33
33
 
34
34
  Please upgrade to the latest version of Angular.
35
- `;case"next":return import_ts_dedent41.dedent`
35
+ `;case"next":return import_ts_dedent42.dedent`
36
36
  Support for Next.js < 13.5 has been removed.
37
37
  Please see the migration guide for more information:
38
- ${import_picocolors40.default.yellow("https://nextjs.org/docs/pages/building-your-application/upgrading/version-13")}
38
+ ${import_picocolors43.default.yellow("https://nextjs.org/docs/pages/building-your-application/upgrading/version-13")}
39
39
 
40
40
  Please upgrade to the latest version of Next.js.
41
- `;default:return import_ts_dedent41.dedent`
41
+ `;default:return import_ts_dedent42.dedent`
42
42
  Support for ${data.packageName} version < ${data.minimumVersion} has been removed.
43
43
  Since version 8, Storybook needs a minimum version of ${data.minimumVersion}, but you have version ${data.installedVersion}.
44
44
 
45
45
  Please update this dependency.
46
- `}}}}});var block_node_version_exports={};__export(block_node_version_exports,{blocker:()=>blocker3});var import_picocolors41,import_semver16,import_ts_dedent42,blocker3,init_block_node_version=__esm({"src/autoblock/block-node-version.ts"(){"use strict";import_picocolors41=__toESM(require_picocolors(),1),import_semver16=require("semver"),import_ts_dedent42=require("ts-dedent");init_types();blocker3={id:"minimumNode16",async check(){let nodeVersion=process.versions.node;return nodeVersion&&(0,import_semver16.lt)(nodeVersion,"18.0.0")?{nodeVersion}:!1},log(options,data){return import_ts_dedent42.dedent`
46
+ `}}}}});var block_node_version_exports={};__export(block_node_version_exports,{blocker:()=>blocker3});var import_picocolors44,import_semver16,import_ts_dedent43,blocker3,init_block_node_version=__esm({"src/autoblock/block-node-version.ts"(){"use strict";import_picocolors44=__toESM(require_picocolors(),1),import_semver16=require("semver"),import_ts_dedent43=require("ts-dedent");init_types();blocker3={id:"minimumNode16",async check(){let nodeVersion=process.versions.node;return nodeVersion&&(0,import_semver16.lt)(nodeVersion,"18.0.0")?{nodeVersion}:!1},log(options,data){return import_ts_dedent43.dedent`
47
47
  We've detected you're using Node.js v${data.nodeVersion}.
48
48
  Storybook needs Node.js 18 or higher.
49
49
 
50
- ${import_picocolors41.default.yellow("https://nodejs.org/en/download")}
51
- `}}}});var import_common21=require("storybook/internal/common"),import_core_server2=require("storybook/internal/core-server"),import_node_logger4=require("storybook/internal/node-logger"),import_telemetry2=require("storybook/internal/telemetry"),import_commander=require("commander"),import_envinfo=__toESM(require("envinfo"),1),import_fd_package_json=require("fd-package-json"),import_leven=__toESM(require("leven"),1),import_picocolors44=__toESM(require_picocolors(),1),import_tiny_invariant4=__toESM(require("tiny-invariant"),1);var import_node_path=require("path"),import_common=require("storybook/internal/common"),import_csf_tools=require("storybook/internal/csf-tools"),import_prompts=__toESM(require("prompts"),1),import_semver=__toESM(require("semver"),1),import_ts_dedent=require("ts-dedent");var import_babel=require("storybook/internal/babel"),defaultRequireWrapperName="getAbsolutePath";function doesVariableOrFunctionDeclarationExist(node,name){return import_babel.types.isVariableDeclaration(node)&&node.declarations.length===1&&import_babel.types.isVariableDeclarator(node.declarations[0])&&import_babel.types.isIdentifier(node.declarations[0].id)&&node.declarations[0].id?.name===name||import_babel.types.isFunctionDeclaration(node)&&import_babel.types.isIdentifier(node.id)&&node.id.name===name}function getReferenceToRequireWrapper(config,value){return import_babel.types.callExpression(import_babel.types.identifier(getRequireWrapperName(config)??defaultRequireWrapperName),[import_babel.types.stringLiteral(value)])}function getRequireWrapperName(config){let declarationName=config.getBodyDeclarations().flatMap(node=>doesVariableOrFunctionDeclarationExist(node,"wrapForPnp")?["wrapForPnp"]:doesVariableOrFunctionDeclarationExist(node,defaultRequireWrapperName)?[defaultRequireWrapperName]:[]);return declarationName.length?declarationName[0]:null}function isRequireWrapperNecessary(node,cb=()=>{}){if(import_babel.types.isStringLiteral(node))return cb(node),!0;if(import_babel.types.isObjectExpression(node)){let nameProperty=node.properties.find(property=>import_babel.types.isObjectProperty(property)&&import_babel.types.isIdentifier(property.key)&&property.key.name==="name");if(nameProperty&&import_babel.types.isStringLiteral(nameProperty.value))return cb(nameProperty),!0}return import_babel.types.isArrayExpression(node)&&node.elements.some(element=>element&&isRequireWrapperNecessary(element))?(cb(node),!0):!1}function getFieldsForRequireWrapper(config){let frameworkNode=config.getFieldNode(["framework"]),builderNode=config.getFieldNode(["core","builder"]),rendererNode=config.getFieldNode(["core","renderer"]),addons=config.getFieldNode(["addons"]);return[...frameworkNode?[frameworkNode]:[],...builderNode?[builderNode]:[],...rendererNode?[rendererNode]:[],...addons&&import_babel.types.isArrayExpression(addons)?[addons]:[]]}function getRequireWrapperAsCallExpression(isConfigTypescript){let functionDeclaration={...import_babel.types.functionDeclaration(import_babel.types.identifier(defaultRequireWrapperName),[{...import_babel.types.identifier("value"),...isConfigTypescript?{typeAnnotation:import_babel.types.tsTypeAnnotation(import_babel.types.tSStringKeyword())}:{}}],import_babel.types.blockStatement([import_babel.types.returnStatement(import_babel.types.callExpression(import_babel.types.identifier("dirname"),[import_babel.types.callExpression(import_babel.types.memberExpression(import_babel.types.identifier("require"),import_babel.types.identifier("resolve")),[import_babel.types.callExpression(import_babel.types.identifier("join"),[import_babel.types.identifier("value"),import_babel.types.stringLiteral("package.json")])])]))])),...isConfigTypescript?{returnType:import_babel.types.tSTypeAnnotation(import_babel.types.tsAnyKeyword())}:{}};return import_babel.types.addComment(functionDeclaration,"leading",`*
50
+ ${import_picocolors44.default.yellow("https://nodejs.org/en/download")}
51
+ `}}}});var import_common26=require("storybook/internal/common"),import_core_server2=require("storybook/internal/core-server"),import_node_logger4=require("storybook/internal/node-logger"),import_telemetry2=require("storybook/internal/telemetry"),import_commander=require("commander"),import_envinfo=__toESM(require("envinfo"),1),import_leven=__toESM(require("leven"),1),import_picocolors47=__toESM(require_picocolors(),1);var version="8.6.0-beta.0";var import_node_path2=require("path"),import_common3=require("storybook/internal/common"),import_csf_tools2=require("storybook/internal/csf-tools"),import_prompts=__toESM(require("prompts"),1),import_semver=__toESM(require("semver"),1),import_ts_dedent2=require("ts-dedent");var import_babel=require("storybook/internal/babel"),defaultRequireWrapperName="getAbsolutePath";function doesVariableOrFunctionDeclarationExist(node,name){return import_babel.types.isVariableDeclaration(node)&&node.declarations.length===1&&import_babel.types.isVariableDeclarator(node.declarations[0])&&import_babel.types.isIdentifier(node.declarations[0].id)&&node.declarations[0].id?.name===name||import_babel.types.isFunctionDeclaration(node)&&import_babel.types.isIdentifier(node.id)&&node.id.name===name}function getReferenceToRequireWrapper(config,value){return import_babel.types.callExpression(import_babel.types.identifier(getRequireWrapperName(config)??defaultRequireWrapperName),[import_babel.types.stringLiteral(value)])}function getRequireWrapperName(config){let declarationName=config.getBodyDeclarations().flatMap(node=>doesVariableOrFunctionDeclarationExist(node,"wrapForPnp")?["wrapForPnp"]:doesVariableOrFunctionDeclarationExist(node,defaultRequireWrapperName)?[defaultRequireWrapperName]:[]);return declarationName.length?declarationName[0]:null}function isRequireWrapperNecessary(node,cb=()=>{}){if(import_babel.types.isStringLiteral(node))return cb(node),!0;if(import_babel.types.isObjectExpression(node)){let nameProperty=node.properties.find(property=>import_babel.types.isObjectProperty(property)&&import_babel.types.isIdentifier(property.key)&&property.key.name==="name");if(nameProperty&&import_babel.types.isStringLiteral(nameProperty.value))return cb(nameProperty),!0}return import_babel.types.isArrayExpression(node)&&node.elements.some(element=>element&&isRequireWrapperNecessary(element))?(cb(node),!0):!1}function getFieldsForRequireWrapper(config){let frameworkNode=config.getFieldNode(["framework"]),builderNode=config.getFieldNode(["core","builder"]),rendererNode=config.getFieldNode(["core","renderer"]),addons=config.getFieldNode(["addons"]);return[...frameworkNode?[frameworkNode]:[],...builderNode?[builderNode]:[],...rendererNode?[rendererNode]:[],...addons&&import_babel.types.isArrayExpression(addons)?[addons]:[]]}function getRequireWrapperAsCallExpression(isConfigTypescript){let functionDeclaration={...import_babel.types.functionDeclaration(import_babel.types.identifier(defaultRequireWrapperName),[{...import_babel.types.identifier("value"),...isConfigTypescript?{typeAnnotation:import_babel.types.tsTypeAnnotation(import_babel.types.tSStringKeyword())}:{}}],import_babel.types.blockStatement([import_babel.types.returnStatement(import_babel.types.callExpression(import_babel.types.identifier("dirname"),[import_babel.types.callExpression(import_babel.types.memberExpression(import_babel.types.identifier("require"),import_babel.types.identifier("resolve")),[import_babel.types.callExpression(import_babel.types.identifier("join"),[import_babel.types.identifier("value"),import_babel.types.stringLiteral("package.json")])])]))])),...isConfigTypescript?{returnType:import_babel.types.tSTypeAnnotation(import_babel.types.tsAnyKeyword())}:{}};return import_babel.types.addComment(functionDeclaration,"leading",`*
52
52
  * This function is used to resolve the absolute path of a package.
53
53
  * It is needed in projects that use Yarn PnP or are set up within a monorepo.
54
- `),functionDeclaration}function wrapValueWithRequireWrapper(config,node){isRequireWrapperNecessary(node,n=>{if(import_babel.types.isStringLiteral(n)){let wrapperNode=getReferenceToRequireWrapper(config,n.value);Object.keys(n).forEach(k=>{delete n[k]}),Object.keys(wrapperNode).forEach(k=>{n[k]=wrapperNode[k]})}import_babel.types.isObjectProperty(n)&&import_babel.types.isStringLiteral(n.value)&&(n.value=getReferenceToRequireWrapper(config,n.value.value)),import_babel.types.isArrayExpression(n)&&n.elements.forEach((element,index,elements)=>{import_babel.types.isStringLiteral(element)&&(elements[index]=getReferenceToRequireWrapper(config,element.value))})})}var postinstallAddon=async(addonName,options)=>{try{let modulePath=require.resolve(`${addonName}/postinstall`,{paths:[process.cwd()]}),postinstall=require(modulePath);try{console.log(`Running postinstall script for ${addonName}`),await postinstall(options)}catch(e){console.error(`Error running postinstall script for ${addonName}`),console.error(e)}}catch{}};var getVersionSpecifier=addon=>{let groups=/^(@{0,1}[^@]+)(?:@(.+))?$/.exec(addon);return groups?[groups[1],groups[2]]:[addon,void 0]},requireMain=configDir=>{let absoluteConfigDir=(0,import_node_path.isAbsolute)(configDir)?configDir:(0,import_node_path.join)(process.cwd(),configDir),mainFile=(0,import_node_path.join)(absoluteConfigDir,"main");return(0,import_common.serverRequire)(mainFile)??{}},checkInstalled=(addonName,main)=>!!main.addons?.find(entry=>(typeof entry=="string"?entry:entry.name)?.endsWith(addonName)),isCoreAddon=addonName=>Object.hasOwn(import_common.versions,addonName);async function add(addon,{packageManager:pkgMgr,skipPostinstall,configDir:userSpecifiedConfigDir,yes},logger28=console){let[addonName,inputVersion]=getVersionSpecifier(addon),packageManager=import_common.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),packageJson=await packageManager.retrievePackageJson(),{mainConfig,configDir:inferredConfigDir}=(0,import_common.getStorybookInfo)(packageJson,userSpecifiedConfigDir),configDir=userSpecifiedConfigDir||inferredConfigDir||".storybook";if(typeof configDir>"u")throw new Error(import_ts_dedent.dedent`
54
+ `),functionDeclaration}function wrapValueWithRequireWrapper(config,node){isRequireWrapperNecessary(node,n=>{if(import_babel.types.isStringLiteral(n)){let wrapperNode=getReferenceToRequireWrapper(config,n.value);Object.keys(n).forEach(k=>{delete n[k]}),Object.keys(wrapperNode).forEach(k=>{n[k]=wrapperNode[k]})}import_babel.types.isObjectProperty(n)&&import_babel.types.isStringLiteral(n.value)&&(n.value=getReferenceToRequireWrapper(config,n.value.value)),import_babel.types.isArrayExpression(n)&&n.elements.forEach((element,index,elements)=>{import_babel.types.isStringLiteral(element)&&(elements[index]=getReferenceToRequireWrapper(config,element.value))})})}var import_node_path=require("path"),import_cli=require("storybook/internal/cli"),import_common=require("storybook/internal/common"),import_common2=require("storybook/internal/common"),import_csf_tools=require("storybook/internal/csf-tools"),import_picocolors=__toESM(require_picocolors(),1),import_ts_dedent=require("ts-dedent"),logger=console,getFrameworkPackageName=mainConfig=>{let packageNameOrPath=typeof mainConfig?.framework=="string"?mainConfig.framework:mainConfig?.framework?.name;return packageNameOrPath?(0,import_common.extractProperFrameworkName)(packageNameOrPath):null},getRendererName=mainConfig=>{let frameworkPackageName=getFrameworkPackageName(mainConfig);if(!frameworkPackageName)return null;let frameworkName=import_common.frameworkPackages[frameworkPackageName];return import_cli.frameworkToRenderer[frameworkName]},getBuilderPackageName=mainConfig=>{let frameworkBuilder=getFrameworkOptions(mainConfig)?.builder,frameworkBuilderName=typeof frameworkBuilder=="string"?frameworkBuilder:frameworkBuilder?.options?.name,packageNameOrPath=(typeof mainConfig?.core?.builder=="string"?mainConfig.core.builder:mainConfig?.core?.builder?.name)??frameworkBuilderName;if(!packageNameOrPath)return null;let normalizedPath=(0,import_node_path.normalize)(packageNameOrPath).replace(new RegExp(/\\/,"g"),"/");return import_common.builderPackages.find(pkg=>normalizedPath.endsWith(pkg))||packageNameOrPath},getFrameworkOptions=mainConfig=>typeof mainConfig?.framework=="string"?null:mainConfig?.framework?.options??null,getRendererPackageNameFromFramework=frameworkPackageName=>{if(frameworkPackageName){if(Object.keys(import_common.rendererPackages).includes(frameworkPackageName))return frameworkPackageName;if(Object.values(import_common.rendererPackages).includes(frameworkPackageName))return Object.keys(import_common.rendererPackages).find(k=>import_common.rendererPackages[k]===frameworkPackageName)}return null},getStorybookData=async({packageManager,configDir:userDefinedConfigDir})=>{let packageJson=await packageManager.retrievePackageJson(),{mainConfig:mainConfigPath,version:storybookVersionSpecifier,configDir:configDirFromScript,previewConfig:previewConfigPath}=(0,import_common.getStorybookInfo)(packageJson,userDefinedConfigDir),storybookVersion=await(0,import_common2.getCoercedStorybookVersion)(packageManager),configDir=userDefinedConfigDir||configDirFromScript||".storybook",mainConfig;try{mainConfig=await(0,import_common.loadMainConfig)({configDir,noCache:!0})}catch(err){throw new Error(import_ts_dedent.dedent`Unable to find or evaluate ${import_picocolors.default.blue(mainConfigPath)}: ${String(err)}`)}return{configDir,mainConfig,storybookVersionSpecifier,storybookVersion,mainConfigPath,previewConfigPath,packageJson}},updateMainConfig=async({mainConfigPath,dryRun},callback)=>{try{let main=await(0,import_csf_tools.readConfig)(mainConfigPath);await callback(main),dryRun||await(0,import_csf_tools.writeConfig)(main)}catch(e){logger.info(`\u274C The migration failed to update your ${import_picocolors.default.blue(mainConfigPath)} on your behalf because of the following error:
55
+ ${e}
56
+ `),logger.info(`\u26A0\uFE0F Storybook automigrations are based on AST parsing and it's possible that your ${import_picocolors.default.blue(mainConfigPath)} file contains a non-standard format (e.g. your export is not an object) or that there was an error when parsing dynamic values (e.g. "require" calls, or usage of environment variables). When your main config is non-standard, automigrations are unfortunately not possible. Please follow the instructions given previously and follow the documentation to make the updates manually.`)}};var postinstallAddon=async(addonName,options)=>{try{let modulePath=require.resolve(`${addonName}/postinstall`,{paths:[process.cwd()]}),postinstall=require(modulePath);try{console.log(`Running postinstall script for ${addonName}`),await postinstall(options)}catch(e){console.error(`Error running postinstall script for ${addonName}`),console.error(e)}}catch{}};var getVersionSpecifier=addon=>{let groups=/^(@{0,1}[^@]+)(?:@(.+))?$/.exec(addon);return groups?[groups[1],groups[2]]:[addon,void 0]};var checkInstalled=(addonName,main)=>!!main.addons?.find(entry=>(typeof entry=="string"?entry:entry.name)?.endsWith(addonName)),isCoreAddon=addonName=>Object.hasOwn(import_common3.versions,addonName);async function add(addon,{packageManager:pkgMgr,skipPostinstall,configDir:userSpecifiedConfigDir,yes},logger30=console){let[addonName,inputVersion]=getVersionSpecifier(addon),packageManager=import_common3.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),{mainConfig,mainConfigPath,configDir,previewConfigPath,storybookVersion}=await getStorybookData({packageManager,configDir:userSpecifiedConfigDir});if(typeof configDir>"u")throw new Error(import_ts_dedent2.dedent`
55
57
  Unable to find storybook config directory. Please specify your Storybook config directory with the --config-dir flag.
56
- `);if(!mainConfig){logger28.error("Unable to find Storybook main.js config");return}let shouldAddToMain=!0;if(checkInstalled(addonName,requireMain(configDir))&&(shouldAddToMain=!1,!yes)){logger28.log(`The Storybook addon "${addonName}" is already present in ${mainConfig}.`);let{shouldForceInstall}=await(0,import_prompts.default)({type:"confirm",name:"shouldForceInstall",message:"Do you wish to install it again?"});if(!shouldForceInstall)return}let main=await(0,import_csf_tools.readConfig)(mainConfig);logger28.log(`Verifying ${addonName}`);let storybookVersion=await(0,import_common.getCoercedStorybookVersion)(packageManager),version=inputVersion;!version&&isCoreAddon(addonName)&&storybookVersion&&(version=storybookVersion),version||(version=await packageManager.latestVersion(addonName)),isCoreAddon(addonName)&&version!==storybookVersion&&logger28.warn(`The version of ${addonName} (${version}) you are installing is not the same as the version of Storybook you are using (${storybookVersion}). This may lead to unexpected behavior.`);let addonWithVersion=isValidVersion(version)?`${addonName}@^${version}`:`${addonName}@${version}`;if(logger28.log(`Installing ${addonWithVersion}`),await packageManager.addDependencies({installAsDevDependencies:!0},[addonWithVersion]),shouldAddToMain){if(logger28.log(`Adding '${addon}' to the "addons" field in ${mainConfig}`),main.getFieldNode(["addons"])&&getRequireWrapperName(main)!==null){let addonNode=main.valueToNode(addonName);main.appendNodeToArray(["addons"],addonNode),wrapValueWithRequireWrapper(main,addonNode)}else main.appendValueToArray(["addons"],addonName);await(0,import_csf_tools.writeConfig)(main)}!skipPostinstall&&isCoreAddon(addonName)&&await postinstallAddon(addonName,{packageManager:packageManager.type,configDir,yes})}function isValidVersion(version){return import_semver.default.valid(version)||version.match(/^\d+$/)}var import_node_fs2=require("fs"),import_promises7=require("fs/promises"),import_node_path7=require("path"),import_common16=require("storybook/internal/common");var import_node_process2=__toESM(require("process"),1);function ansiRegex({onlyFirst=!1}={}){let pattern=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(pattern,onlyFirst?void 0:"g")}var regex=ansiRegex();function stripAnsi(string){if(typeof string!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);return string.replace(regex,"")}var import_eastasianwidth=__toESM(require_eastasianwidth(),1),import_emoji_regex=__toESM(require_emoji_regex(),1);function stringWidth(string,options={}){if(typeof string!="string"||string.length===0||(options={ambiguousIsNarrow:!0,...options},string=stripAnsi(string),string.length===0))return 0;string=string.replace((0,import_emoji_regex.default)()," ");let ambiguousCharacterWidth=options.ambiguousIsNarrow?1:2,width=0;for(let character of string){let codePoint=character.codePointAt(0);if(codePoint<=31||codePoint>=127&&codePoint<=159||codePoint>=768&&codePoint<=879)continue;switch(import_eastasianwidth.default.eastAsianWidth(character)){case"F":case"W":width+=2;break;case"A":width+=ambiguousCharacterWidth;break;default:width+=1}}return width}var wrapAnsi16=(offset=0)=>code=>`\x1B[${code+offset}m`,wrapAnsi256=(offset=0)=>code=>`\x1B[${38+offset};5;${code}m`,wrapAnsi16m=(offset=0)=>(red,green,blue)=>`\x1B[${38+offset};2;${red};${green};${blue}m`,styles={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},modifierNames=Object.keys(styles.modifier),foregroundColorNames=Object.keys(styles.color),backgroundColorNames=Object.keys(styles.bgColor),colorNames=[...foregroundColorNames,...backgroundColorNames];function assembleStyles(){let codes=new Map;for(let[groupName,group]of Object.entries(styles)){for(let[styleName,style]of Object.entries(group))styles[styleName]={open:`\x1B[${style[0]}m`,close:`\x1B[${style[1]}m`},group[styleName]=styles[styleName],codes.set(style[0],style[1]);Object.defineProperty(styles,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles,"codes",{value:codes,enumerable:!1}),styles.color.close="\x1B[39m",styles.bgColor.close="\x1B[49m",styles.color.ansi=wrapAnsi16(),styles.color.ansi256=wrapAnsi256(),styles.color.ansi16m=wrapAnsi16m(),styles.bgColor.ansi=wrapAnsi16(10),styles.bgColor.ansi256=wrapAnsi256(10),styles.bgColor.ansi16m=wrapAnsi16m(10),Object.defineProperties(styles,{rgbToAnsi256:{value(red,green,blue){return red===green&&green===blue?red<8?16:red>248?231:Math.round((red-8)/247*24)+232:16+36*Math.round(red/255*5)+6*Math.round(green/255*5)+Math.round(blue/255*5)},enumerable:!1},hexToRgb:{value(hex){let matches=/[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));if(!matches)return[0,0,0];let[colorString]=matches;colorString.length===3&&(colorString=[...colorString].map(character=>character+character).join(""));let integer=Number.parseInt(colorString,16);return[integer>>16&255,integer>>8&255,integer&255]},enumerable:!1},hexToAnsi256:{value:hex=>styles.rgbToAnsi256(...styles.hexToRgb(hex)),enumerable:!1},ansi256ToAnsi:{value(code){if(code<8)return 30+code;if(code<16)return 90+(code-8);let red,green,blue;if(code>=232)red=((code-232)*10+8)/255,green=red,blue=red;else{code-=16;let remainder=code%36;red=Math.floor(code/36)/5,green=Math.floor(remainder/6)/5,blue=remainder%6/5}let value=Math.max(red,green,blue)*2;if(value===0)return 30;let result=30+(Math.round(blue)<<2|Math.round(green)<<1|Math.round(red));return value===2&&(result+=60),result},enumerable:!1},rgbToAnsi:{value:(red,green,blue)=>styles.ansi256ToAnsi(styles.rgbToAnsi256(red,green,blue)),enumerable:!1},hexToAnsi:{value:hex=>styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),enumerable:!1}}),styles}var ansiStyles=assembleStyles(),ansi_styles_default=ansiStyles;var import_node_process=__toESM(require("process"),1),import_node_os=__toESM(require("os"),1),import_node_tty=__toESM(require("tty"),1);function hasFlag(flag,argv=globalThis.Deno?globalThis.Deno.args:import_node_process.default.argv){let prefix=flag.startsWith("-")?"":flag.length===1?"-":"--",position=argv.indexOf(prefix+flag),terminatorPosition=argv.indexOf("--");return position!==-1&&(terminatorPosition===-1||position<terminatorPosition)}var{env}=import_node_process.default,flagForceColor;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")||hasFlag("color=never")?flagForceColor=0:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(flagForceColor=1);function envForceColor(){if("FORCE_COLOR"in env)return env.FORCE_COLOR==="true"?1:env.FORCE_COLOR==="false"?0:env.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(env.FORCE_COLOR,10),3)}function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function _supportsColor(haveStream,{streamIsTTY,sniffFlags=!0}={}){let noFlagForceColor=envForceColor();noFlagForceColor!==void 0&&(flagForceColor=noFlagForceColor);let forceColor=sniffFlags?flagForceColor:noFlagForceColor;if(forceColor===0)return 0;if(sniffFlags){if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2}if("TF_BUILD"in env&&"AGENT_NAME"in env)return 1;if(haveStream&&!streamIsTTY&&forceColor===void 0)return 0;let min=forceColor||0;if(env.TERM==="dumb")return min;if(import_node_process.default.platform==="win32"){let osRelease=import_node_os.default.release().split(".");return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return"GITHUB_ACTIONS"in env||"GITEA_ACTIONS"in env?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(sign=>sign in env)||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if(env.COLORTERM==="truecolor"||env.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in env){let version=Number.parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:min}function createSupportsColor(stream,options={}){let level=_supportsColor(stream,{streamIsTTY:stream&&stream.isTTY,...options});return translateLevel(level)}var supportsColor={stdout:createSupportsColor({isTTY:import_node_tty.default.isatty(1)}),stderr:createSupportsColor({isTTY:import_node_tty.default.isatty(2)})},supports_color_default=supportsColor;function stringReplaceAll(string,substring,replacer){let index=string.indexOf(substring);if(index===-1)return string;let substringLength=substring.length,endIndex=0,returnValue="";do returnValue+=string.slice(endIndex,index)+substring+replacer,endIndex=index+substringLength,index=string.indexOf(substring,endIndex);while(index!==-1);return returnValue+=string.slice(endIndex),returnValue}function stringEncaseCRLFWithFirstIndex(string,prefix,postfix,index){let endIndex=0,returnValue="";do{let gotCR=string[index-1]==="\r";returnValue+=string.slice(endIndex,gotCR?index-1:index)+prefix+(gotCR?`\r
58
+ `);if(!mainConfigPath){logger30.error("Unable to find Storybook main.js config");return}let shouldAddToMain=!0;if(checkInstalled(addonName,mainConfig)&&(shouldAddToMain=!1,!yes)){logger30.log(`The Storybook addon "${addonName}" is already present in ${mainConfigPath}.`);let{shouldForceInstall}=await(0,import_prompts.default)({type:"confirm",name:"shouldForceInstall",message:"Do you wish to install it again?"});if(!shouldForceInstall)return}let main=await(0,import_csf_tools2.readConfig)(mainConfigPath);logger30.log(`Verifying ${addonName}`);let version2=inputVersion;!version2&&isCoreAddon(addonName)&&storybookVersion&&(version2=storybookVersion),version2||(version2=await packageManager.latestVersion(addonName)),isCoreAddon(addonName)&&version2!==storybookVersion&&logger30.warn(`The version of ${addonName} (${version2}) you are installing is not the same as the version of Storybook you are using (${storybookVersion}). This may lead to unexpected behavior.`);let addonWithVersion=isValidVersion(version2)&&!version2.includes("-pr-")?`${addonName}@^${version2}`:`${addonName}@${version2}`;if(logger30.log(`Installing ${addonWithVersion}`),await packageManager.addDependencies({installAsDevDependencies:!0},[addonWithVersion]),shouldAddToMain){if(logger30.log(`Adding '${addon}' to the "addons" field in ${mainConfigPath}`),main.getFieldNode(["addons"])&&getRequireWrapperName(main)!==null){let addonNode=main.valueToNode(addonName);main.appendNodeToArray(["addons"],addonNode),wrapValueWithRequireWrapper(main,addonNode)}else main.appendValueToArray(["addons"],addonName);await(0,import_csf_tools2.writeConfig)(main)}await(0,import_common3.syncStorybookAddons)(mainConfig,previewConfigPath),!skipPostinstall&&isCoreAddon(addonName)&&await postinstallAddon(addonName,{packageManager:packageManager.type,configDir,yes})}function isValidVersion(version2){return import_semver.default.valid(version2)||version2.match(/^\d+$/)}var import_node_fs2=require("fs"),import_promises7=require("fs/promises"),import_node_path7=require("path"),import_common21=require("storybook/internal/common");var import_node_process2=__toESM(require("process"),1);function ansiRegex({onlyFirst=!1}={}){let pattern=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(pattern,onlyFirst?void 0:"g")}var regex=ansiRegex();function stripAnsi(string){if(typeof string!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);return string.replace(regex,"")}var import_eastasianwidth=__toESM(require_eastasianwidth(),1),import_emoji_regex=__toESM(require_emoji_regex(),1);function stringWidth(string,options={}){if(typeof string!="string"||string.length===0||(options={ambiguousIsNarrow:!0,...options},string=stripAnsi(string),string.length===0))return 0;string=string.replace((0,import_emoji_regex.default)()," ");let ambiguousCharacterWidth=options.ambiguousIsNarrow?1:2,width=0;for(let character of string){let codePoint=character.codePointAt(0);if(codePoint<=31||codePoint>=127&&codePoint<=159||codePoint>=768&&codePoint<=879)continue;switch(import_eastasianwidth.default.eastAsianWidth(character)){case"F":case"W":width+=2;break;case"A":width+=ambiguousCharacterWidth;break;default:width+=1}}return width}var wrapAnsi16=(offset=0)=>code=>`\x1B[${code+offset}m`,wrapAnsi256=(offset=0)=>code=>`\x1B[${38+offset};5;${code}m`,wrapAnsi16m=(offset=0)=>(red,green,blue)=>`\x1B[${38+offset};2;${red};${green};${blue}m`,styles={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},modifierNames=Object.keys(styles.modifier),foregroundColorNames=Object.keys(styles.color),backgroundColorNames=Object.keys(styles.bgColor),colorNames=[...foregroundColorNames,...backgroundColorNames];function assembleStyles(){let codes=new Map;for(let[groupName,group]of Object.entries(styles)){for(let[styleName,style]of Object.entries(group))styles[styleName]={open:`\x1B[${style[0]}m`,close:`\x1B[${style[1]}m`},group[styleName]=styles[styleName],codes.set(style[0],style[1]);Object.defineProperty(styles,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles,"codes",{value:codes,enumerable:!1}),styles.color.close="\x1B[39m",styles.bgColor.close="\x1B[49m",styles.color.ansi=wrapAnsi16(),styles.color.ansi256=wrapAnsi256(),styles.color.ansi16m=wrapAnsi16m(),styles.bgColor.ansi=wrapAnsi16(10),styles.bgColor.ansi256=wrapAnsi256(10),styles.bgColor.ansi16m=wrapAnsi16m(10),Object.defineProperties(styles,{rgbToAnsi256:{value(red,green,blue){return red===green&&green===blue?red<8?16:red>248?231:Math.round((red-8)/247*24)+232:16+36*Math.round(red/255*5)+6*Math.round(green/255*5)+Math.round(blue/255*5)},enumerable:!1},hexToRgb:{value(hex){let matches=/[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));if(!matches)return[0,0,0];let[colorString]=matches;colorString.length===3&&(colorString=[...colorString].map(character=>character+character).join(""));let integer=Number.parseInt(colorString,16);return[integer>>16&255,integer>>8&255,integer&255]},enumerable:!1},hexToAnsi256:{value:hex=>styles.rgbToAnsi256(...styles.hexToRgb(hex)),enumerable:!1},ansi256ToAnsi:{value(code){if(code<8)return 30+code;if(code<16)return 90+(code-8);let red,green,blue;if(code>=232)red=((code-232)*10+8)/255,green=red,blue=red;else{code-=16;let remainder=code%36;red=Math.floor(code/36)/5,green=Math.floor(remainder/6)/5,blue=remainder%6/5}let value=Math.max(red,green,blue)*2;if(value===0)return 30;let result=30+(Math.round(blue)<<2|Math.round(green)<<1|Math.round(red));return value===2&&(result+=60),result},enumerable:!1},rgbToAnsi:{value:(red,green,blue)=>styles.ansi256ToAnsi(styles.rgbToAnsi256(red,green,blue)),enumerable:!1},hexToAnsi:{value:hex=>styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),enumerable:!1}}),styles}var ansiStyles=assembleStyles(),ansi_styles_default=ansiStyles;var import_node_process=__toESM(require("process"),1),import_node_os=__toESM(require("os"),1),import_node_tty=__toESM(require("tty"),1);function hasFlag(flag,argv=globalThis.Deno?globalThis.Deno.args:import_node_process.default.argv){let prefix=flag.startsWith("-")?"":flag.length===1?"-":"--",position=argv.indexOf(prefix+flag),terminatorPosition=argv.indexOf("--");return position!==-1&&(terminatorPosition===-1||position<terminatorPosition)}var{env}=import_node_process.default,flagForceColor;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")||hasFlag("color=never")?flagForceColor=0:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(flagForceColor=1);function envForceColor(){if("FORCE_COLOR"in env)return env.FORCE_COLOR==="true"?1:env.FORCE_COLOR==="false"?0:env.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(env.FORCE_COLOR,10),3)}function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function _supportsColor(haveStream,{streamIsTTY,sniffFlags=!0}={}){let noFlagForceColor=envForceColor();noFlagForceColor!==void 0&&(flagForceColor=noFlagForceColor);let forceColor=sniffFlags?flagForceColor:noFlagForceColor;if(forceColor===0)return 0;if(sniffFlags){if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2}if("TF_BUILD"in env&&"AGENT_NAME"in env)return 1;if(haveStream&&!streamIsTTY&&forceColor===void 0)return 0;let min=forceColor||0;if(env.TERM==="dumb")return min;if(import_node_process.default.platform==="win32"){let osRelease=import_node_os.default.release().split(".");return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return"GITHUB_ACTIONS"in env||"GITEA_ACTIONS"in env?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(sign=>sign in env)||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if(env.COLORTERM==="truecolor"||env.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in env){let version2=Number.parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version2>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:min}function createSupportsColor(stream,options={}){let level=_supportsColor(stream,{streamIsTTY:stream&&stream.isTTY,...options});return translateLevel(level)}var supportsColor={stdout:createSupportsColor({isTTY:import_node_tty.default.isatty(1)}),stderr:createSupportsColor({isTTY:import_node_tty.default.isatty(2)})},supports_color_default=supportsColor;function stringReplaceAll(string,substring,replacer){let index=string.indexOf(substring);if(index===-1)return string;let substringLength=substring.length,endIndex=0,returnValue="";do returnValue+=string.slice(endIndex,index)+substring+replacer,endIndex=index+substringLength,index=string.indexOf(substring,endIndex);while(index!==-1);return returnValue+=string.slice(endIndex),returnValue}function stringEncaseCRLFWithFirstIndex(string,prefix,postfix,index){let endIndex=0,returnValue="";do{let gotCR=string[index-1]==="\r";returnValue+=string.slice(endIndex,gotCR?index-1:index)+prefix+(gotCR?`\r
57
59
  `:`
58
60
  `)+postfix,endIndex=index+1,index=string.indexOf(`
59
61
  `,endIndex)}while(index!==-1);return returnValue+=string.slice(endIndex),returnValue}var{stdout:stdoutColor,stderr:stderrColor}=supports_color_default,GENERATOR=Symbol("GENERATOR"),STYLER=Symbol("STYLER"),IS_EMPTY=Symbol("IS_EMPTY"),levelMapping=["ansi","ansi","ansi256","ansi16m"],styles2=Object.create(null),applyOptions=(object,options={})=>{if(options.level&&!(Number.isInteger(options.level)&&options.level>=0&&options.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let colorLevel=stdoutColor?stdoutColor.level:0;object.level=options.level===void 0?colorLevel:options.level};var chalkFactory=options=>{let chalk2=(...strings)=>strings.join(" ");return applyOptions(chalk2,options),Object.setPrototypeOf(chalk2,createChalk.prototype),chalk2};function createChalk(options){return chalkFactory(options)}Object.setPrototypeOf(createChalk.prototype,Function.prototype);for(let[styleName,style]of Object.entries(ansi_styles_default))styles2[styleName]={get(){let builder=createBuilder(this,createStyler(style.open,style.close,this[STYLER]),this[IS_EMPTY]);return Object.defineProperty(this,styleName,{value:builder}),builder}};styles2.visible={get(){let builder=createBuilder(this,this[STYLER],!0);return Object.defineProperty(this,"visible",{value:builder}),builder}};var getModelAnsi=(model,level,type,...arguments_)=>model==="rgb"?level==="ansi16m"?ansi_styles_default[type].ansi16m(...arguments_):level==="ansi256"?ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_)):ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_)):model==="hex"?getModelAnsi("rgb",level,type,...ansi_styles_default.hexToRgb(...arguments_)):ansi_styles_default[type][model](...arguments_),usedModels=["rgb","hex","ansi256"];for(let model of usedModels){styles2[model]={get(){let{level}=this;return function(...arguments_){let styler=createStyler(getModelAnsi(model,levelMapping[level],"color",...arguments_),ansi_styles_default.color.close,this[STYLER]);return createBuilder(this,styler,this[IS_EMPTY])}}};let bgModel="bg"+model[0].toUpperCase()+model.slice(1);styles2[bgModel]={get(){let{level}=this;return function(...arguments_){let styler=createStyler(getModelAnsi(model,levelMapping[level],"bgColor",...arguments_),ansi_styles_default.bgColor.close,this[STYLER]);return createBuilder(this,styler,this[IS_EMPTY])}}}}var proto=Object.defineProperties(()=>{},{...styles2,level:{enumerable:!0,get(){return this[GENERATOR].level},set(level){this[GENERATOR].level=level}}}),createStyler=(open,close,parent)=>{let openAll,closeAll;return parent===void 0?(openAll=open,closeAll=close):(openAll=parent.openAll+open,closeAll=close+parent.closeAll),{open,close,openAll,closeAll,parent}},createBuilder=(self,_styler,_isEmpty)=>{let builder=(...arguments_)=>applyStyle(builder,arguments_.length===1?""+arguments_[0]:arguments_.join(" "));return Object.setPrototypeOf(builder,proto),builder[GENERATOR]=self,builder[STYLER]=_styler,builder[IS_EMPTY]=_isEmpty,builder},applyStyle=(self,string)=>{if(self.level<=0||!string)return self[IS_EMPTY]?"":string;let styler=self[STYLER];if(styler===void 0)return string;let{openAll,closeAll}=styler;if(string.includes("\x1B"))for(;styler!==void 0;)string=stringReplaceAll(string,styler.close,styler.open),styler=styler.parent;let lfIndex=string.indexOf(`
@@ -66,12 +68,10 @@
66
68
  `).map(line=>exec(line,columns,options)).join(`
67
69
  `)}var import_cli_boxes2=__toESM(require_cli_boxes(),1),NEWLINE=`
68
70
  `,PAD=" ",NONE="none",terminalColumns=()=>{let{env:env2,stdout,stderr}=import_node_process2.default;return stdout?.columns?stdout.columns:stderr?.columns?stderr.columns:env2.COLUMNS?Number.parseInt(env2.COLUMNS,10):80},getObject=detail=>typeof detail=="number"?{top:detail,right:detail*3,bottom:detail,left:detail*3}:{top:0,right:0,bottom:0,left:0,...detail},getBorderWidth=borderStyle=>borderStyle===NONE?0:2,getBorderChars=borderStyle=>{let sides=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],characters;if(borderStyle===NONE){borderStyle={};for(let side of sides)borderStyle[side]=""}if(typeof borderStyle=="string"){if(characters=import_cli_boxes.default[borderStyle],!characters)throw new TypeError(`Invalid border style: ${borderStyle}`)}else{typeof borderStyle?.vertical=="string"&&(borderStyle.left=borderStyle.vertical,borderStyle.right=borderStyle.vertical),typeof borderStyle?.horizontal=="string"&&(borderStyle.top=borderStyle.horizontal,borderStyle.bottom=borderStyle.horizontal);for(let side of sides)if(borderStyle[side]===null||typeof borderStyle[side]!="string")throw new TypeError(`Invalid border style: ${side}`);characters=borderStyle}return characters},makeTitle=(text,horizontal,alignment)=>{let title="",textWidth=stringWidth(text);switch(alignment){case"left":{title=text+horizontal.slice(textWidth);break}case"right":{title=horizontal.slice(textWidth)+text;break}default:{horizontal=horizontal.slice(textWidth),horizontal.length%2===1?(horizontal=horizontal.slice(Math.floor(horizontal.length/2)),title=horizontal.slice(1)+text+horizontal):(horizontal=horizontal.slice(horizontal.length/2),title=horizontal+text+horizontal);break}}return title},makeContentText=(text,{padding,width,textAlignment,height})=>{text=(0,import_ansi_align.default)(text,{align:textAlignment});let lines=text.split(NEWLINE),textWidth=widestLine(text),max=width-padding.left-padding.right;if(textWidth>max){let newLines=[];for(let line of lines){let createdLines=wrapAnsi(line,max,{hard:!0}),alignedLinesArray=(0,import_ansi_align.default)(createdLines,{align:textAlignment}).split(`
69
- `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(textAlignment){case"center":{paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break}case"right":{paddedLine=PAD.repeat(max-longestLength)+alignedLine;break}default:{paddedLine=alignedLine;break}}newLines.push(paddedLine)}}lines=newLines}textAlignment==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):textAlignment==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(width-stringWidth(line)>0)switch(textAlignment){case"center":return line+PAD.repeat(width-stringWidth(line));case"right":return line+PAD.repeat(width-stringWidth(line));default:return line+PAD.repeat(width-stringWidth(line))}return line}),padding.top>0&&(lines=[...Array.from({length:padding.top}).fill(PAD.repeat(width)),...lines]),padding.bottom>0&&(lines=[...lines,...Array.from({length:padding.bottom}).fill(PAD.repeat(width))]),height&&lines.length>height?lines=lines.slice(0,height):height&&lines.length<height&&(lines=[...lines,...Array.from({length:height-lines.length}).fill(PAD.repeat(width))]),lines.join(NEWLINE)},boxContent=(content,contentWidth,options)=>{let colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?source_default.dim(newBorder):newBorder},colorizeContent=content2=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content2):content2,chars=getBorderChars(options.borderStyle),columns=terminalColumns(),marginLeft=PAD.repeat(options.margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-getBorderWidth(options.borderStyle))/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-options.margin.right-getBorderWidth(options.borderStyle),0);marginLeft=PAD.repeat(marginWidth)}let result="";options.margin.top&&(result+=NEWLINE.repeat(options.margin.top)),(options.borderStyle!==NONE||options.title)&&(result+=colorizeBorder(marginLeft+chars.topLeft+(options.title?makeTitle(options.title,chars.top.repeat(contentWidth),options.titleAlignment):chars.top.repeat(contentWidth))+chars.topRight)+NEWLINE);let lines=content.split(NEWLINE);return result+=lines.map(line=>marginLeft+colorizeBorder(chars.left)+colorizeContent(line)+colorizeBorder(chars.right)).join(NEWLINE),options.borderStyle!==NONE&&(result+=NEWLINE+colorizeBorder(marginLeft+chars.bottomLeft+chars.bottom.repeat(contentWidth)+chars.bottomRight)),options.margin.bottom&&(result+=NEWLINE.repeat(options.margin.bottom)),result},sanitizeOptions=options=>{if(options.fullscreen&&import_node_process2.default?.stdout){let newDimensions=[import_node_process2.default.stdout.columns,import_node_process2.default.stdout.rows];typeof options.fullscreen=="function"&&(newDimensions=options.fullscreen(...newDimensions)),options.width||(options.width=newDimensions[0]),options.height||(options.height=newDimensions[1])}return options.width&&(options.width=Math.max(1,options.width-getBorderWidth(options.borderStyle))),options.height&&(options.height=Math.max(1,options.height-getBorderWidth(options.borderStyle))),options},formatTitle=(title,borderStyle)=>borderStyle===NONE?title:` ${title} `,determineDimensions=(text,options)=>{options=sanitizeOptions(options);let widthOverride=options.width!==void 0,columns=terminalColumns(),borderWidth=getBorderWidth(options.borderStyle),maxWidth=columns-options.margin.left-options.margin.right-borderWidth,widest=widestLine(wrapAnsi(text,columns-borderWidth,{hard:!0,trim:!1}))+options.padding.left+options.padding.right;if(options.title&&widthOverride?(options.title=options.title.slice(0,Math.max(0,options.width-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle))):options.title&&(options.title=options.title.slice(0,Math.max(0,maxWidth-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle),stringWidth(options.title)>widest&&(options.width=stringWidth(options.title)))),options.width=options.width?options.width:widest,!widthOverride){if(options.margin.left&&options.margin.right&&options.width>maxWidth){let multiplier=(columns-options.width-borderWidth)/(options.margin.left+options.margin.right);options.margin.left=Math.max(0,Math.floor(options.margin.left*multiplier)),options.margin.right=Math.max(0,Math.floor(options.margin.right*multiplier))}options.width=Math.min(options.width,columns-borderWidth-options.margin.left-options.margin.right)}return options.width-(options.padding.left+options.padding.right)<=0&&(options.padding.left=0,options.padding.right=0),options.height&&options.height-(options.padding.top+options.padding.bottom)<=0&&(options.padding.top=0,options.padding.bottom=0),options},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(source_default[color]??isHex(color)),getColorFn=color=>isHex(color)?source_default.hex(color):source_default[color],getBGColorFn=color=>isHex(color)?source_default.bgHex(color):source_default[camelCase(["bg",color])];function boxen(text,options){if(options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align),options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);return options.padding=getObject(options.padding),options.margin=getObject(options.margin),options=determineDimensions(text,options),text=makeContentText(text,options),boxContent(text,options.width,options)}var import_picocolors36=__toESM(require_picocolors(),1),import_prompts7=__toESM(require("prompts"),1),import_semver13=__toESM(require("semver"),1),import_tiny_invariant2=__toESM(require("tiny-invariant"),1),import_ts_dedent38=require("ts-dedent");var import_node_fs=require("fs"),import_promises=require("fs/promises"),import_node_path3=require("path"),import_common7=require("storybook/internal/common");var import_picocolors5=__toESM(require_picocolors(),1),import_ts_dedent3=require("ts-dedent");var import_node_os2=require("os"),ansiRegex2=({onlyFirst=!1}={})=>{let pattern=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(pattern,onlyFirst?void 0:"g")},cleanLog=str=>str.replace(ansiRegex2(),"").replace(/╮│/g,`\u256E
71
+ `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(textAlignment){case"center":{paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break}case"right":{paddedLine=PAD.repeat(max-longestLength)+alignedLine;break}default:{paddedLine=alignedLine;break}}newLines.push(paddedLine)}}lines=newLines}textAlignment==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):textAlignment==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(width-stringWidth(line)>0)switch(textAlignment){case"center":return line+PAD.repeat(width-stringWidth(line));case"right":return line+PAD.repeat(width-stringWidth(line));default:return line+PAD.repeat(width-stringWidth(line))}return line}),padding.top>0&&(lines=[...Array.from({length:padding.top}).fill(PAD.repeat(width)),...lines]),padding.bottom>0&&(lines=[...lines,...Array.from({length:padding.bottom}).fill(PAD.repeat(width))]),height&&lines.length>height?lines=lines.slice(0,height):height&&lines.length<height&&(lines=[...lines,...Array.from({length:height-lines.length}).fill(PAD.repeat(width))]),lines.join(NEWLINE)},boxContent=(content,contentWidth,options)=>{let colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?source_default.dim(newBorder):newBorder},colorizeContent=content2=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content2):content2,chars=getBorderChars(options.borderStyle),columns=terminalColumns(),marginLeft=PAD.repeat(options.margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-getBorderWidth(options.borderStyle))/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-options.margin.right-getBorderWidth(options.borderStyle),0);marginLeft=PAD.repeat(marginWidth)}let result="";options.margin.top&&(result+=NEWLINE.repeat(options.margin.top)),(options.borderStyle!==NONE||options.title)&&(result+=colorizeBorder(marginLeft+chars.topLeft+(options.title?makeTitle(options.title,chars.top.repeat(contentWidth),options.titleAlignment):chars.top.repeat(contentWidth))+chars.topRight)+NEWLINE);let lines=content.split(NEWLINE);return result+=lines.map(line=>marginLeft+colorizeBorder(chars.left)+colorizeContent(line)+colorizeBorder(chars.right)).join(NEWLINE),options.borderStyle!==NONE&&(result+=NEWLINE+colorizeBorder(marginLeft+chars.bottomLeft+chars.bottom.repeat(contentWidth)+chars.bottomRight)),options.margin.bottom&&(result+=NEWLINE.repeat(options.margin.bottom)),result},sanitizeOptions=options=>{if(options.fullscreen&&import_node_process2.default?.stdout){let newDimensions=[import_node_process2.default.stdout.columns,import_node_process2.default.stdout.rows];typeof options.fullscreen=="function"&&(newDimensions=options.fullscreen(...newDimensions)),options.width||(options.width=newDimensions[0]),options.height||(options.height=newDimensions[1])}return options.width&&(options.width=Math.max(1,options.width-getBorderWidth(options.borderStyle))),options.height&&(options.height=Math.max(1,options.height-getBorderWidth(options.borderStyle))),options},formatTitle=(title,borderStyle)=>borderStyle===NONE?title:` ${title} `,determineDimensions=(text,options)=>{options=sanitizeOptions(options);let widthOverride=options.width!==void 0,columns=terminalColumns(),borderWidth=getBorderWidth(options.borderStyle),maxWidth=columns-options.margin.left-options.margin.right-borderWidth,widest=widestLine(wrapAnsi(text,columns-borderWidth,{hard:!0,trim:!1}))+options.padding.left+options.padding.right;if(options.title&&widthOverride?(options.title=options.title.slice(0,Math.max(0,options.width-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle))):options.title&&(options.title=options.title.slice(0,Math.max(0,maxWidth-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle),stringWidth(options.title)>widest&&(options.width=stringWidth(options.title)))),options.width=options.width?options.width:widest,!widthOverride){if(options.margin.left&&options.margin.right&&options.width>maxWidth){let multiplier=(columns-options.width-borderWidth)/(options.margin.left+options.margin.right);options.margin.left=Math.max(0,Math.floor(options.margin.left*multiplier)),options.margin.right=Math.max(0,Math.floor(options.margin.right*multiplier))}options.width=Math.min(options.width,columns-borderWidth-options.margin.left-options.margin.right)}return options.width-(options.padding.left+options.padding.right)<=0&&(options.padding.left=0,options.padding.right=0),options.height&&options.height-(options.padding.top+options.padding.bottom)<=0&&(options.padding.top=0,options.padding.bottom=0),options},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(source_default[color]??isHex(color)),getColorFn=color=>isHex(color)?source_default.hex(color):source_default[color],getBGColorFn=color=>isHex(color)?source_default.bgHex(color):source_default[camelCase(["bg",color])];function boxen(text,options){if(options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align),options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);return options.padding=getObject(options.padding),options.margin=getObject(options.margin),options=determineDimensions(text,options),text=makeContentText(text,options),boxContent(text,options.width,options)}var import_picocolors39=__toESM(require_picocolors(),1),import_prompts8=__toESM(require("prompts"),1),import_semver13=__toESM(require("semver"),1),import_tiny_invariant2=__toESM(require("tiny-invariant"),1),import_ts_dedent39=require("ts-dedent");var import_node_fs=require("fs"),import_promises=require("fs/promises"),import_node_path3=require("path"),import_common7=require("storybook/internal/common");var import_picocolors5=__toESM(require_picocolors(),1),import_ts_dedent3=require("ts-dedent");var import_node_os2=require("os"),ansiRegex2=({onlyFirst=!1}={})=>{let pattern=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(pattern,onlyFirst?void 0:"g")},cleanLog=str=>str.replace(ansiRegex2(),"").replace(/╮│/g,`\u256E
70
72
  \u2502`).replace(/││/g,`\u2502
71
73
  \u2502`).replace(/│╰/g,`\u2502
72
- \u2570`).replace(/⚠️ {2}failed to check/g,`${import_node_os2.EOL}\u26A0\uFE0F failed to check`);var import_node_path2=require("path"),import_cli=require("storybook/internal/cli"),import_common2=require("storybook/internal/common"),import_common3=require("storybook/internal/common"),import_csf_tools2=require("storybook/internal/csf-tools"),import_picocolors=__toESM(require_picocolors(),1),import_ts_dedent2=require("ts-dedent"),logger=console,getFrameworkPackageName=mainConfig=>{let packageNameOrPath=typeof mainConfig?.framework=="string"?mainConfig.framework:mainConfig?.framework?.name;return packageNameOrPath?(0,import_common2.extractProperFrameworkName)(packageNameOrPath):null},getRendererName=mainConfig=>{let frameworkPackageName=getFrameworkPackageName(mainConfig);if(!frameworkPackageName)return null;let frameworkName=import_common2.frameworkPackages[frameworkPackageName];return import_cli.frameworkToRenderer[frameworkName]},getBuilderPackageName=mainConfig=>{let frameworkBuilder=getFrameworkOptions(mainConfig)?.builder,frameworkBuilderName=typeof frameworkBuilder=="string"?frameworkBuilder:frameworkBuilder?.options?.name,packageNameOrPath=(typeof mainConfig?.core?.builder=="string"?mainConfig.core.builder:mainConfig?.core?.builder?.name)??frameworkBuilderName;if(!packageNameOrPath)return null;let normalizedPath=(0,import_node_path2.normalize)(packageNameOrPath).replace(new RegExp(/\\/,"g"),"/");return import_common2.builderPackages.find(pkg2=>normalizedPath.endsWith(pkg2))||packageNameOrPath},getFrameworkOptions=mainConfig=>typeof mainConfig?.framework=="string"?null:mainConfig?.framework?.options??null,getRendererPackageNameFromFramework=frameworkPackageName=>{if(frameworkPackageName){if(Object.keys(import_common2.rendererPackages).includes(frameworkPackageName))return frameworkPackageName;if(Object.values(import_common2.rendererPackages).includes(frameworkPackageName))return Object.keys(import_common2.rendererPackages).find(k=>import_common2.rendererPackages[k]===frameworkPackageName)}return null},getStorybookData=async({packageManager,configDir:userDefinedConfigDir})=>{let packageJson=await packageManager.retrievePackageJson(),{mainConfig:mainConfigPath,version:storybookVersionSpecifier,configDir:configDirFromScript,previewConfig:previewConfigPath}=(0,import_common2.getStorybookInfo)(packageJson,userDefinedConfigDir),storybookVersion=await(0,import_common3.getCoercedStorybookVersion)(packageManager),configDir=userDefinedConfigDir||configDirFromScript||".storybook",mainConfig;try{mainConfig=await(0,import_common2.loadMainConfig)({configDir,noCache:!0})}catch(err){throw new Error(import_ts_dedent2.dedent`Unable to find or evaluate ${import_picocolors.default.blue(mainConfigPath)}: ${String(err)}`)}return{configDir,mainConfig,storybookVersionSpecifier,storybookVersion,mainConfigPath,previewConfigPath}},updateMainConfig=async({mainConfigPath,dryRun},callback)=>{try{let main=await(0,import_csf_tools2.readConfig)(mainConfigPath);await callback(main),dryRun||await(0,import_csf_tools2.writeConfig)(main)}catch(e){logger.info(`\u274C The migration failed to update your ${import_picocolors.default.blue(mainConfigPath)} on your behalf because of the following error:
73
- ${e}
74
- `),logger.info(`\u26A0\uFE0F Storybook automigrations are based on AST parsing and it's possible that your ${import_picocolors.default.blue(mainConfigPath)} file contains a non-standard format (e.g. your export is not an object) or that there was an error when parsing dynamic values (e.g. "require" calls, or usage of environment variables). When your main config is non-standard, automigrations are unfortunately not possible. Please follow the instructions given previously and follow the documentation to make the updates manually.`)}},getAddonNames=mainConfig=>(mainConfig.addons||[]).map(addon=>{let name="";if(typeof addon=="string"?name=addon:typeof addon=="object"&&(name=addon.name),!name.startsWith("."))return name.replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,"")}).filter(item=>item!=null);var import_common4=require("storybook/internal/common"),import_picocolors2=__toESM(require_picocolors(),1);var import_semver2=__toESM(require("semver"),1);function hasMultipleVersions(versions5){return versions5.find(v=>{let major=import_semver2.default.major(v);if(major===0){let minor=import_semver2.default.minor(v);if(minor===0){let patch=import_semver2.default.patch(v);return versions5.some(v2=>import_semver2.default.patch(v2)!==patch)}return versions5.some(v2=>import_semver2.default.minor(v2)!==minor)}return versions5.some(v2=>import_semver2.default.major(v2)!==major)})}var messageDivider=`
74
+ \u2570`).replace(/⚠️ {2}failed to check/g,`${import_node_os2.EOL}\u26A0\uFE0F failed to check`);var import_common4=require("storybook/internal/common"),import_picocolors2=__toESM(require_picocolors(),1);var import_semver2=__toESM(require("semver"),1);function hasMultipleVersions(versions5){return versions5.find(v=>{let major=import_semver2.default.major(v);if(major===0){let minor=import_semver2.default.minor(v);if(minor===0){let patch=import_semver2.default.patch(v);return versions5.some(v2=>import_semver2.default.patch(v2)!==patch)}return versions5.some(v2=>import_semver2.default.minor(v2)!==minor)}return versions5.some(v2=>import_semver2.default.major(v2)!==major)})}var messageDivider=`
75
75
 
76
76
  `,allowList=["@storybook/csf","@storybook/addons","@storybook/channel-postmessage","@storybook/channel-websocket","@storybook/client-api","@storybook/core-client","@storybook/preview-web","@storybook/store","@storybook/components","@storybook/router","@storybook/theming","@storybook/api","@storybook/manager-api"],disallowList=[Object.keys(import_common4.rendererPackages),Object.keys(import_common4.frameworkPackages),"storybook","@storybook/instrumenter","@storybook/core","@storybook/core-server","@storybook/manager","@storybook/preview"];function getDuplicatedDepsWarnings(installationMetadata){try{if(!installationMetadata||!installationMetadata?.duplicatedDependencies||Object.keys(installationMetadata.duplicatedDependencies).length===0)return;let messages=[],{critical,trivial}=Object.entries(installationMetadata?.duplicatedDependencies).reduce((acc,[dep,packageVersions])=>{if(allowList.includes(dep))return acc;let hasMultipleMajorVersions=hasMultipleVersions(packageVersions);return disallowList.includes(dep)&&hasMultipleMajorVersions?acc.critical.push(`${import_picocolors2.default.bold(import_picocolors2.default.red(dep))}:
77
77
  ${packageVersions.join(", ")}`):acc.trivial.push(`${import_picocolors2.default.yellow(dep)}:
@@ -99,90 +99,118 @@ ${packageVersions.join(", ")}`),acc},{critical:[],trivial:[]});return critical.l
99
99
 
100
100
  `));else{let list=installationMetadata?getDuplicatedDepsWarnings(installationMetadata):getDuplicatedDepsWarnings();Array.isArray(list)&&list.length>0&&logDiagnostic("Duplicated dependencies found",list?.join(`
101
101
  `))}}let commandMessage=`You can always recheck the health of your project by running:
102
- ${import_picocolors5.default.cyan("npx storybook doctor")}`;logger2.info(),foundIssues?(logger2.info(commandMessage),logger2.info(),logger2.info(`Full logs are available in ${import_picocolors5.default.cyan(LOG_FILE_PATH)}`),await(0,import_promises.rename)(TEMP_LOG_FILE_PATH,(0,import_node_path3.join)(process.cwd(),LOG_FILE_NAME))):(logger2.info("\u{1F973} Your Storybook project looks good!"),logger2.info(commandMessage),await(0,import_promises.rm)(TEMP_LOG_FILE_PATH,{recursive:!0,force:!0})),logger2.info(),cleanup()};var import_common8=require("storybook/internal/common"),import_csf_tools3=require("storybook/internal/csf-tools"),import_fs=require("fs"),jscodeshift=__toESM(require("jscodeshift"),1),import_path=__toESM(require("path"),1),import_picocolors6=__toESM(require_picocolors(),1),import_ts_dedent4=require("ts-dedent");var ADDON_ID="storybook/test",TEST_PROVIDER_ID=`${ADDON_ID}/test-provider`,PANEL_ID=`${ADDON_ID}/panel`;var DOCUMENTATION_LINK="writing-tests/test-addon",DOCUMENTATION_DISCREPANCY_LINK=`${DOCUMENTATION_LINK}#what-happens-when-there-are-different-test-results-in-multiple-environments`,DOCUMENTATION_FATAL_ERROR_LINK=`${DOCUMENTATION_LINK}#what-happens-if-vitest-itself-has-an-error`;var SUPPORTED_FRAMEWORKS=["@storybook/nextjs","@storybook/experimental-nextjs-vite","@storybook/sveltekit"],SUPPORTED_RENDERERS=["@storybook/react","@storybook/svelte","@storybook/vue3"];var fileExtensions=[".js",".ts",".cts",".mts",".cjs",".mjs",".jsx",".tsx"],addonA11yAddonTest={id:"addonA11yAddonTest",versionRange:["<8.5.0",">=8.5.0"],promptType(result){return result.setupFile===null&&result.previewFile===null?"manual":"auto"},async check({mainConfig,configDir}){let addons=getAddonNames(mainConfig),frameworkPackageName=getFrameworkPackageName(mainConfig),rendererPackageName=getRendererName(mainConfig),hasA11yAddon=!!addons.find(addon=>addon.includes("@storybook/addon-a11y")),hasTestAddon=!!addons.find(addon=>addon.includes("@storybook/experimental-addon-test"));if(!SUPPORTED_FRAMEWORKS.find(framework=>frameworkPackageName?.includes(framework))&&!SUPPORTED_RENDERERS.find(renderer=>rendererPackageName?.includes(import_common8.rendererPackages[renderer]))||!hasA11yAddon||!hasTestAddon||!configDir)return null;let vitestSetupFile=fileExtensions.map(ext=>import_path.default.join(configDir,`vitest.setup${ext}`)).find(filePath=>(0,import_fs.existsSync)(filePath))??null,previewFile=fileExtensions.map(ext=>import_path.default.join(configDir,`preview${ext}`)).find(filePath=>(0,import_fs.existsSync)(filePath))??null,skipVitestSetupTransformation=!1,skipPreviewTransformation=!0;if(vitestSetupFile&&previewFile&&(skipVitestSetupTransformation=(0,import_fs.readFileSync)(vitestSetupFile,"utf8").includes("@storybook/addon-a11y"),skipVitestSetupTransformation&&skipPreviewTransformation))return null;let getTransformedSetupCode=()=>{if(!vitestSetupFile||skipVitestSetupTransformation)return null;try{let vitestSetupSource=(0,import_fs.readFileSync)(vitestSetupFile,"utf8");return transformSetupFile(vitestSetupSource)}catch{return null}},getTransformedPreviewCode=async()=>{if(!previewFile||skipPreviewTransformation)return null;try{let previewSetupSource=(0,import_fs.readFileSync)(previewFile,"utf8");return await transformPreviewFile(previewSetupSource,previewFile)}catch{return null}};return{setupFile:vitestSetupFile,previewFile,transformedSetupCode:getTransformedSetupCode(),transformedPreviewCode:await getTransformedPreviewCode(),skipVitestSetupTransformation,skipPreviewTransformation}},prompt({setupFile,previewFile,transformedSetupCode,transformedPreviewCode,skipPreviewTransformation,skipVitestSetupTransformation}){let prompt2=[import_ts_dedent4.dedent`
103
- We have detected that you have ${import_picocolors6.default.magenta("@storybook/addon-a11y")} and ${import_picocolors6.default.magenta("@storybook/experimental-addon-test")} installed.
104
-
105
- ${import_picocolors6.default.magenta("@storybook/addon-a11y")} now integrates with ${import_picocolors6.default.magenta("@storybook/experimental-addon-test")} to provide automatic accessibility checks for your stories, powered by Axe and Vitest.
106
- `],counter=1;if(!skipVitestSetupTransformation)if(transformedSetupCode===null)prompt2.push(import_ts_dedent4.dedent`
107
- ${counter++}) We couldn't find or automatically update ${import_picocolors6.default.cyan(".storybook/vitest.setup.<ts|js>")} in your project to smoothly set up project annotations from ${import_picocolors6.default.magenta("@storybook/addon-a11y")}.
108
- Please manually update your ${import_picocolors6.default.cyan("vitest.setup.ts")} file to include the following:
109
-
110
- ${import_picocolors6.default.gray("...")}
111
- ${import_picocolors6.default.green('+ import * as a11yAddonAnnotations from "@storybook/addon-a11y/preview";')}
112
-
113
- ${import_picocolors6.default.gray("const annotations = setProjectAnnotations([")}
114
- ${import_picocolors6.default.gray(" ...")}
115
- ${import_picocolors6.default.green("+ a11yAddonAnnotations,")}
116
- ${import_picocolors6.default.gray("]);")}
117
-
118
- ${import_picocolors6.default.gray("beforeAll(annotations.beforeAll);")}
119
- `);else{let fileExtensionSetupFile=import_path.default.extname(setupFile);prompt2.push(import_ts_dedent4.dedent`${counter++}) We have to update your ${import_picocolors6.default.cyan(`.storybook/vitest.setup${fileExtensionSetupFile}`)} file to set up project annotations from ${import_picocolors6.default.magenta("@storybook/addon-a11y")}.`)}if(!skipPreviewTransformation)if(transformedPreviewCode===null)prompt2.push(import_ts_dedent4.dedent`
120
- ${counter++}) We couldn't find or automatically update your ${import_picocolors6.default.cyan(".storybook/preview.<ts|js>")} in your project to smoothly set up tags from ${import_picocolors6.default.magenta("@storybook/addon-a11y")}.
121
- Please manually update your ${import_picocolors6.default.cyan(".storybook/preview.<ts|js>")} file to include the following:
122
-
123
- ${import_picocolors6.default.gray("export default {")}
124
- ${import_picocolors6.default.gray("...")}
125
- ${import_picocolors6.default.green('+ tags: ["a11y-test"],')}
126
- ${import_picocolors6.default.gray("}")}
127
- `);else{let fileExtensionPreviewFile=import_path.default.extname(previewFile);prompt2.push(import_ts_dedent4.dedent`
128
- ${counter++}) We have to update your ${import_picocolors6.default.cyan(`.storybook/preview${fileExtensionPreviewFile}`)} file to set up tags from ${import_picocolors6.default.magenta("@storybook/addon-a11y")}.
129
- `)}return(transformedPreviewCode===null||transformedSetupCode===null)&&prompt2.push(import_ts_dedent4.dedent`
102
+ ${import_picocolors5.default.cyan("npx storybook doctor")}`;logger2.info(),foundIssues?(logger2.info(commandMessage),logger2.info(),logger2.info(`Full logs are available in ${import_picocolors5.default.cyan(LOG_FILE_PATH)}`),await(0,import_promises.rename)(TEMP_LOG_FILE_PATH,(0,import_node_path3.join)(process.cwd(),LOG_FILE_NAME))):(logger2.info("\u{1F973} Your Storybook project looks good!"),logger2.info(commandMessage),await(0,import_promises.rm)(TEMP_LOG_FILE_PATH,{recursive:!0,force:!0})),logger2.info(),cleanup()};var import_common10=require("storybook/internal/common"),import_picocolors8=__toESM(require_picocolors(),1),import_prompts2=__toESM(require("prompts"),1),import_ts_dedent4=require("ts-dedent");var import_node_os3=__toESM(require("os"),1),import_common8=require("storybook/internal/common"),import_fs=require("fs"),import_picocolors6=__toESM(require_picocolors(),1);function slash(path3){return path3.startsWith("\\\\?\\")?path3:path3.replace(/\\/g,"/")}var logger3=console,maxConcurrentTasks=Math.max(1,import_node_os3.default.cpus().length-1);async function runCodemod(globPattern="**/*.stories.*",transform,{dryRun=!1,skipFormatting=!1}={}){let modifiedCount=0,unmodifiedCount=0,errorCount=0,{globby}=await import("globby"),files=await globby(slash(globPattern),{followSymbolicLinks:!0,ignore:["node_modules/**","dist/**","storybook-static/**","build/**"]});if(!files.length)throw logger3.error(`No files found for glob pattern "${globPattern}".
103
+ Please try a different pattern.
104
+ `),new Error("No files matched");try{let pLimit=(await import("p-limit")).default,limit=pLimit(maxConcurrentTasks);await Promise.all(files.map(file=>limit(async()=>{try{let source=await import_fs.promises.readFile(file,"utf-8"),transformedSource=await transform({path:file,source});if(transformedSource!==source){if(!dryRun){let fileContent=skipFormatting?transformedSource:await(0,import_common8.formatFileContent)(file,transformedSource);await import_fs.promises.writeFile(file,fileContent,"utf-8")}modifiedCount++}else unmodifiedCount++}catch(fileError){logger3.error(`Error processing file ${file}:`,fileError),errorCount++}})))}catch(error){logger3.error("Error applying transform:",error),errorCount++}logger3.log(`Summary: ${import_picocolors6.default.green(`${modifiedCount} transformed`)}, ${import_picocolors6.default.yellow(`${unmodifiedCount} unmodified`)}, ${import_picocolors6.default.red(`${errorCount} errors`)}`),dryRun&&logger3.log(import_picocolors6.default.bold(`This was a dry run. Run without --dry-run to apply the transformation to ${modifiedCount} files.`))}var printBoxedMessage=(message,style)=>boxen(message,{borderStyle:"round",padding:1,borderColor:"#F1618C",...style});var import_babel3=require("storybook/internal/babel"),import_common9=require("storybook/internal/common"),import_csf_tools3=require("storybook/internal/csf-tools"),import_picocolors7=__toESM(require_picocolors(),1);var import_babel2=require("storybook/internal/babel");function cleanupTypeImports(programNode,disallowList2){return programNode.body.filter(node=>{if(import_babel2.types.isImportDeclaration(node)){let{source,specifiers}=node;if(source.value.startsWith("@storybook/")){let allowedSpecifiers=specifiers.filter(specifier=>import_babel2.types.isImportSpecifier(specifier)&&import_babel2.types.isIdentifier(specifier.imported)?!disallowList2.includes(specifier.imported.name):!0);return allowedSpecifiers.length>0?(node.specifiers=allowedSpecifiers,!0):!1}}return!0})}function removeExportDeclarations(programNode,exportDecls){return programNode.body.filter(node=>{if(import_babel2.types.isExportNamedDeclaration(node)&&node.declaration){if(import_babel2.types.isVariableDeclaration(node.declaration))return node.declaration.declarations=node.declaration.declarations.filter(decl=>import_babel2.types.isIdentifier(decl.id)&&!exportDecls[decl.id.name]),node.declaration.declarations.length>0;if(import_babel2.types.isFunctionDeclaration(node.declaration)){let funcDecl=node.declaration;return import_babel2.types.isIdentifier(funcDecl.id)&&!exportDecls[funcDecl.id.name]}}return!0})}function getConfigProperties(exportDecls){let properties=[];for(let[name,decl]of Object.entries(exportDecls))import_babel2.types.isVariableDeclarator(decl)&&decl.init?properties.push(import_babel2.types.objectProperty(import_babel2.types.identifier(name),decl.init)):import_babel2.types.isFunctionDeclaration(decl)&&properties.push(import_babel2.types.objectProperty(import_babel2.types.identifier(name),import_babel2.types.arrowFunctionExpression([],decl.body)));return properties}async function configToCsfFactory(info,{configType,frameworkPackage},{dryRun=!1,skipFormatting=!1}={}){let config=(0,import_csf_tools3.loadConfig)(info.source);try{config.parse()}catch(err){return logger4.log(`Error when parsing ${info.path}, skipping:
105
+ ${err}`),info.source}let methodName=configType==="main"?"defineMain":"definePreview",programNode=config._ast.program,hasNamedExports=Object.keys(config._exportDecls).length>0;if(config._exportsObject&&hasNamedExports){let exportDecls=config._exportDecls,defineConfigProps=getConfigProperties(exportDecls);config._exportsObject.properties.push(...defineConfigProps),programNode.body=removeExportDeclarations(programNode,exportDecls)}else if(config._exportsObject){let defineConfigCall=import_babel3.types.callExpression(import_babel3.types.identifier(methodName),[config._exportsObject]),exportDefaultNode=null,declarationNodeIndex=-1;programNode.body.forEach(node=>{if(import_babel3.types.isExportDefaultDeclaration(node)&&import_babel3.types.isIdentifier(node.declaration)){let declarationName=node.declaration.name;if(declarationNodeIndex=programNode.body.findIndex(n=>import_babel3.types.isVariableDeclaration(n)&&n.declarations.some(d=>import_babel3.types.isIdentifier(d.id)&&d.id.name===declarationName&&import_babel3.types.isObjectExpression(d.init))),declarationNodeIndex!==-1){exportDefaultNode=node;let declarationNode=programNode.body[declarationNodeIndex];if(import_babel3.types.isVariableDeclaration(declarationNode)){let id=declarationNode.declarations[0].id;import_babel3.types.isIdentifier(id)&&id.name&&programNode.body.splice(declarationNodeIndex,1)}}}else import_babel3.types.isExportDefaultDeclaration(node)&&import_babel3.types.isObjectExpression(node.declaration)&&(exportDefaultNode=node)}),exportDefaultNode!==null&&(exportDefaultNode.declaration=defineConfigCall)}else if(hasNamedExports){let exportDecls=config._exportDecls,defineConfigProps=getConfigProperties(exportDecls),defineConfigCall=import_babel3.types.callExpression(import_babel3.types.identifier(methodName),[import_babel3.types.objectExpression(defineConfigProps)]);programNode.body=removeExportDeclarations(programNode,exportDecls),programNode.body.push(import_babel3.types.exportDefaultDeclaration(defineConfigCall))}let configImport=import_babel3.types.importDeclaration([import_babel3.types.importSpecifier(import_babel3.types.identifier(methodName),import_babel3.types.identifier(methodName))],import_babel3.types.stringLiteral(frameworkPackage+`${configType==="main"?"/node":""}`)),existingImport=programNode.body.find(node=>import_babel3.types.isImportDeclaration(node)&&node.importKind!=="type"&&node.source.value===configImport.source.value);existingImport&&import_babel3.types.isImportDeclaration(existingImport)?existingImport.specifiers.some(specifier=>import_babel3.types.isImportSpecifier(specifier)&&import_babel3.types.isIdentifier(specifier.imported)&&specifier.imported.name===methodName)||existingImport.specifiers.push(import_babel3.types.importSpecifier(import_babel3.types.identifier(methodName),import_babel3.types.identifier(methodName))):programNode.body.unshift(configImport);let disallowList2=["StorybookConfig","Preview"];programNode.body=cleanupTypeImports(programNode,disallowList2);let output=(0,import_csf_tools3.printConfig)(config).code;return dryRun?(logger4.log(`Would write to ${import_picocolors7.default.yellow(info.path)}:
106
+ ${import_picocolors7.default.green(output)}`),info.source):skipFormatting?output:(0,import_common9.formatFileContent)(info.path,output)}var import_babel4=require("storybook/internal/babel"),import_csf_tools4=require("storybook/internal/csf-tools"),import_path=__toESM(require("path"),1);var reuseDisallowList=["play","run","extends"],typesDisallowList=["Story","StoryFn","StoryObj","Meta","MetaObj","ComponentStory","ComponentMeta"];async function storyToCsfFactory(info,{previewConfigPath,useSubPathImports}){let csf=(0,import_csf_tools4.loadCsf)(info.source,{makeTitle:()=>"FIXME"});try{csf.parse()}catch(err){return logger4.log(`Error when parsing ${info.path}, skipping:
107
+ ${err}`),info.source}let metaVariableName="meta",programNode=csf._ast.program,previewImport,hasRootLevelConfig=programNode.body.some(n=>import_babel4.types.isVariableDeclaration(n)&&n.declarations.some(declaration=>import_babel4.types.isIdentifier(declaration.id,{name:"preview"}))),previewPath="#.storybook/preview";if(!useSubPathImports){let relativePath=import_path.default.relative(import_path.default.dirname(info.path),previewConfigPath),{dir,name}=import_path.default.parse(relativePath);previewPath=`${dir?`${dir}/`:""}${name}`,previewPath.startsWith(".")||(previewPath=`./${previewPath}`),previewPath=previewPath.replace(/\\/g,"/")}let sbConfigImportName=hasRootLevelConfig?"storybookPreview":"preview",sbConfigImportSpecifier=import_babel4.types.importDefaultSpecifier(import_babel4.types.identifier(sbConfigImportName));programNode.body.forEach(node=>{if(import_babel4.types.isImportDeclaration(node)&&(0,import_csf_tools4.isValidPreviewPath)(node.source.value)){let defaultImportSpecifier=node.specifiers.find(specifier=>import_babel4.types.isImportDefaultSpecifier(specifier));defaultImportSpecifier?defaultImportSpecifier.local.name!==sbConfigImportName&&(sbConfigImportName=defaultImportSpecifier.local.name):node.specifiers.push(sbConfigImportSpecifier),previewImport=node}});let hasMeta=!!csf._meta;Object.entries(csf._storyExports).forEach(([_key,decl])=>{let id=decl.id,declarator=decl,init=import_babel4.types.isVariableDeclarator(declarator)?declarator.init:void 0;if(import_babel4.types.isIdentifier(id)&&init){if(id.typeAnnotation&&(id.typeAnnotation=null),(import_babel4.types.isTSSatisfiesExpression(init)||import_babel4.types.isTSAsExpression(init))&&(init=init.expression),import_babel4.types.isObjectExpression(init))declarator.init=import_babel4.types.callExpression(import_babel4.types.memberExpression(import_babel4.types.identifier(metaVariableName),import_babel4.types.identifier("story")),[init]);else if(import_babel4.types.isArrowFunctionExpression(init)){let renderProperty=import_babel4.types.objectProperty(import_babel4.types.identifier("render"),init),objectExpression=import_babel4.types.objectExpression([renderProperty]);declarator.init=import_babel4.types.callExpression(import_babel4.types.memberExpression(import_babel4.types.identifier(metaVariableName),import_babel4.types.identifier("story")),[objectExpression])}}});let storyExportDecls=new Map(Object.entries(csf._storyExports).filter(entry=>!import_babel4.types.isFunctionDeclaration(entry[1])));if((0,import_babel4.traverse)(csf._ast,{Identifier(nodePath){let binding=nodePath.scope.getBinding(nodePath.node.name);if(binding&&storyExportDecls.has(binding.identifier.name)){let parent=nodePath.parent;if(import_babel4.types.isVariableDeclarator(parent)&&parent.id===nodePath.node||import_babel4.types.isImportSpecifier(parent)||import_babel4.types.isExportSpecifier(parent)||import_babel4.types.isMemberExpression(parent)&&import_babel4.types.isIdentifier(parent.property,{name:"input"})||import_babel4.types.isMemberExpression(parent)&&import_babel4.types.isIdentifier(parent.property)&&reuseDisallowList.includes(parent.property.name))return;try{nodePath.replaceWith(import_babel4.types.memberExpression(import_babel4.types.identifier(nodePath.node.name),import_babel4.types.identifier("input")))}catch(err){if(err.message.includes('instead got "MemberExpression"'))return;throw err}}}}),csf._metaPath){let declaration=csf._metaPath.node.declaration;if((import_babel4.types.isTSSatisfiesExpression(declaration)||import_babel4.types.isTSAsExpression(declaration))&&(declaration=declaration.expression),import_babel4.types.isObjectExpression(declaration)){let metaVariable=import_babel4.types.variableDeclaration("const",[import_babel4.types.variableDeclarator(import_babel4.types.identifier(metaVariableName),import_babel4.types.callExpression(import_babel4.types.memberExpression(import_babel4.types.identifier(sbConfigImportName),import_babel4.types.identifier("meta")),[declaration]))]);csf._metaPath.replaceWith(metaVariable)}else if(import_babel4.types.isIdentifier(declaration)){let binding=csf._metaPath.scope.getBinding(declaration.name);if(binding&&binding.path.isVariableDeclarator()){let originalName=declaration.name;binding.path.node.id=import_babel4.types.identifier(metaVariableName);let init=binding.path.node.init;(import_babel4.types.isTSSatisfiesExpression(init)||import_babel4.types.isTSAsExpression(init))&&(init=init.expression),import_babel4.types.isObjectExpression(init)&&(binding.path.node.init=import_babel4.types.callExpression(import_babel4.types.memberExpression(import_babel4.types.identifier(sbConfigImportName),import_babel4.types.identifier("meta")),[init])),csf._metaPath.scope.rename(originalName,metaVariableName)}csf._metaPath.remove()}}if(previewImport)previewImport.source.value!==previewPath&&(previewImport.source=import_babel4.types.stringLiteral(previewPath));else if(hasMeta){let configImport=import_babel4.types.importDeclaration([import_babel4.types.importDefaultSpecifier(import_babel4.types.identifier(sbConfigImportName))],import_babel4.types.stringLiteral(previewPath));programNode.body.unshift(configImport)}return programNode.body=cleanupTypeImports(programNode,typesDisallowList),programNode.body.forEach((node,index)=>{import_babel4.types.isTSTypeAliasDeclaration(node)&&(programNode.body.some(otherNode=>import_babel4.types.isVariableDeclaration(otherNode)?otherNode.declarations.some(declaration=>import_babel4.types.isIdentifier(declaration.init)&&declaration.init.name===node.id.name):!1)||programNode.body.splice(index,1))}),(0,import_csf_tools4.printCsf)(csf).code}var logger4=console;async function runStoriesCodemod(options){let{dryRun,packageManager,...codemodOptions}=options;try{let globString="{stories,src}/**/*.stories.*";process.env.IN_STORYBOOK_SANDBOX||(logger4.log("Please enter the glob for your stories to migrate"),globString=(await(0,import_prompts2.default)({type:"text",name:"glob",message:"glob",initial:"src/**/*.stories.*"},{onCancel:()=>process.exit(0)})).glob),logger4.log(`
108
+ \u{1F6E0}\uFE0F Applying codemod on your stories, this might take some time...`),await packageManager.executeCommand({command:`${packageManager.getRemoteRunCommand()} storybook migrate csf-2-to-3 --glob=${globString}`,args:[],stdio:"ignore",ignoreError:!0}),await runCodemod(globString,info=>storyToCsfFactory(info,codemodOptions),{dryRun})}catch(err){if(err.message==="No files matched")await runStoriesCodemod(options);else throw err}}var csfFactories={id:"csf-factories",promptType:"command",async run({dryRun,mainConfig,mainConfigPath,previewConfigPath,packageJson,packageManager}){let useSubPathImports=!0;process.env.IN_STORYBOOK_SANDBOX||(logger4.log(printBoxedMessage(import_ts_dedent4.dedent`
109
+ The CSF factories format benefits from subpath imports (the imports property in your \`package.json\`), which is a node standard for module resolution. This makes it more convenient to import the preview config in your story files.
110
+
111
+ However, please note that this might not work if you have an outdated tsconfig, use custom paths, or have type alias plugins configured in your project. You can always rerun this codemod and select another option to update your code later.
112
+
113
+ More info: ${import_picocolors8.default.yellow("https://storybook.js.org/docs/api/csf/csf-factories#subpath-imports")}
114
+
115
+ As we modify your story files, we can create two types of imports:
116
+
117
+ - ${import_picocolors8.default.bold("Subpath imports (recommended):")} ${import_picocolors8.default.cyan("`import preview from '#.storybook/preview'`")}
118
+ - ${import_picocolors8.default.bold("Relative imports:")} ${import_picocolors8.default.cyan("`import preview from '../../.storybook/preview'`")}
119
+ `)),useSubPathImports=(await(0,import_prompts2.default)({type:"select",name:"useSubPathImports",message:"Which would you like to use?",choices:[{title:"Subpath imports",value:!0},{title:"Relative imports",value:!1}],initial:0},{onCancel:()=>process.exit(0)})).useSubPathImports),useSubPathImports&&!packageJson.imports?.["#*"]&&(logger4.log(`\u{1F5FA}\uFE0F Adding imports map in ${import_picocolors8.default.cyan(packageManager.packageJsonPath())}`),packageJson.imports={...packageJson.imports,"#*":["./*","./*.ts","./*.tsx","./*.js","./*.jsx"]},await packageManager.writePackageJson(packageJson)),await runStoriesCodemod({dryRun,packageManager,useSubPathImports,previewConfigPath}),logger4.log(`
120
+ \u{1F6E0}\uFE0F Applying codemod on your main config...`);let frameworkPackage=getFrameworkPackageName(mainConfig)||"@storybook/your-framework-here";await runCodemod(mainConfigPath,fileInfo=>configToCsfFactory(fileInfo,{configType:"main",frameworkPackage},{dryRun})),logger4.log(`
121
+ \u{1F6E0}\uFE0F Applying codemod on your preview config...`),await runCodemod(previewConfigPath,fileInfo=>configToCsfFactory(fileInfo,{configType:"preview",frameworkPackage},{dryRun})),await(0,import_common10.syncStorybookAddons)(mainConfig,previewConfigPath),logger4.log(printBoxedMessage(import_ts_dedent4.dedent`
122
+ You can now run Storybook with the new CSF factories format.
123
+
124
+ For more info, check out the docs:
125
+ ${import_picocolors8.default.yellow("https://storybook.js.org/docs/api/csf/csf-factories")}
126
+ `))}};var import_common11=require("storybook/internal/common"),import_csf_tools5=require("storybook/internal/csf-tools"),import_fs2=require("fs"),jscodeshift=__toESM(require("jscodeshift"),1),import_path2=__toESM(require("path"),1),import_picocolors9=__toESM(require_picocolors(),1),import_ts_dedent5=require("ts-dedent");var ADDON_ID="storybook/test",TEST_PROVIDER_ID=`${ADDON_ID}/test-provider`,PANEL_ID=`${ADDON_ID}/panel`;var DOCUMENTATION_LINK="writing-tests/test-addon",DOCUMENTATION_DISCREPANCY_LINK=`${DOCUMENTATION_LINK}#what-happens-when-there-are-different-test-results-in-multiple-environments`,DOCUMENTATION_FATAL_ERROR_LINK=`${DOCUMENTATION_LINK}#what-happens-if-vitest-itself-has-an-error`;var SUPPORTED_FRAMEWORKS=["@storybook/nextjs","@storybook/experimental-nextjs-vite","@storybook/sveltekit"],SUPPORTED_RENDERERS=["@storybook/react","@storybook/svelte","@storybook/vue3"],storeOptions={id:ADDON_ID,initialState:{config:{coverage:!1,a11y:!1},watching:!1}},STORE_CHANNEL_EVENT_NAME=`UNIVERSAL_STORE:${storeOptions.id}`;var fileExtensions=[".js",".ts",".cts",".mts",".cjs",".mjs",".jsx",".tsx"],addonA11yAddonTest={id:"addonA11yAddonTest",versionRange:["<8.5.0",">=8.5.0"],promptType(result){return result.setupFile===null&&result.previewFile===null?"manual":"auto"},async check({mainConfig,configDir}){let addons=(0,import_common11.getAddonNames)(mainConfig),frameworkPackageName=getFrameworkPackageName(mainConfig),rendererPackageName=getRendererName(mainConfig),hasA11yAddon=!!addons.find(addon=>addon.includes("@storybook/addon-a11y")),hasTestAddon=!!addons.find(addon=>addon.includes("@storybook/experimental-addon-test"));if(!SUPPORTED_FRAMEWORKS.find(framework=>frameworkPackageName?.includes(framework))&&!SUPPORTED_RENDERERS.find(renderer=>rendererPackageName?.includes(import_common11.rendererPackages[renderer]))||!hasA11yAddon||!hasTestAddon||!configDir)return null;let vitestSetupFile=fileExtensions.map(ext=>import_path2.default.join(configDir,`vitest.setup${ext}`)).find(filePath=>(0,import_fs2.existsSync)(filePath))??null,previewFile=fileExtensions.map(ext=>import_path2.default.join(configDir,`preview${ext}`)).find(filePath=>(0,import_fs2.existsSync)(filePath))??null,skipVitestSetupTransformation=!1,skipPreviewTransformation=!1;if(vitestSetupFile&&previewFile){let vitestSetupSource=(0,import_fs2.readFileSync)(vitestSetupFile,"utf8"),previewSetupSource=(0,import_fs2.readFileSync)(previewFile,"utf8");if(skipVitestSetupTransformation=vitestSetupSource.includes("@storybook/addon-a11y"),skipPreviewTransformation=!shouldPreviewFileBeTransformed(previewSetupSource),skipVitestSetupTransformation&&skipPreviewTransformation)return null}let getTransformedSetupCode=()=>{if(!vitestSetupFile||skipVitestSetupTransformation)return null;try{let vitestSetupSource=(0,import_fs2.readFileSync)(vitestSetupFile,"utf8");return transformSetupFile(vitestSetupSource)}catch{return null}},getTransformedPreviewCode=()=>{if(!previewFile||skipPreviewTransformation)return null;try{let previewSetupSource=(0,import_fs2.readFileSync)(previewFile,"utf8");return transformPreviewFile(previewSetupSource,previewFile)}catch{return null}};return{setupFile:vitestSetupFile,previewFile,transformedSetupCode:getTransformedSetupCode(),transformedPreviewCode:await getTransformedPreviewCode(),skipVitestSetupTransformation,skipPreviewTransformation}},prompt({setupFile,previewFile,transformedSetupCode,transformedPreviewCode,skipPreviewTransformation,skipVitestSetupTransformation}){let prompt=[import_ts_dedent5.dedent`
127
+ We have detected that you have ${import_picocolors9.default.magenta("@storybook/addon-a11y")} and ${import_picocolors9.default.magenta("@storybook/experimental-addon-test")} installed.
128
+
129
+ ${import_picocolors9.default.magenta("@storybook/addon-a11y")} now integrates with ${import_picocolors9.default.magenta("@storybook/experimental-addon-test")} to provide automatic accessibility checks for your stories, powered by Axe and Vitest.
130
+ `],counter=1;if(!skipVitestSetupTransformation)if(transformedSetupCode===null)prompt.push(import_ts_dedent5.dedent`
131
+ ${counter++}) We couldn't find or automatically update ${import_picocolors9.default.cyan(".storybook/vitest.setup.<ts|js>")} in your project to smoothly set up project annotations from ${import_picocolors9.default.magenta("@storybook/addon-a11y")}.
132
+ Please manually update your ${import_picocolors9.default.cyan("vitest.setup.ts")} file to include the following:
133
+
134
+ ${import_picocolors9.default.gray("...")}
135
+ ${import_picocolors9.default.green('+ import * as a11yAddonAnnotations from "@storybook/addon-a11y/preview";')}
136
+
137
+ ${import_picocolors9.default.gray("const annotations = setProjectAnnotations([")}
138
+ ${import_picocolors9.default.gray(" ...")}
139
+ ${import_picocolors9.default.green("+ a11yAddonAnnotations,")}
140
+ ${import_picocolors9.default.gray("]);")}
141
+
142
+ ${import_picocolors9.default.gray("beforeAll(annotations.beforeAll);")}
143
+ `);else{let fileExtensionSetupFile=import_path2.default.extname(setupFile);prompt.push(import_ts_dedent5.dedent`${counter++}) We have to update your ${import_picocolors9.default.cyan(`.storybook/vitest.setup${fileExtensionSetupFile}`)} file to set up project annotations from ${import_picocolors9.default.magenta("@storybook/addon-a11y")}.`)}if(!skipPreviewTransformation)if(transformedPreviewCode===null)prompt.push(import_ts_dedent5.dedent`
144
+ ${counter++}) We couldn't find or automatically update your ${import_picocolors9.default.cyan(".storybook/preview.<ts|js>")} in your project to smoothly set up ${import_picocolors9.default.yellow("parameters.a11y.test")} from ${import_picocolors9.default.magenta("@storybook/addon-a11y")}.
145
+ Please manually update your ${import_picocolors9.default.cyan(".storybook/preview.<ts|js>")} file to include the following:
146
+
147
+ ${import_picocolors9.default.gray("export default {")}
148
+ ${import_picocolors9.default.gray(" ...")}
149
+ ${import_picocolors9.default.gray(" parameters: {")}
150
+ ${import_picocolors9.default.green("+ a11y: {")}
151
+ ${import_picocolors9.default.gray('+ test: "todo"')}
152
+ ${import_picocolors9.default.green("+ }")}
153
+ ${import_picocolors9.default.gray(" }")}
154
+ ${import_picocolors9.default.gray("}")}
155
+ `);else{let fileExtensionPreviewFile=import_path2.default.extname(previewFile);prompt.push(import_ts_dedent5.dedent`
156
+ ${counter++}) We have to update your ${import_picocolors9.default.cyan(`.storybook/preview${fileExtensionPreviewFile}`)} file to set up ${import_picocolors9.default.yellow("parameters.a11y.test")} from ${import_picocolors9.default.magenta("@storybook/addon-a11y")}.
157
+ `)}return(transformedPreviewCode===null||transformedSetupCode===null)&&prompt.push(import_ts_dedent5.dedent`
130
158
  For more information, please refer to the accessibility addon documentation:
131
- ${import_picocolors6.default.cyan("https://storybook.js.org/docs/writing-tests/accessibility-testing#test-addon-integration")}
132
- `),prompt2.join(`
159
+ ${import_picocolors9.default.cyan("https://storybook.js.org/docs/writing-tests/accessibility-testing#test-addon-integration")}
160
+ `),prompt.join(`
133
161
 
134
- `)},async run({result}){let{setupFile,transformedSetupCode,transformedPreviewCode,previewFile}=result;transformedSetupCode&&setupFile&&(0,import_fs.writeFileSync)(setupFile,transformedSetupCode,"utf8"),transformedPreviewCode&&previewFile&&(0,import_fs.writeFileSync)(previewFile,transformedPreviewCode,"utf8")}};function transformSetupFile(source){let j=jscodeshift.withParser("ts"),root=j(source),importDeclaration=j.importDeclaration([j.importNamespaceSpecifier(j.identifier("a11yAddonAnnotations"))],j.literal("@storybook/addon-a11y/preview")),setProjectAnnotationsCall=root.find(j.CallExpression,{callee:{type:"Identifier",name:"setProjectAnnotations"}});if(setProjectAnnotationsCall.length===0)throw new Error("Could not find setProjectAnnotations call in vitest.setup file");return setProjectAnnotationsCall.forEach(p=>{if(p.value.arguments.length===1&&p.value.arguments[0].type==="ArrayExpression")p.value.arguments[0].elements.unshift(j.identifier("a11yAddonAnnotations"));else if(p.value.arguments.length===1&&p.value.arguments[0].type==="Identifier"){let arg=p.value.arguments[0];p.value.arguments[0]=j.arrayExpression([j.identifier("a11yAddonAnnotations"),arg])}}),root.get().node.program.body.unshift(importDeclaration),root.toSource()}async function transformPreviewFile(source,filePath){let previewConfig=(0,import_csf_tools3.loadConfig)(source).parse(),tags=previewConfig.getFieldNode(["tags"]),tagsNode=previewConfig.getFieldNode(["tags"]),tagsValue=previewConfig.getFieldValue(["tags"])??[];if(tags&&tagsValue&&(tagsValue.includes("a11y-test")||tagsValue.includes("!a11y-test")))return source;if(tagsNode){let tagsElementsLength=tagsNode.elements.length,lastTagElement=tagsNode.elements[tagsElementsLength-1];lastTagElement&&(lastTagElement.comments=[{type:"CommentBlock",leading:!1,trailing:!0,value:', "a11y-test"'}],previewConfig.setFieldNode(["tags"],tagsNode))}else previewConfig.setFieldValue(["tags"],["a11y-test"]);let formattedPreviewConfig=(0,import_csf_tools3.formatConfig)(previewConfig),lines=formattedPreviewConfig.split(`
135
- `),tagsLineIndex=lines.findIndex(line=>line.includes("tags: ["));if(tagsLineIndex===-1)return formattedPreviewConfig;lines[tagsLineIndex]=lines[tagsLineIndex].replace("['a11y-test']","[/*'a11y-test'*/]"),lines[tagsLineIndex]=lines[tagsLineIndex].replace('["a11y-test"]','[/*"a11y-test"*/]');let indentation=lines[tagsLineIndex]?.match(/^\s*/)?.[0],comment=`${indentation}// The \`a11y-test\` tag controls whether accessibility tests are run as part of a standalone Vitest test run
136
- ${indentation}// The tag and its behavior are experimental and subject to change.
137
- ${indentation}// For more information please see: https://storybook.js.org/docs/writing-tests/accessibility-testing#configure-accessibility-tests-with-the-test-addon`;return lines.splice(tagsLineIndex,0,comment),(0,import_common8.formatFileContent)(filePath,lines.join(`
138
- `))}var import_picocolors7=__toESM(require_picocolors(),1),import_ts_dedent5=require("ts-dedent");var addonPostCSS={id:"addon-postcss",versionRange:["*","*"],promptType:"notification",async check({mainConfig}){return!getAddonNames(mainConfig).find(addon=>addon.includes("@storybook/addon-postcss"))?null:{hasAddonPostcss:!0}},prompt(){return import_ts_dedent5.dedent`
139
- ${import_picocolors7.default.bold("Attention")}: We've detected that you're using the following package which is incompatible with Storybook 8 and beyond:
162
+ `)},async run({result}){let{setupFile,transformedSetupCode,transformedPreviewCode,previewFile}=result;transformedSetupCode&&setupFile&&(0,import_fs2.writeFileSync)(setupFile,transformedSetupCode,"utf8"),transformedPreviewCode&&previewFile&&(0,import_fs2.writeFileSync)(previewFile,transformedPreviewCode,"utf8")}};function transformSetupFile(source){let j=jscodeshift.withParser("ts"),root=j(source),importDeclaration=j.importDeclaration([j.importNamespaceSpecifier(j.identifier("a11yAddonAnnotations"))],j.literal("@storybook/addon-a11y/preview")),setProjectAnnotationsCall=root.find(j.CallExpression,{callee:{type:"Identifier",name:"setProjectAnnotations"}});if(setProjectAnnotationsCall.length===0)throw new Error("Could not find setProjectAnnotations call in vitest.setup file");return setProjectAnnotationsCall.forEach(p=>{if(p.value.arguments.length===1&&p.value.arguments[0].type==="ArrayExpression")p.value.arguments[0].elements.unshift(j.identifier("a11yAddonAnnotations"));else if(p.value.arguments.length===1&&p.value.arguments[0].type==="Identifier"){let arg=p.value.arguments[0];p.value.arguments[0]=j.arrayExpression([j.identifier("a11yAddonAnnotations"),arg])}}),root.get().node.program.body.unshift(importDeclaration),root.toSource()}function transformPreviewFile(source,filePath){if(!shouldPreviewFileBeTransformed(source))return source;let previewConfig=(0,import_csf_tools5.loadConfig)(source).parse();previewConfig.setFieldValue(["parameters","a11y","test"],"todo");let formattedPreviewConfig=(0,import_csf_tools5.formatConfig)(previewConfig),lines=formattedPreviewConfig.split(`
163
+ `),parametersLineIndex=lines.findIndex(line=>line.includes('test: "todo"')||line.includes("test: 'todo'"));if(parametersLineIndex===-1)return formattedPreviewConfig;let indentation=lines[parametersLineIndex]?.match(/^\s*/)?.[0],comment=`${indentation}// 'todo' - show a11y violations in the test UI only
164
+ ${indentation}// 'error' - fail CI on a11y violations
165
+ ${indentation}// 'off' - skip a11y checks entirely`;return lines.splice(parametersLineIndex,0,comment),(0,import_common11.formatFileContent)(filePath,lines.join(`
166
+ `))}function shouldPreviewFileBeTransformed(source){return!(0,import_csf_tools5.loadConfig)(source).parse().getFieldNode(["parameters","a11y","test"])}var import_common12=require("storybook/internal/common"),import_picocolors10=__toESM(require_picocolors(),1),import_ts_dedent6=require("ts-dedent"),addonPostCSS={id:"addon-postcss",versionRange:["*","*"],promptType:"notification",async check({mainConfig}){return!(0,import_common12.getAddonNames)(mainConfig).find(addon=>addon.includes("@storybook/addon-postcss"))?null:{hasAddonPostcss:!0}},prompt(){return import_ts_dedent6.dedent`
167
+ ${import_picocolors10.default.bold("Attention")}: We've detected that you're using the following package which is incompatible with Storybook 8 and beyond:
140
168
 
141
- - ${import_picocolors7.default.cyan("@storybook/addon-postcss")}
169
+ - ${import_picocolors10.default.cyan("@storybook/addon-postcss")}
142
170
 
143
- Please migrate to ${import_picocolors7.default.cyan("@storybook/addon-styling-webpack")} once you're done upgrading.
144
- `}};var import_picocolors8=__toESM(require_picocolors(),1),import_ts_dedent6=require("ts-dedent"),addonsAPI={id:"addons-api",versionRange:["*","*"],promptType:"notification",async check({packageManager}){return!(await packageManager.getAllDependencies())["@storybook/addons"]?null:{usesAddonsAPI:!0}},prompt(){return import_ts_dedent6.dedent`
145
- ${import_picocolors8.default.bold("Attention")}: We've detected that you're using the following package which is removed in Storybook 8 and beyond:
171
+ Please migrate to ${import_picocolors10.default.cyan("@storybook/addon-styling-webpack")} once you're done upgrading.
172
+ `}};var import_picocolors11=__toESM(require_picocolors(),1),import_ts_dedent7=require("ts-dedent"),addonsAPI={id:"addons-api",versionRange:["*","*"],promptType:"notification",async check({packageManager}){return!(await packageManager.getAllDependencies())["@storybook/addons"]?null:{usesAddonsAPI:!0}},prompt(){return import_ts_dedent7.dedent`
173
+ ${import_picocolors11.default.bold("Attention")}: We've detected that you're using the following package which is removed in Storybook 8 and beyond:
146
174
 
147
- - ${import_picocolors8.default.cyan("@storybook/addons")}
175
+ - ${import_picocolors11.default.cyan("@storybook/addons")}
148
176
 
149
- This package has been deprecated and replaced with ${import_picocolors8.default.cyan("@storybook/preview-api")} and ${import_picocolors8.default.cyan("@storybook/manager-api")}.
177
+ This package has been deprecated and replaced with ${import_picocolors11.default.cyan("@storybook/preview-api")} and ${import_picocolors11.default.cyan("@storybook/manager-api")}.
150
178
 
151
179
  You can find more information about the new addons API in the migration guide:
152
- ${import_picocolors8.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#new-addons-api")}
153
- `}};var import_cli2=require("storybook/internal/cli"),import_picocolors9=__toESM(require_picocolors(),1),import_prompts2=__toESM(require("prompts"),1),import_ts_dedent7=require("ts-dedent");var angularBuilders={id:"angular-builders",versionRange:["<7",">=7"],async check({packageManager,mainConfig}){let angularVersion=await packageManager.getPackageVersion("@angular/core"),framewworkPackageName=getFrameworkPackageName(mainConfig);if(!angularVersion||await(0,import_cli2.isNxProject)()||framewworkPackageName!=="@storybook/angular")return null;let angularJSON=new import_cli2.AngularJSON,{hasStorybookBuilder}=angularJSON;return hasStorybookBuilder||!angularJSON.rootProject&&Object.keys(angularJSON.projects).length>1?null:{mainConfig,packageManager}},prompt(){return import_ts_dedent7.dedent`
180
+ ${import_picocolors11.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#new-addons-api")}
181
+ `}};var import_cli2=require("storybook/internal/cli"),import_picocolors12=__toESM(require_picocolors(),1),import_prompts3=__toESM(require("prompts"),1),import_ts_dedent8=require("ts-dedent");var angularBuilders={id:"angular-builders",versionRange:["<7",">=7"],async check({packageManager,mainConfig}){let angularVersion=await packageManager.getPackageVersion("@angular/core"),framewworkPackageName=getFrameworkPackageName(mainConfig);if(!angularVersion||await(0,import_cli2.isNxProject)()||framewworkPackageName!=="@storybook/angular")return null;let angularJSON=new import_cli2.AngularJSON,{hasStorybookBuilder}=angularJSON;return hasStorybookBuilder||!angularJSON.rootProject&&Object.keys(angularJSON.projects).length>1?null:{mainConfig,packageManager}},prompt(){return import_ts_dedent8.dedent`
154
182
  We have detected that your project does not use the Storybook Angular builder yet. In Storybook 6.4 we deprecated calling Storybook directly (npm run storybook) for Angular. In Storybook 7.0, we've removed it entirely.
155
183
 
156
184
  In order to use the Storybook Angular builder, we need to add a few entries to your angular.json file. Additionally, we will add the @compodoc/compodoc package to your devDependencies if you want and we will add a few scripts to your package.json file.
157
185
 
158
186
  Also feel free to remove the Compodoc script from your package.json file if you don't use it apart from Storybook anymore. Storybook uses Compodoc internally and you don't have to call in separately anymore.
159
187
 
160
- Read more about the Angular builder here: ${import_picocolors9.default.yellow("https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular#how-do-i-migrate-to-an-angular-storybook-builder")}
161
- `},async run({result}){let angularJSON=new import_cli2.AngularJSON,{packageManager}=result,{useCompoDoc}=await(0,import_prompts2.default)({type:"confirm",name:"useCompoDoc",message:"Have you set up compodoc in Storybook previously?"}),angularProjectName=await angularJSON.getProjectName();angularJSON.addStorybookEntries({angularProjectName,storybookFolder:".storybook",useCompodoc:useCompoDoc,root:"."}),angularJSON.write(),await packageManager.addScripts({storybook:`ng run ${angularProjectName}:storybook`,"build-storybook":`ng run ${angularProjectName}:build-storybook`})}};var import_cli3=require("storybook/internal/cli"),import_picocolors10=__toESM(require_picocolors(),1),import_semver5=__toESM(require("semver"),1),import_ts_dedent8=require("ts-dedent");var angularBuildersMultiproject={id:"angular-builders-multiproject",promptType:"manual",versionRange:["<7",">=7"],async check({packageManager,mainConfig}){let angularVersion=await packageManager.getPackageVersion("@angular/core"),frameworkPackageName=getFrameworkPackageName(mainConfig);if(await(0,import_cli3.isNxProject)()||frameworkPackageName!=="@storybook/angular"||!angularVersion||import_semver5.default.lt(angularVersion,"14.0.0"))return null;let angularJSON=new import_cli3.AngularJSON,{hasStorybookBuilder}=angularJSON;return hasStorybookBuilder||angularJSON.rootProject||Object.keys(angularJSON.projects).length===1?null:{}},prompt(){return import_ts_dedent8.dedent`
162
- In Storybook 6.4 we have deprecated calling Storybook directly (npm run storybook) for Angular. In Storybook 7.0, we've removed it entirely. Instead you have to set up the Storybook builder in your ${import_picocolors10.default.yellow("angular.json")} and execute ${import_picocolors10.default.yellow("ng run <your-project>:storybook")} to start Storybook.
188
+ Read more about the Angular builder here: ${import_picocolors12.default.yellow("https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular#how-do-i-migrate-to-an-angular-storybook-builder")}
189
+ `},async run({result}){let angularJSON=new import_cli2.AngularJSON,{packageManager}=result,{useCompoDoc}=await(0,import_prompts3.default)({type:"confirm",name:"useCompoDoc",message:"Have you set up compodoc in Storybook previously?"}),angularProjectName=await angularJSON.getProjectName();angularJSON.addStorybookEntries({angularProjectName,storybookFolder:".storybook",useCompodoc:useCompoDoc,root:"."}),angularJSON.write(),await packageManager.addScripts({storybook:`ng run ${angularProjectName}:storybook`,"build-storybook":`ng run ${angularProjectName}:build-storybook`})}};var import_cli3=require("storybook/internal/cli"),import_picocolors13=__toESM(require_picocolors(),1),import_semver5=__toESM(require("semver"),1),import_ts_dedent9=require("ts-dedent");var angularBuildersMultiproject={id:"angular-builders-multiproject",promptType:"manual",versionRange:["<7",">=7"],async check({packageManager,mainConfig}){let angularVersion=await packageManager.getPackageVersion("@angular/core"),frameworkPackageName=getFrameworkPackageName(mainConfig);if(await(0,import_cli3.isNxProject)()||frameworkPackageName!=="@storybook/angular"||!angularVersion||import_semver5.default.lt(angularVersion,"14.0.0"))return null;let angularJSON=new import_cli3.AngularJSON,{hasStorybookBuilder}=angularJSON;return hasStorybookBuilder||angularJSON.rootProject||Object.keys(angularJSON.projects).length===1?null:{}},prompt(){return import_ts_dedent9.dedent`
190
+ In Storybook 6.4 we have deprecated calling Storybook directly (npm run storybook) for Angular. In Storybook 7.0, we've removed it entirely. Instead you have to set up the Storybook builder in your ${import_picocolors13.default.yellow("angular.json")} and execute ${import_picocolors13.default.yellow("ng run <your-project>:storybook")} to start Storybook.
163
191
 
164
- ❌ Your Angular workspace uses multiple projects defined in the ${import_picocolors10.default.yellow("angular.json")} file and we were not able to detect a root project. Therefore we are not able to automigrate to use Angular Storybook builder. Instead, please visit ${import_picocolors10.default.yellow("https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular")} to do the migration manually.
165
- `}};var import_csf_tools4=require("storybook/internal/csf-tools"),import_picocolors11=__toESM(require_picocolors(),1),import_ts_dedent9=require("ts-dedent");var logger3=console,MIGRATION="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-docsautodocs-is-deprecated",autodocsTags={id:"autodocs-tags",versionRange:["*.*.*",">=8.0.*"],async check({mainConfig,mainConfigPath,previewConfigPath}){let autodocs=mainConfig?.docs?.autodocs;if(autodocs===void 0)return null;if(autodocs===!0&&!previewConfigPath)throw Error(import_ts_dedent9.dedent`
166
- ❌ Failed to remove the deprecated ${import_picocolors11.default.cyan("docs.autodocs")} setting from ${import_picocolors11.default.cyan(mainConfigPath)}.
192
+ ❌ Your Angular workspace uses multiple projects defined in the ${import_picocolors13.default.yellow("angular.json")} file and we were not able to detect a root project. Therefore we are not able to automigrate to use Angular Storybook builder. Instead, please visit ${import_picocolors13.default.yellow("https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular")} to do the migration manually.
193
+ `}};var import_csf_tools6=require("storybook/internal/csf-tools"),import_picocolors14=__toESM(require_picocolors(),1),import_ts_dedent10=require("ts-dedent");var logger5=console,MIGRATION="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-docsautodocs-is-deprecated",autodocsTags={id:"autodocs-tags",versionRange:["*.*.*",">=8.0.*"],async check({mainConfig,mainConfigPath,previewConfigPath}){let autodocs=mainConfig?.docs?.autodocs;if(autodocs===void 0)return null;if(autodocs===!0&&!previewConfigPath)throw Error(import_ts_dedent10.dedent`
194
+ ❌ Failed to remove the deprecated ${import_picocolors14.default.cyan("docs.autodocs")} setting from ${import_picocolors14.default.cyan(mainConfigPath)}.
167
195
 
168
- There is no preview config file in which to add the ${import_picocolors11.default.cyan("autodocs")} tag.
196
+ There is no preview config file in which to add the ${import_picocolors14.default.cyan("autodocs")} tag.
169
197
 
170
- Please perform the migration by hand: ${import_picocolors11.default.yellow(MIGRATION)}
171
- `);return{autodocs,mainConfigPath,previewConfigPath}},prompt({autodocs,mainConfigPath,previewConfigPath}){let falseMessage="",trueMessage="";return autodocs===!1?falseMessage=import_ts_dedent9.dedent`
198
+ Please perform the migration by hand: ${import_picocolors14.default.yellow(MIGRATION)}
199
+ `);return{autodocs,mainConfigPath,previewConfigPath}},prompt({autodocs,mainConfigPath,previewConfigPath}){let falseMessage="",trueMessage="";return autodocs===!1?falseMessage=import_ts_dedent10.dedent`
172
200
 
173
201
 
174
- There is no ${import_picocolors11.default.cyan("docs.autodocs = false")} equivalent.
175
- You'll need to check your stories to ensure none are tagged with ${import_picocolors11.default.cyan("autodocs")}.
176
- `:autodocs===!0&&(trueMessage=` and update ${import_picocolors11.default.cyan(previewConfigPath)}`),import_ts_dedent9.dedent`
177
- The ${import_picocolors11.default.cyan("docs.autodocs")} setting in ${import_picocolors11.default.cyan(mainConfigPath)} is deprecated.${falseMessage}
202
+ There is no ${import_picocolors14.default.cyan("docs.autodocs = false")} equivalent.
203
+ You'll need to check your stories to ensure none are tagged with ${import_picocolors14.default.cyan("autodocs")}.
204
+ `:autodocs===!0&&(trueMessage=` and update ${import_picocolors14.default.cyan(previewConfigPath)}`),import_ts_dedent10.dedent`
205
+ The ${import_picocolors14.default.cyan("docs.autodocs")} setting in ${import_picocolors14.default.cyan(mainConfigPath)} is deprecated.${falseMessage}
178
206
 
179
- Learn more: ${import_picocolors11.default.yellow(MIGRATION)}
207
+ Learn more: ${import_picocolors14.default.yellow(MIGRATION)}
180
208
 
181
- Remove ${import_picocolors11.default.cyan("docs.autodocs")}${trueMessage}?
182
- `},async run({dryRun,mainConfigPath,result}){if(!dryRun){if(result.autodocs===!0){logger3.info(`\u2705 Adding "autodocs" tag to ${result.previewConfigPath}`);let previewConfig=await(0,import_csf_tools4.readConfig)(result.previewConfigPath);previewConfig.getFieldNode(["tags"])?previewConfig.appendValueToArray(["tags"],"autodocs"):previewConfig.setFieldValue(["tags"],["autodocs"]),await(0,import_csf_tools4.writeConfig)(previewConfig)}await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger3.info(`\u2705 Removing "docs.autodocs" from ${mainConfigPath}`),main.removeField(["docs","autodocs"])})}}};var import_picocolors12=__toESM(require_picocolors(),1),import_ts_dedent10=require("ts-dedent");var logger4=console,autodocsTrue={id:"autodocsTrue",versionRange:["<7",">=7"],async check({mainConfig}){let{docs}=mainConfig,docsPageToAutodocsMapping={true:"tag",automatic:!0,false:!1};if(docs?.docsPage){let oldValue=docs?.docsPage.toString();if(!(oldValue in docsPageToAutodocsMapping))throw new Error(`Unexpected value for docs.docsPage: ${oldValue}`);return{value:docsPageToAutodocsMapping[oldValue]}}return docs?.autodocs===void 0?{value:!0}:null},prompt({value}){let autodocsFormatted=import_picocolors12.default.cyan(`docs: { autodocs: ${JSON.stringify(value??!0)} }`),tagWarning=import_ts_dedent10.dedent`
209
+ Remove ${import_picocolors14.default.cyan("docs.autodocs")}${trueMessage}?
210
+ `},async run({dryRun,mainConfigPath,result}){if(!dryRun){if(result.autodocs===!0){logger5.info(`\u2705 Adding "autodocs" tag to ${result.previewConfigPath}`);let previewConfig=await(0,import_csf_tools6.readConfig)(result.previewConfigPath);previewConfig.getFieldNode(["tags"])?previewConfig.appendValueToArray(["tags"],"autodocs"):previewConfig.setFieldValue(["tags"],["autodocs"]),await(0,import_csf_tools6.writeConfig)(previewConfig)}await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger5.info(`\u2705 Removing "docs.autodocs" from ${mainConfigPath}`),main.removeField(["docs","autodocs"])})}}};var import_picocolors15=__toESM(require_picocolors(),1),import_ts_dedent11=require("ts-dedent");var logger6=console,autodocsTrue={id:"autodocsTrue",versionRange:["<7",">=7"],async check({mainConfig}){let{docs}=mainConfig,docsPageToAutodocsMapping={true:"tag",automatic:!0,false:!1};if(docs?.docsPage){let oldValue=docs?.docsPage.toString();if(!(oldValue in docsPageToAutodocsMapping))throw new Error(`Unexpected value for docs.docsPage: ${oldValue}`);return{value:docsPageToAutodocsMapping[oldValue]}}return docs?.autodocs===void 0?{value:!0}:null},prompt({value}){let autodocsFormatted=import_picocolors15.default.cyan(`docs: { autodocs: ${JSON.stringify(value??!0)} }`),tagWarning=import_ts_dedent11.dedent`
183
211
  NOTE: if you're upgrading from an older 7.0-beta using the 'docsPage' tag,
184
212
  please update your story files to use the 'autodocs' tag instead.
185
- `;return value?import_ts_dedent10.dedent`
213
+ `;return value?import_ts_dedent11.dedent`
186
214
  We've changed the configuration of autodocs (previous docsPage), so now the value:
187
215
  - docs.autodocs: true -- means automatically create docs for every CSF file
188
216
  - docs.autodocs: 'tag' -- means only create autodocs for CSF files with the 'autodocs' tag
@@ -192,69 +220,69 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
192
220
 
193
221
  ${autodocsFormatted}
194
222
  ${value==="tag"?tagWarning:""}
195
- More info: ${import_picocolors12.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#autodocs-changes")}
196
- `:import_ts_dedent10.dedent`
223
+ More info: ${import_picocolors15.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#autodocs-changes")}
224
+ `:import_ts_dedent11.dedent`
197
225
  We've detected that your main.js configuration file has not configured autodocs. In 6.x we
198
226
  we defaulted to having a autodocs for every story, in 7.x you need to opt in per-component.
199
227
  However, we can set the \`docs.autodocs\` to true to approximate the old behaviour:
200
228
 
201
229
  ${autodocsFormatted}
202
230
 
203
- More info: ${import_picocolors12.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#autodocs-changes")}
204
- `},async run({result:{value},dryRun,mainConfigPath}){logger4.info("\u2705 Setting 'docs.autodocs' to true in main.js"),dryRun||await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{main.removeField(["docs","docsPage"]),main.setFieldValue(["docs","autodocs"],value??!0)})}};var import_cli4=require("storybook/internal/cli"),import_csf_tools5=require("storybook/internal/csf-tools"),import_picocolors13=__toESM(require_picocolors(),1),import_ts_dedent11=require("ts-dedent");var logger5=console,builderVite={id:"builder-vite",versionRange:["<7",">=7"],async check({packageManager,mainConfig}){let packageJson=await packageManager.retrievePackageJson(),builder=mainConfig.core?.builder;return(typeof builder=="string"?builder:builder?.name)!=="storybook-builder-vite"?null:{builder,packageJson}},prompt({builder}){let builderFormatted=import_picocolors13.default.cyan(JSON.stringify(builder,null,2));return import_ts_dedent11.dedent`
231
+ More info: ${import_picocolors15.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#autodocs-changes")}
232
+ `},async run({result:{value},dryRun,mainConfigPath}){logger6.info("\u2705 Setting 'docs.autodocs' to true in main.js"),dryRun||await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{main.removeField(["docs","docsPage"]),main.setFieldValue(["docs","autodocs"],value??!0)})}};var import_cli4=require("storybook/internal/cli"),import_csf_tools7=require("storybook/internal/csf-tools"),import_picocolors16=__toESM(require_picocolors(),1),import_ts_dedent12=require("ts-dedent");var logger7=console,builderVite={id:"builder-vite",versionRange:["<7",">=7"],async check({packageManager,mainConfig}){let packageJson=await packageManager.retrievePackageJson(),builder=mainConfig.core?.builder;return(typeof builder=="string"?builder:builder?.name)!=="storybook-builder-vite"?null:{builder,packageJson}},prompt({builder}){let builderFormatted=import_picocolors16.default.cyan(JSON.stringify(builder,null,2));return import_ts_dedent12.dedent`
205
233
  We've detected you're using the community vite builder: ${builderFormatted}
206
234
 
207
- 'storybook-builder-vite' is deprecated and now located at ${import_picocolors13.default.cyan("@storybook/builder-vite")}.
235
+ 'storybook-builder-vite' is deprecated and now located at ${import_picocolors16.default.cyan("@storybook/builder-vite")}.
208
236
 
209
237
  We can upgrade your project to use the new builder automatically.
210
238
 
211
- More info: ${import_picocolors13.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-renamed")}
212
- `},async run({result:{builder,packageJson},packageManager,dryRun,mainConfigPath}){let{dependencies={},devDependencies={}}=packageJson;if(logger5.info("\u2705 Removing existing 'storybook-builder-vite' dependency"),dryRun||(delete dependencies["storybook-builder-vite"],delete devDependencies["storybook-builder-vite"],await packageManager.writePackageJson(packageJson)),logger5.info("\u2705 Adding '@storybook/builder-vite' as dev dependency"),!dryRun){let versionToInstall=(0,import_cli4.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson());await packageManager.addDependencies({installAsDevDependencies:!0},[`@storybook/builder-vite@${versionToInstall}`])}logger5.info("\u2705 Updating main.js to use vite builder"),dryRun||await updateMainConfig({dryRun:!!dryRun,mainConfigPath},async main=>{let updatedBuilder=typeof builder=="string"?"@storybook/builder-vite":{name:"@storybook/builder-vite",options:builder.options};main.setFieldValue(["core","builder"],updatedBuilder),await(0,import_csf_tools5.writeConfig)(main)})}};var import_picocolors16=__toESM(require_picocolors(),1),import_semver8=__toESM(require("semver"),1),import_ts_dedent14=require("ts-dedent");var import_picocolors14=__toESM(require_picocolors(),1),import_semver6=__toESM(require("semver"),1),import_ts_dedent12=require("ts-dedent");var logger6=console,checkWebpack5Builder=async({mainConfig,storybookVersion})=>{if(import_semver6.default.lt(storybookVersion,"6.3.0"))return logger6.warn(import_ts_dedent12.dedent`
239
+ More info: ${import_picocolors16.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-renamed")}
240
+ `},async run({result:{builder,packageJson},packageManager,dryRun,mainConfigPath}){let{dependencies={},devDependencies={}}=packageJson;if(logger7.info("\u2705 Removing existing 'storybook-builder-vite' dependency"),dryRun||(delete dependencies["storybook-builder-vite"],delete devDependencies["storybook-builder-vite"],await packageManager.writePackageJson(packageJson)),logger7.info("\u2705 Adding '@storybook/builder-vite' as dev dependency"),!dryRun){let versionToInstall=(0,import_cli4.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson());await packageManager.addDependencies({installAsDevDependencies:!0},[`@storybook/builder-vite@${versionToInstall}`])}logger7.info("\u2705 Updating main.js to use vite builder"),dryRun||await updateMainConfig({dryRun:!!dryRun,mainConfigPath},async main=>{let updatedBuilder=typeof builder=="string"?"@storybook/builder-vite":{name:"@storybook/builder-vite",options:builder.options};main.setFieldValue(["core","builder"],updatedBuilder),await(0,import_csf_tools7.writeConfig)(main)})}};var import_picocolors19=__toESM(require_picocolors(),1),import_semver8=__toESM(require("semver"),1),import_ts_dedent15=require("ts-dedent");var import_picocolors17=__toESM(require_picocolors(),1),import_semver6=__toESM(require("semver"),1),import_ts_dedent13=require("ts-dedent");var logger8=console,checkWebpack5Builder=async({mainConfig,storybookVersion})=>{if(import_semver6.default.lt(storybookVersion,"6.3.0"))return logger8.warn(import_ts_dedent13.dedent`
213
241
  Detected SB 6.3 or below, please upgrade storybook to use webpack5.
214
242
 
215
243
  To upgrade to the latest stable release, run this from your project directory:
216
244
 
217
- ${import_picocolors14.default.cyan("npx storybook@latest upgrade")}
245
+ ${import_picocolors17.default.cyan("npx storybook@latest upgrade")}
218
246
 
219
247
  To upgrade to the latest pre-release, run this from your project directory:
220
248
 
221
- ${import_picocolors14.default.cyan("npx storybook@next upgrade")}
222
- `.trim()),null;if(import_semver6.default.gte(storybookVersion,"7.0.0"))return null;if(!mainConfig)return logger6.warn("Unable to find storybook main.js config"),null;let builderPackageName=getBuilderPackageName(mainConfig);return builderPackageName&&builderPackageName!=="webpack4"?(logger6.info(`Found builder ${builderPackageName}, skipping`),null):{storybookVersion}};var import_picocolors15=__toESM(require_picocolors(),1),import_semver7=__toESM(require("semver"),1),import_ts_dedent13=require("ts-dedent");var logger7=console,webpack5={id:"webpack5",versionRange:["<7",">=7"],async check({packageManager,mainConfig,storybookVersion}){let webpackVersion=await packageManager.getPackageVersion("webpack");if(!webpackVersion||import_semver7.default.lt(webpackVersion,"5.0.0")||import_semver7.default.gte(webpackVersion,"6.0.0"))return null;let builderInfo=await checkWebpack5Builder({mainConfig,storybookVersion});return builderInfo?{webpackVersion,...builderInfo}:null},prompt({webpackVersion}){let webpackFormatted=import_picocolors15.default.cyan(`webpack ${webpackVersion}`);return import_ts_dedent13.dedent`
249
+ ${import_picocolors17.default.cyan("npx storybook@next upgrade")}
250
+ `.trim()),null;if(import_semver6.default.gte(storybookVersion,"7.0.0"))return null;if(!mainConfig)return logger8.warn("Unable to find storybook main.js config"),null;let builderPackageName=getBuilderPackageName(mainConfig);return builderPackageName&&builderPackageName!=="webpack4"?(logger8.info(`Found builder ${builderPackageName}, skipping`),null):{storybookVersion}};var import_picocolors18=__toESM(require_picocolors(),1),import_semver7=__toESM(require("semver"),1),import_ts_dedent14=require("ts-dedent");var logger9=console,webpack5={id:"webpack5",versionRange:["<7",">=7"],async check({packageManager,mainConfig,storybookVersion}){let webpackVersion=await packageManager.getPackageVersion("webpack");if(!webpackVersion||import_semver7.default.lt(webpackVersion,"5.0.0")||import_semver7.default.gte(webpackVersion,"6.0.0"))return null;let builderInfo=await checkWebpack5Builder({mainConfig,storybookVersion});return builderInfo?{webpackVersion,...builderInfo}:null},prompt({webpackVersion}){let webpackFormatted=import_picocolors18.default.cyan(`webpack ${webpackVersion}`);return import_ts_dedent14.dedent`
223
251
  We've detected you're running ${webpackFormatted}.
224
252
  Your Storybook's main.js files specifies webpack4, which is incompatible.
225
253
 
226
- To run Storybook in webpack5-mode, we can install Storybook's ${import_picocolors15.default.cyan("@storybook/builder-webpack5")} for you.
254
+ To run Storybook in webpack5-mode, we can install Storybook's ${import_picocolors18.default.cyan("@storybook/builder-webpack5")} for you.
227
255
 
228
- More info: ${import_picocolors15.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#webpack-5-manager-build")}
229
- `},async run({result:{storybookVersion,webpackVersion},packageManager,dryRun,mainConfigPath}){let deps=[`@storybook/builder-webpack5@${storybookVersion}`];webpackVersion||deps.push("webpack@5"),logger7.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0},deps),logger7.info("\u2705 Setting `core.builder` to `@storybook/builder-webpack5` in main.js"),dryRun||await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{main.setFieldValue(["core","builder"],"@storybook/builder-webpack5")})}};var cra5={id:"cra5",versionRange:["<7",">=7"],async check({packageManager,mainConfig,storybookVersion}){let craVersion=await packageManager.getPackageVersion("react-scripts");if(!craVersion||import_semver8.default.lt(craVersion,"5.0.0"))return null;let builderInfo=await checkWebpack5Builder({mainConfig,storybookVersion});return builderInfo?{craVersion,...builderInfo}:null},prompt({craVersion}){let craFormatted=import_picocolors16.default.cyan(`Create React App (CRA) ${craVersion}`);return import_ts_dedent14.dedent`
256
+ More info: ${import_picocolors18.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#webpack-5-manager-build")}
257
+ `},async run({result:{storybookVersion,webpackVersion},packageManager,dryRun,mainConfigPath}){let deps=[`@storybook/builder-webpack5@${storybookVersion}`];webpackVersion||deps.push("webpack@5"),logger9.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0},deps),logger9.info("\u2705 Setting `core.builder` to `@storybook/builder-webpack5` in main.js"),dryRun||await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{main.setFieldValue(["core","builder"],"@storybook/builder-webpack5")})}};var cra5={id:"cra5",versionRange:["<7",">=7"],async check({packageManager,mainConfig,storybookVersion}){let craVersion=await packageManager.getPackageVersion("react-scripts");if(!craVersion||import_semver8.default.lt(craVersion,"5.0.0"))return null;let builderInfo=await checkWebpack5Builder({mainConfig,storybookVersion});return builderInfo?{craVersion,...builderInfo}:null},prompt({craVersion}){let craFormatted=import_picocolors19.default.cyan(`Create React App (CRA) ${craVersion}`);return import_ts_dedent15.dedent`
230
258
  We've detected you are running ${craFormatted} which is powered by webpack5.
231
259
  Your Storybook's main.js files specifies webpack4, which is incompatible.
232
260
 
233
- In order to work with your version of CRA, we need to install Storybook's ${import_picocolors16.default.cyan("@storybook/builder-webpack5")}.
261
+ In order to work with your version of CRA, we need to install Storybook's ${import_picocolors19.default.cyan("@storybook/builder-webpack5")}.
234
262
 
235
- More info: ${import_picocolors16.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#cra5-upgrade")}
236
- `},async run(options){return webpack5.run({...options,result:{webpackVersion:null,...options.result}})}};var import_cli5=require("storybook/internal/cli"),import_picocolors17=__toESM(require_picocolors(),1),import_ts_dedent15=require("ts-dedent"),logger8=console,eslintPlugin={id:"eslintPlugin",versionRange:["<8",">=7"],async check({packageManager}){let{hasEslint,isStorybookPluginInstalled}=await(0,import_cli5.extractEslintInfo)(packageManager);if(isStorybookPluginInstalled||!hasEslint)return null;let eslintFile=null,unsupportedExtension;try{eslintFile=(0,import_cli5.findEslintFile)()}catch(err){unsupportedExtension=String(err)}return!eslintFile||!unsupportedExtension?(logger8.warn("Unable to find .eslintrc config file, skipping"),null):{eslintFile,unsupportedExtension}},prompt(){return import_ts_dedent15.dedent`
263
+ More info: ${import_picocolors19.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#cra5-upgrade")}
264
+ `},async run(options){return webpack5.run({...options,result:{webpackVersion:null,...options.result}})}};var import_cli5=require("storybook/internal/cli"),import_picocolors20=__toESM(require_picocolors(),1),import_ts_dedent16=require("ts-dedent"),logger10=console,eslintPlugin={id:"eslintPlugin",versionRange:["<8",">=7"],async check({packageManager}){let{hasEslint,isStorybookPluginInstalled}=await(0,import_cli5.extractEslintInfo)(packageManager);if(isStorybookPluginInstalled||!hasEslint)return null;let eslintFile=null,unsupportedExtension;try{eslintFile=(0,import_cli5.findEslintFile)()}catch(err){unsupportedExtension=String(err)}return!eslintFile||!unsupportedExtension?(logger10.warn("Unable to find .eslintrc config file, skipping"),null):{eslintFile,unsupportedExtension}},prompt(){return import_ts_dedent16.dedent`
237
265
  We've detected you are not using our eslint-plugin.
238
266
 
239
267
  In order to have the best experience with Storybook and follow best practices, we advise you to install eslint-plugin-storybook.
240
268
 
241
- More info: ${import_picocolors17.default.yellow("https://github.com/storybookjs/eslint-plugin-storybook#readme")}
242
- `},async run({result:{eslintFile,unsupportedExtension},packageManager,dryRun,skipInstall}){let deps=["eslint-plugin-storybook"];if(logger8.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall},deps),!dryRun&&unsupportedExtension){logger8.info(import_ts_dedent15.dedent`
269
+ More info: ${import_picocolors20.default.yellow("https://github.com/storybookjs/eslint-plugin-storybook#readme")}
270
+ `},async run({result:{eslintFile,unsupportedExtension},packageManager,dryRun,skipInstall}){let deps=["eslint-plugin-storybook"];if(logger10.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall},deps),!dryRun&&unsupportedExtension){logger10.info(import_ts_dedent16.dedent`
243
271
  ⚠️ The plugin was successfully installed but failed to configure.
244
272
 
245
273
  Found an eslint config file with an unsupported automigration format: .eslintrc.${unsupportedExtension}.
246
274
  The supported formats for this automigration are: ${import_cli5.SUPPORTED_ESLINT_EXTENSIONS.join(", ")}.
247
275
 
248
276
  Please refer to https://github.com/storybookjs/eslint-plugin-storybook#usage to finish setting up the plugin manually.
249
- `);return}dryRun||await(0,import_cli5.configureEslintPlugin)(eslintFile,packageManager)}};var import_promises2=require("fs/promises"),import_csf_tools6=require("storybook/internal/csf-tools"),import_picocolors18=__toESM(require_picocolors(),1),import_ts_dedent16=require("ts-dedent"),MIGRATION2="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#previewjs-globals-renamed-to-initialglobals",initialGlobals={id:"initial-globals",versionRange:["*.*.*",">=8.0.*"],async check({previewConfigPath}){if(!previewConfigPath)return null;let previewConfig=(0,import_csf_tools6.loadConfig)((await(0,import_promises2.readFile)(previewConfigPath)).toString()).parse(),globals=previewConfig.getFieldNode(["globals"]);return globals?{globals,previewConfig,previewConfigPath}:null},prompt({previewConfigPath}){return import_ts_dedent16.dedent`
250
- The ${import_picocolors18.default.cyan("globals")} setting in ${import_picocolors18.default.cyan(previewConfigPath)} is deprecated
251
- and has been renamed to ${import_picocolors18.default.cyan("initialGlobals")}.
277
+ `);return}dryRun||await(0,import_cli5.configureEslintPlugin)(eslintFile,packageManager)}};var import_promises2=require("fs/promises"),import_csf_tools8=require("storybook/internal/csf-tools"),import_picocolors21=__toESM(require_picocolors(),1),import_ts_dedent17=require("ts-dedent"),MIGRATION2="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#previewjs-globals-renamed-to-initialglobals",initialGlobals={id:"initial-globals",versionRange:["*.*.*",">=8.0.*"],async check({previewConfigPath}){if(!previewConfigPath)return null;let previewConfig=(0,import_csf_tools8.loadConfig)((await(0,import_promises2.readFile)(previewConfigPath)).toString()).parse(),globals=previewConfig.getFieldNode(["globals"]);return globals?{globals,previewConfig,previewConfigPath}:null},prompt({previewConfigPath}){return import_ts_dedent17.dedent`
278
+ The ${import_picocolors21.default.cyan("globals")} setting in ${import_picocolors21.default.cyan(previewConfigPath)} is deprecated
279
+ and has been renamed to ${import_picocolors21.default.cyan("initialGlobals")}.
252
280
 
253
- Learn more: ${import_picocolors18.default.yellow(MIGRATION2)}
281
+ Learn more: ${import_picocolors21.default.yellow(MIGRATION2)}
254
282
 
255
- Rename ${import_picocolors18.default.cyan("globals")} to ${import_picocolors18.default.cyan("initalGlobals")}?
256
- `},async run({dryRun,result}){result.previewConfig.removeField(["globals"]),result.previewConfig.setFieldNode(["initialGlobals"],result.globals),dryRun||await(0,import_promises2.writeFile)(result.previewConfigPath,(0,import_csf_tools6.formatConfig)(result.previewConfig))}};var import_promises3=require("fs/promises"),import_node_path4=require("path"),import_picocolors19=__toESM(require_picocolors(),1),import_ts_dedent17=require("ts-dedent"),MDX1_STYLE_START=/<style>{`/g,MDX1_STYLE_END=/`}<\/style>/g,MDX1_COMMENT=/<!--(.+)-->/g,MDX1_CODEBLOCK=/(?:\n~~~(?:\n|.)*?\n~~~)|(?:\n```(?:\n|.)*?\n```)/g,fixMdxStyleTags=mdx=>mdx.replace(MDX1_STYLE_START,"<style>\n {`").replace(MDX1_STYLE_END," `}\n</style>"),fixMdxComments=mdx=>{let codeblocks=mdx.matchAll(MDX1_CODEBLOCK);return mdx.split(MDX1_CODEBLOCK).map(v=>v.replace(MDX1_COMMENT,(original,group)=>`{/*${group}*/}`)).reduce((acc,item,i)=>{let next=codeblocks.next();return next.done?acc+item:acc+item+next.value[0]},"")},logger9=console,mdx1to3={id:"mdx1to3",versionRange:["<7.0.0",">=8.0.0-alpha.0"],async check(){let{globby}=await import("globby"),storiesMdxFiles=await globby("./!(node_modules)**/*.(story|stories).mdx");return storiesMdxFiles.length?{storiesMdxFiles}:null},prompt({storiesMdxFiles}){return import_ts_dedent17.dedent`
257
- We've found ${import_picocolors19.default.yellow(storiesMdxFiles.length)} '.stories.mdx' files in your project.
283
+ Rename ${import_picocolors21.default.cyan("globals")} to ${import_picocolors21.default.cyan("initalGlobals")}?
284
+ `},async run({dryRun,result}){result.previewConfig.removeField(["globals"]),result.previewConfig.setFieldNode(["initialGlobals"],result.globals),dryRun||await(0,import_promises2.writeFile)(result.previewConfigPath,(0,import_csf_tools8.formatConfig)(result.previewConfig))}};var import_promises3=require("fs/promises"),import_node_path4=require("path"),import_picocolors22=__toESM(require_picocolors(),1),import_ts_dedent18=require("ts-dedent"),MDX1_STYLE_START=/<style>{`/g,MDX1_STYLE_END=/`}<\/style>/g,MDX1_COMMENT=/<!--(.+)-->/g,MDX1_CODEBLOCK=/(?:\n~~~(?:\n|.)*?\n~~~)|(?:\n```(?:\n|.)*?\n```)/g,fixMdxStyleTags=mdx=>mdx.replace(MDX1_STYLE_START,"<style>\n {`").replace(MDX1_STYLE_END," `}\n</style>"),fixMdxComments=mdx=>{let codeblocks=mdx.matchAll(MDX1_CODEBLOCK);return mdx.split(MDX1_CODEBLOCK).map(v=>v.replace(MDX1_COMMENT,(original,group)=>`{/*${group}*/}`)).reduce((acc,item,i)=>{let next=codeblocks.next();return next.done?acc+item:acc+item+next.value[0]},"")},logger11=console,mdx1to3={id:"mdx1to3",versionRange:["<7.0.0",">=8.0.0-alpha.0"],async check(){let{globby}=await import("globby"),storiesMdxFiles=await globby("./!(node_modules)**/*.(story|stories).mdx");return storiesMdxFiles.length?{storiesMdxFiles}:null},prompt({storiesMdxFiles}){return import_ts_dedent18.dedent`
285
+ We've found ${import_picocolors22.default.yellow(storiesMdxFiles.length)} '.stories.mdx' files in your project.
258
286
 
259
287
  Storybook has upgraded to MDX3 (https://mdxjs.com/blog/v3/). MDX3 itself doesn't contain disruptive breaking changes, whereas the transition from MDX1 to MDX2 was a significant change.
260
288
  We can try to automatically upgrade your MDX files to MDX3 format using some common patterns.
@@ -262,8 +290,8 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
262
290
  After this install completes, and before you start Storybook, we strongly recommend reading the MDX2 section
263
291
  of the 7.0 migration guide. It contains useful tools for detecting and fixing any remaining issues.
264
292
 
265
- ${import_picocolors19.default.cyan("https://storybook.js.org/migration-guides/7.0")}
266
- `},async run({result:{storiesMdxFiles},dryRun}){await Promise.all([...storiesMdxFiles.map(async fname=>{let contents=await(0,import_promises3.readFile)(fname,{encoding:"utf8"}),updated=fixMdxComments(fixMdxStyleTags(contents));updated===contents?logger9.info(`\u{1F197} Unmodified ${(0,import_node_path4.basename)(fname)}`):(logger9.info(`\u2705 Modified ${(0,import_node_path4.basename)(fname)}`),dryRun||await(0,import_promises3.writeFile)(fname,updated))})])}};var import_node_path5=require("path"),import_cli6=require("storybook/internal/cli"),import_common9=require("storybook/internal/common");function slash(path2){return path2.startsWith("\\\\?\\")?path2:path2.replace(/\\/g,"/")}var import_ts_dedent18=require("ts-dedent");var logger10=console,mdxgfm={id:"github-flavored-markdown-mdx",versionRange:["<7",">=7"],async check({configDir,mainConfig}){let hasMDXFiles=await mainConfig?.stories?.reduce(async(acc,item)=>{if(await acc===!0)return!0;let pattern;if(typeof configDir>"u")return!1;if(typeof item=="string")pattern=slash((0,import_node_path5.join)(configDir,item));else if(typeof item=="object"){let directory=item.directory||"..",files2=item.files||"**/*.@(mdx|stories.@(mdx|js|jsx|mjs|ts|tsx))";pattern=slash((0,import_node_path5.join)(configDir,directory,files2))}if(!pattern)return!1;let{globby}=await import("globby");return(await globby(pattern,(0,import_common9.commonGlobOptions)(pattern))).some(f=>f.endsWith(".mdx"))},Promise.resolve(!1));return mainConfig?.features?.legacyMdx1===!0||!1||!hasMDXFiles||!!mainConfig.addons?.find(item=>item==="@storybook/addon-mdx-gfm"?!0:typeof item=="string"?!1:item.name==="@storybook/addon-docs"?item.options?.mdxPluginOptions?.mdxCompileOptions?.remarkPlugins?.length>0:!1)?null:{}},prompt(){return import_ts_dedent18.dedent`
293
+ ${import_picocolors22.default.cyan("https://storybook.js.org/migration-guides/7.0")}
294
+ `},async run({result:{storiesMdxFiles},dryRun}){await Promise.all([...storiesMdxFiles.map(async fname=>{let contents=await(0,import_promises3.readFile)(fname,{encoding:"utf8"}),updated=fixMdxComments(fixMdxStyleTags(contents));updated===contents?logger11.info(`\u{1F197} Unmodified ${(0,import_node_path4.basename)(fname)}`):(logger11.info(`\u2705 Modified ${(0,import_node_path4.basename)(fname)}`),dryRun||await(0,import_promises3.writeFile)(fname,updated))})])}};var import_node_path5=require("path"),import_cli6=require("storybook/internal/cli"),import_common13=require("storybook/internal/common");var import_ts_dedent19=require("ts-dedent");var logger12=console,mdxgfm={id:"github-flavored-markdown-mdx",versionRange:["<7",">=7"],async check({configDir,mainConfig}){let hasMDXFiles=await mainConfig?.stories?.reduce(async(acc,item)=>{if(await acc===!0)return!0;let pattern;if(typeof configDir>"u")return!1;if(typeof item=="string")pattern=slash((0,import_node_path5.join)(configDir,item));else if(typeof item=="object"){let directory=item.directory||"..",files2=item.files||"**/*.@(mdx|stories.@(mdx|js|jsx|mjs|ts|tsx))";pattern=slash((0,import_node_path5.join)(configDir,directory,files2))}if(!pattern)return!1;let{globby}=await import("globby");return(await globby(pattern,(0,import_common13.commonGlobOptions)(pattern))).some(f=>f.endsWith(".mdx"))},Promise.resolve(!1));return mainConfig?.features?.legacyMdx1===!0||!1||!hasMDXFiles||!!mainConfig.addons?.find(item=>item==="@storybook/addon-mdx-gfm"?!0:typeof item=="string"?!1:item.name==="@storybook/addon-docs"?item.options?.mdxPluginOptions?.mdxCompileOptions?.remarkPlugins?.length>0:!1)?null:{}},prompt(){return import_ts_dedent19.dedent`
267
295
  In MDX1 you had the option of using GitHub flavored markdown.
268
296
 
269
297
  Storybook >= 8.0 uses MDX3 for compiling MDX, and thus no longer supports GFM out of the box.
@@ -272,8 +300,8 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
272
300
 
273
301
  We recommend that you follow the guide in the link above; however, we can add a temporary Storybook addon to help make this migration easier.
274
302
  We'll install the addon and add it to your storybook config.
275
- `},async run({packageManager,dryRun,mainConfigPath,skipInstall}){if(!dryRun){let packageJson=await packageManager.retrievePackageJson(),versionToInstall=(0,import_cli6.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson());await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall,packageJson},[`@storybook/addon-mdx-gfm@${versionToInstall}`]),await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger10.info('\u2705 Adding "@storybook/addon-mdx-gfm" addon'),dryRun||main.appendValueToArray(["addons"],"@storybook/addon-mdx-gfm")})}}};var import_codemod=require("@storybook/codemod"),import_glob=require("glob"),import_picocolors20=__toESM(require_picocolors(),1),import_prompts3=require("prompts"),import_ts_dedent19=require("ts-dedent");var logger11=console,getNextGlob=globString=>{let extGlobsRegex=new RegExp(/(.*\.)(stories\.@.*)(\|mdx|mdx\|)(.*)$/i);if(globString.match(extGlobsRegex))return globString.replace(extGlobsRegex,"$1@(mdx|$2$4)");let allStoriesExtensionsRegex=new RegExp(/(.*\.)(stories\.\*)$/i);return globString.match(allStoriesExtensionsRegex)?globString.replace(allStoriesExtensionsRegex,"$1@(mdx|$2)"):globString.replaceAll(".stories.mdx",".mdx")},mdxToCSF={id:"mdx-to-csf",versionRange:["<7",">=7"],async check({mainConfig}){let existingStoriesEntries=mainConfig.stories;if(!existingStoriesEntries)throw new Error(import_ts_dedent19.dedent`
276
- ❌ Unable to determine Storybook stories globs in ${import_picocolors20.default.blue(JSON.stringify(mainConfig,null,2))}, skipping ${import_picocolors20.default.cyan(this.id)} fix.
303
+ `},async run({packageManager,dryRun,mainConfigPath,skipInstall}){if(!dryRun){let packageJson=await packageManager.retrievePackageJson(),versionToInstall=(0,import_cli6.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson());await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall,packageJson},[`@storybook/addon-mdx-gfm@${versionToInstall}`]),await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger12.info('\u2705 Adding "@storybook/addon-mdx-gfm" addon'),dryRun||main.appendValueToArray(["addons"],"@storybook/addon-mdx-gfm")})}}};var import_codemod2=require("@storybook/codemod"),import_glob=require("glob"),import_picocolors23=__toESM(require_picocolors(),1),import_prompts4=__toESM(require("prompts"),1),import_ts_dedent20=require("ts-dedent");var logger13=console,getNextGlob=globString=>{let extGlobsRegex=new RegExp(/(.*\.)(stories\.@.*)(\|mdx|mdx\|)(.*)$/i);if(globString.match(extGlobsRegex))return globString.replace(extGlobsRegex,"$1@(mdx|$2$4)");let allStoriesExtensionsRegex=new RegExp(/(.*\.)(stories\.\*)$/i);return globString.match(allStoriesExtensionsRegex)?globString.replace(allStoriesExtensionsRegex,"$1@(mdx|$2)"):globString.replaceAll(".stories.mdx",".mdx")},mdxToCSF={id:"mdx-to-csf",versionRange:["<7",">=7"],async check({mainConfig}){let existingStoriesEntries=mainConfig.stories;if(!existingStoriesEntries)throw new Error(import_ts_dedent20.dedent`
304
+ ❌ Unable to determine Storybook stories globs in ${import_picocolors23.default.blue(JSON.stringify(mainConfig,null,2))}, skipping ${import_picocolors23.default.cyan(this.id)} fix.
277
305
 
278
306
  In Storybook 7, we have deprecated defining stories in MDX files, and consequently have changed the suffix to simply .mdx.
279
307
 
@@ -281,12 +309,12 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
281
309
 
282
310
  We were unable to automatically migrate your 'stories' config to include any .mdx file instead of just .stories.mdx.
283
311
  We suggest you make this change manually.
284
- To learn more about this change, see: ${import_picocolors20.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mdx-docs-files")}
312
+ To learn more about this change, see: ${import_picocolors23.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mdx-docs-files")}
285
313
  `);let files=[],nextStoriesEntries=await Promise.all(existingStoriesEntries.map(async entry=>{let isSpecifier=typeof entry!="string",globString=isSpecifier?entry.files:entry;if(!globString)return entry;files.push(...(await(0,import_glob.glob)(globString)).filter(file=>file.endsWith(".stories.mdx")));let nextGlob=getNextGlob(globString);return isSpecifier?{...entry,files:nextGlob}:nextGlob})),resultFromMainConfig=checkMainConfigStories(existingStoriesEntries,nextStoriesEntries);return nextStoriesEntries&&resultFromMainConfig||files.length>0?{existingStoriesEntries,nextStoriesEntries,files}:null},prompt({existingStoriesEntries,nextStoriesEntries}){let prettyExistingStoriesEntries=existingStoriesEntries.map(entry=>JSON.stringify(entry,null,2)).join(`
286
314
  `),prettyNextStoriesEntries=nextStoriesEntries.map(entry=>JSON.stringify(entry,null,2)).join(`
287
- `);return import_ts_dedent19.dedent`
315
+ `);return import_ts_dedent20.dedent`
288
316
  We've detected your project has one or more globs in your 'stories' config that matches .stories.mdx files:
289
- ${import_picocolors20.default.cyan(prettyExistingStoriesEntries)}
317
+ ${import_picocolors23.default.cyan(prettyExistingStoriesEntries)}
290
318
 
291
319
  In Storybook 7, we have deprecated defining stories in MDX files, and consequently have changed the suffix to simply .mdx. Since Storybook 8, we have removed the support of story definition in MDX files entirely. Therefore '.stories.mdx' files aren't supported anymore.
292
320
 
@@ -294,83 +322,83 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
294
322
 
295
323
  We can automatically migrate your 'stories' config to include any .mdx file instead of just .stories.mdx.
296
324
  That would result in the following 'stories' config:
297
- ${import_picocolors20.default.cyan(prettyNextStoriesEntries)}
325
+ ${import_picocolors23.default.cyan(prettyNextStoriesEntries)}
298
326
 
299
327
  Additionally, we will run the 'mdx-to-csf' codemod for you, which tries to transform '*.stories.mdx' files to '*.stories.js' and '*.mdx' files.
300
328
 
301
- To learn more about this change, see: ${import_picocolors20.default.yellow("https://storybook.js.org/docs/migration-guide#storiesmdx-to-mdxcsf")}
302
- `},async run({dryRun,mainConfigPath,result:{nextStoriesEntries}}){if(logger11.info(import_ts_dedent19.dedent`✅ Setting 'stories' config:
303
- ${JSON.stringify(nextStoriesEntries,null,2)}`),!dryRun){let{glob:globString}=await(0,import_prompts3.prompt)({type:"text",name:"glob",message:"Please enter the glob for your MDX stories",initial:"./src/**/*.stories.mdx"});globString&&await(0,import_codemod.runCodemod)("mdx-to-csf",{glob:globString,dryRun,logger:logger11}),await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{main.setFieldValue(["stories"],nextStoriesEntries)}),logger11.info(import_ts_dedent19.dedent`
329
+ To learn more about this change, see: ${import_picocolors23.default.yellow("https://storybook.js.org/docs/migration-guide#storiesmdx-to-mdxcsf")}
330
+ `},async run({dryRun,mainConfigPath,result:{nextStoriesEntries}}){if(logger13.info(import_ts_dedent20.dedent`✅ Setting 'stories' config:
331
+ ${JSON.stringify(nextStoriesEntries,null,2)}`),!dryRun){let{glob:globString}=await import_prompts4.default.prompt({type:"text",name:"glob",message:"Please enter the glob for your MDX stories",initial:"./src/**/*.stories.mdx"});globString&&await(0,import_codemod2.runCodemod)("mdx-to-csf",{glob:globString,dryRun,logger:logger13}),await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{main.setFieldValue(["stories"],nextStoriesEntries)}),logger13.info(import_ts_dedent20.dedent`
304
332
  The migration successfully updated your 'stories' config to include any .mdx file instead of just .stories.mdx.
305
333
 
306
334
  It also ran the 'mdx-to-csf' codemod to convert your MDX stories to CSF format.
307
335
  This codemod is not perfect however, so you may need to manually fix any issues it couldn't handle.
308
- `)}}};function checkMainConfigStories(existingStoriesEntries,nextStoriesEntries){return existingStoriesEntries.length===nextStoriesEntries.length&&existingStoriesEntries.every((entry,index)=>{let nextEntry=nextStoriesEntries[index];return typeof entry=="string"?entry===nextEntry:typeof nextEntry=="string"?!1:entry.files===nextEntry.files})?null:!0}var import_promises4=require("fs/promises"),import_cli7=require("storybook/internal/cli"),import_picocolors21=__toESM(require_picocolors(),1),import_ts_dedent20=require("ts-dedent"),logger12=console,consolidatedPackages=["@storybook/channels","@storybook/client-logger","@storybook/core-common","@storybook/core-events","@storybook/csf-tools","@storybook/docs-tools","@storybook/node-logger","@storybook/preview-api","@storybook/router","@storybook/telemetry","@storybook/theming","@storybook/types","@storybook/manager-api","@storybook/manager","@storybook/preview","@storybook/core-server","@storybook/builder-manager","@storybook/components"];async function checkInstallations(packageManager,packages){let result={},promises=packages.map(pkg2=>packageManager.findInstallations([pkg2],{depth:0}));return(await Promise.all(promises)).forEach(analysis=>{analysis?.dependencies&&(result={...result,...analysis.dependencies})}),result}var missingStorybookDependencies={id:"missingStorybookDependencies",promptType:"auto",versionRange:["<8.2",">=8.2"],async check({packageManager}){let{globby}=await import("globby"),result=await checkInstallations(packageManager,consolidatedPackages);if(!result)return null;let installedDependencies=Object.keys(result).sort(),dependenciesToCheck=consolidatedPackages.filter(pkg2=>!installedDependencies.includes(pkg2)),files=await globby(["**/.storybook/*","**/*.stories.*","**/*.story.*"],{ignore:["**/node_modules/**"]}),packageUsage={};for(let file of files){let content=await(0,import_promises4.readFile)(file,"utf-8");dependenciesToCheck.forEach(pkg2=>{new RegExp(`['"]${pkg2}(/[^'"]*)?['"]`).test(content)&&(packageUsage[pkg2]||(packageUsage[pkg2]=[]),packageUsage[pkg2].push(file))})}return Object.keys(packageUsage).length>0?{packageUsage}:null},prompt({packageUsage}){return import_ts_dedent20.dedent`
336
+ `)}}};function checkMainConfigStories(existingStoriesEntries,nextStoriesEntries){return existingStoriesEntries.length===nextStoriesEntries.length&&existingStoriesEntries.every((entry,index)=>{let nextEntry=nextStoriesEntries[index];return typeof entry=="string"?entry===nextEntry:typeof nextEntry=="string"?!1:entry.files===nextEntry.files})?null:!0}var import_promises4=require("fs/promises"),import_cli7=require("storybook/internal/cli"),import_picocolors24=__toESM(require_picocolors(),1),import_ts_dedent21=require("ts-dedent"),logger14=console,consolidatedPackages=["@storybook/channels","@storybook/client-logger","@storybook/core-common","@storybook/core-events","@storybook/csf-tools","@storybook/docs-tools","@storybook/node-logger","@storybook/preview-api","@storybook/router","@storybook/telemetry","@storybook/theming","@storybook/types","@storybook/manager-api","@storybook/manager","@storybook/preview","@storybook/core-server","@storybook/builder-manager","@storybook/components"];async function checkInstallations(packageManager,packages){let result={},promises=packages.map(pkg=>packageManager.findInstallations([pkg],{depth:0}));return(await Promise.all(promises)).forEach(analysis=>{analysis?.dependencies&&(result={...result,...analysis.dependencies})}),result}var missingStorybookDependencies={id:"missingStorybookDependencies",promptType:"auto",versionRange:["<8.2",">=8.2"],async check({packageManager}){let{globby}=await import("globby"),result=await checkInstallations(packageManager,consolidatedPackages);if(!result)return null;let installedDependencies=Object.keys(result).sort(),dependenciesToCheck=consolidatedPackages.filter(pkg=>!installedDependencies.includes(pkg)),files=await globby(["**/.storybook/*","**/*.stories.*","**/*.story.*"],{ignore:["**/node_modules/**"]}),packageUsage={};for(let file of files){let content=await(0,import_promises4.readFile)(file,"utf-8");dependenciesToCheck.forEach(pkg=>{new RegExp(`['"]${pkg}(/[^'"]*)?['"]`).test(content)&&(packageUsage[pkg]||(packageUsage[pkg]=[]),packageUsage[pkg].push(file))})}return Object.keys(packageUsage).length>0?{packageUsage}:null},prompt({packageUsage}){return import_ts_dedent21.dedent`
309
337
  Found the following Storybook packages used in your project, but they are missing from your project dependencies:
310
- ${Object.entries(packageUsage).map(([pkg2,files])=>`- ${import_picocolors21.default.cyan(pkg2)}: (${files.length} ${files.length===1?"file":"files"})`).sort().join(`
338
+ ${Object.entries(packageUsage).map(([pkg,files])=>`- ${import_picocolors24.default.cyan(pkg)}: (${files.length} ${files.length===1?"file":"files"})`).sort().join(`
311
339
  `)}
312
340
 
313
341
  Referencing missing packages can cause your project to crash. We can automatically add them to your dependencies.
314
342
 
315
343
  More info: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#failed-to-resolve-import-storybookx-error
316
- `},async run({result:{packageUsage},dryRun,packageManager}){if(logger12.info(`\u2705 Installing the following packages as devDependencies: ${Object.keys(packageUsage)}`),!dryRun){let dependenciesToInstall=Object.keys(packageUsage),versionToInstall=(0,import_cli7.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson()),versionToInstallWithoutModifiers=versionToInstall?.replace(/[\^~]/,"");await packageManager.addDependencies({installAsDevDependencies:!0},dependenciesToInstall.map(pkg2=>`${pkg2}@${versionToInstallWithoutModifiers}`));let packageJson=await packageManager.retrievePackageJson();await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},dependenciesToInstall.map(pkg2=>`${pkg2}@${versionToInstall}`))}}};var import_cli8=require("storybook/internal/cli"),import_common12=require("storybook/internal/common"),import_picocolors22=__toESM(require_picocolors(),1),import_semver9=__toESM(require("semver"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent21=require("ts-dedent");var import_common10=require("storybook/internal/common"),import_prompts4=__toESM(require("prompts"),1),detectRenderer=async packageJson=>{let allDependencies={...packageJson.dependencies,...packageJson.devDependencies,...packageJson.peerDependencies},matches=Object.keys(import_common10.rendererPackages).filter(pkg2=>!!allDependencies[pkg2]),[rendererPackage]=matches;return matches.length>1&&(rendererPackage=(await(0,import_prompts4.default)([{type:"select",name:"rendererPackage",hint:"> - Use arrow-keys. Return to submit. To automate this next time, you can pass the renderer to the CLI via the --renderer flag",message:"Tried to detect a Storybook renderer in your project but found multiple. This could happen in monorepos, when projects contain multiple Storybook packages in package.json. Please select the correct one:",choices:matches.map(type=>({title:type,value:type}))}])).rendererPackage),rendererPackage};var import_common11=require("storybook/internal/common"),import_find_up=__toESM(require("find-up"),1);var logger13=console,packagesMap={"@storybook/react":{webpack5:"@storybook/react-webpack5",vite:"@storybook/react-vite"},"@storybook/preact":{webpack5:"@storybook/preact-webpack5",vite:"@storybook/preact-vite"},"@storybook/server":{webpack5:"@storybook/server-webpack5"},"@storybook/ember":{webpack5:"@storybook/ember"},"@storybook/angular":{webpack5:"@storybook/angular"},"@storybook/vue3":{webpack5:"@storybook/vue3-webpack5",vite:"@storybook/vue3-vite"},"@storybook/svelte":{webpack5:"@storybook/svelte-webpack5",vite:"@storybook/svelte-vite"},"@storybook/web-components":{webpack5:"@storybook/web-components-webpack5",vite:"@storybook/web-components-vite"},"@storybook/html":{webpack5:"@storybook/html-webpack5",vite:"@storybook/html-vite"}},communityFrameworks={vite:["storybook-framework-qwik","storybook-solidjs-vite"],webpack5:[]},viteConfigFiles=["vite.config.js","vite.config.cjs","vite.config.mjs","vite.config.ts"],webpackConfigFiles=["webpack.config.js","webpack.config.cjs","webpack.config.mjs","webpack.config.ts"],detectBuilderInfo=async({mainConfig,configDir,packageManager})=>{let builderName,builderOrFrameworkName,{core={},framework}=mainConfig,{builder}=core,builderPackageName=getBuilderPackageName(mainConfig),frameworkPackageName=getFrameworkPackageName(mainConfig),builderOptions=typeof builder!="string"?builder?.options??{}:{};if(builderPackageName?builderOrFrameworkName=builderPackageName:framework&&Object.keys(import_common11.frameworkPackages).includes(frameworkPackageName)&&(builderOrFrameworkName=frameworkPackageName,builderOptions=typeof framework=="object"?framework.options?.builder??{}:{}),!builderOrFrameworkName){let viteConfigFile2=await(0,import_find_up.default)(viteConfigFiles,{cwd:configDir});if(viteConfigFile2)logger13.info(`No builder or framework field, detected Storybook builder via: ${viteConfigFile2}`),builderOrFrameworkName="vite";else{let webpackConfigFile=await(0,import_find_up.default)(webpackConfigFiles,{cwd:configDir});webpackConfigFile&&(logger13.info(`No builder or framework field, detected Storybook builder via: ${webpackConfigFile}`),builderOrFrameworkName="webpack5")}}if(!builderOrFrameworkName){let storybookBuilderViteVersion=await packageManager.getPackageVersion("@storybook/builder-vite"),storybookBuilderVite2Version=await packageManager.getPackageVersion("storybook-builder-vite"),storybookBuilderWebpack5Version=await packageManager.getPackageVersion("@storybook/builder-webpack5"),storybookBuilderManagerWebpack5Version=await packageManager.getPackageVersion("@storybook/manager-webpack5");storybookBuilderViteVersion||storybookBuilderVite2Version?builderOrFrameworkName="vite":(storybookBuilderWebpack5Version||storybookBuilderManagerWebpack5Version)&&(builderOrFrameworkName="webpack5")}return builderOrFrameworkName?.includes("vite")||builderOrFrameworkName&&communityFrameworks.vite.includes(builderOrFrameworkName)?builderName="vite":(builderOrFrameworkName?.includes("webpack")||builderOrFrameworkName&&communityFrameworks.webpack5.includes(builderOrFrameworkName),builderName="webpack5"),{name:builderName,options:builderOptions}},getNextjsAddonOptions=addons=>{let nextjsAddon=addons?.find(addon=>typeof addon=="string"?addon==="storybook-addon-next":addon.name==="storybook-addon-next");return!nextjsAddon||typeof nextjsAddon=="string"?{}:nextjsAddon.options||{}};var logger14=console,newFrameworks={id:"new-frameworks",versionRange:["<7",">=7"],async check({configDir,packageManager,mainConfig,mainConfigPath,rendererPackage}){if(typeof configDir>"u")return null;let packageJson=await packageManager.retrievePackageJson(),frameworkPackageName=getFrameworkPackageName(mainConfig),rendererPackageName=rendererPackage??await getRendererPackageNameFromFramework(frameworkPackageName)??await detectRenderer(packageJson),hasFrameworkInMainConfig=!!frameworkPackageName;frameworkPackageName&&Object.values(import_common12.rendererPackages).includes(frameworkPackageName)&&(hasFrameworkInMainConfig=!1);let builderConfig=mainConfig.core?.builder;if(!Object.keys(packagesMap).includes(rendererPackageName))return null;let allDependencies=await packageManager.getAllDependencies(),builderInfo=await detectBuilderInfo({mainConfig,configDir,packageManager}),newFrameworkPackage=Object.keys(import_common12.frameworkPackages).find(pkg2=>pkg2===frameworkPackageName);if(newFrameworkPackage||(newFrameworkPackage=packagesMap[rendererPackageName]?.[builderInfo.name]),!newFrameworkPackage)return null;let renderer=import_common12.rendererPackages[rendererPackageName],rendererOptions=mainConfig[`${renderer}Options`]||{},frameworkOptions=typeof mainConfig.framework=="string"?{}:mainConfig.framework?.options,dependenciesToRemove=["@storybook/builder-webpack5","@storybook/manager-webpack5","@storybook/builder-webpack4","@storybook/manager-webpack4","@storybook/builder-vite","storybook-builder-vite"],addonsToRemove=[],addonOptions={},metaFramework,nextVersion=await packageManager.getPackageVersion("next"),svelteKitVersion=await packageManager.getPackageVersion("@sveltejs/kit"),viteVersion=await packageManager.getPackageVersion("vite");if(rendererPackageName==="@storybook/react"&&nextVersion){let nextAddonOptions=getNextjsAddonOptions(mainConfig.addons);(nextVersion&&import_semver9.default.gte(nextVersion,"12.0.0")||Object.keys(nextAddonOptions).length>0)&&(metaFramework="nextjs",(newFrameworkPackage==="@storybook/react-webpack5"||newFrameworkPackage==="@storybook/nextjs")&&(newFrameworkPackage="@storybook/nextjs",addonsToRemove=["storybook-addon-next","storybook-addon-next-router"].filter(dep=>allDependencies[dep]||mainConfig.addons?.find(addon=>typeof addon=="string"?dep===addon:dep===addon.name)),addonOptions=nextAddonOptions,dependenciesToRemove.push("@storybook/react-webpack5","storybook-addon-next","storybook-addon-next-router")))}else rendererPackageName==="@storybook/svelte"&&svelteKitVersion&&import_semver9.default.gte(svelteKitVersion,"1.0.0")&&(metaFramework="sveltekit",newFrameworkPackage==="@storybook/svelte-vite"&&(newFrameworkPackage="@storybook/sveltekit",rendererOptions={},dependenciesToRemove.push("@storybook/svelte-vite")));let dependenciesToAdd=[newFrameworkPackage].filter(dep=>!allDependencies[dep]).filter(Boolean);if(dependenciesToRemove=dependenciesToRemove.filter(dep=>allDependencies[dep]).filter(Boolean),hasFrameworkInMainConfig&&!builderConfig&&!Object.keys(rendererOptions).length&&!Object.keys(addonOptions).length&&!dependenciesToRemove.length&&!dependenciesToAdd.length)return null;if(viteVersion&&import_semver9.default.lt(viteVersion,"3.0.0"))throw new Error(import_ts_dedent21.dedent`
317
- ❌ Your project should be upgraded to use the framework package ${import_picocolors22.default.bold(newFrameworkPackage)}, but we detected that you are using Vite ${import_picocolors22.default.bold(viteVersion)}, which is unsupported since ${import_picocolors22.default.bold("Storybook 7.0")}. Please upgrade Vite to ${import_picocolors22.default.bold("3.0.0 or higher")} and rerun this migration.
344
+ `},async run({result:{packageUsage},dryRun,packageManager}){if(logger14.info(`\u2705 Installing the following packages as devDependencies: ${Object.keys(packageUsage)}`),!dryRun){let dependenciesToInstall=Object.keys(packageUsage),versionToInstall=(0,import_cli7.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson()),versionToInstallWithoutModifiers=versionToInstall?.replace(/[\^~]/,"");await packageManager.addDependencies({installAsDevDependencies:!0},dependenciesToInstall.map(pkg=>`${pkg}@${versionToInstallWithoutModifiers}`));let packageJson=await packageManager.retrievePackageJson();await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},dependenciesToInstall.map(pkg=>`${pkg}@${versionToInstall}`))}}};var import_cli8=require("storybook/internal/cli"),import_common16=require("storybook/internal/common"),import_picocolors25=__toESM(require_picocolors(),1),import_semver9=__toESM(require("semver"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent22=require("ts-dedent");var import_common14=require("storybook/internal/common"),import_prompts5=__toESM(require("prompts"),1),detectRenderer=async packageJson=>{let allDependencies={...packageJson.dependencies,...packageJson.devDependencies,...packageJson.peerDependencies},matches=Object.keys(import_common14.rendererPackages).filter(pkg=>!!allDependencies[pkg]),[rendererPackage]=matches;return matches.length>1&&(rendererPackage=(await(0,import_prompts5.default)([{type:"select",name:"rendererPackage",hint:"> - Use arrow-keys. Return to submit. To automate this next time, you can pass the renderer to the CLI via the --renderer flag",message:"Tried to detect a Storybook renderer in your project but found multiple. This could happen in monorepos, when projects contain multiple Storybook packages in package.json. Please select the correct one:",choices:matches.map(type=>({title:type,value:type}))}])).rendererPackage),rendererPackage};var import_common15=require("storybook/internal/common"),import_find_up=__toESM(require("find-up"),1);var logger15=console,packagesMap={"@storybook/react":{webpack5:"@storybook/react-webpack5",vite:"@storybook/react-vite"},"@storybook/preact":{webpack5:"@storybook/preact-webpack5",vite:"@storybook/preact-vite"},"@storybook/server":{webpack5:"@storybook/server-webpack5"},"@storybook/ember":{webpack5:"@storybook/ember"},"@storybook/angular":{webpack5:"@storybook/angular"},"@storybook/vue3":{webpack5:"@storybook/vue3-webpack5",vite:"@storybook/vue3-vite"},"@storybook/svelte":{webpack5:"@storybook/svelte-webpack5",vite:"@storybook/svelte-vite"},"@storybook/web-components":{webpack5:"@storybook/web-components-webpack5",vite:"@storybook/web-components-vite"},"@storybook/html":{webpack5:"@storybook/html-webpack5",vite:"@storybook/html-vite"}},communityFrameworks={vite:["storybook-framework-qwik","storybook-solidjs-vite"],webpack5:[]},viteConfigFiles=["vite.config.js","vite.config.cjs","vite.config.mjs","vite.config.ts"],webpackConfigFiles=["webpack.config.js","webpack.config.cjs","webpack.config.mjs","webpack.config.ts"],detectBuilderInfo=async({mainConfig,configDir,packageManager})=>{let builderName,builderOrFrameworkName,{core={},framework}=mainConfig,{builder}=core,builderPackageName=getBuilderPackageName(mainConfig),frameworkPackageName=getFrameworkPackageName(mainConfig),builderOptions=typeof builder!="string"?builder?.options??{}:{};if(builderPackageName?builderOrFrameworkName=builderPackageName:framework&&Object.keys(import_common15.frameworkPackages).includes(frameworkPackageName)&&(builderOrFrameworkName=frameworkPackageName,builderOptions=typeof framework=="object"?framework.options?.builder??{}:{}),!builderOrFrameworkName){let viteConfigFile2=await(0,import_find_up.default)(viteConfigFiles,{cwd:configDir});if(viteConfigFile2)logger15.info(`No builder or framework field, detected Storybook builder via: ${viteConfigFile2}`),builderOrFrameworkName="vite";else{let webpackConfigFile=await(0,import_find_up.default)(webpackConfigFiles,{cwd:configDir});webpackConfigFile&&(logger15.info(`No builder or framework field, detected Storybook builder via: ${webpackConfigFile}`),builderOrFrameworkName="webpack5")}}if(!builderOrFrameworkName){let storybookBuilderViteVersion=await packageManager.getPackageVersion("@storybook/builder-vite"),storybookBuilderVite2Version=await packageManager.getPackageVersion("storybook-builder-vite"),storybookBuilderWebpack5Version=await packageManager.getPackageVersion("@storybook/builder-webpack5"),storybookBuilderManagerWebpack5Version=await packageManager.getPackageVersion("@storybook/manager-webpack5");storybookBuilderViteVersion||storybookBuilderVite2Version?builderOrFrameworkName="vite":(storybookBuilderWebpack5Version||storybookBuilderManagerWebpack5Version)&&(builderOrFrameworkName="webpack5")}return builderOrFrameworkName?.includes("vite")||builderOrFrameworkName&&communityFrameworks.vite.includes(builderOrFrameworkName)?builderName="vite":(builderOrFrameworkName?.includes("webpack")||builderOrFrameworkName&&communityFrameworks.webpack5.includes(builderOrFrameworkName),builderName="webpack5"),{name:builderName,options:builderOptions}},getNextjsAddonOptions=addons=>{let nextjsAddon=addons?.find(addon=>typeof addon=="string"?addon==="storybook-addon-next":addon.name==="storybook-addon-next");return!nextjsAddon||typeof nextjsAddon=="string"?{}:nextjsAddon.options||{}};var logger16=console,newFrameworks={id:"new-frameworks",versionRange:["<7",">=7"],async check({configDir,packageManager,mainConfig,mainConfigPath,rendererPackage}){if(typeof configDir>"u")return null;let packageJson=await packageManager.retrievePackageJson(),frameworkPackageName=getFrameworkPackageName(mainConfig),rendererPackageName=rendererPackage??await getRendererPackageNameFromFramework(frameworkPackageName)??await detectRenderer(packageJson),hasFrameworkInMainConfig=!!frameworkPackageName;frameworkPackageName&&Object.values(import_common16.rendererPackages).includes(frameworkPackageName)&&(hasFrameworkInMainConfig=!1);let builderConfig=mainConfig.core?.builder;if(!Object.keys(packagesMap).includes(rendererPackageName))return null;let allDependencies=await packageManager.getAllDependencies(),builderInfo=await detectBuilderInfo({mainConfig,configDir,packageManager}),newFrameworkPackage=Object.keys(import_common16.frameworkPackages).find(pkg=>pkg===frameworkPackageName);if(newFrameworkPackage||(newFrameworkPackage=packagesMap[rendererPackageName]?.[builderInfo.name]),!newFrameworkPackage)return null;let renderer=import_common16.rendererPackages[rendererPackageName],rendererOptions=mainConfig[`${renderer}Options`]||{},frameworkOptions=typeof mainConfig.framework=="string"?{}:mainConfig.framework?.options,dependenciesToRemove=["@storybook/builder-webpack5","@storybook/manager-webpack5","@storybook/builder-webpack4","@storybook/manager-webpack4","@storybook/builder-vite","storybook-builder-vite"],addonsToRemove=[],addonOptions={},metaFramework,nextVersion=await packageManager.getPackageVersion("next"),svelteKitVersion=await packageManager.getPackageVersion("@sveltejs/kit"),viteVersion=await packageManager.getPackageVersion("vite");if(rendererPackageName==="@storybook/react"&&nextVersion){let nextAddonOptions=getNextjsAddonOptions(mainConfig.addons);(nextVersion&&import_semver9.default.gte(nextVersion,"12.0.0")||Object.keys(nextAddonOptions).length>0)&&(metaFramework="nextjs",(newFrameworkPackage==="@storybook/react-webpack5"||newFrameworkPackage==="@storybook/nextjs")&&(newFrameworkPackage="@storybook/nextjs",addonsToRemove=["storybook-addon-next","storybook-addon-next-router"].filter(dep=>allDependencies[dep]||mainConfig.addons?.find(addon=>typeof addon=="string"?dep===addon:dep===addon.name)),addonOptions=nextAddonOptions,dependenciesToRemove.push("@storybook/react-webpack5","storybook-addon-next","storybook-addon-next-router")))}else rendererPackageName==="@storybook/svelte"&&svelteKitVersion&&import_semver9.default.gte(svelteKitVersion,"1.0.0")&&(metaFramework="sveltekit",newFrameworkPackage==="@storybook/svelte-vite"&&(newFrameworkPackage="@storybook/sveltekit",rendererOptions={},dependenciesToRemove.push("@storybook/svelte-vite")));let dependenciesToAdd=[newFrameworkPackage].filter(dep=>!allDependencies[dep]).filter(Boolean);if(dependenciesToRemove=dependenciesToRemove.filter(dep=>allDependencies[dep]).filter(Boolean),hasFrameworkInMainConfig&&!builderConfig&&!Object.keys(rendererOptions).length&&!Object.keys(addonOptions).length&&!dependenciesToRemove.length&&!dependenciesToAdd.length)return null;if(viteVersion&&import_semver9.default.lt(viteVersion,"3.0.0"))throw new Error(import_ts_dedent22.dedent`
345
+ ❌ Your project should be upgraded to use the framework package ${import_picocolors25.default.bold(newFrameworkPackage)}, but we detected that you are using Vite ${import_picocolors25.default.bold(viteVersion)}, which is unsupported since ${import_picocolors25.default.bold("Storybook 7.0")}. Please upgrade Vite to ${import_picocolors25.default.bold("3.0.0 or higher")} and rerun this migration.
318
346
  `);return(0,import_tiny_invariant.default)(mainConfigPath,"Missing main config path."),{mainConfigPath,dependenciesToAdd,dependenciesToRemove,frameworkPackage:newFrameworkPackage,hasFrameworkInMainConfig,frameworkOptions:{...frameworkOptions,...rendererOptions,...addonOptions},rendererOptions,addonOptions,addonsToRemove,builderInfo,renderer,builderConfig,metaFramework}},prompt({dependenciesToRemove,dependenciesToAdd,hasFrameworkInMainConfig,mainConfigPath,frameworkPackage,addonOptions,renderer,rendererOptions,builderConfig,addonsToRemove,metaFramework}){let disclaimer="",migrationSteps="";return dependenciesToRemove.length>0&&(migrationSteps+=`- Remove the following dependencies:
319
- ${dependenciesToRemove.map(dep=>`- * ${import_picocolors22.default.cyan(dep)}`).join(`
347
+ ${dependenciesToRemove.map(dep=>`- * ${import_picocolors25.default.cyan(dep)}`).join(`
320
348
  `)}
321
349
  `),dependenciesToAdd.length>0&&(migrationSteps+=`- Add the following dependencies:
322
- ${dependenciesToAdd.map(dep=>`- * ${import_picocolors22.default.cyan(dep)}`).join(`
350
+ ${dependenciesToAdd.map(dep=>`- * ${import_picocolors25.default.cyan(dep)}`).join(`
323
351
  `)}
324
- `),hasFrameworkInMainConfig||(migrationSteps+=`- Update or specify the ${import_picocolors22.default.yellow("framework")} field in ${import_picocolors22.default.blue(mainConfigPath)} with the value of "${import_picocolors22.default.cyan(frameworkPackage)}".
325
- `),Object.keys(rendererOptions).length>0&&(migrationSteps+=`- Move the ${import_picocolors22.default.yellow(`${renderer}Options`)} field in ${import_picocolors22.default.blue(mainConfigPath)} to ${import_picocolors22.default.yellow("framework.options")}, and remove that field entirely.
326
- More info: ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#frameworkoptions-renamed")}
327
- `),addonsToRemove.length>0&&(migrationSteps+=`- Remove the following addons from your ${import_picocolors22.default.blue(mainConfigPath)}, as the new framework also supports features provided by them:
328
- ${addonsToRemove.map(dep=>`- * ${import_picocolors22.default.cyan(dep)}`).join(`
352
+ `),hasFrameworkInMainConfig||(migrationSteps+=`- Update or specify the ${import_picocolors25.default.yellow("framework")} field in ${import_picocolors25.default.blue(mainConfigPath)} with the value of "${import_picocolors25.default.cyan(frameworkPackage)}".
353
+ `),Object.keys(rendererOptions).length>0&&(migrationSteps+=`- Move the ${import_picocolors25.default.yellow(`${renderer}Options`)} field in ${import_picocolors25.default.blue(mainConfigPath)} to ${import_picocolors25.default.yellow("framework.options")}, and remove that field entirely.
354
+ More info: ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#frameworkoptions-renamed")}
355
+ `),addonsToRemove.length>0&&(migrationSteps+=`- Remove the following addons from your ${import_picocolors25.default.blue(mainConfigPath)}, as the new framework also supports features provided by them:
356
+ ${addonsToRemove.map(dep=>`- * ${import_picocolors25.default.cyan(dep)}`).join(`
329
357
  `)}
330
- `),Object.keys(addonOptions).length>0&&(migrationSteps+=`- Move the addon options "${import_picocolors22.default.yellow(Object.keys(addonOptions).join(", "))}" in ${import_picocolors22.default.blue(mainConfigPath)} to the ${import_picocolors22.default.yellow("framework.options")} field.
331
- `),builderConfig&&(typeof builderConfig=="object"&&Object.keys(builderConfig.options||{}).length>0&&(migrationSteps+=`- Move the ${import_picocolors22.default.yellow("core.builder.options")} field in ${import_picocolors22.default.blue(mainConfigPath)} to ${import_picocolors22.default.yellow("framework.options.builder")}
332
- `),migrationSteps+=`- Remove the ${import_picocolors22.default.yellow("core.builder")} field in ${import_picocolors22.default.blue(mainConfigPath)}.
333
- `),(dependenciesToRemove.includes("@storybook/builder-webpack4")||dependenciesToRemove.includes("@storybook/manager-webpack4"))&&(disclaimer=import_ts_dedent21.dedent`\n\n
334
- ${import_picocolors22.default.underline(import_picocolors22.default.bold(import_picocolors22.default.cyan("Webpack 4 users")))}
358
+ `),Object.keys(addonOptions).length>0&&(migrationSteps+=`- Move the addon options "${import_picocolors25.default.yellow(Object.keys(addonOptions).join(", "))}" in ${import_picocolors25.default.blue(mainConfigPath)} to the ${import_picocolors25.default.yellow("framework.options")} field.
359
+ `),builderConfig&&(typeof builderConfig=="object"&&Object.keys(builderConfig.options||{}).length>0&&(migrationSteps+=`- Move the ${import_picocolors25.default.yellow("core.builder.options")} field in ${import_picocolors25.default.blue(mainConfigPath)} to ${import_picocolors25.default.yellow("framework.options.builder")}
360
+ `),migrationSteps+=`- Remove the ${import_picocolors25.default.yellow("core.builder")} field in ${import_picocolors25.default.blue(mainConfigPath)}.
361
+ `),(dependenciesToRemove.includes("@storybook/builder-webpack4")||dependenciesToRemove.includes("@storybook/manager-webpack4"))&&(disclaimer=import_ts_dedent22.dedent`\n\n
362
+ ${import_picocolors25.default.underline(import_picocolors25.default.bold(import_picocolors25.default.cyan("Webpack 4 users")))}
335
363
 
336
364
  Unless you're using Storybook's Vite builder, this automigration will install a Webpack 5 based framework.
337
365
 
338
366
  Given you were using Storybook's Webpack 4 builder (default in 6.x, discontinued in 7.0), this could be a breaking change -- especially if your project has a custom webpack configuration.
339
367
 
340
- To learn more about migrating from Webpack4, see: ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#webpack4-support-discontinued")}`),metaFramework==="nextjs"&&(dependenciesToRemove.includes("storybook-addon-next-router")&&(migrationSteps+=`- Migrate the usage of the ${import_picocolors22.default.cyan("storybook-addon-next-router")} addon to use the APIs from the ${import_picocolors22.default.magenta("@storybook/nextjs")} framework package instead. Follow the instructions below.`),frameworkPackage==="@storybook/react-vite"?disclaimer=import_ts_dedent21.dedent`\n\n
341
- ${import_picocolors22.default.bold("Important")}: We've detected you are using Storybook in a Next.js project.
368
+ To learn more about migrating from Webpack4, see: ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#webpack4-support-discontinued")}`),metaFramework==="nextjs"&&(dependenciesToRemove.includes("storybook-addon-next-router")&&(migrationSteps+=`- Migrate the usage of the ${import_picocolors25.default.cyan("storybook-addon-next-router")} addon to use the APIs from the ${import_picocolors25.default.magenta("@storybook/nextjs")} framework package instead. Follow the instructions below.`),frameworkPackage==="@storybook/react-vite"?disclaimer=import_ts_dedent22.dedent`\n\n
369
+ ${import_picocolors25.default.bold("Important")}: We've detected you are using Storybook in a Next.js project.
342
370
 
343
- This migration is set to update your project to use the ${import_picocolors22.default.magenta("@storybook/react-vite")} framework, but Storybook provides a framework package specifically for Next.js projects: ${import_picocolors22.default.magenta("@storybook/nextjs")}.
371
+ This migration is set to update your project to use the ${import_picocolors25.default.magenta("@storybook/react-vite")} framework, but Storybook provides a framework package specifically for Next.js projects: ${import_picocolors25.default.magenta("@storybook/nextjs")}.
344
372
 
345
373
  This package provides a better, out of the box experience for Next.js users, however it is only compatible with the Webpack 5 builder, so we can't automigrate for you, as you are using the Vite builder. If you switch this project to use Webpack 5 and rerun this migration, we can update your project.
346
374
 
347
- If you are interested in using this package, see: ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md")}
348
- `:frameworkPackage==="@storybook/nextjs"&&(disclaimer=import_ts_dedent21.dedent`\n\n
349
- The ${import_picocolors22.default.magenta("@storybook/nextjs")} package provides great user experience for Next.js users, and we highly recommend you to read more about it at ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md")}
350
- `)),metaFramework==="sveltekit"&&(frameworkPackage==="@storybook/svelte-webpack5"?disclaimer=import_ts_dedent21.dedent`\n\n
351
- ${import_picocolors22.default.bold("Important")}: We've detected you are using Storybook in a SvelteKit project.
375
+ If you are interested in using this package, see: ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md")}
376
+ `:frameworkPackage==="@storybook/nextjs"&&(disclaimer=import_ts_dedent22.dedent`\n\n
377
+ The ${import_picocolors25.default.magenta("@storybook/nextjs")} package provides great user experience for Next.js users, and we highly recommend you to read more about it at ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md")}
378
+ `)),metaFramework==="sveltekit"&&(frameworkPackage==="@storybook/svelte-webpack5"?disclaimer=import_ts_dedent22.dedent`\n\n
379
+ ${import_picocolors25.default.bold("Important")}: We've detected you are using Storybook in a SvelteKit project.
352
380
 
353
- This migration is set to update your project to use the ${import_picocolors22.default.magenta("@storybook/svelte-webpack5")} framework, but Storybook provides a framework package specifically for SvelteKit projects: ${import_picocolors22.default.magenta("@storybook/sveltekit")}.
381
+ This migration is set to update your project to use the ${import_picocolors25.default.magenta("@storybook/svelte-webpack5")} framework, but Storybook provides a framework package specifically for SvelteKit projects: ${import_picocolors25.default.magenta("@storybook/sveltekit")}.
354
382
 
355
383
  This package provides a better experience for SvelteKit users, however it is only compatible with the Vite builder, so we can't automigrate for you, as you are using the Webpack builder.
356
384
 
357
- If you are interested in using this package, see: ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/sveltekit/README.md")}
358
- `:(migrationSteps+=`- Remove the ${import_picocolors22.default.yellow(`${renderer}Options`)} field from ${import_picocolors22.default.blue(mainConfigPath)}.
359
- More info: ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-uses-vite-config-automatically")}
360
- `,disclaimer=import_ts_dedent21.dedent`\n\n
361
- The ${import_picocolors22.default.magenta("@storybook/sveltekit")} package provides great user experience for SvelteKit users, and we highly recommend you to read more about it at ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/sveltekit/README.md")}
362
- `)),import_ts_dedent21.dedent`
385
+ If you are interested in using this package, see: ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/sveltekit/README.md")}
386
+ `:(migrationSteps+=`- Remove the ${import_picocolors25.default.yellow(`${renderer}Options`)} field from ${import_picocolors25.default.blue(mainConfigPath)}.
387
+ More info: ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vite-builder-uses-vite-config-automatically")}
388
+ `,disclaimer=import_ts_dedent22.dedent`\n\n
389
+ The ${import_picocolors25.default.magenta("@storybook/sveltekit")} package provides great user experience for SvelteKit users, and we highly recommend you to read more about it at ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/code/frameworks/sveltekit/README.md")}
390
+ `)),import_ts_dedent22.dedent`
363
391
  We've detected your project is not fully setup with the new framework format, which was introduced in Storybook 7.
364
392
 
365
393
  Storybook 7 introduced the concept of frameworks, which abstracts configuration for renderers (e.g. React, Vue), builders (e.g. Webpack, Vite) and defaults to make integrations easier.
366
394
 
367
- Your project should be updated to use Storybook's framework: ${import_picocolors22.default.magenta(frameworkPackage)}. We can attempt to do this for you automatically.
395
+ Your project should be updated to use Storybook's framework: ${import_picocolors25.default.magenta(frameworkPackage)}. We can attempt to do this for you automatically.
368
396
 
369
397
  Here are the steps this migration will do to migrate your project:
370
398
  ${migrationSteps}
371
399
 
372
- To learn more about the new framework format, see: ${import_picocolors22.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#new-framework-api")}${disclaimer}
373
- `},async run({result:{dependenciesToAdd,dependenciesToRemove,frameworkPackage,frameworkOptions,builderInfo,renderer,addonsToRemove},packageManager,dryRun,mainConfigPath,skipInstall}){let packageJson=await packageManager.retrievePackageJson();if(dependenciesToRemove.length>0&&(logger14.info(`\u2705 Removing dependencies: ${dependenciesToRemove.join(", ")}`),dryRun||await packageManager.removeDependencies({skipInstall:skipInstall||dependenciesToAdd.length>0,packageJson},dependenciesToRemove)),dependenciesToAdd.length>0&&(logger14.info(`\u2705 Installing new dependencies: ${dependenciesToAdd.join(", ")}`),!dryRun)){let versionToInstall=(0,import_cli8.getStorybookVersionSpecifier)(packageJson),depsToAdd=dependenciesToAdd.map(dep=>`${dep}@${versionToInstall}`);await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall,packageJson},depsToAdd)}await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger14.info("\u2705 Updating main.js"),logger14.info('\u2705 Updating "framework" field'),dryRun||main.setFieldValue(["framework","name"],frameworkPackage),dryRun||main.setFieldValue(["framework","options"],frameworkOptions),main.getFieldNode([`${renderer}Options`])&&(logger14.info(`\u2705 Moving "${renderer}Options" to "framework.options"`),dryRun||main.removeField([`${renderer}Options`])),main.getFieldNode(["core","builder"])&&(logger14.info('\u2705 Removing "core.builder" field'),dryRun||main.removeField(["core","builder"])),Object.keys(builderInfo.options).length>0&&(logger14.info('\u2705 Moving "core.builder.options" into "framework.options.builder"'),dryRun||main.setFieldValue(["framework","options","builder"],builderInfo.options));let currentCore=main.getFieldValue(["core"]);if(currentCore&&Object.keys(currentCore).length===0&&(logger14.info('\u2705 Removing "core" field'),dryRun||main.removeField(["core"])),addonsToRemove.length>0){let updatedAddons=main.getFieldValue(["addons"]).filter(addon=>typeof addon=="string"?!addonsToRemove.includes(addon):addon.name?!addonsToRemove.includes(addon.name):!1);logger14.info("\u2705 Removing unnecessary addons"),dryRun||main.setFieldValue(["addons"],updatedAddons)}})}};var import_ts_dedent22=require("ts-dedent");var minimumStorybookVersion="8.0.0-alpha.4",removeReactDependency={id:"remove-react-dependency",promptType:"manual",versionRange:[`^7 || <${minimumStorybookVersion}`,`>=${minimumStorybookVersion}`],async check({packageManager,mainConfig,storybookVersion}){let frameworkPackageName=getFrameworkPackageName(mainConfig);if(frameworkPackageName?.includes("react")||frameworkPackageName?.includes("nextjs"))return null;let{react}=await packageManager.getAllDependencies();return react?!0:null},prompt(){return import_ts_dedent22.dedent`
400
+ To learn more about the new framework format, see: ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#new-framework-api")}${disclaimer}
401
+ `},async run({result:{dependenciesToAdd,dependenciesToRemove,frameworkPackage,frameworkOptions,builderInfo,renderer,addonsToRemove},packageManager,dryRun,mainConfigPath,skipInstall}){let packageJson=await packageManager.retrievePackageJson();if(dependenciesToRemove.length>0&&(logger16.info(`\u2705 Removing dependencies: ${dependenciesToRemove.join(", ")}`),dryRun||await packageManager.removeDependencies({skipInstall:skipInstall||dependenciesToAdd.length>0,packageJson},dependenciesToRemove)),dependenciesToAdd.length>0&&(logger16.info(`\u2705 Installing new dependencies: ${dependenciesToAdd.join(", ")}`),!dryRun)){let versionToInstall=(0,import_cli8.getStorybookVersionSpecifier)(packageJson),depsToAdd=dependenciesToAdd.map(dep=>`${dep}@${versionToInstall}`);await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall,packageJson},depsToAdd)}await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger16.info("\u2705 Updating main.js"),logger16.info('\u2705 Updating "framework" field'),dryRun||main.setFieldValue(["framework","name"],frameworkPackage),dryRun||main.setFieldValue(["framework","options"],frameworkOptions),main.getFieldNode([`${renderer}Options`])&&(logger16.info(`\u2705 Moving "${renderer}Options" to "framework.options"`),dryRun||main.removeField([`${renderer}Options`])),main.getFieldNode(["core","builder"])&&(logger16.info('\u2705 Removing "core.builder" field'),dryRun||main.removeField(["core","builder"])),Object.keys(builderInfo.options).length>0&&(logger16.info('\u2705 Moving "core.builder.options" into "framework.options.builder"'),dryRun||main.setFieldValue(["framework","options","builder"],builderInfo.options));let currentCore=main.getFieldValue(["core"]);if(currentCore&&Object.keys(currentCore).length===0&&(logger16.info('\u2705 Removing "core" field'),dryRun||main.removeField(["core"])),addonsToRemove.length>0){let updatedAddons=main.getFieldValue(["addons"]).filter(addon=>typeof addon=="string"?!addonsToRemove.includes(addon):addon.name?!addonsToRemove.includes(addon.name):!1);logger16.info("\u2705 Removing unnecessary addons"),dryRun||main.setFieldValue(["addons"],updatedAddons)}})}};var import_ts_dedent23=require("ts-dedent");var minimumStorybookVersion="8.0.0-alpha.4",removeReactDependency={id:"remove-react-dependency",promptType:"manual",versionRange:[`^7 || <${minimumStorybookVersion}`,`>=${minimumStorybookVersion}`],async check({packageManager,mainConfig,storybookVersion}){let frameworkPackageName=getFrameworkPackageName(mainConfig);if(frameworkPackageName?.includes("react")||frameworkPackageName?.includes("nextjs"))return null;let{react}=await packageManager.getAllDependencies();return react?!0:null},prompt(){return import_ts_dedent23.dedent`
374
402
  We detected that your project has a dependency for "react" that it might not need.
375
403
  Nothing breaks by having it, you can safely ignore this message, if you wish.
376
404
 
@@ -380,7 +408,7 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
380
408
 
381
409
  If you know you are not using React outside of Storybook, it should be safe to remove the "react" and "react-dom" dependencies from your project's package.json.
382
410
  Storybook cannot do this automatically as removing it might break your project, so it should be done manually with care.
383
- `}};var import_picocolors23=__toESM(require_picocolors(),1),import_ts_dedent23=require("ts-dedent");var logger15=console,reactDocgen={id:"react-docgen",versionRange:["<8.0.0-alpha.1",">=8.0.0-alpha.1"],async check({mainConfig}){let{reactDocgenTypescriptOptions,reactDocgen:rDocgen}=mainConfig.typescript||{};return getRendererName(mainConfig)!=="react"||rDocgen!==void 0?null:{reactDocgenTypescriptOptions,reactDocgen:rDocgen}},prompt({reactDocgenTypescriptOptions}){return reactDocgenTypescriptOptions?import_ts_dedent23.dedent`
411
+ `}};var import_picocolors26=__toESM(require_picocolors(),1),import_ts_dedent24=require("ts-dedent");var logger17=console,reactDocgen={id:"react-docgen",versionRange:["<8.0.0-alpha.1",">=8.0.0-alpha.1"],async check({mainConfig}){let{reactDocgenTypescriptOptions,reactDocgen:rDocgen}=mainConfig.typescript||{};return getRendererName(mainConfig)!=="react"||rDocgen!==void 0?null:{reactDocgenTypescriptOptions,reactDocgen:rDocgen}},prompt({reactDocgenTypescriptOptions}){return reactDocgenTypescriptOptions?import_ts_dedent24.dedent`
384
412
  You have "typescript.reactDocgenTypescriptOptions" configured in your main.js,
385
413
  but "typescript.reactDocgen" is unset.
386
414
 
@@ -393,20 +421,20 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
393
421
  Should we update your config to continue to use "react-docgen-typescript"?
394
422
 
395
423
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-docgen-component-analysis-by-default
396
- `:import_ts_dedent23.dedent`
397
- Since Storybook 8.0, ${import_picocolors23.default.cyan("react-docgen")} is now the default for generating component controls, replacing ${import_picocolors23.default.cyan("react-docgen-typescript")}.
424
+ `:import_ts_dedent24.dedent`
425
+ Since Storybook 8.0, ${import_picocolors26.default.cyan("react-docgen")} is now the default for generating component controls, replacing ${import_picocolors26.default.cyan("react-docgen-typescript")}.
398
426
  This offers better performance and suits most cases.
399
427
  However, for complex TypeScript types or specific type features, the generated controls might not be as precise.
400
428
 
401
429
  For more on this change, check the migration guide:
402
- ${import_picocolors23.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-docgen-component-analysis-by-default")}
430
+ ${import_picocolors26.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-docgen-component-analysis-by-default")}
403
431
 
404
432
  For known "react-docgen" limitations, see:
405
- ${import_picocolors23.default.yellow("https://github.com/storybookjs/storybook/issues/26606")}
433
+ ${import_picocolors26.default.yellow("https://github.com/storybookjs/storybook/issues/26606")}
406
434
 
407
- Press Y to revert to ${import_picocolors23.default.cyan("react-docgen-typescript")}, press N to use ${import_picocolors23.default.cyan("react-docgen")}
408
- `},async run({dryRun,mainConfigPath,result}){dryRun||await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger15.info("\u2705 Setting typescript.reactDocgen"),main.setFieldValue(["typescript","reactDocgen"],"react-docgen-typescript")})}};var import_promises5=require("fs/promises"),import_csf_tools7=require("storybook/internal/csf-tools"),babel=__toESM(require("@babel/core"),1),import_picocolors24=__toESM(require_picocolors(),1),import_ts_dedent24=require("ts-dedent"),removeArgtypesRegex={id:"remove-argtypes-regex",promptType:"manual",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],async check({previewConfigPath}){if(!previewConfigPath)return null;let previewFile=await(0,import_promises5.readFile)(previewConfigPath,{encoding:"utf-8"}),file=new babel.File({filename:previewConfigPath},{code:previewFile,ast:(0,import_csf_tools7.babelParse)(previewFile)}),argTypesRegex;return file.path.traverse({Identifier:path2=>{path2.node.name==="argTypesRegex"&&(argTypesRegex=path2)}}),argTypesRegex?{argTypesRegex,previewConfigPath}:null},prompt({argTypesRegex,previewConfigPath}){return import_ts_dedent24.dedent`
409
- ${import_picocolors24.default.bold("Attention")}: We've detected that you're using argTypesRegex:
435
+ Press Y to revert to ${import_picocolors26.default.cyan("react-docgen-typescript")}, press N to use ${import_picocolors26.default.cyan("react-docgen")}
436
+ `},async run({dryRun,mainConfigPath,result}){dryRun||await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger17.info("\u2705 Setting typescript.reactDocgen"),main.setFieldValue(["typescript","reactDocgen"],"react-docgen-typescript")})}};var import_promises5=require("fs/promises"),import_csf_tools9=require("storybook/internal/csf-tools"),babel=__toESM(require("@babel/core"),1),import_picocolors27=__toESM(require_picocolors(),1),import_ts_dedent25=require("ts-dedent"),removeArgtypesRegex={id:"remove-argtypes-regex",promptType:"manual",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],async check({previewConfigPath}){if(!previewConfigPath)return null;let previewFile=await(0,import_promises5.readFile)(previewConfigPath,{encoding:"utf-8"}),file=new babel.File({filename:previewConfigPath},{code:previewFile,ast:(0,import_csf_tools9.babelParse)(previewFile)}),argTypesRegex;return file.path.traverse({Identifier:path3=>{path3.node.name==="argTypesRegex"&&(argTypesRegex=path3)}}),argTypesRegex?{argTypesRegex,previewConfigPath}:null},prompt({argTypesRegex,previewConfigPath}){return import_ts_dedent25.dedent`
437
+ ${import_picocolors27.default.bold("Attention")}: We've detected that you're using argTypesRegex:
410
438
 
411
439
  ${argTypesRegex.buildCodeFrameError(`${previewConfigPath}`).message}
412
440
 
@@ -419,73 +447,73 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
419
447
  (fn) function to mock your component's methods instead.
420
448
 
421
449
  Use the following command to check for implied mocked actions in your play functions:
422
- ${import_picocolors24.default.cyan('npx storybook migrate find-implicit-spies --glob="**/*.stories.@(js|jsx|ts|tsx)"')}
450
+ ${import_picocolors27.default.cyan('npx storybook migrate find-implicit-spies --glob="**/*.stories.@(js|jsx|ts|tsx)"')}
423
451
 
424
452
  Then, refer to our docs to migrate your play functions to Storybook 8:
425
- ${import_picocolors24.default.yellow("https://storybook.js.org/docs/essentials/actions#via-storybooktest-fn-spy-function")}
426
- `}};var import_promises6=require("fs/promises"),import_picocolors25=__toESM(require_picocolors(),1),import_ts_dedent25=require("ts-dedent"),RemovedAPIs=(RemovedAPIs2=>(RemovedAPIs2.addDecorator="addDecorator",RemovedAPIs2.addParameters="addParameters",RemovedAPIs2.addLoader="addLoader",RemovedAPIs2.getStorybook="getStorybook",RemovedAPIs2.setAddon="setAddon",RemovedAPIs2.clearDecorators="clearDecorators",RemovedAPIs2))(RemovedAPIs||{}),removedGlobalClientAPIs={id:"removedglobalclientapis",promptType:"manual",versionRange:["<7",">=7"],async check({previewConfigPath}){if(previewConfigPath){let contents=await(0,import_promises6.readFile)(previewConfigPath,{encoding:"utf8"}),usedAPIs=Object.values(RemovedAPIs).reduce((acc,item)=>(contents.includes(item)&&acc.push(item),acc),[]);if(usedAPIs.length)return{usedAPIs,previewPath:previewConfigPath}}return null},prompt({usedAPIs,previewPath}){return import_ts_dedent25.dedent`
427
- ${import_picocolors25.default.bold(import_picocolors25.default.red("Attention"))}: We could not automatically make this change. You'll need to do it manually.
453
+ ${import_picocolors27.default.yellow("https://storybook.js.org/docs/essentials/actions#via-storybooktest-fn-spy-function")}
454
+ `}};var import_promises6=require("fs/promises"),import_picocolors28=__toESM(require_picocolors(),1),import_ts_dedent26=require("ts-dedent"),RemovedAPIs=(RemovedAPIs2=>(RemovedAPIs2.addDecorator="addDecorator",RemovedAPIs2.addParameters="addParameters",RemovedAPIs2.addLoader="addLoader",RemovedAPIs2.getStorybook="getStorybook",RemovedAPIs2.setAddon="setAddon",RemovedAPIs2.clearDecorators="clearDecorators",RemovedAPIs2))(RemovedAPIs||{}),removedGlobalClientAPIs={id:"removedglobalclientapis",promptType:"manual",versionRange:["<7",">=7"],async check({previewConfigPath}){if(previewConfigPath){let contents=await(0,import_promises6.readFile)(previewConfigPath,{encoding:"utf8"}),usedAPIs=Object.values(RemovedAPIs).reduce((acc,item)=>(contents.includes(item)&&acc.push(item),acc),[]);if(usedAPIs.length)return{usedAPIs,previewPath:previewConfigPath}}return null},prompt({usedAPIs,previewPath}){return import_ts_dedent26.dedent`
455
+ ${import_picocolors28.default.bold(import_picocolors28.default.red("Attention"))}: We could not automatically make this change. You'll need to do it manually.
428
456
 
429
- The following APIs (used in "${import_picocolors25.default.yellow(previewPath)}") have been removed from Storybook:
457
+ The following APIs (used in "${import_picocolors28.default.yellow(previewPath)}") have been removed from Storybook:
430
458
 
431
- ${usedAPIs.map(api=>`- ${import_picocolors25.default.cyan(api)}`).join(`
459
+ ${usedAPIs.map(api=>`- ${import_picocolors28.default.cyan(api)}`).join(`
432
460
  `)}
433
461
 
434
462
  Please see the migration guide for more information:
435
- ${import_picocolors25.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#removed-global-client-apis")}
436
- `}};var import_cli9=require("storybook/internal/cli"),import_codemod2=require("@storybook/codemod"),import_picocolors26=__toESM(require_picocolors(),1),import_prompts5=__toESM(require("prompts"),1),import_ts_dedent26=require("ts-dedent"),logger16=console,removeJestTestingLibrary={id:"remove-jest-testing-library",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],promptType:"auto",async check({packageManager}){let deps=await packageManager.getAllDependencies(),incompatiblePackages=Object.keys(deps).filter(it=>it==="@storybook/jest"||it==="@storybook/testing-library");return incompatiblePackages.length?{incompatiblePackages}:null},prompt({incompatiblePackages}){return import_ts_dedent26.dedent`
437
- ${import_picocolors26.default.bold("Attention")}: We've detected that you're using the following packages which are known to be incompatible since Storybook 8:
463
+ ${import_picocolors28.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#removed-global-client-apis")}
464
+ `}};var import_cli9=require("storybook/internal/cli"),import_codemod3=require("@storybook/codemod"),import_picocolors29=__toESM(require_picocolors(),1),import_prompts6=__toESM(require("prompts"),1),import_ts_dedent27=require("ts-dedent"),logger18=console,removeJestTestingLibrary={id:"remove-jest-testing-library",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],promptType:"auto",async check({packageManager}){let deps=await packageManager.getAllDependencies(),incompatiblePackages=Object.keys(deps).filter(it=>it==="@storybook/jest"||it==="@storybook/testing-library");return incompatiblePackages.length?{incompatiblePackages}:null},prompt({incompatiblePackages}){return import_ts_dedent27.dedent`
465
+ ${import_picocolors29.default.bold("Attention")}: We've detected that you're using the following packages which are known to be incompatible since Storybook 8:
438
466
 
439
- ${incompatiblePackages.map(name=>`- ${import_picocolors26.default.cyan(`${name}`)}`).join(`
467
+ ${incompatiblePackages.map(name=>`- ${import_picocolors29.default.cyan(`${name}`)}`).join(`
440
468
  `)}
441
469
 
442
- We will uninstall them for you and install ${import_picocolors26.default.cyan("@storybook/test")} instead.
470
+ We will uninstall them for you and install ${import_picocolors29.default.cyan("@storybook/test")} instead.
443
471
 
444
472
  Also, we can help you migrate your stories to use the new package.
445
- `},async run({packageManager,dryRun}){if(!dryRun){let packageJson=await packageManager.retrievePackageJson();await packageManager.removeDependencies({skipInstall:!0,packageJson},["@storybook/jest","@storybook/testing-library"]);let versionToInstall=(0,import_cli9.getStorybookVersionSpecifier)(packageJson);await packageManager.addDependencies({installAsDevDependencies:!0,packageJson},[`@storybook/test@${versionToInstall}`]);let{glob:globString}=await(0,import_prompts5.default)({type:"text",name:"glob",message:"Please enter the glob for your stories to migrate to @storybook/test",initial:"./src/**/*.stories.*"});globString&&await(0,import_codemod2.runCodemod)("migrate-to-test-package",{glob:globString,dryRun,logger:logger16})}}};var import_csf_tools8=require("storybook/internal/csf-tools"),import_ts_dedent27=require("ts-dedent");var logger17=console,removeLegacyMDX1={id:"remove-legacy-mdx1",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],async check({mainConfig}){return mainConfig.features&&Object.hasOwn(mainConfig.features,"legacyMdx1")?{hasFeature:!0}:null},prompt({}){return import_ts_dedent27.dedent`
473
+ `},async run({packageManager,dryRun}){if(!dryRun){let packageJson=await packageManager.retrievePackageJson();await packageManager.removeDependencies({skipInstall:!0,packageJson},["@storybook/jest","@storybook/testing-library"]);let versionToInstall=(0,import_cli9.getStorybookVersionSpecifier)(packageJson);await packageManager.addDependencies({installAsDevDependencies:!0,packageJson},[`@storybook/test@${versionToInstall}`]);let{glob:globString}=await(0,import_prompts6.default)({type:"text",name:"glob",message:"Please enter the glob for your stories to migrate to @storybook/test",initial:"./src/**/*.stories.*"});globString&&await(0,import_codemod3.runCodemod)("migrate-to-test-package",{glob:globString,dryRun,logger:logger18})}}};var import_csf_tools10=require("storybook/internal/csf-tools"),import_ts_dedent28=require("ts-dedent");var logger19=console,removeLegacyMDX1={id:"remove-legacy-mdx1",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],async check({mainConfig}){return mainConfig.features&&Object.hasOwn(mainConfig.features,"legacyMdx1")?{hasFeature:!0}:null},prompt({}){return import_ts_dedent28.dedent`
446
474
  You have features.legacyMdx1 in your Storybook main config file. This feature has been removed. Shall we remove it from your Storybook main config file?
447
475
 
448
476
  Link: https://storybook.js.org/docs/8.0/migration-guide
449
- `},async run({dryRun,mainConfigPath,skipInstall,packageManager}){if(logger17.info("\u2705 Removing legacyMdx1 feature"),!dryRun){await updateMainConfig({dryRun:!!dryRun,mainConfigPath},async main=>{main.removeField(["features","legacyMdx1"]),await(0,import_csf_tools8.writeConfig)(main)});let packageJson=await packageManager.retrievePackageJson();await packageManager.removeDependencies({skipInstall,packageJson},["@storybook/mdx1-csf"])}}};var import_cli10=require("storybook/internal/cli"),import_picocolors27=__toESM(require_picocolors(),1),import_ts_dedent28=require("ts-dedent"),logger18=console,sbBinary={id:"storybook-binary",versionRange:["*","*"],async check({packageManager,storybookVersion}){let packageJson=await packageManager.retrievePackageJson(),sbBinaryVersion=await packageManager.getPackageVersion("sb"),storybookBinaryVersion=await packageManager.getPackageVersion("storybook"),hasSbBinary=!!sbBinaryVersion,hasStorybookBinary=!!storybookBinaryVersion;return!hasSbBinary&&hasStorybookBinary?null:{hasSbBinary,hasStorybookBinary,storybookVersion,packageJson}},prompt({storybookVersion,hasSbBinary,hasStorybookBinary}){let sbFormatted=import_picocolors27.default.cyan(`Storybook ${storybookVersion}`),storybookBinaryMessage=hasStorybookBinary?"":`We've detected you are using ${sbFormatted} without Storybook's ${import_picocolors27.default.magenta("storybook")} binary. Starting in Storybook 7.0, it has to be installed.`;return import_ts_dedent28.dedent`
477
+ `},async run({dryRun,mainConfigPath,skipInstall,packageManager}){if(logger19.info("\u2705 Removing legacyMdx1 feature"),!dryRun){await updateMainConfig({dryRun:!!dryRun,mainConfigPath},async main=>{main.removeField(["features","legacyMdx1"]),await(0,import_csf_tools10.writeConfig)(main)});let packageJson=await packageManager.retrievePackageJson();await packageManager.removeDependencies({skipInstall,packageJson},["@storybook/mdx1-csf"])}}};var import_cli10=require("storybook/internal/cli"),import_picocolors30=__toESM(require_picocolors(),1),import_ts_dedent29=require("ts-dedent"),logger20=console,sbBinary={id:"storybook-binary",versionRange:["*","*"],async check({packageManager,storybookVersion}){let packageJson=await packageManager.retrievePackageJson(),sbBinaryVersion=await packageManager.getPackageVersion("sb"),storybookBinaryVersion=await packageManager.getPackageVersion("storybook"),hasSbBinary=!!sbBinaryVersion,hasStorybookBinary=!!storybookBinaryVersion;return!hasSbBinary&&hasStorybookBinary?null:{hasSbBinary,hasStorybookBinary,storybookVersion,packageJson}},prompt({storybookVersion,hasSbBinary,hasStorybookBinary}){let sbFormatted=import_picocolors30.default.cyan(`Storybook ${storybookVersion}`),storybookBinaryMessage=hasStorybookBinary?"":`We've detected you are using ${sbFormatted} without Storybook's ${import_picocolors30.default.magenta("storybook")} binary. Starting in Storybook 7.0, it has to be installed.`;return import_ts_dedent29.dedent`
450
478
  ${storybookBinaryMessage}
451
479
  ${hasSbBinary?`You're using the 'sb' binary and it should be replaced, as 'storybook' is the recommended way to run Storybook.
452
480
  `:""}
453
481
 
454
- More info: ${import_picocolors27.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#start-storybook--build-storybook-binaries-removed")}
455
- `},async run({result:{packageJson,hasSbBinary,hasStorybookBinary},packageManager,dryRun,skipInstall}){if(hasSbBinary&&(logger18.info("\u2705 Removing 'sb' dependency"),dryRun||await packageManager.removeDependencies({skipInstall:skipInstall||!hasStorybookBinary,packageJson},["sb"])),!hasStorybookBinary&&(logger18.log(),logger18.info("\u2705 Adding 'storybook' as dev dependency"),logger18.log(),!dryRun)){let versionToInstall=(0,import_cli10.getStorybookVersionSpecifier)(packageJson);await packageManager.addDependencies({installAsDevDependencies:!0,packageJson,skipInstall},[`storybook@${versionToInstall}`])}}};var import_picocolors28=__toESM(require_picocolors(),1),import_semver10=__toESM(require("semver"),1),import_ts_dedent29=require("ts-dedent"),logger19=console,getStorybookScripts=allScripts=>Object.keys(allScripts).reduce((acc,key)=>{let currentScript=allScripts[key];if(currentScript==null)return acc;let isStorybookScript=!1,allWordsFromScript=currentScript.split(" "),newScript=allWordsFromScript.map((currentWord,index)=>{let previousWord=allWordsFromScript[index-1],isSbBinary=currentWord==="build-storybook"||currentWord==="start-storybook"||currentWord==="sb",isPrependedByPkgManager=previousWord&&["npx","run","yarn","pnpx","pnpm dlx"].some(cmd=>previousWord.includes(cmd));return isSbBinary&&!isPrependedByPkgManager?(isStorybookScript=!0,currentWord.replace("sb","storybook").replace("start-storybook","storybook dev").replace("build-storybook","storybook build")):currentWord}).join(" ");return isStorybookScript&&(acc[key]={before:currentScript,after:newScript}),acc},{}),sbScripts={id:"sb-scripts",versionRange:["*","*"],async check({packageManager,storybookVersion}){let packageJson=await packageManager.retrievePackageJson(),{scripts={}}=packageJson;if(import_semver10.default.lt(storybookVersion,"7.0.0"))return null;let storybookScripts=getStorybookScripts(scripts);return Object.keys(storybookScripts).length===0?null:{packageJson,storybookScripts,storybookVersion}},prompt({storybookVersion,storybookScripts}){let sbFormatted=import_picocolors28.default.cyan(`Storybook ${storybookVersion}`),newScriptsMessage=Object.keys(storybookScripts).reduce((acc,scriptKey)=>(acc.push([import_picocolors28.default.bold(scriptKey),"from:",import_picocolors28.default.cyan(storybookScripts[scriptKey].before),"to:",import_picocolors28.default.cyan(storybookScripts[scriptKey].after)].join(`
456
- `)),acc),[]);return import_ts_dedent29.dedent`
482
+ More info: ${import_picocolors30.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#start-storybook--build-storybook-binaries-removed")}
483
+ `},async run({result:{packageJson,hasSbBinary,hasStorybookBinary},packageManager,dryRun,skipInstall}){if(hasSbBinary&&(logger20.info("\u2705 Removing 'sb' dependency"),dryRun||await packageManager.removeDependencies({skipInstall:skipInstall||!hasStorybookBinary,packageJson},["sb"])),!hasStorybookBinary&&(logger20.log(),logger20.info("\u2705 Adding 'storybook' as dev dependency"),logger20.log(),!dryRun)){let versionToInstall=(0,import_cli10.getStorybookVersionSpecifier)(packageJson);await packageManager.addDependencies({installAsDevDependencies:!0,packageJson,skipInstall},[`storybook@${versionToInstall}`])}}};var import_picocolors31=__toESM(require_picocolors(),1),import_semver10=__toESM(require("semver"),1),import_ts_dedent30=require("ts-dedent"),logger21=console,getStorybookScripts=allScripts=>Object.keys(allScripts).reduce((acc,key)=>{let currentScript=allScripts[key];if(currentScript==null)return acc;let isStorybookScript=!1,allWordsFromScript=currentScript.split(" "),newScript=allWordsFromScript.map((currentWord,index)=>{let previousWord=allWordsFromScript[index-1],isSbBinary=currentWord==="build-storybook"||currentWord==="start-storybook"||currentWord==="sb",isPrependedByPkgManager=previousWord&&["npx","run","yarn","pnpx","pnpm dlx"].some(cmd=>previousWord.includes(cmd));return isSbBinary&&!isPrependedByPkgManager?(isStorybookScript=!0,currentWord.replace("sb","storybook").replace("start-storybook","storybook dev").replace("build-storybook","storybook build")):currentWord}).join(" ");return isStorybookScript&&(acc[key]={before:currentScript,after:newScript}),acc},{}),sbScripts={id:"sb-scripts",versionRange:["*","*"],async check({packageManager,storybookVersion}){let packageJson=await packageManager.retrievePackageJson(),{scripts={}}=packageJson;if(import_semver10.default.lt(storybookVersion,"7.0.0"))return null;let storybookScripts=getStorybookScripts(scripts);return Object.keys(storybookScripts).length===0?null:{packageJson,storybookScripts,storybookVersion}},prompt({storybookVersion,storybookScripts}){let sbFormatted=import_picocolors31.default.cyan(`Storybook ${storybookVersion}`),newScriptsMessage=Object.keys(storybookScripts).reduce((acc,scriptKey)=>(acc.push([import_picocolors31.default.bold(scriptKey),"from:",import_picocolors31.default.cyan(storybookScripts[scriptKey].before),"to:",import_picocolors31.default.cyan(storybookScripts[scriptKey].after)].join(`
484
+ `)),acc),[]);return import_ts_dedent30.dedent`
457
485
  We've detected you are using ${sbFormatted} with scripts from previous versions of Storybook.
458
- Starting in Storybook 7, the ${import_picocolors28.default.yellow("start-storybook")} and ${import_picocolors28.default.yellow("build-storybook")} binaries have changed to ${import_picocolors28.default.magenta("storybook dev")} and ${import_picocolors28.default.magenta("storybook build")} respectively.
486
+ Starting in Storybook 7, the ${import_picocolors31.default.yellow("start-storybook")} and ${import_picocolors31.default.yellow("build-storybook")} binaries have changed to ${import_picocolors31.default.magenta("storybook dev")} and ${import_picocolors31.default.magenta("storybook build")} respectively.
459
487
  In order to work with ${sbFormatted}, your storybook scripts have to be adjusted to use the binary. We can adjust them for you:
460
488
 
461
489
  ${newScriptsMessage.join(`
462
490
 
463
491
  `)}
464
492
 
465
- In case this migration did not cover all of your scripts, or you'd like more info: ${import_picocolors28.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#start-storybook--build-storybook-binaries-removed")}
466
- `},async run({result:{storybookScripts},packageManager,dryRun}){if(logger19.info("\u2705 Updating scripts in package.json"),logger19.log(),!dryRun){let newScripts=Object.keys(storybookScripts).reduce((acc,scriptKey)=>(acc[scriptKey]=storybookScripts[scriptKey].after,acc),{});logger19.log(),await packageManager.addScripts(newScripts)}}};var import_picocolors29=__toESM(require_picocolors(),1),import_ts_dedent30=require("ts-dedent"),storyshotsMigration={id:"storyshots",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],promptType:"manual",async check({mainConfig,packageManager}){return((await packageManager.getAllDependencies())["@storybook/addon-storyshots"]||mainConfig.addons?.find(addon=>(typeof addon=="string"?addon:addon.name).includes("@storybook/addon-storyshots")))??null},prompt(){return import_ts_dedent30.dedent`
467
- ${import_picocolors29.default.bold("Attention")}: Storyshots is now officially deprecated, is no longer being maintained, and was removed in Storybook 8.
493
+ In case this migration did not cover all of your scripts, or you'd like more info: ${import_picocolors31.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#start-storybook--build-storybook-binaries-removed")}
494
+ `},async run({result:{storybookScripts},packageManager,dryRun}){if(logger21.info("\u2705 Updating scripts in package.json"),logger21.log(),!dryRun){let newScripts=Object.keys(storybookScripts).reduce((acc,scriptKey)=>(acc[scriptKey]=storybookScripts[scriptKey].after,acc),{});logger21.log(),await packageManager.addScripts(newScripts)}}};var import_picocolors32=__toESM(require_picocolors(),1),import_ts_dedent31=require("ts-dedent"),storyshotsMigration={id:"storyshots",versionRange:["<8.0.0-alpha.0",">=8.0.0-alpha.0"],promptType:"manual",async check({mainConfig,packageManager}){return((await packageManager.getAllDependencies())["@storybook/addon-storyshots"]||mainConfig.addons?.find(addon=>(typeof addon=="string"?addon:addon.name).includes("@storybook/addon-storyshots")))??null},prompt(){return import_ts_dedent31.dedent`
495
+ ${import_picocolors32.default.bold("Attention")}: Storyshots is now officially deprecated, is no longer being maintained, and was removed in Storybook 8.
468
496
 
469
497
  We recommend following the migration guide we've prepared to help you during this transition period:
470
- ${import_picocolors29.default.yellow("https://storybook.js.org/docs/writing-tests/storyshots-migration-guide")}
471
- `}};var import_common13=require("storybook/internal/common"),import_picocolors30=__toESM(require_picocolors(),1),import_semver11=require("semver"),import_ts_dedent31=require("ts-dedent");async function getLatestVersions(packageManager,packages){return Promise.all(packages.map(async([packageName])=>({packageName,beforeVersion:await packageManager.getInstalledVersion(packageName).catch(()=>null),afterVersion:await packageManager.latestVersion(packageName).catch(()=>null)})))}var upgradeStorybookRelatedDependencies={id:"upgradeStorybookRelatedDependencies",versionRange:["*.*.*","*.*.*"],promptType:"auto",promptDefaultValue:!1,async check({packageManager,storybookVersion}){let analyzedPackages=await getIncompatibleStorybookPackages({currentStorybookVersion:storybookVersion,packageManager,skipErrors:!0}),allDependencies=await packageManager.getAllDependencies(),storybookDependencies=Object.keys(allDependencies).filter(dep=>dep.includes("storybook")).filter(dep=>!(0,import_common13.isCorePackage)(dep)),incompatibleDependencies=analyzedPackages.filter(pkg2=>pkg2.hasIncompatibleDependencies).map(pkg2=>pkg2.packageName),uniquePackages=Array.from(new Set([...storybookDependencies,...incompatibleDependencies])).map(packageName=>[packageName,allDependencies[packageName]]),upgradablePackages=(await getLatestVersions(packageManager,uniquePackages)).filter(({afterVersion,beforeVersion})=>beforeVersion===null||afterVersion===null?!1:(0,import_semver11.gt)(afterVersion,beforeVersion));return upgradablePackages.length>0?{upgradable:upgradablePackages}:null},prompt({upgradable}){return import_ts_dedent31.dedent`
498
+ ${import_picocolors32.default.yellow("https://storybook.js.org/docs/writing-tests/storyshots-migration-guide")}
499
+ `}};var import_common17=require("storybook/internal/common"),import_picocolors33=__toESM(require_picocolors(),1),import_semver11=require("semver"),import_ts_dedent32=require("ts-dedent");async function getLatestVersions(packageManager,packages){return Promise.all(packages.map(async([packageName])=>({packageName,beforeVersion:await packageManager.getInstalledVersion(packageName).catch(()=>null),afterVersion:await packageManager.latestVersion(packageName).catch(()=>null)})))}var upgradeStorybookRelatedDependencies={id:"upgradeStorybookRelatedDependencies",versionRange:["*.*.*","*.*.*"],promptType:"auto",promptDefaultValue:!1,async check({packageManager,storybookVersion}){let analyzedPackages=await getIncompatibleStorybookPackages({currentStorybookVersion:storybookVersion,packageManager,skipErrors:!0}),allDependencies=await packageManager.getAllDependencies(),storybookDependencies=Object.keys(allDependencies).filter(dep=>dep.includes("storybook")).filter(dep=>!(0,import_common17.isCorePackage)(dep)),incompatibleDependencies=analyzedPackages.filter(pkg=>pkg.hasIncompatibleDependencies).map(pkg=>pkg.packageName),uniquePackages=Array.from(new Set([...storybookDependencies,...incompatibleDependencies])).map(packageName=>[packageName,allDependencies[packageName]]),upgradablePackages=(await getLatestVersions(packageManager,uniquePackages)).filter(({afterVersion,beforeVersion})=>beforeVersion===null||afterVersion===null?!1:(0,import_semver11.gt)(afterVersion,beforeVersion));return upgradablePackages.length>0?{upgradable:upgradablePackages}:null},prompt({upgradable}){return import_ts_dedent32.dedent`
472
500
  You're upgrading to the latest version of Storybook. We recommend upgrading the following packages:
473
- ${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,import_picocolors30.cyan)(packageName)}: ${(0,import_picocolors30.cyan)(beforeVersion)} => ${(0,import_picocolors30.cyan)(afterVersion)}`).join(`
501
+ ${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,import_picocolors33.cyan)(packageName)}: ${(0,import_picocolors33.cyan)(beforeVersion)} => ${(0,import_picocolors33.cyan)(afterVersion)}`).join(`
474
502
  `)}
475
503
 
476
504
  After upgrading, we will run the dedupe command, which could possibly have effects on dependencies that are not Storybook related.
477
505
  see: https://docs.npmjs.com/cli/commands/npm-dedupe
478
506
 
479
507
  Do you want to proceed (upgrade the detected packages)?
480
- `},async run({result:{upgradable},packageManager,dryRun}){if(dryRun){console.log(import_ts_dedent31.dedent`
508
+ `},async run({result:{upgradable},packageManager,dryRun}){if(dryRun){console.log(import_ts_dedent32.dedent`
481
509
  We would have upgrade the following:
482
510
  ${upgradable.map(({packageName,afterVersion,beforeVersion})=>`${packageName}: ${beforeVersion} => ${afterVersion}`).join(`
483
511
  `)}
484
- `);return}if(upgradable.length>0){let packageJson=await packageManager.readPackageJson();upgradable.forEach(item=>{if(!item)return;let{packageName,afterVersion:version}=item,prefixed=`^${version}`;packageJson.dependencies?.[packageName]&&(packageJson.dependencies[packageName]=prefixed),packageJson.devDependencies?.[packageName]&&(packageJson.devDependencies[packageName]=prefixed),packageJson.peerDependencies?.[packageName]&&(packageJson.peerDependencies[packageName]=prefixed)}),await packageManager.writePackageJson(packageJson),await packageManager.installDependencies(),await packageManager.executeCommand({command:"dedupe",args:[],stdio:"ignore"}).catch(()=>{}),console.log(),console.log(import_ts_dedent31.dedent`
485
- We upgraded ${(0,import_picocolors30.yellow)(upgradable.length)} packages:
486
- ${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,import_picocolors30.cyan)(packageName)}: ${(0,import_picocolors30.cyan)(beforeVersion)} => ${(0,import_picocolors30.cyan)(afterVersion)}`).join(`
512
+ `);return}if(upgradable.length>0){let packageJson=await packageManager.readPackageJson();upgradable.forEach(item=>{if(!item)return;let{packageName,afterVersion:version2}=item,prefixed=`^${version2}`;packageJson.dependencies?.[packageName]&&(packageJson.dependencies[packageName]=prefixed),packageJson.devDependencies?.[packageName]&&(packageJson.devDependencies[packageName]=prefixed),packageJson.peerDependencies?.[packageName]&&(packageJson.peerDependencies[packageName]=prefixed)}),await packageManager.writePackageJson(packageJson),await packageManager.installDependencies(),await packageManager.executeCommand({command:"dedupe",args:[],stdio:"ignore"}).catch(()=>{}),console.log(),console.log(import_ts_dedent32.dedent`
513
+ We upgraded ${(0,import_picocolors33.yellow)(upgradable.length)} packages:
514
+ ${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,import_picocolors33.cyan)(packageName)}: ${(0,import_picocolors33.cyan)(beforeVersion)} => ${(0,import_picocolors33.cyan)(afterVersion)}`).join(`
487
515
  `)}
488
- `)}console.log()}};var import_node_path6=require("path"),import_cli11=require("storybook/internal/cli"),import_common14=require("storybook/internal/common"),import_find_up2=__toESM(require("find-up"),1),import_ts_dedent32=require("ts-dedent");var viteConfigFile={id:"viteConfigFile",versionRange:["<8.0.0-beta.3",">=8.0.0-beta.3"],promptType:"notification",async check({mainConfig,packageManager,mainConfigPath}){let isViteConfigFileFound=!!await(0,import_find_up2.default)(["vite.config.js","vite.config.mjs","vite.config.cjs","vite.config.ts","vite.config.mts"],{cwd:mainConfigPath?(0,import_node_path6.join)(mainConfigPath,".."):process.cwd()}),rendererToVitePluginMap={preact:"@preact/preset-vite",qwik:"vite-plugin-qwik",react:"@vitejs/plugin-react",solid:"vite-plugin-solid",svelte:"@sveltejs/vite-plugin-svelte",sveltekit:"@sveltejs/kit/vite",vue:"@vitejs/plugin-vue"},frameworkPackageName=getFrameworkPackageName(mainConfig);if(!frameworkPackageName)return null;let frameworkName=import_common14.frameworkPackages[frameworkPackageName];if(frameworkName==="react-native-web-vite")return null;let isUsingViteBuilder=mainConfig.core?.builder==="vite"||frameworkPackageName?.includes("vite")||frameworkPackageName==="qwik"||frameworkPackageName==="solid"||frameworkPackageName==="sveltekit",rendererName=import_cli11.frameworkToRenderer[frameworkName];if(!isViteConfigFileFound&&mainConfig.core?.builder&&typeof mainConfig.core?.builder!="string"&&mainConfig.core?.builder.options&&(isViteConfigFileFound=!!mainConfig.core?.builder.options.viteConfigPath),!isViteConfigFileFound&&isUsingViteBuilder){let plugins=[];return rendererToVitePluginMap[rendererName]&&plugins.push(rendererToVitePluginMap[rendererName]),{plugins,existed:isViteConfigFileFound}}let plugin=rendererToVitePluginMap[rendererName];if(!plugin)return null;let pluginVersion=await packageManager.getPackageVersion(plugin);if(isViteConfigFileFound&&isUsingViteBuilder&&!pluginVersion){let plugins=[];return plugin&&plugins.push(plugin),{plugins,existed:!isViteConfigFileFound}}return null},prompt({existed,plugins}){return existed?import_ts_dedent32.dedent`
516
+ `)}console.log()}};var import_node_path6=require("path"),import_cli11=require("storybook/internal/cli"),import_common18=require("storybook/internal/common"),import_find_up2=__toESM(require("find-up"),1),import_ts_dedent33=require("ts-dedent");var viteConfigFile={id:"viteConfigFile",versionRange:["<8.0.0-beta.3",">=8.0.0-beta.3"],promptType:"notification",async check({mainConfig,packageManager,mainConfigPath}){let isViteConfigFileFound=!!await(0,import_find_up2.default)(["vite.config.js","vite.config.mjs","vite.config.cjs","vite.config.ts","vite.config.mts"],{cwd:mainConfigPath?(0,import_node_path6.join)(mainConfigPath,".."):process.cwd()}),rendererToVitePluginMap={preact:"@preact/preset-vite",qwik:"vite-plugin-qwik",react:"@vitejs/plugin-react",solid:"vite-plugin-solid",svelte:"@sveltejs/vite-plugin-svelte",sveltekit:"@sveltejs/kit/vite",vue:"@vitejs/plugin-vue"},frameworkPackageName=getFrameworkPackageName(mainConfig);if(!frameworkPackageName)return null;let frameworkName=import_common18.frameworkPackages[frameworkPackageName];if(frameworkName==="react-native-web-vite")return null;let isUsingViteBuilder=mainConfig.core?.builder==="vite"||frameworkPackageName?.includes("vite")||frameworkPackageName==="qwik"||frameworkPackageName==="solid"||frameworkPackageName==="sveltekit",rendererName=import_cli11.frameworkToRenderer[frameworkName];if(!isViteConfigFileFound&&mainConfig.core?.builder&&typeof mainConfig.core?.builder!="string"&&mainConfig.core?.builder.options&&(isViteConfigFileFound=!!mainConfig.core?.builder.options.viteConfigPath),!isViteConfigFileFound&&isUsingViteBuilder){let plugins=[];return rendererToVitePluginMap[rendererName]&&plugins.push(rendererToVitePluginMap[rendererName]),{plugins,existed:isViteConfigFileFound}}let plugin=rendererToVitePluginMap[rendererName];if(!plugin)return null;let pluginVersion=await packageManager.getPackageVersion(plugin);if(isViteConfigFileFound&&isUsingViteBuilder&&!pluginVersion){let plugins=[];return plugin&&plugins.push(plugin),{plugins,existed:!isViteConfigFileFound}}return null},prompt({existed,plugins}){return existed?import_ts_dedent33.dedent`
489
517
  Since version 8.0.0, Storybook no longer ships with an in-built Vite config.
490
518
  We've detected you do have a Vite config, but you may be missing the following plugins in it.
491
519
 
@@ -498,7 +526,7 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
498
526
  https://storybook.js.org/docs/8.0/migration-guide#missing-viteconfigjs-file
499
527
 
500
528
  This change was necessary to support newer versions of Vite.
501
- `:import_ts_dedent32.dedent`
529
+ `:import_ts_dedent33.dedent`
502
530
  Since version 8.0.0, Storybook no longer ships with an in-built Vite config.
503
531
  Please add a vite.config.js file to your project root.
504
532
 
@@ -506,134 +534,134 @@ ${indentation}// For more information please see: https://storybook.js.org/docs/
506
534
  https://storybook.js.org/docs/8.0/migration-guide#missing-viteconfigjs-file
507
535
 
508
536
  This change was necessary to support newer versions of Vite.
509
- `}};var import_picocolors31=__toESM(require_picocolors(),1),import_ts_dedent33=require("ts-dedent");var logger20=console,vta={id:"visual-tests-addon",versionRange:["<8.0.7",">=8.0.7"],async check({mainConfig}){return getAddonNames(mainConfig).some(addon=>addon.includes("@chromatic-com/storybook"))?null:{}},prompt(){return import_ts_dedent33.dedent`
537
+ `}};var import_common19=require("storybook/internal/common"),import_picocolors34=__toESM(require_picocolors(),1),import_ts_dedent34=require("ts-dedent");var logger22=console,vta={id:"visual-tests-addon",versionRange:["<8.0.7",">=8.0.7"],async check({mainConfig}){return(0,import_common19.getAddonNames)(mainConfig).some(addon=>addon.includes("@chromatic-com/storybook"))?null:{}},prompt(){return import_ts_dedent34.dedent`
510
538
  New to Storybook 8: Storybook's Visual Tests addon helps you catch unintentional changes/bugs in your stories. The addon is powered by Chromatic, a cloud-based testing tool developed by Storybook's core team.
511
539
 
512
- Learn more: ${import_picocolors31.default.yellow("https://storybook.js.org/docs/writing-tests/visual-testing")}
540
+ Learn more: ${import_picocolors34.default.yellow("https://storybook.js.org/docs/writing-tests/visual-testing")}
513
541
 
514
542
  Install Visual Tests addon in your project?
515
- `},async run({packageManager,dryRun,mainConfigPath,skipInstall}){if(!dryRun){let packageJson=await packageManager.retrievePackageJson();await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall,packageJson},["@chromatic-com/storybook@^3"]),await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger20.info('\u2705 Adding "@chromatic-com/storybook" addon'),main.appendValueToArray(["addons"],"@chromatic-com/storybook")})}}};var import_picocolors32=__toESM(require_picocolors(),1),import_semver12=__toESM(require("semver"),1),import_ts_dedent34=require("ts-dedent");var vue3={id:"vue3",versionRange:["<7",">=7"],async check({packageManager,mainConfig,storybookVersion}){let vueVersion=await packageManager.getPackageVersion("vue");if(!vueVersion||import_semver12.default.lt(vueVersion,"3.0.0"))return null;let builderInfo=await checkWebpack5Builder({mainConfig,storybookVersion});return builderInfo?{vueVersion,...builderInfo}:null},prompt({vueVersion,storybookVersion}){let vueFormatted=import_picocolors32.default.cyan(`Vue ${vueVersion}`),sbFormatted=import_picocolors32.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent34.dedent`
543
+ `},async run({packageManager,dryRun,mainConfigPath,skipInstall}){if(!dryRun){let packageJson=await packageManager.retrievePackageJson();await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall,packageJson},["@chromatic-com/storybook@^3"]),await updateMainConfig({mainConfigPath,dryRun:!!dryRun},async main=>{logger22.info('\u2705 Adding "@chromatic-com/storybook" addon'),main.appendValueToArray(["addons"],"@chromatic-com/storybook")})}}};var import_picocolors35=__toESM(require_picocolors(),1),import_semver12=__toESM(require("semver"),1),import_ts_dedent35=require("ts-dedent");var vue3={id:"vue3",versionRange:["<7",">=7"],async check({packageManager,mainConfig,storybookVersion}){let vueVersion=await packageManager.getPackageVersion("vue");if(!vueVersion||import_semver12.default.lt(vueVersion,"3.0.0"))return null;let builderInfo=await checkWebpack5Builder({mainConfig,storybookVersion});return builderInfo?{vueVersion,...builderInfo}:null},prompt({vueVersion,storybookVersion}){let vueFormatted=import_picocolors35.default.cyan(`Vue ${vueVersion}`),sbFormatted=import_picocolors35.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent35.dedent`
516
544
  We've detected you are running ${vueFormatted} with Storybook.
517
545
  ${sbFormatted} runs webpack4 by default, which is incompatible.
518
546
 
519
- In order to work with your version of Vue, we need to install Storybook's ${import_picocolors32.default.cyan("webpack5 builder")}.
547
+ In order to work with your version of Vue, we need to install Storybook's ${import_picocolors35.default.cyan("webpack5 builder")}.
520
548
 
521
- More info: ${import_picocolors32.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vue3-upgrade")}
522
- `},async run(options){return webpack5.run({...options,result:{webpackVersion:null,...options.result}})}};var import_cli12=require("storybook/internal/cli"),import_cli13=require("storybook/internal/cli"),import_common15=require("storybook/internal/common"),import_picocolors33=__toESM(require_picocolors(),1),import_prompts6=__toESM(require("prompts"),1),import_ts_dedent35=require("ts-dedent");var webpack5CompilerSetup={id:"webpack5-compiler-setup",versionRange:["<8.0.0-alpha.9",">=8.0.0-alpha.9"],promptType(result){return result.isNextJs&&!result.shouldRemoveSWCFlag?"notification":"auto"},async check({mainConfig,packageManager}){if(getAddonNames(mainConfig).find(addon=>addon.includes(import_cli13.CoreWebpackCompilers.Babel)||addon.includes(import_cli13.CoreWebpackCompilers.SWC)))return null;let frameworkName=Object.entries(import_common15.frameworkPackages).find(([name])=>name===getFrameworkPackageName(mainConfig))?.[1],builderPackageName=getBuilderPackageName(mainConfig),customCoreBuilder=builderPackageName?import_cli13.builderNameToCoreBuilder[builderPackageName]:null,defaultCoreBuilder=frameworkName?import_cli12.frameworkToDefaultBuilder[frameworkName]:await(async()=>await packageManager.getPackageVersion("webpack")?import_cli13.CoreBuilder.Webpack5:import_cli13.CoreBuilder.Vite)();if((customCoreBuilder||defaultCoreBuilder)!==import_cli13.CoreBuilder.Webpack5||(frameworkName?["angular","ember"].includes(frameworkName):!1)||!!await packageManager.getPackageVersion("react-scripts"))return null;let frameworkOptions=getFrameworkOptions(mainConfig),defaultCompiler=frameworkOptions?.builder?.useSWC?import_cli13.CoreWebpackCompilers.SWC:import_cli13.CoreWebpackCompilers.Babel,shouldRemoveSWCFlag=frameworkOptions?.builder?"useSWC"in frameworkOptions.builder:!1;return frameworkName==="nextjs"?{compiler:void 0,compilerPackageName:void 0,shouldRemoveSWCFlag,isNextJs:!0}:{defaultCompiler,shouldRemoveSWCFlag,isNextJs:!1}},prompt({defaultCompiler,shouldRemoveSWCFlag,isNextJs}){let message=[];return shouldRemoveSWCFlag&&message.push(import_ts_dedent35.dedent`
549
+ More info: ${import_picocolors35.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#vue3-upgrade")}
550
+ `},async run(options){return webpack5.run({...options,result:{webpackVersion:null,...options.result}})}};var import_cli12=require("storybook/internal/cli"),import_cli13=require("storybook/internal/cli"),import_common20=require("storybook/internal/common"),import_picocolors36=__toESM(require_picocolors(),1),import_prompts7=__toESM(require("prompts"),1),import_ts_dedent36=require("ts-dedent");var webpack5CompilerSetup={id:"webpack5-compiler-setup",versionRange:["<8.0.0-alpha.9",">=8.0.0-alpha.9"],promptType(result){return result.isNextJs&&!result.shouldRemoveSWCFlag?"notification":"auto"},async check({mainConfig,packageManager}){if((0,import_common20.getAddonNames)(mainConfig).find(addon=>addon.includes(import_cli13.CoreWebpackCompilers.Babel)||addon.includes(import_cli13.CoreWebpackCompilers.SWC)))return null;let frameworkName=Object.entries(import_common20.frameworkPackages).find(([name])=>name===getFrameworkPackageName(mainConfig))?.[1],builderPackageName=getBuilderPackageName(mainConfig),customCoreBuilder=builderPackageName?import_cli13.builderNameToCoreBuilder[builderPackageName]:null,defaultCoreBuilder=frameworkName?import_cli12.frameworkToDefaultBuilder[frameworkName]:await(async()=>await packageManager.getPackageVersion("webpack")?import_cli13.CoreBuilder.Webpack5:import_cli13.CoreBuilder.Vite)();if((customCoreBuilder||defaultCoreBuilder)!==import_cli13.CoreBuilder.Webpack5||(frameworkName?["angular","ember"].includes(frameworkName):!1)||!!await packageManager.getPackageVersion("react-scripts"))return null;let frameworkOptions=getFrameworkOptions(mainConfig),defaultCompiler=frameworkOptions?.builder?.useSWC?import_cli13.CoreWebpackCompilers.SWC:import_cli13.CoreWebpackCompilers.Babel,shouldRemoveSWCFlag=frameworkOptions?.builder?"useSWC"in frameworkOptions.builder:!1;return frameworkName==="nextjs"?{compiler:void 0,compilerPackageName:void 0,shouldRemoveSWCFlag,isNextJs:!0}:{defaultCompiler,shouldRemoveSWCFlag,isNextJs:!1}},prompt({defaultCompiler,shouldRemoveSWCFlag,isNextJs}){let message=[];return shouldRemoveSWCFlag&&message.push(import_ts_dedent36.dedent`
523
551
  We need to update your Storybook configuration for Webpack 5.
524
- The ${import_picocolors33.default.yellow("framework.options.builder.useSWC")} flag will be removed.`),isNextJs?message.push(import_ts_dedent35.dedent`
552
+ The ${import_picocolors36.default.yellow("framework.options.builder.useSWC")} flag will be removed.`),isNextJs?message.push(import_ts_dedent36.dedent`
525
553
  Storybook now detects whether it should use Babel or SWC as a compiler by applying the same logic as Next.js itself:\n
526
- - If you have a ${import_picocolors33.default.yellow(".babelrc")} (or ${import_picocolors33.default.yellow("babel.config.js")}) file in your project, Storybook will use Babel as the compiler.
527
- - If you have a ${import_picocolors33.default.yellow(".babelrc")} (or ${import_picocolors33.default.yellow("babel.config.js")}) file in your project and you have set
528
- ${import_picocolors33.default.yellow("experimental.forceSwcTransforms = true")} in your ${import_picocolors33.default.yellow("next.config.js")} file,
554
+ - If you have a ${import_picocolors36.default.yellow(".babelrc")} (or ${import_picocolors36.default.yellow("babel.config.js")}) file in your project, Storybook will use Babel as the compiler.
555
+ - If you have a ${import_picocolors36.default.yellow(".babelrc")} (or ${import_picocolors36.default.yellow("babel.config.js")}) file in your project and you have set
556
+ ${import_picocolors36.default.yellow("experimental.forceSwcTransforms = true")} in your ${import_picocolors36.default.yellow("next.config.js")} file,
529
557
  Storybook will use SWC as the compiler.
530
- - If you don't have a ${import_picocolors33.default.yellow(".babelrc")} (or ${import_picocolors33.default.yellow("babel.config.js")}) file in your project, Storybook will use SWC as the compiler.
531
- `):defaultCompiler===import_cli13.CoreWebpackCompilers.Babel?message.push(import_ts_dedent35.dedent`
558
+ - If you don't have a ${import_picocolors36.default.yellow(".babelrc")} (or ${import_picocolors36.default.yellow("babel.config.js")}) file in your project, Storybook will use SWC as the compiler.
559
+ `):defaultCompiler===import_cli13.CoreWebpackCompilers.Babel?message.push(import_ts_dedent36.dedent`
532
560
  Storybook's Webpack5 builder is now compiler agnostic, meaning you can choose a compiler addon that best fits your project:\n
533
561
  - Babel: A vast ecosystem and is battle-tested. It's a robust choice if you have an extensive Babel setup or need specific Babel plugins for your project.
534
562
  - SWC: Fast and easy to configure. Ideal if you want faster builds and have a straightforward configuration without the need for Babel's extensibility.\n
535
563
  In the next step, Storybook will ask you to choose a compiler to automatically set it up for you.\n
536
564
  After the migration, you can switch Webpack5 compilers by swapping the addon in your project.
537
- You can find more information here: ${import_picocolors33.default.yellow("https://storybook.js.org/docs/builders/webpack#compiler-support")}
538
- `):message.push(import_ts_dedent35.dedent`
565
+ You can find more information here: ${import_picocolors36.default.yellow("https://storybook.js.org/docs/builders/webpack#compiler-support")}
566
+ `):message.push(import_ts_dedent36.dedent`
539
567
  Storybook's Webpack5 builder is now compiler agnostic, meaning you have to install an additional addon to set up a compiler for Webpack5.\n
540
568
  We have detected, that you want to use SWC as the compiler for Webpack5.\n
541
569
  In the next step, Storybook will install @storybook/addon-webpack5-compiler-swc and will add it to your addons list in your Storybook config.\n
542
570
  After the migration, you can switch Webpack5 compilers by swapping the addon in your project.
543
- You can find more information here: ${import_picocolors33.default.yellow("https://storybook.js.org/docs/builders/webpack#compiler-support")}
571
+ You can find more information here: ${import_picocolors36.default.yellow("https://storybook.js.org/docs/builders/webpack#compiler-support")}
544
572
  `),message.join(`
545
573
 
546
- `)},async run({result,mainConfigPath,packageManager,skipInstall,dryRun}){let{defaultCompiler,shouldRemoveSWCFlag,isNextJs}=result;if(shouldRemoveSWCFlag&&await updateMainConfig({mainConfigPath,dryRun:!!dryRun},main=>{main.removeField(["framework","options","builder","useSWC"])}),!isNextJs){let compiler=defaultCompiler===import_cli13.CoreWebpackCompilers.Babel?await askUserForCompilerChoice():import_cli13.CoreWebpackCompilers.SWC,compilerPackageName=Object.entries(import_cli13.compilerNameToCoreCompiler).find(([,coreCompiler])=>coreCompiler===compiler)[0];await add(compilerPackageName,{packageManager:packageManager.type,skipPostinstall:!!skipInstall})}}};async function askUserForCompilerChoice(){return(await(0,import_prompts6.default)({type:"select",name:"compiler",message:"Which compiler would you like to use?",choices:[{title:"Babel",description:"Choose Babel for a vast ecosystem and battle-tested reliability.",value:import_cli13.CoreWebpackCompilers.Babel},{title:"SWC",description:"Choose SWC for fast builds and simple configuration.",value:import_cli13.CoreWebpackCompilers.SWC}],initial:0})).compiler}var import_cli14=require("storybook/internal/cli"),import_csf_tools9=require("storybook/internal/csf-tools"),import_picocolors34=__toESM(require_picocolors(),1),import_ts_dedent36=require("ts-dedent");var wrapRequire={id:"wrap-require",versionRange:["*","*"],async check({packageManager,storybookVersion,mainConfigPath}){let isStorybookInMonorepo=await packageManager.isStorybookInMonorepo(),isPnp=await(0,import_cli14.detectPnp)();if(!mainConfigPath)return null;let config=await(0,import_csf_tools9.readConfig)(mainConfigPath);if(!isStorybookInMonorepo&&!isPnp||!getFieldsForRequireWrapper(config).some(node=>isRequireWrapperNecessary(node)))return null;let isConfigTypescript=mainConfigPath.endsWith(".ts")||mainConfigPath.endsWith(".tsx");return{storybookVersion,isStorybookInMonorepo,isPnp,isConfigTypescript}},prompt({storybookVersion,isStorybookInMonorepo}){let sbFormatted=import_picocolors34.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent36.dedent`We have detected that you're using ${sbFormatted} in a ${isStorybookInMonorepo?"monorepo":"PnP"} project.
574
+ `)},async run({result,mainConfigPath,packageManager,skipInstall,dryRun}){let{defaultCompiler,shouldRemoveSWCFlag,isNextJs}=result;if(shouldRemoveSWCFlag&&await updateMainConfig({mainConfigPath,dryRun:!!dryRun},main=>{main.removeField(["framework","options","builder","useSWC"])}),!isNextJs){let compiler=defaultCompiler===import_cli13.CoreWebpackCompilers.Babel?await askUserForCompilerChoice():import_cli13.CoreWebpackCompilers.SWC,compilerPackageName=Object.entries(import_cli13.compilerNameToCoreCompiler).find(([,coreCompiler])=>coreCompiler===compiler)[0];await add(compilerPackageName,{packageManager:packageManager.type,skipPostinstall:!!skipInstall})}}};async function askUserForCompilerChoice(){return(await(0,import_prompts7.default)({type:"select",name:"compiler",message:"Which compiler would you like to use?",choices:[{title:"Babel",description:"Choose Babel for a vast ecosystem and battle-tested reliability.",value:import_cli13.CoreWebpackCompilers.Babel},{title:"SWC",description:"Choose SWC for fast builds and simple configuration.",value:import_cli13.CoreWebpackCompilers.SWC}],initial:0})).compiler}var import_cli14=require("storybook/internal/cli"),import_csf_tools11=require("storybook/internal/csf-tools"),import_picocolors37=__toESM(require_picocolors(),1),import_ts_dedent37=require("ts-dedent");var wrapRequire={id:"wrap-require",versionRange:["*","*"],async check({packageManager,storybookVersion,mainConfigPath}){let isStorybookInMonorepo=await packageManager.isStorybookInMonorepo(),isPnp=await(0,import_cli14.detectPnp)();if(!mainConfigPath)return null;let config=await(0,import_csf_tools11.readConfig)(mainConfigPath);if(!isStorybookInMonorepo&&!isPnp||!getFieldsForRequireWrapper(config).some(node=>isRequireWrapperNecessary(node)))return null;let isConfigTypescript=mainConfigPath.endsWith(".ts")||mainConfigPath.endsWith(".tsx");return{storybookVersion,isStorybookInMonorepo,isPnp,isConfigTypescript}},prompt({storybookVersion,isStorybookInMonorepo}){let sbFormatted=import_picocolors37.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent37.dedent`We have detected that you're using ${sbFormatted} in a ${isStorybookInMonorepo?"monorepo":"PnP"} project.
547
575
  For Storybook to work correctly, some fields in your main config must be updated. We can do this for you automatically.
548
576
 
549
- More info: https://storybook.js.org/docs/faq#how-do-i-fix-module-resolution-in-special-environments`},async run({dryRun,mainConfigPath,result}){return new Promise((resolve,reject)=>{updateMainConfig({dryRun:!!dryRun,mainConfigPath},mainConfig=>{try{getFieldsForRequireWrapper(mainConfig).forEach(node=>{wrapValueWithRequireWrapper(mainConfig,node)}),getRequireWrapperName(mainConfig)===null&&(mainConfig?.fileName?.endsWith(".cjs")||mainConfig?.fileName?.endsWith(".cts")||mainConfig?.fileName?.endsWith(".cjsx")||mainConfig?.fileName?.endsWith(".ctsx")?mainConfig.setRequireImport(["dirname","join"],"path"):mainConfig.setImport(["dirname","join"],"path"),mainConfig.setBodyDeclaration(getRequireWrapperAsCallExpression(result.isConfigTypescript))),resolve()}catch(e){reject(e)}})})}};var allFixes=[missingStorybookDependencies,addonsAPI,newFrameworks,cra5,webpack5,vue3,addonPostCSS,viteConfigFile,eslintPlugin,builderVite,sbBinary,sbScripts,removeJestTestingLibrary,removeArgtypesRegex,removedGlobalClientAPIs,mdxgfm,mdxToCSF,autodocsTrue,angularBuildersMultiproject,angularBuilders,wrapRequire,reactDocgen,storyshotsMigration,removeReactDependency,removeLegacyMDX1,webpack5CompilerSetup,mdx1to3,upgradeStorybookRelatedDependencies,vta,autodocsTags,initialGlobals,addonA11yAddonTest];var import_picocolors35=__toESM(require_picocolors(),1),import_ts_dedent37=require("ts-dedent");var messageDivider2=`
577
+ More info: https://storybook.js.org/docs/faq#how-do-i-fix-module-resolution-in-special-environments`},async run({dryRun,mainConfigPath,result}){return new Promise((resolve,reject)=>{updateMainConfig({dryRun:!!dryRun,mainConfigPath},mainConfig=>{try{getFieldsForRequireWrapper(mainConfig).forEach(node=>{wrapValueWithRequireWrapper(mainConfig,node)}),getRequireWrapperName(mainConfig)===null&&(mainConfig?.fileName?.endsWith(".cjs")||mainConfig?.fileName?.endsWith(".cts")||mainConfig?.fileName?.endsWith(".cjsx")||mainConfig?.fileName?.endsWith(".ctsx")?mainConfig.setRequireImport(["dirname","join"],"path"):mainConfig.setImport(["dirname","join"],"path"),mainConfig.setBodyDeclaration(getRequireWrapperAsCallExpression(result.isConfigTypescript))),resolve()}catch(e){reject(e)}})})}};var allFixes=[missingStorybookDependencies,addonsAPI,newFrameworks,cra5,webpack5,vue3,addonPostCSS,viteConfigFile,eslintPlugin,builderVite,sbBinary,sbScripts,removeJestTestingLibrary,removeArgtypesRegex,removedGlobalClientAPIs,mdxgfm,mdxToCSF,autodocsTrue,angularBuildersMultiproject,angularBuilders,wrapRequire,reactDocgen,storyshotsMigration,removeReactDependency,removeLegacyMDX1,webpack5CompilerSetup,mdx1to3,upgradeStorybookRelatedDependencies,vta,autodocsTags,initialGlobals,addonA11yAddonTest];var commandFixes=[csfFactories];var import_picocolors38=__toESM(require_picocolors(),1),import_ts_dedent38=require("ts-dedent");var messageDivider2=`
550
578
 
551
579
  `,segmentDivider=`
552
580
 
553
581
  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
554
582
 
555
- `;function getGlossaryMessages(fixSummary,fixResults,logFile){let messages=[];return fixSummary.succeeded.length>0&&(messages.push(import_picocolors35.default.bold("Successful migrations:")),messages.push(fixSummary.succeeded.map(m=>import_picocolors35.default.green(m)).join(", "))),Object.keys(fixSummary.failed).length>0&&(messages.push(import_picocolors35.default.bold("Failed migrations:")),messages.push(Object.entries(fixSummary.failed).map(([id,error])=>`${import_picocolors35.default.bold(import_picocolors35.default.red(id))}:
583
+ `;function getGlossaryMessages(fixSummary,fixResults,logFile){let messages=[];return fixSummary.succeeded.length>0&&(messages.push(import_picocolors38.default.bold("Successful migrations:")),messages.push(fixSummary.succeeded.map(m=>import_picocolors38.default.green(m)).join(", "))),Object.keys(fixSummary.failed).length>0&&(messages.push(import_picocolors38.default.bold("Failed migrations:")),messages.push(Object.entries(fixSummary.failed).map(([id,error])=>`${import_picocolors38.default.bold(import_picocolors38.default.red(id))}:
556
584
  ${error}`).join(`
557
- `)),messages.push(`You can find the full logs in ${import_picocolors35.default.cyan(logFile)}`)),fixSummary.manual.length>0&&(messages.push(import_picocolors35.default.bold("Manual migrations:")),messages.push(fixSummary.manual.map(m=>fixResults[m]==="manual_succeeded"?import_picocolors35.default.green(m):import_picocolors35.default.blue(m)).join(", "))),fixSummary.skipped.length>0&&(messages.push(import_picocolors35.default.bold("Skipped migrations:")),messages.push(fixSummary.skipped.map(m=>import_picocolors35.default.cyan(m)).join(", "))),messages}function getMigrationSummary({fixResults,fixSummary,logFile,installationMetadata}){let messages=[];messages.push(getGlossaryMessages(fixSummary,fixResults,logFile).join(messageDivider2)),messages.push(import_ts_dedent37.dedent`If you'd like to run the migrations again, you can do so by running '${import_picocolors35.default.cyan("npx storybook automigrate")}'
585
+ `)),messages.push(`You can find the full logs in ${import_picocolors38.default.cyan(logFile)}`)),fixSummary.manual.length>0&&(messages.push(import_picocolors38.default.bold("Manual migrations:")),messages.push(fixSummary.manual.map(m=>fixResults[m]==="manual_succeeded"?import_picocolors38.default.green(m):import_picocolors38.default.blue(m)).join(", "))),fixSummary.skipped.length>0&&(messages.push(import_picocolors38.default.bold("Skipped migrations:")),messages.push(fixSummary.skipped.map(m=>import_picocolors38.default.cyan(m)).join(", "))),messages}function getMigrationSummary({fixResults,fixSummary,logFile,installationMetadata}){let messages=[];messages.push(getGlossaryMessages(fixSummary,fixResults,logFile).join(messageDivider2)),messages.push(import_ts_dedent38.dedent`If you'd like to run the migrations again, you can do so by running '${import_picocolors38.default.cyan("npx storybook automigrate")}'
558
586
 
559
587
  The automigrations try to migrate common patterns in your project, but might not contain everything needed to migrate to the latest version of Storybook.
560
588
 
561
- Please check the changelog and migration guide for manual migrations and more information: ${import_picocolors35.default.yellow("https://storybook.js.org/docs/migration-guide")}
562
- And reach out on Discord if you need help: ${import_picocolors35.default.yellow("https://discord.gg/storybook")}
563
- `);let hasNoFixes=Object.values(fixResults).every(r=>r==="unnecessary"),hasFailures=Object.values(fixResults).some(r=>r==="failed"||r==="check_failed"),title=hasNoFixes?"No migrations were applicable to your project":hasFailures?"Migration check ran with failures":"Migration check ran successfully";return boxen(messages.filter(Boolean).join(segmentDivider),{borderStyle:"round",padding:1,title,borderColor:hasFailures?"red":"green"})}var logger21=console,LOG_FILE_NAME2="migration-storybook.log",LOG_FILE_PATH2=(0,import_node_path7.join)(process.cwd(),LOG_FILE_NAME2),TEMP_LOG_FILE_PATH2="",originalStdOutWrite2=process.stdout.write.bind(process.stdout),originalStdErrWrite2=process.stderr.write.bind(process.stdout),augmentLogsToFile2=async()=>{TEMP_LOG_FILE_PATH2=await(0,import_common16.temporaryFile)({name:LOG_FILE_NAME2});let logStream=(0,import_node_fs2.createWriteStream)(TEMP_LOG_FILE_PATH2);process.stdout.write=d=>(originalStdOutWrite2(d),logStream.write(cleanLog(d))),process.stderr.write=d=>logStream.write(cleanLog(d))},cleanup2=()=>{process.stdout.write=originalStdOutWrite2,process.stderr.write=originalStdErrWrite2},logAvailableMigrations=()=>{let availableFixes=allFixes.map(f=>import_picocolors36.default.yellow(f.id)).map(x=>`- ${x}`).join(`
564
- `);console.log(),logger21.info(import_ts_dedent38.dedent`
589
+ Please check the changelog and migration guide for manual migrations and more information: ${import_picocolors38.default.yellow("https://storybook.js.org/docs/migration-guide")}
590
+ And reach out on Discord if you need help: ${import_picocolors38.default.yellow("https://discord.gg/storybook")}
591
+ `);let hasNoFixes=Object.values(fixResults).every(r=>r==="unnecessary"),hasFailures=Object.values(fixResults).some(r=>r==="failed"||r==="check_failed"),title=hasNoFixes?"No migrations were applicable to your project":hasFailures?"Migration check ran with failures":"Migration check ran successfully";return boxen(messages.filter(Boolean).join(segmentDivider),{borderStyle:"round",padding:1,title,borderColor:hasFailures?"red":"green"})}var logger23=console,LOG_FILE_NAME2="migration-storybook.log",LOG_FILE_PATH2=(0,import_node_path7.join)(process.cwd(),LOG_FILE_NAME2),TEMP_LOG_FILE_PATH2="",originalStdOutWrite2=process.stdout.write.bind(process.stdout),originalStdErrWrite2=process.stderr.write.bind(process.stdout),augmentLogsToFile2=async()=>{TEMP_LOG_FILE_PATH2=await(0,import_common21.temporaryFile)({name:LOG_FILE_NAME2});let logStream=(0,import_node_fs2.createWriteStream)(TEMP_LOG_FILE_PATH2);process.stdout.write=d=>(originalStdOutWrite2(d),logStream.write(cleanLog(d))),process.stderr.write=d=>logStream.write(cleanLog(d))},cleanup2=()=>{process.stdout.write=originalStdOutWrite2,process.stderr.write=originalStdErrWrite2},logAvailableMigrations=()=>{let availableFixes=[...allFixes,...commandFixes].map(f=>import_picocolors39.default.yellow(f.id)).map(x=>`- ${x}`).join(`
592
+ `);console.log(),logger23.info(import_ts_dedent39.dedent`
565
593
  The following migrations are available:
566
594
  ${availableFixes}
567
- `)},doAutomigrate=async options=>{let packageManager=import_common16.JsPackageManagerFactory.getPackageManager({force:options.packageManager}),[packageJson,storybookVersion]=await Promise.all([packageManager.retrievePackageJson(),(0,import_common16.getCoercedStorybookVersion)(packageManager)]),{configDir:inferredConfigDir,mainConfig:mainConfigPath}=(0,import_common16.getStorybookInfo)(packageJson,options.configDir),configDir=options.configDir||inferredConfigDir||".storybook";if(!storybookVersion)throw new Error("Could not determine Storybook version");if(!mainConfigPath)throw new Error("Could not determine main config path");await automigrate({...options,packageManager,storybookVersion,beforeVersion:storybookVersion,mainConfigPath,configDir,isUpgrade:!1,isLatest:!1})&&await doctor({configDir,packageManager:options.packageManager})},automigrate=async({fixId,fixes:inputFixes,dryRun,yes,packageManager,list,configDir,mainConfigPath,storybookVersion,beforeVersion,renderer:rendererPackage,skipInstall,hideMigrationSummary=!1,isUpgrade,isLatest})=>{if(list)return logAvailableMigrations(),null;let selectedFixes=inputFixes||allFixes.filter(fix=>!(fix.id===upgradeStorybookRelatedDependencies.id&&isLatest===!1&&fixId!==upgradeStorybookRelatedDependencies.id)),fixes=fixId?selectedFixes.filter(f=>f.id===fixId):selectedFixes;if(fixId&&fixes.length===0)return logger21.info(`\u{1F4ED} No migrations found for ${import_picocolors36.default.magenta(fixId)}.`),logAvailableMigrations(),null;await augmentLogsToFile2(),logger21.info("\u{1F50E} checking possible migrations..");let{fixResults,fixSummary,preCheckFailure}=await runFixes({fixes,packageManager,rendererPackage,skipInstall,configDir,mainConfigPath,storybookVersion,beforeVersion,isUpgrade:!!isUpgrade,dryRun,yes});if(Object.values(fixResults).some(r=>r==="failed"||r==="check_failed")?await(0,import_promises7.rename)(TEMP_LOG_FILE_PATH2,(0,import_node_path7.join)(process.cwd(),LOG_FILE_NAME2)):await(0,import_promises7.rm)(TEMP_LOG_FILE_PATH2,{recursive:!0,force:!0}),!hideMigrationSummary){let installationMetadata=await packageManager.findInstallations(["@storybook/*","storybook"]);logger21.info(),logger21.info(getMigrationSummary({fixResults,fixSummary,logFile:LOG_FILE_PATH2,installationMetadata})),logger21.info()}return cleanup2(),{fixResults,preCheckFailure}};async function runFixes({fixes,dryRun,yes,rendererPackage,skipInstall,configDir,packageManager,mainConfigPath,storybookVersion,beforeVersion,isUpgrade}){let fixResults={},fixSummary={succeeded:[],failed:{},manual:[],skipped:[]};for(let i=0;i<fixes.length;i+=1){let f=fixes[i],result;try{let{mainConfig,previewConfigPath}=await getStorybookData({configDir,packageManager});(isUpgrade&&import_semver13.default.satisfies(beforeVersion,f.versionRange[0],{includePrerelease:!0})&&import_semver13.default.satisfies(storybookVersion,f.versionRange[1],{includePrerelease:!0})||!isUpgrade)&&(result=await f.check({packageManager,configDir,rendererPackage,mainConfig,storybookVersion,previewConfigPath,mainConfigPath}))}catch(error){logger21.info(`\u26A0\uFE0F failed to check fix ${import_picocolors36.default.bold(f.id)}`),error instanceof Error&&(logger21.error(`
568
- ${error.stack}`),fixSummary.failed[f.id]=error.message),fixResults[f.id]="check_failed"}if(result){let promptType=typeof f.promptType=="function"?await f.promptType(result):f.promptType??"auto";logger21.info(`
569
- \u{1F50E} found a '${import_picocolors36.default.cyan(f.id)}' migration:`);let message=f.prompt(result),getTitle=()=>{switch(promptType){case"auto":return"Automigration detected";case"manual":return"Manual migration detected";case"notification":return"Migration notification"}};logger21.info(boxen(message,{borderStyle:"round",padding:1,borderColor:"#F1618C",title:getTitle()}));let runAnswer;try{if(dryRun)runAnswer={fix:!1};else if(yes)runAnswer={fix:!0},promptType==="manual"&&(fixResults[f.id]="manual_succeeded",fixSummary.manual.push(f.id));else if(promptType==="manual"){fixResults[f.id]="manual_succeeded",fixSummary.manual.push(f.id),logger21.info();let{shouldContinue}=await(0,import_prompts7.default)({type:"toggle",name:"shouldContinue",message:"Select continue once you have made the required changes, or quit to exit the migration process",initial:!0,active:"continue",inactive:"quit"},{onCancel:()=>{throw new Error}});if(!shouldContinue){fixResults[f.id]="manual_skipped";break}}else promptType==="auto"?runAnswer=await(0,import_prompts7.default)({type:"confirm",name:"fix",message:`Do you want to run the '${import_picocolors36.default.cyan(f.id)}' migration on your project?`,initial:f.promptDefaultValue??!0},{onCancel:()=>{throw new Error}}):promptType==="notification"&&(runAnswer=await(0,import_prompts7.default)({type:"confirm",name:"fix",message:"Do you want to continue?",initial:!0},{onCancel:()=>{throw new Error}}))}catch{break}if(promptType==="auto")if((0,import_tiny_invariant2.default)(runAnswer,"runAnswer must be defined if not promptOnly"),runAnswer.fix)try{(0,import_tiny_invariant2.default)(typeof f.run=="function","run method should be available in fix."),(0,import_tiny_invariant2.default)(mainConfigPath,"Main config path should be defined to run migration."),await f.run({result,packageManager,dryRun,mainConfigPath,skipInstall}),logger21.info(`\u2705 ran ${import_picocolors36.default.cyan(f.id)} migration`),fixResults[f.id]="succeeded",fixSummary.succeeded.push(f.id)}catch(error){fixResults[f.id]="failed",fixSummary.failed[f.id]=error instanceof Error?error.message:"Failed to run migration",logger21.info(`\u274C error when running ${import_picocolors36.default.cyan(f.id)} migration`),logger21.info(error),logger21.info()}else fixResults[f.id]="skipped",fixSummary.skipped.push(f.id)}else fixResults[f.id]=fixResults[f.id]||"unnecessary"}return{fixResults,fixSummary}}var import_promises8=require("fs/promises"),import_node_path8=require("path"),import_node_logger=require("storybook/internal/node-logger"),import_cross_spawn=require("cross-spawn"),import_picocolors37=__toESM(require_picocolors(),1),exec2=async(command2,options={},{startMessage,errorMessage,dryRun}={})=>{if(startMessage&&import_node_logger.logger.info(startMessage),dryRun){import_node_logger.logger.info(`
595
+ `)},doAutomigrate=async options=>{let packageManager=import_common21.JsPackageManagerFactory.getPackageManager({force:options.packageManager}),{mainConfig,mainConfigPath,previewConfigPath,storybookVersion,configDir,packageJson}=await getStorybookData({configDir:options.configDir,packageManager});if(!storybookVersion)throw new Error("Could not determine Storybook version");if(!mainConfigPath)throw new Error("Could not determine main config path");await automigrate({...options,packageJson,packageManager,storybookVersion,beforeVersion:storybookVersion,mainConfigPath,mainConfig,previewConfigPath,configDir,isUpgrade:!1,isLatest:!1})&&await doctor({configDir,packageManager:options.packageManager})},automigrate=async({fixId,fixes:inputFixes,dryRun,yes,packageManager,packageJson,list,configDir,mainConfig,mainConfigPath,previewConfigPath,storybookVersion,beforeVersion,renderer:rendererPackage,skipInstall,hideMigrationSummary=!1,isUpgrade,isLatest})=>{if(list)return logAvailableMigrations(),null;let commandFix=commandFixes.find(f=>f.id===fixId);if(commandFix)return logger23.info(`\u{1F50E} Running migration ${import_picocolors39.default.magenta(fixId)}..`),await commandFix.run({mainConfigPath,previewConfigPath,packageManager,packageJson,dryRun,mainConfig,result:null}),null;let selectedFixes=inputFixes||allFixes.filter(fix=>!(fix.id===upgradeStorybookRelatedDependencies.id&&isLatest===!1&&fixId!==upgradeStorybookRelatedDependencies.id)),fixes=fixId?selectedFixes.filter(f=>f.id===fixId):selectedFixes;if(fixId&&fixes.length===0)return logger23.info(`\u{1F4ED} No migrations found for ${import_picocolors39.default.magenta(fixId)}.`),logAvailableMigrations(),null;await augmentLogsToFile2(),logger23.info("\u{1F50E} checking possible migrations..");let{fixResults,fixSummary,preCheckFailure}=await runFixes({fixes,packageManager,packageJson,rendererPackage,skipInstall,configDir,previewConfigPath,mainConfig,mainConfigPath,storybookVersion,beforeVersion,isUpgrade:!!isUpgrade,dryRun,yes});if(Object.values(fixResults).some(r=>r==="failed"||r==="check_failed")?await(0,import_promises7.rename)(TEMP_LOG_FILE_PATH2,(0,import_node_path7.join)(process.cwd(),LOG_FILE_NAME2)):await(0,import_promises7.rm)(TEMP_LOG_FILE_PATH2,{recursive:!0,force:!0}),!hideMigrationSummary){let installationMetadata=await packageManager.findInstallations(["@storybook/*","storybook"]);logger23.info(),logger23.info(getMigrationSummary({fixResults,fixSummary,logFile:LOG_FILE_PATH2,installationMetadata})),logger23.info()}return cleanup2(),{fixResults,preCheckFailure}};async function runFixes({fixes,dryRun,yes,rendererPackage,skipInstall,configDir,packageManager,packageJson,mainConfig,mainConfigPath,previewConfigPath,storybookVersion,beforeVersion,isUpgrade}){let fixResults={},fixSummary={succeeded:[],failed:{},manual:[],skipped:[]};for(let i=0;i<fixes.length;i+=1){let f=fixes[i],result;try{(isUpgrade&&import_semver13.default.satisfies(beforeVersion,f.versionRange[0],{includePrerelease:!0})&&import_semver13.default.satisfies(storybookVersion,f.versionRange[1],{includePrerelease:!0})||!isUpgrade)&&(result=await f.check({packageManager,configDir,rendererPackage,mainConfig,storybookVersion,previewConfigPath,mainConfigPath}))}catch(error){logger23.info(`\u26A0\uFE0F failed to check fix ${import_picocolors39.default.bold(f.id)}`),error instanceof Error&&(logger23.error(`
596
+ ${error.stack}`),fixSummary.failed[f.id]=error.message),fixResults[f.id]="check_failed"}if(result){let promptType=typeof f.promptType=="function"?await f.promptType(result):f.promptType??"auto";logger23.info(`
597
+ \u{1F50E} found a '${import_picocolors39.default.cyan(f.id)}' migration:`);let message=f.prompt(result),getTitle=()=>{switch(promptType){case"auto":return"Automigration detected";case"manual":return"Manual migration detected";case"notification":return"Migration notification"}};logger23.info(boxen(message,{borderStyle:"round",padding:1,borderColor:"#F1618C",title:getTitle()}));let runAnswer;try{if(dryRun)runAnswer={fix:!1};else if(yes)runAnswer={fix:!0},promptType==="manual"&&(fixResults[f.id]="manual_succeeded",fixSummary.manual.push(f.id));else if(promptType==="manual"){fixResults[f.id]="manual_succeeded",fixSummary.manual.push(f.id),logger23.info();let{shouldContinue}=await(0,import_prompts8.default)({type:"toggle",name:"shouldContinue",message:"Select continue once you have made the required changes, or quit to exit the migration process",initial:!0,active:"continue",inactive:"quit"},{onCancel:()=>{throw new Error}});if(!shouldContinue){fixResults[f.id]="manual_skipped";break}}else promptType==="auto"?runAnswer=await(0,import_prompts8.default)({type:"confirm",name:"fix",message:`Do you want to run the '${import_picocolors39.default.cyan(f.id)}' migration on your project?`,initial:f.promptDefaultValue??!0},{onCancel:()=>{throw new Error}}):promptType==="notification"&&(runAnswer=await(0,import_prompts8.default)({type:"confirm",name:"fix",message:"Do you want to continue?",initial:!0},{onCancel:()=>{throw new Error}}))}catch{break}if(promptType==="auto")if((0,import_tiny_invariant2.default)(runAnswer,"runAnswer must be defined if not promptOnly"),runAnswer.fix)try{(0,import_tiny_invariant2.default)(typeof f.run=="function","run method should be available in fix."),(0,import_tiny_invariant2.default)(mainConfigPath,"Main config path should be defined to run migration."),await f.run({result,packageManager,dryRun,mainConfigPath,previewConfigPath,packageJson,mainConfig,skipInstall}),logger23.info(`\u2705 ran ${import_picocolors39.default.cyan(f.id)} migration`),fixResults[f.id]="succeeded",fixSummary.succeeded.push(f.id)}catch(error){fixResults[f.id]="failed",fixSummary.failed[f.id]=error instanceof Error?error.message:"Failed to run migration",logger23.info(`\u274C error when running ${import_picocolors39.default.cyan(f.id)} migration`),logger23.info(error),logger23.info()}else fixResults[f.id]="skipped",fixSummary.skipped.push(f.id)}else fixResults[f.id]=fixResults[f.id]||"unnecessary"}return{fixResults,fixSummary}}var import_promises8=require("fs/promises"),import_node_path8=require("path"),import_node_logger=require("storybook/internal/node-logger"),import_cross_spawn=require("cross-spawn"),import_picocolors40=__toESM(require_picocolors(),1),exec2=async(command2,options={},{startMessage,errorMessage,dryRun}={})=>{if(startMessage&&import_node_logger.logger.info(startMessage),dryRun){import_node_logger.logger.info(`
570
598
  > ${command2}
571
- `);return}return import_node_logger.logger.info(command2),new Promise((resolve,reject)=>{let child=(0,import_cross_spawn.spawn)(command2,{...options,shell:!0,stdio:"pipe"});child.stderr.pipe(process.stdout),child.stdout.pipe(process.stdout),child.on("exit",code=>{code===0?resolve(void 0):(import_node_logger.logger.error(import_picocolors37.default.red(`An error occurred while executing: \`${command2}\``)),errorMessage&&import_node_logger.logger.info(errorMessage),reject(new Error(`command exited with code: ${code}: `)))})})},link=async({target,local,start})=>{let storybookDir=process.cwd();try{if(JSON.parse(await(0,import_promises8.readFile)("package.json",{encoding:"utf8"})).name!=="@storybook/root")throw new Error}catch{throw new Error("Expected to run link from the root of the storybook monorepo")}let reproDir=target,reproName=(0,import_node_path8.basename)(target);if(!local){let reprosDir=(0,import_node_path8.join)(storybookDir,"../storybook-repros");import_node_logger.logger.info(`Ensuring directory ${reprosDir}`),await(0,import_promises8.mkdir)(reprosDir,{recursive:!0}),import_node_logger.logger.info(`Cloning ${target}`),await exec2(`git clone ${target}`,{cwd:reprosDir}),reproName=(0,import_node_path8.basename)(target,(0,import_node_path8.extname)(target)),reproDir=(0,import_node_path8.join)(reprosDir,reproName)}let reproPackageJson=JSON.parse(await(0,import_promises8.readFile)((0,import_node_path8.join)(reproDir,"package.json"),{encoding:"utf8"})),version=(0,import_cross_spawn.sync)("yarn",["--version"],{cwd:reproDir,stdio:"pipe",shell:!0}).stdout.toString();if(!/^[2-4]\./.test(version)){import_node_logger.logger.warn(`\u{1F6A8} Expected yarn 2 or higher in ${reproDir}!`),import_node_logger.logger.warn(""),import_node_logger.logger.warn("Please set it up with `yarn set version berry`,"),import_node_logger.logger.warn(`then link '${reproDir}' with the '--local' flag.`);return}import_node_logger.logger.info(`Linking ${reproDir}`),await exec2(`yarn link --all --relative ${storybookDir}`,{cwd:reproDir}),import_node_logger.logger.info(`Installing ${reproName}`),await exec2("yarn install",{cwd:reproDir}),reproPackageJson.devDependencies?.vite||await exec2("yarn add -D webpack-hot-middleware",{cwd:reproDir}),await exec2("yarn add @types/node@22",{cwd:reproDir}),start&&(import_node_logger.logger.info(`Running ${reproName} storybook`),await exec2("yarn run storybook",{cwd:reproDir}))};var import_cli15=require("storybook/internal/cli"),import_common17=require("storybook/internal/common"),import_codemod3=require("@storybook/codemod");var logger23=console;async function migrate(migration,{glob:glob2,dryRun,list,rename:rename3,parser,configDir:userSpecifiedConfigDir}){if(list)(0,import_codemod3.listCodemods)().forEach(key=>logger23.log(key));else if(migration){if(migration==="mdx-to-csf"&&!dryRun){let packageManager=import_common17.JsPackageManagerFactory.getPackageManager(),[packageJson,storybookVersion]=await Promise.all([packageManager.retrievePackageJson(),(0,import_common17.getCoercedStorybookVersion)(packageManager)]),{configDir:inferredConfigDir,mainConfig:mainConfigPath}=(0,import_common17.getStorybookInfo)(packageJson,userSpecifiedConfigDir),configDir=userSpecifiedConfigDir||inferredConfigDir||".storybook";if(!storybookVersion)throw new Error("Could not determine Storybook version");if(!mainConfigPath)throw new Error("Could not determine main config path");await runFixes({fixes:[mdxToCSF],configDir,mainConfigPath,packageManager,storybookVersion,beforeVersion:storybookVersion,isUpgrade:!1}),await addStorybookBlocksPackage()}await(0,import_codemod3.runCodemod)(migration,{glob:glob2,dryRun,logger:logger23,rename:rename3,parser})}else throw new Error("Migrate: please specify a migration name or --list")}async function addStorybookBlocksPackage(){let packageManager=import_common17.JsPackageManagerFactory.getPackageManager(),packageJson=await packageManager.retrievePackageJson(),versionToInstall=(0,import_cli15.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson());logger23.info('\u2705 Adding "@storybook/blocks" package'),await packageManager.addDependencies({installAsDevDependencies:!0,packageJson},[`@storybook/blocks@${versionToInstall}`])}var import_node_fs3=require("fs"),import_promises9=require("fs/promises"),import_node_path9=require("path"),import_common18=require("storybook/internal/common"),import_common19=require("storybook/internal/common");var import_create_storybook=require("create-storybook"),import_giget=require("giget"),import_picocolors38=__toESM(require_picocolors(),1),import_prompts8=__toESM(require("prompts"),1),import_semver14=require("semver"),import_tiny_invariant3=__toESM(require("tiny-invariant"),1),import_ts_dedent39=require("ts-dedent");var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:`
599
+ `);return}return import_node_logger.logger.info(command2),new Promise((resolve,reject)=>{let child=(0,import_cross_spawn.spawn)(command2,{...options,shell:!0,stdio:"pipe"});child.stderr.pipe(process.stdout),child.stdout.pipe(process.stdout),child.on("exit",code=>{code===0?resolve(void 0):(import_node_logger.logger.error(import_picocolors40.default.red(`An error occurred while executing: \`${command2}\``)),errorMessage&&import_node_logger.logger.info(errorMessage),reject(new Error(`command exited with code: ${code}: `)))})})},link=async({target,local,start})=>{let storybookDir=process.cwd();try{if(JSON.parse(await(0,import_promises8.readFile)("package.json",{encoding:"utf8"})).name!=="@storybook/root")throw new Error}catch{throw new Error("Expected to run link from the root of the storybook monorepo")}let reproDir=target,reproName=(0,import_node_path8.basename)(target);if(!local){let reprosDir=(0,import_node_path8.join)(storybookDir,"../storybook-repros");import_node_logger.logger.info(`Ensuring directory ${reprosDir}`),await(0,import_promises8.mkdir)(reprosDir,{recursive:!0}),import_node_logger.logger.info(`Cloning ${target}`),await exec2(`git clone ${target}`,{cwd:reprosDir}),reproName=(0,import_node_path8.basename)(target,(0,import_node_path8.extname)(target)),reproDir=(0,import_node_path8.join)(reprosDir,reproName)}let version2=(0,import_cross_spawn.sync)("yarn",["--version"],{cwd:reproDir,stdio:"pipe",shell:!0}).stdout.toString();if(!/^[2-4]\./.test(version2)){import_node_logger.logger.warn(`\u{1F6A8} Expected yarn 2 or higher in ${reproDir}!`),import_node_logger.logger.warn(""),import_node_logger.logger.warn("Please set it up with `yarn set version berry`,"),import_node_logger.logger.warn(`then link '${reproDir}' with the '--local' flag.`);return}import_node_logger.logger.info(`Linking ${reproDir}`),await exec2(`yarn link --all --relative ${storybookDir}`,{cwd:reproDir}),import_node_logger.logger.info(`Installing ${reproName}`);let reproPackageJson=JSON.parse(await(0,import_promises8.readFile)((0,import_node_path8.join)(reproDir,"package.json"),{encoding:"utf8"}));reproPackageJson.devDependencies?.vite||(reproPackageJson.devDependencies={...reproPackageJson.devDependencies,"webpack-hot-middleware":"*"}),reproPackageJson.devDependencies={...reproPackageJson.devDependencies,"@types/node":"^22"},await(0,import_promises8.writeFile)((0,import_node_path8.join)(reproDir,"package.json"),JSON.stringify(reproPackageJson,null,2)),await exec2("yarn install",{cwd:reproDir}),start&&(import_node_logger.logger.info(`Running ${reproName} storybook`),await exec2("yarn run storybook",{cwd:reproDir}))};var import_cli15=require("storybook/internal/cli"),import_common22=require("storybook/internal/common"),import_codemod4=require("@storybook/codemod");var logger25=console;async function migrate(migration,{glob:glob2,dryRun,list,rename:rename3,parser,configDir:userSpecifiedConfigDir}){if(list)(0,import_codemod4.listCodemods)().forEach(key=>logger25.log(key));else if(migration){if(migration==="mdx-to-csf"&&!dryRun){let packageManager=import_common22.JsPackageManagerFactory.getPackageManager(),{configDir,mainConfig,mainConfigPath,storybookVersion,packageJson}=await getStorybookData({packageManager,configDir:userSpecifiedConfigDir});if(!storybookVersion)throw new Error("Could not determine Storybook version");if(!mainConfigPath)throw new Error("Could not determine main config path");await runFixes({fixes:[mdxToCSF],configDir,mainConfigPath,packageManager,mainConfig,packageJson,storybookVersion,beforeVersion:storybookVersion,isUpgrade:!1}),await addStorybookBlocksPackage()}await(0,import_codemod4.runCodemod)(migration,{glob:glob2,dryRun,logger:logger25,rename:rename3,parser})}else throw new Error("Migrate: please specify a migration name or --list")}async function addStorybookBlocksPackage(){let packageManager=import_common22.JsPackageManagerFactory.getPackageManager(),packageJson=await packageManager.retrievePackageJson(),versionToInstall=(0,import_cli15.getStorybookVersionSpecifier)(await packageManager.retrievePackageJson());logger25.info('\u2705 Adding "@storybook/blocks" package'),await packageManager.addDependencies({installAsDevDependencies:!0,packageJson},[`@storybook/blocks@${versionToInstall}`])}var import_node_fs3=require("fs"),import_promises9=require("fs/promises"),import_node_path9=require("path"),import_common23=require("storybook/internal/common"),import_common24=require("storybook/internal/common");var import_giget=require("giget"),import_picocolors41=__toESM(require_picocolors(),1),import_prompts9=__toESM(require("prompts"),1),import_semver14=require("semver"),import_tiny_invariant3=__toESM(require("tiny-invariant"),1),import_ts_dedent40=require("ts-dedent");var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:`
572
600
  npx create-react-app {{beforeDir}} && cd {{beforeDir}} && jq '.browserslist.production[0] = ">0.9%"' package.json > tmp.json && mv tmp.json package.json
573
- `,expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"],modifications:{extraDependencies:["prop-types"],mainConfig:config=>({stories:config.getFieldValue(["stories"])?.map(s=>typeof s=="string"?s.replace(/\|(tsx?|ts)\b|\b(tsx?|ts)\|/g,""):s)})}},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:`
601
+ `,expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"],modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:config=>({stories:config.getFieldValue(["stories"])?.map(s=>typeof s=="string"?s.replace(/\|(tsx?|ts)\b|\b(tsx?|ts)\|/g,""):s)})}},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:`
574
602
  npx create-react-app {{beforeDir}} --template typescript && cd {{beforeDir}} && jq '.browserslist.production[0] = ">0.9%"' package.json > tmp.json && mv tmp.json package.json
575
- `,skipTasks:["smoke-test","bench","vitest-integration"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{extraDependencies:["prop-types"]}},"nextjs/13-ts":{name:"Next.js v13.5 (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/next-13/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^13.5.6" && yarn && git add . && git commit --amend --no-edit && cd ..',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/14-ts":{name:"Next.js v14.2 (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/v14.2.17/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^14.2.17" && yarn && git add . && git commit --amend --no-edit && cd ..',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"experimental-nextjs-vite/14-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app@^14 {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/experimental-nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{mainConfig:{framework:"@storybook/experimental-nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/experimental-nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"experimental-nextjs-vite/default-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/experimental-nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{mainConfig:{framework:"@storybook/experimental-nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/experimental-nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["bench"]},"react-vite/prerelease-ts":{name:"React Prerelease (Vite | TypeScript)",script:`
603
+ `,skipTasks:["smoke-test","bench","vitest-integration"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]}},"nextjs/13-ts":{name:"Next.js v13.5 (Webpack | TypeScript)",script:`yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/next-13/examples/hello-world && cd {{beforeDir}} jq '.compilerOptions.moduleResolution = "bundler"' tsconfig.json > tmp.json && mv tmp.json tsconfig.json && npm pkg set "dependencies.next"="^13.5.6" && yarn && git add . && git commit --amend --no-edit && cd ..`,expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/14-ts":{name:"Next.js v14.2 (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/v14.2.17/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^14.2.17" && yarn && git add . && git commit --amend --no-edit && cd ..',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"experimental-nextjs-vite/14-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app@^14 {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/experimental-nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,mainConfig:{framework:"@storybook/experimental-nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/experimental-nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"experimental-nextjs-vite/default-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/experimental-nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,mainConfig:{framework:"@storybook/experimental-nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/experimental-nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["bench"]},"react-vite/prerelease-ts":{name:"React Prerelease (Vite | TypeScript)",script:`
576
604
  npm create vite --yes {{beforeDir}} -- --template react-ts && cd {{beforeDir}} && yarn add react@beta react-dom@beta && jq '.resolutions += {"@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta"}' package.json > tmp.json && mv tmp.json package.json && yarn add --dev @types/react@npm:types-react@beta @types/react-dom@npm:types-react-dom@beta
577
- `,expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-webpack/prerelease-ts":{name:"React Prerelease (Webpack | TypeScript)",script:`
605
+ `,expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-webpack/prerelease-ts":{name:"React Prerelease (Webpack | TypeScript)",script:`
578
606
  yarn create webpack5-react {{beforeDir}} --version-react="beta" --version-react-dom="beta" && cd {{beforeDir}} && jq '.resolutions += {"@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta"}' package.json > tmp.json && mv tmp.json package.json && yarn add --dev @types/react@npm:types-react@beta @types/react-dom@npm:types-react-dom@beta
579
- `,expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"solid-vite/default-js":{name:"SolidJS Latest (Vite | JavaScript)",script:"npx degit solidjs/templates/js {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"solid-vite/default-ts":{name:"SolidJS Latest (Vite | TypeScript)",script:"npx degit solidjs/templates/ts {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-js":{name:"Vue v3 (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-ts":{name:"Vue v3 (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue-ts",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"nuxt-vite/default-ts":{name:"Nuxt v3 (Vite | TypeScript)",script:"npx nuxi init --packageManager yarn --gitInit false {{beforeDir}}",expected:{framework:"@storybook-vue/nuxt",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"html-webpack/default":{name:"HTML Latest (Webpack | JavaScript)",script:"yarn create webpack5-html {{beforeDir}}",expected:{framework:"@storybook/html-webpack5",renderer:"@storybook/html",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"html-vite/default-js":{name:"HTML Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"html-vite/default-ts":{name:"HTML Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"svelte-vite/default-js":{name:"Svelte Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-ts":{name:"Svelte Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte-ts",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"angular-cli/prerelease":{name:"Angular CLI Prerelease (Webpack | TypeScript)",script:"npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"angular-cli/default-ts":{name:"Angular CLI Latest (Webpack | TypeScript)",script:"npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"angular-cli/15-ts":{name:"Angular CLI v15 (Webpack | TypeScript)",script:"npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"svelte-kit/skeleton-js":{name:"SvelteKit Latest (Vite | JavaScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/prerelease-ts":{name:"SvelteKit Prerelease (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/prerelease-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"lit-vite/default-js":{name:"Lit Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench","vitest-integration"]},"lit-vite/default-ts":{name:"Lit Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench","vitest-integration"]},"vue-cli/default-js":{name:"Vue CLI v3 (Webpack | JavaScript)",script:'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/vue3-webpack5",renderer:"@storybook/vue3",builder:"@storybook/builder-webpack5"},skipTasks:["smoke-test","e2e-tests-dev","bench","vitest-integration"]},"preact-vite/default-js":{name:"Preact Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["preact-render-to-string"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"preact-vite/default-ts":{name:"Preact Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact-ts",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["preact-render-to-string"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"qwik-vite/default-ts":{name:"Qwik CLI Latest (Vite | TypeScript)",script:"npm create qwik playground {{beforeDir}}",inDevelopment:!0,expected:{framework:"storybook-framework-qwik",renderer:"storybook-framework-qwik",builder:"storybook-framework-qwik"},skipTasks:["e2e-tests","e2e-tests-dev","bench","vitest-integration"]},"ember/3-js":{name:"Ember v3 (Webpack | JavaScript)",script:"npx --package ember-cli@3.28.1 ember new {{beforeDir}}",inDevelopment:!0,expected:{framework:"@storybook/ember",renderer:"@storybook/ember",builder:"@storybook/builder-webpack5"}},"ember/default-js":{name:"Ember v4 (Webpack | JavaScript)",script:"npx --package ember-cli@4.12.1 ember new {{beforeDir}} --yarn && cd {{beforeDir}} && yarn add --dev @storybook/ember-cli-storybook && yarn build",inDevelopment:!0,expected:{framework:"@storybook/ember",renderer:"@storybook/ember",builder:"@storybook/builder-webpack5"}},"react-native-web-vite/expo-ts":{name:"React Native Expo Latest (Vite | TypeScript)",script:"npx create-expo-app -y {{beforeDir}}",expected:{framework:"@storybook/react-native-web-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-native-web-vite/rn-cli-ts":{name:"React Native CLI Latest (Vite | TypeScript)",script:"npx @react-native-community/cli@latest init --install-pods=false --directory={{beforeDir}} rnapp",expected:{framework:"@storybook/react-native-web-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]}},internalTemplates={"internal/react18-webpack-babel":{name:"React with Babel Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{extraDependencies:["@storybook/addon-webpack5-compiler-babel","prop-types"],editAddons:addons=>[...addons,"@storybook/addon-webpack5-compiler-babel"].filter(a=>a!=="@storybook/addon-webpack5-compiler-swc")},isInternal:!0,skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"internal/react16-webpack":{name:"React 16 (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}} --version-react=16 --version-react-dom=16 --version-@types/react=16 --version-@types/react-dom=16",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"],isInternal:!0},"internal/server-webpack5":{name:"Server Webpack5",script:'yarn init -y && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/server-webpack5",renderer:"@storybook/server",builder:"@storybook/builder-webpack5"},isInternal:!0,skipTasks:["bench","vitest-integration"]}},benchTemplates={"bench/react-vite-default-ts":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic","vitest-integration"]},"bench/react-webpack-18-ts":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic","vitest-integration"]},"bench/react-vite-default-ts-nodocs":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, no docs)",isInternal:!0,modifications:{skipTemplateStories:!0,disableDocs:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic","vitest-integration"]},"bench/react-vite-default-ts-test-build":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","vitest-integration"]},"bench/react-webpack-18-ts-test-build":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","vitest-integration"]}},allTemplates={...baseTemplates,...internalTemplates,...benchTemplates},normal=["react-vite/default-ts","angular-cli/default-ts","vue3-vite/default-ts","nuxt-vite/default-ts","lit-vite/default-ts","svelte-vite/default-ts","svelte-kit/skeleton-ts","nextjs/default-ts","experimental-nextjs-vite/default-ts","bench/react-vite-default-ts","bench/react-webpack-18-ts","bench/react-vite-default-ts-nodocs","bench/react-vite-default-ts-test-build","bench/react-webpack-18-ts-test-build","ember/default-js"],merged=[...normal,"react-webpack/18-ts","react-webpack/17-ts","angular-cli/15-ts","preact-vite/default-ts","html-webpack/default","html-vite/default-ts"],daily=[...merged,"angular-cli/prerelease","react-vite/default-js","react-vite/prerelease-ts","react-webpack/prerelease-ts","vue3-vite/default-js","vue-cli/default-js","lit-vite/default-js","svelte-kit/skeleton-js","svelte-kit/prerelease-ts","svelte-vite/default-js","nextjs/13-ts","nextjs/prerelease","qwik-vite/default-ts","preact-vite/default-js","html-vite/default-js","internal/react16-webpack","internal/react18-webpack-babel","react-native-web-vite/expo-ts"];var logger24=console,toChoices=c=>({title:allTemplates[c].name,value:c}),sandbox=async({output:outputDirectory,filterValue,init,...options})=>{let selectedConfig=allTemplates[filterValue],templateId=selectedConfig?filterValue:null,{packageManager:pkgMgr}=options,packageManager=import_common18.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),nextVersion=await packageManager.latestVersion("storybook@next").catch(e=>"0.0.0"),currentVersion=import_common19.versions.storybook,isPrerelease=(0,import_semver14.prerelease)(currentVersion),isOutdated=(0,import_semver14.lt)(currentVersion,isPrerelease?nextVersion:latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",downloadType=!isOutdated&&init?"after-storybook":"before-storybook",branch=isPrerelease?"next":"main",messages={welcome:`Creating a Storybook ${import_picocolors38.default.bold(currentVersion)} sandbox..`,notLatest:import_picocolors38.default.red(import_ts_dedent39.dedent`
580
- This version is behind the latest release, which is: ${import_picocolors38.default.bold(latestVersion)}!
607
+ `,expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"solid-vite/default-js":{name:"SolidJS Latest (Vite | JavaScript)",script:"npx degit solidjs/templates/js {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"solid-vite/default-ts":{name:"SolidJS Latest (Vite | TypeScript)",script:"npx degit solidjs/templates/ts {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-js":{name:"Vue v3 (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-ts":{name:"Vue v3 (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue-ts",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"nuxt-vite/default-ts":{name:"Nuxt v3 (Vite | TypeScript)",script:"npx nuxi init --packageManager yarn --gitInit false {{beforeDir}}",expected:{framework:"@storybook-vue/nuxt",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"html-webpack/default":{name:"HTML Latest (Webpack | JavaScript)",script:"yarn create webpack5-html {{beforeDir}}",expected:{framework:"@storybook/html-webpack5",renderer:"@storybook/html",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"html-vite/default-js":{name:"HTML Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"html-vite/default-ts":{name:"HTML Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"svelte-vite/default-js":{name:"Svelte Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-ts":{name:"Svelte Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte-ts",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"angular-cli/prerelease":{name:"Angular CLI Prerelease (Webpack | TypeScript)",script:"npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"angular-cli/default-ts":{name:"Angular CLI Latest (Webpack | TypeScript)",script:"npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"angular-cli/15-ts":{name:"Angular CLI v15 (Webpack | TypeScript)",script:"npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"svelte-kit/skeleton-js":{name:"SvelteKit Latest (Vite | JavaScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","test-runner"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","test-runner"]},"svelte-kit/prerelease-ts":{name:"SvelteKit Prerelease (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/prerelease-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"lit-vite/default-js":{name:"Lit Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench","vitest-integration"]},"lit-vite/default-ts":{name:"Lit Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench","vitest-integration"]},"vue-cli/default-js":{name:"Vue CLI v3 (Webpack | JavaScript)",script:'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/vue3-webpack5",renderer:"@storybook/vue3",builder:"@storybook/builder-webpack5"},skipTasks:["smoke-test","e2e-tests-dev","bench","vitest-integration"]},"preact-vite/default-js":{name:"Preact Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["preact-render-to-string"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"preact-vite/default-ts":{name:"Preact Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact-ts",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},modifications:{extraDependencies:["preact-render-to-string"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"qwik-vite/default-ts":{name:"Qwik CLI Latest (Vite | TypeScript)",script:"npm create qwik playground {{beforeDir}}",inDevelopment:!0,expected:{framework:"storybook-framework-qwik",renderer:"storybook-framework-qwik",builder:"storybook-framework-qwik"},skipTasks:["e2e-tests","e2e-tests-dev","bench","vitest-integration"]},"ember/3-js":{name:"Ember v3 (Webpack | JavaScript)",script:"npx --package ember-cli@3.28.1 ember new {{beforeDir}}",inDevelopment:!0,expected:{framework:"@storybook/ember",renderer:"@storybook/ember",builder:"@storybook/builder-webpack5"}},"ember/default-js":{name:"Ember v4 (Webpack | JavaScript)",script:"npx --package ember-cli@4.12.1 ember new {{beforeDir}} --yarn && cd {{beforeDir}} && yarn add --dev @storybook/ember-cli-storybook && yarn build",inDevelopment:!0,expected:{framework:"@storybook/ember",renderer:"@storybook/ember",builder:"@storybook/builder-webpack5"}},"react-native-web-vite/expo-ts":{name:"React Native Expo Latest (Vite | TypeScript)",script:"npx create-expo-app -y {{beforeDir}}",expected:{framework:"@storybook/react-native-web-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-native-web-vite/rn-cli-ts":{name:"React Native CLI Latest (Vite | TypeScript)",script:"npx @react-native-community/cli@latest init --install-pods=false --directory={{beforeDir}} rnapp",expected:{framework:"@storybook/react-native-web-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench","vitest-integration"]}},internalTemplates={"internal/react18-webpack-babel":{name:"React with Babel Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["@storybook/addon-webpack5-compiler-babel","prop-types"],editAddons:addons=>[...addons,"@storybook/addon-webpack5-compiler-babel"].filter(a=>a!=="@storybook/addon-webpack5-compiler-swc")},isInternal:!0,skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"internal/react16-webpack":{name:"React 16 (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}} --version-react=16 --version-react-dom=16 --version-@types/react=16 --version-@types/react-dom=16",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"],isInternal:!0},"internal/server-webpack5":{name:"Server Webpack5",script:'yarn init -y && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/server-webpack5",renderer:"@storybook/server",builder:"@storybook/builder-webpack5"},isInternal:!0,skipTasks:["bench","vitest-integration"]}},benchTemplates={"bench/react-vite-default-ts":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic","vitest-integration"]},"bench/react-webpack-18-ts":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic","vitest-integration"]},"bench/react-vite-default-ts-nodocs":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, no docs)",isInternal:!0,modifications:{skipTemplateStories:!0,disableDocs:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic","vitest-integration"]},"bench/react-vite-default-ts-test-build":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","vitest-integration"]},"bench/react-webpack-18-ts-test-build":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","vitest-integration"]}},allTemplates={...baseTemplates,...internalTemplates,...benchTemplates},normal=["react-vite/default-ts","angular-cli/default-ts","vue3-vite/default-ts","nuxt-vite/default-ts","lit-vite/default-ts","svelte-vite/default-ts","svelte-kit/skeleton-ts","nextjs/default-ts","experimental-nextjs-vite/default-ts","bench/react-vite-default-ts","bench/react-webpack-18-ts","bench/react-vite-default-ts-nodocs","bench/react-vite-default-ts-test-build","bench/react-webpack-18-ts-test-build","ember/default-js"],merged=[...normal,"react-webpack/18-ts","react-webpack/17-ts","angular-cli/15-ts","preact-vite/default-ts","html-webpack/default","html-vite/default-ts"],daily=[...merged,"angular-cli/prerelease","react-vite/default-js","react-vite/prerelease-ts","react-webpack/prerelease-ts","vue3-vite/default-js","vue-cli/default-js","lit-vite/default-js","svelte-kit/skeleton-js","svelte-kit/prerelease-ts","svelte-vite/default-js","nextjs/13-ts","nextjs/prerelease","qwik-vite/default-ts","preact-vite/default-js","html-vite/default-js","internal/react16-webpack","internal/react18-webpack-babel","react-native-web-vite/expo-ts"];var logger26=console,toChoices=c=>({title:allTemplates[c].name,value:c}),sandbox=async({output:outputDirectory,filterValue,init,...options})=>{let selectedConfig=allTemplates[filterValue],templateId=selectedConfig?filterValue:null,{packageManager:pkgMgr}=options,packageManager=import_common23.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),nextVersion=await packageManager.latestVersion("storybook@next").catch(e=>"0.0.0"),currentVersion=import_common24.versions.storybook,isPrerelease=(0,import_semver14.prerelease)(currentVersion),isOutdated=(0,import_semver14.lt)(currentVersion,isPrerelease?nextVersion:latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",downloadType=!isOutdated&&init?"after-storybook":"before-storybook",branch=isPrerelease?"next":"main",messages={welcome:`Creating a Storybook ${import_picocolors41.default.bold(currentVersion)} sandbox..`,notLatest:import_picocolors41.default.red(import_ts_dedent40.dedent`
608
+ This version is behind the latest release, which is: ${import_picocolors41.default.bold(latestVersion)}!
581
609
  You likely ran the init command through npx, which can use a locally cached version, to get the latest please run:
582
- ${import_picocolors38.default.bold("npx storybook@latest sandbox")}
610
+ ${import_picocolors41.default.bold("npx storybook@latest sandbox")}
583
611
 
584
612
  You may want to CTRL+C to stop, and run with the latest version instead.
585
- `),longInitTime:import_picocolors38.default.yellow("The creation of the sandbox will take longer, because we will need to run init."),prerelease:import_picocolors38.default.yellow("This is a pre-release version.")};if(logger24.log(boxen([messages.welcome].concat(isOutdated&&!isPrerelease?[messages.notLatest]:[]).concat(init&&(isOutdated||isPrerelease)?[messages.longInitTime]:[]).concat(isPrerelease?[messages.prerelease]:[]).join(`
586
- `),{borderStyle:"round",padding:1,borderColor})),!selectedConfig){let filterRegex=new RegExp(`^${filterValue||""}`,"i"),keys=Object.keys(allTemplates),choices=keys.reduce((acc,group)=>{let current=allTemplates[group];return(!filterValue||current.name.match(filterRegex)||group.match(filterRegex)||current.expected.builder.match(filterRegex)||current.expected.framework.match(filterRegex)||current.expected.renderer.match(filterRegex))&&acc.push(group),acc},[]);if(choices.length===0&&(logger24.info(boxen(import_ts_dedent39.dedent`
613
+ `),longInitTime:import_picocolors41.default.yellow("The creation of the sandbox will take longer, because we will need to run init."),prerelease:import_picocolors41.default.yellow("This is a pre-release version.")};if(logger26.log(boxen([messages.welcome].concat(isOutdated&&!isPrerelease?[messages.notLatest]:[]).concat(init&&(isOutdated||isPrerelease)?[messages.longInitTime]:[]).concat(isPrerelease?[messages.prerelease]:[]).join(`
614
+ `),{borderStyle:"round",padding:1,borderColor})),!selectedConfig){let filterRegex=new RegExp(`^${filterValue||""}`,"i"),keys=Object.keys(allTemplates),choices=keys.reduce((acc,group)=>{let current=allTemplates[group];return(!filterValue||current.name.match(filterRegex)||group.match(filterRegex)||current.expected.builder.match(filterRegex)||current.expected.framework.match(filterRegex)||current.expected.renderer.match(filterRegex))&&acc.push(group),acc},[]);if(choices.length===0&&(logger26.info(boxen(import_ts_dedent40.dedent`
587
615
  🔎 You filtered out all templates. 🔍
588
616
 
589
- After filtering all the templates with "${import_picocolors38.default.yellow(filterValue)}", we found no results. Please try again with a different filter.
617
+ After filtering all the templates with "${import_picocolors41.default.yellow(filterValue)}", we found no results. Please try again with a different filter.
590
618
 
591
619
  Available templates:
592
- ${keys.map(key=>import_picocolors38.default.blue(`- ${key}`)).join(`
620
+ ${keys.map(key=>import_picocolors41.default.blue(`- ${key}`)).join(`
593
621
  `)}
594
- `.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),process.exit(1)),choices.length===1?[templateId]=choices:(logger24.info(boxen(import_ts_dedent39.dedent`
595
- 🤗 Welcome to ${import_picocolors38.default.yellow("sb sandbox")}! 🤗
622
+ `.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),process.exit(1)),choices.length===1?[templateId]=choices:(logger26.info(boxen(import_ts_dedent40.dedent`
623
+ 🤗 Welcome to ${import_picocolors41.default.yellow("sb sandbox")}! 🤗
596
624
 
597
- Create a ${import_picocolors38.default.green("new project")} to minimally reproduce Storybook issues.
625
+ Create a ${import_picocolors41.default.green("new project")} to minimally reproduce Storybook issues.
598
626
 
599
627
  1. select an environment that most closely matches your project setup.
600
628
  2. select a location for the reproduction, outside of your project.
601
629
 
602
630
  After the reproduction is ready, we'll guide you through the next steps.
603
- `.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),templateId=await promptSelectedTemplate(choices)),!!!(templateId??null)){logger24.error("Somehow we got no templates. Please rerun this command!");return}if(selectedConfig=templateId?allTemplates[templateId]:void 0,!selectedConfig)throw new Error("\u{1F6A8} Sandbox: please specify a valid template type")}let selectedDirectory=outputDirectory,outputDirectoryName=outputDirectory||templateId;if(selectedDirectory&&(0,import_node_fs3.existsSync)(`${selectedDirectory}`)&&logger24.info(`\u26A0\uFE0F ${selectedDirectory} already exists! Overwriting...`),!selectedDirectory){let{directory}=await(0,import_prompts8.default)({type:"text",message:"Enter the output directory",name:"directory",initial:outputDirectoryName??void 0,validate:async directoryName=>(0,import_node_fs3.existsSync)(directoryName)?`${directoryName} already exists. Please choose another name.`:!0},{onCancel:()=>{logger24.log("Command cancelled by the user. Exiting..."),process.exit(1)}});selectedDirectory=directory}(0,import_tiny_invariant3.default)(selectedDirectory);try{let templateDestination=(0,import_node_path9.isAbsolute)(selectedDirectory)?selectedDirectory:(0,import_node_path9.join)(process.cwd(),selectedDirectory);logger24.info(`\u{1F3C3} Adding ${selectedConfig.name} into ${templateDestination}`),logger24.log(`\u{1F4E6} Downloading sandbox template (${import_picocolors38.default.bold(downloadType)})...`);try{let gitPath=`github:storybookjs/sandboxes/${templateId}/${downloadType}#${branch}`;if(await(0,import_giget.downloadTemplate)(gitPath,{force:!0,dir:templateDestination}),(await(0,import_promises9.readdir)(templateDestination)).length===0){let selected=import_picocolors38.default.yellow(templateId);throw new Error(import_ts_dedent39.dedent`
604
- Template downloaded from ${import_picocolors38.default.blue(gitPath)} is empty.
631
+ `.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),templateId=await promptSelectedTemplate(choices)),!!!(templateId??null)){logger26.error("Somehow we got no templates. Please rerun this command!");return}if(selectedConfig=templateId?allTemplates[templateId]:void 0,!selectedConfig)throw new Error("\u{1F6A8} Sandbox: please specify a valid template type")}let selectedDirectory=outputDirectory,outputDirectoryName=outputDirectory||templateId;if(selectedDirectory&&(0,import_node_fs3.existsSync)(`${selectedDirectory}`)&&(logger26.info(`\u26A0\uFE0F ${selectedDirectory} already exists! Overwriting...`),await(0,import_promises9.rm)(selectedDirectory,{recursive:!0,force:!0})),!selectedDirectory){let{directory}=await(0,import_prompts9.default)({type:"text",message:"Enter the output directory",name:"directory",initial:outputDirectoryName??void 0,validate:async directoryName=>(0,import_node_fs3.existsSync)(directoryName)?`${directoryName} already exists. Please choose another name.`:!0},{onCancel:()=>{logger26.log("Command cancelled by the user. Exiting..."),process.exit(1)}});selectedDirectory=directory}(0,import_tiny_invariant3.default)(selectedDirectory);try{let templateDestination=(0,import_node_path9.isAbsolute)(selectedDirectory)?selectedDirectory:(0,import_node_path9.join)(process.cwd(),selectedDirectory);logger26.info(`\u{1F3C3} Adding ${selectedConfig.name} into ${templateDestination}`),logger26.log(`\u{1F4E6} Downloading sandbox template (${import_picocolors41.default.bold(downloadType)})...`);try{let gitPath=`github:storybookjs/sandboxes/${templateId}/${downloadType}#${branch}`;if(await(0,import_giget.downloadTemplate)(gitPath,{force:!0,dir:templateDestination}),(await(0,import_promises9.readdir)(templateDestination)).length===0){let selected=import_picocolors41.default.yellow(templateId);throw new Error(import_ts_dedent40.dedent`
632
+ Template downloaded from ${import_picocolors41.default.blue(gitPath)} is empty.
605
633
  Are you use it exists? Or did you want to set ${selected} to inDevelopment first?
606
- `)}if(downloadType==="before-storybook"&&init){let before=process.cwd();process.chdir(templateDestination),await(0,import_create_storybook.initiate)({dev:process.env.CI!=="true"&&process.env.IN_STORYBOOK_SANBOX!=="true",...options}),process.chdir(before)}}catch(err){throw logger24.error(`\u{1F6A8} Failed to download sandbox template: ${String(err)}`),err}let initMessage=init?import_picocolors38.default.yellow(import_ts_dedent39.dedent`
634
+ `)}if(downloadType==="before-storybook"&&init){let before=process.cwd();process.chdir(templateDestination);let{initiate}=await import("create-storybook");await initiate({dev:process.env.CI!=="true"&&process.env.IN_STORYBOOK_SANBOX!=="true",...options}),process.chdir(before)}}catch(err){throw logger26.error(`\u{1F6A8} Failed to download sandbox template: ${String(err)}`),err}let initMessage=init?import_picocolors41.default.yellow(import_ts_dedent40.dedent`
607
635
  yarn install
608
636
  yarn storybook
609
- `):`Recreate your setup, then ${import_picocolors38.default.yellow("npx storybook@latest init")}`;logger24.info(boxen(import_ts_dedent39.dedent`
637
+ `):`Recreate your setup, then ${import_picocolors41.default.yellow("npx storybook@latest init")}`;logger26.info(boxen(import_ts_dedent40.dedent`
610
638
  🎉 Your Storybook reproduction project is ready to use! 🎉
611
639
 
612
- ${import_picocolors38.default.yellow(`cd ${selectedDirectory}`)}
640
+ ${import_picocolors41.default.yellow(`cd ${selectedDirectory}`)}
613
641
  ${initMessage}
614
642
 
615
643
  Once you've recreated the problem you're experiencing, please:
616
644
 
617
- 1. Document any additional steps in ${import_picocolors38.default.cyan("README.md")}
645
+ 1. Document any additional steps in ${import_picocolors41.default.cyan("README.md")}
618
646
  2. Publish the repository to github
619
647
  3. Link to the repro repository in your issue
620
648
 
621
649
  Having a clean repro helps us solve your issue faster! 🙏
622
- `.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"}))}catch(error){throw logger24.error("\u{1F6A8} Failed to create sandbox"),error}};async function promptSelectedTemplate(choices){let{template}=await(0,import_prompts8.default)({type:"select",message:"\u{1F308} Select the template",name:"template",choices:choices.map(toChoices)},{onCancel:()=>{logger24.log("Command cancelled by the user. Exiting..."),process.exit(1)}});return template||null}var import_cli16=require("storybook/internal/cli"),import_common20=require("storybook/internal/common"),import_core_server=require("storybook/internal/core-server"),import_node_logger3=require("storybook/internal/node-logger"),import_server_errors=require("storybook/internal/server-errors"),import_telemetry=require("storybook/internal/telemetry");var import_cross_spawn2=require("cross-spawn"),import_picocolors43=__toESM(require_picocolors(),1),import_semver17=__toESM(require("semver"),1),import_ts_dedent43=require("ts-dedent");var import_node_logger2=require("storybook/internal/node-logger");var import_picocolors42=__toESM(require_picocolors(),1),excludesFalse=x=>x!==!1,blockers=()=>[Promise.resolve().then(()=>(init_block_storystorev6(),block_storystorev6_exports)),Promise.resolve().then(()=>(init_block_dependencies_versions(),block_dependencies_versions_exports)),Promise.resolve().then(()=>(init_block_node_version(),block_node_version_exports))],segmentDivider2=`
650
+ `.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"}))}catch(error){throw logger26.error("\u{1F6A8} Failed to create sandbox"),error}};async function promptSelectedTemplate(choices){let{template}=await(0,import_prompts9.default)({type:"select",message:"\u{1F308} Select the template",name:"template",choices:choices.map(toChoices)},{onCancel:()=>{logger26.log("Command cancelled by the user. Exiting..."),process.exit(1)}});return template||null}var import_cli16=require("storybook/internal/cli"),import_common25=require("storybook/internal/common"),import_core_server=require("storybook/internal/core-server"),import_node_logger3=require("storybook/internal/node-logger"),import_server_errors=require("storybook/internal/server-errors"),import_telemetry=require("storybook/internal/telemetry");var import_cross_spawn2=require("cross-spawn"),import_picocolors46=__toESM(require_picocolors(),1),import_semver17=__toESM(require("semver"),1),import_ts_dedent44=require("ts-dedent");var import_node_logger2=require("storybook/internal/node-logger");var import_picocolors45=__toESM(require_picocolors(),1),excludesFalse=x=>x!==!1,blockers=()=>[Promise.resolve().then(()=>(init_block_storystorev6(),block_storystorev6_exports)),Promise.resolve().then(()=>(init_block_dependencies_versions(),block_dependencies_versions_exports)),Promise.resolve().then(()=>(init_block_node_version(),block_node_version_exports))],segmentDivider2=`
623
651
 
624
652
  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
625
653
 
626
- `,autoblock=async(options,list=blockers())=>{if(list.length===0)return null;import_node_logger2.logger.info("Checking for upgrade blockers...");let faults=(await Promise.all(list.map(async i=>{let{blocker:blocker4}=await i,result=await blocker4.check(options);return result?{id:blocker4.id,value:!0,log:blocker4.log(options,result)}:!1}))).filter(excludesFalse);if(faults.length>0){let messages={welcome:"Storybook has found potential blockers in your project that need to be resolved before upgrading:",reminder:import_picocolors42.default.yellow("Fix the above issues and try running the upgrade command again.")};return import_node_logger2.logger.plain(boxen([messages.welcome].concat([`
654
+ `,autoblock=async(options,list=blockers())=>{if(list.length===0)return null;import_node_logger2.logger.info("Checking for upgrade blockers...");let faults=(await Promise.all(list.map(async i=>{let{blocker:blocker4}=await i,result=await blocker4.check(options);return result?{id:blocker4.id,value:!0,log:blocker4.log(options,result)}:!1}))).filter(excludesFalse);if(faults.length>0){let messages={welcome:"Storybook has found potential blockers in your project that need to be resolved before upgrading:",reminder:import_picocolors45.default.yellow("Fix the above issues and try running the upgrade command again.")};return import_node_logger2.logger.plain(boxen([messages.welcome].concat([`
627
655
 
628
- `]).concat([faults.map(i=>i.log).join(segmentDivider2)]).concat([segmentDivider2,messages.reminder]).join(""),{borderStyle:"round",padding:1,borderColor:"#FC521F"})),faults[0].id}return import_node_logger2.logger.plain("No blockers found."),import_node_logger2.logger.line(),null};var versionRegex=/(@storybook\/[^@]+)@(\S+)/,getStorybookVersion=line=>{if(line.startsWith("npm "))return null;let match=versionRegex.exec(line);return!match||!(0,import_semver17.clean)(match[2])?null:{package:match[1],version:match[2]}},getInstalledStorybookVersion=async packageManager=>{let installations=await packageManager.findInstallations(Object.keys(import_common20.versions));if(installations)return Object.entries(installations.dependencies)[0]?.[1]?.[0].version},deprecatedPackages=[{minVersion:"6.0.0-alpha.0",url:"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#60-deprecations",deprecations:["@storybook/addon-notes","@storybook/addon-info","@storybook/addon-contexts","@storybook/addon-options","@storybook/addon-centered"]}],formatPackage=pkg2=>`${pkg2.package}@${pkg2.version}`,warnPackages=pkgs=>pkgs.forEach(pkg2=>import_node_logger3.logger.warn(`- ${formatPackage(pkg2)}`)),checkVersionConsistency=()=>{let storybookPackages=(0,import_cross_spawn2.sync)("npm",["ls"],{stdio:"pipe",shell:!0}).output.toString().split(`
629
- `).map(getStorybookVersion).filter(item=>!!item).filter(pkg2=>(0,import_common20.isCorePackage)(pkg2.package));if(!storybookPackages.length){import_node_logger3.logger.warn("No storybook core packages found."),import_node_logger3.logger.warn("'npm ls | grep storybook' can show if multiple versions are installed.");return}storybookPackages.sort((a,b)=>import_semver17.default.rcompare(a.version,b.version));let latestVersion=storybookPackages[0].version,outdated=storybookPackages.filter(pkg2=>pkg2.version!==latestVersion);outdated.length>0&&(import_node_logger3.logger.warn(`Found ${outdated.length} outdated packages (relative to '${formatPackage(storybookPackages[0])}')`),import_node_logger3.logger.warn("Please make sure your packages are updated to ensure a consistent experience."),warnPackages(outdated)),deprecatedPackages.forEach(({minVersion,url,deprecations})=>{if(import_semver17.default.gte(latestVersion,minVersion)){let deprecated=storybookPackages.filter(pkg2=>deprecations.includes(pkg2.package));deprecated.length>0&&(import_node_logger3.logger.warn(`Found ${deprecated.length} deprecated packages since ${minVersion}`),import_node_logger3.logger.warn(`See ${url}`),warnPackages(deprecated))}})},doUpgrade=async({skipCheck,packageManager:packageManagerName,dryRun,configDir:userSpecifiedConfigDir,yes,...options})=>{let packageManager=import_common20.JsPackageManagerFactory.getPackageManager({force:packageManagerName}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0",currentCLIVersion=import_common20.versions.storybook,isCanary=currentCLIVersion.startsWith("0.0.0")||beforeVersion.startsWith("portal:")||beforeVersion.startsWith("workspace:");if(!await(0,import_cli16.hasStorybookDependencies)(packageManager))throw new import_server_errors.UpgradeStorybookInWrongWorkingDirectory;if(!isCanary&&(0,import_semver17.lt)(currentCLIVersion,beforeVersion))throw new import_server_errors.UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion:currentCLIVersion});!isCanary&&(0,import_semver17.eq)(currentCLIVersion,beforeVersion)&&import_node_logger3.logger.warn(new import_server_errors.UpgradeStorybookToSameVersionError({beforeVersion}).message);let[latestCLIVersionOnNPM,packageJson]=await Promise.all([packageManager.latestVersion("storybook"),packageManager.retrievePackageJson()]),isCLIOutdated=(0,import_semver17.lt)(currentCLIVersion,latestCLIVersionOnNPM),isCLIExactLatest=currentCLIVersion===latestCLIVersionOnNPM,isCLIPrerelease=(0,import_semver17.prerelease)(currentCLIVersion)!==null,isUpgrade=(0,import_semver17.lt)(beforeVersion,currentCLIVersion),borderColor=isCLIOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${import_picocolors43.default.bold(beforeVersion)} to version ${import_picocolors43.default.bold(currentCLIVersion)}..`,notLatest:import_picocolors43.default.red(import_ts_dedent43.dedent`
630
- This version is behind the latest release, which is: ${import_picocolors43.default.bold(latestCLIVersionOnNPM)}!
656
+ `]).concat([faults.map(i=>i.log).join(segmentDivider2)]).concat([segmentDivider2,messages.reminder]).join(""),{borderStyle:"round",padding:1,borderColor:"#FC521F"})),faults[0].id}return import_node_logger2.logger.plain("No blockers found."),import_node_logger2.logger.line(),null};var versionRegex=/(@storybook\/[^@]+)@(\S+)/,getStorybookVersion=line=>{if(line.startsWith("npm "))return null;let match=versionRegex.exec(line);return!match||!(0,import_semver17.clean)(match[2])?null:{package:match[1],version:match[2]}},getInstalledStorybookVersion=async packageManager=>{let installations=await packageManager.findInstallations(Object.keys(import_common25.versions));if(installations)return Object.entries(installations.dependencies)[0]?.[1]?.[0].version},deprecatedPackages=[{minVersion:"6.0.0-alpha.0",url:"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#60-deprecations",deprecations:["@storybook/addon-notes","@storybook/addon-info","@storybook/addon-contexts","@storybook/addon-options","@storybook/addon-centered"]}],formatPackage=pkg=>`${pkg.package}@${pkg.version}`,warnPackages=pkgs=>pkgs.forEach(pkg=>import_node_logger3.logger.warn(`- ${formatPackage(pkg)}`)),checkVersionConsistency=()=>{let storybookPackages=(0,import_cross_spawn2.sync)("npm",["ls"],{stdio:"pipe",shell:!0}).output.toString().split(`
657
+ `).map(getStorybookVersion).filter(item=>!!item).filter(pkg=>(0,import_common25.isCorePackage)(pkg.package));if(!storybookPackages.length){import_node_logger3.logger.warn("No storybook core packages found."),import_node_logger3.logger.warn("'npm ls | grep storybook' can show if multiple versions are installed.");return}storybookPackages.sort((a,b)=>import_semver17.default.rcompare(a.version,b.version));let latestVersion=storybookPackages[0].version,outdated=storybookPackages.filter(pkg=>pkg.version!==latestVersion);outdated.length>0&&(import_node_logger3.logger.warn(`Found ${outdated.length} outdated packages (relative to '${formatPackage(storybookPackages[0])}')`),import_node_logger3.logger.warn("Please make sure your packages are updated to ensure a consistent experience."),warnPackages(outdated)),deprecatedPackages.forEach(({minVersion,url,deprecations})=>{if(import_semver17.default.gte(latestVersion,minVersion)){let deprecated=storybookPackages.filter(pkg=>deprecations.includes(pkg.package));deprecated.length>0&&(import_node_logger3.logger.warn(`Found ${deprecated.length} deprecated packages since ${minVersion}`),import_node_logger3.logger.warn(`See ${url}`),warnPackages(deprecated))}})},doUpgrade=async({skipCheck,packageManager:packageManagerName,dryRun,configDir:userSpecifiedConfigDir,yes,...options})=>{let packageManager=import_common25.JsPackageManagerFactory.getPackageManager({force:packageManagerName}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0",currentCLIVersion=import_common25.versions.storybook,isCanary=currentCLIVersion.startsWith("0.0.0")||beforeVersion.startsWith("portal:")||beforeVersion.startsWith("workspace:");if(!await(0,import_cli16.hasStorybookDependencies)(packageManager))throw new import_server_errors.UpgradeStorybookInWrongWorkingDirectory;if(!isCanary&&(0,import_semver17.lt)(currentCLIVersion,beforeVersion))throw new import_server_errors.UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion:currentCLIVersion});!isCanary&&(0,import_semver17.eq)(currentCLIVersion,beforeVersion)&&import_node_logger3.logger.warn(new import_server_errors.UpgradeStorybookToSameVersionError({beforeVersion}).message);let latestCLIVersionOnNPM=await packageManager.latestVersion("storybook"),isCLIOutdated=(0,import_semver17.lt)(currentCLIVersion,latestCLIVersionOnNPM),isCLIExactLatest=currentCLIVersion===latestCLIVersionOnNPM,isCLIPrerelease=(0,import_semver17.prerelease)(currentCLIVersion)!==null,isUpgrade=(0,import_semver17.lt)(beforeVersion,currentCLIVersion),borderColor=isCLIOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${import_picocolors46.default.bold(beforeVersion)} to version ${import_picocolors46.default.bold(currentCLIVersion)}..`,notLatest:import_picocolors46.default.red(import_ts_dedent44.dedent`
658
+ This version is behind the latest release, which is: ${import_picocolors46.default.bold(latestCLIVersionOnNPM)}!
631
659
  You likely ran the upgrade command through npx, which can use a locally cached version, to upgrade to the latest version please run:
632
- ${import_picocolors43.default.bold("npx storybook@latest upgrade")}
660
+ ${import_picocolors46.default.bold("npx storybook@latest upgrade")}
633
661
 
634
662
  You may want to CTRL+C to stop, and run with the latest version instead.
635
- `),prerelease:import_picocolors43.default.yellow("This is a pre-release version.")};import_node_logger3.logger.plain(boxen([messages.welcome].concat(isCLIOutdated&&!isCLIPrerelease?[messages.notLatest]:[]).concat(isCLIPrerelease?[messages.prerelease]:[]).join(`
636
- `),{borderStyle:"round",padding:1,borderColor}));let results,{configDir:inferredConfigDir,mainConfig:mainConfigPath}=(0,import_common20.getStorybookInfo)(packageJson,userSpecifiedConfigDir),configDir=userSpecifiedConfigDir||inferredConfigDir||".storybook",mainConfig=await(0,import_common20.loadMainConfig)({configDir});if(!beforeVersion)throw new import_server_errors.UpgradeStorybookUnknownCurrentVersionError;if(!results&&typeof mainConfig!="boolean"&&typeof mainConfigPath<"u"&&!options.force){let blockResult=await autoblock({packageManager,configDir,packageJson,mainConfig,mainConfigPath});blockResult&&(results={preCheckFailure:blockResult})}if(!dryRun&&!results){let toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>dependency in import_common20.versions).map(dependency=>{let char="^";return isCLIOutdated&&(char=""),isCanary&&(char=""),`${dependency}@${char}${import_common20.versions[dependency]}`}),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);import_node_logger3.logger.info(`Updating dependencies in ${import_picocolors43.default.cyan("package.json")}..`),upgradedDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!1,skipInstall:!0,packageJson},upgradedDependencies),upgradedDevDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},upgradedDevDependencies),await packageManager.installDependencies()}if(!skipCheck&&!results&&mainConfigPath&&(checkVersionConsistency(),results=await automigrate({dryRun,yes,packageManager,configDir,mainConfigPath,beforeVersion,storybookVersion:currentCLIVersion,isUpgrade,isLatest:isCLIExactLatest})),!options.disableTelemetry){let{preCheckFailure,fixResults}=results||{};await(0,import_telemetry.telemetry)("upgrade",{beforeVersion,afterVersion:currentCLIVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}};async function upgrade(options){await(0,import_core_server.withTelemetry)("upgrade",{cliOptions:options},()=>doUpgrade(options))}(0,import_telemetry2.addToGlobalContext)("cliVersion",import_common21.versions.storybook);var pkg=(0,import_fd_package_json.findPackageSync)(__dirname);(0,import_tiny_invariant4.default)(pkg,"Failed to find the closest package.json file.");var consoleLogger=console,command=name=>import_commander.program.command(name).option("--disable-telemetry","Disable sending telemetry data",process.env.STORYBOOK_DISABLE_TELEMETRY&&process.env.STORYBOOK_DISABLE_TELEMETRY!=="false").option("--debug","Get more logs in debug mode",!1).option("--enable-crash-reports","Enable sending crash reports to telemetry data");command("init").description("Initialize Storybook into your project").option("-f --force","Force add Storybook").option("-s --skip-install","Skip installing deps").option("--package-manager <npm|pnpm|yarn1|yarn2>","Force package manager for installing deps").option("--use-pnp","Enable PnP mode for Yarn 2+").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-t --type <type>","Add Storybook for a specific project type").option("-y --yes","Answer yes to all prompts").option("-b --builder <webpack5 | vite>","Builder library").option("-l --linkable","Prepare installation for link (contributor helper)").option("--dev","Launch the development server after completing initialization. Enabled by default (default: true)",process.env.CI!=="true"&&process.env.IN_STORYBOOK_SANDBOX!=="true").option("--no-dev","Complete the initialization of Storybook without launching the Storybook development server");command("add <addon>").description("Add an addon to your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-s --skip-postinstall","Skip package specific postinstall config modifications").option("-y --yes","Skip prompting the user").action((addonName,options)=>add(addonName,options));command("remove <addon>").description("Remove an addon from your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action((addonName,options)=>(0,import_core_server2.withTelemetry)("remove",{cliOptions:options},async()=>{await(0,import_common21.removeAddon)(addonName,options),options.disableTelemetry||await(0,import_telemetry2.telemetry)("remove",{addon:addonName,source:"cli"})}));command("upgrade").description(`Upgrade your Storybook packages to v${import_common21.versions.storybook}`).option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-y --yes","Skip prompting the user").option("-f --force","force the upgrade, skipping autoblockers").option("-n --dry-run","Only check for upgrades, do not install").option("-s --skip-check","Skip postinstall version and automigration checks").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action(async options=>upgrade(options).catch(()=>process.exit(1)));command("info").description("Prints debugging information about the local environment").action(async()=>{consoleLogger.log(import_picocolors44.default.bold(`
637
- Storybook Environment Info:`));let activePackageManager=(await import_common21.JsPackageManagerFactory.getPackageManager()).type.replace(/\d/,""),output=await import_envinfo.default.run({System:["OS","CPU","Shell"],Binaries:["Node","Yarn","npm","pnpm"],Browsers:["Chrome","Edge","Firefox","Safari"],npmPackages:"{@storybook/*,*storybook*,sb,chromatic}",npmGlobalPackages:"{@storybook/*,*storybook*,sb,chromatic}"}),activePackageManagerLine=output.match(new RegExp(`${activePackageManager}:.*`,"i"));consoleLogger.log(output.replace(activePackageManagerLine,import_picocolors44.default.bold(`${activePackageManagerLine} <----- active`)))});command("migrate [migration]").description("Run a Storybook codemod migration on your source files").option("-l --list","List available migrations").option("-g --glob <glob>","Glob for files upon which to apply the migration","**/*.js").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-n --dry-run","Dry run: verify the migration exists and show the files to which it will be applied").option("-r --rename <from-to>",'Rename suffix of matching files after codemod has been applied, e.g. ".js:.ts"').action((migration,{configDir,glob:glob2,dryRun,list,rename:rename3,parser})=>{migrate(migration,{configDir,glob:glob2,dryRun,list,rename:rename3,parser}).catch(err=>{import_node_logger4.logger.error(err),process.exit(1)})});command("sandbox [filterValue]").alias("repro").description("Create a sandbox from a set of possible templates").option("-o --output <outDir>","Define an output directory").option("--no-init","Whether to download a template without an initialized Storybook",!1).action((filterValue,options)=>sandbox({filterValue,...options}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)}));command("link <repo-url-or-directory>").description("Pull down a repro from a URL (or a local directory), link it, and run storybook").option("--local","Link a local directory already in your file system").option("--no-start","Start the storybook",!0).action((target,{local,start})=>link({target,local,start}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)}));command("automigrate [fixId]").description("Check storybook for incompatibilities or migrations and apply fixes").option("-y --yes","Skip prompting the user").option("-n --dry-run","Only check for fixes, do not actually run them").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager").option("-l --list","List available migrations").option("-c, --config-dir <dir-name>","Directory of Storybook configurations to migrate").option("-s --skip-install","Skip installing deps").option("--renderer <renderer-pkg-name>","The renderer package for the framework Storybook is using.").action(async(fixId,options)=>{await doAutomigrate({fixId,...options}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)})});command("doctor").description("Check Storybook for known problems and provide suggestions or fixes").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager").option("-c, --config-dir <dir-name>","Directory of Storybook configuration").action(async options=>{await doctor(options).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)})});import_commander.program.on("command:*",([invalidCmd])=>{consoleLogger.error(` Invalid command: %s.
663
+ `),prerelease:import_picocolors46.default.yellow("This is a pre-release version.")};import_node_logger3.logger.plain(boxen([messages.welcome].concat(isCLIOutdated&&!isCLIPrerelease?[messages.notLatest]:[]).concat(isCLIPrerelease?[messages.prerelease]:[]).join(`
664
+ `),{borderStyle:"round",padding:1,borderColor}));let results,{configDir,mainConfig,mainConfigPath,previewConfigPath,packageJson}=await getStorybookData({packageManager,configDir:userSpecifiedConfigDir});if(!beforeVersion)throw new import_server_errors.UpgradeStorybookUnknownCurrentVersionError;if(!results&&typeof mainConfig!="boolean"&&typeof mainConfigPath<"u"&&!options.force){let blockResult=await autoblock({packageManager,configDir,packageJson,mainConfig,mainConfigPath});blockResult&&(results={preCheckFailure:blockResult})}if(!dryRun&&!results){let toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>dependency in import_common25.versions).map(dependency=>{let char="^";return isCLIOutdated&&(char=""),isCanary&&(char=""),`${dependency}@${char}${import_common25.versions[dependency]}`}),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);import_node_logger3.logger.info(`Updating dependencies in ${import_picocolors46.default.cyan("package.json")}..`),upgradedDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!1,skipInstall:!0,packageJson},upgradedDependencies),upgradedDevDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},upgradedDevDependencies),await packageManager.installDependencies()}if(!skipCheck&&!results&&mainConfigPath&&(checkVersionConsistency(),results=await automigrate({dryRun,yes,packageManager,packageJson,mainConfig,configDir,previewConfigPath,mainConfigPath,beforeVersion,storybookVersion:currentCLIVersion,isUpgrade,isLatest:isCLIExactLatest})),!options.disableTelemetry){let{preCheckFailure,fixResults}=results||{};await(0,import_telemetry.telemetry)("upgrade",{beforeVersion,afterVersion:currentCLIVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}};async function upgrade(options){await(0,import_core_server.withTelemetry)("upgrade",{cliOptions:options},()=>doUpgrade(options))}(0,import_telemetry2.addToGlobalContext)("cliVersion",import_common26.versions.storybook);var consoleLogger=console,command=name=>import_commander.program.command(name).option("--disable-telemetry","Disable sending telemetry data",process.env.STORYBOOK_DISABLE_TELEMETRY&&process.env.STORYBOOK_DISABLE_TELEMETRY!=="false").option("--debug","Get more logs in debug mode",!1).option("--enable-crash-reports","Enable sending crash reports to telemetry data");command("init").description("Initialize Storybook into your project").option("-f --force","Force add Storybook").option("-s --skip-install","Skip installing deps").option("--package-manager <npm|pnpm|yarn1|yarn2>","Force package manager for installing deps").option("--use-pnp","Enable PnP mode for Yarn 2+").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-t --type <type>","Add Storybook for a specific project type").option("-y --yes","Answer yes to all prompts").option("-b --builder <webpack5 | vite>","Builder library").option("-l --linkable","Prepare installation for link (contributor helper)").option("--dev","Launch the development server after completing initialization. Enabled by default (default: true)",process.env.CI!=="true"&&process.env.IN_STORYBOOK_SANDBOX!=="true").option("--no-dev","Complete the initialization of Storybook without launching the Storybook development server");command("add <addon>").description("Add an addon to your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-s --skip-postinstall","Skip package specific postinstall config modifications").option("-y --yes","Skip prompting the user").action((addonName,options)=>add(addonName,options));command("remove <addon>").description("Remove an addon from your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action((addonName,options)=>(0,import_core_server2.withTelemetry)("remove",{cliOptions:options},async()=>{await(0,import_common26.removeAddon)(addonName,options),options.disableTelemetry||await(0,import_telemetry2.telemetry)("remove",{addon:addonName,source:"cli"})}));command("upgrade").description(`Upgrade your Storybook packages to v${import_common26.versions.storybook}`).option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-y --yes","Skip prompting the user").option("-f --force","force the upgrade, skipping autoblockers").option("-n --dry-run","Only check for upgrades, do not install").option("-s --skip-check","Skip postinstall version and automigration checks").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action(async options=>upgrade(options).catch(()=>process.exit(1)));command("info").description("Prints debugging information about the local environment").action(async()=>{consoleLogger.log(import_picocolors47.default.bold(`
665
+ Storybook Environment Info:`));let activePackageManager=(await import_common26.JsPackageManagerFactory.getPackageManager()).type.replace(/\d/,""),output=await import_envinfo.default.run({System:["OS","CPU","Shell"],Binaries:["Node","Yarn","npm","pnpm"],Browsers:["Chrome","Edge","Firefox","Safari"],npmPackages:"{@storybook/*,*storybook*,sb,chromatic}",npmGlobalPackages:"{@storybook/*,*storybook*,sb,chromatic}"}),activePackageManagerLine=output.match(new RegExp(`${activePackageManager}:.*`,"i"));consoleLogger.log(output.replace(activePackageManagerLine,import_picocolors47.default.bold(`${activePackageManagerLine} <----- active`)))});command("migrate [migration]").description("Run a Storybook codemod migration on your source files").option("-l --list","List available migrations").option("-g --glob <glob>","Glob for files upon which to apply the migration","**/*.js").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-n --dry-run","Dry run: verify the migration exists and show the files to which it will be applied").option("-r --rename <from-to>",'Rename suffix of matching files after codemod has been applied, e.g. ".js:.ts"').action((migration,{configDir,glob:glob2,dryRun,list,rename:rename3,parser})=>{migrate(migration,{configDir,glob:glob2,dryRun,list,rename:rename3,parser}).catch(err=>{import_node_logger4.logger.error(err),process.exit(1)})});command("sandbox [filterValue]").alias("repro").description("Create a sandbox from a set of possible templates").option("-o --output <outDir>","Define an output directory").option("--no-init","Whether to download a template without an initialized Storybook",!1).action((filterValue,options)=>sandbox({filterValue,...options}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)}));command("link <repo-url-or-directory>").description("Pull down a repro from a URL (or a local directory), link it, and run storybook").option("--local","Link a local directory already in your file system").option("--no-start","Start the storybook",!0).action((target,{local,start})=>link({target,local,start}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)}));command("automigrate [fixId]").description("Check storybook for incompatibilities or migrations and apply fixes").option("-y --yes","Skip prompting the user").option("-n --dry-run","Only check for fixes, do not actually run them").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager").option("-l --list","List available migrations").option("-c, --config-dir <dir-name>","Directory of Storybook configurations to migrate").option("-s --skip-install","Skip installing deps").option("--renderer <renderer-pkg-name>","The renderer package for the framework Storybook is using.").action(async(fixId,options)=>{await doAutomigrate({fixId,...options}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)})});command("doctor").description("Check Storybook for known problems and provide suggestions or fixes").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager").option("-c, --config-dir <dir-name>","Directory of Storybook configuration").action(async options=>{await doctor(options).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)})});import_commander.program.on("command:*",([invalidCmd])=>{consoleLogger.error(` Invalid command: %s.
638
666
  See --help for a list of available commands.`,invalidCmd);let suggestion=import_commander.program.commands.map(cmd=>cmd.name()).find(cmd=>(0,import_leven.default)(cmd,invalidCmd)<3);suggestion&&consoleLogger.info(`
639
- Did you mean ${suggestion}?`),process.exit(1)});import_commander.program.usage("<command> [options]").version(String(pkg.version)).parse(process.argv);
667
+ Did you mean ${suggestion}?`),process.exit(1)});import_commander.program.usage("<command> [options]").version(String(version)).parse(process.argv);