eazy-git 0.2.5 → 0.2.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/README.md CHANGED
@@ -16,7 +16,7 @@ Install it globally with npm:
16
16
  npm install -g eazy-git
17
17
  ```
18
18
 
19
- Or clone it and Link it locally for development:
19
+ Or clone it and link it locally for development:
20
20
 
21
21
  ```bash
22
22
  git clone https://github.com/jaime00/eazy-git.git
@@ -41,43 +41,78 @@ or
41
41
  eg
42
42
  ```
43
43
 
44
+ This opens an interactive menu with the following options:
45
+
46
+ - **Add Changes to Branch** — Stage files, generate a commit (with optional AI-suggested messages), and push
47
+ - **Create Original Branch** — Create a new branch from a base branch following naming conventions
48
+ - **Create Temporal Branch** — Create and merge a temporary branch into develop or release
49
+ - **Configure** — Change language, default base branch, or AI provider
50
+
44
51
  ---
45
52
 
46
53
  ## 🧰 Available Commands
47
54
 
48
- | Command | Description |
49
- | --------------------------------------- | ------------------------------------------------------------------------------------------------------ |
50
- | `eazy-git`, `eg`, `asd` | Launch the interactive CLI to create and manage Git branches (note: `asd` is an easter egg command 🥚) |
51
- | `pull` | Pull latest changes from remote repository (`git pull origin HEAD`) |
52
- | `push` | Push local changes to remote repository (`git push origin HEAD`) |
53
- | `removelast` | Undo last commit while preserving changes in working directory |
54
- | `mergewith` | Merge current branch with another remote branch (defaults to `origin/develop`) |
55
- | `commit` | Stage and commit changes with an interactive prompt |
56
- | `back` | Switch back to the previously checked out branch |
57
- | `checkout` | Switch to a specified branch or return to the previous branch if no branch name is provided |
58
- | `log` | Display formatted commit history with details |
59
- | `run` | Start development server (`npm run dev`) |
60
- | `runrun` | Clean development server restart (removes `.next` folder and runs `npm run dev`) |
61
- | `i` | Install project dependencies using configured auth token |
62
- | `-version`, `-v` | Display installed package version |
63
- | `-help`, `-h` _(under construction 🚧)_ | Show command usage and documentation |
55
+ | Command | Description |
56
+ | ---------- | --------------------------------------------------------------------------- |
57
+ | `eazy-git`, `eg` | Launch the interactive CLI to create and manage Git branches |
58
+ | `pull` | Pull latest changes from remote repository (`git pull origin HEAD`) |
59
+ | `push` | Push local changes to remote repository (`git push origin HEAD`) |
60
+ | `removelast` | Undo last commit while preserving changes in working directory (asks for confirmation) |
61
+ | `mergewith` | Merge current branch with another remote branch (defaults to `origin/develop`) |
62
+ | `commit` | Stage all changes and commit with a provided message |
63
+ | `back` | Switch back to the previously checked out branch |
64
+ | `checkout` | Switch to a specified branch or return to the previous branch |
65
+ | `log` | Display formatted commit history with details |
66
+ | `run` | Start development server (`npm run dev`) |
67
+ | `runrun` | Clean development server restart (removes `.next` folder and runs `npm run dev`) |
68
+ | `i` | Install project dependencies using configured auth token |
69
+ | `eg config` | Open configuration menu (language, default branch, AI provider) |
70
+ | `-v`, `--version` | Display installed package version |
64
71
 
65
72
  ---
66
73
 
67
- ## 📁 Project Structure
74
+ ## 🌐 Internationalization (i18n)
75
+
76
+ eazy-git supports multiple languages. Currently available:
77
+
78
+ - 🇬🇧 English (`en`)
79
+ - 🇪🇸 Spanish (`es`)
68
80
 
69
- The project is organized in a modular fashion for easy maintenance and extension. The main directory and file structure is detailed below:
81
+ Change the language via the configuration menu:
82
+
83
+ ```bash
84
+ eg config
85
+ ```
86
+
87
+ ---
88
+
89
+ ## 🤖 AI Commit Suggestions
90
+
91
+ When using the "Add Changes to Branch" flow, eazy-git can generate commit message suggestions using AI. Supported providers:
92
+
93
+ - **Claude**
94
+ - **Opencode**
95
+
96
+ Configure your preferred provider via `eg config`.
97
+
98
+ ---
99
+
100
+ ## 📁 Project Structure
70
101
 
71
102
  ```
72
103
  eazy-git/
73
104
  ├── src/
74
105
  │ ├── actions/
106
+ │ │ ├── config/
107
+ │ │ │ └── configure.js
75
108
  │ │ ├── git/
109
+ │ │ │ ├── addChangesToBranch.js
76
110
  │ │ │ ├── checkout.js
77
111
  │ │ │ ├── commit.js
78
112
  │ │ │ ├── createBranchName.js
79
113
  │ │ │ ├── createOriginalBranch.js
80
114
  │ │ │ ├── createTemporalBranch.js
115
+ │ │ │ ├── log.js
81
116
  │ │ │ ├── mergewith.js
82
117
  │ │ │ ├── pull.js
83
118
  │ │ │ ├── push.js
@@ -90,12 +125,14 @@ eazy-git/
90
125
  │ │ │ └── showCurrentConfig.js
91
126
  │ │ └── run/
92
127
  │ │ └── commands.js
128
+ │ ├── config/
129
+ │ │ └── index.js
93
130
  │ ├── getters/
94
131
  │ │ ├── git/
95
132
  │ │ │ ├── getBranchType.js
96
133
  │ │ │ ├── getCurrentBranch.js
97
134
  │ │ │ ├── getCurrentPackageVersion.js
98
- │ │ │ ├── getEnviroment.js
135
+ │ │ │ ├── getEnvironment.js
99
136
  │ │ │ └── getTicketOfJIRA.js
100
137
  │ │ └── install/
101
138
  │ │ ├── config/
@@ -106,6 +143,12 @@ eazy-git/
106
143
  │ │ └── token/
107
144
  │ │ ├── getApiKey.js
108
145
  │ │ └── getEndpointURL.js
146
+ │ ├── i18n/
147
+ │ │ ├── en.js
148
+ │ │ ├── es.js
149
+ │ │ └── index.js
150
+ │ ├── ui/
151
+ │ │ └── theme.js
109
152
  │ └── utils/
110
153
  │ ├── handleUserCancellation.js
111
154
  │ ├── hasGitInstalled.js
@@ -132,8 +175,7 @@ git clone https://github.com/jaime00/eazy-git.git
132
175
  cd eazy-git
133
176
  npm install
134
177
  npm link
135
- eazy-git # or use the abbreviated version with eg or asd
136
-
178
+ eazy-git # or use the abbreviated version with eg
137
179
  ```
138
180
 
139
181
  Please open an [issue](https://github.com/jaime00/eazy-git/issues) to report bugs or suggest improvements.
package/dist/git.js CHANGED
@@ -1,5 +1,27 @@
1
1
  #!/usr/bin/env node
2
- var X=Object.create;var P=Object.defineProperty;var uu=Object.getOwnPropertyDescriptor;var Du=Object.getOwnPropertyNames;var eu=Object.getPrototypeOf,tu=Object.prototype.hasOwnProperty;var O=(e,D)=>()=>(D||e((D={exports:{}}).exports,D),D.exports);var su=(e,D,t,r)=>{if(D&&typeof D=="object"||typeof D=="function")for(let s of Du(D))!tu.call(e,s)&&s!==t&&P(e,s,{get:()=>D[s],enumerable:!(r=uu(D,s))||r.enumerable});return e};var $=(e,D,t)=>(t=e!=null?X(eu(e)):{},su(D||!e||!e.__esModule?P(t,"default",{value:e,enumerable:!0}):t,e));var v=O((Wu,W)=>{"use strict";var b="\x1B",a=`${b}[`,ru="\x07",f={to(e,D){return D?`${a}${D+1};${e+1}H`:`${a}${e+1}G`},move(e,D){let t="";return e<0?t+=`${a}${-e}D`:e>0&&(t+=`${a}${e}C`),D<0?t+=`${a}${-D}A`:D>0&&(t+=`${a}${D}B`),t},up:(e=1)=>`${a}${e}A`,down:(e=1)=>`${a}${e}B`,forward:(e=1)=>`${a}${e}C`,backward:(e=1)=>`${a}${e}D`,nextLine:(e=1)=>`${a}E`.repeat(e),prevLine:(e=1)=>`${a}F`.repeat(e),left:`${a}G`,hide:`${a}?25l`,show:`${a}?25h`,save:`${b}7`,restore:`${b}8`},iu={up:(e=1)=>`${a}S`.repeat(e),down:(e=1)=>`${a}T`.repeat(e)},ou={screen:`${a}2J`,up:(e=1)=>`${a}1J`.repeat(e),down:(e=1)=>`${a}J`.repeat(e),line:`${a}2K`,lineEnd:`${a}K`,lineStart:`${a}1K`,lines(e){let D="";for(let t=0;t<e;t++)D+=this.line+(t<e-1?f.up():"");return e&&(D+=f.left),D}};W.exports={cursor:f,scroll:iu,erase:ou,beep:ru}});var G=O((Ru,A)=>{var E=process||{},R=E.argv||[],h=E.env||{},nu=!(h.NO_COLOR||R.includes("--no-color"))&&(!!h.FORCE_COLOR||R.includes("--color")||E.platform==="win32"||(E.stdout||{}).isTTY&&h.TERM!=="dumb"||!!h.CI),au=(e,D,t=e)=>r=>{let s=""+r,o=s.indexOf(D,e.length);return~o?e+Fu(s,D,t,o)+D:e+s+D},Fu=(e,D,t,r)=>{let s="",o=0;do s+=e.substring(o,r)+t,o=r+D.length,r=e.indexOf(D,o);while(~r);return s+e.substring(o)},V=(e=nu)=>{let D=e?au:()=>String;return{isColorSupported:e,reset:D("\x1B[0m","\x1B[0m"),bold:D("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:D("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:D("\x1B[3m","\x1B[23m"),underline:D("\x1B[4m","\x1B[24m"),inverse:D("\x1B[7m","\x1B[27m"),hidden:D("\x1B[8m","\x1B[28m"),strikethrough:D("\x1B[9m","\x1B[29m"),black:D("\x1B[30m","\x1B[39m"),red:D("\x1B[31m","\x1B[39m"),green:D("\x1B[32m","\x1B[39m"),yellow:D("\x1B[33m","\x1B[39m"),blue:D("\x1B[34m","\x1B[39m"),magenta:D("\x1B[35m","\x1B[39m"),cyan:D("\x1B[36m","\x1B[39m"),white:D("\x1B[37m","\x1B[39m"),gray:D("\x1B[90m","\x1B[39m"),bgBlack:D("\x1B[40m","\x1B[49m"),bgRed:D("\x1B[41m","\x1B[49m"),bgGreen:D("\x1B[42m","\x1B[49m"),bgYellow:D("\x1B[43m","\x1B[49m"),bgBlue:D("\x1B[44m","\x1B[49m"),bgMagenta:D("\x1B[45m","\x1B[49m"),bgCyan:D("\x1B[46m","\x1B[49m"),bgWhite:D("\x1B[47m","\x1B[49m"),blackBright:D("\x1B[90m","\x1B[39m"),redBright:D("\x1B[91m","\x1B[39m"),greenBright:D("\x1B[92m","\x1B[39m"),yellowBright:D("\x1B[93m","\x1B[39m"),blueBright:D("\x1B[94m","\x1B[39m"),magentaBright:D("\x1B[95m","\x1B[39m"),cyanBright:D("\x1B[96m","\x1B[39m"),whiteBright:D("\x1B[97m","\x1B[39m"),bgBlackBright:D("\x1B[100m","\x1B[49m"),bgRedBright:D("\x1B[101m","\x1B[49m"),bgGreenBright:D("\x1B[102m","\x1B[49m"),bgYellowBright:D("\x1B[103m","\x1B[49m"),bgBlueBright:D("\x1B[104m","\x1B[49m"),bgMagentaBright:D("\x1B[105m","\x1B[49m"),bgCyanBright:D("\x1B[106m","\x1B[49m"),bgWhiteBright:D("\x1B[107m","\x1B[49m")}};A.exports=V();A.exports.createColors=V});var z=$(v(),1);function cu({onlyFirst:e=!1}={}){let D=["[\\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(D,e?void 0:"g")}var Vu=cu();function Y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var q={exports:{}};(function(e){var D={};e.exports=D,D.eastAsianWidth=function(r){var s=r.charCodeAt(0),o=r.length==2?r.charCodeAt(1):0,u=s;return 55296<=s&&s<=56319&&56320<=o&&o<=57343&&(s&=1023,o&=1023,u=s<<10|o,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"},D.characterLength=function(r){var s=this.eastAsianWidth(r);return s=="F"||s=="W"||s=="A"?2:1};function t(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}D.length=function(r){for(var s=t(r),o=0,u=0;u<s.length;u++)o=o+this.characterLength(s[u]);return o},D.slice=function(r,s,o){textLen=D.length(r),s=s||0,o=o||1,s<0&&(s=textLen+s),o<0&&(o=textLen+o);for(var u="",C=0,j=t(r),d=0;d<j.length;d++){var I=j[d],B=D.length(I);if(C>=s-(B==2?1:0))if(C+B<=o)u+=I;else break;C+=B}return u}})(q);var lu=q.exports,Gu=Y(lu),Cu=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},Lu=Y(Cu);var y=10,L=(e=0)=>D=>`\x1B[${D+e}m`,N=(e=0)=>D=>`\x1B[${38+e};5;${D}m`,K=(e=0)=>(D,t,r)=>`\x1B[${38+e};2;${D};${t};${r}m`,n={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(n.modifier);var hu=Object.keys(n.color),Eu=Object.keys(n.bgColor);[...hu,...Eu];function mu(){let e=new Map;for(let[D,t]of Object.entries(n)){for(let[r,s]of Object.entries(t))n[r]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},t[r]=n[r],e.set(s[0],s[1]);Object.defineProperty(n,D,{value:t,enumerable:!1})}return Object.defineProperty(n,"codes",{value:e,enumerable:!1}),n.color.close="\x1B[39m",n.bgColor.close="\x1B[49m",n.color.ansi=L(),n.color.ansi256=N(),n.color.ansi16m=K(),n.bgColor.ansi=L(y),n.bgColor.ansi256=N(y),n.bgColor.ansi16m=K(y),Object.defineProperties(n,{rgbToAnsi256:{value:(D,t,r)=>D===t&&t===r?D<8?16:D>248?231:Math.round((D-8)/247*24)+232:16+36*Math.round(D/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5),enumerable:!1},hexToRgb:{value:D=>{let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(D.toString(16));if(!t)return[0,0,0];let[r]=t;r.length===3&&(r=[...r].map(o=>o+o).join(""));let s=Number.parseInt(r,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:D=>n.rgbToAnsi256(...n.hexToRgb(D)),enumerable:!1},ansi256ToAnsi:{value:D=>{if(D<8)return 30+D;if(D<16)return 90+(D-8);let t,r,s;if(D>=232)t=((D-232)*10+8)/255,r=t,s=t;else{D-=16;let C=D%36;t=Math.floor(D/36)/5,r=Math.floor(C/6)/5,s=C%6/5}let o=Math.max(t,r,s)*2;if(o===0)return 30;let u=30+(Math.round(s)<<2|Math.round(r)<<1|Math.round(t));return o===2&&(u+=60),u},enumerable:!1},rgbToAnsi:{value:(D,t,r)=>n.ansi256ToAnsi(n.rgbToAnsi256(D,t,r)),enumerable:!1},hexToAnsi:{value:D=>n.ansi256ToAnsi(n.hexToAnsi256(D)),enumerable:!1}}),n}var Nu=mu();var pu="]";var Ku=`${pu}8;;`;var gu=["up","down","left","right","space","enter","cancel"],zu={actions:new Set(gu),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};var Yu=globalThis.process.platform.startsWith("win"),qu=Symbol("clack:cancel");var du;du=new WeakMap;var l=$(G(),1),H=$(v(),1);import c from"node:process";function $u(){return c.platform!=="win32"?c.env.TERM!=="linux":!!c.env.CI||!!c.env.WT_SESSION||!!c.env.TERMINUS_SUBLIME||c.env.ConEmuTask==="{cmd::Cmder}"||c.env.TERM_PROGRAM==="Terminus-Sublime"||c.env.TERM_PROGRAM==="vscode"||c.env.TERM==="xterm-256color"||c.env.TERM==="alacritty"||c.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var bu=$u(),F=(e,D)=>bu?e:D,iD=F("\u25C6","*"),oD=F("\u25A0","x"),nD=F("\u25B2","x"),fu=F("\u25C7","o"),aD=F("\u250C","T"),m=F("\u2502","|"),FD=F("\u2514","\u2014"),cD=F("\u25CF",">"),lD=F("\u25CB"," "),CD=F("\u25FB","[\u2022]"),hD=F("\u25FC","[+]"),ED=F("\u25FB","[ ]"),mD=F("\u25AA","\u2022"),pD=F("\u2500","-"),gD=F("\u256E","+"),dD=F("\u251C","+"),BD=F("\u256F","+"),vu=F("\u25CF","\u2022"),Au=F("\u25C6","*"),yu=F("\u25B2","!"),xu=F("\u25A0","x");var i={message:(e="",{symbol:D=l.default.gray(m)}={})=>{let t=[`${l.default.gray(m)}`];if(e){let[r,...s]=e.split(`
3
- `);t.push(`${D} ${r}`,...s.map(o=>`${l.default.gray(m)} ${o}`))}process.stdout.write(`${t.join(`
2
+ var ze=Object.create;var ae=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ze=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Je(t))!Qe.call(e,o)&&o!==s&&ae(e,o,{get:()=>t[o],enumerable:!(i=Ke(t,o))||i.enumerable});return e};var ue=(e,t,s)=>(s=e!=null?ze(Ye(e)):{},Ze(t||!e||!e.__esModule?ae(s,"default",{value:e,enumerable:!0}):s,e));var Y=Xe((es,Se)=>{"use strict";var K="\x1B",g=`${K}[`,dt="\x07",J={to(e,t){return t?`${g}${t+1};${e+1}H`:`${g}${e+1}G`},move(e,t){let s="";return e<0?s+=`${g}${-e}D`:e>0&&(s+=`${g}${e}C`),t<0?s+=`${g}${-t}A`:t>0&&(s+=`${g}${t}B`),s},up:(e=1)=>`${g}${e}A`,down:(e=1)=>`${g}${e}B`,forward:(e=1)=>`${g}${e}C`,backward:(e=1)=>`${g}${e}D`,nextLine:(e=1)=>`${g}E`.repeat(e),prevLine:(e=1)=>`${g}F`.repeat(e),left:`${g}G`,hide:`${g}?25l`,show:`${g}?25h`,save:`${K}7`,restore:`${K}8`},pt={up:(e=1)=>`${g}S`.repeat(e),down:(e=1)=>`${g}T`.repeat(e)},gt={screen:`${g}2J`,up:(e=1)=>`${g}1J`.repeat(e),down:(e=1)=>`${g}J`.repeat(e),line:`${g}2K`,lineEnd:`${g}K`,lineStart:`${g}1K`,lines(e){let t="";for(let s=0;s<e;s++)t+=this.line+(s<e-1?J.up():"");return e&&(t+=J.left),t}};Se.exports={cursor:J,scroll:pt,erase:gt,beep:dt}});import{stdout as Ce,stdin as ft}from"node:process";import $t from"node:readline";var ce=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let s=0;for(e.lastIndex=0;e.test(t);)s+=1;return t.length-s}})(),le=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,he=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||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>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var et=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,tt=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,me=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,st=/\t{1,1000}/y,de=/[\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,it=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,rt=/\p{M}+/gu,nt={limit:1/0,ellipsis:""},pe=(e,t={},s={})=>{let i=t.limit??1/0,o=t.ellipsis??"",c=t?.ellipsisWidth??(o?pe(o,nt,s).width:0),u=0,r=s.controlWidth??0,h=s.tabWidth??8,f=s.emojiWidth??2,v=2,d=s.regularWidth??1,p=s.wideWidth??v,b=[[it,d],[et,u],[tt,r],[st,h],[de,f],[me,p]],y=0,$=0,F=e.length,M=0,T=!1,L=F,D=Math.max(0,i-c),A=0,O=0,R=0,S=0;e:for(;;){if(O>A||$>=F&&$>y){let k=e.slice(A,O)||e.slice(y,$);M=0;for(let V of k.replaceAll(rt,"")){let C=V.codePointAt(0)||0;if(le(C)?S=v:he(C)?S=p:S=d,R+S>D&&(L=Math.min(L,Math.max(A,y)+M)),R+S>i){T=!0;break e}M+=V.length,R+=S}A=O=0}if($>=F)break e;for(let k=0,V=b.length;k<V;k++){let[C,oe]=b[k];if(C.lastIndex=$,C.test(e)){if(M=C===me?ce(e.slice($,C.lastIndex)):C===de?1:C.lastIndex-$,S=M*oe,R+S>D&&(L=Math.min(L,$+Math.floor((D-R)/oe))),R+S>i){T=!0;break e}R+=S,A=y,O=$,$=y=C.lastIndex;continue e}}$+=1}return{width:T?D:R,index:T?L:F,truncated:T,ellipsed:T&&i>=c}},ge=pe;var ot={limit:1/0,ellipsis:"",ellipsisWidth:0},at=(e,t={})=>ge(e,ot,t).width,E=at;var N="\x1B",be="\x9B",ut=39,H="\x07",we="[",ct="]",Ie="m",z=`${ct}8;;`,fe=new RegExp(`(?:\\${we}(?<code>\\d+)m|\\${z}(?<uri>.*)${H})`,"y"),$e=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},ye=e=>`${N}${we}${e}${Ie}`,ve=e=>`${N}${z}${e}${H}`,q=(e,t,s)=>{let i=t[Symbol.iterator](),o=!1,c=!1,u=e.at(-1),r=u===void 0?0:E(u),h=i.next(),f=i.next(),v=0;for(;!h.done;){let d=h.value,p=E(d);r+p<=s?e[e.length-1]+=d:(e.push(d),r=0),(d===N||d===be)&&(o=!0,c=t.startsWith(z,v+1)),o?c?d===H&&(o=!1,c=!1):d===Ie&&(o=!1):(r+=p,r===s&&!f.done&&(e.push(""),r=0)),h=f,f=i.next(),v+=d.length}u=e.at(-1),!r&&u!==void 0&&u.length&&e.length>1&&(e[e.length-2]+=e.pop())},lt=e=>{let t=e.split(" "),s=t.length;for(;s&&!E(t[s-1]);)s--;return s===t.length?e:t.slice(0,s).join(" ")+t.slice(s).join("")},ht=(e,t,s={})=>{if(s.trim!==!1&&e.trim()==="")return"";let i="",o,c,u=e.split(" "),r=[""],h=0;for(let d=0;d<u.length;d++){let p=u[d];if(s.trim!==!1){let y=r.at(-1)??"",$=y.trimStart();y.length!==$.length&&(r[r.length-1]=$,h=E($))}d!==0&&(h>=t&&(s.wordWrap===!1||s.trim===!1)&&(r.push(""),h=0),(h||s.trim===!1)&&(r[r.length-1]+=" ",h++));let b=E(p);if(s.hard&&b>t){let y=t-h,$=1+Math.floor((b-y-1)/t);Math.floor((b-1)/t)<$&&r.push(""),q(r,p,t),h=E(r.at(-1)??"");continue}if(h+b>t&&h&&b){if(s.wordWrap===!1&&h<t){q(r,p,t),h=E(r.at(-1)??"");continue}r.push(""),h=0}if(h+b>t&&s.wordWrap===!1){q(r,p,t),h=E(r.at(-1)??"");continue}r[r.length-1]+=p,h+=b}s.trim!==!1&&(r=r.map(d=>lt(d)));let f=r.join(`
3
+ `),v=!1;for(let d=0;d<f.length;d++){let p=f[d];if(i+=p,v)v=!1;else if(v=p>="\uD800"&&p<="\uDBFF",v)continue;if(p===N||p===be){fe.lastIndex=d+1;let y=fe.exec(f)?.groups;if(y?.code!==void 0){let $=Number.parseFloat(y.code);o=$===ut?void 0:$}else y?.uri!==void 0&&(c=y.uri.length===0?void 0:y.uri)}if(f[d+1]===`
4
+ `){c&&(i+=ve(""));let b=o?$e(o):void 0;o&&b&&(i+=ye(b))}else p===`
5
+ `&&(o&&$e(o)&&(i+=ye(o)),c&&(i+=ve(c)))}return i},mt=/\r?\n/;function P(e,t,s){return String(e).normalize().split(mt).map(i=>ht(i,t,s)).join(`
6
+ `)}var w=ue(Y(),1);var yt=["up","down","left","right","space","enter","cancel"],vt=["January","February","March","April","May","June","July","August","September","October","November","December"],x={actions:new Set(yt),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0,date:{monthNames:[...vt],messages:{required:"Please enter a valid date",invalidMonth:"There are only 12 months in a year",invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};function Ee(e,t){if(typeof e=="string")return x.aliases.get(e)===t;for(let s of e)if(s!==void 0&&Ee(s,t))return!0;return!1}function bt(e,t){if(e===t)return;let s=e.split(`
7
+ `),i=t.split(`
8
+ `),o=Math.max(s.length,i.length),c=[];for(let u=0;u<o;u++)s[u]!==i[u]&&c.push(u);return{lines:c,numLinesBefore:s.length,numLinesAfter:i.length,numLines:o}}var rs=globalThis.process.platform.startsWith("win"),Q=Symbol("clack:cancel");function G(e){return e===Q}function U(e,t){let s=e;s.isTTY&&s.setRawMode(t)}var _e=e=>"columns"in e&&typeof e.columns=="number"?e.columns:80,xe=e=>"rows"in e&&typeof e.rows=="number"?e.rows:20;function Re(e,t,s,i=s,o=s,c){let u=_e(e??Ce);return P(t,u-s.length,{hard:!0,trim:!1}).split(`
9
+ `).map((r,h,f)=>{let v=c?c(r,h):r;return h===0?`${i}${v}`:h===f.length-1?`${o}${v}`:`${s}${v}`}).join(`
10
+ `)}var wt=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(e,t=!0){let{input:s=ft,output:i=Ce,render:o,signal:c,...u}=e;this.opts=u,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=o.bind(this),this._track=t,this._abortSignal=c,this.input=s,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let s=this._subscribers.get(e)??[];s.push(t),this._subscribers.set(e,s)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let s=this._subscribers.get(e)??[],i=[];for(let o of s)o.cb(...t),o.once&&i.push(()=>s.splice(s.indexOf(o),1));for(let o of i)o()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(Q);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=$t.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),U(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(w.cursor.show),this.output.off("resize",this.render),U(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(w.cursor.show),this.output.off("resize",this.render),U(this.input,!1),e(Q)})})}_isActionKey(e,t){return e===" "}_shouldSubmit(e,t){return!0}_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&&x.aliases.has(t.name)&&this.emit("cursor",x.aliases.get(t.name)),x.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"&&this._shouldSubmit(e,t)){if(this.opts.validate){let s=this.opts.validate(this.value);s&&(this.error=s instanceof Error?s.message:s,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}Ee([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(`
11
+ `),U(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=P(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
12
+ `).length-1;this.output.write(w.cursor.move(-999,e*-1))}render(){let e=P(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(w.cursor.hide);else{let t=bt(this._prevFrame,e),s=xe(this.output);if(this.restoreCursor(),t){let i=Math.max(0,t.numLinesAfter-s),o=Math.max(0,t.numLinesBefore-s),c=t.lines.find(u=>u>=i);if(c===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(w.cursor.move(0,c-o)),this.output.write(w.erase.lines(1));let u=e.split(`
13
+ `);this.output.write(u[c]),this._prevFrame=e,this.output.write(w.cursor.move(0,u.length-c-1));return}else if(t.lines.length>1){if(i<o)c=i;else{let r=c-o;r>0&&this.output.write(w.cursor.move(0,r))}this.output.write(w.erase.down());let u=e.split(`
14
+ `).slice(c);this.output.write(u.join(`
15
+ `)),this._prevFrame=e;return}}this.output.write(w.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}};var B=class extends wt{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",s=>{this.output.write(w.cursor.move(0,-1)),this.value=s,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};import{styleText as l,stripVTControlCharacters as bs}from"node:util";import I from"node:process";var Me=ue(Y(),1);function It(){return I.platform!=="win32"?I.env.TERM!=="linux":!!I.env.CI||!!I.env.WT_SESSION||!!I.env.TERMINUS_SUBLIME||I.env.ConEmuTask==="{cmd::Cmder}"||I.env.TERM_PROGRAM==="Terminus-Sublime"||I.env.TERM_PROGRAM==="vscode"||I.env.TERM==="xterm-256color"||I.env.TERM==="alacritty"||I.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var St=It();var m=(e,t)=>St?e:t,Ct=m("\u25C6","*"),Et=m("\u25A0","x"),_t=m("\u25B2","x"),Le=m("\u25C7","o"),Cs=m("\u250C","T"),_=m("\u2502","|"),Ae=m("\u2514","\u2014"),Es=m("\u2510","T"),_s=m("\u2518","\u2014"),Te=m("\u25CF",">"),Fe=m("\u25CB"," "),xs=m("\u25FB","[\u2022]"),Rs=m("\u25FC","[+]"),Ts=m("\u25FB","[ ]"),Fs=m("\u25AA","\u2022"),Ms=m("\u2500","-"),Ls=m("\u256E","+"),As=m("\u251C","+"),ks=m("\u256F","+"),Ps=m("\u2570","+"),Ds=m("\u256D","+"),xt=m("\u25CF","\u2022"),Rt=m("\u25C6","*"),Tt=m("\u25B2","!"),Ft=m("\u25A0","x"),Mt=e=>{switch(e){case"initial":case"active":return l("cyan",Ct);case"cancel":return l("red",Et);case"error":return l("yellow",_t);case"submit":return l("green",Le)}};var ke=e=>{let t=e.active??"Yes",s=e.inactive??"No";return new B({active:t,inactive:s,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let i=e.withGuide??x.withGuide,o=`${Mt(this.state)} `,c=i?`${l("gray",_)} `:"",u=Re(e.output,e.message,c,o),r=`${i?`${l("gray",_)}
16
+ `:""}${u}
17
+ `,h=this.value?t:s;switch(this.state){case"submit":{let f=i?`${l("gray",_)} `:"";return`${r}${f}${l("dim",h)}`}case"cancel":{let f=i?`${l("gray",_)} `:"";return`${r}${f}${l(["strikethrough","dim"],h)}${i?`
18
+ ${l("gray",_)}`:""}`}default:{let f=i?`${l("cyan",_)} `:"",v=i?l("cyan",Ae):"";return`${r}${f}${this.value?`${l("green",Te)} ${t}`:`${l("dim",Fe)} ${l("dim",t)}`}${e.vertical?i?`
19
+ ${l("cyan",_)} `:`
20
+ `:` ${l("dim","/")} `}${this.value?`${l("dim",Fe)} ${l("dim",s)}`:`${l("green",Te)} ${s}`}
21
+ ${v}
22
+ `}}}}).prompt()};var n={message:(e=[],{symbol:t=l("gray",_),secondarySymbol:s=l("gray",_),output:i=process.stdout,spacing:o=1,withGuide:c}={})=>{let u=[],r=c??x.withGuide,h=r?s:"",f=r?`${t} `:"",v=r?`${s} `:"";for(let p=0;p<o;p++)u.push(h);let d=Array.isArray(e)?e:e.split(`
23
+ `);if(d.length>0){let[p,...b]=d;p.length>0?u.push(`${f}${p}`):u.push(r?t:"");for(let y of b)y.length>0?u.push(`${v}${y}`):u.push(r?s:"")}i.write(`${u.join(`
4
24
  `)}
5
- `)},info:e=>{i.message(e,{symbol:l.default.blue(vu)})},success:e=>{i.message(e,{symbol:l.default.green(Au)})},step:e=>{i.message(e,{symbol:l.default.green(fu)})},warn:e=>{i.message(e,{symbol:l.default.yellow(yu)})},warning:e=>{i.warn(e)},error:e=>{i.message(e,{symbol:l.default.red(xu)})}},$D=`${l.default.gray(m)} `;import{execSync as J}from"child_process";function x(){try{i.step("\u{1F4E5} Fetching remote changes..."),J("git fetch",{stdio:"inherit"}),i.success("\u{1F4E6} Pulling changes into your branch..."),J("git pull origin HEAD",{stdio:"inherit"})}catch(e){i.error(`\u{1F4A5} Error: ${e.message}`)}}import{execSync as wu}from"child_process";function w(e){try{let D=e.includes("-f")||e.includes("--force")||e.includes("-force");i.step("\u{1F680} Pushing changes to remote..."),wu(`git push ${D?"-f ":""}origin HEAD`,{stdio:"inherit"}),i.success(`\u2705 Changes pushed ${D?"forcefully ":""}successfully!`)}catch(D){i.error(`\u274C Error: ${D.message}`)}}import{execSync as ku}from"child_process";function k(){try{i.step("\u23EA Removing last commit..."),ku("git reset --soft HEAD~1",{stdio:"inherit"}),i.success("\u2705 Last commit removed successfully!")}catch(e){i.error(`\u274C Error: ${e.message}`)}}import{execSync as S}from"child_process";function M(e){try{let D=e[0]??"develop";i.step("\u{1F504} Fetching latest changes..."),S("git fetch",{stdio:"inherit"}),i.step(`\u{1F504} Merging with ${D}...`),S(`git merge origin/${D}`,{stdio:"inherit"}),i.step("\u{1F680} Pushing merged changes..."),S("git push origin HEAD",{stdio:"inherit"}),i.success("\u2705 Merge completed successfully!")}catch(D){i.error(`\u274C Error: ${D.message}`)}}import{execSync as U}from"child_process";function _(e){try{let D=e[0];D||(i.error("\u274C Please provide a commit message"),process.exit(1)),i.step("\u{1F4E6} Staging changes..."),U("git add .",{stdio:"inherit"}),i.step("\u{1F4BE} Creating commit..."),U(`git commit -m "${D}"`,{stdio:"inherit"}),i.success("\u2705 Commit created successfully!")}catch(D){i.error(`\u274C Error: ${D.message}`)}}import{execSync as Su}from"child_process";function T(){try{Su("git log;",{stdio:"inherit"})}catch(e){i.error(`\u274C Error: ${e.message}`),process.exit(1)}}import{execSync as Mu}from"child_process";function p(e){try{let D=e[0]||"-",t=D==="-";t&&i.step("\u{1F504} Switching to previous branch..."),Mu(`git checkout ${D}`,{stdio:"inherit"}),i.success(`\u2705 Successfully switched to ${t?"previous":D} branch!`)}catch(D){i.error(`\u274C Error: ${D.message}`),process.exit(1)}}import{existsSync as _u}from"fs";import{join as Tu}from"path";var ju=()=>{let e=Tu(process.cwd(),".git");_u(e)||(console.error("\u274C This directory is not a git repository"),process.exit(1))},Z=ju;Z();var Q=process.argv[1].split("/").pop(),g=process.argv.slice(2),Iu={pull:x,push:()=>w(g),removelast:k,mergewith:()=>M(g),commit:()=>_(g),checkout:()=>p(g),back:()=>p("-"),log:T};async function Pu(){try{let e=Iu[Q];e||(i.error(`Unknown command: ${Q}`),process.exit(1)),await e(),process.exit(0)}catch(e){i.error(`Error executing command: ${e.message}`),process.exit(1)}}Pu();
25
+ `)},info:(e,t)=>{n.message(e,{...t,symbol:l("blue",xt)})},success:(e,t)=>{n.message(e,{...t,symbol:l("green",Rt)})},step:(e,t)=>{n.message(e,{...t,symbol:l("green",Le)})},warn:(e,t)=>{n.message(e,{...t,symbol:l("yellow",Tt)})},warning:(e,t)=>{n.warn(e,t)},error:(e,t)=>{n.message(e,{...t,symbol:l("red",Ft)})}},Pe=(e="",t)=>{let s=t?.output??process.stdout,i=t?.withGuide??x.withGuide?`${l("gray",Ae)} `:"";s.write(`${i}${l("red",e)}
26
+
27
+ `)};var Os={light:m("\u2500","-"),heavy:m("\u2501","="),block:m("\u2588","#")};var Vs=`${l("gray",_)} `;import{spawnSync as We}from"child_process";import{existsSync as Lt,readFileSync as At,writeFileSync as Gs,mkdirSync as Ws}from"fs";import kt from"os";import Ve from"path";var Pt=Ve.join(kt.homedir(),".eazy-git"),De=Ve.join(Pt,"config.json"),Oe={language:"es",defaultBaseBranch:"release",aiProvider:"claude"};function Ne(){try{if(Lt(De)){let e=At(De,"utf-8");return{...Oe,...JSON.parse(e)}}}catch{}return{...Oe}}var Ue={welcome:"Bienvenido a",subtitle:"tu CLI de confianza para gestionar ramas en GIT",operationCompleted:"Operacion completada!",operationCancelled:"Operacion cancelada. Saliendo...",unknownCommand:"Comando desconocido",errorExecuting:"Error al ejecutar el comando",version:"eazy-git version",whatToDo:"Que deseas hacer?",addChanges:"Agregar cambios a una rama",createOriginal:"Crear rama original",createTemporal:"Crear rama temporal",notGitRepo:"Este directorio no es un repositorio git",gitNotInstalled:"git no esta instalado en el sistema",currentBranch:"Branch actual",filesChanged:"Archivos con cambios",noChangesPending:"No hay cambios pendientes. Deseas continuar de todas formas?",updatingRefs:"Actualizando referencias remotas...",refsUpdated:"Referencias actualizadas",fetchFailed:"No se pudo hacer fetch (continuando...)",baseBranch:"Desde que branch base quieres crear la rama?",baseBranchRequired:"El branch base es requerido",ticketId:"Cual es el identificador del ticket? (ej: DPW-0000)",ticketRequired:"El ticket es requerido",changeType:"Que tipo de cambio es?",branchExistsLocal:e=>`La rama "${e}" ya existe localmente. Que deseas hacer?`,switchToIt:"Cambiarme a ella y continuar",cancel:"Cancelar",cancelledOp:"Operacion cancelada.",creatingBranch:(e,t)=>`Creando rama ${e} desde origin/${t}...`,branchCreated:e=>`Rama ${e} creada`,errorCreatingBranch:e=>`Error al crear la rama: ${e}`,noFilesToStage:"No hay archivos para stagear.",selectFiles:"Cuales archivos quieres incluir en el commit?",selectAllFiles:"Seleccionar todos los archivos",stagedFiles:"Archivos en stage",stagedCorrect:"Los archivos en stage son correctos?",aiProvider:"Con que IA quieres generar la sugerencia de commit?",generatingCommit:e=>`Generando sugerencia de commit con ${e}...`,aiSuggestionFailed:e=>`No se pudo obtener sugerencia de ${e}. Escribe el mensaje manualmente.`,writeCommitMsg:"Escribe el mensaje de commit:",commitMsgRequired:"El mensaje es requerido",suggestionOf:e=>`Sugerencia de ${e}`,useThisCommit:"Este mensaje de commit te parece bien?",yesUseIt:"Si, usar este",modify:"Modificar",commitSuccess:"Commit realizado correctamente",hookBlocked:"El pre-commit hook bloqueo el commit. Que deseas hacer?",retryHook:"Ya lo corregi, agrega los cambios y vuelve a intentarlo",skipHook:"Saltar el hook (--no-verify)",commitNoHooks:"Commit realizado (sin hooks)",pushToRemote:"Deseas subir la rama al repositorio remoto?",pushSuccess:"Push realizado",pushForceQuestion:"La rama ya existe en el remoto con historial diferente. Deseas forzar el push? (git push -f)",pushForceSuccess:"Push forzado realizado",pushForceError:e=>`Error en el push forzado: ${e}`,pushError:e=>`Error en el push: ${e}`,summaryTitle:"Resumen",summaryBranch:"Rama",summaryFrom:"Desde",summaryCommit:"Commit",summaryFiles:e=>`${e} archivos commiteados`,summaryPush:"Push",summaryPR:"Crear PR",statusModified:"modificado",statusAdded:"agregado",statusDeleted:"eliminado",statusRenamed:"renombrado",statusUntracked:"sin rastrear",commitTypes:{fix:"fix \u2014 correccion de bug",feat:"feat \u2014 nueva funcionalidad",refactor:"refactor \u2014 mejora sin cambio funcional",chore:"chore \u2014 mantenimiento, dependencias",docs:"docs \u2014 documentacion",test:"test \u2014 pruebas",ci:"ci \u2014 integracion continua",perf:"perf \u2014 rendimiento",style:"style \u2014 formato, sin cambio de logica"},selectBranchType:"Selecciona el tipo de rama:",branchFix:"Fix",branchImprovement:"Mejora",branchFeature:"Feature",branchRefactor:"Refactor",creatingOriginalBranch:"Creando rama original...",branchCreatedAndPushed:e=>`Rama "${e}" creada y pusheada correctamente!`,branchCreatedSuccess:e=>`Rama "${e}" creada correctamente!`,mergeBranchQuestion:"A que rama deseas hacer merge?",developDEV:"develop (DEV)",releaseUAT:"release (UAT)",temporalBranchCreated:"Rama temporal creada correctamente",temporalBranchMerged:"Rama temporal mergeada correctamente",conflictsDetected:"Conflictos detectados. Resolvelos manualmente!",branchPushedToRemote:"Rama pusheada al repositorio remoto",removeTemporalBranch:"Deseas eliminar la rama temporal?",temporalBranchDeleted:"Rama temporal eliminada correctamente",errorCreatingTemporal:"Error creando la rama temporal",enterJiraCode:"Ingresa el codigo del ticket JIRA:",jiraRequired:"El codigo JIRA es requerido!",jiraInvalidFormat:"El codigo JIRA debe tener el formato DPW-0000",fetchingRemote:"Obteniendo cambios remotos...",pullingChanges:"Aplicando cambios en tu rama...",pullError:e=>`Error: ${e}`,pushingChanges:"Subiendo cambios al remoto...",pushedSuccess:"Cambios subidos correctamente!",pushedForceSuccess:"Cambios subidos (forzado) correctamente!",pushQuickError:e=>`Error: ${e}`,provideCommitMsg:"Proporciona un mensaje de commit",stagingChanges:"Stageando cambios...",creatingCommit:"Creando commit...",commitCreated:"Commit creado correctamente!",commitError:e=>`Error: ${e}`,switchingPrevBranch:"Cambiando a la rama anterior...",switchedTo:e=>`Cambiado a rama ${e} correctamente!`,checkoutError:e=>`Error: ${e}`,fetchingLatest:"Obteniendo ultimos cambios...",mergingWith:e=>`Mergeando con ${e}...`,pushingMerged:"Subiendo cambios mergeados...",mergeCompleted:"Merge completado correctamente!",mergeError:e=>`Error: ${e}`,removingLastCommit:"Eliminando ultimo commit...",removeLastConfirm:"Esto eliminara el ultimo commit (los cambios se mantienen en staging). Continuar?",lastCommitRemoved:"Ultimo commit eliminado correctamente!",removeLastError:e=>`Error: ${e}`,logError:e=>`Error: ${e}`,settingUpConfig:"Configurando tu entorno",configSaved:"Configuracion guardada",missingConfigValues:"Faltan valores de configuracion requeridos.",errorWritingConfig:"Error escribiendo archivo de configuracion:",currentConfig:"Configuracion actual",useThisConfig:"Deseas usar esta configuracion?",installingDeps:"Instalando dependencias...",depsInstalled:"Todas las dependencias fueron instaladas",authFailed:"Autenticacion fallida",unexpectedError:"Ocurrio un error inesperado",enterEndpoint:"Ingresa la URL del endpoint:",urlRequired:"La URL es requerida!",urlMustBeHttp:"La URL debe usar protocolo HTTP/HTTPS",urlMustHaveHost:"La URL debe incluir un hostname",urlInvalid:"Ingresa una URL valida",enterApiKey:"Ingresa tu apikey:",apiKeyRequired:"El API key es requerido!",enterRegistryName:"Ingresa el nombre del registro NPM (sin caracteres especiales):",registryNameRequired:"El nombre del registro es requerido!",registryNameLettersOnly:"El nombre del registro debe contener solo letras",enterRegistryURL:"Ingresa la URL del registro NPM (sin http/https):",registryURLRequired:"La URL del registro es requerida!",registryURLStartWithName:"La URL debe empezar con un nombre, evita caracteres especiales",registryURLNoProtocol:"La URL no debe incluir protocolo 'http/https' y debe empezar con una letra",registryURLNoSlash:"La URL no debe empezar con '/' y debe empezar con una letra o numero",registryURLNoWWW:"La URL no debe empezar con 'www' y debe empezar con una letra o numero",languageSelect:"Selecciona el idioma de la interfaz:",languageChanged:e=>`Idioma cambiado a: ${e}`,configMenu:"Que deseas configurar?",configLanguage:"Idioma de la interfaz",configDefaultBranch:"Rama base por defecto",configAIProvider:"Proveedor de IA por defecto",configView:"Ver configuracion actual",defaultBranchSet:e=>`Rama base por defecto: ${e}`,aiProviderSet:e=>`Proveedor de IA por defecto: ${e}`};var Be={welcome:"Welcome to",subtitle:"your trusted CLI for GIT branch management",operationCompleted:"Operation completed!",operationCancelled:"Operation cancelled. Exiting...",unknownCommand:"Unknown command",errorExecuting:"Error executing command",version:"eazy-git version",whatToDo:"What would you like to do?",addChanges:"Add Changes to Branch",createOriginal:"Create Original Branch",createTemporal:"Create Temporal Branch",notGitRepo:"This directory is not a git repository",gitNotInstalled:"git is not installed on the system",currentBranch:"Current branch",filesChanged:"Files with changes",noChangesPending:"No pending changes. Do you want to continue anyway?",updatingRefs:"Updating remote references...",refsUpdated:"References updated",fetchFailed:"Could not fetch (continuing...)",baseBranch:"From which base branch do you want to create the branch?",baseBranchRequired:"Base branch is required",ticketId:"What is the ticket identifier? (e.g.: DPW-0000)",ticketRequired:"Ticket is required",changeType:"What type of change is this?",branchExistsLocal:e=>`Branch "${e}" already exists locally. What would you like to do?`,switchToIt:"Switch to it and continue",cancel:"Cancel",cancelledOp:"Operation cancelled.",creatingBranch:(e,t)=>`Creating branch ${e} from origin/${t}...`,branchCreated:e=>`Branch ${e} created`,errorCreatingBranch:e=>`Error creating branch: ${e}`,noFilesToStage:"No files to stage.",selectFiles:"Which files do you want to include in the commit?",selectAllFiles:"Select all files",stagedFiles:"Staged files",stagedCorrect:"Are the staged files correct?",aiProvider:"Which AI do you want to use for the commit suggestion?",generatingCommit:e=>`Generating commit suggestion with ${e}...`,aiSuggestionFailed:e=>`Could not get suggestion from ${e}. Write the message manually.`,writeCommitMsg:"Write the commit message:",commitMsgRequired:"Message is required",suggestionOf:e=>`${e} suggestion`,useThisCommit:"Does this commit message look good?",yesUseIt:"Yes, use it",modify:"Modify",commitSuccess:"Commit created successfully",hookBlocked:"The pre-commit hook blocked the commit. What would you like to do?",retryHook:"I fixed it, re-stage and retry",skipHook:"Skip the hook (--no-verify)",commitNoHooks:"Commit created (without hooks)",pushToRemote:"Do you want to push the branch to the remote repository?",pushSuccess:"Push completed",pushForceQuestion:"The branch already exists on remote with different history. Force push? (git push -f)",pushForceSuccess:"Force push completed",pushForceError:e=>`Error in force push: ${e}`,pushError:e=>`Error in push: ${e}`,summaryTitle:"Summary",summaryBranch:"Branch",summaryFrom:"From",summaryCommit:"Commit",summaryFiles:e=>`${e} files committed`,summaryPush:"Push",summaryPR:"Create PR",statusModified:"modified",statusAdded:"added",statusDeleted:"deleted",statusRenamed:"renamed",statusUntracked:"untracked",commitTypes:{fix:"fix - bug fix",feat:"feat - new feature",refactor:"refactor - improvement without functional change",chore:"chore - maintenance, dependencies",docs:"docs - documentation",test:"test - testing",ci:"ci - continuous integration",perf:"perf - performance",style:"style - formatting, no logic change"},selectBranchType:"Select the branch type:",branchFix:"Fix",branchImprovement:"Improvement",branchFeature:"Feature",branchRefactor:"Refactor",creatingOriginalBranch:"Creating original branch...",branchCreatedAndPushed:e=>`Branch "${e}" created and pushed successfully!`,branchCreatedSuccess:e=>`Branch "${e}" created successfully!`,mergeBranchQuestion:"Which branch do you want to merge into?",developDEV:"develop (DEV)",releaseUAT:"release (UAT)",temporalBranchCreated:"Temporal branch created successfully",temporalBranchMerged:"Temporal branch merged successfully",conflictsDetected:"Conflicts detected. Please resolve them manually!",branchPushedToRemote:"Branch pushed to remote repository",removeTemporalBranch:"Do you want to remove the temporal branch?",temporalBranchDeleted:"Temporal branch deleted successfully",errorCreatingTemporal:"Error creating the temporal branch",enterJiraCode:"Enter the JIRA ticket code:",jiraRequired:"JIRA code is required!",jiraInvalidFormat:"JIRA code must have the format DPW-0000",fetchingRemote:"Fetching remote changes...",pullingChanges:"Pulling changes into your branch...",pullError:e=>`Error: ${e}`,pushingChanges:"Pushing changes to remote...",pushedSuccess:"Changes pushed successfully!",pushedForceSuccess:"Changes pushed (force) successfully!",pushQuickError:e=>`Error: ${e}`,provideCommitMsg:"Please provide a commit message",stagingChanges:"Staging changes...",creatingCommit:"Creating commit...",commitCreated:"Commit created successfully!",commitError:e=>`Error: ${e}`,switchingPrevBranch:"Switching to previous branch...",switchedTo:e=>`Successfully switched to ${e} branch!`,checkoutError:e=>`Error: ${e}`,fetchingLatest:"Fetching latest changes...",mergingWith:e=>`Merging with ${e}...`,pushingMerged:"Pushing merged changes...",mergeCompleted:"Merge completed successfully!",mergeError:e=>`Error: ${e}`,removingLastCommit:"Removing last commit...",removeLastConfirm:"This will remove the last commit (changes will remain in staging). Continue?",lastCommitRemoved:"Last commit removed successfully!",removeLastError:e=>`Error: ${e}`,logError:e=>`Error: ${e}`,settingUpConfig:"Setting up your configuration",configSaved:"Configuration saved",missingConfigValues:"Missing required configuration values.",errorWritingConfig:"Error writing configuration file:",currentConfig:"Current configuration",useThisConfig:"Would you like to use this configuration?",installingDeps:"Installing dependencies...",depsInstalled:"All dependencies were installed",authFailed:"Authentication failed",unexpectedError:"An unexpected error occurred",enterEndpoint:"Enter your endpoint URL:",urlRequired:"URL is required!",urlMustBeHttp:"URL must use HTTP/HTTPS protocol",urlMustHaveHost:"URL must include a hostname",urlInvalid:"Please enter a valid URL",enterApiKey:"Enter your apikey:",apiKeyRequired:"API key is required!",enterRegistryName:"Enter your NPM registry name (without special characters):",registryNameRequired:"Registry name is required!",registryNameLettersOnly:"Registry name must contain only letters",enterRegistryURL:"Enter your NPM registry URL (without http/https):",registryURLRequired:"Registry URL is required!",registryURLStartWithName:"URL must start with a name only, avoid special characters",registryURLNoProtocol:"URL must not include 'http/https' protocol and must start with a letter",registryURLNoSlash:"URL must not start with '/' and must begin with a letter or number",registryURLNoWWW:"URL must not start with 'www' and must begin with a letter or number",languageSelect:"Select the interface language:",languageChanged:e=>`Language changed to: ${e}`,configMenu:"What would you like to configure?",configLanguage:"Interface language",configDefaultBranch:"Default base branch",configAIProvider:"Default AI provider",configView:"View current configuration",defaultBranchSet:e=>`Default base branch: ${e}`,aiProviderSet:e=>`Default AI provider: ${e}`};var Ge={es:Ue,en:Be};function a(e,...t){let i=Ne().language||"es",c=(Ge[i]||Ge.es)[e];return typeof c=="function"?c(...t):c||e}function X(){if(n.step(a("fetchingRemote")),We("git",["fetch"],{stdio:"inherit"}).status!==0){n.error(a("pullError","fetch failed"));return}n.step(a("pullingChanges")),We("git",["pull","origin","HEAD"],{stdio:"inherit"}).status!==0&&n.error(a("pullError","pull failed"))}import{spawnSync as Dt}from"child_process";function Z(e){let t=e.includes("-f")||e.includes("--force")||e.includes("-force");n.step(a("pushingChanges")),Dt("git",t?["push","-f","origin","HEAD"]:["push","origin","HEAD"],{stdio:"inherit"}).status===0?n.success(t?a("pushedForceSuccess"):a("pushedSuccess")):n.error(a("pushQuickError","push failed"))}import{spawnSync as Ot}from"child_process";function ee(e){if(G(e))return Pe(a("operationCancelled")),process.exit(0)}async function te(){let e=await ke({message:a("removeLastConfirm")});if(ee(e),!e)return;n.step(a("removingLastCommit")),Ot("git",["reset","--soft","HEAD~1"],{stdio:"inherit"}).status===0?n.success(a("lastCommitRemoved")):n.error(a("removeLastError","reset failed"))}import{spawnSync as se}from"child_process";function ie(e){let t=e[0]??"develop";if(n.step(a("fetchingLatest")),se("git",["fetch"],{stdio:"inherit"}),n.step(a("mergingWith",t)),se("git",["merge",`origin/${t}`],{stdio:"inherit"}).status!==0){n.error(a("mergeError","merge failed"));return}n.step(a("pushingMerged")),se("git",["push","origin","HEAD"],{stdio:"inherit"}).status===0?n.success(a("mergeCompleted")):n.error(a("mergeError","push failed"))}import{spawnSync as je}from"child_process";function re(e){let t=e[0];t||(n.error(a("provideCommitMsg")),process.exit(1)),n.step(a("stagingChanges")),je("git",["add","."],{stdio:"inherit"}),n.step(a("creatingCommit")),je("git",["commit","-m",t],{stdio:"inherit"}).status===0?n.success(a("commitCreated")):n.error(a("commitError","commit failed"))}import{spawnSync as Vt}from"child_process";function ne(){Vt("git",["log"],{stdio:"inherit"}).status!==0&&(n.error(a("logError","git log failed")),process.exit(1))}import{spawnSync as Nt}from"child_process";function W(e){let t=e[0]||"-",s=t==="-";s&&n.step(a("switchingPrevBranch")),Nt("git",["checkout",t],{stdio:"inherit"}).status===0?n.success(a("switchedTo",s?"previous":t)):(n.error(a("checkoutError","checkout failed")),process.exit(1))}import{existsSync as Ut}from"fs";import{join as Bt}from"path";import{execSync as Gt}from"child_process";var Wt=()=>{try{Gt("git --version",{stdio:"ignore"})}catch{n.error(a("gitNotInstalled")),process.exit(1)}let e=Bt(process.cwd(),".git");Ut(e)||(n.error(a("notGitRepo")),process.exit(1))},qe=Wt;qe();var He=process.argv[1].split("/").pop(),j=process.argv.slice(2),jt={pull:X,push:()=>Z(j),removelast:te,mergewith:()=>ie(j),commit:()=>re(j),checkout:()=>W(j),back:()=>W("-"),log:ne};async function qt(){try{let e=jt[He];e||(n.error(`${a("unknownCommand")}: ${He}`),process.exit(1)),await e(),process.exit(0)}catch(e){n.error(`${a("errorExecuting")}: ${e.message}`),process.exit(1)}}qt();