@storybook/cli 9.0.0-alpha.15 → 9.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/index.cjs +137 -114
- package/package.json +4 -4
package/dist/bin/index.cjs
CHANGED
|
@@ -1,106 +1,106 @@
|
|
|
1
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
|
|
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_picocolors25,import_ts_dedent21,blocker,init_block_storystorev6=__esm({"src/autoblock/block-storystorev6.ts"(){"use strict";import_picocolors25=__toESM(require_picocolors(),1),import_ts_dedent21=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_dedent21.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
|
-
${
|
|
6
|
+
${import_picocolors25.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
|
-
${
|
|
12
|
+
${import_picocolors25.default.cyan("storyStoreV7: false")}, <--- ${import_picocolors25.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
|
|
17
|
+
`}}}});var block_dependencies_versions_exports={};__export(block_dependencies_versions_exports,{blocker:()=>blocker2});var import_picocolors26,import_semver8,import_ts_dedent22,minimalVersionsMap,typedKeys,blocker2,init_block_dependencies_versions=__esm({"src/autoblock/block-dependencies-versions.ts"(){"use strict";import_picocolors26=__toESM(require_picocolors(),1),import_semver8=require("semver"),import_ts_dedent22=require("ts-dedent");init_types();minimalVersionsMap={"@angular/core":"18.0.0","react-scripts":"5.0.0","@storybook/preact-webpack5":"9.0.0","@storybook/preset-preact-webpack":"9.0.0","@storybook/vue3-webpack5":"9.0.0","@storybook/preset-vue3-webpack":"9.0.0","@storybook/html-webpack5":"9.0.0","@storybook/preset-html-webpack":"9.0.0","@storybook/web-components-webpack5":"9.0.0",next:"14.1.0",preact:"10.0.0",svelte:"5.0.0",vue:"3.0.0",vite:"5.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_semver8.lt)(installedVersion,minimumVersion)?{installedVersion,packageName,minimumVersion}:acc),!1)},log(options,data){switch(data.packageName){case"react-scripts":return import_ts_dedent22.dedent`
|
|
18
18
|
Support for react-script < 5.0.0 has been removed.
|
|
19
19
|
Please see the migration guide for more information:
|
|
20
|
-
${
|
|
20
|
+
${import_picocolors26.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"@storybook/preact-webpack5":case"@storybook/preset-preact-webpack":return
|
|
23
|
+
`;case"@storybook/preact-webpack5":case"@storybook/preset-preact-webpack":return import_ts_dedent22.dedent`
|
|
24
24
|
Support for Preact Webpack5 has been removed.
|
|
25
25
|
Please see the migration guide for more information:
|
|
26
|
-
${
|
|
27
|
-
`;case"@storybook/vue3-webpack5":case"@storybook/preset-vue3-webpack":return
|
|
26
|
+
${import_picocolors26.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#dropped-webpack5-builder-support-in-favor-of-vite")}
|
|
27
|
+
`;case"@storybook/vue3-webpack5":case"@storybook/preset-vue3-webpack":return import_ts_dedent22.dedent`
|
|
28
28
|
Support for Vue3 Webpack5 has been removed.
|
|
29
29
|
Please see the migration guide for more information:
|
|
30
|
-
${
|
|
31
|
-
`;case"@storybook/html-webpack5":case"@storybook/preset-html-webpack":return
|
|
30
|
+
${import_picocolors26.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#dropped-webpack5-builder-support-in-favor-of-vite")}
|
|
31
|
+
`;case"@storybook/html-webpack5":case"@storybook/preset-html-webpack":return import_ts_dedent22.dedent`
|
|
32
32
|
Support for HTML Webpack5 has been removed.
|
|
33
33
|
Please see the migration guide for more information:
|
|
34
|
-
${
|
|
35
|
-
`;case"@storybook/web-components-webpack5":return
|
|
34
|
+
${import_picocolors26.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#dropped-webpack5-builder-support-in-favor-of-vite")}
|
|
35
|
+
`;case"@storybook/web-components-webpack5":return import_ts_dedent22.dedent`
|
|
36
36
|
Support for Web Components Webpack5 has been removed.
|
|
37
37
|
Please see the migration guide for more information:
|
|
38
|
-
${
|
|
39
|
-
`;case"vue":return
|
|
38
|
+
${import_picocolors26.default.yellow("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#dropped-webpack5-builder-support-in-favor-of-vite")}
|
|
39
|
+
`;case"vue":return import_ts_dedent22.dedent`
|
|
40
40
|
Support for Vue 2 has been removed.
|
|
41
41
|
Please see the migration guide for more information:
|
|
42
|
-
${
|
|
42
|
+
${import_picocolors26.default.yellow("https://v3-migration.vuejs.org/")}
|
|
43
43
|
|
|
44
44
|
Please upgrade to the latest version of Vue.
|
|
45
|
-
`;case"@angular/core":return
|
|
45
|
+
`;case"@angular/core":return import_ts_dedent22.dedent`
|
|
46
46
|
Support for Angular < 18 has been removed.
|
|
47
47
|
Please see the migration guide for more information:
|
|
48
|
-
${
|
|
48
|
+
${import_picocolors26.default.yellow("https://angular.io/guide/update-to-version-15")}
|
|
49
49
|
|
|
50
50
|
Please upgrade to the latest version of Angular.
|
|
51
|
-
`;case"next":return
|
|
51
|
+
`;case"next":return import_ts_dedent22.dedent`
|
|
52
52
|
Support for Next.js < 14.1 has been removed.
|
|
53
53
|
Please see the migration guide for more information:
|
|
54
|
-
${
|
|
54
|
+
${import_picocolors26.default.yellow("https://nextjs.org/docs/pages/building-your-application/upgrading/version-13")}
|
|
55
55
|
|
|
56
56
|
Please upgrade to the latest version of Next.js.
|
|
57
|
-
`;default:return
|
|
57
|
+
`;default:return import_ts_dedent22.dedent`
|
|
58
58
|
Support for ${data.packageName} version < ${data.minimumVersion} has been removed.
|
|
59
59
|
Since version 8, Storybook needs a minimum version of ${data.minimumVersion}, but you have version ${data.installedVersion}.
|
|
60
60
|
|
|
61
61
|
Please update this dependency.
|
|
62
|
-
`}}}}});var block_node_version_exports={};__export(block_node_version_exports,{blocker:()=>blocker3});var
|
|
62
|
+
`}}}}});var block_node_version_exports={};__export(block_node_version_exports,{blocker:()=>blocker3});var import_picocolors27,import_semver9,import_ts_dedent23,blocker3,init_block_node_version=__esm({"src/autoblock/block-node-version.ts"(){"use strict";import_picocolors27=__toESM(require_picocolors(),1),import_semver9=require("semver"),import_ts_dedent23=require("ts-dedent");init_types();blocker3={id:"minimumNode20",async check(){let nodeVersion=process.versions.node;return nodeVersion&&(0,import_semver9.lt)(nodeVersion,"20.0.0")?{nodeVersion}:!1},log(options,data){return import_ts_dedent23.dedent`
|
|
63
63
|
We've detected you're using Node.js v${data.nodeVersion}.
|
|
64
64
|
Storybook needs Node.js 20 or higher.
|
|
65
65
|
|
|
66
|
-
${
|
|
67
|
-
`}}}});var block_svelte_webpack5_exports={};__export(block_svelte_webpack5_exports,{blocker:()=>blocker4});var
|
|
68
|
-
${
|
|
66
|
+
${import_picocolors27.default.yellow("https://nodejs.org/en/download")}
|
|
67
|
+
`}}}});var block_svelte_webpack5_exports={};__export(block_svelte_webpack5_exports,{blocker:()=>blocker4});var import_picocolors28,import_ts_dedent24,blocker4,init_block_svelte_webpack5=__esm({"src/autoblock/block-svelte-webpack5.ts"(){"use strict";import_picocolors28=__toESM(require_picocolors(),1),import_ts_dedent24=require("ts-dedent");init_types();blocker4={id:"svelteWebpack5Removal",async check({packageJson}){return"@storybook/svelte-webpack5"in{...packageJson.dependencies,...packageJson.devDependencies}},log(){return import_ts_dedent24.dedent`
|
|
68
|
+
${import_picocolors28.default.bold("@storybook/svelte-webpack5")} is no longer supported in Storybook 9.
|
|
69
69
|
|
|
70
|
-
You need to migrate to ${
|
|
70
|
+
You need to migrate to ${import_picocolors28.default.bold("@storybook/svelte-vite")} instead.
|
|
71
71
|
|
|
72
72
|
Please follow the setup guide for @storybook/svelte-vite:
|
|
73
|
-
${
|
|
73
|
+
${import_picocolors28.default.yellow("https://storybook.js.org/docs/get-started/frameworks/svelte-vite")}
|
|
74
74
|
|
|
75
75
|
After migrating, you can remove @storybook/svelte-webpack5 from your project and try running the upgrade command again.
|
|
76
|
-
`}}}});var block_major_version_exports={};__export(block_major_version_exports,{blocker:()=>blocker5,checkUpgrade:()=>checkUpgrade});function checkUpgrade(currentVersion,targetVersion){if(!currentVersion||!targetVersion)return"ok";let current=(0,import_semver10.parse)(currentVersion),target=(0,import_semver10.parse)(targetVersion);return!current||!target||(0,import_semver10.prerelease)(currentVersion)||(0,import_semver10.prerelease)(targetVersion)||current.major===0||target.major===0?"ok":(0,import_semver10.gt)(currentVersion,targetVersion)?"downgrade":target.major-current.major>1?"gap-too-large":"ok"}var import_cli4,
|
|
77
|
-
${
|
|
78
|
-
Your Storybook version (v${data.currentVersion}) is newer than the target release (v${
|
|
76
|
+
`}}}});var block_major_version_exports={};__export(block_major_version_exports,{blocker:()=>blocker5,checkUpgrade:()=>checkUpgrade});function checkUpgrade(currentVersion,targetVersion){if(!currentVersion||!targetVersion)return"ok";let current=(0,import_semver10.parse)(currentVersion),target=(0,import_semver10.parse)(targetVersion);return!current||!target||(0,import_semver10.prerelease)(currentVersion)||(0,import_semver10.prerelease)(targetVersion)||current.major===0||target.major===0?"ok":(0,import_semver10.gt)(currentVersion,targetVersion)?"downgrade":target.major-current.major>1?"gap-too-large":"ok"}var import_cli4,import_common23,import_picocolors29,import_semver10,import_ts_dedent25,blocker5,init_block_major_version=__esm({"src/autoblock/block-major-version.ts"(){"use strict";import_cli4=require("storybook/internal/cli"),import_common23=require("storybook/internal/common"),import_picocolors29=__toESM(require_picocolors(),1),import_semver10=require("semver"),import_ts_dedent25=require("ts-dedent");init_types();blocker5={id:"major-version-gap",async check(options){let{packageManager}=options,packageJson=await packageManager.retrievePackageJson();try{let current=(0,import_cli4.getStorybookVersionSpecifier)(packageJson);if(!current)return!1;let target=import_common23.versions.storybook,result=checkUpgrade(current,target);return result==="ok"?!1:{currentVersion:current,reason:result}}catch{return!1}},log(options,data){let coercedVersion=(0,import_semver10.coerce)(data.currentVersion);if(data.reason==="downgrade")return import_ts_dedent25.dedent`
|
|
77
|
+
${import_picocolors29.default.red("Downgrade Not Supported")}
|
|
78
|
+
Your Storybook version (v${data.currentVersion}) is newer than the target release (v${import_common23.versions.storybook}).
|
|
79
79
|
Downgrading is not supported.
|
|
80
80
|
|
|
81
81
|
For more information about upgrading and version compatibility, visit:
|
|
82
|
-
${
|
|
83
|
-
${
|
|
84
|
-
Your Storybook version (v${data.currentVersion}) is more than one major version behind the target release (v${
|
|
85
|
-
Please upgrade one major version at a time.`;if(coercedVersion){let nextMajor=(0,import_semver10.major)(coercedVersion)+1,cmd=`npx storybook@${nextMajor} upgrade`;return
|
|
82
|
+
${import_picocolors29.default.cyan("https://storybook.js.org/docs/configure/upgrading")}`;let message=import_ts_dedent25.dedent`
|
|
83
|
+
${import_picocolors29.default.red("Major Version Gap Detected")}
|
|
84
|
+
Your Storybook version (v${data.currentVersion}) is more than one major version behind the target release (v${import_common23.versions.storybook}).
|
|
85
|
+
Please upgrade one major version at a time.`;if(coercedVersion){let nextMajor=(0,import_semver10.major)(coercedVersion)+1,cmd=`npx storybook@${nextMajor} upgrade`;return import_ts_dedent25.dedent`
|
|
86
86
|
${message}
|
|
87
87
|
|
|
88
88
|
You can upgrade to version ${nextMajor} by running:
|
|
89
|
-
${
|
|
89
|
+
${import_picocolors29.default.cyan(cmd)}
|
|
90
90
|
|
|
91
91
|
For more information about upgrading, visit:
|
|
92
|
-
${
|
|
92
|
+
${import_picocolors29.default.cyan("https://storybook.js.org/docs/configure/upgrading")}`}return import_ts_dedent25.dedent`
|
|
93
93
|
${message}
|
|
94
94
|
|
|
95
95
|
For more information about upgrading, visit:
|
|
96
|
-
${
|
|
96
|
+
${import_picocolors29.default.cyan("https://storybook.js.org/docs/configure/upgrading")}`}}}});var import_common25=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_picocolors32=__toESM(require_picocolors(),1);var version="9.0.0-alpha.16";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",`*
|
|
97
97
|
* This function is used to resolve the absolute path of a package.
|
|
98
98
|
* It is needed in projects that use Yarn PnP or are set up within a monorepo.
|
|
99
99
|
`),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_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_common2.frameworkToRenderer[frameworkName]};var 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:
|
|
100
100
|
${e}
|
|
101
101
|
`),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},logger14=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`
|
|
102
102
|
Unable to find storybook config directory. Please specify your Storybook config directory with the --config-dir flag.
|
|
103
|
-
`);if(!mainConfigPath){logger14.error("Unable to find Storybook main.js config");return}let shouldAddToMain=!0;if(checkInstalled(addonName,mainConfig)&&(shouldAddToMain=!1,!yes)){logger14.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);logger14.log(`Verifying ${addonName}`);let version2=inputVersion;!version2&&isCoreAddon(addonName)&&storybookVersion&&(version2=storybookVersion),version2||(version2=await packageManager.latestVersion(addonName)),isCoreAddon(addonName)&&version2!==storybookVersion&&logger14.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(logger14.log(`Installing ${addonWithVersion}`),await packageManager.addDependencies({installAsDevDependencies:!0,writeOutputToFile:!1},[addonWithVersion]),shouldAddToMain){if(logger14.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)}try{await(0,import_common3.syncStorybookAddons)(mainConfig,previewConfigPath)}catch{}!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_fs3=require("fs"),import_promises6=require("fs/promises"),import_node_path5=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","GITEA_ACTIONS","CIRCLECI"].some(key=>key in env)?3:["TRAVIS","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
|
|
103
|
+
`);if(!mainConfigPath){logger14.error("Unable to find Storybook main.js config");return}let shouldAddToMain=!0;if(checkInstalled(addonName,mainConfig)&&(shouldAddToMain=!1,!yes)){logger14.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);logger14.log(`Verifying ${addonName}`);let version2=inputVersion;!version2&&isCoreAddon(addonName)&&storybookVersion&&(version2=storybookVersion),version2||(version2=await packageManager.latestVersion(addonName)),isCoreAddon(addonName)&&version2!==storybookVersion&&logger14.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(logger14.log(`Installing ${addonWithVersion}`),await packageManager.addDependencies({installAsDevDependencies:!0,writeOutputToFile:!1},[addonWithVersion]),shouldAddToMain){if(logger14.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)}try{await(0,import_common3.syncStorybookAddons)(mainConfig,previewConfigPath)}catch{}!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_fs3=require("fs"),import_promises6=require("fs/promises"),import_node_path5=require("path"),import_common19=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","GITEA_ACTIONS","CIRCLECI"].some(key=>key in env)?3:["TRAVIS","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
|
|
104
104
|
`:`
|
|
105
105
|
`)+postfix,endIndex=index+1,index=string.indexOf(`
|
|
106
106
|
`,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(`
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
`).map(line=>exec(line,columns,options)).join(`
|
|
114
114
|
`)}var import_cli_boxes2=__toESM(require_cli_boxes(),1),NEWLINE=`
|
|
115
115
|
`,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(`
|
|
116
|
-
`),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
|
|
116
|
+
`),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_picocolors22=__toESM(require_picocolors(),1),import_prompts5=__toESM(require("prompts"),1),import_semver6=__toESM(require("semver"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent19=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
|
|
117
117
|
\u2502`).replace(/││/g,`\u2502
|
|
118
118
|
\u2502`).replace(/│╰/g,`\u2502
|
|
119
119
|
\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(versions7){return versions7.find(v=>{let major2=import_semver2.default.major(v);if(major2===0){let minor=import_semver2.default.minor(v);if(minor===0){let patch=import_semver2.default.patch(v);return versions7.some(v2=>import_semver2.default.patch(v2)!==patch)}return versions7.some(v2=>import_semver2.default.minor(v2)!==minor)}return versions7.some(v2=>import_semver2.default.major(v2)!==major2)})}var messageDivider=`
|
|
@@ -210,70 +210,93 @@ ${err}`),info.source}let metaVariableName=csf._metaVariableName??"meta",programN
|
|
|
210
210
|
`),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
|
|
211
211
|
${indentation}// 'error' - fail CI on a11y violations
|
|
212
212
|
${indentation}// 'off' - skip a11y checks entirely`;return lines.splice(parametersLineIndex,0,comment),(0,import_common11.formatFileContent)(filePath,lines.join(`
|
|
213
|
-
`))}function shouldPreviewFileBeTransformed(source){return!(0,import_csf_tools5.loadConfig)(source).parse().getFieldNode(["parameters","a11y","test"])}var
|
|
214
|
-
|
|
215
|
-
We've detected you're using ${import_picocolors10.default.cyan("@storybook/experimental-addon-test")}, which is now available as a stable addon.
|
|
213
|
+
`))}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");var addonEssentialsRemoveDocs={id:"addon-essentials-remove-docs",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({mainConfigPath,mainConfig}){if(!mainConfigPath)return null;try{let hasEssentialsAddon=!1,hasDocsAddon=!1,hasDocsDisabled=!1;return await updateMainConfig({mainConfigPath,dryRun:!0},main=>{let addons=main.getFieldValue(["addons"])||[],addonNames=(0,import_common12.getAddonNames)(mainConfig);if(hasEssentialsAddon=addonNames.includes("@storybook/addon-essentials"),hasDocsAddon=addonNames.includes("@storybook/addon-docs"),hasEssentialsAddon){let essentialsEntry=addons.find(addon=>typeof addon=="string"?addon.includes("@storybook/addon-essentials"):addon?.name.includes("@storybook/addon-essentials"));typeof essentialsEntry=="object"&&(hasDocsDisabled=(essentialsEntry.options||{}).docs===!1)}}),hasEssentialsAddon?{hasEssentials:hasEssentialsAddon,hasDocsDisabled,hasDocsAddon}:null}catch{return null}},prompt({hasDocsDisabled}){let baseMessage=import_ts_dedent6.dedent`
|
|
214
|
+
We've detected that you have ${import_picocolors10.default.yellow("@storybook/addon-essentials")} installed.
|
|
216
215
|
|
|
217
|
-
|
|
216
|
+
In Storybook 9.0, all features from ${import_picocolors10.default.yellow("@storybook/addon-essentials")} (except docs)
|
|
217
|
+
have been moved into Storybook's core. You no longer need to install or configure them separately.
|
|
218
|
+
|
|
219
|
+
We'll remove ${import_picocolors10.default.yellow("@storybook/addon-essentials")} from your configuration and dependencies.
|
|
220
|
+
`;return hasDocsDisabled?baseMessage:import_ts_dedent6.dedent`
|
|
221
|
+
${baseMessage}
|
|
222
|
+
|
|
223
|
+
Since you were using the docs feature, we'll install ${import_picocolors10.default.yellow("@storybook/addon-docs")}
|
|
224
|
+
separately and add it to your configuration.
|
|
225
|
+
`},async run({result,dryRun,packageManager,mainConfigPath}){let{hasEssentials,hasDocsDisabled,hasDocsAddon}=result;hasEssentials&&(dryRun||(await packageManager.runPackageCommand("storybook",["remove","@storybook/addon-essentials"]),!hasDocsDisabled&&!hasDocsAddon&&await packageManager.runPackageCommand("storybook",["add","@storybook/addon-docs"])))}};var import_fs3=require("fs"),import_picocolors11=__toESM(require_picocolors(),1),import_ts_dedent7=require("ts-dedent"),logger5=console,addonExperimentalTest={id:"addon-experimental-test",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],promptType:"auto",async check({packageManager}){if(!await packageManager.getPackageVersion("@storybook/experimental-addon-test"))return null;let{globbySync}=await import("globby"),matchingFiles=globbySync(["**/.storybook/**/*.*","**/vitest.*.{js,ts,mjs,cjs}","**/vite.config.{js,ts,mjs,cjs}"],{ignore:["**/node_modules/**","**/dist/**"]}),filesWithExperimentalAddon=[];for(let file of matchingFiles)try{(0,import_fs3.readFileSync)(file,"utf-8").includes("@storybook/experimental-addon-test")&&filesWithExperimentalAddon.push(file)}catch{}return{matchingFiles:filesWithExperimentalAddon}},prompt({matchingFiles}){let fileCount=matchingFiles.length,fileList=matchingFiles.slice(0,5).map(file=>` - ${import_picocolors11.default.cyan(file)}`).join(`
|
|
226
|
+
`),hasMoreFiles=fileCount>5;return import_ts_dedent7.dedent`
|
|
227
|
+
We've detected you're using ${import_picocolors11.default.cyan("@storybook/experimental-addon-test")}, which is now available as a stable addon.
|
|
228
|
+
|
|
229
|
+
We can automatically migrate your project to use ${import_picocolors11.default.cyan("@storybook/addon-test")} instead.
|
|
218
230
|
|
|
219
231
|
This will update ${fileCount} file(s) and your package.json:
|
|
220
232
|
${fileList}${hasMoreFiles?`
|
|
221
233
|
... and ${fileCount-5} more files`:""}
|
|
222
|
-
`},async run({result:{matchingFiles},packageManager,dryRun}){for(let file of matchingFiles){let updatedContent=(0,import_fs3.readFileSync)(file,"utf-8").replace(/@storybook\/experimental-addon-test/g,"@storybook/addon-test");dryRun||(0,import_fs3.writeFileSync)(file,updatedContent,"utf-8")}if(!dryRun){let devDependencies=(await packageManager.retrievePackageJson()).devDependencies??{},storybookVersion=await packageManager.getPackageVersion("storybook"),isExperimentalAddonTestDevDependency=Object.keys(devDependencies).includes("@storybook/experimental-addon-test");await packageManager.removeDependencies({},["@storybook/experimental-addon-test"]),await packageManager.addDependencies({installAsDevDependencies:isExperimentalAddonTestDevDependency},[`@storybook/addon-test@${storybookVersion}`])}logger5.info(
|
|
223
|
-
✅ Successfully migrated from ${
|
|
234
|
+
`},async run({result:{matchingFiles},packageManager,dryRun}){for(let file of matchingFiles){let updatedContent=(0,import_fs3.readFileSync)(file,"utf-8").replace(/@storybook\/experimental-addon-test/g,"@storybook/addon-test");dryRun||(0,import_fs3.writeFileSync)(file,updatedContent,"utf-8")}if(!dryRun){let devDependencies=(await packageManager.retrievePackageJson()).devDependencies??{},storybookVersion=await packageManager.getPackageVersion("storybook"),isExperimentalAddonTestDevDependency=Object.keys(devDependencies).includes("@storybook/experimental-addon-test");await packageManager.removeDependencies({},["@storybook/experimental-addon-test"]),await packageManager.addDependencies({installAsDevDependencies:isExperimentalAddonTestDevDependency},[`@storybook/addon-test@${storybookVersion}`])}logger5.info(import_ts_dedent7.dedent`
|
|
235
|
+
✅ Successfully migrated from ${import_picocolors11.default.cyan("@storybook/experimental-addon-test")} to ${import_picocolors11.default.cyan("@storybook/addon-test")}
|
|
224
236
|
✅ Updated package.json dependency
|
|
225
237
|
✅ Updated ${matchingFiles.length} file(s)
|
|
226
|
-
`)}};var
|
|
238
|
+
`)}};var import_common13=require("storybook/internal/common"),import_picocolors12=__toESM(require_picocolors(),1),import_ts_dedent8=require("ts-dedent"),addonMdxGfmRemove={id:"addon-mdx-gfm-remove",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({mainConfigPath,mainConfig}){if(!mainConfigPath)return null;try{let hasMdxGfm=(0,import_common13.getAddonNames)(mainConfig).includes("@storybook/addon-mdx-gfm");return hasMdxGfm?{hasMdxGfm}:null}catch{return null}},prompt(){return import_ts_dedent8.dedent`
|
|
239
|
+
We've detected that you have ${import_picocolors12.default.yellow("@storybook/addon-mdx-gfm")} installed.
|
|
240
|
+
|
|
241
|
+
This package has been removed in Storybook 9.0. We'll remove it from your configuration and dependencies.
|
|
242
|
+
`},async run({packageManager}){await packageManager.runPackageCommand("storybook",["remove","@storybook/addon-mdx-gfm"])}};var import_common14=require("storybook/internal/common"),import_picocolors13=__toESM(require_picocolors(),1),import_ts_dedent9=require("ts-dedent");var addonStorysourceRemove={id:"addon-storysource-remove",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({mainConfigPath,mainConfig}){if(!mainConfigPath)return null;try{let hasStorysource=!1;return await updateMainConfig({mainConfigPath,dryRun:!0},()=>{hasStorysource=(0,import_common14.getAddonNames)(mainConfig).includes("@storybook/addon-storysource")}),hasStorysource?{hasStorysource}:null}catch{return null}},prompt(){return import_ts_dedent9.dedent`
|
|
243
|
+
We've detected that you have ${import_picocolors13.default.yellow("@storybook/addon-storysource")} installed.
|
|
244
|
+
|
|
245
|
+
This package has been removed in Storybook 9.0. We'll remove it from your configuration and dependencies.
|
|
246
|
+
|
|
247
|
+
For more information, see the migration guide:
|
|
248
|
+
https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#migration-from-storybookaddon-storysource-to-code-panel
|
|
249
|
+
`},async run({result,packageManager}){await packageManager.runPackageCommand("storybook",["remove","@storybook/addon-storysource"])}};var import_promises2=require("fs/promises"),import_common15=require("storybook/internal/common"),import_picocolors14=__toESM(require_picocolors(),1),import_prompts3=__toESM(require("prompts"),1),import_ts_dedent10=require("ts-dedent");var consolidatedPackages={"@storybook/channels":"storybook/internal/channels","@storybook/client-logger":"storybook/internal/client-logger","@storybook/core-common":"storybook/internal/common","@storybook/core-events":"storybook/internal/core-events","@storybook/csf-tools":"storybook/internal/csf-tools","@storybook/docs-tools":"storybook/internal/docs-tools","@storybook/node-logger":"storybook/internal/node-logger","@storybook/preview-api":"storybook/preview-api","@storybook/router":"storybook/internal/router","@storybook/telemetry":"storybook/internal/telemetry","@storybook/theming":"storybook/theming","@storybook/types":"storybook/internal/types","@storybook/manager-api":"storybook/manager-api","@storybook/manager":"storybook/internal/manager","@storybook/preview":"storybook/internal/preview","@storybook/core-server":"storybook/internal/core-server","@storybook/builder-manager":"storybook/internal/builder-manager","@storybook/components":"storybook/internal/components","@storybook/test":"storybook/test","@storybook/addon-actions":"storybook/actions","@storybook/addon-controls":"storybook/internal/controls","@storybook/addon-toolbars":"storybook/internal/toolbars","@storybook/addon-highlight":"storybook/highlight","@storybook/addon-measure":"storybook/measure","@storybook/addon-outline":"storybook/outline","@storybook/addon-backgrounds":"storybook/backgrounds","@storybook/addon-viewport":"storybook/viewport","@storybook/experimental-nextjs-vite":"@storybook/nextjs-vite","@storybook/instrumenter":"storybook/internal/instrumenter"};function transformPackageJson(content){let packageJson=JSON.parse(content),hasChanges=!1,packagesToAdd=new Set,depTypes=["dependencies","devDependencies"],storybookVersion=null,storybookDepType=null;for(let depType of depTypes)if(packageJson[depType]?.storybook){storybookVersion=packageJson[depType].storybook,storybookDepType=depType;break}for(let depType of depTypes)if(packageJson[depType]){for(let[dep]of Object.entries(packageJson[depType]))if(dep in consolidatedPackages){let newPackage=consolidatedPackages[dep];newPackage.startsWith("storybook/")||packagesToAdd.add(newPackage),delete packageJson[depType][dep],hasChanges=!0}}if(packagesToAdd.size>0){let version2=storybookVersion??import_common15.versions["@storybook/nextjs-vite"],depType=storybookDepType??"devDependencies";packageJson[depType]=packageJson[depType]||{};for(let pkg of packagesToAdd)packageJson[depType][pkg]=version2;hasChanges=!0}return hasChanges?JSON.stringify(packageJson,null,2):null}function transformImports(source){let hasChanges=!1,transformed=source;for(let[from,to]of Object.entries(consolidatedPackages)){let regex2=new RegExp(`(['"])${from}(/.*)?\\1`,"g");regex2.test(transformed)&&(transformed=transformed.replace(regex2,`$1${to}$2$1`),hasChanges=!0)}return hasChanges?transformed:null}var transformPackageJsonFiles=async(files,dryRun)=>{let errors=[],{default:pLimit}=await import("p-limit"),limit=pLimit(10);return await Promise.all(files.map(file=>limit(async()=>{try{let contents=await(0,import_promises2.readFile)(file,"utf-8"),transformed=transformPackageJson(contents);!dryRun&&transformed&&await(0,import_promises2.writeFile)(file,transformed)}catch(error){errors.push({file,error})}}))),errors},transformImportFiles=async(files,dryRun)=>{let errors=[],{default:pLimit}=await import("p-limit"),limit=pLimit(10);return await Promise.all(files.map(file=>limit(async()=>{try{let contents=await(0,import_promises2.readFile)(file,"utf-8"),transformed=transformImports(contents);!dryRun&&transformed&&await(0,import_promises2.writeFile)(file,transformed)}catch(error){errors.push({file,error})}}))),errors},consolidatedImports={id:"consolidated-imports",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],check:async()=>{let projectRoot=(0,import_common15.getProjectRoot)(),globby=(await import("globby")).globby,packageJsonFiles=await globby(["**/package.json"],{...(0,import_common15.commonGlobOptions)(""),ignore:["**/node_modules/**"],cwd:projectRoot,gitignore:!0,absolute:!0}),consolidatedDeps=new Set,affectedPackageJSONFiles=new Set;return await Promise.all(packageJsonFiles.map(async file=>{let contents=await(0,import_promises2.readFile)(file,"utf-8"),packageJson=JSON.parse(contents),allDeps={...packageJson.dependencies||{},...packageJson.devDependencies||{}},hasConsolidatedDeps=!1;Object.keys(allDeps).forEach(dep=>{dep in consolidatedPackages&&(consolidatedDeps.add(dep),hasConsolidatedDeps=!0)}),hasConsolidatedDeps&&affectedPackageJSONFiles.add(file)})),consolidatedDeps.size===0?null:{consolidatedDeps,packageJsonFiles:Array.from(affectedPackageJSONFiles)}},prompt:result=>import_ts_dedent10.dedent`
|
|
227
250
|
Found package.json files that contain consolidated or renamed Storybook packages that need to be updated:
|
|
228
251
|
${result.packageJsonFiles.map(file=>`- ${file}`).join(`
|
|
229
252
|
`)}
|
|
230
253
|
|
|
231
254
|
We will automatically rename the following packages:
|
|
232
|
-
${Array.from(result.consolidatedDeps).map(dep=>`- ${
|
|
255
|
+
${Array.from(result.consolidatedDeps).map(dep=>`- ${import_picocolors14.default.red(dep)} -> ${import_picocolors14.default.cyan(consolidatedPackages[dep])}`).join(`
|
|
233
256
|
`)}
|
|
234
257
|
|
|
235
|
-
These packages have been renamed or consolidated into the main ${
|
|
236
|
-
The main ${
|
|
258
|
+
These packages have been renamed or consolidated into the main ${import_picocolors14.default.cyan("storybook")} package and should be removed.
|
|
259
|
+
The main ${import_picocolors14.default.cyan("storybook")} package will be added to devDependencies if not already present.
|
|
237
260
|
|
|
238
261
|
Would you like to:
|
|
239
262
|
1. Update these package.json files
|
|
240
263
|
2. Scan your codebase and update any imports from these updated packages
|
|
241
264
|
|
|
242
265
|
This will ensure your project is properly updated to use the new updated package structure and to use the latest package names.
|
|
243
|
-
`,run:async options=>{let{result,dryRun=!1}=options,{packageJsonFiles}=result,errors=[],packageJsonErrors=await transformPackageJsonFiles(packageJsonFiles,dryRun);errors.push(...packageJsonErrors);let projectRoot=(0,
|
|
266
|
+
`,run:async options=>{let{result,dryRun=!1}=options,{packageJsonFiles}=result,errors=[],packageJsonErrors=await transformPackageJsonFiles(packageJsonFiles,dryRun);errors.push(...packageJsonErrors);let projectRoot=(0,import_common15.getProjectRoot)(),defaultGlob="**/*.{mjs,cjs,js,jsx,ts,tsx,mdx}",{glob}=await(0,import_prompts3.default)({type:"text",name:"glob",message:"Enter a custom glob pattern to scan (or press enter to use default):",initial:defaultGlob}),globby=(await import("globby")).globby,sourceFiles=await globby([glob],{...(0,import_common15.commonGlobOptions)(""),ignore:["**/node_modules/**"],dot:!0,cwd:projectRoot,absolute:!0}),importErrors=await transformImportFiles(sourceFiles,dryRun);if(errors.push(...importErrors),errors.length>0)throw new Error(`Failed to process ${errors.length} files:
|
|
244
267
|
${errors.map(({file,error})=>`- ${file}: ${error.message}`).join(`
|
|
245
|
-
`)}`);!dryRun&&result.packageJsonFiles.length>0&&await options.packageManager.installDependencies()}};var import_cli=require("storybook/internal/cli"),
|
|
268
|
+
`)}`);!dryRun&&result.packageJsonFiles.length>0&&await options.packageManager.installDependencies()}};var import_cli=require("storybook/internal/cli"),import_picocolors15=__toESM(require_picocolors(),1),import_ts_dedent11=require("ts-dedent"),logger6=console,eslintPlugin={id:"eslintPlugin",versionRange:["*","*"],async check({packageManager}){let{hasEslint,isStorybookPluginInstalled}=await(0,import_cli.extractEslintInfo)(packageManager);if(isStorybookPluginInstalled||!hasEslint)return null;let eslintFile=null,unsupportedExtension;try{eslintFile=(0,import_cli.findEslintFile)()}catch(err){unsupportedExtension=String(err)}return!eslintFile||!unsupportedExtension?(logger6.warn("Unable to find .eslintrc config file, skipping"),null):{eslintFile,unsupportedExtension}},prompt(){return import_ts_dedent11.dedent`
|
|
246
269
|
We've detected you are not using our eslint-plugin.
|
|
247
270
|
|
|
248
271
|
In order to have the best experience with Storybook and follow best practices, we advise you to install eslint-plugin-storybook.
|
|
249
272
|
|
|
250
|
-
More info: ${
|
|
251
|
-
`},async run({result:{eslintFile,unsupportedExtension},packageManager,dryRun,skipInstall}){let deps=["eslint-plugin-storybook"];if(logger6.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall},deps),!dryRun&&unsupportedExtension){logger6.info(
|
|
273
|
+
More info: ${import_picocolors15.default.yellow("https://github.com/storybookjs/eslint-plugin-storybook#readme")}
|
|
274
|
+
`},async run({result:{eslintFile,unsupportedExtension},packageManager,dryRun,skipInstall}){let deps=["eslint-plugin-storybook"];if(logger6.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall},deps),!dryRun&&unsupportedExtension){logger6.info(import_ts_dedent11.dedent`
|
|
252
275
|
⚠️ The plugin was successfully installed but failed to configure.
|
|
253
276
|
|
|
254
277
|
Found an eslint config file with an unsupported automigration format: .eslintrc.${unsupportedExtension}.
|
|
255
278
|
The supported formats for this automigration are: ${import_cli.SUPPORTED_ESLINT_EXTENSIONS.join(", ")}.
|
|
256
279
|
|
|
257
280
|
Please refer to https://github.com/storybookjs/eslint-plugin-storybook#usage to finish setting up the plugin manually.
|
|
258
|
-
`);return}dryRun||await(0,import_cli.configureEslintPlugin)(eslintFile,packageManager)}};var import_promises3=require("fs/promises"),import_csf_tools6=require("storybook/internal/csf-tools"),
|
|
259
|
-
The ${
|
|
260
|
-
and has been renamed to ${
|
|
281
|
+
`);return}dryRun||await(0,import_cli.configureEslintPlugin)(eslintFile,packageManager)}};var import_promises3=require("fs/promises"),import_csf_tools6=require("storybook/internal/csf-tools"),import_picocolors16=__toESM(require_picocolors(),1),import_ts_dedent12=require("ts-dedent"),MIGRATION="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#previewjs-globals-renamed-to-initialglobals",initialGlobals={id:"initial-globals",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({previewConfigPath}){if(!previewConfigPath)return null;let previewConfig=(0,import_csf_tools6.loadConfig)((await(0,import_promises3.readFile)(previewConfigPath)).toString()).parse(),globals=previewConfig.getFieldNode(["globals"]);return globals?{globals,previewConfig,previewConfigPath}:null},prompt({previewConfigPath}){return import_ts_dedent12.dedent`
|
|
282
|
+
The ${import_picocolors16.default.cyan("globals")} setting in ${import_picocolors16.default.cyan(previewConfigPath)} was removed
|
|
283
|
+
and has been renamed to ${import_picocolors16.default.cyan("initialGlobals")}.
|
|
261
284
|
|
|
262
|
-
Learn more: ${
|
|
285
|
+
Learn more: ${import_picocolors16.default.yellow(MIGRATION)}
|
|
263
286
|
|
|
264
|
-
Rename ${
|
|
265
|
-
`},async run({dryRun,result}){result.previewConfig.removeField(["globals"]),result.previewConfig.setFieldNode(["initialGlobals"],result.globals),dryRun||await(0,import_promises3.writeFile)(result.previewConfigPath,(0,import_csf_tools6.formatConfig)(result.previewConfig))}};var
|
|
266
|
-
${
|
|
287
|
+
Rename ${import_picocolors16.default.cyan("globals")} to ${import_picocolors16.default.cyan("initalGlobals")}?
|
|
288
|
+
`},async run({dryRun,result}){result.previewConfig.removeField(["globals"]),result.previewConfig.setFieldNode(["initialGlobals"],result.globals),dryRun||await(0,import_promises3.writeFile)(result.previewConfigPath,(0,import_csf_tools6.formatConfig)(result.previewConfig))}};var import_common16=require("storybook/internal/common"),import_picocolors17=__toESM(require_picocolors(),1),import_ts_dedent13=require("ts-dedent"),removeAddonInteractions={id:"removeAddonInteractions",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({mainConfig}){return(0,import_common16.getAddonNames)(mainConfig).some(addon=>addon.includes("@storybook/addon-interactions"))?{}:null},prompt(){return import_ts_dedent13.dedent`
|
|
289
|
+
${import_picocolors17.default.magenta("@storybook/addon-interactions")} has been consolidated into Storybook core.
|
|
267
290
|
|
|
268
291
|
We'll remove it from your dependencies and unregister it from your Storybook configuration.
|
|
269
292
|
The functionality will continue to work as before, but now it's built into Storybook core.
|
|
270
|
-
`},async run({packageManager}){await packageManager.runPackageCommand("storybook",["remove","@storybook/addon-interactions"])}};var import_promises4=require("fs/promises"),
|
|
293
|
+
`},async run({packageManager}){await packageManager.runPackageCommand("storybook",["remove","@storybook/addon-interactions"])}};var import_promises4=require("fs/promises"),import_common17=require("storybook/internal/common"),import_prompts4=__toESM(require("prompts"),1),import_ts_dedent14=require("ts-dedent"),getAllDependencies=packageJson=>Object.keys({...packageJson.dependencies||{},...packageJson.devDependencies||{}}),detectFrameworks=dependencies=>Object.keys(import_common17.frameworkPackages).filter(pkg=>dependencies.includes(pkg)),detectRenderers=dependencies=>Object.keys(import_common17.rendererPackages).filter(pkg=>dependencies.includes(pkg)),replaceImports=(source,renderer,framework)=>{let regex2=new RegExp(`(['"])${renderer}(['"])`,"g");return regex2.test(source)?source.replace(regex2,`$1${framework}$2`):null},transformSourceFiles=async(files,renderer,framework,dryRun)=>{let errors=[],{default:pLimit}=await import("p-limit"),limit=pLimit(10);return await Promise.all(files.map(file=>limit(async()=>{try{let contents=await(0,import_promises4.readFile)(file,"utf-8"),transformed=replaceImports(contents,renderer,framework);!dryRun&&transformed&&await(0,import_promises4.writeFile)(file,transformed)}catch(error){errors.push({file,error})}}))),errors},removeRenderersInPackageJson=async(packageJsonPath,renderers,dryRun)=>{try{let content=await(0,import_promises4.readFile)(packageJsonPath,"utf-8"),packageJson=JSON.parse(content),hasChanges=!1;return renderers.forEach(renderer=>{packageJson.dependencies?.[renderer]&&(delete packageJson.dependencies[renderer],hasChanges=!0),packageJson.devDependencies?.[renderer]&&(delete packageJson.devDependencies[renderer],hasChanges=!0)}),!dryRun&&hasChanges&&await(0,import_promises4.writeFile)(packageJsonPath,JSON.stringify(packageJson,null,2)),hasChanges}catch(error){throw new Error(`Failed to update package.json: ${error}`)}},selectFramework=async frameworks=>frameworks.length===1?frameworks[0]:(await(0,import_prompts4.default)({type:"select",name:"framework",message:"Which framework would you like to use?",choices:frameworks.map(framework=>({title:framework,value:framework}))})).framework||null,checkPackageJson=async packageJsonPath=>{let content=await(0,import_promises4.readFile)(packageJsonPath,"utf-8"),packageJson=JSON.parse(content),dependencies=getAllDependencies(packageJson),frameworks=detectFrameworks(dependencies);if(frameworks.length===0)return null;let renderers=detectRenderers(dependencies);return renderers.length===0?null:{frameworks,renderers}},rendererToFramework={id:"renderer-to-framework",versionRange:["<9.0.0","^9.0.0-0"],promptType:"auto",async check(){let projectRoot=await(0,import_common17.getProjectRoot)(),{globby}=await import("globby"),packageJsonFiles=await globby(["**/package.json"],{...(0,import_common17.commonGlobOptions)(""),ignore:["**/node_modules/**"],cwd:projectRoot,gitignore:!0,absolute:!0}),validResults=(await Promise.all(packageJsonFiles.map(async file=>{try{return await checkPackageJson(file)}catch{return null}}))).filter(r=>r!==null&&r.renderers.length>0);return validResults.length===0?null:{frameworks:[...new Set(validResults.flatMap(r=>r.frameworks))],renderers:[...new Set(validResults.flatMap(r=>r.renderers))],packageJsonFiles:packageJsonFiles.filter((_,i)=>validResults[i]!==null)}},prompt(result){return result.frameworks.length>1?import_ts_dedent14.dedent`
|
|
271
294
|
As part of Storybook's evolution, we're moving from renderer-based to framework-based configuration.
|
|
272
295
|
We've detected multiple framework packages in your project: ${result.frameworks.join(", ")}.
|
|
273
296
|
You will be prompted to select which framework to use for your Storybook configuration.
|
|
274
297
|
This will update your imports and dependencies to use the framework-specific package.
|
|
275
298
|
Would you like to proceed with the migration?
|
|
276
|
-
`:
|
|
299
|
+
`:import_ts_dedent14.dedent`
|
|
277
300
|
As part of Storybook's evolution, we're moving from renderer-based to framework-based configuration.
|
|
278
301
|
We've detected renderer packages (${result.renderers.join(", ")}) that can be replaced with the framework package "${result.frameworks[0]}".
|
|
279
302
|
|
|
@@ -282,65 +305,65 @@ ${errors.map(({file,error})=>`- ${file}: ${error.message}`).join(`
|
|
|
282
305
|
2. Remove the renderer packages from your package.json
|
|
283
306
|
3. Install the necessary framework dependencies
|
|
284
307
|
Would you like to proceed with these changes?
|
|
285
|
-
`},async run(options){let{result,dryRun=!1}=options,selectedFramework=await selectFramework(result.frameworks);if(!selectedFramework){console.log("Migration cancelled: No framework selected");return}let defaultGlob="**/*.{mjs,cjs,js,jsx,ts,tsx}",{glob}=await(0,import_prompts4.default)({type:"text",name:"glob",message:"Enter a custom glob pattern to scan (or press enter to use default):",initial:defaultGlob}),projectRoot=await(0,
|
|
286
|
-
`).filter(Boolean)}catch{return[]}},rnstorybookConfig={id:"rnstorybook-config",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({packageManager,mainConfigPath}){if(!(await packageManager.getAllDependencies())["@storybook/react-native"])return null;let projectDir=mainConfigPath?(0,import_node_path4.join)(mainConfigPath,"..",".."):process.cwd(),storybookDir=(0,import_node_path4.join)(projectDir,".storybook"),rnStorybookDir=(0,import_node_path4.join)(projectDir,".rnstorybook"),{globby}=await import("globby"),requiresFiles=await globby((0,import_node_path4.join)(storybookDir,"storybook.requires.*"));if((0,import_node_fs2.existsSync)(storybookDir)&&requiresFiles.length>0&&!(0,import_node_fs2.existsSync)(rnStorybookDir)){let dotStorybookReferences=await getDotStorybookReferences();return{storybookDir,rnStorybookDir,dotStorybookReferences}}return null},prompt({dotStorybookReferences}){let references=dotStorybookReferences.length>0?
|
|
287
|
-
We will update the following files to reference ${
|
|
288
|
-
${dotStorybookReferences.map(ref=>
|
|
308
|
+
`},async run(options){let{result,dryRun=!1}=options,selectedFramework=await selectFramework(result.frameworks);if(!selectedFramework){console.log("Migration cancelled: No framework selected");return}let defaultGlob="**/*.{mjs,cjs,js,jsx,ts,tsx}",{glob}=await(0,import_prompts4.default)({type:"text",name:"glob",message:"Enter a custom glob pattern to scan (or press enter to use default):",initial:defaultGlob}),projectRoot=await(0,import_common17.getProjectRoot)(),globby=(await import("globby")).globby,sourceFiles=await globby([glob],{...(0,import_common17.commonGlobOptions)(""),ignore:["**/node_modules/**"],dot:!0,cwd:projectRoot,absolute:!0});await Promise.all(result.renderers.map(renderer=>transformSourceFiles(sourceFiles,renderer,selectedFramework,dryRun))),await Promise.all(result.packageJsonFiles.map(file=>removeRenderersInPackageJson(file,result.renderers,dryRun))),await options.packageManager.installDependencies()}};var import_node_fs2=require("fs"),import_promises5=require("fs/promises"),import_node_path4=require("path"),import_picocolors18=__toESM(require_picocolors(),1),import_ts_dedent15=require("ts-dedent");async function renameInFile(filePath,oldText,newText){try{let updatedContent=(await(0,import_promises5.readFile)(filePath,"utf8")).replaceAll(oldText,newText);await(0,import_promises5.writeFile)(filePath,updatedContent,"utf8")}catch(error){console.error(`Error updating references in ${filePath}:`,error)}}var getDotStorybookReferences=async()=>{try{let{$}=await import("execa"),{stdout}=await $`git grep -l \\.storybook`;return stdout.split(`
|
|
309
|
+
`).filter(Boolean)}catch{return[]}},rnstorybookConfig={id:"rnstorybook-config",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],async check({packageManager,mainConfigPath}){if(!(await packageManager.getAllDependencies())["@storybook/react-native"])return null;let projectDir=mainConfigPath?(0,import_node_path4.join)(mainConfigPath,"..",".."):process.cwd(),storybookDir=(0,import_node_path4.join)(projectDir,".storybook"),rnStorybookDir=(0,import_node_path4.join)(projectDir,".rnstorybook"),{globby}=await import("globby"),requiresFiles=await globby((0,import_node_path4.join)(storybookDir,"storybook.requires.*"));if((0,import_node_fs2.existsSync)(storybookDir)&&requiresFiles.length>0&&!(0,import_node_fs2.existsSync)(rnStorybookDir)){let dotStorybookReferences=await getDotStorybookReferences();return{storybookDir,rnStorybookDir,dotStorybookReferences}}return null},prompt({dotStorybookReferences}){let references=dotStorybookReferences.length>0?import_ts_dedent15.dedent`
|
|
310
|
+
We will update the following files to reference ${import_picocolors18.default.yellow(".rnstorybook")}:
|
|
311
|
+
${dotStorybookReferences.map(ref=>import_picocolors18.default.cyan("- "+ref)).join(`
|
|
289
312
|
`)}
|
|
290
|
-
`.trim():
|
|
291
|
-
Oddly, we did not find any source files that reference the ${
|
|
292
|
-
If they exist, please update them by hand to reference ${
|
|
293
|
-
`.trim();return
|
|
294
|
-
In Storybook 9, React Native projects use the ${
|
|
295
|
-
configuration instead of ${
|
|
313
|
+
`.trim():import_ts_dedent15.dedent`
|
|
314
|
+
Oddly, we did not find any source files that reference the ${import_picocolors18.default.yellow(".storybook")} directory.
|
|
315
|
+
If they exist, please update them by hand to reference ${import_picocolors18.default.yellow(".rnstorybook")} instead.
|
|
316
|
+
`.trim();return import_ts_dedent15.dedent`
|
|
317
|
+
In Storybook 9, React Native projects use the ${import_picocolors18.default.yellow(".rnstorybook")} directory for
|
|
318
|
+
configuration instead of ${import_picocolors18.default.yellow(".storybook")}.
|
|
296
319
|
|
|
297
320
|
${references}
|
|
298
321
|
|
|
299
|
-
More info: ${
|
|
322
|
+
More info: ${import_picocolors18.default.cyan("https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-native-config-dir-renamed")}
|
|
300
323
|
|
|
301
|
-
Would you like to automatically move your config files to the new location?`},async run({result:{storybookDir,rnStorybookDir,dotStorybookReferences},dryRun}){dryRun||(await Promise.all(dotStorybookReferences.map(async ref=>{await renameInFile(ref,".storybook",".rnstorybook")})),await(0,import_promises5.rename)(storybookDir,rnStorybookDir))}};var
|
|
324
|
+
Would you like to automatically move your config files to the new location?`},async run({result:{storybookDir,rnStorybookDir,dotStorybookReferences},dryRun}){dryRun||(await Promise.all(dotStorybookReferences.map(async ref=>{await renameInFile(ref,".storybook",".rnstorybook")})),await(0,import_promises5.rename)(storybookDir,rnStorybookDir))}};var import_common18=require("storybook/internal/common"),import_picocolors19=__toESM(require_picocolors(),1),import_semver5=require("semver"),import_ts_dedent16=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_common18.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_semver5.gt)(afterVersion,beforeVersion));return upgradablePackages.length>0?{upgradable:upgradablePackages}:null},prompt({upgradable}){return import_ts_dedent16.dedent`
|
|
302
325
|
You're upgrading to the latest version of Storybook. We recommend upgrading the following packages:
|
|
303
|
-
${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,
|
|
326
|
+
${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,import_picocolors19.cyan)(packageName)}: ${(0,import_picocolors19.cyan)(beforeVersion)} => ${(0,import_picocolors19.cyan)(afterVersion)}`).join(`
|
|
304
327
|
`)}
|
|
305
328
|
|
|
306
329
|
After upgrading, we will run the dedupe command, which could possibly have effects on dependencies that are not Storybook related.
|
|
307
330
|
see: https://docs.npmjs.com/cli/commands/npm-dedupe
|
|
308
331
|
|
|
309
332
|
Do you want to proceed (upgrade the detected packages)?
|
|
310
|
-
`},async run({result:{upgradable},packageManager,dryRun}){if(dryRun){console.log(
|
|
333
|
+
`},async run({result:{upgradable},packageManager,dryRun}){if(dryRun){console.log(import_ts_dedent16.dedent`
|
|
311
334
|
We would have upgrade the following:
|
|
312
335
|
${upgradable.map(({packageName,afterVersion,beforeVersion})=>`${packageName}: ${beforeVersion} => ${afterVersion}`).join(`
|
|
313
336
|
`)}
|
|
314
|
-
`);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(
|
|
315
|
-
We upgraded ${(0,
|
|
316
|
-
${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,
|
|
337
|
+
`);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_dedent16.dedent`
|
|
338
|
+
We upgraded ${(0,import_picocolors19.yellow)(upgradable.length)} packages:
|
|
339
|
+
${upgradable.map(({packageName,afterVersion,beforeVersion})=>`- ${(0,import_picocolors19.cyan)(packageName)}: ${(0,import_picocolors19.cyan)(beforeVersion)} => ${(0,import_picocolors19.cyan)(afterVersion)}`).join(`
|
|
317
340
|
`)}
|
|
318
|
-
`)}console.log()}};var import_cli2=require("storybook/internal/cli"),import_csf_tools7=require("storybook/internal/csf-tools"),
|
|
341
|
+
`)}console.log()}};var import_cli2=require("storybook/internal/cli"),import_csf_tools7=require("storybook/internal/csf-tools"),import_picocolors20=__toESM(require_picocolors(),1),import_ts_dedent17=require("ts-dedent");var wrapRequire={id:"wrap-require",versionRange:["*","*"],async check({packageManager,storybookVersion,mainConfigPath}){let isStorybookInMonorepo=await packageManager.isStorybookInMonorepo(),isPnp=await(0,import_cli2.detectPnp)();if(!mainConfigPath)return null;let config=await(0,import_csf_tools7.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_picocolors20.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent17.dedent`We have detected that you're using ${sbFormatted} in a ${isStorybookInMonorepo?"monorepo":"PnP"} project.
|
|
319
342
|
For Storybook to work correctly, some fields in your main config must be updated. We can do this for you automatically.
|
|
320
343
|
|
|
321
|
-
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=[eslintPlugin,wrapRequire,upgradeStorybookRelatedDependencies,initialGlobals,addonA11yAddonTest,consolidatedImports,addonExperimentalTest,rnstorybookConfig,removeAddonInteractions,rendererToFramework];var commandFixes=[csfFactories];var
|
|
344
|
+
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=[eslintPlugin,wrapRequire,addonMdxGfmRemove,addonStorysourceRemove,upgradeStorybookRelatedDependencies,initialGlobals,addonA11yAddonTest,consolidatedImports,addonExperimentalTest,rnstorybookConfig,removeAddonInteractions,rendererToFramework,addonEssentialsRemoveDocs];var commandFixes=[csfFactories];var import_picocolors21=__toESM(require_picocolors(),1),import_ts_dedent18=require("ts-dedent");var messageDivider2=`
|
|
322
345
|
|
|
323
346
|
`,segmentDivider=`
|
|
324
347
|
|
|
325
348
|
\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
|
|
326
349
|
|
|
327
|
-
`;function getGlossaryMessages(fixSummary,fixResults,logFile){let messages=[];return fixSummary.succeeded.length>0&&(messages.push(
|
|
350
|
+
`;function getGlossaryMessages(fixSummary,fixResults,logFile){let messages=[];return fixSummary.succeeded.length>0&&(messages.push(import_picocolors21.default.bold("Successful migrations:")),messages.push(fixSummary.succeeded.map(m=>import_picocolors21.default.green(m)).join(", "))),Object.keys(fixSummary.failed).length>0&&(messages.push(import_picocolors21.default.bold("Failed migrations:")),messages.push(Object.entries(fixSummary.failed).map(([id,error])=>`${import_picocolors21.default.bold(import_picocolors21.default.red(id))}:
|
|
328
351
|
${error}`).join(`
|
|
329
|
-
`)),messages.push(`You can find the full logs in ${
|
|
352
|
+
`)),messages.push(`You can find the full logs in ${import_picocolors21.default.cyan(logFile)}`)),fixSummary.manual.length>0&&(messages.push(import_picocolors21.default.bold("Manual migrations:")),messages.push(fixSummary.manual.map(m=>fixResults[m]==="manual_succeeded"?import_picocolors21.default.green(m):import_picocolors21.default.blue(m)).join(", "))),fixSummary.skipped.length>0&&(messages.push(import_picocolors21.default.bold("Skipped migrations:")),messages.push(fixSummary.skipped.map(m=>import_picocolors21.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_dedent18.dedent`If you'd like to run the migrations again, you can do so by running '${import_picocolors21.default.cyan("npx storybook automigrate")}'
|
|
330
353
|
|
|
331
354
|
The automigrations try to migrate common patterns in your project, but might not contain everything needed to migrate to the latest version of Storybook.
|
|
332
355
|
|
|
333
|
-
Please check the changelog and migration guide for manual migrations and more information: ${
|
|
334
|
-
And reach out on Discord if you need help: ${
|
|
335
|
-
`);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 logger7=console,LOG_FILE_NAME2="migration-storybook.log",LOG_FILE_PATH2=(0,import_node_path5.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,
|
|
336
|
-
`);console.log(),logger7.info(
|
|
356
|
+
Please check the changelog and migration guide for manual migrations and more information: ${import_picocolors21.default.yellow("https://storybook.js.org/docs/migration-guide")}
|
|
357
|
+
And reach out on Discord if you need help: ${import_picocolors21.default.yellow("https://discord.gg/storybook")}
|
|
358
|
+
`);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 logger7=console,LOG_FILE_NAME2="migration-storybook.log",LOG_FILE_PATH2=(0,import_node_path5.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_common19.temporaryFile)({name:LOG_FILE_NAME2});let logStream=(0,import_node_fs3.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_picocolors22.default.yellow(f.id)).map(x=>`- ${x}`).join(`
|
|
359
|
+
`);console.log(),logger7.info(import_ts_dedent19.dedent`
|
|
337
360
|
The following migrations are available:
|
|
338
361
|
${availableFixes}
|
|
339
|
-
`)},doAutomigrate=async options=>{let packageManager=
|
|
362
|
+
`)},doAutomigrate=async options=>{let packageManager=import_common19.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 logger7.info(`\u{1F50E} Running migration ${import_picocolors22.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 logger7.info(`\u{1F4ED} No migrations found for ${import_picocolors22.default.magenta(fixId)}.`),logAvailableMigrations(),null;await augmentLogsToFile2(),logger7.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_promises6.rename)(TEMP_LOG_FILE_PATH2,(0,import_node_path5.join)(process.cwd(),LOG_FILE_NAME2)):await(0,import_promises6.rm)(TEMP_LOG_FILE_PATH2,{recursive:!0,force:!0}),!hideMigrationSummary){let installationMetadata=await packageManager.findInstallations(["@storybook/*","storybook"]);logger7.info(),logger7.info(getMigrationSummary({fixResults,fixSummary,logFile:LOG_FILE_PATH2,installationMetadata})),logger7.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_semver6.default.satisfies(beforeVersion,f.versionRange[0],{includePrerelease:!0})&&import_semver6.default.satisfies(storybookVersion,f.versionRange[1],{includePrerelease:!0})||!isUpgrade)&&(result=await f.check({packageManager,configDir,rendererPackage,mainConfig,storybookVersion,previewConfigPath,mainConfigPath}))}catch(error){logger7.info(`\u26A0\uFE0F failed to check fix ${import_picocolors22.default.bold(f.id)}`),error instanceof Error&&(logger7.error(`
|
|
340
363
|
${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";logger7.info(`
|
|
341
|
-
\u{1F50E} found a '${
|
|
364
|
+
\u{1F50E} found a '${import_picocolors22.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"}};logger7.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),logger7.info();let{shouldContinue}=await(0,import_prompts5.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_prompts5.default)({type:"confirm",name:"fix",message:`Do you want to run the '${import_picocolors22.default.cyan(f.id)}' migration on your project?`,initial:f.promptDefaultValue??!0},{onCancel:()=>{throw new Error}}):promptType==="notification"&&(runAnswer=await(0,import_prompts5.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_invariant.default)(runAnswer,"runAnswer must be defined if not promptOnly"),runAnswer.fix)try{(0,import_tiny_invariant.default)(typeof f.run=="function","run method should be available in fix."),(0,import_tiny_invariant.default)(mainConfigPath,"Main config path should be defined to run migration."),await f.run({result,packageManager,dryRun,mainConfigPath,previewConfigPath,packageJson,mainConfig,skipInstall}),logger7.info(`\u2705 ran ${import_picocolors22.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",logger7.info(`\u274C error when running ${import_picocolors22.default.cyan(f.id)} migration`),logger7.info(error),logger7.info()}else fixResults[f.id]="skipped",fixSummary.skipped.push(f.id)}else fixResults[f.id]=fixResults[f.id]||"unnecessary"}return{fixResults,fixSummary}}var import_promises7=require("fs/promises"),import_node_path6=require("path"),import_node_logger=require("storybook/internal/node-logger"),import_cross_spawn=require("cross-spawn"),import_picocolors23=__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(`
|
|
342
365
|
> ${command2}
|
|
343
|
-
`);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(
|
|
366
|
+
`);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_picocolors23.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_promises7.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_path6.basename)(target);if(!local){let reprosDir=(0,import_node_path6.join)(storybookDir,"../storybook-repros");import_node_logger.logger.info(`Ensuring directory ${reprosDir}`),await(0,import_promises7.mkdir)(reprosDir,{recursive:!0}),import_node_logger.logger.info(`Cloning ${target}`),await exec2(`git clone ${target}`,{cwd:reprosDir}),reproName=(0,import_node_path6.basename)(target,(0,import_node_path6.extname)(target)),reproDir=(0,import_node_path6.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_promises7.readFile)((0,import_node_path6.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_promises7.writeFile)((0,import_node_path6.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_cli3=require("storybook/internal/cli"),import_common20=require("storybook/internal/common"),import_codemod2=require("@storybook/codemod"),logger9=console;async function migrate(migration,{glob,dryRun,list,rename:rename4,parser,configDir:userSpecifiedConfigDir}){if(list)(0,import_codemod2.listCodemods)().forEach(key=>logger9.log(key));else if(migration)await(0,import_codemod2.runCodemod)(migration,{glob,dryRun,logger:logger9,rename:rename4,parser});else throw new Error("Migrate: please specify a migration name or --list")}var import_node_fs4=require("fs"),import_promises8=require("fs/promises"),import_node_path7=require("path"),import_common21=require("storybook/internal/common"),import_common22=require("storybook/internal/common");var import_giget=require("giget"),import_picocolors24=__toESM(require_picocolors(),1),import_prompts6=__toESM(require("prompts"),1),import_semver7=require("semver"),import_tiny_invariant2=__toESM(require("tiny-invariant"),1),import_ts_dedent20=require("ts-dedent");var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:`
|
|
344
367
|
npx create-react-app {{beforeDir}} && cd {{beforeDir}} && jq '.browserslist.production[0] = ">0.9%"' package.json > tmp.json && mv tmp.json package.json
|
|
345
368
|
`,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:`
|
|
346
369
|
npx create-react-app {{beforeDir}} --template typescript && cd {{beforeDir}} && jq '.browserslist.production[0] = ">0.9%"' package.json > tmp.json && mv tmp.json package.json
|
|
@@ -348,64 +371,64 @@ ${error.stack}`),fixSummary.failed[f.id]=error.message),fixResults[f.id]="check_
|
|
|
348
371
|
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
|
|
349
372
|
`,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:`
|
|
350
373
|
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
|
|
351
|
-
`,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 -M @nuxt/ui {{beforeDir}}",expected:{framework:"@storybook-vue/nuxt",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},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"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"npx sv@latest create --template minimal --types ts --no-add-ons --no-install {{beforeDir}}",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"]},"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","preact-vite/default-ts","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","lit-vite/default-js","svelte-vite/default-js","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 logger10=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_semver7.prerelease)(currentVersion),isOutdated=(0,import_semver7.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_picocolors21.default.bold(currentVersion)} sandbox..`,notLatest:import_picocolors21.default.red(import_ts_dedent17.dedent`
|
|
352
|
-
This version is behind the latest release, which is: ${
|
|
374
|
+
`,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 -M @nuxt/ui {{beforeDir}}",expected:{framework:"@storybook-vue/nuxt",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},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"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"npx sv@latest create --template minimal --types ts --no-add-ons --no-install {{beforeDir}}",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"]},"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","preact-vite/default-ts","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","lit-vite/default-js","svelte-vite/default-js","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 logger10=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_common21.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),nextVersion=await packageManager.latestVersion("storybook@next").catch(e=>"0.0.0"),currentVersion=import_common22.versions.storybook,isPrerelease=(0,import_semver7.prerelease)(currentVersion),isOutdated=(0,import_semver7.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_picocolors24.default.bold(currentVersion)} sandbox..`,notLatest:import_picocolors24.default.red(import_ts_dedent20.dedent`
|
|
375
|
+
This version is behind the latest release, which is: ${import_picocolors24.default.bold(latestVersion)}!
|
|
353
376
|
You likely ran the init command through npx, which can use a locally cached version, to get the latest please run:
|
|
354
|
-
${
|
|
377
|
+
${import_picocolors24.default.bold("npx storybook@latest sandbox")}
|
|
355
378
|
|
|
356
379
|
You may want to CTRL+C to stop, and run with the latest version instead.
|
|
357
|
-
`),longInitTime:
|
|
358
|
-
`),{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&&(logger10.info(boxen(
|
|
380
|
+
`),longInitTime:import_picocolors24.default.yellow("The creation of the sandbox will take longer, because we will need to run init."),prerelease:import_picocolors24.default.yellow("This is a pre-release version.")};if(logger10.log(boxen([messages.welcome].concat(isOutdated&&!isPrerelease?[messages.notLatest]:[]).concat(init&&(isOutdated||isPrerelease)?[messages.longInitTime]:[]).concat(isPrerelease?[messages.prerelease]:[]).join(`
|
|
381
|
+
`),{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&&(logger10.info(boxen(import_ts_dedent20.dedent`
|
|
359
382
|
🔎 You filtered out all templates. 🔍
|
|
360
383
|
|
|
361
|
-
After filtering all the templates with "${
|
|
384
|
+
After filtering all the templates with "${import_picocolors24.default.yellow(filterValue)}", we found no results. Please try again with a different filter.
|
|
362
385
|
|
|
363
386
|
Available templates:
|
|
364
|
-
${keys.map(key=>
|
|
387
|
+
${keys.map(key=>import_picocolors24.default.blue(`- ${key}`)).join(`
|
|
365
388
|
`)}
|
|
366
|
-
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),process.exit(1)),choices.length===1?[templateId]=choices:(logger10.info(boxen(
|
|
367
|
-
🤗 Welcome to ${
|
|
389
|
+
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),process.exit(1)),choices.length===1?[templateId]=choices:(logger10.info(boxen(import_ts_dedent20.dedent`
|
|
390
|
+
🤗 Welcome to ${import_picocolors24.default.yellow("sb sandbox")}! 🤗
|
|
368
391
|
|
|
369
|
-
Create a ${
|
|
392
|
+
Create a ${import_picocolors24.default.green("new project")} to minimally reproduce Storybook issues.
|
|
370
393
|
|
|
371
394
|
1. select an environment that most closely matches your project setup.
|
|
372
395
|
2. select a location for the reproduction, outside of your project.
|
|
373
396
|
|
|
374
397
|
After the reproduction is ready, we'll guide you through the next steps.
|
|
375
|
-
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),templateId=await promptSelectedTemplate(choices)),!!!(templateId??null)){logger10.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_fs4.existsSync)(`${selectedDirectory}`)&&(logger10.info(`\u26A0\uFE0F ${selectedDirectory} already exists! Overwriting...`),await(0,import_promises8.rm)(selectedDirectory,{recursive:!0,force:!0})),!selectedDirectory){let{directory}=await(0,import_prompts6.default)({type:"text",message:"Enter the output directory",name:"directory",initial:outputDirectoryName??void 0,validate:async directoryName=>(0,import_node_fs4.existsSync)(directoryName)?`${directoryName} already exists. Please choose another name.`:!0},{onCancel:()=>{logger10.log("Command cancelled by the user. Exiting..."),process.exit(1)}});selectedDirectory=directory}(0,import_tiny_invariant2.default)(selectedDirectory);try{let templateDestination=(0,import_node_path7.isAbsolute)(selectedDirectory)?selectedDirectory:(0,import_node_path7.join)(process.cwd(),selectedDirectory);logger10.info(`\u{1F3C3} Adding ${selectedConfig.name} into ${templateDestination}`),logger10.log(`\u{1F4E6} Downloading sandbox template (${
|
|
376
|
-
Template downloaded from ${
|
|
398
|
+
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"})),templateId=await promptSelectedTemplate(choices)),!!!(templateId??null)){logger10.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_fs4.existsSync)(`${selectedDirectory}`)&&(logger10.info(`\u26A0\uFE0F ${selectedDirectory} already exists! Overwriting...`),await(0,import_promises8.rm)(selectedDirectory,{recursive:!0,force:!0})),!selectedDirectory){let{directory}=await(0,import_prompts6.default)({type:"text",message:"Enter the output directory",name:"directory",initial:outputDirectoryName??void 0,validate:async directoryName=>(0,import_node_fs4.existsSync)(directoryName)?`${directoryName} already exists. Please choose another name.`:!0},{onCancel:()=>{logger10.log("Command cancelled by the user. Exiting..."),process.exit(1)}});selectedDirectory=directory}(0,import_tiny_invariant2.default)(selectedDirectory);try{let templateDestination=(0,import_node_path7.isAbsolute)(selectedDirectory)?selectedDirectory:(0,import_node_path7.join)(process.cwd(),selectedDirectory);logger10.info(`\u{1F3C3} Adding ${selectedConfig.name} into ${templateDestination}`),logger10.log(`\u{1F4E6} Downloading sandbox template (${import_picocolors24.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_promises8.readdir)(templateDestination)).length===0){let selected=import_picocolors24.default.yellow(templateId);throw new Error(import_ts_dedent20.dedent`
|
|
399
|
+
Template downloaded from ${import_picocolors24.default.blue(gitPath)} is empty.
|
|
377
400
|
Are you use it exists? Or did you want to set ${selected} to inDevelopment first?
|
|
378
|
-
`)}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 logger10.error(`\u{1F6A8} Failed to download sandbox template: ${String(err)}`),err}let initMessage=init?
|
|
401
|
+
`)}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 logger10.error(`\u{1F6A8} Failed to download sandbox template: ${String(err)}`),err}let initMessage=init?import_picocolors24.default.yellow(import_ts_dedent20.dedent`
|
|
379
402
|
yarn install
|
|
380
403
|
yarn storybook
|
|
381
|
-
`):`Recreate your setup, then ${
|
|
404
|
+
`):`Recreate your setup, then ${import_picocolors24.default.yellow("npx storybook@latest init")}`;logger10.info(boxen(import_ts_dedent20.dedent`
|
|
382
405
|
🎉 Your Storybook reproduction project is ready to use! 🎉
|
|
383
406
|
|
|
384
|
-
${
|
|
407
|
+
${import_picocolors24.default.yellow(`cd ${selectedDirectory}`)}
|
|
385
408
|
${initMessage}
|
|
386
409
|
|
|
387
410
|
Once you've recreated the problem you're experiencing, please:
|
|
388
411
|
|
|
389
|
-
1. Document any additional steps in ${
|
|
412
|
+
1. Document any additional steps in ${import_picocolors24.default.cyan("README.md")}
|
|
390
413
|
2. Publish the repository to github
|
|
391
414
|
3. Link to the repro repository in your issue
|
|
392
415
|
|
|
393
416
|
Having a clean repro helps us solve your issue faster! 🙏
|
|
394
|
-
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"}))}catch(error){throw logger10.error("\u{1F6A8} Failed to create sandbox"),error}};async function promptSelectedTemplate(choices){let{template}=await(0,import_prompts6.default)({type:"select",message:"\u{1F308} Select the template",name:"template",choices:choices.map(toChoices)},{onCancel:()=>{logger10.log("Command cancelled by the user. Exiting..."),process.exit(1)}});return template||null}var import_cli5=require("storybook/internal/cli"),
|
|
417
|
+
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"}))}catch(error){throw logger10.error("\u{1F6A8} Failed to create sandbox"),error}};async function promptSelectedTemplate(choices){let{template}=await(0,import_prompts6.default)({type:"select",message:"\u{1F308} Select the template",name:"template",choices:choices.map(toChoices)},{onCancel:()=>{logger10.log("Command cancelled by the user. Exiting..."),process.exit(1)}});return template||null}var import_cli5=require("storybook/internal/cli"),import_common24=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_picocolors31=__toESM(require_picocolors(),1),import_semver11=__toESM(require("semver"),1),import_ts_dedent26=require("ts-dedent");var import_node_logger2=require("storybook/internal/node-logger");var import_picocolors30=__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)),Promise.resolve().then(()=>(init_block_svelte_webpack5(),block_svelte_webpack5_exports)),Promise.resolve().then(()=>(init_block_major_version(),block_major_version_exports))],segmentDivider2=`
|
|
395
418
|
|
|
396
419
|
\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
|
|
397
420
|
|
|
398
|
-
`,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:blocker6}=await i,result=await blocker6.check(options);return result?{id:blocker6.id,value:!0,log:blocker6.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:
|
|
421
|
+
`,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:blocker6}=await i,result=await blocker6.check(options);return result?{id:blocker6.id,value:!0,log:blocker6.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_picocolors30.default.yellow("Fix the above issues and try running the upgrade command again.")};return import_node_logger2.logger.plain(boxen([messages.welcome].concat([`
|
|
399
422
|
|
|
400
|
-
`]).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_semver11.clean)(match[2])?null:{package:match[1],version:match[2]}},getInstalledStorybookVersion=async packageManager=>{let installations=await packageManager.findInstallations(Object.keys(
|
|
401
|
-
`).map(getStorybookVersion).filter(item=>!!item).filter(pkg=>(0,
|
|
402
|
-
This version is behind the latest release, which is: ${
|
|
423
|
+
`]).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_semver11.clean)(match[2])?null:{package:match[1],version:match[2]}},getInstalledStorybookVersion=async packageManager=>{let installations=await packageManager.findInstallations(Object.keys(import_common24.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(`
|
|
424
|
+
`).map(getStorybookVersion).filter(item=>!!item).filter(pkg=>(0,import_common24.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_semver11.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_semver11.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_common24.JsPackageManagerFactory.getPackageManager({force:packageManagerName}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0",currentCLIVersion=import_common24.versions.storybook,isCanary=currentCLIVersion.startsWith("0.0.0")||beforeVersion.startsWith("portal:")||beforeVersion.startsWith("workspace:");if(!await(0,import_cli5.hasStorybookDependencies)(packageManager))throw new import_server_errors.UpgradeStorybookInWrongWorkingDirectory;if(!isCanary&&(0,import_semver11.lt)(currentCLIVersion,beforeVersion))throw new import_server_errors.UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion:currentCLIVersion});!isCanary&&(0,import_semver11.eq)(currentCLIVersion,beforeVersion)&&import_node_logger3.logger.warn(new import_server_errors.UpgradeStorybookToSameVersionError({beforeVersion}).message);let latestCLIVersionOnNPM=await packageManager.latestVersion("storybook"),isCLIOutdated=(0,import_semver11.lt)(currentCLIVersion,latestCLIVersionOnNPM),isCLIExactLatest=currentCLIVersion===latestCLIVersionOnNPM,isCLIPrerelease=(0,import_semver11.prerelease)(currentCLIVersion)!==null,isUpgrade=(0,import_semver11.lt)(beforeVersion,currentCLIVersion),borderColor=isCLIOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${import_picocolors31.default.bold(beforeVersion)} to version ${import_picocolors31.default.bold(currentCLIVersion)}..`,notLatest:import_picocolors31.default.red(import_ts_dedent26.dedent`
|
|
425
|
+
This version is behind the latest release, which is: ${import_picocolors31.default.bold(latestCLIVersionOnNPM)}!
|
|
403
426
|
You likely ran the upgrade command through npx, which can use a locally cached version, to upgrade to the latest version please run:
|
|
404
|
-
${
|
|
427
|
+
${import_picocolors31.default.bold("npx storybook@latest upgrade")}
|
|
405
428
|
|
|
406
429
|
You may want to CTRL+C to stop, and run with the latest version instead.
|
|
407
|
-
`),prerelease:
|
|
408
|
-
`),{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
|
|
409
|
-
Storybook Environment Info:`));let activePackageManager=(await
|
|
430
|
+
`),prerelease:import_picocolors31.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(`
|
|
431
|
+
`),{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_common24.versions).map(dependency=>{let char="^";return isCLIOutdated&&(char=""),isCanary&&(char=""),`${dependency}@${char}${import_common24.versions[dependency]}`}),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);if(packageManager.type==="npm")try{packageJson.overrides||(packageJson.overrides={}),packageJson.overrides.storybook="$storybook",dryRun||(await packageManager.writePackageJson(packageJson),import_node_logger3.logger.info(`Added Storybook overrides to ${import_picocolors31.default.cyan("package.json")} to ensure consistent dependency resolution`))}catch{import_node_logger3.logger.warn("Failed to add Storybook overrides to package.json")}if(packageManager.type==="npm"){let getPackageName=dep=>{let lastAtIndex=dep.lastIndexOf("@");return lastAtIndex>0?dep.slice(0,lastAtIndex):dep};await packageManager.removeDependencies({skipInstall:!1},[...upgradedDependencies,...upgradedDevDependencies].map(getPackageName).filter(dep=>dep!=="storybook"));let findStorybookPackage=deps=>deps.find(dep=>getPackageName(dep)==="storybook"),storybookDep=findStorybookPackage(upgradedDependencies),storybookDevDep=findStorybookPackage(upgradedDevDependencies);storybookDep&&await packageManager.addDependencies({installAsDevDependencies:!1},[storybookDep]),storybookDevDep&&await packageManager.addDependencies({installAsDevDependencies:!0},[storybookDevDep])}import_node_logger3.logger.info(`Updating dependencies in ${import_picocolors31.default.cyan("package.json")}..`);let addDeps=async(deps,isDev)=>{deps.length>0&&await packageManager.addDependencies({installAsDevDependencies:isDev,skipInstall:!0,packageJson},deps)};await addDeps(upgradedDependencies,!1),await addDeps(upgradedDevDependencies,!0),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_common25.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_common25.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_common25.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_picocolors32.default.bold(`
|
|
432
|
+
Storybook Environment Info:`));let activePackageManager=(await import_common25.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_picocolors32.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,dryRun,list,rename:rename4,parser})=>{migrate(migration,{configDir,glob,dryRun,list,rename:rename4,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.
|
|
410
433
|
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(`
|
|
411
434
|
Did you mean ${suggestion}?`),process.exit(1)});import_commander.program.usage("<command> [options]").version(String(version)).parse(process.argv);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/cli",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.16",
|
|
4
4
|
"description": "Storybook CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@babel/core": "^7.24.4",
|
|
45
45
|
"@babel/types": "^7.24.0",
|
|
46
|
-
"@storybook/codemod": "9.0.0-alpha.
|
|
46
|
+
"@storybook/codemod": "9.0.0-alpha.16",
|
|
47
47
|
"@types/semver": "^7.3.4",
|
|
48
48
|
"commander": "^12.1.0",
|
|
49
|
-
"create-storybook": "9.0.0-alpha.
|
|
49
|
+
"create-storybook": "9.0.0-alpha.16",
|
|
50
50
|
"cross-spawn": "^7.0.3",
|
|
51
51
|
"envinfo": "^7.7.3",
|
|
52
52
|
"execa": "^9.5.2",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"p-limit": "^6.2.0",
|
|
61
61
|
"prompts": "^2.4.0",
|
|
62
62
|
"semver": "^7.3.7",
|
|
63
|
-
"storybook": "9.0.0-alpha.
|
|
63
|
+
"storybook": "9.0.0-alpha.16",
|
|
64
64
|
"tiny-invariant": "^1.3.1",
|
|
65
65
|
"ts-dedent": "^2.0.0"
|
|
66
66
|
},
|