create-pixi-vn 1.9.5 → 1.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +48 -58
- package/package.json +1 -1
- package/template-nqtr-react-vite-muijoy/package.json +75 -75
- package/template-nqtr-react-vite-muijoy/src/assets/manifest.ts +14 -1
- package/template-nqtr-react-vite-muijoy/src/components/SoundChannelControl.tsx +45 -0
- package/template-nqtr-react-vite-muijoy/src/constans.ts +4 -0
- package/template-nqtr-react-vite-muijoy/src/locales/strings_en.json +7 -0
- package/template-nqtr-react-vite-muijoy/src/main.tsx +18 -5
- package/template-nqtr-react-vite-muijoy/src/screens/MainMenu.tsx +2 -4
- package/template-nqtr-react-vite-muijoy/src/screens/Settings.tsx +5 -0
- package/template-nqtr-react-vite-muijoy/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-nqtr-react-vite-muijoy/src/stores/createChannelSoundStore.ts +47 -0
- package/template-nqtr-react-vite-muijoy/src/stores/useMasterSoundStore.ts +38 -0
- package/template-nqtr-react-vite-muijoy/src/utils/assets-utility.ts +5 -2
- package/template-nqtr-react-vite-muijoy/src/values/quests/aliceQuest.tsx +1 -1
- package/template-nqtr-react-vite-muijoy/vite.config.ts +7 -6
- package/template-nqtr-react-vite-muijoy-ink/package.json +3 -3
- package/template-nqtr-react-vite-muijoy-ink/src/assets/manifest.ts +14 -1
- package/template-nqtr-react-vite-muijoy-ink/src/components/SoundChannelControl.tsx +45 -0
- package/template-nqtr-react-vite-muijoy-ink/src/constans.ts +4 -0
- package/template-nqtr-react-vite-muijoy-ink/src/locales/strings_en.json +7 -0
- package/template-nqtr-react-vite-muijoy-ink/src/main.tsx +18 -5
- package/template-nqtr-react-vite-muijoy-ink/src/screens/MainMenu.tsx +2 -4
- package/template-nqtr-react-vite-muijoy-ink/src/screens/Settings.tsx +5 -0
- package/template-nqtr-react-vite-muijoy-ink/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-nqtr-react-vite-muijoy-ink/src/stores/createChannelSoundStore.ts +47 -0
- package/template-nqtr-react-vite-muijoy-ink/src/stores/useMasterSoundStore.ts +38 -0
- package/template-nqtr-react-vite-muijoy-ink/src/utils/assets-utility.ts +5 -2
- package/template-nqtr-react-vite-muijoy-ink/src/values/quests/aliceQuest.tsx +1 -1
- package/template-nqtr-react-vite-muijoy-ink/vite.config.ts +7 -6
- package/template-nqtr-react-vite-muijoy-ink-tauri/package.json +3 -3
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/assets/manifest.ts +14 -1
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/SoundChannelControl.tsx +45 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/constans.ts +4 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/locales/strings_en.json +7 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/main.tsx +18 -5
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/screens/MainMenu.tsx +2 -4
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/screens/Settings.tsx +5 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/stores/createChannelSoundStore.ts +47 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/stores/useMasterSoundStore.ts +38 -0
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/utils/assets-utility.ts +5 -2
- package/template-nqtr-react-vite-muijoy-ink-tauri/src/values/quests/aliceQuest.tsx +1 -1
- package/template-nqtr-react-vite-muijoy-ink-tauri/vite.config.ts +7 -6
- package/template-nqtr-react-vite-muijoy-tauri/package.json +2 -2
- package/template-nqtr-react-vite-muijoy-tauri/src/assets/manifest.ts +14 -1
- package/template-nqtr-react-vite-muijoy-tauri/src/components/SoundChannelControl.tsx +45 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/constans.ts +4 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/locales/strings_en.json +7 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/main.tsx +18 -5
- package/template-nqtr-react-vite-muijoy-tauri/src/screens/MainMenu.tsx +2 -4
- package/template-nqtr-react-vite-muijoy-tauri/src/screens/Settings.tsx +5 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/stores/createChannelSoundStore.ts +47 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/stores/useMasterSoundStore.ts +38 -0
- package/template-nqtr-react-vite-muijoy-tauri/src/utils/assets-utility.ts +5 -2
- package/template-nqtr-react-vite-muijoy-tauri/src/values/quests/aliceQuest.tsx +1 -1
- package/template-nqtr-react-vite-muijoy-tauri/vite.config.ts +7 -6
- package/template-react-vite-muijoy/package.json +1 -1
- package/template-react-vite-muijoy/src/assets/manifest.ts +14 -1
- package/template-react-vite-muijoy/src/components/SoundChannelControl.tsx +45 -0
- package/template-react-vite-muijoy/src/constans.ts +4 -0
- package/template-react-vite-muijoy/src/labels/secondPart.ts +6 -4
- package/template-react-vite-muijoy/src/labels/startLabel.ts +13 -4
- package/template-react-vite-muijoy/src/locales/strings_en.json +8 -1
- package/template-react-vite-muijoy/src/main.tsx +17 -5
- package/template-react-vite-muijoy/src/screens/MainMenu.tsx +2 -4
- package/template-react-vite-muijoy/src/screens/Settings.tsx +5 -0
- package/template-react-vite-muijoy/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-react-vite-muijoy/src/stores/createChannelSoundStore.ts +47 -0
- package/template-react-vite-muijoy/src/stores/useMasterSoundStore.ts +38 -0
- package/template-react-vite-muijoy/src/utils/assets-utility.ts +5 -2
- package/template-react-vite-muijoy/vite.config.ts +7 -6
- package/template-react-vite-muijoy-ink/package.json +73 -73
- package/template-react-vite-muijoy-ink/src/assets/manifest.ts +14 -1
- package/template-react-vite-muijoy-ink/src/components/SoundChannelControl.tsx +45 -0
- package/template-react-vite-muijoy-ink/src/constans.ts +4 -0
- package/template-react-vite-muijoy-ink/src/ink/second_part.ink +2 -0
- package/template-react-vite-muijoy-ink/src/ink/start.ink +8 -0
- package/template-react-vite-muijoy-ink/src/locales/strings_en.json +8 -1
- package/template-react-vite-muijoy-ink/src/main.tsx +17 -5
- package/template-react-vite-muijoy-ink/src/screens/MainMenu.tsx +2 -4
- package/template-react-vite-muijoy-ink/src/screens/Settings.tsx +5 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-react-vite-muijoy-ink/src/stores/createChannelSoundStore.ts +47 -0
- package/template-react-vite-muijoy-ink/src/stores/useMasterSoundStore.ts +38 -0
- package/template-react-vite-muijoy-ink/src/utils/assets-utility.ts +5 -2
- package/template-react-vite-muijoy-ink/vite.config.ts +7 -6
- package/template-react-vite-muijoy-ink-tauri/package.json +2 -2
- package/template-react-vite-muijoy-ink-tauri/src/assets/manifest.ts +14 -1
- package/template-react-vite-muijoy-ink-tauri/src/components/SoundChannelControl.tsx +45 -0
- package/template-react-vite-muijoy-ink-tauri/src/constans.ts +4 -0
- package/template-react-vite-muijoy-ink-tauri/src/ink/second_part.ink +2 -0
- package/template-react-vite-muijoy-ink-tauri/src/ink/start.ink +8 -0
- package/template-react-vite-muijoy-ink-tauri/src/locales/strings_en.json +8 -1
- package/template-react-vite-muijoy-ink-tauri/src/main.tsx +17 -5
- package/template-react-vite-muijoy-ink-tauri/src/screens/MainMenu.tsx +2 -4
- package/template-react-vite-muijoy-ink-tauri/src/screens/Settings.tsx +5 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-react-vite-muijoy-ink-tauri/src/stores/createChannelSoundStore.ts +47 -0
- package/template-react-vite-muijoy-ink-tauri/src/stores/useMasterSoundStore.ts +38 -0
- package/template-react-vite-muijoy-ink-tauri/src/utils/assets-utility.ts +5 -2
- package/template-react-vite-muijoy-ink-tauri/vite.config.ts +7 -6
- package/template-react-vite-muijoy-tauri/package.json +1 -1
- package/template-react-vite-muijoy-tauri/src/assets/manifest.ts +14 -1
- package/template-react-vite-muijoy-tauri/src/components/SoundChannelControl.tsx +45 -0
- package/template-react-vite-muijoy-tauri/src/constans.ts +4 -0
- package/template-react-vite-muijoy-tauri/src/labels/secondPart.ts +6 -4
- package/template-react-vite-muijoy-tauri/src/labels/startLabel.ts +13 -4
- package/template-react-vite-muijoy-tauri/src/locales/strings_en.json +8 -1
- package/template-react-vite-muijoy-tauri/src/main.tsx +17 -5
- package/template-react-vite-muijoy-tauri/src/screens/MainMenu.tsx +2 -4
- package/template-react-vite-muijoy-tauri/src/screens/Settings.tsx +5 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-react-vite-muijoy-tauri/src/stores/createChannelSoundStore.ts +47 -0
- package/template-react-vite-muijoy-tauri/src/stores/useMasterSoundStore.ts +38 -0
- package/template-react-vite-muijoy-tauri/src/utils/assets-utility.ts +5 -2
- package/template-react-vite-muijoy-tauri/vite.config.ts +7 -6
- package/template-story-react-vite-muijoy/package.json +1 -1
- package/template-story-react-vite-muijoy/src/assets/manifest.ts +14 -1
- package/template-story-react-vite-muijoy/src/components/SoundChannelControl.tsx +45 -0
- package/template-story-react-vite-muijoy/src/constans.ts +4 -0
- package/template-story-react-vite-muijoy/src/labels/secondPart.ts +6 -4
- package/template-story-react-vite-muijoy/src/labels/startLabel.ts +13 -4
- package/template-story-react-vite-muijoy/src/locales/strings_en.json +8 -1
- package/template-story-react-vite-muijoy/src/main.tsx +17 -5
- package/template-story-react-vite-muijoy/src/screens/MainMenu.tsx +2 -4
- package/template-story-react-vite-muijoy/src/screens/Settings.tsx +5 -0
- package/template-story-react-vite-muijoy/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-story-react-vite-muijoy/src/stores/createChannelSoundStore.ts +47 -0
- package/template-story-react-vite-muijoy/src/stores/useMasterSoundStore.ts +38 -0
- package/template-story-react-vite-muijoy/src/utils/assets-utility.ts +5 -2
- package/template-story-react-vite-muijoy/vite.config.ts +7 -6
- package/template-story-react-vite-muijoy-ink/package.json +73 -73
- package/template-story-react-vite-muijoy-ink/src/assets/manifest.ts +14 -1
- package/template-story-react-vite-muijoy-ink/src/components/SoundChannelControl.tsx +45 -0
- package/template-story-react-vite-muijoy-ink/src/constans.ts +4 -0
- package/template-story-react-vite-muijoy-ink/src/ink/second_part.ink +2 -0
- package/template-story-react-vite-muijoy-ink/src/ink/start.ink +8 -0
- package/template-story-react-vite-muijoy-ink/src/locales/strings_en.json +8 -1
- package/template-story-react-vite-muijoy-ink/src/main.tsx +17 -5
- package/template-story-react-vite-muijoy-ink/src/screens/MainMenu.tsx +2 -4
- package/template-story-react-vite-muijoy-ink/src/screens/Settings.tsx +5 -0
- package/template-story-react-vite-muijoy-ink/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-story-react-vite-muijoy-ink/src/stores/createChannelSoundStore.ts +47 -0
- package/template-story-react-vite-muijoy-ink/src/stores/useMasterSoundStore.ts +38 -0
- package/template-story-react-vite-muijoy-ink/src/utils/assets-utility.ts +5 -2
- package/template-story-react-vite-muijoy-ink/vite.config.ts +7 -6
- package/template-story-react-vite-muijoy-ink-tauri/package.json +2 -2
- package/template-story-react-vite-muijoy-ink-tauri/src/assets/manifest.ts +14 -1
- package/template-story-react-vite-muijoy-ink-tauri/src/components/SoundChannelControl.tsx +45 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/constans.ts +4 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/ink/second_part.ink +2 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/ink/start.ink +8 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/locales/strings_en.json +8 -1
- package/template-story-react-vite-muijoy-ink-tauri/src/main.tsx +17 -5
- package/template-story-react-vite-muijoy-ink-tauri/src/screens/MainMenu.tsx +2 -4
- package/template-story-react-vite-muijoy-ink-tauri/src/screens/Settings.tsx +5 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/stores/createChannelSoundStore.ts +47 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/stores/useMasterSoundStore.ts +38 -0
- package/template-story-react-vite-muijoy-ink-tauri/src/utils/assets-utility.ts +5 -2
- package/template-story-react-vite-muijoy-ink-tauri/vite.config.ts +7 -6
- package/template-story-react-vite-muijoy-tauri/package.json +1 -1
- package/template-story-react-vite-muijoy-tauri/src/assets/manifest.ts +14 -1
- package/template-story-react-vite-muijoy-tauri/src/components/SoundChannelControl.tsx +45 -0
- package/template-story-react-vite-muijoy-tauri/src/constans.ts +4 -0
- package/template-story-react-vite-muijoy-tauri/src/labels/secondPart.ts +6 -4
- package/template-story-react-vite-muijoy-tauri/src/labels/startLabel.ts +13 -4
- package/template-story-react-vite-muijoy-tauri/src/locales/strings_en.json +8 -1
- package/template-story-react-vite-muijoy-tauri/src/main.tsx +17 -5
- package/template-story-react-vite-muijoy-tauri/src/screens/MainMenu.tsx +2 -4
- package/template-story-react-vite-muijoy-tauri/src/screens/Settings.tsx +5 -0
- package/template-story-react-vite-muijoy-tauri/src/screens/settings/SoundSettings.tsx +51 -0
- package/template-story-react-vite-muijoy-tauri/src/stores/createChannelSoundStore.ts +47 -0
- package/template-story-react-vite-muijoy-tauri/src/stores/useMasterSoundStore.ts +38 -0
- package/template-story-react-vite-muijoy-tauri/src/utils/assets-utility.ts +5 -2
- package/template-story-react-vite-muijoy-tauri/vite.config.ts +7 -6
package/dist/index.mjs
CHANGED
|
@@ -1,75 +1,65 @@
|
|
|
1
|
-
import{styleText as
|
|
2
|
-
`)
|
|
3
|
-
|
|
4
|
-
`&&(a&&
|
|
5
|
-
|
|
6
|
-
`).split(`
|
|
7
|
-
`).map(r=>Pt(r,t,i)).join(`
|
|
8
|
-
`)}const Wt=["up","down","left","right","space","enter","cancel"],z={actions:new Set(Wt),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0};function Ce(e,t){if(typeof e=="string")return z.aliases.get(e)===t;for(const i of e)if(i!==void 0&&Ce(i,t))return!0;return!1}function Gt(e,t){if(e===t)return;const i=e.split(`
|
|
1
|
+
import{styleText as h}from"node:util";import G,{stdin as Me,stdout as we}from"node:process";import*as oe from"node:readline";import ct from"node:readline";import{ReadStream as Ne}from"node:tty";import C from"node:fs";import _ from"node:path";import{execa as J}from"execa";import je from"which";import{fileURLToPath as lt}from"node:url";const pt=e=>e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109,ft=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,ht=e=>e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9800&&e<=9811||e===9855||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141,$e=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,ue=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,ce=/\t{1,1000}/y,ye=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),le=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,dt=new RegExp("\\p{M}+","gu"),mt={limit:1/0,ellipsis:""},Ve=(e,t={},i={})=>{const r=t.limit??1/0,a=t.ellipsis??"",n=t?.ellipsisWidth??(a?Ve(a,mt,i).width:0),s=i.ansiWidth??0,o=i.controlWidth??0,c=i.tabWidth??8,l=i.ambiguousWidth??1,v=i.emojiWidth??2,m=i.fullWidthWidth??2,p=i.regularWidth??1,b=i.wideWidth??2;let f=0,u=0,F=e.length,y=0,k=!1,I=F,E=Math.max(0,r-n),A=0,w=0,d=0,g=0;e:for(;;){if(w>A||u>=F&&u>f){const T=e.slice(A,w)||e.slice(f,u);y=0;for(const $ of T.replaceAll(dt,"")){const j=$.codePointAt(0)||0;if(ft(j)?g=m:ht(j)?g=b:l!==p&&pt(j)?g=l:g=p,d+g>E&&(I=Math.min(I,Math.max(A,f)+y)),d+g>r){k=!0;break e}y+=$.length,d+=g}A=w=0}if(u>=F)break;if(le.lastIndex=u,le.test(e)){if(y=le.lastIndex-u,g=y*p,d+g>E&&(I=Math.min(I,u+Math.floor((E-d)/p))),d+g>r){k=!0;break}d+=g,A=f,w=u,u=f=le.lastIndex;continue}if($e.lastIndex=u,$e.test(e)){if(d+s>E&&(I=Math.min(I,u)),d+s>r){k=!0;break}d+=s,A=f,w=u,u=f=$e.lastIndex;continue}if(ue.lastIndex=u,ue.test(e)){if(y=ue.lastIndex-u,g=y*o,d+g>E&&(I=Math.min(I,u+Math.floor((E-d)/o))),d+g>r){k=!0;break}d+=g,A=f,w=u,u=f=ue.lastIndex;continue}if(ce.lastIndex=u,ce.test(e)){if(y=ce.lastIndex-u,g=y*c,d+g>E&&(I=Math.min(I,u+Math.floor((E-d)/c))),d+g>r){k=!0;break}d+=g,A=f,w=u,u=f=ce.lastIndex;continue}if(ye.lastIndex=u,ye.test(e)){if(d+v>E&&(I=Math.min(I,u)),d+v>r){k=!0;break}d+=v,A=f,w=u,u=f=ye.lastIndex;continue}u+=1}return{width:k?E:d,index:k?I:F,truncated:k,ellipsed:k&&r>=n}},Ft={limit:1/0,ellipsis:"",ellipsisWidth:0},Y=(e,t={})=>Ve(e,Ft,t).width,pe="\x1B",Ue="\x9B",gt=39,Ee="\x07",Pe="[",vt="]",We="m",Ae=`${vt}8;;`,Ge=new RegExp(`(?:\\${Pe}(?<code>\\d+)m|\\${Ae}(?<uri>.*)${Ee})`,"y"),ze=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},He=e=>`${pe}${Pe}${e}${We}`,Ke=e=>`${pe}${Ae}${e}${Ee}`,Ie=(e,t,i)=>{const r=t[Symbol.iterator]();let a=!1,n=!1,s=e.at(-1),o=s===void 0?0:Y(s),c=r.next(),l=r.next(),v=0;for(;!c.done;){const m=c.value,p=Y(m);o+p<=i?e[e.length-1]+=m:(e.push(m),o=0),(m===pe||m===Ue)&&(a=!0,n=t.startsWith(Ae,v+1)),a?n?m===Ee&&(a=!1,n=!1):m===We&&(a=!1):(o+=p,o===i&&!l.done&&(e.push(""),o=0)),c=l,l=r.next(),v+=m.length}s=e.at(-1),!o&&s!==void 0&&s.length&&e.length>1&&(e[e.length-2]+=e.pop())},bt=e=>{const t=e.split(" ");let i=t.length;for(;i&&!Y(t[i-1]);)i--;return i===t.length?e:t.slice(0,i).join(" ")+t.slice(i).join("")},wt=(e,t,i={})=>{if(i.trim!==!1&&e.trim()==="")return"";let r="",a,n;const s=e.split(" ");let o=[""],c=0;for(let m=0;m<s.length;m++){const p=s[m];if(i.trim!==!1){const f=o.at(-1)??"",u=f.trimStart();f.length!==u.length&&(o[o.length-1]=u,c=Y(u))}m!==0&&(c>=t&&(i.wordWrap===!1||i.trim===!1)&&(o.push(""),c=0),(c||i.trim===!1)&&(o[o.length-1]+=" ",c++));const b=Y(p);if(i.hard&&b>t){const f=t-c,u=1+Math.floor((b-f-1)/t);Math.floor((b-1)/t)<u&&o.push(""),Ie(o,p,t),c=Y(o.at(-1)??"");continue}if(c+b>t&&c&&b){if(i.wordWrap===!1&&c<t){Ie(o,p,t),c=Y(o.at(-1)??"");continue}o.push(""),c=0}if(c+b>t&&i.wordWrap===!1){Ie(o,p,t),c=Y(o.at(-1)??"");continue}o[o.length-1]+=p,c+=b}i.trim!==!1&&(o=o.map(m=>bt(m)));const l=o.join(`
|
|
2
|
+
`);let v=!1;for(let m=0;m<l.length;m++){const p=l[m];if(r+=p,!v)v=p>="\uD800"&&p<="\uDBFF";else continue;if(p===pe||p===Ue){Ge.lastIndex=m+1;const f=Ge.exec(l)?.groups;if(f?.code!==void 0){const u=Number.parseFloat(f.code);a=u===gt?void 0:u}else f?.uri!==void 0&&(n=f.uri.length===0?void 0:f.uri)}if(l[m+1]===`
|
|
3
|
+
`){n&&(r+=Ke(""));const b=a?ze(a):void 0;a&&b&&(r+=He(b))}else p===`
|
|
4
|
+
`&&(a&&ze(a)&&(r+=He(a)),n&&(r+=Ke(n)))}return r},$t=/\r?\n/;function ee(e,t,i){return String(e).normalize().split($t).map(r=>wt(r,t,i)).join(`
|
|
5
|
+
`)}function yt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ce,qe;function Et(){if(qe)return Ce;qe=1;const e="\x1B",t=`${e}[`,i="\x07",r={to(s,o){return o?`${t}${o+1};${s+1}H`:`${t}${s+1}G`},move(s,o){let c="";return s<0?c+=`${t}${-s}D`:s>0&&(c+=`${t}${s}C`),o<0?c+=`${t}${-o}A`:o>0&&(c+=`${t}${o}B`),c},up:(s=1)=>`${t}${s}A`,down:(s=1)=>`${t}${s}B`,forward:(s=1)=>`${t}${s}C`,backward:(s=1)=>`${t}${s}D`,nextLine:(s=1)=>`${t}E`.repeat(s),prevLine:(s=1)=>`${t}F`.repeat(s),left:`${t}G`,hide:`${t}?25l`,show:`${t}?25h`,save:`${e}7`,restore:`${e}8`},a={up:(s=1)=>`${t}S`.repeat(s),down:(s=1)=>`${t}T`.repeat(s)},n={screen:`${t}2J`,up:(s=1)=>`${t}1J`.repeat(s),down:(s=1)=>`${t}J`.repeat(s),line:`${t}2K`,lineEnd:`${t}K`,lineStart:`${t}1K`,lines(s){let o="";for(let c=0;c<s;c++)o+=this.line+(c<s-1?r.up():"");return s&&(o+=r.left),o}};return Ce={cursor:r,scroll:a,erase:n,beep:i},Ce}var R=Et();function fe(e,t,i){if(!i.some(s=>!s.disabled))return e;const r=e+t,a=Math.max(i.length-1,0),n=r<0?a:r>a?0:r;return i[n].disabled?fe(n,t<0?-1:1,i):n}const At=["up","down","left","right","space","enter","cancel"],z={actions:new Set(At),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0};function De(e,t){if(typeof e=="string")return z.aliases.get(e)===t;for(const i of e)if(i!==void 0&&De(i,t))return!0;return!1}function It(e,t){if(e===t)return;const i=e.split(`
|
|
9
6
|
`),r=t.split(`
|
|
10
|
-
`),a=Math.max(i.length,r.length),n=[];for(let s=0;s<a;s++)i[s]!==r[s]&&n.push(s);return{lines:n,numLinesBefore:i.length,numLinesAfter:r.length,numLines:a}}const
|
|
7
|
+
`),a=Math.max(i.length,r.length),n=[];for(let s=0;s<a;s++)i[s]!==r[s]&&n.push(s);return{lines:n,numLinesBefore:i.length,numLinesAfter:r.length,numLines:a}}const Ct=globalThis.process.platform.startsWith("win"),Se=Symbol("clack:cancel");function L(e){return e===Se}function he(e,t){const i=e;i.isTTY&&i.setRawMode(t)}function Dt({input:e=Me,output:t=we,overwrite:i=!0,hideCursor:r=!0}={}){const a=oe.createInterface({input:e,output:t,prompt:"",tabSize:1});oe.emitKeypressEvents(e,a),e instanceof Ne&&e.isTTY&&e.setRawMode(!0);const n=(s,{name:o,sequence:c})=>{const l=String(s);if(De([l,o,c],"cancel")){r&&t.write(R.cursor.show),process.exit(0);return}if(!i)return;const v=o==="return"?0:-1,m=o==="return"?-1:0;oe.moveCursor(t,v,m,()=>{oe.clearLine(t,1,()=>{e.once("keypress",n)})})};return r&&t.write(R.cursor.hide),e.once("keypress",n),()=>{e.off("keypress",n),r&&t.write(R.cursor.show),e instanceof Ne&&e.isTTY&&!Ct&&e.setRawMode(!1),a.terminal=!1,a.close()}}const xe=e=>"columns"in e&&typeof e.columns=="number"?e.columns:80,Ye=e=>"rows"in e&&typeof e.rows=="number"?e.rows:20;function de(e,t,i,r=i){const a=xe(e??we);return ee(t,a-i.length,{hard:!0,trim:!1}).split(`
|
|
11
8
|
`).map((n,s)=>`${s===0?r:i}${n}`).join(`
|
|
12
|
-
`)}class
|
|
13
|
-
`),he(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){const
|
|
14
|
-
`).length-1;this.output.write(R.cursor.move(-999,
|
|
15
|
-
`);this.output.write(
|
|
16
|
-
`).slice(
|
|
17
|
-
`)),this._prevFrame=t;return}}this.output.write(R.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}}class Kt extends Re{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",i=>{this.output.write(R.cursor.move(0,-1)),this.value=i,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}class qt extends Re{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t){super(t,!1),this.options=t.options;const i=this.options.findIndex(({value:a})=>a===t.initialValue),r=i===-1?0:i;this.cursor=this.options[r].disabled?ue(r,1,this.options):r,this.changeValue(),this.on("cursor",a=>{switch(a){case"left":case"up":this.cursor=ue(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=ue(this.cursor,1,this.options);break}this.changeValue()})}}class Yt extends Re{get userInputWithCursor(){if(this.state==="submit")return this.userInput;const t=this.userInput;if(this.cursor>=t.length)return`${this.userInput}\u2588`;const i=t.slice(0,this.cursor),[r,...a]=t.slice(this.cursor);return`${i}${m("inverse",r)}${a.join("")}`}get cursor(){return this._cursor}constructor(t){super({...t,initialUserInput:t.initialUserInput??t.initialValue}),this.on("userInput",i=>{this._setValue(i)}),this.on("finalize",()=>{this.value||(this.value=t.defaultValue),this.value===void 0&&(this.value="")})}}function Ht(){return B.platform!=="win32"?B.env.TERM!=="linux":!!B.env.CI||!!B.env.WT_SESSION||!!B.env.TERMINUS_SUBLIME||B.env.ConEmuTask==="{cmd::Cmder}"||B.env.TERM_PROGRAM==="Terminus-Sublime"||B.env.TERM_PROGRAM==="vscode"||B.env.TERM==="xterm-256color"||B.env.TERM==="alacritty"||B.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const Ve=Ht(),Zt=()=>process.env.CI==="true",U=(e,t)=>Ve?e:t,Jt=U("\u25C6","*"),at=U("\u25A0","x"),ot=U("\u25B2","x"),Le=U("\u25C7","o"),Xt=U("\u250C","T"),F=U("\u2502","|"),Q=U("\u2514","\u2014"),Ne=U("\u25CF",">"),de=U("\u25CB"," "),Qt=U("\u25CF","\u2022"),ei=U("\u25C6","*"),ti=U("\u25B2","!"),ii=U("\u25A0","x"),De=e=>{switch(e){case"initial":case"active":return m("cyan",Jt);case"cancel":return m("red",at);case"error":return m("yellow",ot);case"submit":return m("green",Le)}},ri=e=>{switch(e){case"initial":case"active":return m("cyan",F);case"cancel":return m("red",F);case"error":return m("yellow",F);case"submit":return m("green",F)}},si=e=>e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109,ni=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,ai=e=>e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9800&&e<=9811||e===9855||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141,Ue=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,me=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,ge=/\t{1,1000}/y,Pe=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),ve=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,oi=new RegExp("\\p{M}+","gu"),ui={limit:1/0,ellipsis:""},ut=(e,t={},i={})=>{const r=t.limit??1/0,a=t.ellipsis??"",n=t?.ellipsisWidth??(a?ut(a,ui,i).width:0),s=i.ansiWidth??0,u=i.controlWidth??0,c=i.tabWidth??8,h=i.ambiguousWidth??1,w=i.emojiWidth??2,$=i.fullWidthWidth??2,d=i.regularWidth??1,S=i.wideWidth??2;let l=0,o=0,f=e.length,v=0,I=!1,x=f,b=Math.max(0,r-n),E=0,y=0,p=0,g=0;e:for(;;){if(y>E||o>=f&&o>l){const C=e.slice(E,y)||e.slice(l,o);v=0;for(const k of C.replaceAll(oi,"")){const O=k.codePointAt(0)||0;if(ni(O)?g=$:ai(O)?g=S:h!==d&&si(O)?g=h:g=d,p+g>b&&(x=Math.min(x,Math.max(E,l)+v)),p+g>r){I=!0;break e}v+=k.length,p+=g}E=y=0}if(o>=f)break;if(ve.lastIndex=o,ve.test(e)){if(v=ve.lastIndex-o,g=v*d,p+g>b&&(x=Math.min(x,o+Math.floor((b-p)/d))),p+g>r){I=!0;break}p+=g,E=l,y=o,o=l=ve.lastIndex;continue}if(Ue.lastIndex=o,Ue.test(e)){if(p+s>b&&(x=Math.min(x,o)),p+s>r){I=!0;break}p+=s,E=l,y=o,o=l=Ue.lastIndex;continue}if(me.lastIndex=o,me.test(e)){if(v=me.lastIndex-o,g=v*u,p+g>b&&(x=Math.min(x,o+Math.floor((b-p)/u))),p+g>r){I=!0;break}p+=g,E=l,y=o,o=l=me.lastIndex;continue}if(ge.lastIndex=o,ge.test(e)){if(v=ge.lastIndex-o,g=v*c,p+g>b&&(x=Math.min(x,o+Math.floor((b-p)/c))),p+g>r){I=!0;break}p+=g,E=l,y=o,o=l=ge.lastIndex;continue}if(Pe.lastIndex=o,Pe.test(e)){if(p+w>b&&(x=Math.min(x,o)),p+w>r){I=!0;break}p+=w,E=l,y=o,o=l=Pe.lastIndex;continue}o+=1}return{width:I?b:p,index:I?x:f,truncated:I,ellipsed:I&&r>=n}},li={limit:1/0,ellipsis:"",ellipsisWidth:0},re=(e,t={})=>ut(e,li,t).width,$e="\x1B",lt="\x9B",ci=39,We="\x07",ct="[",pi="]",pt="m",Ge=`${pi}8;;`,ft=new RegExp(`(?:\\${ct}(?<code>\\d+)m|\\${Ge}(?<uri>.*)${We})`,"y"),fi=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},ht=e=>`${$e}${ct}${e}${pt}`,dt=e=>`${$e}${Ge}${e}${We}`,hi=e=>e.map(t=>re(t)),Be=(e,t,i)=>{const r=t[Symbol.iterator]();let a=!1,n=!1,s=e.at(-1),u=s===void 0?0:re(s),c=r.next(),h=r.next(),w=0;for(;!c.done;){const $=c.value,d=re($);u+d<=i?e[e.length-1]+=$:(e.push($),u=0),($===$e||$===lt)&&(a=!0,n=t.startsWith(Ge,w+1)),a?n?$===We&&(a=!1,n=!1):$===pt&&(a=!1):(u+=d,u===i&&!h.done&&(e.push(""),u=0)),c=h,h=r.next(),w+=$.length}s=e.at(-1),!u&&s!==void 0&&s.length>0&&e.length>1&&(e[e.length-2]+=e.pop())},di=e=>{const t=e.split(" ");let i=t.length;for(;i>0&&!(re(t[i-1])>0);)i--;return i===t.length?e:t.slice(0,i).join(" ")+t.slice(i).join("")},mi=(e,t,i={})=>{if(i.trim!==!1&&e.trim()==="")return"";let r="",a,n;const s=e.split(" "),u=hi(s);let c=[""];for(const[l,o]of s.entries()){i.trim!==!1&&(c[c.length-1]=(c.at(-1)??"").trimStart());let f=re(c.at(-1)??"");if(l!==0&&(f>=t&&(i.wordWrap===!1||i.trim===!1)&&(c.push(""),f=0),(f>0||i.trim===!1)&&(c[c.length-1]+=" ",f++)),i.hard&&u[l]>t){const v=t-f,I=1+Math.floor((u[l]-v-1)/t);Math.floor((u[l]-1)/t)<I&&c.push(""),Be(c,o,t);continue}if(f+u[l]>t&&f>0&&u[l]>0){if(i.wordWrap===!1&&f<t){Be(c,o,t);continue}c.push("")}if(f+u[l]>t&&i.wordWrap===!1){Be(c,o,t);continue}c[c.length-1]+=o}i.trim!==!1&&(c=c.map(l=>di(l)));const h=c.join(`
|
|
18
|
-
`),w
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
`
|
|
24
|
-
|
|
25
|
-
`)
|
|
26
|
-
|
|
27
|
-
`,n=this.value?t:i;switch(this.state){case"submit":{const s=r?`${m("gray",F)} `:"";return`${a}${s}${m("dim",n)}`}case"cancel":{const s=r?`${m("gray",F)} `:"";return`${a}${s}${m(["strikethrough","dim"],n)}${r?`
|
|
28
|
-
${m("gray",F)}`:""}`}default:{const s=r?`${m("cyan",F)} `:"",u=r?m("cyan",Q):"";return`${a}${s}${this.value?`${m("green",Ne)} ${t}`:`${m("dim",de)} ${m("dim",t)}`}${e.vertical?r?`
|
|
29
|
-
${m("cyan",F)} `:`
|
|
30
|
-
`:` ${m("dim","/")} `}${this.value?`${m("dim",de)} ${m("dim",i)}`:`${m("green",Ne)} ${i}`}
|
|
31
|
-
${u}
|
|
32
|
-
`}}}}).prompt()},P={message:(e=[],{symbol:t=m("gray",F),secondarySymbol:i=m("gray",F),output:r=process.stdout,spacing:a=1,withGuide:n}={})=>{const s=[],u=n??z.withGuide,c=u?i:"",h=u?`${t} `:"",w=u?`${i} `:"";for(let d=0;d<a;d++)s.push(c);const $=Array.isArray(e)?e:e.split(`
|
|
33
|
-
`);if($.length>0){const[d,...S]=$;d.length>0?s.push(`${h}${d}`):s.push(u?t:"");for(const l of S)l.length>0?s.push(`${w}${l}`):s.push(u?i:"")}r.write(`${s.join(`
|
|
9
|
+
`)}let _e=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(e,t=!0){const{input:i=Me,output:r=we,render:a,signal:n,...s}=e;this.opts=s,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=a.bind(this),this._track=t,this._abortSignal=n,this.input=i,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){const i=this._subscribers.get(e)??[];i.push(t),this._subscribers.set(e,i)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){const i=this._subscribers.get(e)??[],r=[];for(const a of i)a.cb(...t),a.once&&r.push(()=>i.splice(i.indexOf(a),1));for(const a of r)a()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(Se);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=ct.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),he(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(R.cursor.show),this.output.off("resize",this.render),he(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(R.cursor.show),this.output.off("resize",this.render),he(this.input,!1),e(Se)})})}_isActionKey(e,t){return e===" "}_setValue(e){this.value=e,this.emit("value",this.value)}_setUserInput(e,t){this.userInput=e??"",this.emit("userInput",this.userInput),t&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(e,t){if(this._track&&t.name!=="return"&&(t.name&&this._isActionKey(e,t)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),t?.name&&(!this._track&&z.aliases.has(t.name)&&this.emit("cursor",z.aliases.get(t.name)),z.actions.has(t.name)&&this.emit("cursor",t.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),this.emit("key",e?.toLowerCase(),t),t?.name==="return"){if(this.opts.validate){const i=this.opts.validate(this.value);i&&(this.error=i instanceof Error?i.message:i,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}De([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
|
+
`),he(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){const e=ee(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
|
|
11
|
+
`).length-1;this.output.write(R.cursor.move(-999,e*-1))}render(){const e=ee(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(R.cursor.hide);else{const t=It(this._prevFrame,e),i=Ye(this.output);if(this.restoreCursor(),t){const r=Math.max(0,t.numLinesAfter-i),a=Math.max(0,t.numLinesBefore-i);let n=t.lines.find(s=>s>=r);if(n===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(R.cursor.move(0,n-a)),this.output.write(R.erase.lines(1));const s=e.split(`
|
|
12
|
+
`);this.output.write(s[n]),this._prevFrame=e,this.output.write(R.cursor.move(0,s.length-n-1));return}else if(t.lines.length>1){if(r<a)n=r;else{const o=n-a;o>0&&this.output.write(R.cursor.move(0,o))}this.output.write(R.erase.down());const s=e.split(`
|
|
13
|
+
`).slice(n);this.output.write(s.join(`
|
|
14
|
+
`)),this._prevFrame=e;return}}this.output.write(R.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}};class St extends _e{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",i=>{this.output.write(R.cursor.move(0,-1)),this.value=i,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}class xt extends _e{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t){super(t,!1),this.options=t.options;const i=this.options.findIndex(({value:a})=>a===t.initialValue),r=i===-1?0:i;this.cursor=this.options[r].disabled?fe(r,1,this.options):r,this.changeValue(),this.on("cursor",a=>{switch(a){case"left":case"up":this.cursor=fe(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=fe(this.cursor,1,this.options);break}this.changeValue()})}}class _t extends _e{get userInputWithCursor(){if(this.state==="submit")return this.userInput;const t=this.userInput;if(this.cursor>=t.length)return`${this.userInput}\u2588`;const i=t.slice(0,this.cursor),[r,...a]=t.slice(this.cursor);return`${i}${h("inverse",r)}${a.join("")}`}get cursor(){return this._cursor}constructor(t){super({...t,initialUserInput:t.initialUserInput??t.initialValue}),this.on("userInput",i=>{this._setValue(i)}),this.on("finalize",()=>{this.value||(this.value=t.defaultValue),this.value===void 0&&(this.value="")})}}function kt(){return G.platform!=="win32"?G.env.TERM!=="linux":!!G.env.CI||!!G.env.WT_SESSION||!!G.env.TERMINUS_SUBLIME||G.env.ConEmuTask==="{cmd::Cmder}"||G.env.TERM_PROGRAM==="Terminus-Sublime"||G.env.TERM_PROGRAM==="vscode"||G.env.TERM==="xterm-256color"||G.env.TERM==="alacritty"||G.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const ke=kt(),Tt=()=>process.env.CI==="true",V=(e,t)=>ke?e:t,Bt=V("\u25C6","*"),Je=V("\u25A0","x"),Ze=V("\u25B2","x"),Te=V("\u25C7","o"),Rt=V("\u250C","T"),S=V("\u2502","|"),te=V("\u2514","\u2014"),Be=V("\u25CF",">"),me=V("\u25CB"," "),Ot=V("\u25CF","\u2022"),Lt=V("\u25C6","*"),Mt=V("\u25B2","!"),Nt=V("\u25A0","x"),Re=e=>{switch(e){case"initial":case"active":return h("cyan",Bt);case"cancel":return h("red",Je);case"error":return h("yellow",Ze);case"submit":return h("green",Te)}},jt=e=>{switch(e){case"initial":case"active":return h("cyan",S);case"cancel":return h("red",S);case"error":return h("yellow",S);case"submit":return h("green",S)}},Vt=(e,t,i,r,a)=>{let n=t,s=0;for(let o=i;o<r;o++){const c=e[o];if(n=n-c.length,s++,n<=a)break}return{lineCount:n,removals:s}},Ut=({cursor:e,options:t,style:i,output:r=process.stdout,maxItems:a=Number.POSITIVE_INFINITY,columnPadding:n=0,rowPadding:s=4})=>{const o=xe(r)-n,c=Ye(r),l=h("dim","..."),v=Math.max(c-s,0),m=Math.max(Math.min(a,v),5);let p=0;e>=m-3&&(p=Math.max(Math.min(e-m+3,t.length-m),0));let b=m<t.length&&p>0,f=m<t.length&&p+m<t.length;const u=Math.min(p+m,t.length),F=[];let y=0;b&&y++,f&&y++;const k=p+(b?1:0),I=u-(f?1:0);for(let A=k;A<I;A++){const w=ee(i(t[A],A===e),o,{hard:!0,trim:!1}).split(`
|
|
15
|
+
`);F.push(w),y+=w.length}if(y>v){let A=0,w=0,d=y;const g=e-k,T=($,j)=>Vt(F,d,$,j,v);b?({lineCount:d,removals:A}=T(0,g),d>v&&({lineCount:d,removals:w}=T(g+1,F.length))):({lineCount:d,removals:w}=T(g+1,F.length),d>v&&({lineCount:d,removals:A}=T(0,g))),A>0&&(b=!0,F.splice(0,A)),w>0&&(f=!0,F.splice(F.length-w,w))}const E=[];b&&E.push(l);for(const A of F)for(const w of A)E.push(w);return f&&E.push(l),E},Qe=e=>{const t=e.active??"Yes",i=e.inactive??"No";return new St({active:t,inactive:i,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){const r=e.withGuide??z.withGuide,a=`${Re(this.state)} `,n=r?`${h("gray",S)} `:"",s=de(e.output,e.message,n,a),o=`${r?`${h("gray",S)}
|
|
16
|
+
`:""}${s}
|
|
17
|
+
`,c=this.value?t:i;switch(this.state){case"submit":{const l=r?`${h("gray",S)} `:"";return`${o}${l}${h("dim",c)}`}case"cancel":{const l=r?`${h("gray",S)} `:"";return`${o}${l}${h(["strikethrough","dim"],c)}${r?`
|
|
18
|
+
${h("gray",S)}`:""}`}default:{const l=r?`${h("cyan",S)} `:"",v=r?h("cyan",te):"";return`${o}${l}${this.value?`${h("green",Be)} ${t}`:`${h("dim",me)} ${h("dim",t)}`}${e.vertical?r?`
|
|
19
|
+
${h("cyan",S)} `:`
|
|
20
|
+
`:` ${h("dim","/")} `}${this.value?`${h("dim",me)} ${h("dim",i)}`:`${h("green",Be)} ${i}`}
|
|
21
|
+
${v}
|
|
22
|
+
`}}}}).prompt()},U={message:(e=[],{symbol:t=h("gray",S),secondarySymbol:i=h("gray",S),output:r=process.stdout,spacing:a=1,withGuide:n}={})=>{const s=[],o=n??z.withGuide,c=o?i:"",l=o?`${t} `:"",v=o?`${i} `:"";for(let p=0;p<a;p++)s.push(c);const m=Array.isArray(e)?e:e.split(`
|
|
23
|
+
`);if(m.length>0){const[p,...b]=m;p.length>0?s.push(`${l}${p}`):s.push(o?t:"");for(const f of b)f.length>0?s.push(`${v}${f}`):s.push(o?i:"")}r.write(`${s.join(`
|
|
34
24
|
`)}
|
|
35
|
-
`)},info:(e,t)=>{
|
|
25
|
+
`)},info:(e,t)=>{U.message(e,{...t,symbol:h("blue",Ot)})},success:(e,t)=>{U.message(e,{...t,symbol:h("green",Lt)})},step:(e,t)=>{U.message(e,{...t,symbol:h("green",Te)})},warn:(e,t)=>{U.message(e,{...t,symbol:h("yellow",Mt)})},warning:(e,t)=>{U.warn(e,t)},error:(e,t)=>{U.message(e,{...t,symbol:h("red",Nt)})}},D=(e="",t)=>{const i=process.stdout,r=`${h("gray",te)} `;i.write(`${r}${h("red",e)}
|
|
36
26
|
|
|
37
|
-
`)}
|
|
38
|
-
`)},
|
|
39
|
-
${
|
|
27
|
+
`)},Pt=(e="",t)=>{const i=process.stdout,r=`${h("gray",Rt)} `;i.write(`${r}${e}
|
|
28
|
+
`)},Wt=(e="",t)=>{const i=process.stdout,r=`${h("gray",S)}
|
|
29
|
+
${h("gray",te)} `;i.write(`${r}${e}
|
|
40
30
|
|
|
41
|
-
`)},
|
|
42
|
-
`);const
|
|
43
|
-
`);
|
|
44
|
-
`);let
|
|
45
|
-
`):i.write(`${
|
|
46
|
-
`)),
|
|
31
|
+
`)},Gt=e=>h("magenta",e),zt=({indicator:e="dots",onCancel:t,output:i=process.stdout,cancelMessage:r,errorMessage:a,frames:n=ke?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],delay:s=ke?80:120,signal:o,...c}={})=>{const l=Tt();let v,m,p=!1,b=!1,f="",u,F=performance.now();const y=xe(i),k=c?.styleFrame??Gt,I=x=>{const W=x>1?a??z.messages.error:r??z.messages.cancel;b=x===1,p&&(N(W,x),b&&typeof t=="function"&&t())},E=()=>I(2),A=()=>I(1),w=()=>{process.on("uncaughtExceptionMonitor",E),process.on("unhandledRejection",E),process.on("SIGINT",A),process.on("SIGTERM",A),process.on("exit",I),o&&o.addEventListener("abort",A)},d=()=>{process.removeListener("uncaughtExceptionMonitor",E),process.removeListener("unhandledRejection",E),process.removeListener("SIGINT",A),process.removeListener("SIGTERM",A),process.removeListener("exit",I),o&&o.removeEventListener("abort",A)},g=()=>{if(u===void 0)return;l&&i.write(`
|
|
32
|
+
`);const x=ee(u,y,{hard:!0,trim:!1}).split(`
|
|
33
|
+
`);x.length>1&&i.write(R.cursor.up(x.length-1)),i.write(R.cursor.to(0)),i.write(R.erase.down())},T=x=>x.replace(/\.+$/,""),$=x=>{const W=(performance.now()-x)/1e3,K=Math.floor(W/60),q=Math.floor(W%60);return K>0?`[${K}m ${q}s]`:`[${q}s]`},j=c.withGuide??z.withGuide,P=(x="")=>{p=!0,v=Dt({output:i}),f=T(x),F=performance.now(),j&&i.write(`${h("gray",S)}
|
|
34
|
+
`);let W=0,K=0;w(),m=setInterval(()=>{if(l&&f===u)return;g(),u=f;const q=k(n[W]);let ae;if(l)ae=`${q} ${f}...`;else if(e==="timer")ae=`${q} ${f} ${$(F)}`;else{const ut=".".repeat(Math.floor(K)).slice(0,3);ae=`${q} ${f}${ut}`}const ot=ee(ae,y,{hard:!0,trim:!1});i.write(ot),W=W+1<n.length?W+1:0,K=K<4?K+.125:0},s)},N=(x="",W=0,K=!1)=>{if(!p)return;p=!1,clearInterval(m),g();const q=W===0?h("green",Te):W===1?h("red",Je):h("red",Ze);f=x??f,K||(e==="timer"?i.write(`${q} ${f} ${$(F)}
|
|
35
|
+
`):i.write(`${q} ${f}
|
|
36
|
+
`)),d(),v()};return{start:P,stop:(x="")=>N(x,0),message:(x="")=>{f=T(x??f)},cancel:(x="")=>N(x,1),error:(x="")=>N(x,2),clear:()=>N("",0,!0),get isCancelled(){return b}}},Fe=(e,t)=>e.includes(`
|
|
47
37
|
`)?e.split(`
|
|
48
38
|
`).map(i=>t(i)).join(`
|
|
49
|
-
`):t(e),Z=e=>{const t=(i,r)=>{const a=i.label??String(i.value);switch(r){case"disabled":return`${
|
|
39
|
+
`):t(e),Z=e=>{const t=(i,r)=>{const a=i.label??String(i.value);switch(r){case"disabled":return`${h("gray",me)} ${Fe(a,n=>h("gray",n))}${i.hint?` ${h("dim",`(${i.hint??"disabled"})`)}`:""}`;case"selected":return`${Fe(a,n=>h("dim",n))}`;case"active":return`${h("green",Be)} ${a}${i.hint?` ${h("dim",`(${i.hint})`)}`:""}`;case"cancelled":return`${Fe(a,n=>h(["strikethrough","dim"],n))}`;default:return`${h("dim",me)} ${Fe(a,n=>h("dim",n))}`}};return new xt({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){const i=e.withGuide??z.withGuide,r=`${Re(this.state)} `,a=`${jt(this.state)} `,n=de(e.output,e.message,a,r),s=`${i?`${h("gray",S)}
|
|
50
40
|
`:""}${n}
|
|
51
|
-
`;switch(this.state){case"submit":{const
|
|
52
|
-
${
|
|
53
|
-
`).length,
|
|
54
|
-
${
|
|
41
|
+
`;switch(this.state){case"submit":{const o=i?`${h("gray",S)} `:"",c=de(e.output,t(this.options[this.cursor],"selected"),o);return`${s}${c}`}case"cancel":{const o=i?`${h("gray",S)} `:"",c=de(e.output,t(this.options[this.cursor],"cancelled"),o);return`${s}${c}${i?`
|
|
42
|
+
${h("gray",S)}`:""}`}default:{const o=i?`${h("cyan",S)} `:"",c=i?h("cyan",te):"",l=s.split(`
|
|
43
|
+
`).length,v=i?2:1;return`${s}${o}${Ut({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:o.length,rowPadding:l+v,style:(m,p)=>t(m,m.disabled?"disabled":p?"active":"inactive")}).join(`
|
|
44
|
+
${o}`)}
|
|
55
45
|
${c}
|
|
56
|
-
`}}}}).prompt()};`${
|
|
57
|
-
`:""}${
|
|
58
|
-
`,r=e.placeholder?
|
|
59
|
-
${
|
|
46
|
+
`}}}}).prompt()};`${h("gray",S)}`;const ge=async(e,t)=>{for(const i of e){if(i.enabled===!1)continue;const r=zt(t);r.start(i.title);const a=await i.task(r.message);r.stop(a||i.title)}},se=e=>new _t({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){const t=e?.withGuide??z.withGuide,i=`${`${t?`${h("gray",S)}
|
|
47
|
+
`:""}${Re(this.state)} `}${e.message}
|
|
48
|
+
`,r=e.placeholder?h("inverse",e.placeholder[0])+h("dim",e.placeholder.slice(1)):h(["inverse","hidden"],"_"),a=this.userInput?this.userInputWithCursor:r,n=this.value??"";switch(this.state){case"error":{const s=this.error?` ${h("yellow",this.error)}`:"",o=t?`${h("yellow",S)} `:"",c=t?h("yellow",te):"";return`${i.trim()}
|
|
49
|
+
${o}${a}
|
|
60
50
|
${c}${s}
|
|
61
|
-
`}case"submit":{const s=n?` ${
|
|
62
|
-
${
|
|
63
|
-
${
|
|
64
|
-
`}}}}).prompt();let
|
|
65
|
-
GitHub Desktop: https://github.com/apps/desktop`)}}var te=(e=>(e.VisualStudioCode="vscode",e.Cursor="cursor",e.VSCodium="codium",e.Other="other",e))(te||{});async function Fi({rootFolder:e,fileToOpen:t}){const i=await Z({message:"Which IDE do you want to use?",options:[{value:te.VisualStudioCode,label:"Visual Studio Code"},{value:te.Cursor,label:"Cursor"},{value:te.VSCodium,label:"VSCodium"},{value:te.Other,label:"Other"}],initialValue:te.VisualStudioCode});if(L(i)&&(_("Operation cancelled."),process.exit(0)),i===void 0)return;let r,a;switch(i){case"vscode":a="Opening in Visual Studio Code...",r="code";break;case"cursor":a="Opening in Cursor...",r="cursor";break;case"codium":a="Opening in VSCodium...",r="codium";break;default:return}await be([{title:a,task:async n=>{try{await Ze(r);const s=await H(r,[e]);n(s.stdout);const u=await H(r,[`${e}/README.md`]);if(n(u.stdout),t){const c=await H(r,[`${e}/${t}`]);n(c.stdout)}return`Opened project using ${i}`}catch{return`Could not open project using ${i}, since ${i} was not in your PATH`}}}])}var K=(e=>(e[e.VisualNovel=0]="VisualNovel",e[e.TextStory=1]="TextStory",e[e.PointAndClick=2]="PointAndClick",e[e.GameEngine=3]="GameEngine",e[e.Library=4]="Library",e))(K||{}),T=(e=>(e[e.Ink=0]="Ink",e[e.Renpy=1]="Renpy",e[e.Typescript=2]="Typescript",e))(T||{}),N=(e=>(e[e.React=0]="React",e[e.Vue=1]="Vue",e[e.Angular=2]="Angular",e))(N||{});const $t="My Game",wt="my-game",X=[{type:K.VisualNovel,name:"Visual Novel",availableUI:[N.React],availableNarrativeLanguages:[T.Ink,T.Typescript],isMultidevice:!0},{type:K.TextStory,name:"Text-based Story",availableUI:[N.React],availableNarrativeLanguages:[T.Ink,T.Typescript],isMultidevice:!0},{type:K.PointAndClick,name:"Point & Click Adventure",availableUI:[N.React],availableNarrativeLanguages:[T.Ink,T.Typescript],isMultidevice:!0},{type:K.GameEngine,name:"Game Engine",availableUI:[],availableNarrativeLanguages:[],isMultidevice:!1},{type:K.Library,name:"Library",availableUI:[],availableNarrativeLanguages:[],isMultidevice:!1}];async function Mi({packageName:e}){const t=await Z({message:"Select the type of game you want to create:",options:X.map(h=>({label:h.name,value:h.type})),initialValue:X[0].type});L(t)&&(_("Operation cancelled."),process.exit(0));const i=X.find(h=>h.type===t)?.availableUI.map(h=>{let w="";switch(h){case N.React:w=xe("React");break;case N.Vue:w=Ei("Vue");break;case N.Angular:w=xi("Angular");break}return{label:w,value:h}})||[];let r;i.length===1?(P.warning(`Only one UI framework available: ${i[0].label}. Using it by default.`),r=i[0].value):i.length>0?(r=await Z({message:"Select the UI framework you want to use:",options:i,initialValue:X.find(h=>h.type===t)?.availableUI[0]}),L(r)&&(_("Operation cancelled."),process.exit(0))):r=void 0;const a=X.find(h=>h.type===t)?.availableNarrativeLanguages.map(h=>{let w="";switch(h){case T.Ink:w="Ink + Typescript";break;case T.Renpy:w=Ii("Renpy");break;case T.Typescript:w=xe("Typescript");break}return{label:w,value:h}})||[];let n;a.length===1?(P.warning(`Only one narrative language available: ${a[0].label}. Using it by default.`),n=a[0].value):a.length>0?(n=await Z({message:"Select the narrative language you want to use:",options:a,initialValue:X.find(h=>h.type===t)?.availableNarrativeLanguages[0]}),L(n)&&(_("Operation cancelled."),process.exit(0))):n=void 0;const s=X.find(h=>h.type===t)?.isMultidevice;let u=!1,c="";return s&&(u=await Z({message:"Which devices is the project intended for?",options:[{label:"Web page",value:!1},{label:"Web page + Desktop + Mobile (Tauri)",value:!0}],initialValue:!1}),L(u)&&(_("Operation cancelled."),process.exit(0)),u?(c=await se({message:"Project identifier:",initialValue:`com.${e}.app`,validate:h=>{if(!h)return"Identifier is required.";if(!/^[a-zA-Z0-9_.\-]+$/.test(h))return"Identifier can only contain letters, numbers, underscores, dots and dashes."}}),L(c)&&(_("Operation cancelled."),process.exit(0))):c=""),{gameType:t,UIFramework:r,narrativeLanguage:n,multidevice:u,identifier:c}}var V=(e=>(e.Delete="delete",e.Overwrite="overwrite",e.Skip="skip",e.Ask="ask",e.Cancel="cancel",e))(V||{});function Ci(e){const t=A.readdirSync(e);return t.length===0||t.length===1&&t[0]===".git"}function bt(e,t,i){if(!A.existsSync(t))return;const r=A.statSync(t);if(r.isFile())(i===V.Overwrite||i===V.Delete)&&A.rmSync(t,{force:!0});else if(r.isDirectory()){const a=A.readdirSync(e);for(const n of a){const s=j.join(e,n),u=j.join(t,n);bt(s,u,i)}}}function qe(e,t,i){if(A.statSync(e).isDirectory()){A.mkdirSync(t,{recursive:!0});for(const r of A.readdirSync(e)){const a=j.join(e,r),n=j.join(t,r);qe(a,n,i)}}else{if(i!==void 0&&A.existsSync(t)){if(i===V.Skip)return;(i===V.Overwrite||i===V.Delete)&&A.rmSync(t,{force:!0})}A.copyFileSync(e,t)}}function ji(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function yt(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}async function Ti(){const e=await se({message:"Project name:",defaultValue:$t,placeholder:$t,validate:s=>{if(!s)return"Project name cannot be empty"}});L(e)&&(_("Operation cancelled."),process.exit(0));const t=await se({message:"Project description:",defaultValue:"A new game project",placeholder:"A new game project",validate:s=>{if(!s)return"Project description cannot be empty"}});L(t)&&(_("Operation cancelled."),process.exit(0));const i=await se({message:"Package name:",defaultValue:yt(wt),placeholder:yt(wt),validate:s=>{if(!s)return"Package name cannot be empty";if(!ji(s))return"Invalid package name. The name can only include URL-friendly characters."}});L(i)&&(_("Operation cancelled."),process.exit(0));const r=j.basename(j.resolve()),a=await se({message:"Target directory:",defaultValue:i,placeholder:`${i} (If is equal to ".", the current directory (${r}) will be used)`});L(a)&&(_("Operation cancelled."),process.exit(0));let n;return A.existsSync(a)&&!Ci(a)?(n=await Z({message:"Overwrite existing files?",options:[{hint:"Delete all existing files and create a new project",label:"Delete all",value:V.Delete},{hint:"Overwrite existing conflicting files",label:"Overwrite",value:V.Overwrite},{hint:"Skip existing conflicting files",label:"Skip",value:V.Skip},{hint:"Ask for each file",label:"Ask",value:V.Ask},{hint:"Cancel operation",label:"Cancel",value:V.Cancel}],initialValue:V.Overwrite}),(L(n)||n===V.Cancel)&&(_("Operation cancelled."),process.exit(0))):n=void 0,{projectName:e,foltderName:a,description:t,packageName:i,overwrite:n}}const xt={_gitignore:".gitignore"};async function Oi({rootFolder:e,overwrite:t,template:i,packageName:r,description:a,projectName:n,identifier:s}){const u=await be([{title:`Creating project in ${e}...`,task:async()=>{A.existsSync(e)||A.mkdirSync(e,{recursive:!0});const c=j.resolve(At(import.meta.url),"../..",`${i}`),h=(S,l)=>{const o=j.join(e,xt[S]??S);l?A.writeFileSync(o,l):qe(j.join(c,S),o,t)},w=A.readdirSync(c).map(async S=>{const l=j.join(c,S),o=j.join(e,xt[S]??S);if(A.existsSync(o))switch(t){case V.Ask:if(A.statSync(o).isFile()){const f=await mt({message:`File ${o} already exists. Do you want to overwrite it?`,initialValue:!1});if(L(f)&&(_("Operation cancelled."),process.exit(0)),!f)return;A.rmSync(o,{force:!0})}else{const f=A.readdirSync(l);for(const v of f){const I=j.join(l,v),x=j.join(o,v);if(A.existsSync(x)){const b=await mt({message:`File ${x} already exists. Do you want to overwrite it?`,initialValue:!1});if(L(b)&&(_("Operation cancelled."),process.exit(0)),!b)continue;A.rmSync(x,{force:!0})}qe(I,x,t)}return}break;case V.Skip:return;case V.Overwrite:case V.Delete:bt(l,o,t);break}switch(S){case"package.json":case"vite.config.ts":case"index.html":let f=A.readFileSync(l,"utf-8");f=f.replace(/my-app-package-name/g,r),f=f.replace(/my-app-description/g,a),f=f.replace(/my-app-project-name/g,n),h(S,f);break;case".git":case"package-lock.json":break;default:h(S)}});await Promise.all(w);const $=j.join(e,"src-tauri");if(A.existsSync($)){const S=A.readdirSync($).map(async l=>{switch(l){case"Cargo.lock":case"Cargo.toml":case"tauri.conf.json":let o=A.readFileSync(j.join($,l),"utf-8");o=o.replace(/my-app-package-name/g,r),o=o.replace(/my-app-description/g,a),o=o.replace(/my-app-project-name/g,n),o=o.replace(/com.my-app-project-name.app/g,s),h(j.join("src-tauri",l),o)}});await Promise.all(S)}const d=j.join(e,"_github");return A.existsSync(d)&&A.renameSync(d,j.join(e,".github")),"Project created"}}]);L(u)&&(_("Operation cancelled."),process.exit(0))}const Ri=process.cwd();async function Vi(){let e,{description:t,overwrite:i,packageName:r,projectName:a,foltderName:n}=await Ti(),{UIFramework:s,gameType:u,narrativeLanguage:c,multidevice:h,identifier:w}=await Mi({packageName:r});const $=j.join(Ri,n);let d;switch(u){case K.VisualNovel:switch(s){case N.React:switch(c){case T.Typescript:h?d="template-react-vite-muijoy-tauri":d="template-react-vite-muijoy",e="src/labels/startLabel.ts";break;case T.Ink:h?d="template-react-vite-muijoy-ink-tauri":d="template-react-vite-muijoy-ink",e="src/ink/start.ink";break;case T.Renpy:_("Error: There are no templates for this narrative language"),process.exit(0);default:_("Error: Unknown narrative language"),process.exit(0)}break;case N.Vue:case N.Angular:_("Error: There are no templates for this game type and UI framework"),process.exit(0);default:_("Error: Unknown UI framework"),process.exit(0)}break;case K.TextStory:switch(s){case N.React:switch(c){case T.Typescript:h?d="template-story-react-vite-muijoy-tauri":d="template-story-react-vite-muijoy",e="src/labels/startLabel.ts";break;case T.Ink:h?d="template-story-react-vite-muijoy-ink-tauri":d="template-story-react-vite-muijoy-ink",e="src/ink/start.ink";break;case T.Renpy:_("Error: There are no templates for this narrative language"),process.exit(0);default:_("Error: Unknown narrative language"),process.exit(0)}break;case N.Vue:case N.Angular:_("Error: There are no templates for this game type and UI framework"),process.exit(0);default:_("Error: Unknown UI framework"),process.exit(0)}break;case K.PointAndClick:switch(s){case N.React:switch(c){case T.Typescript:h?d="template-nqtr-react-vite-muijoy-tauri":d="template-nqtr-react-vite-muijoy",e="src/labels/startLabel.ts";break;case T.Ink:h?d="template-nqtr-react-vite-muijoy-ink-tauri":d="template-nqtr-react-vite-muijoy-ink",e="src/ink/variousActionsLabels.ink";break;case T.Renpy:_("Error: There are no templates for this narrative language"),process.exit(0);default:_("Error: Unknown narrative language"),process.exit(0)}break;case N.Vue:case N.Angular:_("Error: There are no templates for this game type and UI framework"),process.exit(0);default:_("Error: Unknown UI framework"),process.exit(0)}break;case K.GameEngine:d="template-game-engine",e="src/index.ts";break;case K.Library:d="template-lib",e="src/index.ts";break;default:_("Error: Unknown game type"),process.exit(0)}return await Oi({rootFolder:$,template:d,packageName:r,description:t,projectName:a,overwrite:i,identifier:w}),{rootFolder:$,fileToOpen:e}}function Li(){console.info(`
|
|
51
|
+
`}case"submit":{const s=n?` ${h("dim",n)}`:"",o=t?h("gray",S):"";return`${i}${o}${s}`}case"cancel":{const s=n?` ${h(["strikethrough","dim"],n)}`:"",o=t?h("gray",S):"";return`${i}${o}${s}${n.trim()?`
|
|
52
|
+
${o}`:""}`}default:{const s=t?`${h("cyan",S)} `:"",o=t?h("cyan",te):"";return`${i}${s}${a}
|
|
53
|
+
${o}
|
|
54
|
+
`}}}}).prompt();let Q=!0;const ie=typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{};let ne=0;if(ie.process&&ie.process.env&&ie.process.stdout){const{FORCE_COLOR:e,NODE_DISABLE_COLORS:t,NO_COLOR:i,TERM:r,COLORTERM:a}=ie.process.env;t||i||e==="0"?Q=!1:e==="1"||e==="2"||e==="3"?Q=!0:r==="dumb"?Q=!1:"CI"in ie.process.env&&["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(n=>n in ie.process.env)?Q=!0:Q=process.stdout.isTTY,Q&&(process.platform==="win32"||a&&(a==="truecolor"||a==="24bit")?ne=3:r&&(r.endsWith("-256color")||r.endsWith("256"))?ne=2:ne=1)}let Xe={enabled:Q,supportLevel:ne};function ve(e,t,i=1){const r=`\x1B[${e}m`,a=`\x1B[${t}m`,n=new RegExp(`\\x1b\\[${t}m`,"g");return s=>Xe.enabled&&Xe.supportLevel>=i?r+(""+s).replace(n,r)+a:""+s}const Ht=ve(31,39),be=ve(36,39),Kt=ve(90,39),qt=ve(91,39);var Oe,et;function Yt(){if(et)return Oe;et=1;function e(r,a){var n=r;a.slice(0,-1).forEach(function(o){n=n[o]||{}});var s=a[a.length-1];return s in n}function t(r){return typeof r=="number"||/^0x[0-9a-f]+$/i.test(r)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(r)}function i(r,a){return a==="constructor"&&typeof r[a]=="function"||a==="__proto__"}return Oe=function(r,a){a||(a={});var n={bools:{},strings:{},unknownFn:null};typeof a.unknown=="function"&&(n.unknownFn=a.unknown),typeof a.boolean=="boolean"&&a.boolean?n.allBools=!0:[].concat(a.boolean).filter(Boolean).forEach(function(d){n.bools[d]=!0});var s={};function o(d){return s[d].some(function(g){return n.bools[g]})}Object.keys(a.alias||{}).forEach(function(d){s[d]=[].concat(a.alias[d]),s[d].forEach(function(g){s[g]=[d].concat(s[d].filter(function(T){return g!==T}))})}),[].concat(a.string).filter(Boolean).forEach(function(d){n.strings[d]=!0,s[d]&&[].concat(s[d]).forEach(function(g){n.strings[g]=!0})});var c=a.default||{},l={_:[]};function v(d,g){return n.allBools&&/^--[^=]+$/.test(g)||n.strings[d]||n.bools[d]||s[d]}function m(d,g,T){for(var $=d,j=0;j<g.length-1;j++){var P=g[j];if(i($,P))return;$[P]===void 0&&($[P]={}),($[P]===Object.prototype||$[P]===Number.prototype||$[P]===String.prototype)&&($[P]={}),$[P]===Array.prototype&&($[P]=[]),$=$[P]}var N=g[g.length-1];i($,N)||(($===Object.prototype||$===Number.prototype||$===String.prototype)&&($={}),$===Array.prototype&&($=[]),$[N]===void 0||n.bools[N]||typeof $[N]=="boolean"?$[N]=T:Array.isArray($[N])?$[N].push(T):$[N]=[$[N],T])}function p(d,g,T){if(!(T&&n.unknownFn&&!v(d,T)&&n.unknownFn(T)===!1)){var $=!n.strings[d]&&t(g)?Number(g):g;m(l,d.split("."),$),(s[d]||[]).forEach(function(j){m(l,j.split("."),$)})}}Object.keys(n.bools).forEach(function(d){p(d,c[d]===void 0?!1:c[d])});var b=[];r.indexOf("--")!==-1&&(b=r.slice(r.indexOf("--")+1),r=r.slice(0,r.indexOf("--")));for(var f=0;f<r.length;f++){var u=r[f],F,y;if(/^--.+=/.test(u)){var k=u.match(/^--([^=]+)=([\s\S]*)$/);F=k[1];var I=k[2];n.bools[F]&&(I=I!=="false"),p(F,I,u)}else if(/^--no-.+/.test(u))F=u.match(/^--no-(.+)/)[1],p(F,!1,u);else if(/^--.+/.test(u))F=u.match(/^--(.+)/)[1],y=r[f+1],y!==void 0&&!/^(-|--)[^-]/.test(y)&&!n.bools[F]&&!n.allBools&&(!s[F]||!o(F))?(p(F,y,u),f+=1):/^(true|false)$/.test(y)?(p(F,y==="true",u),f+=1):p(F,n.strings[F]?"":!0,u);else if(/^-[^-]+/.test(u)){for(var E=u.slice(1,-1).split(""),A=!1,w=0;w<E.length;w++){if(y=u.slice(w+2),y==="-"){p(E[w],y,u);continue}if(/[A-Za-z]/.test(E[w])&&y[0]==="="){p(E[w],y.slice(1),u),A=!0;break}if(/[A-Za-z]/.test(E[w])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(y)){p(E[w],y,u),A=!0;break}if(E[w+1]&&E[w+1].match(/\W/)){p(E[w],u.slice(w+2),u),A=!0;break}else p(E[w],n.strings[E[w]]?"":!0,u)}F=u.slice(-1)[0],!A&&F!=="-"&&(r[f+1]&&!/^(-|--)[^-]/.test(r[f+1])&&!n.bools[F]&&(!s[F]||!o(F))?(p(F,r[f+1],u),f+=1):r[f+1]&&/^(true|false)$/.test(r[f+1])?(p(F,r[f+1]==="true",u),f+=1):p(F,n.strings[F]?"":!0,u))}else if((!n.unknownFn||n.unknownFn(u)!==!1)&&l._.push(n.strings._||!t(u)?u:Number(u)),a.stopEarly){l._.push.apply(l._,r.slice(f+1));break}}return Object.keys(c).forEach(function(d){e(l,d.split("."))||(m(l,d.split("."),c[d]),(s[d]||[]).forEach(function(g){m(l,g.split("."),c[d])}))}),a["--"]?l["--"]=b.slice():b.forEach(function(d){l._.push(d)}),l},Oe}var Jt=Yt();const Zt=yt(Jt);async function Qt({rootFolder:e}){const t=_.join(e,".git");try{if(C.existsSync(t)){U.warn("Git repository already exists.");return}}catch(r){U.error(`Error checking git folder: ${r}`);return}const i=await Z({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(L(i)&&(D("Operation cancelled."),process.exit(0)),i){const r=await ge([{title:"Initializing git repository...",task:async a=>{const n=await J("git",["init","-b","main"],{cwd:e});a(n.stdout);const s=await J("git",["add","."],{cwd:e});return a(s.stdout),"Git repository initialized."}}]);L(r)&&(D("Operation cancelled."),process.exit(0)),U.message(`Now, you can use GitHub Desktop upload your project to GitHub.
|
|
55
|
+
GitHub Desktop: https://github.com/apps/desktop`)}}var re=(e=>(e.VisualStudioCode="vscode",e.Cursor="cursor",e.VSCodium="codium",e.Other="other",e))(re||{});async function Xt({rootFolder:e,fileToOpen:t}){const i=await Z({message:"Which IDE do you want to use?",options:[{value:re.VisualStudioCode,label:"Visual Studio Code"},{value:re.Cursor,label:"Cursor"},{value:re.VSCodium,label:"VSCodium"},{value:re.Other,label:"Other"}],initialValue:re.VisualStudioCode});if(L(i)&&(D("Operation cancelled."),process.exit(0)),i===void 0)return;let r,a;switch(i){case"vscode":a="Opening in Visual Studio Code...",r="code";break;case"cursor":a="Opening in Cursor...",r="cursor";break;case"codium":a="Opening in VSCodium...",r="codium";break;default:return}await ge([{title:a,task:async n=>{try{await je(r);const s=await J(r,[e]);n(s.stdout);const o=await J(r,[`${e}/README.md`]);if(n(o.stdout),t){const c=await J(r,[`${e}/${t}`]);n(c.stdout)}return`Opened project using ${i}`}catch{return`Could not open project using ${i}, since ${i} was not in your PATH`}}}])}var H=(e=>(e[e.VisualNovel=0]="VisualNovel",e[e.TextStory=1]="TextStory",e[e.PointAndClick=2]="PointAndClick",e[e.GameEngine=3]="GameEngine",e[e.Library=4]="Library",e))(H||{}),B=(e=>(e[e.Ink=0]="Ink",e[e.Renpy=1]="Renpy",e[e.Typescript=2]="Typescript",e))(B||{}),M=(e=>(e[e.React=0]="React",e[e.Vue=1]="Vue",e[e.Angular=2]="Angular",e))(M||{});const tt="My Game",it="my-game",X=[{type:H.VisualNovel,name:"Visual Novel",availableUI:[M.React],availableNarrativeLanguages:[B.Ink,B.Typescript],isMultidevice:!0},{type:H.TextStory,name:"Text-based Story",availableUI:[M.React],availableNarrativeLanguages:[B.Ink,B.Typescript],isMultidevice:!0},{type:H.PointAndClick,name:"Point & Click Adventure",availableUI:[M.React],availableNarrativeLanguages:[B.Ink,B.Typescript],isMultidevice:!0},{type:H.GameEngine,name:"Game Engine",availableUI:[],availableNarrativeLanguages:[],isMultidevice:!1},{type:H.Library,name:"Library",availableUI:[],availableNarrativeLanguages:[],isMultidevice:!1}];async function ei({packageName:e}){const t=await Z({message:"Select the type of game you want to create:",options:X.map(l=>({label:l.name,value:l.type})),initialValue:X[0].type});L(t)&&(D("Operation cancelled."),process.exit(0));const i=X.find(l=>l.type===t)?.availableUI.map(l=>{let v="";switch(l){case M.React:v=be("React");break;case M.Vue:v=Kt("Vue");break;case M.Angular:v=Ht("Angular");break}return{label:v,value:l}})||[];let r;i.length===1?(U.warning(`Only one UI framework available: ${i[0].label}. Using it by default.`),r=i[0].value):i.length>0?(r=await Z({message:"Select the UI framework you want to use:",options:i,initialValue:X.find(l=>l.type===t)?.availableUI[0]}),L(r)&&(D("Operation cancelled."),process.exit(0))):r=void 0;const a=X.find(l=>l.type===t)?.availableNarrativeLanguages.map(l=>{let v="";switch(l){case B.Ink:v="Ink + Typescript";break;case B.Renpy:v=qt("Renpy");break;case B.Typescript:v=be("Typescript");break}return{label:v,value:l}})||[];let n;a.length===1?(U.warning(`Only one narrative language available: ${a[0].label}. Using it by default.`),n=a[0].value):a.length>0?(n=await Z({message:"Select the narrative language you want to use:",options:a,initialValue:X.find(l=>l.type===t)?.availableNarrativeLanguages[0]}),L(n)&&(D("Operation cancelled."),process.exit(0))):n=void 0;const s=X.find(l=>l.type===t)?.isMultidevice;let o=!1,c="";return s&&(o=await Z({message:"Which devices is the project intended for?",options:[{label:"Web page",value:!1},{label:"Web page + Desktop + Mobile (Tauri)",value:!0}],initialValue:!1}),L(o)&&(D("Operation cancelled."),process.exit(0)),o?(c=await se({message:"Project identifier:",initialValue:`com.${e}.app`,validate:l=>{if(!l)return"Identifier is required.";if(!/^[a-zA-Z0-9_.\-]+$/.test(l))return"Identifier can only contain letters, numbers, underscores, dots and dashes."}}),L(c)&&(D("Operation cancelled."),process.exit(0))):c=""),{gameType:t,UIFramework:r,narrativeLanguage:n,multidevice:o,identifier:c}}var O=(e=>(e.Delete="delete",e.Overwrite="overwrite",e.Skip="skip",e.Ask="ask",e.Cancel="cancel",e))(O||{});function ti(e){const t=C.readdirSync(e);return t.length===0||t.length===1&&t[0]===".git"}function rt(e,t,i){if(!C.existsSync(t))return;const r=C.statSync(t);if(r.isFile())(i===O.Overwrite||i===O.Delete)&&C.rmSync(t,{force:!0});else if(r.isDirectory()){const a=C.readdirSync(e);for(const n of a){const s=_.join(e,n),o=_.join(t,n);rt(s,o,i)}}}function Le(e,t,i){if(C.statSync(e).isDirectory()){C.mkdirSync(t,{recursive:!0});for(const r of C.readdirSync(e)){const a=_.join(e,r),n=_.join(t,r);Le(a,n,i)}}else{if(i!==void 0&&C.existsSync(t)){if(i===O.Skip)return;(i===O.Overwrite||i===O.Delete)&&C.rmSync(t,{force:!0})}C.copyFileSync(e,t)}}function ii(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function st(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}async function ri(){const e=await se({message:"Project name:",defaultValue:tt,placeholder:tt,validate:s=>{if(!s)return"Project name cannot be empty"}});L(e)&&(D("Operation cancelled."),process.exit(0));const t=await se({message:"Project description:",defaultValue:"A new game project",placeholder:"A new game project",validate:s=>{if(!s)return"Project description cannot be empty"}});L(t)&&(D("Operation cancelled."),process.exit(0));const i=await se({message:"Package name:",defaultValue:st(it),placeholder:st(it),validate:s=>{if(!s)return"Package name cannot be empty";if(!ii(s))return"Invalid package name. The name can only include URL-friendly characters."}});L(i)&&(D("Operation cancelled."),process.exit(0));const r=_.basename(_.resolve()),a=await se({message:"Target directory:",defaultValue:i,placeholder:`${i} (If is equal to ".", the current directory (${r}) will be used)`});L(a)&&(D("Operation cancelled."),process.exit(0));let n;return C.existsSync(a)&&!ti(a)?(n=await Z({message:"Overwrite existing files?",options:[{hint:"Delete all existing files and create a new project",label:"Delete all",value:O.Delete},{hint:"Overwrite existing conflicting files",label:"Overwrite",value:O.Overwrite},{hint:"Skip existing conflicting files",label:"Skip",value:O.Skip},{hint:"Ask for each file",label:"Ask",value:O.Ask},{hint:"Cancel operation",label:"Cancel",value:O.Cancel}],initialValue:O.Overwrite}),(L(n)||n===O.Cancel)&&(D("Operation cancelled."),process.exit(0))):n=void 0,{projectName:e,foltderName:a,description:t,packageName:i,overwrite:n}}const nt={_gitignore:".gitignore"};async function si({rootFolder:e,overwrite:t,template:i,packageName:r,description:a,projectName:n,identifier:s}){const o=await ge([{title:`Creating project in ${e}...`,task:async()=>{C.existsSync(e)||C.mkdirSync(e,{recursive:!0});const c=_.resolve(lt(import.meta.url),"../..",`${i}`),l=(b,f)=>{const u=_.join(e,nt[b]??b);f?C.writeFileSync(u,f):Le(_.join(c,b),u,t)},v=C.readdirSync(c).map(async b=>{const f=_.join(c,b),u=_.join(e,nt[b]??b);if(C.existsSync(u))switch(t){case O.Ask:if(C.statSync(u).isFile()){const F=await Qe({message:`File ${u} already exists. Do you want to overwrite it?`,initialValue:!1});if(L(F)&&(D("Operation cancelled."),process.exit(0)),!F)return;C.rmSync(u,{force:!0})}else{const F=C.readdirSync(f);for(const y of F){const k=_.join(f,y),I=_.join(u,y);if(C.existsSync(I)){const E=await Qe({message:`File ${I} already exists. Do you want to overwrite it?`,initialValue:!1});if(L(E)&&(D("Operation cancelled."),process.exit(0)),!E)continue;C.rmSync(I,{force:!0})}Le(k,I,t)}return}break;case O.Skip:return;case O.Overwrite:case O.Delete:rt(f,u,t);break}switch(b){case"package.json":case"vite.config.ts":case"index.html":let F=C.readFileSync(f,"utf-8");F=F.replace(/my-app-package-name/g,r),F=F.replace(/my-app-description/g,a),F=F.replace(/my-app-project-name/g,n),l(b,F);break;case".git":case"package-lock.json":break;default:l(b)}});await Promise.all(v);const m=_.join(e,"src-tauri");if(C.existsSync(m)){const b=C.readdirSync(m).map(async f=>{switch(f){case"Cargo.lock":case"Cargo.toml":case"tauri.conf.json":let u=C.readFileSync(_.join(m,f),"utf-8");u=u.replace(/my-app-package-name/g,r),u=u.replace(/my-app-description/g,a),u=u.replace(/my-app-project-name/g,n),u=u.replace(/com.my-app-project-name.app/g,s),l(_.join("src-tauri",f),u)}});await Promise.all(b)}const p=_.join(e,"_github");return C.existsSync(p)&&C.renameSync(p,_.join(e,".github")),"Project created"}}]);L(o)&&(D("Operation cancelled."),process.exit(0))}const ni=process.cwd();async function ai(){let e,{description:t,overwrite:i,packageName:r,projectName:a,foltderName:n}=await ri(),{UIFramework:s,gameType:o,narrativeLanguage:c,multidevice:l,identifier:v}=await ei({packageName:r});const m=_.join(ni,n);let p;switch(o){case H.VisualNovel:switch(s){case M.React:switch(c){case B.Typescript:l?p="template-react-vite-muijoy-tauri":p="template-react-vite-muijoy",e="src/labels/startLabel.ts";break;case B.Ink:l?p="template-react-vite-muijoy-ink-tauri":p="template-react-vite-muijoy-ink",e="src/ink/start.ink";break;case B.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 M.Vue:case M.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 H.TextStory:switch(s){case M.React:switch(c){case B.Typescript:l?p="template-story-react-vite-muijoy-tauri":p="template-story-react-vite-muijoy",e="src/labels/startLabel.ts";break;case B.Ink:l?p="template-story-react-vite-muijoy-ink-tauri":p="template-story-react-vite-muijoy-ink",e="src/ink/start.ink";break;case B.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 M.Vue:case M.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 H.PointAndClick:switch(s){case M.React:switch(c){case B.Typescript:l?p="template-nqtr-react-vite-muijoy-tauri":p="template-nqtr-react-vite-muijoy",e="src/labels/startLabel.ts";break;case B.Ink:l?p="template-nqtr-react-vite-muijoy-ink-tauri":p="template-nqtr-react-vite-muijoy-ink",e="src/ink/variousActionsLabels.ink";break;case B.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 M.Vue:case M.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 H.GameEngine:p="template-game-engine",e="src/index.ts";break;case H.Library:p="template-lib",e="src/index.ts";break;default:D("Error: Unknown game type"),process.exit(0)}return await si({rootFolder:m,template:p,packageName:r,description:t,projectName:a,overwrite:i,identifier:v}),{rootFolder:m,fileToOpen:e}}function oi(){console.info(`
|
|
66
56
|
\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
|
|
67
57
|
\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
|
|
68
58
|
\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
|
|
69
59
|
\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
|
|
70
60
|
\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
|
|
71
61
|
\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
|
|
72
|
-
`)}function
|
|
62
|
+
`)}function ui(e){if(!e)return;const t=e.split(" ")[0].split("/");return{name:t[0],version:t[1]}}const ci=Zt(process.argv.slice(2),{default:{help:!1},alias:{h:"help",t:"template"},string:["_"]}),at=process.cwd(),li=`Usage: create-pixi-vn [OPTION]... [DIRECTORY]
|
|
73
63
|
|
|
74
64
|
Create a new Pixi\u2019VN project.
|
|
75
65
|
With no arguments, start the CLI in interactive mode.
|
|
@@ -78,7 +68,7 @@ Options:
|
|
|
78
68
|
-t, --template NAME use a specific template
|
|
79
69
|
|
|
80
70
|
Available templates:
|
|
81
|
-
${
|
|
71
|
+
${be("basic-visual-novel react")}`;async function pi(){try{if(oi(),Pt(`Welcome to ${be("Pixi\u2019VN")}! \u{1F3A8}\u2728`),ci.help){console.log(li);return}const{rootFolder:e,fileToOpen:t}=await ai();await Qt({rootFolder:e});const i=ui(process.env.npm_config_user_agent),r=i?i.name:"npm",a=_.relative(at,e);await Xt({rootFolder:e,fileToOpen:t}),await ge([{title:"Installing dependencies...",task:async s=>{try{await je(r),r==="yarn"?await J("yarn",[],{cwd:e}):await J(r,["install"],{cwd:e})}catch{return`Could not use ${r} to install dependencies`}return"Dependencies installed."}}]),U.message("Refer to the README.md file for detailed information about the project.");let n="To run the game:";switch(e!==at&&(n+=`
|
|
82
72
|
cd ${a.includes(" ")?`"${a}"`:a}`),r){case"yarn":n+=`
|
|
83
73
|
yarn dev`;break;default:n+=`
|
|
84
|
-
${r} run start`;break}
|
|
74
|
+
${r} run start`;break}U.message(n),Wt("You're all set! \u{1F389} Now go build your game! \u{1F680}"),console.log()}catch(e){console.error(e)}}pi().catch(e=>{console.error(e)});
|
package/package.json
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "my-app-package-name",
|
|
3
|
-
"description": "my-app-description",
|
|
4
|
-
"version": "0.1.0",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "GPL-3.0",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"start": "vite",
|
|
9
|
-
"dev": "vite",
|
|
10
|
-
"build": "tsc && vite build",
|
|
11
|
-
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
12
|
-
"preview": "vite preview"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"@drincs/nqtr": "^0.8.
|
|
16
|
-
"@drincs/pixi-vn": "^1.
|
|
17
|
-
"@drincs/pixi-vn-spine": "^0.2.1",
|
|
18
|
-
"@emotion/react": "^11.14.0",
|
|
19
|
-
"@emotion/styled": "^11.14.1",
|
|
20
|
-
"@mui/icons-material": "^7.3.7",
|
|
21
|
-
"@mui/joy": "^5.0.0-beta.52",
|
|
22
|
-
"@mui/material": "^7.3.7",
|
|
23
|
-
"@tailwindcss/vite": "^4.1.18",
|
|
24
|
-
"@tanstack/react-query": "^5.90.20",
|
|
25
|
-
"es-toolkit": "^1.44.0",
|
|
26
|
-
"i18next": "^25.8.0",
|
|
27
|
-
"i18next-chained-backend": "^5.0.2",
|
|
28
|
-
"i18next-resources-to-backend": "^1.2.1",
|
|
29
|
-
"motion": "^12.29.2",
|
|
30
|
-
"notistack": "^3.0.2",
|
|
31
|
-
"react": "^19.2.4",
|
|
32
|
-
"react-color-palette": "^7.3.1",
|
|
33
|
-
"react-dom": "^19.2.4",
|
|
34
|
-
"react-error-boundary": "^6.1.0",
|
|
35
|
-
"react-i18next": "^16.5.4",
|
|
36
|
-
"react-lazy-load-image-component": "^1.6.3",
|
|
37
|
-
"react-markdown": "^10.1.0",
|
|
38
|
-
"react-markdown-typewriter": "^1.1.4",
|
|
39
|
-
"react-router-dom": "^7.13.0",
|
|
40
|
-
"rehype-raw": "^7.0.0",
|
|
41
|
-
"remark-gfm": "^4.0.1",
|
|
42
|
-
"shade-generator": "^1.2.7",
|
|
43
|
-
"tailwindcss": "^4.1.18",
|
|
44
|
-
"vite-plugin-checker": "^0.12.0",
|
|
45
|
-
"zustand": "^5.0.11"
|
|
46
|
-
},
|
|
47
|
-
"devDependencies": {
|
|
48
|
-
"@tailwindcss/typography": "^0.5.19",
|
|
49
|
-
"@tanstack/react-query-devtools": "^5.91.3",
|
|
50
|
-
"@types/node": "^25.2.0",
|
|
51
|
-
"@types/react": "^19.2.7",
|
|
52
|
-
"@types/react-dom": "^19.2.3",
|
|
53
|
-
"@types/react-lazy-load-image-component": "^1.6.5",
|
|
54
|
-
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
55
|
-
"@typescript-eslint/parser": "^8.54.0",
|
|
56
|
-
"@vitejs/plugin-react": "^5.1.2",
|
|
57
|
-
"eslint": "^9.39.2",
|
|
58
|
-
"eslint-plugin-react-hooks": "^7.0.1",
|
|
59
|
-
"eslint-plugin-react-refresh": "^0.5.0",
|
|
60
|
-
"tailwindcss-motion": "^1.1.1",
|
|
61
|
-
"typescript": "^5.9.3",
|
|
62
|
-
"vite": "^7.3.1",
|
|
63
|
-
"vite-plugin-pwa": "^1.2.0"
|
|
64
|
-
},
|
|
65
|
-
"keywords": [
|
|
66
|
-
"game",
|
|
67
|
-
"js",
|
|
68
|
-
"novel",
|
|
69
|
-
"pixi",
|
|
70
|
-
"pixi-js",
|
|
71
|
-
"pixi-vn",
|
|
72
|
-
"visual",
|
|
73
|
-
"visual-novel",
|
|
74
|
-
"vn"
|
|
75
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"name": "my-app-package-name",
|
|
3
|
+
"description": "my-app-description",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "GPL-3.0",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "vite",
|
|
9
|
+
"dev": "vite",
|
|
10
|
+
"build": "tsc && vite build",
|
|
11
|
+
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
12
|
+
"preview": "vite preview"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@drincs/nqtr": "^0.8.2",
|
|
16
|
+
"@drincs/pixi-vn": "^1.6.4",
|
|
17
|
+
"@drincs/pixi-vn-spine": "^0.2.1",
|
|
18
|
+
"@emotion/react": "^11.14.0",
|
|
19
|
+
"@emotion/styled": "^11.14.1",
|
|
20
|
+
"@mui/icons-material": "^7.3.7",
|
|
21
|
+
"@mui/joy": "^5.0.0-beta.52",
|
|
22
|
+
"@mui/material": "^7.3.7",
|
|
23
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
24
|
+
"@tanstack/react-query": "^5.90.20",
|
|
25
|
+
"es-toolkit": "^1.44.0",
|
|
26
|
+
"i18next": "^25.8.0",
|
|
27
|
+
"i18next-chained-backend": "^5.0.2",
|
|
28
|
+
"i18next-resources-to-backend": "^1.2.1",
|
|
29
|
+
"motion": "^12.29.2",
|
|
30
|
+
"notistack": "^3.0.2",
|
|
31
|
+
"react": "^19.2.4",
|
|
32
|
+
"react-color-palette": "^7.3.1",
|
|
33
|
+
"react-dom": "^19.2.4",
|
|
34
|
+
"react-error-boundary": "^6.1.0",
|
|
35
|
+
"react-i18next": "^16.5.4",
|
|
36
|
+
"react-lazy-load-image-component": "^1.6.3",
|
|
37
|
+
"react-markdown": "^10.1.0",
|
|
38
|
+
"react-markdown-typewriter": "^1.1.4",
|
|
39
|
+
"react-router-dom": "^7.13.0",
|
|
40
|
+
"rehype-raw": "^7.0.0",
|
|
41
|
+
"remark-gfm": "^4.0.1",
|
|
42
|
+
"shade-generator": "^1.2.7",
|
|
43
|
+
"tailwindcss": "^4.1.18",
|
|
44
|
+
"vite-plugin-checker": "^0.12.0",
|
|
45
|
+
"zustand": "^5.0.11"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@tailwindcss/typography": "^0.5.19",
|
|
49
|
+
"@tanstack/react-query-devtools": "^5.91.3",
|
|
50
|
+
"@types/node": "^25.2.0",
|
|
51
|
+
"@types/react": "^19.2.7",
|
|
52
|
+
"@types/react-dom": "^19.2.3",
|
|
53
|
+
"@types/react-lazy-load-image-component": "^1.6.5",
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
55
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
56
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
57
|
+
"eslint": "^9.39.2",
|
|
58
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
59
|
+
"eslint-plugin-react-refresh": "^0.5.0",
|
|
60
|
+
"tailwindcss-motion": "^1.1.1",
|
|
61
|
+
"typescript": "^5.9.3",
|
|
62
|
+
"vite": "^7.3.1",
|
|
63
|
+
"vite-plugin-pwa": "^1.2.0"
|
|
64
|
+
},
|
|
65
|
+
"keywords": [
|
|
66
|
+
"game",
|
|
67
|
+
"js",
|
|
68
|
+
"novel",
|
|
69
|
+
"pixi",
|
|
70
|
+
"pixi-js",
|
|
71
|
+
"pixi-vn",
|
|
72
|
+
"visual",
|
|
73
|
+
"visual-novel",
|
|
74
|
+
"vn"
|
|
75
|
+
]
|
|
76
76
|
}
|