create-pixi-vn 1.6.4 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/index.mjs +23 -23
  2. package/package.json +1 -1
  3. package/template-react-vite-muijoy/package.json +23 -23
  4. package/template-react-vite-muijoy/src/App.tsx +2 -1
  5. package/template-react-vite-muijoy/src/labels/animations-labels.ts +7 -8
  6. package/template-react-vite-muijoy/src/labels/startLabel.ts +4 -4
  7. package/template-react-vite-muijoy-ink/package.json +24 -24
  8. package/template-react-vite-muijoy-ink/src/App.tsx +2 -8
  9. package/template-react-vite-muijoy-ink/src/i18n.ts +2 -2
  10. package/template-react-vite-muijoy-ink/src/ink/start.ink +4 -4
  11. package/template-react-vite-muijoy-ink/src/labels/animations-labels.ts +7 -8
  12. package/template-react-vite-muijoy-ink-tauri/package.json +24 -24
  13. package/template-react-vite-muijoy-ink-tauri/src/App.tsx +2 -8
  14. package/template-react-vite-muijoy-ink-tauri/src/i18n.ts +2 -2
  15. package/template-react-vite-muijoy-ink-tauri/src/ink/start.ink +4 -4
  16. package/template-react-vite-muijoy-ink-tauri/src/labels/animations-labels.ts +7 -8
  17. package/template-react-vite-muijoy-tauri/package.json +23 -23
  18. package/template-react-vite-muijoy-tauri/src/App.tsx +2 -1
  19. package/template-react-vite-muijoy-tauri/src/labels/animations-labels.ts +7 -8
  20. package/template-react-vite-muijoy-tauri/src/labels/startLabel.ts +4 -4
  21. package/template-react-vite-muijoy-tauri/src/screens/LoadingScreen.tsx +1 -1
  22. package/template-react-vite-muijoy-tauri/src/screens/MainMenu.tsx +29 -9
  23. package/template-react-vite-muijoy-tauri/src/utils/save-utility.ts +1 -1
  24. package/template-story-react-vite-muijoy/README.md +1 -0
  25. package/template-story-react-vite-muijoy/package.json +25 -24
  26. package/template-story-react-vite-muijoy/src/App.tsx +1 -1
  27. package/template-story-react-vite-muijoy/src/AppRoutes.tsx +4 -2
  28. package/template-story-react-vite-muijoy/src/Home.tsx +3 -3
  29. package/template-story-react-vite-muijoy/src/components/GameSaveSlot.tsx +1 -1
  30. package/template-story-react-vite-muijoy/src/components/ModalDialog.tsx +20 -23
  31. package/template-story-react-vite-muijoy/src/components/NextButton.tsx +1 -1
  32. package/template-story-react-vite-muijoy/src/components/VisibilityButton.tsx +46 -0
  33. package/template-story-react-vite-muijoy/src/hooks/useClosePageDetector.ts +1 -1
  34. package/template-story-react-vite-muijoy/src/hooks/useGameProps.ts +6 -0
  35. package/template-story-react-vite-muijoy/src/hooks/useKeyboardDetector.ts +3 -17
  36. package/template-story-react-vite-muijoy/src/hooks/useNarrationFunctions.ts +7 -1
  37. package/template-story-react-vite-muijoy/src/{use_query → hooks}/useQueryInterface.ts +9 -8
  38. package/template-story-react-vite-muijoy/src/index.css +1 -0
  39. package/template-story-react-vite-muijoy/src/labels/index.ts +2 -0
  40. package/template-story-react-vite-muijoy/src/labels/startLabel.ts +5 -2
  41. package/template-story-react-vite-muijoy/src/main.tsx +1 -4
  42. package/template-story-react-vite-muijoy/src/pixi-vn.d.ts +5 -0
  43. package/{template-story-react-vite-muijoy-ink/src/Imports.tsx → template-story-react-vite-muijoy/src/providers/RootProvider.tsx} +25 -25
  44. package/template-story-react-vite-muijoy/src/screens/ChoiceMenu.tsx +34 -30
  45. package/template-story-react-vite-muijoy/src/screens/GameSaveScreen.tsx +1 -1
  46. package/template-story-react-vite-muijoy/src/screens/HistoryScreen.tsx +1 -1
  47. package/template-story-react-vite-muijoy/src/screens/MainMenu.tsx +2 -2
  48. package/template-story-react-vite-muijoy/src/screens/NarrationScreen.tsx +6 -5
  49. package/template-story-react-vite-muijoy/src/screens/PreviousDialoguesScreen.tsx +1 -1
  50. package/template-story-react-vite-muijoy/src/screens/QuickTools.tsx +74 -94
  51. package/template-story-react-vite-muijoy/src/screens/modals/SaveLoadAlert.tsx +3 -3
  52. package/template-story-react-vite-muijoy/src/screens/modals/TextInput.tsx +1 -1
  53. package/template-story-react-vite-muijoy/src/screens/settings/FullScreenSettings.tsx +1 -1
  54. package/template-story-react-vite-muijoy/src/screens/settings/SaveLoadSettingButtons.tsx +3 -3
  55. package/template-story-react-vite-muijoy/src/stores/useInterfaceStore.ts +7 -12
  56. package/template-story-react-vite-muijoy/src/utils/assets-utility.ts +11 -0
  57. package/template-story-react-vite-muijoy/src/values/index.ts +1 -0
  58. package/template-story-react-vite-muijoy-ink/README.md +4 -4
  59. package/template-story-react-vite-muijoy-ink/package.json +26 -25
  60. package/template-story-react-vite-muijoy-ink/src/App.tsx +8 -1
  61. package/template-story-react-vite-muijoy-ink/src/AppRoutes.tsx +4 -2
  62. package/template-story-react-vite-muijoy-ink/src/Home.tsx +3 -3
  63. package/template-story-react-vite-muijoy-ink/src/components/GameSaveSlot.tsx +1 -1
  64. package/template-story-react-vite-muijoy-ink/src/components/ModalDialog.tsx +20 -23
  65. package/template-story-react-vite-muijoy-ink/src/components/NextButton.tsx +1 -1
  66. package/template-story-react-vite-muijoy-ink/src/components/VisibilityButton.tsx +46 -0
  67. package/template-story-react-vite-muijoy-ink/src/hooks/useClosePageDetector.ts +1 -1
  68. package/template-story-react-vite-muijoy-ink/src/hooks/useGameProps.ts +6 -0
  69. package/template-story-react-vite-muijoy-ink/src/hooks/useInkInitialization.tsx +1 -4
  70. package/template-story-react-vite-muijoy-ink/src/hooks/useKeyboardDetector.ts +3 -17
  71. package/template-story-react-vite-muijoy-ink/src/hooks/useNarrationFunctions.ts +7 -1
  72. package/{template-story-react-vite-muijoy-ink-tauri/src/use_query → template-story-react-vite-muijoy-ink/src/hooks}/useQueryInterface.ts +9 -8
  73. package/template-story-react-vite-muijoy-ink/src/index.css +1 -0
  74. package/template-story-react-vite-muijoy-ink/src/ink/start.ink +2 -2
  75. package/template-story-react-vite-muijoy-ink/src/main.tsx +1 -5
  76. package/template-story-react-vite-muijoy-ink/src/pixi-vn.d.ts +5 -0
  77. package/{template-story-react-vite-muijoy-tauri/src/Imports.tsx → template-story-react-vite-muijoy-ink/src/providers/RootProvider.tsx} +25 -25
  78. package/template-story-react-vite-muijoy-ink/src/screens/ChoiceMenu.tsx +34 -30
  79. package/template-story-react-vite-muijoy-ink/src/screens/GameSaveScreen.tsx +1 -1
  80. package/template-story-react-vite-muijoy-ink/src/screens/HistoryScreen.tsx +1 -1
  81. package/template-story-react-vite-muijoy-ink/src/screens/MainMenu.tsx +2 -2
  82. package/template-story-react-vite-muijoy-ink/src/screens/NarrationScreen.tsx +6 -5
  83. package/template-story-react-vite-muijoy-ink/src/screens/PreviousDialoguesScreen.tsx +1 -1
  84. package/template-story-react-vite-muijoy-ink/src/screens/QuickTools.tsx +74 -94
  85. package/template-story-react-vite-muijoy-ink/src/screens/modals/SaveLoadAlert.tsx +3 -3
  86. package/template-story-react-vite-muijoy-ink/src/screens/modals/TextInput.tsx +1 -1
  87. package/template-story-react-vite-muijoy-ink/src/screens/settings/FullScreenSettings.tsx +1 -1
  88. package/template-story-react-vite-muijoy-ink/src/screens/settings/SaveLoadSettingButtons.tsx +3 -3
  89. package/template-story-react-vite-muijoy-ink/src/stores/useInterfaceStore.ts +7 -12
  90. package/template-story-react-vite-muijoy-ink/src/utils/assets-utility.ts +11 -0
  91. package/template-story-react-vite-muijoy-ink/src/utils/ink-utility.ts +3 -3
  92. package/template-story-react-vite-muijoy-ink/src/values/index.ts +1 -0
  93. package/template-story-react-vite-muijoy-ink-tauri/README.md +1 -0
  94. package/template-story-react-vite-muijoy-ink-tauri/package.json +26 -25
  95. package/template-story-react-vite-muijoy-ink-tauri/src/App.tsx +8 -1
  96. package/template-story-react-vite-muijoy-ink-tauri/src/AppRoutes.tsx +4 -2
  97. package/template-story-react-vite-muijoy-ink-tauri/src/Home.tsx +3 -3
  98. package/template-story-react-vite-muijoy-ink-tauri/src/components/GameSaveSlot.tsx +1 -1
  99. package/template-story-react-vite-muijoy-ink-tauri/src/components/ModalDialog.tsx +20 -23
  100. package/template-story-react-vite-muijoy-ink-tauri/src/components/NextButton.tsx +1 -1
  101. package/template-story-react-vite-muijoy-ink-tauri/src/components/VisibilityButton.tsx +46 -0
  102. package/template-story-react-vite-muijoy-ink-tauri/src/hooks/useClosePageDetector.ts +1 -1
  103. package/template-story-react-vite-muijoy-ink-tauri/src/hooks/useGameProps.ts +6 -0
  104. package/template-story-react-vite-muijoy-ink-tauri/src/hooks/useInkInitialization.tsx +1 -4
  105. package/template-story-react-vite-muijoy-ink-tauri/src/hooks/useKeyboardDetector.ts +3 -17
  106. package/template-story-react-vite-muijoy-ink-tauri/src/hooks/useNarrationFunctions.ts +7 -1
  107. package/{template-story-react-vite-muijoy-ink/src/use_query → template-story-react-vite-muijoy-ink-tauri/src/hooks}/useQueryInterface.ts +9 -8
  108. package/template-story-react-vite-muijoy-ink-tauri/src/index.css +1 -0
  109. package/template-story-react-vite-muijoy-ink-tauri/src/ink/start.ink +2 -2
  110. package/template-story-react-vite-muijoy-ink-tauri/src/main.tsx +1 -5
  111. package/template-story-react-vite-muijoy-ink-tauri/src/pixi-vn.d.ts +5 -0
  112. package/template-story-react-vite-muijoy-ink-tauri/src/{Imports.tsx → providers/RootProvider.tsx} +25 -25
  113. package/template-story-react-vite-muijoy-ink-tauri/src/screens/ChoiceMenu.tsx +34 -30
  114. package/template-story-react-vite-muijoy-ink-tauri/src/screens/GameSaveScreen.tsx +1 -1
  115. package/template-story-react-vite-muijoy-ink-tauri/src/screens/HistoryScreen.tsx +1 -1
  116. package/template-story-react-vite-muijoy-ink-tauri/src/screens/MainMenu.tsx +2 -2
  117. package/template-story-react-vite-muijoy-ink-tauri/src/screens/NarrationScreen.tsx +6 -5
  118. package/template-story-react-vite-muijoy-ink-tauri/src/screens/PreviousDialoguesScreen.tsx +1 -1
  119. package/template-story-react-vite-muijoy-ink-tauri/src/screens/QuickTools.tsx +74 -94
  120. package/template-story-react-vite-muijoy-ink-tauri/src/screens/modals/SaveLoadAlert.tsx +3 -3
  121. package/template-story-react-vite-muijoy-ink-tauri/src/screens/modals/TextInput.tsx +1 -1
  122. package/template-story-react-vite-muijoy-ink-tauri/src/screens/settings/FullScreenSettings.tsx +3 -3
  123. package/template-story-react-vite-muijoy-ink-tauri/src/screens/settings/SaveLoadSettingButtons.tsx +3 -3
  124. package/template-story-react-vite-muijoy-ink-tauri/src/stores/useInterfaceStore.ts +7 -12
  125. package/template-story-react-vite-muijoy-ink-tauri/src/utils/assets-utility.ts +11 -0
  126. package/template-story-react-vite-muijoy-ink-tauri/src/utils/ink-utility.ts +3 -3
  127. package/template-story-react-vite-muijoy-ink-tauri/src/values/index.ts +1 -0
  128. package/template-story-react-vite-muijoy-tauri/README.md +1 -0
  129. package/template-story-react-vite-muijoy-tauri/package.json +25 -24
  130. package/template-story-react-vite-muijoy-tauri/src/App.tsx +1 -1
  131. package/template-story-react-vite-muijoy-tauri/src/AppRoutes.tsx +4 -2
  132. package/template-story-react-vite-muijoy-tauri/src/Home.tsx +3 -3
  133. package/template-story-react-vite-muijoy-tauri/src/components/GameSaveSlot.tsx +1 -1
  134. package/template-story-react-vite-muijoy-tauri/src/components/ModalDialog.tsx +20 -23
  135. package/template-story-react-vite-muijoy-tauri/src/components/NextButton.tsx +1 -1
  136. package/template-story-react-vite-muijoy-tauri/src/components/VisibilityButton.tsx +46 -0
  137. package/template-story-react-vite-muijoy-tauri/src/hooks/useClosePageDetector.ts +1 -1
  138. package/template-story-react-vite-muijoy-tauri/src/hooks/useGameProps.ts +6 -0
  139. package/template-story-react-vite-muijoy-tauri/src/hooks/useKeyboardDetector.ts +3 -17
  140. package/template-story-react-vite-muijoy-tauri/src/hooks/useNarrationFunctions.ts +7 -1
  141. package/template-story-react-vite-muijoy-tauri/src/{use_query → hooks}/useQueryInterface.ts +9 -8
  142. package/template-story-react-vite-muijoy-tauri/src/index.css +1 -0
  143. package/template-story-react-vite-muijoy-tauri/src/labels/index.ts +2 -0
  144. package/template-story-react-vite-muijoy-tauri/src/labels/startLabel.ts +5 -2
  145. package/template-story-react-vite-muijoy-tauri/src/main.tsx +1 -4
  146. package/template-story-react-vite-muijoy-tauri/src/pixi-vn.d.ts +5 -0
  147. package/{template-story-react-vite-muijoy/src/Imports.tsx → template-story-react-vite-muijoy-tauri/src/providers/RootProvider.tsx} +25 -25
  148. package/template-story-react-vite-muijoy-tauri/src/screens/ChoiceMenu.tsx +34 -30
  149. package/template-story-react-vite-muijoy-tauri/src/screens/GameSaveScreen.tsx +1 -1
  150. package/template-story-react-vite-muijoy-tauri/src/screens/HistoryScreen.tsx +1 -1
  151. package/template-story-react-vite-muijoy-tauri/src/screens/MainMenu.tsx +2 -2
  152. package/template-story-react-vite-muijoy-tauri/src/screens/NarrationScreen.tsx +6 -5
  153. package/template-story-react-vite-muijoy-tauri/src/screens/PreviousDialoguesScreen.tsx +1 -1
  154. package/template-story-react-vite-muijoy-tauri/src/screens/QuickTools.tsx +74 -94
  155. package/template-story-react-vite-muijoy-tauri/src/screens/modals/SaveLoadAlert.tsx +3 -3
  156. package/template-story-react-vite-muijoy-tauri/src/screens/modals/TextInput.tsx +1 -1
  157. package/template-story-react-vite-muijoy-tauri/src/screens/settings/FullScreenSettings.tsx +3 -3
  158. package/template-story-react-vite-muijoy-tauri/src/screens/settings/SaveLoadSettingButtons.tsx +3 -3
  159. package/template-story-react-vite-muijoy-tauri/src/stores/useInterfaceStore.ts +7 -12
  160. package/template-story-react-vite-muijoy-tauri/src/utils/assets-utility.ts +11 -0
  161. package/template-story-react-vite-muijoy-tauri/src/values/index.ts +1 -0
  162. package/template-story-react-vite-muijoy/src/utils/component-utility.ts +0 -29
  163. package/template-story-react-vite-muijoy-ink/src/utils/component-utility.ts +0 -29
  164. package/template-story-react-vite-muijoy-ink-tauri/src/utils/component-utility.ts +0 -29
  165. package/template-story-react-vite-muijoy-tauri/src/utils/component-utility.ts +0 -29
  166. /package/template-story-react-vite-muijoy/src/{use_query → hooks}/useQueryIsFullModeScreen.ts +0 -0
  167. /package/template-story-react-vite-muijoy/src/{use_query → hooks}/useQueryLastSave.ts +0 -0
  168. /package/template-story-react-vite-muijoy/src/{use_query → hooks}/useQuerySaves.ts +0 -0
  169. /package/template-story-react-vite-muijoy-ink/src/{use_query → hooks}/useQueryIsFullModeScreen.ts +0 -0
  170. /package/template-story-react-vite-muijoy-ink/src/{use_query → hooks}/useQueryLastSave.ts +0 -0
  171. /package/template-story-react-vite-muijoy-ink/src/{use_query → hooks}/useQuerySaves.ts +0 -0
  172. /package/template-story-react-vite-muijoy-ink-tauri/src/{use_query → hooks}/useQueryIsFullModeScreen.ts +0 -0
  173. /package/template-story-react-vite-muijoy-ink-tauri/src/{use_query → hooks}/useQueryLastSave.ts +0 -0
  174. /package/template-story-react-vite-muijoy-ink-tauri/src/{use_query → hooks}/useQuerySaves.ts +0 -0
  175. /package/template-story-react-vite-muijoy-tauri/src/{use_query → hooks}/useQueryIsFullModeScreen.ts +0 -0
  176. /package/template-story-react-vite-muijoy-tauri/src/{use_query → hooks}/useQueryLastSave.ts +0 -0
  177. /package/template-story-react-vite-muijoy-tauri/src/{use_query → hooks}/useQuerySaves.ts +0 -0
package/dist/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
- import"node:util";import N,{stdin as wu,stdout as $u}from"node:process";import*as Du from"node:readline";import yu from"node:readline";import{Writable as Xu}from"node:stream";import{execa as G}from"execa";import x from"node:path";import xu from"which";import w from"node:fs";import{fileURLToPath as uD}from"node:url";function ku(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var cu,Tu;function DD(){if(Tu)return cu;Tu=1;const D="\x1B",e=`${D}[`,t="\x07",r={to(u,n){return n?`${e}${n+1};${u+1}H`:`${e}${u+1}G`},move(u,n){let a="";return u<0?a+=`${e}${-u}D`:u>0&&(a+=`${e}${u}C`),n<0?a+=`${e}${-n}A`:n>0&&(a+=`${e}${n}B`),a},up:(u=1)=>`${e}${u}A`,down:(u=1)=>`${e}${u}B`,forward:(u=1)=>`${e}${u}C`,backward:(u=1)=>`${e}${u}D`,nextLine:(u=1)=>`${e}E`.repeat(u),prevLine:(u=1)=>`${e}F`.repeat(u),left:`${e}G`,hide:`${e}?25l`,show:`${e}?25h`,save:`${D}7`,restore:`${D}8`},i={up:(u=1)=>`${e}S`.repeat(u),down:(u=1)=>`${e}T`.repeat(u)},s={screen:`${e}2J`,up:(u=1)=>`${e}1J`.repeat(u),down:(u=1)=>`${e}J`.repeat(u),line:`${e}2K`,lineEnd:`${e}K`,lineStart:`${e}1K`,lines(u){let n="";for(let a=0;a<u;a++)n+=this.line+(a<u-1?r.up():"");return u&&(n+=r.left),n}};return cu={cursor:r,scroll:i,erase:s,beep:t},cu}var S=DD(),eu={exports:{}},Su;function eD(){if(Su)return eu.exports;Su=1;let D=process||{},e=D.argv||[],t=D.env||{},r=!(t.NO_COLOR||e.includes("--no-color"))&&(!!t.FORCE_COLOR||e.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&t.TERM!=="dumb"||!!t.CI),i=(n,a,c=n)=>h=>{let F=""+h,C=F.indexOf(a,n.length);return~C?n+s(F,a,c,C)+a:n+F+a},s=(n,a,c,h)=>{let F="",C=0;do F+=n.substring(C,h)+c,C=h+a.length,h=n.indexOf(a,C);while(~h);return F+n.substring(C)},u=(n=r)=>{let a=n?i:()=>String;return{isColorSupported:n,reset:a("\x1B[0m","\x1B[0m"),bold:a("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:a("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:a("\x1B[3m","\x1B[23m"),underline:a("\x1B[4m","\x1B[24m"),inverse:a("\x1B[7m","\x1B[27m"),hidden:a("\x1B[8m","\x1B[28m"),strikethrough:a("\x1B[9m","\x1B[29m"),black:a("\x1B[30m","\x1B[39m"),red:a("\x1B[31m","\x1B[39m"),green:a("\x1B[32m","\x1B[39m"),yellow:a("\x1B[33m","\x1B[39m"),blue:a("\x1B[34m","\x1B[39m"),magenta:a("\x1B[35m","\x1B[39m"),cyan:a("\x1B[36m","\x1B[39m"),white:a("\x1B[37m","\x1B[39m"),gray:a("\x1B[90m","\x1B[39m"),bgBlack:a("\x1B[40m","\x1B[49m"),bgRed:a("\x1B[41m","\x1B[49m"),bgGreen:a("\x1B[42m","\x1B[49m"),bgYellow:a("\x1B[43m","\x1B[49m"),bgBlue:a("\x1B[44m","\x1B[49m"),bgMagenta:a("\x1B[45m","\x1B[49m"),bgCyan:a("\x1B[46m","\x1B[49m"),bgWhite:a("\x1B[47m","\x1B[49m"),blackBright:a("\x1B[90m","\x1B[39m"),redBright:a("\x1B[91m","\x1B[39m"),greenBright:a("\x1B[92m","\x1B[39m"),yellowBright:a("\x1B[93m","\x1B[39m"),blueBright:a("\x1B[94m","\x1B[39m"),magentaBright:a("\x1B[95m","\x1B[39m"),cyanBright:a("\x1B[96m","\x1B[39m"),whiteBright:a("\x1B[97m","\x1B[39m"),bgBlackBright:a("\x1B[100m","\x1B[49m"),bgRedBright:a("\x1B[101m","\x1B[49m"),bgGreenBright:a("\x1B[102m","\x1B[49m"),bgYellowBright:a("\x1B[103m","\x1B[49m"),bgBlueBright:a("\x1B[104m","\x1B[49m"),bgMagentaBright:a("\x1B[105m","\x1B[49m"),bgCyanBright:a("\x1B[106m","\x1B[49m"),bgWhiteBright:a("\x1B[107m","\x1B[49m")}};return eu.exports=u(),eu.exports.createColors=u,eu.exports}var tD=eD();const o=ku(tD);function rD({onlyFirst:D=!1}={}){const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,D?void 0:"g")}const iD=rD();function Ou(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(iD,"")}function Iu(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var _u={exports:{}};(function(D){var e={};D.exports=e,e.eastAsianWidth=function(r){var i=r.charCodeAt(0),s=r.length==2?r.charCodeAt(1):0,u=i;return 55296<=i&&i<=56319&&56320<=s&&s<=57343&&(i&=1023,s&=1023,u=i<<10|s,u+=65536),u==12288||65281<=u&&u<=65376||65504<=u&&u<=65510?"F":u==8361||65377<=u&&u<=65470||65474<=u&&u<=65479||65482<=u&&u<=65487||65490<=u&&u<=65495||65498<=u&&u<=65500||65512<=u&&u<=65518?"H":4352<=u&&u<=4447||4515<=u&&u<=4519||4602<=u&&u<=4607||9001<=u&&u<=9002||11904<=u&&u<=11929||11931<=u&&u<=12019||12032<=u&&u<=12245||12272<=u&&u<=12283||12289<=u&&u<=12350||12353<=u&&u<=12438||12441<=u&&u<=12543||12549<=u&&u<=12589||12593<=u&&u<=12686||12688<=u&&u<=12730||12736<=u&&u<=12771||12784<=u&&u<=12830||12832<=u&&u<=12871||12880<=u&&u<=13054||13056<=u&&u<=19903||19968<=u&&u<=42124||42128<=u&&u<=42182||43360<=u&&u<=43388||44032<=u&&u<=55203||55216<=u&&u<=55238||55243<=u&&u<=55291||63744<=u&&u<=64255||65040<=u&&u<=65049||65072<=u&&u<=65106||65108<=u&&u<=65126||65128<=u&&u<=65131||110592<=u&&u<=110593||127488<=u&&u<=127490||127504<=u&&u<=127546||127552<=u&&u<=127560||127568<=u&&u<=127569||131072<=u&&u<=194367||177984<=u&&u<=196605||196608<=u&&u<=262141?"W":32<=u&&u<=126||162<=u&&u<=163||165<=u&&u<=166||u==172||u==175||10214<=u&&u<=10221||10629<=u&&u<=10630?"Na":u==161||u==164||167<=u&&u<=168||u==170||173<=u&&u<=174||176<=u&&u<=180||182<=u&&u<=186||188<=u&&u<=191||u==198||u==208||215<=u&&u<=216||222<=u&&u<=225||u==230||232<=u&&u<=234||236<=u&&u<=237||u==240||242<=u&&u<=243||247<=u&&u<=250||u==252||u==254||u==257||u==273||u==275||u==283||294<=u&&u<=295||u==299||305<=u&&u<=307||u==312||319<=u&&u<=322||u==324||328<=u&&u<=331||u==333||338<=u&&u<=339||358<=u&&u<=359||u==363||u==462||u==464||u==466||u==468||u==470||u==472||u==474||u==476||u==593||u==609||u==708||u==711||713<=u&&u<=715||u==717||u==720||728<=u&&u<=731||u==733||u==735||768<=u&&u<=879||913<=u&&u<=929||931<=u&&u<=937||945<=u&&u<=961||963<=u&&u<=969||u==1025||1040<=u&&u<=1103||u==1105||u==8208||8211<=u&&u<=8214||8216<=u&&u<=8217||8220<=u&&u<=8221||8224<=u&&u<=8226||8228<=u&&u<=8231||u==8240||8242<=u&&u<=8243||u==8245||u==8251||u==8254||u==8308||u==8319||8321<=u&&u<=8324||u==8364||u==8451||u==8453||u==8457||u==8467||u==8470||8481<=u&&u<=8482||u==8486||u==8491||8531<=u&&u<=8532||8539<=u&&u<=8542||8544<=u&&u<=8555||8560<=u&&u<=8569||u==8585||8592<=u&&u<=8601||8632<=u&&u<=8633||u==8658||u==8660||u==8679||u==8704||8706<=u&&u<=8707||8711<=u&&u<=8712||u==8715||u==8719||u==8721||u==8725||u==8730||8733<=u&&u<=8736||u==8739||u==8741||8743<=u&&u<=8748||u==8750||8756<=u&&u<=8759||8764<=u&&u<=8765||u==8776||u==8780||u==8786||8800<=u&&u<=8801||8804<=u&&u<=8807||8810<=u&&u<=8811||8814<=u&&u<=8815||8834<=u&&u<=8835||8838<=u&&u<=8839||u==8853||u==8857||u==8869||u==8895||u==8978||9312<=u&&u<=9449||9451<=u&&u<=9547||9552<=u&&u<=9587||9600<=u&&u<=9615||9618<=u&&u<=9621||9632<=u&&u<=9633||9635<=u&&u<=9641||9650<=u&&u<=9651||9654<=u&&u<=9655||9660<=u&&u<=9661||9664<=u&&u<=9665||9670<=u&&u<=9672||u==9675||9678<=u&&u<=9681||9698<=u&&u<=9701||u==9711||9733<=u&&u<=9734||u==9737||9742<=u&&u<=9743||9748<=u&&u<=9749||u==9756||u==9758||u==9792||u==9794||9824<=u&&u<=9825||9827<=u&&u<=9829||9831<=u&&u<=9834||9836<=u&&u<=9837||u==9839||9886<=u&&u<=9887||9918<=u&&u<=9919||9924<=u&&u<=9933||9935<=u&&u<=9953||u==9955||9960<=u&&u<=9983||u==10045||u==10071||10102<=u&&u<=10111||11093<=u&&u<=11097||12872<=u&&u<=12879||57344<=u&&u<=63743||65024<=u&&u<=65039||u==65533||127232<=u&&u<=127242||127248<=u&&u<=127277||127280<=u&&u<=127337||127344<=u&&u<=127386||917760<=u&&u<=917999||983040<=u&&u<=1048573||1048576<=u&&u<=1114109?"A":"N"},e.characterLength=function(r){var i=this.eastAsianWidth(r);return i=="F"||i=="W"||i=="A"?2:1};function t(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(r){for(var i=t(r),s=0,u=0;u<i.length;u++)s=s+this.characterLength(i[u]);return s},e.slice=function(r,i,s){textLen=e.length(r),i=i||0,s=s||1,i<0&&(i=textLen+i),s<0&&(s=textLen+s);for(var u="",n=0,a=t(r),c=0;c<a.length;c++){var h=a[c],F=e.length(h);if(n>=i-(F==2?1:0))if(n+F<=s)u+=h;else break;n+=F}return u}})(_u);var sD=_u.exports;const aD=Iu(sD);var nD=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};const oD=Iu(nD);function Q(D,e={}){if(typeof D!="string"||D.length===0||(e={ambiguousIsNarrow:!0,...e},D=Ou(D),D.length===0))return 0;D=D.replace(oD()," ");const t=e.ambiguousIsNarrow?1:2;let r=0;for(const i of D){const s=i.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879))switch(aD.eastAsianWidth(i)){case"F":case"W":r+=2;break;case"A":r+=t;break;default:r+=1}}return r}const lu=10,Ru=(D=0)=>e=>`\x1B[${e+D}m`,ju=(D=0)=>e=>`\x1B[${38+D};5;${e}m`,Mu=(D=0)=>(e,t,r)=>`\x1B[${38+D};2;${e};${t};${r}m`,v={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]}};Object.keys(v.modifier);const cD=Object.keys(v.color),lD=Object.keys(v.bgColor);[...cD,...lD];function FD(){const D=new Map;for(const[e,t]of Object.entries(v)){for(const[r,i]of Object.entries(t))v[r]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},t[r]=v[r],D.set(i[0],i[1]);Object.defineProperty(v,e,{value:t,enumerable:!1})}return Object.defineProperty(v,"codes",{value:D,enumerable:!1}),v.color.close="\x1B[39m",v.bgColor.close="\x1B[49m",v.color.ansi=Ru(),v.color.ansi256=ju(),v.color.ansi16m=Mu(),v.bgColor.ansi=Ru(lu),v.bgColor.ansi256=ju(lu),v.bgColor.ansi16m=Mu(lu),Object.defineProperties(v,{rgbToAnsi256:{value:(e,t,r)=>e===t&&t===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5),enumerable:!1},hexToRgb:{value:e=>{const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[r]=t;r.length===3&&(r=[...r].map(s=>s+s).join(""));const i=Number.parseInt(r,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:e=>v.rgbToAnsi256(...v.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,r,i;if(e>=232)t=((e-232)*10+8)/255,r=t,i=t;else{e-=16;const n=e%36;t=Math.floor(e/36)/5,r=Math.floor(n/6)/5,i=n%6/5}const s=Math.max(t,r,i)*2;if(s===0)return 30;let u=30+(Math.round(i)<<2|Math.round(r)<<1|Math.round(t));return s===2&&(u+=60),u},enumerable:!1},rgbToAnsi:{value:(e,t,r)=>v.ansi256ToAnsi(v.rgbToAnsi256(e,t,r)),enumerable:!1},hexToAnsi:{value:e=>v.ansi256ToAnsi(v.hexToAnsi256(e)),enumerable:!1}}),v}const CD=FD(),tu=new Set(["\x1B","\x9B"]),ED=39,Fu="\x07",Nu="[",pD="]",Vu="m",Cu=`${pD}8;;`,Lu=D=>`${tu.values().next().value}${Nu}${D}${Vu}`,Pu=D=>`${tu.values().next().value}${Cu}${D}${Fu}`,hD=D=>D.split(" ").map(e=>Q(e)),Eu=(D,e,t)=>{const r=[...e];let i=!1,s=!1,u=Q(Ou(D[D.length-1]));for(const[n,a]of r.entries()){const c=Q(a);if(u+c<=t?D[D.length-1]+=a:(D.push(a),u=0),tu.has(a)&&(i=!0,s=r.slice(n+1).join("").startsWith(Cu)),i){s?a===Fu&&(i=!1,s=!1):a===Vu&&(i=!1);continue}u+=c,u===t&&n<r.length-1&&(D.push(""),u=0)}!u&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},mD=D=>{const e=D.split(" ");let t=e.length;for(;t>0&&!(Q(e[t-1])>0);)t--;return t===e.length?D:e.slice(0,t).join(" ")+e.slice(t).join("")},fD=(D,e,t={})=>{if(t.trim!==!1&&D.trim()==="")return"";let r="",i,s;const u=hD(D);let n=[""];for(const[c,h]of D.split(" ").entries()){t.trim!==!1&&(n[n.length-1]=n[n.length-1].trimStart());let F=Q(n[n.length-1]);if(c!==0&&(F>=e&&(t.wordWrap===!1||t.trim===!1)&&(n.push(""),F=0),(F>0||t.trim===!1)&&(n[n.length-1]+=" ",F++)),t.hard&&u[c]>e){const C=e-F,f=1+Math.floor((u[c]-C-1)/e);Math.floor((u[c]-1)/e)<f&&n.push(""),Eu(n,h,e);continue}if(F+u[c]>e&&F>0&&u[c]>0){if(t.wordWrap===!1&&F<e){Eu(n,h,e);continue}n.push("")}if(F+u[c]>e&&t.wordWrap===!1){Eu(n,h,e);continue}n[n.length-1]+=h}t.trim!==!1&&(n=n.map(c=>mD(c)));const a=[...n.join(`
2
- `)];for(const[c,h]of a.entries()){if(r+=h,tu.has(h)){const{groups:C}=new RegExp(`(?:\\${Nu}(?<code>\\d+)m|\\${Cu}(?<uri>.*)${Fu})`).exec(a.slice(c).join(""))||{groups:{}};if(C.code!==void 0){const f=Number.parseFloat(C.code);i=f===ED?void 0:f}else C.uri!==void 0&&(s=C.uri.length===0?void 0:C.uri)}const F=CD.codes.get(Number(i));a[c+1]===`
3
- `?(s&&(r+=Pu("")),i&&F&&(r+=Lu(F))):h===`
4
- `&&(i&&F&&(r+=Lu(i)),s&&(r+=Pu(s)))}return r};function Uu(D,e,t){return String(D).normalize().replace(/\r\n/g,`
1
+ import"node:util";import N,{stdin as vu,stdout as wu}from"node:process";import*as eu from"node:readline";import $u from"node:readline";import{Writable as Xu}from"node:stream";import{execa as G}from"execa";import y from"node:path";import yu from"which";import v from"node:fs";import{fileURLToPath as uD}from"node:url";function xu(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var cu,ku;function DD(){if(ku)return cu;ku=1;const D="\x1B",e=`${D}[`,t="\x07",r={to(u,n){return n?`${e}${n+1};${u+1}H`:`${e}${u+1}G`},move(u,n){let a="";return u<0?a+=`${e}${-u}D`:u>0&&(a+=`${e}${u}C`),n<0?a+=`${e}${-n}A`:n>0&&(a+=`${e}${n}B`),a},up:(u=1)=>`${e}${u}A`,down:(u=1)=>`${e}${u}B`,forward:(u=1)=>`${e}${u}C`,backward:(u=1)=>`${e}${u}D`,nextLine:(u=1)=>`${e}E`.repeat(u),prevLine:(u=1)=>`${e}F`.repeat(u),left:`${e}G`,hide:`${e}?25l`,show:`${e}?25h`,save:`${D}7`,restore:`${D}8`},i={up:(u=1)=>`${e}S`.repeat(u),down:(u=1)=>`${e}T`.repeat(u)},s={screen:`${e}2J`,up:(u=1)=>`${e}1J`.repeat(u),down:(u=1)=>`${e}J`.repeat(u),line:`${e}2K`,lineEnd:`${e}K`,lineStart:`${e}1K`,lines(u){let n="";for(let a=0;a<u;a++)n+=this.line+(a<u-1?r.up():"");return u&&(n+=r.left),n}};return cu={cursor:r,scroll:i,erase:s,beep:t},cu}var O=DD(),tu={exports:{}},Ou;function eD(){if(Ou)return tu.exports;Ou=1;let D=process||{},e=D.argv||[],t=D.env||{},r=!(t.NO_COLOR||e.includes("--no-color"))&&(!!t.FORCE_COLOR||e.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&t.TERM!=="dumb"||!!t.CI),i=(n,a,c=n)=>h=>{let C=""+h,l=C.indexOf(a,n.length);return~l?n+s(C,a,c,l)+a:n+C+a},s=(n,a,c,h)=>{let C="",l=0;do C+=n.substring(l,h)+c,l=h+a.length,h=n.indexOf(a,l);while(~h);return C+n.substring(l)},u=(n=r)=>{let a=n?i:()=>String;return{isColorSupported:n,reset:a("\x1B[0m","\x1B[0m"),bold:a("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:a("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:a("\x1B[3m","\x1B[23m"),underline:a("\x1B[4m","\x1B[24m"),inverse:a("\x1B[7m","\x1B[27m"),hidden:a("\x1B[8m","\x1B[28m"),strikethrough:a("\x1B[9m","\x1B[29m"),black:a("\x1B[30m","\x1B[39m"),red:a("\x1B[31m","\x1B[39m"),green:a("\x1B[32m","\x1B[39m"),yellow:a("\x1B[33m","\x1B[39m"),blue:a("\x1B[34m","\x1B[39m"),magenta:a("\x1B[35m","\x1B[39m"),cyan:a("\x1B[36m","\x1B[39m"),white:a("\x1B[37m","\x1B[39m"),gray:a("\x1B[90m","\x1B[39m"),bgBlack:a("\x1B[40m","\x1B[49m"),bgRed:a("\x1B[41m","\x1B[49m"),bgGreen:a("\x1B[42m","\x1B[49m"),bgYellow:a("\x1B[43m","\x1B[49m"),bgBlue:a("\x1B[44m","\x1B[49m"),bgMagenta:a("\x1B[45m","\x1B[49m"),bgCyan:a("\x1B[46m","\x1B[49m"),bgWhite:a("\x1B[47m","\x1B[49m"),blackBright:a("\x1B[90m","\x1B[39m"),redBright:a("\x1B[91m","\x1B[39m"),greenBright:a("\x1B[92m","\x1B[39m"),yellowBright:a("\x1B[93m","\x1B[39m"),blueBright:a("\x1B[94m","\x1B[39m"),magentaBright:a("\x1B[95m","\x1B[39m"),cyanBright:a("\x1B[96m","\x1B[39m"),whiteBright:a("\x1B[97m","\x1B[39m"),bgBlackBright:a("\x1B[100m","\x1B[49m"),bgRedBright:a("\x1B[101m","\x1B[49m"),bgGreenBright:a("\x1B[102m","\x1B[49m"),bgYellowBright:a("\x1B[103m","\x1B[49m"),bgBlueBright:a("\x1B[104m","\x1B[49m"),bgMagentaBright:a("\x1B[105m","\x1B[49m"),bgCyanBright:a("\x1B[106m","\x1B[49m"),bgWhiteBright:a("\x1B[107m","\x1B[49m")}};return tu.exports=u(),tu.exports.createColors=u,tu.exports}var tD=eD();const o=xu(tD);function rD({onlyFirst:D=!1}={}){const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,D?void 0:"g")}const iD=rD();function Su(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(iD,"")}function Tu(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var Iu={exports:{}};(function(D){var e={};D.exports=e,e.eastAsianWidth=function(r){var i=r.charCodeAt(0),s=r.length==2?r.charCodeAt(1):0,u=i;return 55296<=i&&i<=56319&&56320<=s&&s<=57343&&(i&=1023,s&=1023,u=i<<10|s,u+=65536),u==12288||65281<=u&&u<=65376||65504<=u&&u<=65510?"F":u==8361||65377<=u&&u<=65470||65474<=u&&u<=65479||65482<=u&&u<=65487||65490<=u&&u<=65495||65498<=u&&u<=65500||65512<=u&&u<=65518?"H":4352<=u&&u<=4447||4515<=u&&u<=4519||4602<=u&&u<=4607||9001<=u&&u<=9002||11904<=u&&u<=11929||11931<=u&&u<=12019||12032<=u&&u<=12245||12272<=u&&u<=12283||12289<=u&&u<=12350||12353<=u&&u<=12438||12441<=u&&u<=12543||12549<=u&&u<=12589||12593<=u&&u<=12686||12688<=u&&u<=12730||12736<=u&&u<=12771||12784<=u&&u<=12830||12832<=u&&u<=12871||12880<=u&&u<=13054||13056<=u&&u<=19903||19968<=u&&u<=42124||42128<=u&&u<=42182||43360<=u&&u<=43388||44032<=u&&u<=55203||55216<=u&&u<=55238||55243<=u&&u<=55291||63744<=u&&u<=64255||65040<=u&&u<=65049||65072<=u&&u<=65106||65108<=u&&u<=65126||65128<=u&&u<=65131||110592<=u&&u<=110593||127488<=u&&u<=127490||127504<=u&&u<=127546||127552<=u&&u<=127560||127568<=u&&u<=127569||131072<=u&&u<=194367||177984<=u&&u<=196605||196608<=u&&u<=262141?"W":32<=u&&u<=126||162<=u&&u<=163||165<=u&&u<=166||u==172||u==175||10214<=u&&u<=10221||10629<=u&&u<=10630?"Na":u==161||u==164||167<=u&&u<=168||u==170||173<=u&&u<=174||176<=u&&u<=180||182<=u&&u<=186||188<=u&&u<=191||u==198||u==208||215<=u&&u<=216||222<=u&&u<=225||u==230||232<=u&&u<=234||236<=u&&u<=237||u==240||242<=u&&u<=243||247<=u&&u<=250||u==252||u==254||u==257||u==273||u==275||u==283||294<=u&&u<=295||u==299||305<=u&&u<=307||u==312||319<=u&&u<=322||u==324||328<=u&&u<=331||u==333||338<=u&&u<=339||358<=u&&u<=359||u==363||u==462||u==464||u==466||u==468||u==470||u==472||u==474||u==476||u==593||u==609||u==708||u==711||713<=u&&u<=715||u==717||u==720||728<=u&&u<=731||u==733||u==735||768<=u&&u<=879||913<=u&&u<=929||931<=u&&u<=937||945<=u&&u<=961||963<=u&&u<=969||u==1025||1040<=u&&u<=1103||u==1105||u==8208||8211<=u&&u<=8214||8216<=u&&u<=8217||8220<=u&&u<=8221||8224<=u&&u<=8226||8228<=u&&u<=8231||u==8240||8242<=u&&u<=8243||u==8245||u==8251||u==8254||u==8308||u==8319||8321<=u&&u<=8324||u==8364||u==8451||u==8453||u==8457||u==8467||u==8470||8481<=u&&u<=8482||u==8486||u==8491||8531<=u&&u<=8532||8539<=u&&u<=8542||8544<=u&&u<=8555||8560<=u&&u<=8569||u==8585||8592<=u&&u<=8601||8632<=u&&u<=8633||u==8658||u==8660||u==8679||u==8704||8706<=u&&u<=8707||8711<=u&&u<=8712||u==8715||u==8719||u==8721||u==8725||u==8730||8733<=u&&u<=8736||u==8739||u==8741||8743<=u&&u<=8748||u==8750||8756<=u&&u<=8759||8764<=u&&u<=8765||u==8776||u==8780||u==8786||8800<=u&&u<=8801||8804<=u&&u<=8807||8810<=u&&u<=8811||8814<=u&&u<=8815||8834<=u&&u<=8835||8838<=u&&u<=8839||u==8853||u==8857||u==8869||u==8895||u==8978||9312<=u&&u<=9449||9451<=u&&u<=9547||9552<=u&&u<=9587||9600<=u&&u<=9615||9618<=u&&u<=9621||9632<=u&&u<=9633||9635<=u&&u<=9641||9650<=u&&u<=9651||9654<=u&&u<=9655||9660<=u&&u<=9661||9664<=u&&u<=9665||9670<=u&&u<=9672||u==9675||9678<=u&&u<=9681||9698<=u&&u<=9701||u==9711||9733<=u&&u<=9734||u==9737||9742<=u&&u<=9743||9748<=u&&u<=9749||u==9756||u==9758||u==9792||u==9794||9824<=u&&u<=9825||9827<=u&&u<=9829||9831<=u&&u<=9834||9836<=u&&u<=9837||u==9839||9886<=u&&u<=9887||9918<=u&&u<=9919||9924<=u&&u<=9933||9935<=u&&u<=9953||u==9955||9960<=u&&u<=9983||u==10045||u==10071||10102<=u&&u<=10111||11093<=u&&u<=11097||12872<=u&&u<=12879||57344<=u&&u<=63743||65024<=u&&u<=65039||u==65533||127232<=u&&u<=127242||127248<=u&&u<=127277||127280<=u&&u<=127337||127344<=u&&u<=127386||917760<=u&&u<=917999||983040<=u&&u<=1048573||1048576<=u&&u<=1114109?"A":"N"},e.characterLength=function(r){var i=this.eastAsianWidth(r);return i=="F"||i=="W"||i=="A"?2:1};function t(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(r){for(var i=t(r),s=0,u=0;u<i.length;u++)s=s+this.characterLength(i[u]);return s},e.slice=function(r,i,s){textLen=e.length(r),i=i||0,s=s||1,i<0&&(i=textLen+i),s<0&&(s=textLen+s);for(var u="",n=0,a=t(r),c=0;c<a.length;c++){var h=a[c],C=e.length(h);if(n>=i-(C==2?1:0))if(n+C<=s)u+=h;else break;n+=C}return u}})(Iu);var sD=Iu.exports;const aD=Tu(sD);var nD=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};const oD=Tu(nD);function Q(D,e={}){if(typeof D!="string"||D.length===0||(e={ambiguousIsNarrow:!0,...e},D=Su(D),D.length===0))return 0;D=D.replace(oD()," ");const t=e.ambiguousIsNarrow?1:2;let r=0;for(const i of D){const s=i.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879))switch(aD.eastAsianWidth(i)){case"F":case"W":r+=2;break;case"A":r+=t;break;default:r+=1}}return r}const lu=10,_u=(D=0)=>e=>`\x1B[${e+D}m`,Ru=(D=0)=>e=>`\x1B[${38+D};5;${e}m`,ju=(D=0)=>(e,t,r)=>`\x1B[${38+D};2;${e};${t};${r}m`,b={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]}};Object.keys(b.modifier);const cD=Object.keys(b.color),lD=Object.keys(b.bgColor);[...cD,...lD];function FD(){const D=new Map;for(const[e,t]of Object.entries(b)){for(const[r,i]of Object.entries(t))b[r]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},t[r]=b[r],D.set(i[0],i[1]);Object.defineProperty(b,e,{value:t,enumerable:!1})}return Object.defineProperty(b,"codes",{value:D,enumerable:!1}),b.color.close="\x1B[39m",b.bgColor.close="\x1B[49m",b.color.ansi=_u(),b.color.ansi256=Ru(),b.color.ansi16m=ju(),b.bgColor.ansi=_u(lu),b.bgColor.ansi256=Ru(lu),b.bgColor.ansi16m=ju(lu),Object.defineProperties(b,{rgbToAnsi256:{value:(e,t,r)=>e===t&&t===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5),enumerable:!1},hexToRgb:{value:e=>{const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[r]=t;r.length===3&&(r=[...r].map(s=>s+s).join(""));const i=Number.parseInt(r,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:e=>b.rgbToAnsi256(...b.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,r,i;if(e>=232)t=((e-232)*10+8)/255,r=t,i=t;else{e-=16;const n=e%36;t=Math.floor(e/36)/5,r=Math.floor(n/6)/5,i=n%6/5}const s=Math.max(t,r,i)*2;if(s===0)return 30;let u=30+(Math.round(i)<<2|Math.round(r)<<1|Math.round(t));return s===2&&(u+=60),u},enumerable:!1},rgbToAnsi:{value:(e,t,r)=>b.ansi256ToAnsi(b.rgbToAnsi256(e,t,r)),enumerable:!1},hexToAnsi:{value:e=>b.ansi256ToAnsi(b.hexToAnsi256(e)),enumerable:!1}}),b}const CD=FD(),ru=new Set(["\x1B","\x9B"]),ED=39,Fu="\x07",Mu="[",pD="]",Nu="m",Cu=`${pD}8;;`,Vu=D=>`${ru.values().next().value}${Mu}${D}${Nu}`,Lu=D=>`${ru.values().next().value}${Cu}${D}${Fu}`,hD=D=>D.split(" ").map(e=>Q(e)),Eu=(D,e,t)=>{const r=[...e];let i=!1,s=!1,u=Q(Su(D[D.length-1]));for(const[n,a]of r.entries()){const c=Q(a);if(u+c<=t?D[D.length-1]+=a:(D.push(a),u=0),ru.has(a)&&(i=!0,s=r.slice(n+1).join("").startsWith(Cu)),i){s?a===Fu&&(i=!1,s=!1):a===Nu&&(i=!1);continue}u+=c,u===t&&n<r.length-1&&(D.push(""),u=0)}!u&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},mD=D=>{const e=D.split(" ");let t=e.length;for(;t>0&&!(Q(e[t-1])>0);)t--;return t===e.length?D:e.slice(0,t).join(" ")+e.slice(t).join("")},fD=(D,e,t={})=>{if(t.trim!==!1&&D.trim()==="")return"";let r="",i,s;const u=hD(D);let n=[""];for(const[c,h]of D.split(" ").entries()){t.trim!==!1&&(n[n.length-1]=n[n.length-1].trimStart());let C=Q(n[n.length-1]);if(c!==0&&(C>=e&&(t.wordWrap===!1||t.trim===!1)&&(n.push(""),C=0),(C>0||t.trim===!1)&&(n[n.length-1]+=" ",C++)),t.hard&&u[c]>e){const l=e-C,I=1+Math.floor((u[c]-l-1)/e);Math.floor((u[c]-1)/e)<I&&n.push(""),Eu(n,h,e);continue}if(C+u[c]>e&&C>0&&u[c]>0){if(t.wordWrap===!1&&C<e){Eu(n,h,e);continue}n.push("")}if(C+u[c]>e&&t.wordWrap===!1){Eu(n,h,e);continue}n[n.length-1]+=h}t.trim!==!1&&(n=n.map(c=>mD(c)));const a=[...n.join(`
2
+ `)];for(const[c,h]of a.entries()){if(r+=h,ru.has(h)){const{groups:l}=new RegExp(`(?:\\${Mu}(?<code>\\d+)m|\\${Cu}(?<uri>.*)${Fu})`).exec(a.slice(c).join(""))||{groups:{}};if(l.code!==void 0){const I=Number.parseFloat(l.code);i=I===ED?void 0:I}else l.uri!==void 0&&(s=l.uri.length===0?void 0:l.uri)}const C=CD.codes.get(Number(i));a[c+1]===`
3
+ `?(s&&(r+=Lu("")),i&&C&&(r+=Vu(C))):h===`
4
+ `&&(i&&C&&(r+=Vu(i)),s&&(r+=Lu(s)))}return r};function Pu(D,e,t){return String(D).normalize().replace(/\r\n/g,`
5
5
  `).split(`
6
6
  `).map(r=>fD(r,e,t)).join(`
7
- `)}const dD=["up","down","left","right","space","enter","cancel"],ru={actions:new Set(dD),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};function pu(D,e){if(typeof D=="string")return ru.aliases.get(D)===e;for(const t of D)if(t!==void 0&&pu(t,e))return!0;return!1}function BD(D,e){if(D===e)return;const t=D.split(`
7
+ `)}const dD=["up","down","left","right","space","enter","cancel"],iu={actions:new Set(dD),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};function pu(D,e){if(typeof D=="string")return iu.aliases.get(D)===e;for(const t of D)if(t!==void 0&&pu(t,e))return!0;return!1}function BD(D,e){if(D===e)return;const t=D.split(`
8
8
  `),r=e.split(`
9
- `),i=[];for(let s=0;s<Math.max(t.length,r.length);s++)t[s]!==r[s]&&i.push(s);return i}const gD=globalThis.process.platform.startsWith("win"),hu=Symbol("clack:cancel");function _(D){return D===hu}function iu(D,e){const t=D;t.isTTY&&t.setRawMode(e)}function bD({input:D=wu,output:e=$u,overwrite:t=!0,hideCursor:r=!0}={}){const i=Du.createInterface({input:D,output:e,prompt:"",tabSize:1});Du.emitKeypressEvents(D,i),D.isTTY&&D.setRawMode(!0);const s=(u,{name:n,sequence:a})=>{const c=String(u);if(pu([c,n,a],"cancel")){r&&e.write(S.cursor.show),process.exit(0);return}if(!t)return;const h=n==="return"?0:-1,F=n==="return"?-1:0;Du.moveCursor(e,h,F,()=>{Du.clearLine(e,1,()=>{D.once("keypress",s)})})};return r&&e.write(S.cursor.hide),D.once("keypress",s),()=>{D.off("keypress",s),r&&e.write(S.cursor.show),D.isTTY&&!gD&&D.setRawMode(!1),i.terminal=!1,i.close()}}var vD=Object.defineProperty,AD=(D,e,t)=>e in D?vD(D,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):D[e]=t,R=(D,e,t)=>(AD(D,typeof e!="symbol"?e+"":e,t),t);let mu=class{constructor(e,t=!0){R(this,"input"),R(this,"output"),R(this,"_abortSignal"),R(this,"rl"),R(this,"opts"),R(this,"_render"),R(this,"_track",!1),R(this,"_prevFrame",""),R(this,"_subscribers",new Map),R(this,"_cursor",0),R(this,"state","initial"),R(this,"error",""),R(this,"value");const{input:r=wu,output:i=$u,render:s,signal:u,...n}=e;this.opts=n,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=s.bind(this),this._track=t,this._abortSignal=u,this.input=r,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){const r=this._subscribers.get(e)??[];r.push(t),this._subscribers.set(e,r)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){const r=this._subscribers.get(e)??[],i=[];for(const s of r)s.cb(...t),s.once&&i.push(()=>r.splice(r.indexOf(s),1));for(const s of i)s()}prompt(){return new Promise((e,t)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(hu);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}const r=new Xu;r._write=(i,s,u)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),u()},this.input.pipe(r),this.rl=yu.createInterface({input:this.input,output:r,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),yu.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),iu(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(S.cursor.show),this.output.off("resize",this.render),iu(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(S.cursor.show),this.output.off("resize",this.render),iu(this.input,!1),e(hu)})})}onKeypress(e,t){if(this.state==="error"&&(this.state="active"),t?.name&&(!this._track&&ru.aliases.has(t.name)&&this.emit("cursor",ru.aliases.get(t.name)),ru.actions.has(t.name)&&this.emit("cursor",t.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),e===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),e&&this.emit("key",e.toLowerCase()),t?.name==="return"){if(this.opts.validate){const r=this.opts.validate(this.value);r&&(this.error=r instanceof Error?r.message:r,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}pu([e,t?.name,t?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
10
- `),iu(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){const e=Uu(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
11
- `).length-1;this.output.write(S.cursor.move(-999,e*-1))}render(){const e=Uu(this._render(this)??"",process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(S.cursor.hide);else{const t=BD(this._prevFrame,e);if(this.restoreCursor(),t&&t?.length===1){const r=t[0];this.output.write(S.cursor.move(0,r)),this.output.write(S.erase.lines(1));const i=e.split(`
12
- `);this.output.write(i[r]),this._prevFrame=e,this.output.write(S.cursor.move(0,i.length-r-1));return}if(t&&t?.length>1){const r=t[0];this.output.write(S.cursor.move(0,r)),this.output.write(S.erase.down());const i=e.split(`
9
+ `),i=[];for(let s=0;s<Math.max(t.length,r.length);s++)t[s]!==r[s]&&i.push(s);return i}const gD=globalThis.process.platform.startsWith("win"),hu=Symbol("clack:cancel");function _(D){return D===hu}function su(D,e){const t=D;t.isTTY&&t.setRawMode(e)}function bD({input:D=vu,output:e=wu,overwrite:t=!0,hideCursor:r=!0}={}){const i=eu.createInterface({input:D,output:e,prompt:"",tabSize:1});eu.emitKeypressEvents(D,i),D.isTTY&&D.setRawMode(!0);const s=(u,{name:n,sequence:a})=>{const c=String(u);if(pu([c,n,a],"cancel")){r&&e.write(O.cursor.show),process.exit(0);return}if(!t)return;const h=n==="return"?0:-1,C=n==="return"?-1:0;eu.moveCursor(e,h,C,()=>{eu.clearLine(e,1,()=>{D.once("keypress",s)})})};return r&&e.write(O.cursor.hide),D.once("keypress",s),()=>{D.off("keypress",s),r&&e.write(O.cursor.show),D.isTTY&&!gD&&D.setRawMode(!1),i.terminal=!1,i.close()}}var AD=Object.defineProperty,vD=(D,e,t)=>e in D?AD(D,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):D[e]=t,R=(D,e,t)=>(vD(D,typeof e!="symbol"?e+"":e,t),t);class mu{constructor(e,t=!0){R(this,"input"),R(this,"output"),R(this,"_abortSignal"),R(this,"rl"),R(this,"opts"),R(this,"_render"),R(this,"_track",!1),R(this,"_prevFrame",""),R(this,"_subscribers",new Map),R(this,"_cursor",0),R(this,"state","initial"),R(this,"error",""),R(this,"value");const{input:r=vu,output:i=wu,render:s,signal:u,...n}=e;this.opts=n,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=s.bind(this),this._track=t,this._abortSignal=u,this.input=r,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){const r=this._subscribers.get(e)??[];r.push(t),this._subscribers.set(e,r)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){const r=this._subscribers.get(e)??[],i=[];for(const s of r)s.cb(...t),s.once&&i.push(()=>r.splice(r.indexOf(s),1));for(const s of i)s()}prompt(){return new Promise((e,t)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(hu);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}const r=new Xu;r._write=(i,s,u)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),u()},this.input.pipe(r),this.rl=$u.createInterface({input:this.input,output:r,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),$u.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),su(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(O.cursor.show),this.output.off("resize",this.render),su(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(O.cursor.show),this.output.off("resize",this.render),su(this.input,!1),e(hu)})})}onKeypress(e,t){if(this.state==="error"&&(this.state="active"),t?.name&&(!this._track&&iu.aliases.has(t.name)&&this.emit("cursor",iu.aliases.get(t.name)),iu.actions.has(t.name)&&this.emit("cursor",t.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),e===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),e&&this.emit("key",e.toLowerCase()),t?.name==="return"){if(this.opts.validate){const r=this.opts.validate(this.value);r&&(this.error=r instanceof Error?r.message:r,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}pu([e,t?.name,t?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
10
+ `),su(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){const e=Pu(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
11
+ `).length-1;this.output.write(O.cursor.move(-999,e*-1))}render(){const e=Pu(this._render(this)??"",process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(O.cursor.hide);else{const t=BD(this._prevFrame,e);if(this.restoreCursor(),t&&t?.length===1){const r=t[0];this.output.write(O.cursor.move(0,r)),this.output.write(O.erase.lines(1));const i=e.split(`
12
+ `);this.output.write(i[r]),this._prevFrame=e,this.output.write(O.cursor.move(0,i.length-r-1));return}if(t&&t?.length>1){const r=t[0];this.output.write(O.cursor.move(0,r)),this.output.write(O.erase.down());const i=e.split(`
13
13
  `).slice(r);this.output.write(i.join(`
14
- `)),this._prevFrame=e;return}this.output.write(S.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}};class wD extends mu{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",t=>{this.output.write(S.cursor.move(0,-1)),this.value=t,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var $D=Object.defineProperty,yD=(D,e,t)=>e in D?$D(D,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):D[e]=t,Gu=(D,e,t)=>(yD(D,typeof e!="symbol"?e+"":e,t),t);class xD extends mu{constructor(e){super(e,!1),Gu(this,"options"),Gu(this,"cursor",0),this.options=e.options,this.cursor=this.options.findIndex(({value:t})=>t===e.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",t=>{switch(t){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}class kD extends mu{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;const e=this.value.slice(0,this.cursor),[t,...r]=this.value.slice(this.cursor);return`${e}${o.inverse(t)}${r.join("")}`}get cursor(){return this._cursor}constructor(e){super(e),this.on("finalize",()=>{this.value||(this.value=e.defaultValue)})}}function TD(){return N.platform!=="win32"?N.env.TERM!=="linux":!!N.env.CI||!!N.env.WT_SESSION||!!N.env.TERMINUS_SUBLIME||N.env.ConEmuTask==="{cmd::Cmder}"||N.env.TERM_PROGRAM==="Terminus-Sublime"||N.env.TERM_PROGRAM==="vscode"||N.env.TERM==="xterm-256color"||N.env.TERM==="alacritty"||N.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const fu=TD(),j=(D,e)=>fu?D:e,SD=j("\u25C6","*"),Wu=j("\u25A0","x"),zu=j("\u25B2","x"),du=j("\u25C7","o"),OD=j("\u250C","T"),A=j("\u2502","|"),K=j("\u2514","\u2014"),Bu=j("\u25CF",">"),gu=j("\u25CB"," "),ID=j("\u25CF","\u2022"),_D=j("\u25C6","*"),RD=j("\u25B2","!"),jD=j("\u25A0","x"),bu=D=>{switch(D){case"initial":case"active":return o.cyan(SD);case"cancel":return o.red(Wu);case"error":return o.yellow(zu);case"submit":return o.green(du)}},MD=D=>{const{cursor:e,options:t,style:r}=D,i=D.maxItems??Number.POSITIVE_INFINITY,s=Math.max(process.stdout.rows-4,0),u=Math.min(s,Math.max(i,5));let n=0;e>=n+u-3?n=Math.max(Math.min(e-u+3,t.length-u),0):e<n+2&&(n=Math.max(e-2,0));const a=u<t.length&&n>0,c=u<t.length&&n+u<t.length;return t.slice(n,n+u).map((h,F,C)=>{const f=F===0&&a,m=F===C.length-1&&c;return f||m?o.dim("..."):r(h,F+n===e)})},su=D=>new kD({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){const e=`${o.gray(A)}
14
+ `)),this._prevFrame=e;return}this.output.write(O.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}}class wD extends mu{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",t=>{this.output.write(O.cursor.move(0,-1)),this.value=t,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var $D=Object.defineProperty,yD=(D,e,t)=>e in D?$D(D,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):D[e]=t,Uu=(D,e,t)=>(yD(D,typeof e!="symbol"?e+"":e,t),t);class xD extends mu{constructor(e){super(e,!1),Uu(this,"options"),Uu(this,"cursor",0),this.options=e.options,this.cursor=this.options.findIndex(({value:t})=>t===e.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",t=>{switch(t){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}class kD extends mu{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;const e=this.value.slice(0,this.cursor),[t,...r]=this.value.slice(this.cursor);return`${e}${o.inverse(t)}${r.join("")}`}get cursor(){return this._cursor}constructor(e){super(e),this.on("finalize",()=>{this.value||(this.value=e.defaultValue)})}}function OD(){return N.platform!=="win32"?N.env.TERM!=="linux":!!N.env.CI||!!N.env.WT_SESSION||!!N.env.TERMINUS_SUBLIME||N.env.ConEmuTask==="{cmd::Cmder}"||N.env.TERM_PROGRAM==="Terminus-Sublime"||N.env.TERM_PROGRAM==="vscode"||N.env.TERM==="xterm-256color"||N.env.TERM==="alacritty"||N.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const fu=OD(),j=(D,e)=>fu?D:e,SD=j("\u25C6","*"),Gu=j("\u25A0","x"),Wu=j("\u25B2","x"),du=j("\u25C7","o"),TD=j("\u250C","T"),A=j("\u2502","|"),K=j("\u2514","\u2014"),Bu=j("\u25CF",">"),gu=j("\u25CB"," "),ID=j("\u25CF","\u2022"),_D=j("\u25C6","*"),RD=j("\u25B2","!"),jD=j("\u25A0","x"),bu=D=>{switch(D){case"initial":case"active":return o.cyan(SD);case"cancel":return o.red(Gu);case"error":return o.yellow(Wu);case"submit":return o.green(du)}},MD=D=>{const{cursor:e,options:t,style:r}=D,i=D.maxItems??Number.POSITIVE_INFINITY,s=Math.max(process.stdout.rows-4,0),u=Math.min(s,Math.max(i,5));let n=0;e>=n+u-3?n=Math.max(Math.min(e-u+3,t.length-u),0):e<n+2&&(n=Math.max(e-2,0));const a=u<t.length&&n>0,c=u<t.length&&n+u<t.length;return t.slice(n,n+u).map((h,C,l)=>{const I=C===0&&a,m=C===l.length-1&&c;return I||m?o.dim("..."):r(h,C+n===e)})},X=D=>new kD({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){const e=`${o.gray(A)}
15
15
  ${bu(this.state)} ${D.message}
16
16
  `,t=D.placeholder?o.inverse(D.placeholder[0])+o.dim(D.placeholder.slice(1)):o.inverse(o.hidden("_")),r=this.value?this.valueWithCursor:t;switch(this.state){case"error":return`${e.trim()}
17
17
  ${o.yellow(A)} ${r}
@@ -30,29 +30,29 @@ ${bu(this.state)} ${D.message}
30
30
  ${o.gray(A)}`;default:return`${t}${o.cyan(A)} ${MD({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(r,i)=>e(r,i?"active":"inactive")}).join(`
31
31
  ${o.cyan(A)} `)}
32
32
  ${o.cyan(K)}
33
- `}}}).prompt()},g=(D="")=>{process.stdout.write(`${o.gray(K)} ${o.red(D)}
33
+ `}}}).prompt()},d=(D="")=>{process.stdout.write(`${o.gray(K)} ${o.red(D)}
34
34
 
35
- `)},VD=(D="")=>{process.stdout.write(`${o.gray(OD)} ${D}
35
+ `)},VD=(D="")=>{process.stdout.write(`${o.gray(TD)} ${D}
36
36
  `)},LD=(D="")=>{process.stdout.write(`${o.gray(A)}
37
37
  ${o.gray(K)} ${D}
38
38
 
39
39
  `)},M={message:(D="",{symbol:e=o.gray(A)}={})=>{const t=[`${o.gray(A)}`];if(D){const[r,...i]=D.split(`
40
40
  `);t.push(`${e} ${r}`,...i.map(s=>`${o.gray(A)} ${s}`))}process.stdout.write(`${t.join(`
41
41
  `)}
42
- `)},info:D=>{M.message(D,{symbol:o.blue(ID)})},success:D=>{M.message(D,{symbol:o.green(_D)})},step:D=>{M.message(D,{symbol:o.green(du)})},warn:D=>{M.message(D,{symbol:o.yellow(RD)})},warning:D=>{M.warn(D)},error:D=>{M.message(D,{symbol:o.red(jD)})}};`${o.gray(A)}`;const PD=({indicator:D="dots"}={})=>{const e=fu?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],t=fu?80:120,r=process.env.CI==="true";let i,s,u=!1,n="",a,c=performance.now();const h=B=>{const k=B>1?"Something went wrong":"Canceled";u&&Y(k,B)},F=()=>h(2),C=()=>h(1),f=()=>{process.on("uncaughtExceptionMonitor",F),process.on("unhandledRejection",F),process.on("SIGINT",C),process.on("SIGTERM",C),process.on("exit",h)},m=()=>{process.removeListener("uncaughtExceptionMonitor",F),process.removeListener("unhandledRejection",F),process.removeListener("SIGINT",C),process.removeListener("SIGTERM",C),process.removeListener("exit",h)},E=()=>{if(a===void 0)return;r&&process.stdout.write(`
42
+ `)},info:D=>{M.message(D,{symbol:o.blue(ID)})},success:D=>{M.message(D,{symbol:o.green(_D)})},step:D=>{M.message(D,{symbol:o.green(du)})},warn:D=>{M.message(D,{symbol:o.yellow(RD)})},warning:D=>{M.warn(D)},error:D=>{M.message(D,{symbol:o.red(jD)})}};`${o.gray(A)}`;const PD=({indicator:D="dots"}={})=>{const e=fu?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],t=fu?80:120,r=process.env.CI==="true";let i,s,u=!1,n="",a,c=performance.now();const h=B=>{const x=B>1?"Something went wrong":"Canceled";u&&Y(x,B)},C=()=>h(2),l=()=>h(1),I=()=>{process.on("uncaughtExceptionMonitor",C),process.on("unhandledRejection",C),process.on("SIGINT",l),process.on("SIGTERM",l),process.on("exit",h)},m=()=>{process.removeListener("uncaughtExceptionMonitor",C),process.removeListener("unhandledRejection",C),process.removeListener("SIGINT",l),process.removeListener("SIGTERM",l),process.removeListener("exit",h)},E=()=>{if(a===void 0)return;r&&process.stdout.write(`
43
43
  `);const B=a.split(`
44
- `);process.stdout.write(S.cursor.move(-999,B.length-1)),process.stdout.write(S.erase.down(B.length))},l=B=>B.replace(/\.+$/,""),T=B=>{const k=(performance.now()-B)/1e3,b=Math.floor(k/60),p=Math.floor(k%60);return b>0?`[${b}m ${p}s]`:`[${p}s]`},uu=(B="")=>{u=!0,i=bD(),n=l(B),c=performance.now(),process.stdout.write(`${o.gray(A)}
45
- `);let k=0,b=0;f(),s=setInterval(()=>{if(r&&n===a)return;E(),a=n;const p=o.magenta(e[k]);if(r)process.stdout.write(`${p} ${n}...`);else if(D==="timer")process.stdout.write(`${p} ${n} ${T(c)}`);else{const $=".".repeat(Math.floor(b)).slice(0,3);process.stdout.write(`${p} ${n}${$}`)}k=k+1<e.length?k+1:0,b=b<e.length?b+.125:0},t)},Y=(B="",k=0)=>{u=!1,clearInterval(s),E();const b=k===0?o.green(du):k===1?o.red(Wu):o.red(zu);n=l(B??n),D==="timer"?process.stdout.write(`${b} ${n} ${T(c)}
46
- `):process.stdout.write(`${b} ${n}
47
- `),m(),i()};return{start:uu,stop:Y,message:(B="")=>{n=l(B??n)}}},au=async D=>{for(const e of D){if(e.enabled===!1)continue;const t=PD();t.start(e.title);const r=await e.task(t.message);t.stop(r||e.title)}};let z=!0;const q=typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{};let X=0;if(q.process&&q.process.env&&q.process.stdout){const{FORCE_COLOR:D,NODE_DISABLE_COLORS:e,NO_COLOR:t,TERM:r,COLORTERM:i}=q.process.env;e||t||D==="0"?z=!1:D==="1"||D==="2"||D==="3"?z=!0:r==="dumb"?z=!1:"CI"in q.process.env&&["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(s=>s in q.process.env)?z=!0:z=process.stdout.isTTY,z&&(process.platform==="win32"||i&&(i==="truecolor"||i==="24bit")?X=3:r&&(r.endsWith("-256color")||r.endsWith("256"))?X=2:X=1)}let Yu={enabled:z,supportLevel:X};function nu(D,e,t=1){const r=`\x1B[${D}m`,i=`\x1B[${e}m`,s=new RegExp(`\\x1b\\[${e}m`,"g");return u=>Yu.enabled&&Yu.supportLevel>=t?r+(""+u).replace(s,r)+i:""+u}const UD=nu(31,39),ou=nu(36,39),GD=nu(90,39),WD=nu(91,39);var vu,Ku;function zD(){if(Ku)return vu;Ku=1;function D(r,i){var s=r;i.slice(0,-1).forEach(function(n){s=s[n]||{}});var u=i[i.length-1];return u in s}function e(r){return typeof r=="number"||/^0x[0-9a-f]+$/i.test(r)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(r)}function t(r,i){return i==="constructor"&&typeof r[i]=="function"||i==="__proto__"}return vu=function(r,i){i||(i={});var s={bools:{},strings:{},unknownFn:null};typeof i.unknown=="function"&&(s.unknownFn=i.unknown),typeof i.boolean=="boolean"&&i.boolean?s.allBools=!0:[].concat(i.boolean).filter(Boolean).forEach(function(p){s.bools[p]=!0});var u={};function n(p){return u[p].some(function($){return s.bools[$]})}Object.keys(i.alias||{}).forEach(function(p){u[p]=[].concat(i.alias[p]),u[p].forEach(function($){u[$]=[p].concat(u[p].filter(function(L){return $!==L}))})}),[].concat(i.string).filter(Boolean).forEach(function(p){s.strings[p]=!0,u[p]&&[].concat(u[p]).forEach(function($){s.strings[$]=!0})});var a=i.default||{},c={_:[]};function h(p,$){return s.allBools&&/^--[^=]+$/.test($)||s.strings[p]||s.bools[p]||u[p]}function F(p,$,L){for(var d=p,Z=0;Z<$.length-1;Z++){var V=$[Z];if(t(d,V))return;d[V]===void 0&&(d[V]={}),(d[V]===Object.prototype||d[V]===Number.prototype||d[V]===String.prototype)&&(d[V]={}),d[V]===Array.prototype&&(d[V]=[]),d=d[V]}var P=$[$.length-1];t(d,P)||((d===Object.prototype||d===Number.prototype||d===String.prototype)&&(d={}),d===Array.prototype&&(d=[]),d[P]===void 0||s.bools[P]||typeof d[P]=="boolean"?d[P]=L:Array.isArray(d[P])?d[P].push(L):d[P]=[d[P],L])}function C(p,$,L){if(!(L&&s.unknownFn&&!h(p,L)&&s.unknownFn(L)===!1)){var d=!s.strings[p]&&e($)?Number($):$;F(c,p.split("."),d),(u[p]||[]).forEach(function(Z){F(c,Z.split("."),d)})}}Object.keys(s.bools).forEach(function(p){C(p,a[p]===void 0?!1:a[p])});var f=[];r.indexOf("--")!==-1&&(f=r.slice(r.indexOf("--")+1),r=r.slice(0,r.indexOf("--")));for(var m=0;m<r.length;m++){var E=r[m],l,T;if(/^--.+=/.test(E)){var uu=E.match(/^--([^=]+)=([\s\S]*)$/);l=uu[1];var Y=uu[2];s.bools[l]&&(Y=Y!=="false"),C(l,Y,E)}else if(/^--no-.+/.test(E))l=E.match(/^--no-(.+)/)[1],C(l,!1,E);else if(/^--.+/.test(E))l=E.match(/^--(.+)/)[1],T=r[m+1],T!==void 0&&!/^(-|--)[^-]/.test(T)&&!s.bools[l]&&!s.allBools&&(!u[l]||!n(l))?(C(l,T,E),m+=1):/^(true|false)$/.test(T)?(C(l,T==="true",E),m+=1):C(l,s.strings[l]?"":!0,E);else if(/^-[^-]+/.test(E)){for(var B=E.slice(1,-1).split(""),k=!1,b=0;b<B.length;b++){if(T=E.slice(b+2),T==="-"){C(B[b],T,E);continue}if(/[A-Za-z]/.test(B[b])&&T[0]==="="){C(B[b],T.slice(1),E),k=!0;break}if(/[A-Za-z]/.test(B[b])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(T)){C(B[b],T,E),k=!0;break}if(B[b+1]&&B[b+1].match(/\W/)){C(B[b],E.slice(b+2),E),k=!0;break}else C(B[b],s.strings[B[b]]?"":!0,E)}l=E.slice(-1)[0],!k&&l!=="-"&&(r[m+1]&&!/^(-|--)[^-]/.test(r[m+1])&&!s.bools[l]&&(!u[l]||!n(l))?(C(l,r[m+1],E),m+=1):r[m+1]&&/^(true|false)$/.test(r[m+1])?(C(l,r[m+1]==="true",E),m+=1):C(l,s.strings[l]?"":!0,E))}else if((!s.unknownFn||s.unknownFn(E)!==!1)&&c._.push(s.strings._||!e(E)?E:Number(E)),i.stopEarly){c._.push.apply(c._,r.slice(m+1));break}}return Object.keys(a).forEach(function(p){D(c,p.split("."))||(F(c,p.split("."),a[p]),(u[p]||[]).forEach(function($){F(c,$.split("."),a[p])}))}),i["--"]?c["--"]=f.slice():f.forEach(function(p){c._.push(p)}),c},vu}var YD=zD();const KD=ku(YD);async function qD({rootFolder:D}){const e=x.join(D,".git");try{if(w.existsSync(e)){M.warn("Git repository already exists.");return}}catch(r){M.error(`Error checking git folder: ${r}`);return}const t=await W({message:"Do you want to initialize a git repository? (recommended)",options:[{value:!0,label:"Yes",hint:"You can use GitHub to track changes and collaborate with others."},{value:!1,label:"No",hint:"It is not recommended to skip this step."}],initialValue:!0});if(_(t)&&(g("Operation cancelled."),process.exit(0)),t){const r=await au([{title:"Initializing git repository...",task:async i=>{const s=await G("git",["init","-b","main"],{cwd:D});i(s.stdout);const u=await G("git",["add","."],{cwd:D});return i(u.stdout),"Git repository initialized."}}]);_(r)&&(g("Operation cancelled."),process.exit(0)),M.message(`Now, you can use GitHub Desktop upload your project to GitHub.
48
- GitHub Desktop: https://github.com/apps/desktop`)}}var H=(D=>(D.VisualStudioCode="vscode",D.Cursor="cursor",D.VSCodium="codium",D.Other="other",D))(H||{});async function HD({rootFolder:D,fileToOpen:e}){const t=await W({message:"Which IDE do you want to use?",options:[{value:H.VisualStudioCode,label:"Visual Studio Code"},{value:H.Cursor,label:"Cursor"},{value:H.VSCodium,label:"VSCodium"},{value:H.Other,label:"Other"}],initialValue:H.VisualStudioCode});if(_(t)&&(g("Operation cancelled."),process.exit(0)),t===void 0)return;let r,i;switch(t){case"vscode":i="Opening in Visual Studio Code...",r="code";break;case"cursor":i="Opening in Cursor...",r="cursor";break;case"codium":i="Opening in VSCodium...",r="codium";break;default:return}await au([{title:i,task:async s=>{try{await xu(r);const u=await G(r,[D]);s(u.stdout);const n=await G(r,[`${D}/README.md`]);if(s(n.stdout),e){const a=await G(r,[`${D}/${e}`]);s(a.stdout)}return`Opened project using ${t}`}catch{return`Could not open project using ${t}, since ${t} was not in your PATH`}}}])}var U=(D=>(D[D.VisualNovel=0]="VisualNovel",D[D.TextStory=1]="TextStory",D[D.PointAndClick=2]="PointAndClick",D[D.GameEngine=3]="GameEngine",D))(U||{}),y=(D=>(D[D.Ink=0]="Ink",D[D.Renpy=1]="Renpy",D[D.Typescript=2]="Typescript",D))(y||{}),O=(D=>(D[D.React=0]="React",D[D.Vue=1]="Vue",D[D.Angular=2]="Angular",D))(O||{});const Au="My Game",JD="my-game",J=[{type:U.VisualNovel,name:"Visual Novel",availableUI:[O.React],availableNarrativeLanguages:[y.Ink,y.Typescript]},{type:U.TextStory,name:"Text-based Story",availableUI:[O.React],availableNarrativeLanguages:[y.Ink,y.Typescript]},{type:U.PointAndClick,name:"Point & Click Adventure",availableUI:[O.React],availableNarrativeLanguages:[y.Ink,y.Typescript]},{type:U.GameEngine,name:"Game Engine",availableUI:[],availableNarrativeLanguages:[]}];async function ZD({packageName:D}){const e=await W({message:"Select the type of game you want to create:",options:J.map(a=>({label:a.name,value:a.type})),initialValue:J[0].type});_(e)&&(g("Operation cancelled."),process.exit(0));const t=J.find(a=>a.type===e)?.availableUI.map(a=>{let c="";switch(a){case O.React:c=ou("React");break;case O.Vue:c=GD("Vue");break;case O.Angular:c=UD("Angular");break}return{label:c,value:a}})||[];let r;t.length===1?(M.warning(`Only one UI framework available: ${t[0].label}. Using it by default.`),r=t[0].value):t.length>0?(r=await W({message:"Select the UI framework you want to use:",options:t,initialValue:J.find(a=>a.type===e)?.availableUI[0]}),_(r)&&(g("Operation cancelled."),process.exit(0))):r=void 0;const i=J.find(a=>a.type===e)?.availableNarrativeLanguages.map(a=>{let c="";switch(a){case y.Ink:c="Ink + Typescript";break;case y.Renpy:c=WD("Renpy");break;case y.Typescript:c=ou("Typescript");break}return{label:c,value:a}})||[];let s;i.length===1?(M.warning(`Only one narrative language available: ${i[0].label}. Using it by default.`),s=i[0].value):i.length>0?(s=await W({message:"Select the narrative language you want to use:",options:i,initialValue:J.find(a=>a.type===e)?.availableNarrativeLanguages[0]}),_(s)&&(g("Operation cancelled."),process.exit(0))):s=void 0;const u=await W({message:"Which devices is the project intended for?",options:[{label:"Web page",value:!1},{label:"Web page + Desktop + Mobile (Tauri)",value:!0}],initialValue:!1});_(u)&&(g("Operation cancelled."),process.exit(0));let n;return u?(n=await su({message:"Project identifier:",initialValue:`com.${D}.app`,validate:a=>{if(!a)return"Identifier is required.";if(!/^[a-zA-Z0-9_.\-]+$/.test(a))return"Identifier can only contain letters, numbers, underscores, dots and dashes."}}),_(n)&&(g("Operation cancelled."),process.exit(0))):n="",{gameType:e,UIFramework:r,narrativeLanguage:s,multidevice:u,identifier:n}}var I=(D=>(D.Delete="delete",D.Overwrite="overwrite",D.Skip="skip",D.Ask="ask",D.Cancel="cancel",D))(I||{});function QD(D){return D?.trim().replace(/\/+$/g,"")}function XD(D){const e=w.readdirSync(D);return e.length===0||e.length===1&&e[0]===".git"}function ue(D){if(w.existsSync(D))for(const e of w.readdirSync(D))e!==".git"&&w.rmSync(x.resolve(D,e),{recursive:!0,force:!0})}function De(D){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(D)}function qu(D){return D.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}async function ee({argTargetDir:D,targetDir:e}){const t=()=>e==="."?x.basename(x.resolve()):e;let r;D?r=Au:(r=await su({message:"Project name:",defaultValue:Au,placeholder:Au,validate:n=>{if(!n)return"Project name cannot be empty"}}),_(r)&&(g("Operation cancelled."),process.exit(0)));const i=await su({message:"Project description:",defaultValue:"A new game project",placeholder:"A new game project",validate:n=>{if(!n)return"Project description cannot be empty"}});_(i)&&(g("Operation cancelled."),process.exit(0));const s=await su({message:"Package name:",defaultValue:qu(t()),placeholder:qu(t()),validate:n=>{if(!n)return"Package name cannot be empty";if(!De(n))return"Invalid package name. The name can only include URL-friendly characters."}});_(s)&&(g("Operation cancelled."),process.exit(0));let u;return w.existsSync(s)&&!XD(s)?(u=await W({message:"Overwrite existing files?",options:[{hint:"Delete all existing files and create a new project",label:"Delete all",value:I.Delete},{hint:"Overwrite existing conflicting files",label:"Overwrite",value:I.Overwrite},{hint:"Skip existing conflicting files",label:"Skip",value:I.Skip},{hint:"Ask for each file",label:"Ask",value:I.Ask},{hint:"Cancel operation",label:"Cancel",value:I.Cancel}],initialValue:I.Overwrite}),(_(u)||u===I.Cancel)&&(g("Operation cancelled."),process.exit(0))):u=void 0,{projectName:r,description:i,packageName:s,overwrite:u}}const Hu={_gitignore:".gitignore"};async function te({rootFolder:D,overwrite:e,template:t,packageName:r,description:i,projectName:s,identifier:u}){const n=await au([{title:`Creating project in ${D}...`,task:async a=>{switch(e){case I.Delete:ue(D);break;case I.Overwrite:case I.Skip:case I.Ask:break;default:w.mkdirSync(D,{recursive:!0});break}const c=x.resolve(uD(import.meta.url),"../..",`${t}`),h=(m,E)=>{const l=x.join(D,Hu[m]??m);E?w.writeFileSync(l,E):Ju(x.join(c,m),l)},F=w.readdirSync(c).map(async m=>{const E=x.join(D,Hu[m]??m);if(w.existsSync(E))switch(e){case I.Ask:const l=await ND({message:`File ${E} already exists. Do you want to overwrite it?`,initialValue:!1});if(_(l)&&(g("Operation cancelled."),process.exit(0)),!l)return;w.rmSync(E,{recursive:!0,force:!0});break;case I.Skip:return;case I.Delete:case I.Overwrite:w.rmSync(E,{recursive:!0,force:!0});break}switch(m){case"package.json":case"vite.config.ts":case"index.html":let l=w.readFileSync(x.join(c,m),"utf-8");l=l.replace(/my-app-package-name/g,r),l=l.replace(/my-app-description/g,i),l=l.replace(/my-app-project-name/g,s),h(m,l);break;case".git":case"package-lock.json":break;default:h(m)}});await Promise.all(F);const C=x.join(D,"src-tauri");if(w.existsSync(C)){const m=w.readdirSync(C).map(async E=>{switch(E){case"Cargo.lock":case"Cargo.toml":case"tauri.conf.json":let l=w.readFileSync(x.join(C,E),"utf-8");l=l.replace(/my-app-package-name/g,r),l=l.replace(/my-app-description/g,i),l=l.replace(/my-app-project-name/g,s),l=l.replace(/com.my-app-project-name.app/g,u),h(x.join("src-tauri",E),l)}});await Promise.all(m)}const f=x.join(D,"_github");return w.existsSync(f)&&w.renameSync(f,x.join(D,".github")),"Project created"}}]);_(n)&&(g("Operation cancelled."),process.exit(0))}function re(D,e){w.mkdirSync(e,{recursive:!0});for(const t of w.readdirSync(D)){const r=x.resolve(D,t),i=x.resolve(e,t);Ju(r,i)}}function Ju(D,e){w.statSync(D).isDirectory()?re(D,e):w.copyFileSync(D,e)}const ie=process.cwd();async function se(D){let e=D||JD,t,{description:r,overwrite:i,packageName:s,projectName:u}=await ee({argTargetDir:D,targetDir:e}),{UIFramework:n,gameType:a,narrativeLanguage:c,multidevice:h,identifier:F}=await ZD({packageName:s});const C=x.join(ie,e);let f;switch(a){case U.VisualNovel:switch(n){case O.React:switch(c){case y.Typescript:h?f="template-react-vite-muijoy-tauri":f="template-react-vite-muijoy",t="src/labels/startLabel.ts";break;case y.Ink:h?f="template-react-vite-muijoy-ink-tauri":f="template-react-vite-muijoy-ink",t="src/ink/start.ink";break;case y.Renpy:g("Error: There are no templates for this narrative language"),process.exit(0);default:g("Error: Unknown narrative language"),process.exit(0)}break;case O.Vue:case O.Angular:g("Error: There are no templates for this game type and UI framework"),process.exit(0);default:g("Error: Unknown UI framework"),process.exit(0)}break;case U.TextStory:switch(n){case O.React:switch(c){case y.Typescript:h?f="template-story-react-vite-muijoy-tauri":f="template-story-react-vite-muijoy",t="src/labels/startLabel.ts";break;case y.Ink:h?f="template-story-react-vite-muijoy-ink-tauri":f="template-story-react-vite-muijoy-ink",t="src/ink/start.ink";break;case y.Renpy:g("Error: There are no templates for this narrative language"),process.exit(0);default:g("Error: Unknown narrative language"),process.exit(0)}break;case O.Vue:case O.Angular:g("Error: There are no templates for this game type and UI framework"),process.exit(0);default:g("Error: Unknown UI framework"),process.exit(0)}break;case U.PointAndClick:switch(n){case O.React:switch(c){case y.Typescript:h?f="template-nqtr-react-vite-muijoy-tauri":f="template-nqtr-react-vite-muijoy",t="src/labels/startLabel.ts";break;case y.Ink:h?f="template-nqtr-react-vite-muijoy-ink-tauri":f="template-nqtr-react-vite-muijoy-ink",t="src/ink/variousActionsLabels.ink";break;case y.Renpy:g("Error: There are no templates for this narrative language"),process.exit(0);default:g("Error: Unknown narrative language"),process.exit(0)}break;case O.Vue:case O.Angular:g("Error: There are no templates for this game type and UI framework"),process.exit(0);default:g("Error: Unknown UI framework"),process.exit(0)}break;case U.GameEngine:f="template-game-engine",t="src/index.ts";break;default:g("Error: Unknown game type"),process.exit(0)}return await te({rootFolder:C,template:f,packageName:s,description:r,projectName:u,overwrite:i,identifier:F}),{rootFolder:C,fileToOpen:t}}function ae(){console.info(`
44
+ `);process.stdout.write(O.cursor.move(-999,B.length-1)),process.stdout.write(O.erase.down(B.length))},F=B=>B.replace(/\.+$/,""),k=B=>{const x=(performance.now()-B)/1e3,g=Math.floor(x/60),p=Math.floor(x%60);return g>0?`[${g}m ${p}s]`:`[${p}s]`},Du=(B="")=>{u=!0,i=bD(),n=F(B),c=performance.now(),process.stdout.write(`${o.gray(A)}
45
+ `);let x=0,g=0;I(),s=setInterval(()=>{if(r&&n===a)return;E(),a=n;const p=o.magenta(e[x]);if(r)process.stdout.write(`${p} ${n}...`);else if(D==="timer")process.stdout.write(`${p} ${n} ${k(c)}`);else{const w=".".repeat(Math.floor(g)).slice(0,3);process.stdout.write(`${p} ${n}${w}`)}x=x+1<e.length?x+1:0,g=g<e.length?g+.125:0},t)},Y=(B="",x=0)=>{u=!1,clearInterval(s),E();const g=x===0?o.green(du):x===1?o.red(Gu):o.red(Wu);n=F(B??n),D==="timer"?process.stdout.write(`${g} ${n} ${k(c)}
46
+ `):process.stdout.write(`${g} ${n}
47
+ `),m(),i()};return{start:Du,stop:Y,message:(B="")=>{n=F(B??n)}}},au=async D=>{for(const e of D){if(e.enabled===!1)continue;const t=PD();t.start(e.title);const r=await e.task(t.message);t.stop(r||e.title)}};let z=!0;const q=typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{};let uu=0;if(q.process&&q.process.env&&q.process.stdout){const{FORCE_COLOR:D,NODE_DISABLE_COLORS:e,NO_COLOR:t,TERM:r,COLORTERM:i}=q.process.env;e||t||D==="0"?z=!1:D==="1"||D==="2"||D==="3"?z=!0:r==="dumb"?z=!1:"CI"in q.process.env&&["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(s=>s in q.process.env)?z=!0:z=process.stdout.isTTY,z&&(process.platform==="win32"||i&&(i==="truecolor"||i==="24bit")?uu=3:r&&(r.endsWith("-256color")||r.endsWith("256"))?uu=2:uu=1)}let zu={enabled:z,supportLevel:uu};function nu(D,e,t=1){const r=`\x1B[${D}m`,i=`\x1B[${e}m`,s=new RegExp(`\\x1b\\[${e}m`,"g");return u=>zu.enabled&&zu.supportLevel>=t?r+(""+u).replace(s,r)+i:""+u}const UD=nu(31,39),ou=nu(36,39),GD=nu(90,39),WD=nu(91,39);var Au,Yu;function zD(){if(Yu)return Au;Yu=1;function D(r,i){var s=r;i.slice(0,-1).forEach(function(n){s=s[n]||{}});var u=i[i.length-1];return u in s}function e(r){return typeof r=="number"||/^0x[0-9a-f]+$/i.test(r)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(r)}function t(r,i){return i==="constructor"&&typeof r[i]=="function"||i==="__proto__"}return Au=function(r,i){i||(i={});var s={bools:{},strings:{},unknownFn:null};typeof i.unknown=="function"&&(s.unknownFn=i.unknown),typeof i.boolean=="boolean"&&i.boolean?s.allBools=!0:[].concat(i.boolean).filter(Boolean).forEach(function(p){s.bools[p]=!0});var u={};function n(p){return u[p].some(function(w){return s.bools[w]})}Object.keys(i.alias||{}).forEach(function(p){u[p]=[].concat(i.alias[p]),u[p].forEach(function(w){u[w]=[p].concat(u[p].filter(function(L){return w!==L}))})}),[].concat(i.string).filter(Boolean).forEach(function(p){s.strings[p]=!0,u[p]&&[].concat(u[p]).forEach(function(w){s.strings[w]=!0})});var a=i.default||{},c={_:[]};function h(p,w){return s.allBools&&/^--[^=]+$/.test(w)||s.strings[p]||s.bools[p]||u[p]}function C(p,w,L){for(var f=p,Z=0;Z<w.length-1;Z++){var V=w[Z];if(t(f,V))return;f[V]===void 0&&(f[V]={}),(f[V]===Object.prototype||f[V]===Number.prototype||f[V]===String.prototype)&&(f[V]={}),f[V]===Array.prototype&&(f[V]=[]),f=f[V]}var P=w[w.length-1];t(f,P)||((f===Object.prototype||f===Number.prototype||f===String.prototype)&&(f={}),f===Array.prototype&&(f=[]),f[P]===void 0||s.bools[P]||typeof f[P]=="boolean"?f[P]=L:Array.isArray(f[P])?f[P].push(L):f[P]=[f[P],L])}function l(p,w,L){if(!(L&&s.unknownFn&&!h(p,L)&&s.unknownFn(L)===!1)){var f=!s.strings[p]&&e(w)?Number(w):w;C(c,p.split("."),f),(u[p]||[]).forEach(function(Z){C(c,Z.split("."),f)})}}Object.keys(s.bools).forEach(function(p){l(p,a[p]===void 0?!1:a[p])});var I=[];r.indexOf("--")!==-1&&(I=r.slice(r.indexOf("--")+1),r=r.slice(0,r.indexOf("--")));for(var m=0;m<r.length;m++){var E=r[m],F,k;if(/^--.+=/.test(E)){var Du=E.match(/^--([^=]+)=([\s\S]*)$/);F=Du[1];var Y=Du[2];s.bools[F]&&(Y=Y!=="false"),l(F,Y,E)}else if(/^--no-.+/.test(E))F=E.match(/^--no-(.+)/)[1],l(F,!1,E);else if(/^--.+/.test(E))F=E.match(/^--(.+)/)[1],k=r[m+1],k!==void 0&&!/^(-|--)[^-]/.test(k)&&!s.bools[F]&&!s.allBools&&(!u[F]||!n(F))?(l(F,k,E),m+=1):/^(true|false)$/.test(k)?(l(F,k==="true",E),m+=1):l(F,s.strings[F]?"":!0,E);else if(/^-[^-]+/.test(E)){for(var B=E.slice(1,-1).split(""),x=!1,g=0;g<B.length;g++){if(k=E.slice(g+2),k==="-"){l(B[g],k,E);continue}if(/[A-Za-z]/.test(B[g])&&k[0]==="="){l(B[g],k.slice(1),E),x=!0;break}if(/[A-Za-z]/.test(B[g])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(k)){l(B[g],k,E),x=!0;break}if(B[g+1]&&B[g+1].match(/\W/)){l(B[g],E.slice(g+2),E),x=!0;break}else l(B[g],s.strings[B[g]]?"":!0,E)}F=E.slice(-1)[0],!x&&F!=="-"&&(r[m+1]&&!/^(-|--)[^-]/.test(r[m+1])&&!s.bools[F]&&(!u[F]||!n(F))?(l(F,r[m+1],E),m+=1):r[m+1]&&/^(true|false)$/.test(r[m+1])?(l(F,r[m+1]==="true",E),m+=1):l(F,s.strings[F]?"":!0,E))}else if((!s.unknownFn||s.unknownFn(E)!==!1)&&c._.push(s.strings._||!e(E)?E:Number(E)),i.stopEarly){c._.push.apply(c._,r.slice(m+1));break}}return Object.keys(a).forEach(function(p){D(c,p.split("."))||(C(c,p.split("."),a[p]),(u[p]||[]).forEach(function(w){C(c,w.split("."),a[p])}))}),i["--"]?c["--"]=I.slice():I.forEach(function(p){c._.push(p)}),c},Au}var YD=zD();const KD=xu(YD);async function qD({rootFolder:D}){const e=y.join(D,".git");try{if(v.existsSync(e)){M.warn("Git repository already exists.");return}}catch(r){M.error(`Error checking git folder: ${r}`);return}const t=await W({message:"Do you want to initialize a git repository? (recommended)",options:[{value:!0,label:"Yes",hint:"You can use GitHub to track changes and collaborate with others."},{value:!1,label:"No",hint:"It is not recommended to skip this step."}],initialValue:!0});if(_(t)&&(d("Operation cancelled."),process.exit(0)),t){const r=await au([{title:"Initializing git repository...",task:async i=>{const s=await G("git",["init","-b","main"],{cwd:D});i(s.stdout);const u=await G("git",["add","."],{cwd:D});return i(u.stdout),"Git repository initialized."}}]);_(r)&&(d("Operation cancelled."),process.exit(0)),M.message(`Now, you can use GitHub Desktop upload your project to GitHub.
48
+ GitHub Desktop: https://github.com/apps/desktop`)}}var H=(D=>(D.VisualStudioCode="vscode",D.Cursor="cursor",D.VSCodium="codium",D.Other="other",D))(H||{});async function HD({rootFolder:D,fileToOpen:e}){const t=await W({message:"Which IDE do you want to use?",options:[{value:H.VisualStudioCode,label:"Visual Studio Code"},{value:H.Cursor,label:"Cursor"},{value:H.VSCodium,label:"VSCodium"},{value:H.Other,label:"Other"}],initialValue:H.VisualStudioCode});if(_(t)&&(d("Operation cancelled."),process.exit(0)),t===void 0)return;let r,i;switch(t){case"vscode":i="Opening in Visual Studio Code...",r="code";break;case"cursor":i="Opening in Cursor...",r="cursor";break;case"codium":i="Opening in VSCodium...",r="codium";break;default:return}await au([{title:i,task:async s=>{try{await yu(r);const u=await G(r,[D]);s(u.stdout);const n=await G(r,[`${D}/README.md`]);if(s(n.stdout),e){const a=await G(r,[`${D}/${e}`]);s(a.stdout)}return`Opened project using ${t}`}catch{return`Could not open project using ${t}, since ${t} was not in your PATH`}}}])}var U=(D=>(D[D.VisualNovel=0]="VisualNovel",D[D.TextStory=1]="TextStory",D[D.PointAndClick=2]="PointAndClick",D[D.GameEngine=3]="GameEngine",D))(U||{}),$=(D=>(D[D.Ink=0]="Ink",D[D.Renpy=1]="Renpy",D[D.Typescript=2]="Typescript",D))($||{}),S=(D=>(D[D.React=0]="React",D[D.Vue=1]="Vue",D[D.Angular=2]="Angular",D))(S||{});const Ku="My Game",qu="my-game",J=[{type:U.VisualNovel,name:"Visual Novel",availableUI:[S.React],availableNarrativeLanguages:[$.Ink,$.Typescript]},{type:U.TextStory,name:"Text-based Story",availableUI:[S.React],availableNarrativeLanguages:[$.Ink,$.Typescript]},{type:U.PointAndClick,name:"Point & Click Adventure",availableUI:[S.React],availableNarrativeLanguages:[$.Ink,$.Typescript]},{type:U.GameEngine,name:"Game Engine",availableUI:[],availableNarrativeLanguages:[]}];async function JD({packageName:D}){const e=await W({message:"Select the type of game you want to create:",options:J.map(a=>({label:a.name,value:a.type})),initialValue:J[0].type});_(e)&&(d("Operation cancelled."),process.exit(0));const t=J.find(a=>a.type===e)?.availableUI.map(a=>{let c="";switch(a){case S.React:c=ou("React");break;case S.Vue:c=GD("Vue");break;case S.Angular:c=UD("Angular");break}return{label:c,value:a}})||[];let r;t.length===1?(M.warning(`Only one UI framework available: ${t[0].label}. Using it by default.`),r=t[0].value):t.length>0?(r=await W({message:"Select the UI framework you want to use:",options:t,initialValue:J.find(a=>a.type===e)?.availableUI[0]}),_(r)&&(d("Operation cancelled."),process.exit(0))):r=void 0;const i=J.find(a=>a.type===e)?.availableNarrativeLanguages.map(a=>{let c="";switch(a){case $.Ink:c="Ink + Typescript";break;case $.Renpy:c=WD("Renpy");break;case $.Typescript:c=ou("Typescript");break}return{label:c,value:a}})||[];let s;i.length===1?(M.warning(`Only one narrative language available: ${i[0].label}. Using it by default.`),s=i[0].value):i.length>0?(s=await W({message:"Select the narrative language you want to use:",options:i,initialValue:J.find(a=>a.type===e)?.availableNarrativeLanguages[0]}),_(s)&&(d("Operation cancelled."),process.exit(0))):s=void 0;const u=await W({message:"Which devices is the project intended for?",options:[{label:"Web page",value:!1},{label:"Web page + Desktop + Mobile (Tauri)",value:!0}],initialValue:!1});_(u)&&(d("Operation cancelled."),process.exit(0));let n;return u?(n=await X({message:"Project identifier:",initialValue:`com.${D}.app`,validate:a=>{if(!a)return"Identifier is required.";if(!/^[a-zA-Z0-9_.\-]+$/.test(a))return"Identifier can only contain letters, numbers, underscores, dots and dashes."}}),_(n)&&(d("Operation cancelled."),process.exit(0))):n="",{gameType:e,UIFramework:r,narrativeLanguage:s,multidevice:u,identifier:n}}var T=(D=>(D.Delete="delete",D.Overwrite="overwrite",D.Skip="skip",D.Ask="ask",D.Cancel="cancel",D))(T||{});function ZD(D){const e=v.readdirSync(D);return e.length===0||e.length===1&&e[0]===".git"}function QD(D){if(v.existsSync(D))for(const e of v.readdirSync(D))e!==".git"&&v.rmSync(y.resolve(D,e),{recursive:!0,force:!0})}function XD(D){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(D)}function Hu(D){return D.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}async function ue(){const D=await X({message:"Project name:",defaultValue:Ku,placeholder:Ku,validate:u=>{if(!u)return"Project name cannot be empty"}});_(D)&&(d("Operation cancelled."),process.exit(0));const e=await X({message:"Project description:",defaultValue:"A new game project",placeholder:"A new game project",validate:u=>{if(!u)return"Project description cannot be empty"}});_(e)&&(d("Operation cancelled."),process.exit(0));const t=await X({message:"Package name:",defaultValue:Hu(qu),placeholder:Hu(qu),validate:u=>{if(!u)return"Package name cannot be empty";if(!XD(u))return"Invalid package name. The name can only include URL-friendly characters."}});_(t)&&(d("Operation cancelled."),process.exit(0));const r=y.basename(y.resolve()),i=await X({message:"Target directory:",defaultValue:t,placeholder:`${t} (If is equal to ".", the current directory (${r}) will be used)`});_(i)&&(d("Operation cancelled."),process.exit(0));let s;return v.existsSync(i)&&!ZD(i)?(s=await W({message:"Overwrite existing files?",options:[{hint:"Delete all existing files and create a new project",label:"Delete all",value:T.Delete},{hint:"Overwrite existing conflicting files",label:"Overwrite",value:T.Overwrite},{hint:"Skip existing conflicting files",label:"Skip",value:T.Skip},{hint:"Ask for each file",label:"Ask",value:T.Ask},{hint:"Cancel operation",label:"Cancel",value:T.Cancel}],initialValue:T.Overwrite}),(_(s)||s===T.Cancel)&&(d("Operation cancelled."),process.exit(0))):s=void 0,{projectName:D,foltderName:i,description:e,packageName:t,overwrite:s}}const Ju={_gitignore:".gitignore"};async function De({rootFolder:D,overwrite:e,template:t,packageName:r,description:i,projectName:s,identifier:u}){const n=await au([{title:`Creating project in ${D}...`,task:async a=>{switch(e){case T.Delete:QD(D);break;case T.Overwrite:case T.Skip:case T.Ask:break;default:v.mkdirSync(D,{recursive:!0});break}const c=y.resolve(uD(import.meta.url),"../..",`${t}`),h=(m,E)=>{const F=y.join(D,Ju[m]??m);E?v.writeFileSync(F,E):Zu(y.join(c,m),F)},C=v.readdirSync(c).map(async m=>{const E=y.join(D,Ju[m]??m);if(v.existsSync(E))switch(e){case T.Ask:const F=await ND({message:`File ${E} already exists. Do you want to overwrite it?`,initialValue:!1});if(_(F)&&(d("Operation cancelled."),process.exit(0)),!F)return;v.rmSync(E,{recursive:!0,force:!0});break;case T.Skip:return;case T.Delete:case T.Overwrite:v.rmSync(E,{recursive:!0,force:!0});break}switch(m){case"package.json":case"vite.config.ts":case"index.html":let F=v.readFileSync(y.join(c,m),"utf-8");F=F.replace(/my-app-package-name/g,r),F=F.replace(/my-app-description/g,i),F=F.replace(/my-app-project-name/g,s),h(m,F);break;case".git":case"package-lock.json":break;default:h(m)}});await Promise.all(C);const l=y.join(D,"src-tauri");if(v.existsSync(l)){const m=v.readdirSync(l).map(async E=>{switch(E){case"Cargo.lock":case"Cargo.toml":case"tauri.conf.json":let F=v.readFileSync(y.join(l,E),"utf-8");F=F.replace(/my-app-package-name/g,r),F=F.replace(/my-app-description/g,i),F=F.replace(/my-app-project-name/g,s),F=F.replace(/com.my-app-project-name.app/g,u),h(y.join("src-tauri",E),F)}});await Promise.all(m)}const I=y.join(D,"_github");return v.existsSync(I)&&v.renameSync(I,y.join(D,".github")),"Project created"}}]);_(n)&&(d("Operation cancelled."),process.exit(0))}function ee(D,e){v.mkdirSync(e,{recursive:!0});for(const t of v.readdirSync(D)){const r=y.resolve(D,t),i=y.resolve(e,t);Zu(r,i)}}function Zu(D,e){v.statSync(D).isDirectory()?ee(D,e):v.copyFileSync(D,e)}const te=process.cwd();async function re(){let D,{description:e,overwrite:t,packageName:r,projectName:i,foltderName:s}=await ue(),{UIFramework:u,gameType:n,narrativeLanguage:a,multidevice:c,identifier:h}=await JD({packageName:r});const C=y.join(te,s);let l;switch(n){case U.VisualNovel:switch(u){case S.React:switch(a){case $.Typescript:c?l="template-react-vite-muijoy-tauri":l="template-react-vite-muijoy",D="src/labels/startLabel.ts";break;case $.Ink:c?l="template-react-vite-muijoy-ink-tauri":l="template-react-vite-muijoy-ink",D="src/ink/start.ink";break;case $.Renpy:d("Error: There are no templates for this narrative language"),process.exit(0);default:d("Error: Unknown narrative language"),process.exit(0)}break;case S.Vue:case S.Angular:d("Error: There are no templates for this game type and UI framework"),process.exit(0);default:d("Error: Unknown UI framework"),process.exit(0)}break;case U.TextStory:switch(u){case S.React:switch(a){case $.Typescript:c?l="template-story-react-vite-muijoy-tauri":l="template-story-react-vite-muijoy",D="src/labels/startLabel.ts";break;case $.Ink:c?l="template-story-react-vite-muijoy-ink-tauri":l="template-story-react-vite-muijoy-ink",D="src/ink/start.ink";break;case $.Renpy:d("Error: There are no templates for this narrative language"),process.exit(0);default:d("Error: Unknown narrative language"),process.exit(0)}break;case S.Vue:case S.Angular:d("Error: There are no templates for this game type and UI framework"),process.exit(0);default:d("Error: Unknown UI framework"),process.exit(0)}break;case U.PointAndClick:switch(u){case S.React:switch(a){case $.Typescript:c?l="template-nqtr-react-vite-muijoy-tauri":l="template-nqtr-react-vite-muijoy",D="src/labels/startLabel.ts";break;case $.Ink:c?l="template-nqtr-react-vite-muijoy-ink-tauri":l="template-nqtr-react-vite-muijoy-ink",D="src/ink/variousActionsLabels.ink";break;case $.Renpy:d("Error: There are no templates for this narrative language"),process.exit(0);default:d("Error: Unknown narrative language"),process.exit(0)}break;case S.Vue:case S.Angular:d("Error: There are no templates for this game type and UI framework"),process.exit(0);default:d("Error: Unknown UI framework"),process.exit(0)}break;case U.GameEngine:l="template-game-engine",D="src/index.ts";break;default:d("Error: Unknown game type"),process.exit(0)}return await De({rootFolder:C,template:l,packageName:r,description:e,projectName:i,overwrite:t,identifier:h}),{rootFolder:C,fileToOpen:D}}function ie(){console.info(`
49
49
  \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557
50
50
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551
51
51
  \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551
52
52
  \u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u255A\u2550\u2550\u2550\u2550\u255D\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551
53
53
  \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u255D \u2588\u2588\u2557\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551
54
54
  \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D
55
- `)}function ne(D){if(!D)return;const e=D.split(" ")[0].split("/");return{name:e[0],version:e[1]}}const Zu=KD(process.argv.slice(2),{default:{help:!1},alias:{h:"help",t:"template"},string:["_"]}),Qu=process.cwd(),oe=`Usage: create-pixi-vn [OPTION]... [DIRECTORY]
55
+ `)}function se(D){if(!D)return;const e=D.split(" ")[0].split("/");return{name:e[0],version:e[1]}}const ae=KD(process.argv.slice(2),{default:{help:!1},alias:{h:"help",t:"template"},string:["_"]}),Qu=process.cwd(),ne=`Usage: create-pixi-vn [OPTION]... [DIRECTORY]
56
56
 
57
57
  Create a new Pixi\u2019VN project.
58
58
  With no arguments, start the CLI in interactive mode.
@@ -61,7 +61,7 @@ Options:
61
61
  -t, --template NAME use a specific template
62
62
 
63
63
  Available templates:
64
- ${ou("basic-visual-novel react")}`;async function ce(){try{ae(),VD(`Welcome to ${ou("Pixi\u2019VN")}! \u{1F3A8}\u2728`);const D=QD(Zu._[0]);if(Zu.help){console.log(oe);return}const{rootFolder:e,fileToOpen:t}=await se(D);await qD({rootFolder:e});const r=ne(process.env.npm_config_user_agent),i=r?r.name:"npm",s=x.relative(Qu,e);await HD({rootFolder:e,fileToOpen:t}),await au([{title:"Installing dependencies...",task:async n=>{try{await xu(i),i==="yarn"?await G("yarn",[],{cwd:e}):await G(i,["install"],{cwd:e})}catch{return`Could not use ${i} to install dependencies`}return"Dependencies installed."}}]),M.message("Refer to the README.md file for detailed information about the project.");let u="To run the game:";switch(e!==Qu&&(u+=`
65
- cd ${s.includes(" ")?`"${s}"`:s}`),i){case"yarn":u+=`
66
- yarn dev`;break;default:u+=`
67
- ${i} run start`;break}M.message(u),LD("You're all set! \u{1F389} Now go build your game! \u{1F680}"),console.log()}catch(D){console.error(D)}}ce().catch(D=>{console.error(D)});
64
+ ${ou("basic-visual-novel react")}`;async function oe(){try{if(ie(),VD(`Welcome to ${ou("Pixi\u2019VN")}! \u{1F3A8}\u2728`),ae.help){console.log(ne);return}const{rootFolder:D,fileToOpen:e}=await re();await qD({rootFolder:D});const t=se(process.env.npm_config_user_agent),r=t?t.name:"npm",i=y.relative(Qu,D);await HD({rootFolder:D,fileToOpen:e}),await au([{title:"Installing dependencies...",task:async u=>{try{await yu(r),r==="yarn"?await G("yarn",[],{cwd:D}):await G(r,["install"],{cwd:D})}catch{return`Could not use ${r} to install dependencies`}return"Dependencies installed."}}]),M.message("Refer to the README.md file for detailed information about the project.");let s="To run the game:";switch(D!==Qu&&(s+=`
65
+ cd ${i.includes(" ")?`"${i}"`:i}`),r){case"yarn":s+=`
66
+ yarn dev`;break;default:s+=`
67
+ ${r} run start`;break}M.message(s),LD("You're all set! \u{1F389} Now go build your game! \u{1F680}"),console.log()}catch(D){console.error(D)}}oe().catch(D=>{console.error(D)});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-pixi-vn",
3
3
  "description": "Create a new Pixi’VN project",
4
- "version": "1.6.4",
4
+ "version": "1.7.0",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0",
7
7
  "author": "DRincs-Productions",
@@ -11,50 +11,50 @@
11
11
  "preview": "vite preview"
12
12
  },
13
13
  "dependencies": {
14
- "@drincs/pixi-vn": "^1.2.23",
14
+ "@drincs/pixi-vn": "^1.3.2",
15
15
  "@emotion/react": "^11.14.0",
16
16
  "@emotion/styled": "^11.14.1",
17
- "@mui/icons-material": "^7.2.0",
17
+ "@mui/icons-material": "^7.3.1",
18
18
  "@mui/joy": "^5.0.0-beta.52",
19
- "@mui/material": "^7.2.0",
19
+ "@mui/material": "^7.3.1",
20
20
  "@tailwindcss/vite": "^4.1.11",
21
- "@tanstack/react-query": "^5.83.0",
21
+ "@tanstack/react-query": "^5.84.1",
22
22
  "i18next": "^25.3.2",
23
23
  "i18next-chained-backend": "^4.6.2",
24
24
  "i18next-resources-to-backend": "^1.2.1",
25
- "motion": "^12.23.6",
25
+ "motion": "^12.23.12",
26
26
  "notistack": "^3.0.2",
27
- "react": "^19.1.0",
28
- "react-color-palette": "^7.3.0",
29
- "react-dom": "^19.1.0",
27
+ "react": "^19.1.1",
28
+ "react-color-palette": "^7.3.1",
29
+ "react-dom": "^19.1.1",
30
30
  "react-error-boundary": "^6.0.0",
31
- "react-i18next": "^15.6.0",
31
+ "react-i18next": "^15.6.1",
32
32
  "react-markdown": "^10.1.0",
33
33
  "react-markdown-typewriter": "^1.1.4",
34
- "react-router-dom": "^7.6.3",
34
+ "react-router-dom": "^7.8.0",
35
35
  "rehype-raw": "^7.0.0",
36
36
  "remark-gfm": "^4.0.1",
37
37
  "shade-generator": "^1.2.7",
38
38
  "tailwindcss": "^4.1.11",
39
- "vite-plugin-checker": "^0.10.0",
40
- "zustand": "^5.0.6"
39
+ "vite-plugin-checker": "^0.10.2",
40
+ "zustand": "^5.0.7"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@tailwindcss/typography": "^0.5.16",
44
- "@tanstack/react-query-devtools": "^5.83.0",
45
- "@types/node": "^24.0.14",
46
- "@types/react": "^19.1.8",
47
- "@types/react-dom": "^19.1.6",
48
- "@typescript-eslint/eslint-plugin": "^8.37.0",
49
- "@typescript-eslint/parser": "^8.37.0",
50
- "@vitejs/plugin-react": "^4.6.0",
51
- "eslint": "^9.31.0",
44
+ "@tanstack/react-query-devtools": "^5.84.1",
45
+ "@types/node": "^24.2.0",
46
+ "@types/react": "^19.1.9",
47
+ "@types/react-dom": "^19.1.7",
48
+ "@typescript-eslint/eslint-plugin": "^8.39.0",
49
+ "@typescript-eslint/parser": "^8.39.0",
50
+ "@vitejs/plugin-react": "^5.0.0",
51
+ "eslint": "^9.32.0",
52
52
  "eslint-plugin-react-hooks": "^5.2.0",
53
53
  "eslint-plugin-react-refresh": "^0.4.20",
54
54
  "tailwindcss-motion": "^1.1.1",
55
- "typescript": "^5.8.3",
56
- "vite": "^7.0.4",
57
- "vite-plugin-pwa": "^1.0.1"
55
+ "typescript": "^5.9.2",
56
+ "vite": "^7.1.1",
57
+ "vite-plugin-pwa": "^1.0.2"
58
58
  },
59
59
  "keywords": [
60
60
  "game",
@@ -6,7 +6,8 @@ import { defineAssets } from "./utils/assets-utility";
6
6
  import { initializeIndexedDB } from "./utils/indexedDB-utility";
7
7
 
8
8
  const Home = lazy(async () => {
9
- await Promise.all([import("./values"), import("./labels"), initializeIndexedDB(), defineAssets(), useI18n()]);
9
+ await Promise.all([import("./values"), import("./labels")]);
10
+ await Promise.all([initializeIndexedDB(), defineAssets(), useI18n()]);
10
11
  return import("./Home");
11
12
  });
12
13
 
@@ -1,14 +1,13 @@
1
- import { canvas, moveIn, newLabel, ZoomTicker } from "@drincs/pixi-vn";
1
+ import { canvas, ImageContainer, moveIn, newLabel } from "@drincs/pixi-vn";
2
2
 
3
3
  export const animation01 = newLabel("animation_01", [
4
4
  async () => {
5
- canvas.addTicker(
5
+ let tickerId = canvas.animate<ImageContainer>(
6
6
  "steph",
7
- new ZoomTicker({
8
- type: "zoom",
9
- limit: 1,
10
- speed: 70,
11
- })
7
+ {
8
+ scaleX: 1,
9
+ },
10
+ { autoplay: false, forceCompleteBeforeNext: true }
12
11
  );
13
12
 
14
13
  await moveIn(
@@ -17,7 +16,7 @@ export const animation01 = newLabel("animation_01", [
17
16
  value: ["fm02-body", "fm02-eyes-joy", "fm02-mouth-smile01"],
18
17
  options: { xAlign: 0.8, yAlign: 1, scale: { y: 1, x: -1 }, anchor: 0.5 },
19
18
  },
20
- { direction: "right", speed: 300 }
19
+ { direction: "right", ease: "easeInOut", tickerIdToResume: tickerId }
21
20
  );
22
21
  },
23
22
  ]);
@@ -25,7 +25,7 @@ const startLabel = newLabel(
25
25
  value: ["m01-body", "m01-eyes-smile", "m01-mouth-neutral01"],
26
26
  options: { xAlign: 0.5, yAlign: 1 },
27
27
  },
28
- { direction: "right", speed: 300 }
28
+ { direction: "right", ease: "circInOut", type: "spring" }
29
29
  );
30
30
  narration.dialogue = { character: james, text: `You're my roommate's replacement, huh?` };
31
31
  },
@@ -94,7 +94,7 @@ const startLabel = newLabel(
94
94
  value: ["fm01-body", "fm01-eyes-wow", "fm01-mouth-soft01"],
95
95
  options: { xAlign: 0.2, yAlign: 1 },
96
96
  },
97
- { direction: "right", speed: 300 }
97
+ { direction: "right", ease: "anticipate" }
98
98
  );
99
99
  await moveIn(
100
100
  "steph",
@@ -102,7 +102,7 @@ const startLabel = newLabel(
102
102
  value: ["fm02-body", "fm02-eyes-nervous", "fm02-mouth-nervous00"],
103
103
  options: { xAlign: 0.8, yAlign: 1 },
104
104
  },
105
- { direction: "left", speed: 300 }
105
+ { direction: "left", ease: "easeInOut" }
106
106
  );
107
107
  narration.dialogue = { character: sly, text: `I just wanted to see what the new guy was like.` };
108
108
  },
@@ -337,7 +337,7 @@ const startLabel = newLabel(
337
337
  await showImageContainer("james", ["m01-body", "m01-eyes-grin", "m01-mouth-grin00"]);
338
338
  await showImageContainer("sly", ["fm01-body", "fm01-eyes-smile", "fm01-mouth-smile00"]);
339
339
  await showImageContainer("steph", ["fm02-body", "fm02-eyes-upset", "fm02-mouth-nervous00"]);
340
- moveOut("steph", { direction: "left", speed: 300 });
340
+ moveOut("steph", { direction: "left", ease: "easeInOut" });
341
341
  narration.dialogue = `${steph_fullname} goes through the opposite door,`;
342
342
  },
343
343
  async (props) => {