@night-slayer18/leetcode-cli 2.4.0 → 2.4.1
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.js +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -267,10 +267,10 @@ For security reasons, you can only diff files from within your workspace.`));ret
|
|
|
267
267
|
`)}function Vc(e,t,o){let n=[],r=Math.max(20,t),s=Math.max(8,o);n.push(...ot(`${Y.star} Keyboard Cheat Sheet`,"All shortcuts in one place",r)),n.push(f.hex(p.textMuted)(j.horizontal.repeat(r)));let i=r<90?"compact":"normal",a=nt([{key:"j/k",label:"Scroll"},{key:"PgUp/PgDn",label:"Page"},{key:"g/G",label:"Top/Bottom"},{key:"?/Esc",label:"Close"}],r,i).slice(0,1),l=1+a.length,u=Math.max(3,s-n.length-l),g=li(r),d=Math.max(0,g.length-u),m=Math.min(e.scrollOffset,d),b=g.slice(m,m+u);for(n.push(...b);n.length<s-l;)n.push("");return n.push(f.hex(p.textMuted)(j.horizontal.repeat(r))),n.push(...a),n.slice(0,s).join(`
|
|
268
268
|
`)}function zc(){return [{section:"Global",items:[["?","Toggle help"],["Ctrl+C","Quit app"],["Esc","Back / close panel"]]},{section:"Navigation",items:[["j / \u2193","Move down"],["k / \u2191","Move up"],["g / G","Top / Bottom"],["PgUp/PgDn","Page jump"]]},{section:"Home",items:[["l","Problem list"],["d / r","Daily / Random"],["w / c","Workspace / Config"],["q","Quit"]]},{section:"List",items:[["/","Search"],["1/2/3","Difficulty filters"],["s / a / b","Status / Attempted / Bookmarks"],["Enter","Open problem"]]},{section:"Problem",items:[["p / t / s","Pick / Test / Submit"],["h / H / V","Hint / Subs / Snapshots"],["b / n / e","Bookmark / Note / Edit note"],["j / k","Scroll content/panel"]]},{section:"Workspace/Config",items:[["Tab / h / l","Switch pane"],["Enter","Switch or edit/save"],["c / d","Create / Delete workspace"],["Esc","Cancel edit or go back"]]}]}function rn(e,t){let o=[],n=Math.max(20,t),r=Math.max(8,Math.min(14,Math.floor(n*.26))),s=Math.max(8,n-r-3);o.push(we(e.section,t));for(let[i,a]of e.items){let l=H([a],s),u=f.hex(p.cyan)(ue(i,r));o.push(` ${u} ${f.hex(p.text)(l[0]??"")}`);for(let g=1;g<l.length;g++)o.push(` ${" ".repeat(r)} ${f.hex(p.textMuted)(l[g])}`);}return o}function li(e){let t=zc();if(e<90){let i=[];for(let a of t)i.push(...rn(a,e)),i.push("");return i}let o=[],n=.49,r=Math.max(8,Math.floor(e*n)),s=Math.max(8,e-r-1);for(let i=0;i<t.length;i+=2){let a=rn(t[i],r),l=t[i+1]?rn(t[i+1],s):[],u=Math.max(a.length,l.length);o.push(...rt(a,l,e,u,n)),o.push("");}return o}function ci(e,t){let o=Math.max(20,e),n=Math.max(8,t),r=Math.max(3,n-5);return Math.max(0,li(o).length-r)}function Yc(e,t,o){let n=Math.max(1,t),r=Math.max(1,o),s=e.split(`
|
|
269
269
|
`),i=[];for(let a=0;a<s.length;a++){let l=s[a]??"";O(l).length>n?i.push(A(l,n)):i.push(l);}for(;i.length<r;)i.push("");return i.slice(0,r).join(`
|
|
270
|
-
`)}function ui(e,t){switch(e.type){case "INIT":return [{...t,needsRender:true},c.checkAuth()];case "KEY_PRESS":{let{key:o}=e;if(o.ctrl&&o.name==="c")return [t,c.exit()];if(o.name==="q"&&t.screenState.screen==="home")return [t,c.exit()];if(o.name==="?")return t.screenState.screen==="help"?[{...t,...sn(t),needsRender:true},c.none()]:[{...t,...fe(t,{screen:"help",model:{scrollOffset:0}}),needsRender:true},c.none()];if(o.name==="escape"&&t.screenState.screen!=="home"){if(t.screenState.screen==="config"&&t.screenState.model.isEditing)return io(t,e);if(t.screenState.screen==="problem"){let n=t.screenState.model;if(n.drawerMode!=="none"){let[r,s]=ro({type:"PROBLEM_CLOSE_RESULT"},n,t.terminalHeight,t.terminalWidth);return [{...t,screenState:{screen:"problem",model:r},needsRender:true},s]}}if(t.screenState.screen==="workspace"){let n=t.screenState.model;if(n.showCreateInput||n.showDeleteConfirm||n.isEditing)return io(t,e)}return t.screenState.screen==="login"?io(t,e):[{...t,...sn(t),needsRender:true},c.none()]}return io(t,e)}case "RESIZE":return [{...t,terminalWidth:e.width,terminalHeight:e.height,needsRender:true},c.none()];case "NAVIGATE":return [{...t,...fe(t,e.to),needsRender:true},c.none()];case "GO_BACK":return [{...t,...sn(t),needsRender:true},c.none()];case "AUTH_CHECK_COMPLETE":return e.user?[{...t,isCheckingAuth:false,user:{username:e.user.username,isLoggedIn:true},needsRender:true},c.none()]:[{...t,isCheckingAuth:false,user:null,screenState:{screen:"login",model:{step:"instructions",sessionToken:"",csrfToken:"",focusedField:"session",error:null}},needsRender:true},c.none()];case "GLOBAL_ERROR":return [{...t,globalError:e.error,needsRender:true},c.none()];case "CLEAR_ERROR":return [{...t,globalError:null,needsRender:true},c.none()];case "FETCH_DAILY_SUCCESS":{let[o,n]=no(e.slug);return [{...t,...fe(t,{screen:"problem",model:o}),needsRender:true},n]}case "FETCH_RANDOM_SUCCESS":{let[o,n]=no(e.slug);return [{...t,...fe(t,{screen:"problem",model:o}),needsRender:true},n]}case "QUIT":return [t,c.exit()];case "LOGIN_SUCCESS":return [{...t,user:{username:e.username,isLoggedIn:true},screenState:{screen:"home",model:{menuIndex:0}},needsRender:true},c.none()];default:return gi(e,t)}}function fe(e,t){return {screenState:t,history:[...e.history,e.screenState],globalError:null}}function sn(e){if(e.history.length===0)return {screenState:{screen:"home",model:{menuIndex:0}},globalError:null};let t=[...e.history];return {screenState:t.pop(),history:t,globalError:null}}function io(e,t){let{screenState:o}=e;switch(o.screen){case "home":return pi(e,t);case "list":return Qc(e,t);case "problem":return Jc(e,t);case "timer":case "stats":case "config":return Zc(e,t);case "help":return eu(e,t);case "workspace":return pu(e,t);case "changelog":return gu(e,t);case "login":return du(e,t);default:return [e,c.none()]}}function pi(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model;if(o.name==="l"){let[r,s]=Ho();return [{...e,...fe(e,{screen:"list",model:r}),needsRender:true},s]}if(o.name==="d")return [e,c.fetchDaily()];if(o.name==="r")return [e,c.fetchRandom()];if(o.name==="b"){let[r,s]=Ho();return [{...e,...fe(e,{screen:"list",model:{...r,bookmarkFilter:true}}),needsRender:true},s]}if(o.name==="t")return [{...e,...fe(e,{screen:"timer",model:{problemId:null,problemTitle:"Practice",difficulty:"Medium",remainingSeconds:2400,totalSeconds:2400,status:"idle",viewMode:"timer"}}),needsRender:true},c.none()];if(o.name==="s"){let[r,s]=Ls();return [{...e,...fe(e,{screen:"stats",model:r}),needsRender:true},s]}if(o.name==="y")return [{...e,globalError:"Use CLI command: leet sync (requires terminal interaction)",needsRender:true},c.none()];if(o.name==="w"){let[r,s]=Fs();return [{...e,...fe(e,{screen:"workspace",model:r}),needsRender:true},s]}if(o.name==="c"){let[r,s]=Rs();return [{...e,...fe(e,{screen:"config",model:r}),needsRender:true},s]}if(o.name==="?")return [{...e,...fe(e,{screen:"help",model:{scrollOffset:0}}),needsRender:true},c.none()];if(o.name==="v"){let[r,s]=Gs();return [{...e,...fe(e,{screen:"changelog",model:r}),needsRender:true},s]}if(o.name==="L")return [e,c.logout()];if(o.name==="j"||o.name==="down"){let[r,s]=Jt({type:"HOME_MENU_DOWN"},n);return [{...e,screenState:{screen:"home",model:r},needsRender:true},s]}if(o.name==="k"||o.name==="up"){let[r,s]=Jt({type:"HOME_MENU_UP"},n);return [{...e,screenState:{screen:"home",model:r},needsRender:true},s]}if(o.name==="return"){let s=["l","d","r","b","t","s","y","w","c","v","L","?"][n.menuIndex];if(s)return pi(e,{type:"KEY_PRESS",key:{name:s,sequence:s,ctrl:false,meta:false,shift:false}})}return [e,c.none()]}function Qc(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model,r=null;if(n.searchMode)o.name==="escape"?r={type:"LIST_SEARCH_CANCEL"}:o.name==="return"?r={type:"LIST_SEARCH_SUBMIT"}:o.name==="backspace"?r={type:"LIST_SEARCH_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(r={type:"LIST_SEARCH_INPUT",char:o.sequence});else if(o.name==="j"||o.name==="down")r={type:"LIST_CURSOR_DOWN"};else if(o.name==="k"||o.name==="up")r={type:"LIST_CURSOR_UP"};else if(o.name==="g")r={type:"LIST_GO_TOP"};else if(o.name==="G")r={type:"LIST_GO_BOTTOM"};else if(o.name==="/")r={type:"LIST_SEARCH_START"};else if(o.name==="return"){let s=n.problems[n.cursor];if(s){let[i,a]=no(s.titleSlug);return [{...e,...fe(e,{screen:"problem",model:i}),needsRender:true},a]}r={type:"LIST_SELECT"};}else o.name==="1"?r={type:"LIST_FILTER_DIFFICULTY",difficulty:n.difficultyFilter==="Easy"?null:"Easy"}:o.name==="2"?r={type:"LIST_FILTER_DIFFICULTY",difficulty:n.difficultyFilter==="Medium"?null:"Medium"}:o.name==="3"?r={type:"LIST_FILTER_DIFFICULTY",difficulty:n.difficultyFilter==="Hard"?null:"Hard"}:o.name==="s"?r={type:"LIST_FILTER_STATUS",status:n.statusFilter==="solved"?null:"solved"}:o.name==="a"?r={type:"LIST_FILTER_STATUS",status:n.statusFilter==="attempted"?null:"attempted"}:o.name==="b"?r={type:"LIST_FILTER_BOOKMARKS"}:o.name==="c"?r={type:"LIST_CLEAR_FILTERS"}:o.name==="R"&&(r={type:"LIST_REFRESH"});if(r){let[s,i]=Uo(r,n,e.terminalHeight);return [{...e,screenState:{screen:"list",model:s},needsRender:true},i]}return [e,c.none()]}function gi(e,t){let{screenState:o}=t,n=t.terminalHeight;switch(o.screen){case "list":{if(!tu(e))return [t,c.none()];let[r,s]=Uo(e,o.model,n);return [{...t,screenState:{screen:"list",model:r},needsRender:true},s]}case "home":{if(!ou(e))return [t,c.none()];let[r,s]=Jt(e,o.model);return [{...t,screenState:{screen:"home",model:r},needsRender:true},s]}case "timer":{if(!nu(e))return [t,c.none()];let[r,s]=Xt(e,o.model);return [{...t,screenState:{screen:"timer",model:r},needsRender:true},s]}case "stats":{if(!ru(e))return [t,c.none()];let[r,s]=Bo(e,o.model);return [{...t,screenState:{screen:"stats",model:r},needsRender:true},s]}case "config":{if(!su(e))return [t,c.none()];let[r,s]=jo(e,o.model);return [{...t,screenState:{screen:"config",model:r},needsRender:true},s]}case "help":{if(!iu(e))return [t,c.none()];let r=o.model,s=ci(t.terminalWidth,t.terminalHeight-4),i=Math.max(3,Math.floor((t.terminalHeight-4)/2)),a=r.scrollOffset;switch(e.type){case "HELP_SCROLL_UP":a=Math.max(0,r.scrollOffset-1);break;case "HELP_SCROLL_DOWN":a=Math.min(s,r.scrollOffset+1);break;case "HELP_PAGE_UP":a=Math.max(0,r.scrollOffset-i);break;case "HELP_PAGE_DOWN":a=Math.min(s,r.scrollOffset+i);break;case "HELP_TOP":a=0;break;case "HELP_BOTTOM":a=s;break}return [{...t,screenState:{screen:"help",model:{scrollOffset:a}},needsRender:true},c.none()]}case "workspace":{if(!lu(e))return [t,c.none()];let[r,s]=Qo(e,o.model);return [{...t,screenState:{screen:"workspace",model:r},needsRender:true},s]}case "problem":{if(!au(e))return [t,c.none()];let[r,s]=ro(e,o.model,n,t.terminalWidth);return [{...t,screenState:{...o,model:r},needsRender:true},s]}case "changelog":{if(!cu(e))return [t,c.none()];let[r,s]=Xo(e,o.model,n,t.terminalWidth);return [{...t,screenState:{screen:"changelog",model:r},needsRender:true},s]}case "login":{if(!uu(e))return [t,c.none()];let[r,s]=en(e,o.model);return [{...t,screenState:{screen:"login",model:r},needsRender:true},s]}default:return [t,c.none()]}}function Jc(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model,r=null;if(!r&&n.drawerMode==="note"&&(o.name==="n"||o.name==="escape")&&(r={type:"PROBLEM_CLOSE_NOTE"}),!r&&n.drawerMode==="diff"&&(o.name==="d"||o.name==="escape")&&(r={type:"PROBLEM_CLOSE_DIFF"}),!r){let i=Xc(o.name);i&&(r=i);}!r&&o.name==="tab"&&n.drawerMode!=="none"&&(r={type:"PROBLEM_FOCUS_TOGGLE"}),!r&&n.drawerMode!=="none"&&o.name==="escape"&&(r={type:"PROBLEM_CLOSE_RESULT"}),!r&&n.drawerMode==="hint"&&(o.name==="left"?r={type:"PROBLEM_PREV_HINT"}:o.name==="right"&&(r={type:"PROBLEM_NEXT_HINT"})),!r&&n.drawerMode!=="none"&&n.focusRegion==="drawer"&&(n.drawerMode==="snapshots"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_SNAPSHOT_DOWN"}:o.name==="k"||o.name==="up"?r={type:"PROBLEM_SNAPSHOT_UP"}:o.name==="d"?r={type:"PROBLEM_DIFF_SNAPSHOT"}:o.name==="r"&&(r={type:"PROBLEM_RESTORE_SNAPSHOT"}):n.drawerMode==="hint"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_HINT_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_HINT_SCROLL_UP"}):n.drawerMode==="submissions"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_SUBMISSIONS_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_SUBMISSIONS_SCROLL_UP"}):n.drawerMode==="note"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_NOTE_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_NOTE_SCROLL_UP"}):n.drawerMode==="diff"&&(o.name==="j"||o.name==="down"?r={type:"PROBLEM_DIFF_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_DIFF_SCROLL_UP"})));let s=n.drawerMode==="none"||n.focusRegion==="body";if(!r&&s&&(o.name==="j"||o.name==="down"?r={type:"PROBLEM_SCROLL_DOWN"}:o.name==="k"||o.name==="up"?r={type:"PROBLEM_SCROLL_UP"}:o.name==="pagedown"?r={type:"PROBLEM_PAGE_DOWN"}:o.name==="pageup"?r={type:"PROBLEM_PAGE_UP"}:o.name==="g"?r={type:"PROBLEM_TOP"}:o.name==="G"&&(r={type:"PROBLEM_BOTTOM"})),r){let[i,a]=ro(r,n,e.terminalHeight,e.terminalWidth);return [{...e,screenState:{screen:"problem",model:i},needsRender:true},a]}return [e,c.none()]}function Xc(e){return e==="p"?{type:"PROBLEM_PICK"}:e==="t"?{type:"PROBLEM_TEST"}:e==="s"?{type:"PROBLEM_SUBMIT"}:e==="b"?{type:"PROBLEM_BOOKMARK"}:e==="n"?{type:"PROBLEM_VIEW_NOTE"}:e==="e"?{type:"PROBLEM_NOTES"}:e==="h"?{type:"PROBLEM_TOGGLE_HINT"}:e==="H"||e==="S"?{type:"PROBLEM_SHOW_SUBMISSIONS"}:e==="v"||e==="V"||e==="w"?{type:"PROBLEM_SHOW_SNAPSHOTS"}:null}function Zc(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,{screenState:n}=e;if(n.screen==="timer"){let r=n.model;if(o.name==="space"){let[s,i]=Xt({type:r.status==="running"?"TIMER_PAUSE":"TIMER_START"},r);return [{...e,screenState:{...n,model:s},needsRender:true},i]}if(o.name==="r"){let[s,i]=Xt({type:"TIMER_RESET"},r);return [{...e,screenState:{...n,model:s},needsRender:true},i]}}if(n.screen==="config"){let r=n.model,s=null;if(o.name==="tab"||o.name==="h"||o.name==="l"?s={type:"CONFIG_TOGGLE_FOCUS"}:o.name==="left"?s={type:"CONFIG_FOCUS_LIST"}:o.name==="right"?s={type:"CONFIG_FOCUS_EDITOR"}:r.isEditing?o.name==="escape"?s={type:"CONFIG_EDIT_CANCEL"}:o.name==="return"||o.name==="enter"?s={type:"CONFIG_EDIT_SAVE"}:o.name==="backspace"?s={type:"CONFIG_EDIT_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(s={type:"CONFIG_EDIT_INPUT",char:o.sequence}):o.name==="j"||o.name==="down"?s={type:"CONFIG_OPTION_DOWN"}:o.name==="k"||o.name==="up"?s={type:"CONFIG_OPTION_UP"}:(o.name==="return"||o.name==="enter")&&(s={type:"CONFIG_EDIT_START"}),s){let[i,a]=jo(s,r);return [{...e,screenState:{...n,model:i},needsRender:true},a]}}if(n.screen==="stats"){let r=n.model;if(o.name==="r"||o.name==="R"){let[s,i]=Bo({type:"STATS_REFRESH"},r);return [{...e,screenState:{...n,model:s},needsRender:true},i]}}return [e,c.none()]}function eu(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=null;return o.name==="j"||o.name==="down"?n={type:"HELP_SCROLL_DOWN"}:o.name==="k"||o.name==="up"?n={type:"HELP_SCROLL_UP"}:o.name==="pagedown"?n={type:"HELP_PAGE_DOWN"}:o.name==="pageup"?n={type:"HELP_PAGE_UP"}:o.name==="g"?n={type:"HELP_TOP"}:o.name==="G"&&(n={type:"HELP_BOTTOM"}),n?gi(n,e):[e,c.none()]}function tu(e){return e.type.startsWith("LIST_")}function ou(e){return e.type.startsWith("HOME_")}function nu(e){return e.type.startsWith("TIMER_")}function ru(e){return e.type.startsWith("STATS_")}function su(e){return e.type.startsWith("CONFIG_")}function iu(e){return e.type.startsWith("HELP_")}function au(e){return e.type.startsWith("PROBLEM_")}function lu(e){return e.type.startsWith("WORKSPACE_")}function cu(e){return e.type.startsWith("CHANGELOG_")}function uu(e){return e.type.startsWith("LOGIN_")}function pu(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model,r=null;if(n.showCreateInput?o.name==="escape"?r={type:"WORKSPACE_CREATE_CANCEL"}:o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_CREATE_SUBMIT"}:o.name==="backspace"?r={type:"WORKSPACE_CREATE_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(r={type:"WORKSPACE_CREATE_INPUT",char:o.sequence}):n.showDeleteConfirm?o.name==="y"||o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_DELETE_CONFIRM"}:(o.name==="n"||o.name==="escape")&&(r={type:"WORKSPACE_DELETE_CANCEL"}):n.isEditing?o.name==="escape"?r={type:"WORKSPACE_EDIT_CANCEL"}:o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_EDIT_SAVE"}:o.name==="backspace"?r={type:"WORKSPACE_EDIT_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(r={type:"WORKSPACE_EDIT_INPUT",char:o.sequence}):o.name==="tab"||o.name==="h"||o.name==="l"?r={type:"WORKSPACE_TOGGLE_FOCUS"}:o.name==="left"?r={type:"WORKSPACE_FOCUS_LIST"}:o.name==="right"?r={type:"WORKSPACE_FOCUS_EDITOR"}:n.paneFocus==="list"?o.name==="j"||o.name==="down"?r={type:"WORKSPACE_DOWN"}:o.name==="k"||o.name==="up"?r={type:"WORKSPACE_UP"}:o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_SELECT"}:o.name==="c"?r={type:"WORKSPACE_CREATE_START"}:o.name==="d"&&(r={type:"WORKSPACE_DELETE"}):o.name==="j"||o.name==="down"?r={type:"WORKSPACE_FIELD_DOWN"}:o.name==="k"||o.name==="up"?r={type:"WORKSPACE_FIELD_UP"}:(o.name==="return"||o.name==="enter")&&(r={type:"WORKSPACE_EDIT_START"}),r){let[s,i]=Qo(r,n);return [{...e,screenState:{screen:"workspace",model:s},needsRender:true},i]}return [e,c.none()]}function gu(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t;if(o.name==="k"||o.name==="up")return n(e,{type:"CHANGELOG_SCROLL_UP"});if(o.name==="j"||o.name==="down")return n(e,{type:"CHANGELOG_SCROLL_DOWN"});return [e,c.none()];function n(r,s){let i=r.screenState;if(i.screen!=="changelog")return [r,c.none()];let[a,l]=Xo(s,i.model,r.terminalHeight,r.terminalWidth);return [{...r,screenState:{screen:"changelog",model:a},needsRender:true},l]}}function du(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model;if(o.ctrl&&o.name==="c")return [e,c.exit()];if(n.step==="instructions"){if(o.name==="return"||o.name==="enter")return r(e,{type:"LOGIN_SUBMIT"});if(o.name==="escape")return [e,c.exit()]}else if(n.step==="input"||n.step==="error"){if(o.name==="escape")return r(e,{type:"LOGIN_BACK"});if(o.name==="tab"||o.name==="down"||o.name==="up")return r(e,{type:"LOGIN_SWITCH_FOCUS"});if(o.name==="return"||o.name==="enter"){if(n.focusedField==="session"){if(n.sessionToken.length>0)return r(e,{type:"LOGIN_SET_FOCUS",field:"csrf"})}else if(n.csrfToken.length>0&&n.sessionToken.length>0)return r(e,{type:"LOGIN_SUBMIT"})}else if(o.name==="backspace"){if(n.focusedField==="session"){if(n.sessionToken.length>0)return r(e,{type:"LOGIN_SESSION_INPUT",value:n.sessionToken.slice(0,-1)})}else if(n.csrfToken.length>0)return r(e,{type:"LOGIN_CSRF_INPUT",value:n.csrfToken.slice(0,-1)})}else if(!o.ctrl&&!o.meta)return n.focusedField==="session"?r(e,{type:"LOGIN_SESSION_INPUT",value:n.sessionToken+o.sequence}):r(e,{type:"LOGIN_CSRF_INPUT",value:n.csrfToken+o.sequence})}return [e,c.none()];function r(s,i){let[a,l]=en(i,s.screenState.model);return [{...s,screenState:{screen:"login",model:a},needsRender:true},l]}}var yu="https://raw.githubusercontent.com/night-slayer18/leetcode-cli/main/docs/releases.md",Pe=null;function an(e,t){switch(e.type){case "CMD_NONE":return;case "CMD_BATCH":for(let o of e.commands)an(o,t);return;case "CMD_FETCH_STATS":Cu(t);return;case "CMD_CHECK_AUTH":hu(t);return;case "CMD_FETCH_PROBLEMS":Su(e.filters,e.append,t);return;case "CMD_FETCH_PROBLEM_DETAIL":bu(e.slug,t);return;case "CMD_START_TIMER_SUBSCRIPTION":Pe&&clearInterval(Pe),Pe=setInterval(()=>{t({type:"TIMER_TICK"});},e.intervalMs);return;case "CMD_STOP_TIMER_SUBSCRIPTION":Pe&&(clearInterval(Pe),Pe=null);return;case "CMD_PICK_PROBLEM":wu(e.slug,t);return;case "CMD_TEST_SOLUTION":Mu(e.slug,t);return;case "CMD_SUBMIT_SOLUTION":_u(e.slug,t);return;case "CMD_SAVE_CONFIG":Eu(e.key,e.value);return;case "CMD_EXIT":ao();return;case "CMD_FETCH_DAILY":ku(t);return;case "CMD_FETCH_RANDOM":Tu(t);return;case "CMD_FETCH_SUBMISSIONS":Pu(e.slug,t);return;case "CMD_LOAD_NOTE":Lu(e.problemId,t);return;case "CMD_DIFF_SNAPSHOT":xu(e.slug,e.snapshotId,t);return;case "CMD_RESTORE_SNAPSHOT":Ru(e.slug,e.snapshotId,t);return;case "CMD_FETCH_CHANGELOG":Ou(t);return;case "CMD_LOGOUT":$u(t);return;case "CMD_LOGIN":vu(e.session,e.csrf,t);return;default:return}}async function hu(e){let t=ae.get();if(!t){e({type:"AUTH_CHECK_COMPLETE",user:null});return}S.setCredentials(t);try{let o=await S.checkAuth();o.isSignedIn&&o.username?e({type:"AUTH_CHECK_COMPLETE",user:{username:o.username}}):e({type:"AUTH_CHECK_COMPLETE",user:null});}catch{e({type:"AUTH_CHECK_COMPLETE",user:null});}}async function Su(e,t,o){o({type:"LIST_FETCH_START"});try{let n=ae.get();n&&S.setCredentials(n);let r=await S.getProblems(e),s=r.problems.map(i=>({questionId:i.questionId,questionFrontendId:i.questionFrontendId,title:i.title,titleSlug:i.titleSlug,difficulty:i.difficulty,isPaidOnly:i.isPaidOnly,acRate:i.acRate,topicTags:i.topicTags,status:i.status}));o({type:"LIST_FETCH_SUCCESS",problems:s,total:r.total,append:t});}catch(n){o({type:"LIST_FETCH_ERROR",error:n instanceof Error?n.message:"Failed to fetch problems"});}}async function bu(e,t){try{let o=await S.getProblem(e);t({type:"PROBLEM_DETAIL_LOADED",detail:o});}catch(o){t({type:"PROBLEM_DETAIL_ERROR",error:o instanceof Error?o.message:"Failed to fetch problem"});}}async function Cu(e){e({type:"STATS_FETCH_START"});try{let t=ae.get();if(!t)throw new Error("You must be logged in to view stats");S.setCredentials(t);let o=await S.checkAuth();if(!o.isSignedIn||!o.username)throw new Error("Not logged in");let[n,r,s]=await Promise.all([S.getUserProfile(o.username),S.getSkillStats(o.username),S.getDailyChallenge()]);e({type:"STATS_FETCH_SUCCESS",stats:n,skills:r,daily:s});}catch(t){e({type:"STATS_FETCH_ERROR",error:t instanceof Error?t.message:"Failed to fetch statistics"});}}function Eu(e,t){switch(e){case "language":_.setLanguage(t);break;case "editor":_.setEditor(t);break;case "workdir":_.setWorkDir(t);break;case "repo":_.setRepo(t);break}}async function ln(e){let t=_.getLanguage(),o=await S.getProblem(e),n=Bt(t,o.codeSnippets),r=Ye(o.questionFrontendId,o.titleSlug,t),s=_.getWorkDir(),i=o.difficulty,a=o.topicTags.length>0?o.topicTags[0].name.replace(/[^\w\s-]/g,"").trim():"Uncategorized",l=$e.join(s,i,a,r);try{return {code:await Oe.readFile(l,"utf-8"),lang:n,questionId:o.questionId}}catch{let g=$e.join(s,r);try{return {code:await Oe.readFile(g,"utf-8"),lang:n,questionId:o.questionId}}catch{throw new Error(`Could not read solution file at ${l}. Make sure you have picked the problem first.`)}}}async function wu(e,t){try{let o=await S.getProblem(e),n=_.getLanguage(),r=Be(n);if(!r)throw new Error(`Unsupported language: ${n}`);let s=o.codeSnippets??[],i=Wt(s,r);if(s.length>0&&!i)throw new Error(`No code template available for ${r}`);let a=i?i.code:jt(r,o.title),l=Gt(o.questionFrontendId,o.titleSlug,o.title,o.difficulty,a,r,o.content??void 0),u=_.getWorkDir(),g=o.difficulty,d=o.topicTags.length>0?o.topicTags[0].name.replace(/[^\w\s-]/g,"").trim():"Uncategorized",m=$e.join(u,g,d);try{await Oe.mkdir(m,{recursive:!0});}catch{}let b=Ye(o.questionFrontendId,o.titleSlug,r),M=$e.join(m,b);existsSync(M)?t({type:"PROBLEM_ACTION_SUCCESS",message:`File ready: ${b}`}):(await Oe.writeFile(M,l,"utf-8"),t({type:"PROBLEM_ACTION_SUCCESS",message:`Created ${b}`}));}catch(o){t({type:"PROBLEM_ACTION_ERROR",error:o instanceof Error?o.message:"Failed to pick problem"});}}async function Mu(e,t){try{let{code:o,lang:n}=await ln(e),r=await S.getProblem(e),s=await S.testSolution(e,o,n,r.exampleTestcases,r.questionId);t({type:"PROBLEM_TEST_RESULT",result:s});}catch(o){t({type:"PROBLEM_ACTION_ERROR",error:o instanceof Error?o.message:"Test failed"});}}async function _u(e,t){try{let{code:o,lang:n}=await ln(e),r=await S.getProblem(e),s=await S.submitSolution(e,o,n,r.questionId);t({type:"PROBLEM_SUBMIT_RESULT",result:s});}catch(o){t({type:"PROBLEM_ACTION_ERROR",error:o instanceof Error?o.message:"Submit failed"});}}async function ku(e){try{let t=await S.getDailyChallenge();if(t&&t.question&&t.question.titleSlug)e({type:"FETCH_DAILY_SUCCESS",slug:t.question.titleSlug});else throw new Error("No daily challenge found")}catch(t){e({type:"GLOBAL_ERROR",error:t instanceof Error?t.message:"Failed to fetch daily challenge"});}}async function Tu(e){try{let t=await S.getRandomProblem();if(t)e({type:"FETCH_RANDOM_SUCCESS",slug:t});else throw new Error("No random problem found")}catch(t){e({type:"GLOBAL_ERROR",error:t instanceof Error?t.message:"Failed to fetch random problem"});}}async function Lu(e,t){try{let o=$e.join(_.getWorkDir(),".notes"),n=$e.join(o,`${e}.md`);if(existsSync(n)){let r=await Oe.readFile(n,"utf-8");t({type:"PROBLEM_NOTE_LOADED",content:r});}else t({type:"PROBLEM_NOTE_LOADED",content:'No notes found. Press "n" again to create/edit.'});}catch{t({type:"PROBLEM_ACTION_ERROR",error:"Failed to load note"});}}async function xu(e,t,o){try{let{code:n}=await ln(e),s=(await S.getProblem(e)).questionFrontendId,i=J.get(s,t);if(!i)throw new Error("Snapshot not found");let a=J.getCode(s,i),l=diffLines(n,a),u="";l.forEach(g=>{let d=g.added?"[green]":g.removed?"[red]":"[grey]",m=g.added?"+ ":g.removed?"- ":" ";g.value.split(`
|
|
270
|
+
`)}function ui(e,t){switch(e.type){case "INIT":return [{...t,needsRender:true},c.checkAuth()];case "KEY_PRESS":{let{key:o}=e;if(o.ctrl&&o.name==="c")return [t,c.exit()];if(o.name==="q"&&t.screenState.screen==="home")return [t,c.exit()];if(o.name==="?")return t.screenState.screen==="help"?[{...t,...sn(t),needsRender:true},c.none()]:[{...t,...fe(t,{screen:"help",model:{scrollOffset:0}}),needsRender:true},c.none()];if(o.name==="escape"&&t.screenState.screen!=="home"){if(t.screenState.screen==="config"&&t.screenState.model.isEditing)return io(t,e);if(t.screenState.screen==="problem"){let n=t.screenState.model;if(n.drawerMode!=="none"){let[r,s]=ro({type:"PROBLEM_CLOSE_RESULT"},n,t.terminalHeight,t.terminalWidth);return [{...t,screenState:{screen:"problem",model:r},needsRender:true},s]}}if(t.screenState.screen==="workspace"){let n=t.screenState.model;if(n.showCreateInput||n.showDeleteConfirm||n.isEditing)return io(t,e)}return t.screenState.screen==="login"?io(t,e):[{...t,...sn(t),needsRender:true},c.none()]}return io(t,e)}case "RESIZE":return [{...t,terminalWidth:e.width,terminalHeight:e.height,needsRender:true},c.none()];case "NAVIGATE":return [{...t,...fe(t,e.to),needsRender:true},c.none()];case "GO_BACK":return [{...t,...sn(t),needsRender:true},c.none()];case "AUTH_CHECK_COMPLETE":return e.user?[{...t,isCheckingAuth:false,user:{username:e.user.username,isLoggedIn:true},needsRender:true},c.none()]:[{...t,isCheckingAuth:false,user:null,screenState:{screen:"login",model:{step:"instructions",sessionToken:"",csrfToken:"",focusedField:"session",error:null}},needsRender:true},c.none()];case "GLOBAL_ERROR":return [{...t,globalError:e.error,needsRender:true},c.none()];case "CLEAR_ERROR":return [{...t,globalError:null,needsRender:true},c.none()];case "FETCH_DAILY_SUCCESS":{let[o,n]=no(e.slug);return [{...t,...fe(t,{screen:"problem",model:o}),needsRender:true},n]}case "FETCH_RANDOM_SUCCESS":{let[o,n]=no(e.slug);return [{...t,...fe(t,{screen:"problem",model:o}),needsRender:true},n]}case "QUIT":return [t,c.exit()];case "LOGIN_SUCCESS":return [{...t,user:{username:e.username,isLoggedIn:true},screenState:{screen:"home",model:{menuIndex:0}},needsRender:true},c.none()];default:return gi(e,t)}}function fe(e,t){return {screenState:t,history:[...e.history,e.screenState],globalError:null}}function sn(e){if(e.history.length===0)return {screenState:{screen:"home",model:{menuIndex:0}},globalError:null};let t=[...e.history];return {screenState:t.pop(),history:t,globalError:null}}function io(e,t){let{screenState:o}=e;switch(o.screen){case "home":return pi(e,t);case "list":return Qc(e,t);case "problem":return Jc(e,t);case "timer":case "stats":case "config":return Zc(e,t);case "help":return eu(e,t);case "workspace":return pu(e,t);case "changelog":return gu(e,t);case "login":return du(e,t);default:return [e,c.none()]}}function pi(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model;if(o.name==="l"){let[r,s]=Ho();return [{...e,...fe(e,{screen:"list",model:r}),needsRender:true},s]}if(o.name==="d")return [e,c.fetchDaily()];if(o.name==="r")return [e,c.fetchRandom()];if(o.name==="b"){let[r,s]=Ho();return [{...e,...fe(e,{screen:"list",model:{...r,bookmarkFilter:true}}),needsRender:true},s]}if(o.name==="t")return [{...e,...fe(e,{screen:"timer",model:{problemId:null,problemTitle:"Practice",difficulty:"Medium",remainingSeconds:2400,totalSeconds:2400,status:"idle",viewMode:"timer"}}),needsRender:true},c.none()];if(o.name==="s"){let[r,s]=Ls();return [{...e,...fe(e,{screen:"stats",model:r}),needsRender:true},s]}if(o.name==="y")return [{...e,globalError:"Use CLI command: leet sync (requires terminal interaction)",needsRender:true},c.none()];if(o.name==="w"){let[r,s]=Fs();return [{...e,...fe(e,{screen:"workspace",model:r}),needsRender:true},s]}if(o.name==="c"){let[r,s]=Rs();return [{...e,...fe(e,{screen:"config",model:r}),needsRender:true},s]}if(o.name==="?")return [{...e,...fe(e,{screen:"help",model:{scrollOffset:0}}),needsRender:true},c.none()];if(o.name==="v"){let[r,s]=Gs();return [{...e,...fe(e,{screen:"changelog",model:r}),needsRender:true},s]}if(o.name==="L")return [e,c.logout()];if(o.name==="j"||o.name==="down"){let[r,s]=Jt({type:"HOME_MENU_DOWN"},n);return [{...e,screenState:{screen:"home",model:r},needsRender:true},s]}if(o.name==="k"||o.name==="up"){let[r,s]=Jt({type:"HOME_MENU_UP"},n);return [{...e,screenState:{screen:"home",model:r},needsRender:true},s]}if(o.name==="return"){let s=["l","d","r","b","t","s","y","w","c","v","L","?"][n.menuIndex];if(s)return pi(e,{type:"KEY_PRESS",key:{name:s,sequence:s,ctrl:false,meta:false,shift:false}})}return [e,c.none()]}function Qc(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model,r=null;if(n.searchMode)o.name==="escape"?r={type:"LIST_SEARCH_CANCEL"}:o.name==="return"?r={type:"LIST_SEARCH_SUBMIT"}:o.name==="backspace"?r={type:"LIST_SEARCH_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(r={type:"LIST_SEARCH_INPUT",char:o.sequence});else if(o.name==="j"||o.name==="down")r={type:"LIST_CURSOR_DOWN"};else if(o.name==="k"||o.name==="up")r={type:"LIST_CURSOR_UP"};else if(o.name==="g")r={type:"LIST_GO_TOP"};else if(o.name==="G")r={type:"LIST_GO_BOTTOM"};else if(o.name==="/")r={type:"LIST_SEARCH_START"};else if(o.name==="return"){let s=n.problems[n.cursor];if(s){let[i,a]=no(s.titleSlug);return [{...e,...fe(e,{screen:"problem",model:i}),needsRender:true},a]}r={type:"LIST_SELECT"};}else o.name==="1"?r={type:"LIST_FILTER_DIFFICULTY",difficulty:n.difficultyFilter==="Easy"?null:"Easy"}:o.name==="2"?r={type:"LIST_FILTER_DIFFICULTY",difficulty:n.difficultyFilter==="Medium"?null:"Medium"}:o.name==="3"?r={type:"LIST_FILTER_DIFFICULTY",difficulty:n.difficultyFilter==="Hard"?null:"Hard"}:o.name==="s"?r={type:"LIST_FILTER_STATUS",status:n.statusFilter==="solved"?null:"solved"}:o.name==="a"?r={type:"LIST_FILTER_STATUS",status:n.statusFilter==="attempted"?null:"attempted"}:o.name==="b"?r={type:"LIST_FILTER_BOOKMARKS"}:o.name==="c"?r={type:"LIST_CLEAR_FILTERS"}:o.name==="R"&&(r={type:"LIST_REFRESH"});if(r){let[s,i]=Uo(r,n,e.terminalHeight);return [{...e,screenState:{screen:"list",model:s},needsRender:true},i]}return [e,c.none()]}function gi(e,t){let{screenState:o}=t,n=t.terminalHeight;switch(o.screen){case "list":{if(!tu(e))return [t,c.none()];let[r,s]=Uo(e,o.model,n);return [{...t,screenState:{screen:"list",model:r},needsRender:true},s]}case "home":{if(!ou(e))return [t,c.none()];let[r,s]=Jt(e,o.model);return [{...t,screenState:{screen:"home",model:r},needsRender:true},s]}case "timer":{if(!nu(e))return [t,c.none()];let[r,s]=Xt(e,o.model);return [{...t,screenState:{screen:"timer",model:r},needsRender:true},s]}case "stats":{if(!ru(e))return [t,c.none()];let[r,s]=Bo(e,o.model);return [{...t,screenState:{screen:"stats",model:r},needsRender:true},s]}case "config":{if(!su(e))return [t,c.none()];let[r,s]=jo(e,o.model);return [{...t,screenState:{screen:"config",model:r},needsRender:true},s]}case "help":{if(!iu(e))return [t,c.none()];let r=o.model,s=ci(t.terminalWidth,t.terminalHeight-4),i=Math.max(3,Math.floor((t.terminalHeight-4)/2)),a=r.scrollOffset;switch(e.type){case "HELP_SCROLL_UP":a=Math.max(0,r.scrollOffset-1);break;case "HELP_SCROLL_DOWN":a=Math.min(s,r.scrollOffset+1);break;case "HELP_PAGE_UP":a=Math.max(0,r.scrollOffset-i);break;case "HELP_PAGE_DOWN":a=Math.min(s,r.scrollOffset+i);break;case "HELP_TOP":a=0;break;case "HELP_BOTTOM":a=s;break}return [{...t,screenState:{screen:"help",model:{scrollOffset:a}},needsRender:true},c.none()]}case "workspace":{if(!lu(e))return [t,c.none()];let[r,s]=Qo(e,o.model);return [{...t,screenState:{screen:"workspace",model:r},needsRender:true},s]}case "problem":{if(!au(e))return [t,c.none()];let[r,s]=ro(e,o.model,n,t.terminalWidth);return [{...t,screenState:{...o,model:r},needsRender:true},s]}case "changelog":{if(!cu(e))return [t,c.none()];let[r,s]=Xo(e,o.model,n,t.terminalWidth);return [{...t,screenState:{screen:"changelog",model:r},needsRender:true},s]}case "login":{if(!uu(e))return [t,c.none()];let[r,s]=en(e,o.model);return [{...t,screenState:{screen:"login",model:r},needsRender:true},s]}default:return [t,c.none()]}}function Jc(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model,r=null;if(!r&&n.drawerMode==="note"&&(o.name==="n"||o.name==="escape")&&(r={type:"PROBLEM_CLOSE_NOTE"}),!r&&n.drawerMode==="diff"&&(o.name==="d"||o.name==="escape")&&(r={type:"PROBLEM_CLOSE_DIFF"}),!r){let i=Xc(o.name);i&&(r=i);}!r&&o.name==="tab"&&n.drawerMode!=="none"&&(r={type:"PROBLEM_FOCUS_TOGGLE"}),!r&&n.drawerMode!=="none"&&o.name==="escape"&&(r={type:"PROBLEM_CLOSE_RESULT"}),!r&&n.drawerMode==="hint"&&(o.name==="left"?r={type:"PROBLEM_PREV_HINT"}:o.name==="right"&&(r={type:"PROBLEM_NEXT_HINT"})),!r&&n.drawerMode!=="none"&&n.focusRegion==="drawer"&&(n.drawerMode==="snapshots"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_SNAPSHOT_DOWN"}:o.name==="k"||o.name==="up"?r={type:"PROBLEM_SNAPSHOT_UP"}:o.name==="d"?r={type:"PROBLEM_DIFF_SNAPSHOT"}:o.name==="r"&&(r={type:"PROBLEM_RESTORE_SNAPSHOT"}):n.drawerMode==="hint"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_HINT_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_HINT_SCROLL_UP"}):n.drawerMode==="submissions"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_SUBMISSIONS_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_SUBMISSIONS_SCROLL_UP"}):n.drawerMode==="note"?o.name==="j"||o.name==="down"?r={type:"PROBLEM_NOTE_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_NOTE_SCROLL_UP"}):n.drawerMode==="diff"&&(o.name==="j"||o.name==="down"?r={type:"PROBLEM_DIFF_SCROLL_DOWN"}:(o.name==="k"||o.name==="up")&&(r={type:"PROBLEM_DIFF_SCROLL_UP"})));let s=n.drawerMode==="none"||n.focusRegion==="body";if(!r&&s&&(o.name==="j"||o.name==="down"?r={type:"PROBLEM_SCROLL_DOWN"}:o.name==="k"||o.name==="up"?r={type:"PROBLEM_SCROLL_UP"}:o.name==="pagedown"?r={type:"PROBLEM_PAGE_DOWN"}:o.name==="pageup"?r={type:"PROBLEM_PAGE_UP"}:o.name==="g"?r={type:"PROBLEM_TOP"}:o.name==="G"&&(r={type:"PROBLEM_BOTTOM"})),r){let[i,a]=ro(r,n,e.terminalHeight,e.terminalWidth);return [{...e,screenState:{screen:"problem",model:i},needsRender:true},a]}return [e,c.none()]}function Xc(e){return e==="p"?{type:"PROBLEM_PICK"}:e==="t"?{type:"PROBLEM_TEST"}:e==="s"?{type:"PROBLEM_SUBMIT"}:e==="b"?{type:"PROBLEM_BOOKMARK"}:e==="n"?{type:"PROBLEM_VIEW_NOTE"}:e==="e"?{type:"PROBLEM_NOTES"}:e==="h"?{type:"PROBLEM_TOGGLE_HINT"}:e==="H"||e==="S"?{type:"PROBLEM_SHOW_SUBMISSIONS"}:e==="v"||e==="V"||e==="w"?{type:"PROBLEM_SHOW_SNAPSHOTS"}:null}function Zc(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,{screenState:n}=e;if(n.screen==="timer"){let r=n.model;if(o.name==="space"){let[s,i]=Xt({type:r.status==="running"?"TIMER_PAUSE":"TIMER_START"},r);return [{...e,screenState:{...n,model:s},needsRender:true},i]}if(o.name==="r"){let[s,i]=Xt({type:"TIMER_RESET"},r);return [{...e,screenState:{...n,model:s},needsRender:true},i]}}if(n.screen==="config"){let r=n.model,s=null;if(r.isEditing?o.name==="escape"?s={type:"CONFIG_EDIT_CANCEL"}:o.name==="return"||o.name==="enter"?s={type:"CONFIG_EDIT_SAVE"}:o.name==="backspace"?s={type:"CONFIG_EDIT_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(s={type:"CONFIG_EDIT_INPUT",char:o.sequence}):o.name==="tab"||o.name==="h"||o.name==="l"?s={type:"CONFIG_TOGGLE_FOCUS"}:o.name==="left"?s={type:"CONFIG_FOCUS_LIST"}:o.name==="right"?s={type:"CONFIG_FOCUS_EDITOR"}:o.name==="j"||o.name==="down"?s={type:"CONFIG_OPTION_DOWN"}:o.name==="k"||o.name==="up"?s={type:"CONFIG_OPTION_UP"}:(o.name==="return"||o.name==="enter")&&(s={type:"CONFIG_EDIT_START"}),s){let[i,a]=jo(s,r);return [{...e,screenState:{...n,model:i},needsRender:true},a]}}if(n.screen==="stats"){let r=n.model;if(o.name==="r"||o.name==="R"){let[s,i]=Bo({type:"STATS_REFRESH"},r);return [{...e,screenState:{...n,model:s},needsRender:true},i]}}return [e,c.none()]}function eu(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=null;return o.name==="j"||o.name==="down"?n={type:"HELP_SCROLL_DOWN"}:o.name==="k"||o.name==="up"?n={type:"HELP_SCROLL_UP"}:o.name==="pagedown"?n={type:"HELP_PAGE_DOWN"}:o.name==="pageup"?n={type:"HELP_PAGE_UP"}:o.name==="g"?n={type:"HELP_TOP"}:o.name==="G"&&(n={type:"HELP_BOTTOM"}),n?gi(n,e):[e,c.none()]}function tu(e){return e.type.startsWith("LIST_")}function ou(e){return e.type.startsWith("HOME_")}function nu(e){return e.type.startsWith("TIMER_")}function ru(e){return e.type.startsWith("STATS_")}function su(e){return e.type.startsWith("CONFIG_")}function iu(e){return e.type.startsWith("HELP_")}function au(e){return e.type.startsWith("PROBLEM_")}function lu(e){return e.type.startsWith("WORKSPACE_")}function cu(e){return e.type.startsWith("CHANGELOG_")}function uu(e){return e.type.startsWith("LOGIN_")}function pu(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model,r=null;if(n.showCreateInput?o.name==="escape"?r={type:"WORKSPACE_CREATE_CANCEL"}:o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_CREATE_SUBMIT"}:o.name==="backspace"?r={type:"WORKSPACE_CREATE_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(r={type:"WORKSPACE_CREATE_INPUT",char:o.sequence}):n.showDeleteConfirm?o.name==="y"||o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_DELETE_CONFIRM"}:(o.name==="n"||o.name==="escape")&&(r={type:"WORKSPACE_DELETE_CANCEL"}):n.isEditing?o.name==="escape"?r={type:"WORKSPACE_EDIT_CANCEL"}:o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_EDIT_SAVE"}:o.name==="backspace"?r={type:"WORKSPACE_EDIT_BACKSPACE"}:o.sequence.length===1&&!o.ctrl&&!o.meta&&(r={type:"WORKSPACE_EDIT_INPUT",char:o.sequence}):o.name==="tab"||o.name==="h"||o.name==="l"?r={type:"WORKSPACE_TOGGLE_FOCUS"}:o.name==="left"?r={type:"WORKSPACE_FOCUS_LIST"}:o.name==="right"?r={type:"WORKSPACE_FOCUS_EDITOR"}:n.paneFocus==="list"?o.name==="j"||o.name==="down"?r={type:"WORKSPACE_DOWN"}:o.name==="k"||o.name==="up"?r={type:"WORKSPACE_UP"}:o.name==="return"||o.name==="enter"?r={type:"WORKSPACE_SELECT"}:o.name==="c"?r={type:"WORKSPACE_CREATE_START"}:o.name==="d"&&(r={type:"WORKSPACE_DELETE"}):o.name==="j"||o.name==="down"?r={type:"WORKSPACE_FIELD_DOWN"}:o.name==="k"||o.name==="up"?r={type:"WORKSPACE_FIELD_UP"}:(o.name==="return"||o.name==="enter")&&(r={type:"WORKSPACE_EDIT_START"}),r){let[s,i]=Qo(r,n);return [{...e,screenState:{screen:"workspace",model:s},needsRender:true},i]}return [e,c.none()]}function gu(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t;if(o.name==="k"||o.name==="up")return n(e,{type:"CHANGELOG_SCROLL_UP"});if(o.name==="j"||o.name==="down")return n(e,{type:"CHANGELOG_SCROLL_DOWN"});return [e,c.none()];function n(r,s){let i=r.screenState;if(i.screen!=="changelog")return [r,c.none()];let[a,l]=Xo(s,i.model,r.terminalHeight,r.terminalWidth);return [{...r,screenState:{screen:"changelog",model:a},needsRender:true},l]}}function du(e,t){if(t.type!=="KEY_PRESS")return [e,c.none()];let{key:o}=t,n=e.screenState.model;if(o.ctrl&&o.name==="c")return [e,c.exit()];if(n.step==="instructions"){if(o.name==="return"||o.name==="enter")return r(e,{type:"LOGIN_SUBMIT"});if(o.name==="escape")return [e,c.exit()]}else if(n.step==="input"||n.step==="error"){if(o.name==="escape")return r(e,{type:"LOGIN_BACK"});if(o.name==="tab"||o.name==="down"||o.name==="up")return r(e,{type:"LOGIN_SWITCH_FOCUS"});if(o.name==="return"||o.name==="enter"){if(n.focusedField==="session"){if(n.sessionToken.length>0)return r(e,{type:"LOGIN_SET_FOCUS",field:"csrf"})}else if(n.csrfToken.length>0&&n.sessionToken.length>0)return r(e,{type:"LOGIN_SUBMIT"})}else if(o.name==="backspace"){if(n.focusedField==="session"){if(n.sessionToken.length>0)return r(e,{type:"LOGIN_SESSION_INPUT",value:n.sessionToken.slice(0,-1)})}else if(n.csrfToken.length>0)return r(e,{type:"LOGIN_CSRF_INPUT",value:n.csrfToken.slice(0,-1)})}else if(!o.ctrl&&!o.meta)return n.focusedField==="session"?r(e,{type:"LOGIN_SESSION_INPUT",value:n.sessionToken+o.sequence}):r(e,{type:"LOGIN_CSRF_INPUT",value:n.csrfToken+o.sequence})}return [e,c.none()];function r(s,i){let[a,l]=en(i,s.screenState.model);return [{...s,screenState:{screen:"login",model:a},needsRender:true},l]}}var yu="https://raw.githubusercontent.com/night-slayer18/leetcode-cli/main/docs/releases.md",Pe=null;function an(e,t){switch(e.type){case "CMD_NONE":return;case "CMD_BATCH":for(let o of e.commands)an(o,t);return;case "CMD_FETCH_STATS":Cu(t);return;case "CMD_CHECK_AUTH":hu(t);return;case "CMD_FETCH_PROBLEMS":Su(e.filters,e.append,t);return;case "CMD_FETCH_PROBLEM_DETAIL":bu(e.slug,t);return;case "CMD_START_TIMER_SUBSCRIPTION":Pe&&clearInterval(Pe),Pe=setInterval(()=>{t({type:"TIMER_TICK"});},e.intervalMs);return;case "CMD_STOP_TIMER_SUBSCRIPTION":Pe&&(clearInterval(Pe),Pe=null);return;case "CMD_PICK_PROBLEM":wu(e.slug,t);return;case "CMD_TEST_SOLUTION":Mu(e.slug,t);return;case "CMD_SUBMIT_SOLUTION":_u(e.slug,t);return;case "CMD_SAVE_CONFIG":Eu(e.key,e.value);return;case "CMD_EXIT":ao();return;case "CMD_FETCH_DAILY":ku(t);return;case "CMD_FETCH_RANDOM":Tu(t);return;case "CMD_FETCH_SUBMISSIONS":Pu(e.slug,t);return;case "CMD_LOAD_NOTE":Lu(e.problemId,t);return;case "CMD_DIFF_SNAPSHOT":xu(e.slug,e.snapshotId,t);return;case "CMD_RESTORE_SNAPSHOT":Ru(e.slug,e.snapshotId,t);return;case "CMD_FETCH_CHANGELOG":Ou(t);return;case "CMD_LOGOUT":$u(t);return;case "CMD_LOGIN":vu(e.session,e.csrf,t);return;default:return}}async function hu(e){let t=ae.get();if(!t){e({type:"AUTH_CHECK_COMPLETE",user:null});return}S.setCredentials(t);try{let o=await S.checkAuth();o.isSignedIn&&o.username?e({type:"AUTH_CHECK_COMPLETE",user:{username:o.username}}):e({type:"AUTH_CHECK_COMPLETE",user:null});}catch{e({type:"AUTH_CHECK_COMPLETE",user:null});}}async function Su(e,t,o){o({type:"LIST_FETCH_START"});try{let n=ae.get();n&&S.setCredentials(n);let r=await S.getProblems(e),s=r.problems.map(i=>({questionId:i.questionId,questionFrontendId:i.questionFrontendId,title:i.title,titleSlug:i.titleSlug,difficulty:i.difficulty,isPaidOnly:i.isPaidOnly,acRate:i.acRate,topicTags:i.topicTags,status:i.status}));o({type:"LIST_FETCH_SUCCESS",problems:s,total:r.total,append:t});}catch(n){o({type:"LIST_FETCH_ERROR",error:n instanceof Error?n.message:"Failed to fetch problems"});}}async function bu(e,t){try{let o=await S.getProblem(e);t({type:"PROBLEM_DETAIL_LOADED",detail:o});}catch(o){t({type:"PROBLEM_DETAIL_ERROR",error:o instanceof Error?o.message:"Failed to fetch problem"});}}async function Cu(e){e({type:"STATS_FETCH_START"});try{let t=ae.get();if(!t)throw new Error("You must be logged in to view stats");S.setCredentials(t);let o=await S.checkAuth();if(!o.isSignedIn||!o.username)throw new Error("Not logged in");let[n,r,s]=await Promise.all([S.getUserProfile(o.username),S.getSkillStats(o.username),S.getDailyChallenge()]);e({type:"STATS_FETCH_SUCCESS",stats:n,skills:r,daily:s});}catch(t){e({type:"STATS_FETCH_ERROR",error:t instanceof Error?t.message:"Failed to fetch statistics"});}}function Eu(e,t){switch(e){case "language":_.setLanguage(t);break;case "editor":_.setEditor(t);break;case "workdir":_.setWorkDir(t);break;case "repo":_.setRepo(t);break}}async function ln(e){let t=_.getLanguage(),o=await S.getProblem(e),n=Bt(t,o.codeSnippets),r=Ye(o.questionFrontendId,o.titleSlug,t),s=_.getWorkDir(),i=o.difficulty,a=o.topicTags.length>0?o.topicTags[0].name.replace(/[^\w\s-]/g,"").trim():"Uncategorized",l=$e.join(s,i,a,r);try{return {code:await Oe.readFile(l,"utf-8"),lang:n,questionId:o.questionId}}catch{let g=$e.join(s,r);try{return {code:await Oe.readFile(g,"utf-8"),lang:n,questionId:o.questionId}}catch{throw new Error(`Could not read solution file at ${l}. Make sure you have picked the problem first.`)}}}async function wu(e,t){try{let o=await S.getProblem(e),n=_.getLanguage(),r=Be(n);if(!r)throw new Error(`Unsupported language: ${n}`);let s=o.codeSnippets??[],i=Wt(s,r);if(s.length>0&&!i)throw new Error(`No code template available for ${r}`);let a=i?i.code:jt(r,o.title),l=Gt(o.questionFrontendId,o.titleSlug,o.title,o.difficulty,a,r,o.content??void 0),u=_.getWorkDir(),g=o.difficulty,d=o.topicTags.length>0?o.topicTags[0].name.replace(/[^\w\s-]/g,"").trim():"Uncategorized",m=$e.join(u,g,d);try{await Oe.mkdir(m,{recursive:!0});}catch{}let b=Ye(o.questionFrontendId,o.titleSlug,r),M=$e.join(m,b);existsSync(M)?t({type:"PROBLEM_ACTION_SUCCESS",message:`File ready: ${b}`}):(await Oe.writeFile(M,l,"utf-8"),t({type:"PROBLEM_ACTION_SUCCESS",message:`Created ${b}`}));}catch(o){t({type:"PROBLEM_ACTION_ERROR",error:o instanceof Error?o.message:"Failed to pick problem"});}}async function Mu(e,t){try{let{code:o,lang:n}=await ln(e),r=await S.getProblem(e),s=await S.testSolution(e,o,n,r.exampleTestcases,r.questionId);t({type:"PROBLEM_TEST_RESULT",result:s});}catch(o){t({type:"PROBLEM_ACTION_ERROR",error:o instanceof Error?o.message:"Test failed"});}}async function _u(e,t){try{let{code:o,lang:n}=await ln(e),r=await S.getProblem(e),s=await S.submitSolution(e,o,n,r.questionId);t({type:"PROBLEM_SUBMIT_RESULT",result:s});}catch(o){t({type:"PROBLEM_ACTION_ERROR",error:o instanceof Error?o.message:"Submit failed"});}}async function ku(e){try{let t=await S.getDailyChallenge();if(t&&t.question&&t.question.titleSlug)e({type:"FETCH_DAILY_SUCCESS",slug:t.question.titleSlug});else throw new Error("No daily challenge found")}catch(t){e({type:"GLOBAL_ERROR",error:t instanceof Error?t.message:"Failed to fetch daily challenge"});}}async function Tu(e){try{let t=await S.getRandomProblem();if(t)e({type:"FETCH_RANDOM_SUCCESS",slug:t});else throw new Error("No random problem found")}catch(t){e({type:"GLOBAL_ERROR",error:t instanceof Error?t.message:"Failed to fetch random problem"});}}async function Lu(e,t){try{let o=$e.join(_.getWorkDir(),".notes"),n=$e.join(o,`${e}.md`);if(existsSync(n)){let r=await Oe.readFile(n,"utf-8");t({type:"PROBLEM_NOTE_LOADED",content:r});}else t({type:"PROBLEM_NOTE_LOADED",content:'No notes found. Press "n" again to create/edit.'});}catch{t({type:"PROBLEM_ACTION_ERROR",error:"Failed to load note"});}}async function xu(e,t,o){try{let{code:n}=await ln(e),s=(await S.getProblem(e)).questionFrontendId,i=J.get(s,t);if(!i)throw new Error("Snapshot not found");let a=J.getCode(s,i),l=diffLines(n,a),u="";l.forEach(g=>{let d=g.added?"[green]":g.removed?"[red]":"[grey]",m=g.added?"+ ":g.removed?"- ":" ";g.value.split(`
|
|
271
271
|
`).forEach(b=>{b&&(u+=`${d}${m}${b}
|
|
272
272
|
`);});}),o({type:"PROBLEM_DIFF_LOADED",content:u});}catch(n){o({type:"PROBLEM_ACTION_ERROR",error:n instanceof Error?n.message:"Diff failed"});}}async function Ru(e,t,o){try{let n=await S.getProblem(e),r=n.questionFrontendId,s=J.get(r,t);if(!s)throw new Error("Snapshot not found");let i=J.getCode(r,s),a=_.getLanguage(),l=Ye(n.questionFrontendId,n.titleSlug,s.language||a),u=_.getWorkDir(),g=n.difficulty,d=n.topicTags.length>0?n.topicTags[0].name.replace(/[^\w\s-]/g,"").trim():"Uncategorized",m=$e.join(u,g,d),b=$e.join(m,l);await Oe.writeFile(b,i,"utf-8"),o({type:"PROBLEM_ACTION_SUCCESS",message:`Restored snapshot '${s.name}'`});}catch{o({type:"PROBLEM_ACTION_ERROR",error:"Restore failed"});}}async function Pu(e,t){try{let o=await S.getSubmissionList(e,20);t({type:"PROBLEM_SUBMISSIONS_LOADED",submissions:o});}catch(o){t({type:"PROBLEM_SUBMISSIONS_ERROR",error:o instanceof Error?o.message:"Failed to fetch submissions"});}}async function Ou(e){e({type:"CHANGELOG_FETCH_START"});try{let t=await xi(yu).text();e({type:"CHANGELOG_FETCH_SUCCESS",content:t});}catch(t){e({type:"CHANGELOG_FETCH_ERROR",error:t.message||"Failed to fetch changelog"});}}function fi(){Pe&&(clearInterval(Pe),Pe=null);}function $u(e){ae.clear(),e({type:"AUTH_CHECK_COMPLETE",user:null});}async function vu(e,t,o){let n={session:e,csrfToken:t};S.setCredentials(n);try{let r=await S.checkAuth();r.isSignedIn&&r.username?(ae.set(n),o({type:"LOGIN_SUCCESS",username:r.username}),setTimeout(()=>{o({type:"AUTH_CHECK_COMPLETE",user:{username:r.username}});},1e3)):o({type:"LOGIN_ERROR",error:"Invalid credentials. Please check your session cookies."});}catch(r){o({type:"LOGIN_ERROR",error:r instanceof Error?r.message:"Login failed"});}}var mi={"\x1B[A":"up","\x1B[B":"down","\x1B[C":"right","\x1B[D":"left","\x1B[5~":"pageup","\x1B[6~":"pagedown","\x1B[H":"home","\x1B[F":"end","\x1B[2~":"insert","\x1B[3~":"delete","\x1B":"escape","\r":"return","\n":"return","\x7F":"backspace","\b":"backspace"," ":"space"," ":"tab"};function yi(e){let t=Buffer.isBuffer(e)?e:Buffer.from(e),o=t.toString(),n=t.length===1&&t[0]<27,r=t.length===2&&t[0]===27,s;mi[o]?s=mi[o]:n&&t.length===1?s=String.fromCharCode(t[0]+96):r&&t.length===2?s=String.fromCharCode(t[1]):s=o;let i=/^[A-Z]$/.test(s);return {name:s,sequence:o,ctrl:n,meta:r,shift:i}}var Au="\x1B[?1049h",Du="\x1B[?1049l",Iu="\x1B[?25l",Nu="\x1B[?25h";function cn(){process.stdout.write(Au),process.stdout.write(Iu);}function un(){process.stdout.write(Nu),process.stdout.write(Du),process.stdout.write("\x1B[0m");}function pn(){process.stdin.isTTY&&process.stdin.setRawMode(true),process.stdin.resume(),process.stdin.setEncoding("utf8");}function gn(){process.stdin.isTTY&&process.stdin.setRawMode(false);}var ke,gt=false,Ge=true,dn=null,pt=false,kt=null,Tt=null,Lt=null;function ct(e){if(!gt)return;let t=ke.screenState.screen,[o,n]=ui(e,ke);ke=o,t!==o.screenState.screen&&(Ge=true,co="",Fe=[]),n.type!=="CMD_NONE"&&(n.type==="CMD_OPEN_EDITOR"?(Hu(),Kt(n.id,"edit",{silent:true}).catch(r=>{ct({type:"GLOBAL_ERROR",error:r instanceof Error?r.message:"Failed to open editor"});}).finally(()=>{Uu(),Ge=true,Fe=[],ke={...ke,needsRender:true},ct({type:"PROBLEM_VIEW_NOTE"}),hi();})):an(n,ct)),ke.needsRender&&(hi(),ke={...ke,needsRender:false});}var co="",Fe=[],lt="\x1B[0m";function hi(){if(!gt)return;let e=ai(ke);if(e===co)return;co=e;let t=e.split(`
|
|
273
|
-
`);if(Ge||Fe.length===0){stdout.write(lt),stdout.write(lo.cursorTo(0,0)),stdout.write(lo.eraseScreen),stdout.write(e),stdout.write(lt),Ge=false,Fe=t;return}let o=Math.max(Fe.length,t.length),n=[];for(let r=0;r<o;r++){let s=Fe[r]??"",i=t[r]??"";s!==i&&(n.push(lt),n.push(lo.cursorTo(0,r)),n.push(lo.eraseLine),i.length>0&&n.push(i),n.push(lt));}n.length>0&&stdout.write(n.join("")),Fe=t;}function Si(e){if(pt||!gt)return;let t=yi(e);ct({type:"KEY_PRESS",key:t});}var fn=false;function Fu(){fn||(fn=true,gt=false,pt=false,stdin.off("data",Si),kt&&(stdout.off("resize",kt),kt=null),Tt&&(process.off("SIGINT",Tt),Tt=null),Lt&&(process.off("SIGTERM",Lt),Lt=null),fi(),stdout.write(lt),un(),uo.show(),gn(),stdin.pause(),dn?.(),dn=null);}function Hu(){pt||(pt=true,stdout.write(lt),un(),uo.show(),gn(),stdin.pause());}function Uu(){!gt||!pt||(pt=false,cn(),uo.hide(),pn(),stdin.resume(),Ge=true);}async function bi(e){if(!stdin.isTTY||!stdout.isTTY)throw new Error("TUI requires an interactive terminal");let t=new Promise(o=>{dn=o;});return ke=e,gt=true,fn=false,Ge=true,co="",Fe=[],cn(),uo.hide(),pn(),stdin.on("data",Si),kt=()=>{ct({type:"RESIZE",width:stdout.columns||80,height:stdout.rows||24}),Ge=true;},stdout.on("resize",kt),ct({type:"INIT"}),Tt=()=>{ao();},Lt=()=>{ao();},process.on("SIGINT",Tt),process.on("SIGTERM",Lt),await t}function ao(){Fu();}async function Ci(e={}){let{username:t}=e,o=Ts(t);await bi(o);}var N=new Command;N.configureHelp({sortSubcommands:true,subcommandTerm:e=>{let t=e.name(),o=e.alias(),n=o?`${t}|${o}`:t;return f.cyan(n.padEnd(16))},subcommandDescription:e=>f.white(e.description()),optionTerm:e=>f.yellow(e.flags),optionDescription:e=>f.white(e.description)});N.name("leetcode").usage("[command] [options]").description(f.bold.cyan("\u{1F525} A modern LeetCode CLI built with TypeScript")).version("2.4.
|
|
273
|
+
`);if(Ge||Fe.length===0){stdout.write(lt),stdout.write(lo.cursorTo(0,0)),stdout.write(lo.eraseScreen),stdout.write(e),stdout.write(lt),Ge=false,Fe=t;return}let o=Math.max(Fe.length,t.length),n=[];for(let r=0;r<o;r++){let s=Fe[r]??"",i=t[r]??"";s!==i&&(n.push(lt),n.push(lo.cursorTo(0,r)),n.push(lo.eraseLine),i.length>0&&n.push(i),n.push(lt));}n.length>0&&stdout.write(n.join("")),Fe=t;}function Si(e){if(pt||!gt)return;let t=yi(e);ct({type:"KEY_PRESS",key:t});}var fn=false;function Fu(){fn||(fn=true,gt=false,pt=false,stdin.off("data",Si),kt&&(stdout.off("resize",kt),kt=null),Tt&&(process.off("SIGINT",Tt),Tt=null),Lt&&(process.off("SIGTERM",Lt),Lt=null),fi(),stdout.write(lt),un(),uo.show(),gn(),stdin.pause(),dn?.(),dn=null);}function Hu(){pt||(pt=true,stdout.write(lt),un(),uo.show(),gn(),stdin.pause());}function Uu(){!gt||!pt||(pt=false,cn(),uo.hide(),pn(),stdin.resume(),Ge=true);}async function bi(e){if(!stdin.isTTY||!stdout.isTTY)throw new Error("TUI requires an interactive terminal");let t=new Promise(o=>{dn=o;});return ke=e,gt=true,fn=false,Ge=true,co="",Fe=[],cn(),uo.hide(),pn(),stdin.on("data",Si),kt=()=>{ct({type:"RESIZE",width:stdout.columns||80,height:stdout.rows||24}),Ge=true;},stdout.on("resize",kt),ct({type:"INIT"}),Tt=()=>{ao();},Lt=()=>{ao();},process.on("SIGINT",Tt),process.on("SIGTERM",Lt),await t}function ao(){Fu();}async function Ci(e={}){let{username:t}=e,o=Ts(t);await bi(o);}var N=new Command;N.configureHelp({sortSubcommands:true,subcommandTerm:e=>{let t=e.name(),o=e.alias(),n=o?`${t}|${o}`:t;return f.cyan(n.padEnd(16))},subcommandDescription:e=>f.white(e.description()),optionTerm:e=>f.yellow(e.flags),optionDescription:e=>f.white(e.description)});N.name("leetcode").usage("[command] [options]").description(f.bold.cyan("\u{1F525} A modern LeetCode CLI built with TypeScript")).version("2.4.1","-v, --version","Output the version number").helpOption("-h, --help","Display help for command").addHelpText("after",`
|
|
274
274
|
${f.yellow("Examples:")}
|
|
275
275
|
${f.cyan("$ leetcode login")} Login to LeetCode
|
|
276
276
|
${f.cyan("$ leetcode list -d easy")} List easy problems
|