leetcode-practice
Advanced tools
Comparing version
@@ -25,3 +25,3 @@ #! /usr/bin/env node | ||
`;var mt="Made with \u2764\uFE0F by EternalHeart team.";var ut="\u2615\uFE0F Enjoy your time on coding.";function pt(t,e){return t.length>0||e.identity?"identity":e.random?"random":"today"}function ft(t,e,n){switch(t){case"identity":return e.length?e.join(" "):n?.identity;case"random":case"today":default:return null}}function dt(t){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionTranslations($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {questionId\\n translatedTitle\\n translatedContent\\n }\\n}\\n ","variables":{"titleSlug":"${t}"},"operationName":"questionTranslations"}`,method:"POST"}}import J from"node:path";import{readdirSync as ie,rmSync as se}from"node:fs";import ht from"realm";import gt from"realm";var $=class extends gt.Object{static schema={name:"Question",properties:{_id:{type:"objectId",default:()=>new gt.BSON.ObjectId},id:"string",mode:"string",slug:"string",title:"string",detail:"string",lang:"string",code:"string?",url:"string?",date:"string?",timestamp:{type:"date",default:()=>new Date}},primaryKey:"_id"}};import v from"node:path";import{fileURLToPath as ee}from"node:url";import{dirname as ne}from"node:path";var oe=ee(import.meta.url),P=ne(oe);function Q(){let t=import.meta.url;return/etc\/checkEnv.js$/im.test(t)?"project":"cli"}var g=Q()==="project"?v.dirname(v.dirname(v.dirname(P))):v.dirname(P);import re from"realm";var C=class extends re.Object{static schema={name:"Store",properties:{key:"string",value:"string",timestamp:{type:"date",default:()=>new Date}},primaryKey:"key"}};var G=J.resolve(g,"resources/stores/store.realm");async function ae(){let t;try{t=await ht.open({schema:[$,C],path:G})}catch(e){e?.message?.includes("Migration")&&await ce(),t=await ht.open({schema:[$,C],path:G})}return t}async function S(t){let e=await ae(),n=await t(e);return e.close(),n}function ce(){return new Promise(t=>{let e=J.dirname(G);ie(e).forEach(o=>{se(J.resolve(e,o),{recursive:!0,force:!0})}),t()})}function yt(t){return t===null?"null":typeof t}function le(t){let e=yt(t),n=e==="object"?JSON.stringify(t):t.toString();return`$<${e}>$`+n}function me(t){let e=/^\$<.+>\$/im;if(!e.test(t))return null;let n=t.match(e)[0].replace(/[$<>]+/g,""),o=t.replace(e,"");switch(n){case"object":return JSON.parse(o);case"bigint":return BigInt(o);case"boolean":return o==="true";case"number":return Number(o);case"function":return()=>o;case"string":default:return o}}function xt(t,e){return S(n=>{let o;return n.write(()=>{let r=n.objects("Store").filtered(`key = "${t}"`)?.[0];r&&n.delete(r),o=n.create("Store",{key:t,value:le(e)})}),o.toJSON()})}function T(t){return S(e=>{let o=e.objects("Store").filtered("key=$0",t)?.[0]?.toJSON();return me(o?.value)})}var p="javascript";var q="leetcode-practice",M="EternalHeartTeam",wt="https://registry.npmjs.org/",_t="https://raw.githubusercontent.com/";var $t="https://gitee.com/";var V=[{id:0,name:"cpp",extension:".cpp",blockComment:`/* | ||
`;var mt="Made with \u2764\uFE0F by EternalHeart team.";var ut="\u2615\uFE0F Enjoy your time on coding.";function pt(t,e){return t.length>0||e.identity?"identity":e.random?"random":"today"}function ft(t,e,n){switch(t){case"identity":return e.length?e.join(" "):n?.identity;case"random":case"today":default:return null}}function dt(t){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionTranslations($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {questionId\\n translatedTitle\\n translatedContent\\n }\\n}\\n ","variables":{"titleSlug":"${t}"},"operationName":"questionTranslations"}`,method:"POST"}}import J from"node:path";import{readdirSync as ie,rmSync as se}from"node:fs";import ht from"realm";import gt from"realm";var C=class extends gt.Object{static schema={name:"Question",properties:{_id:{type:"objectId",default:()=>new gt.BSON.ObjectId},id:"string",mode:"string",slug:"string",title:"string",detail:"string",lang:"string",code:"string?",url:"string?",date:"string?",timestamp:{type:"date",default:()=>new Date}},primaryKey:"_id"}};import v from"node:path";import{fileURLToPath as ee}from"node:url";import{dirname as ne}from"node:path";var oe=ee(import.meta.url),B=ne(oe);function g(){let t=import.meta.url;return/etc\/checkEnv.js$/im.test(t)?"project":"cli"}var h=g()==="project"?v.dirname(v.dirname(v.dirname(B))):v.dirname(B);import re from"realm";var S=class extends re.Object{static schema={name:"Store",properties:{key:"string",value:"string",timestamp:{type:"date",default:()=>new Date}},primaryKey:"key"}};var G=J.resolve(h,"resources/stores/store.realm");async function ae(){let t;try{t=await ht.open({schema:[C,S],path:G})}catch(e){e?.message?.includes("Migration")&&await ce(),t=await ht.open({schema:[C,S],path:G})}return t}async function b(t){let e=await ae(),n=await t(e);return e.close(),n}function ce(){return new Promise(t=>{let e=J.dirname(G);ie(e).forEach(o=>{se(J.resolve(e,o),{recursive:!0,force:!0})}),t()})}function yt(t){return t===null?"null":typeof t}function le(t){let e=yt(t),n=e==="object"?JSON.stringify(t):t.toString();return`$<${e}>$`+n}function me(t){let e=/^\$<.+>\$/im;if(!e.test(t))return null;let n=t.match(e)[0].replace(/[$<>]+/g,""),o=t.replace(e,"");switch(n){case"object":return JSON.parse(o);case"bigint":return BigInt(o);case"boolean":return o==="true";case"number":return Number(o);case"function":return()=>o;case"string":default:return o}}function xt(t,e){return b(n=>{let o;return n.write(()=>{let r=n.objects("Store").filtered(`key = "${t}"`)?.[0];r&&n.delete(r),o=n.create("Store",{key:t,value:le(e)})}),o.toJSON()})}function T(t){return b(e=>{let o=e.objects("Store").filtered("key=$0",t)?.[0]?.toJSON();return me(o?.value)})}var p="javascript";var q="leetcode-practice",M="EternalHeartTeam",wt="https://registry.npmjs.org/",_t="https://raw.githubusercontent.com/";var $t="https://gitee.com/";var V=[{id:0,name:"cpp",extension:".cpp",blockComment:`/* | ||
* | ||
@@ -84,5 +84,5 @@ */`,lineComment:"//"},{id:1,name:"java",extension:".java",blockComment:`/* | ||
* | ||
*/`,lineComment:"--"}];async function Ct(t=p){await xt("language",t)}async function j(){return await T("language")??p}function z(t){return V.find(e=>e.name.toLowerCase()===t.toLowerCase())}function L(t=p){return z(t)?.extension}function ue(t=p){let e=z(t);return e.lineComment!==""?e.lineComment:null}function pe(t=p){return z(t).blockComment}function h(t=p,e=""){let n=ue(t);return n!==null?e.split(` | ||
*/`,lineComment:"--"}];async function Ct(t=p){await xt("language",t)}async function j(){return await T("language")??p}function z(t){return V.find(e=>e.name.toLowerCase()===t.toLowerCase())}function L(t=p){return z(t)?.extension}function ue(t=p){let e=z(t);return e.lineComment!==""?e.lineComment:null}function pe(t=p){return z(t).blockComment}function y(t=p,e=""){let n=ue(t);return n!==null?e.split(` | ||
`).reduce((r,i)=>r+=`${n} ${i} | ||
`,""):y(t,e)}function y(t=p,e=""){let o=pe(t).split(` | ||
`,""):x(t,e)}function x(t=p,e=""){let o=pe(t).split(` | ||
`),r=e.split(` | ||
@@ -92,4 +92,4 @@ `);switch(o.length){case 3:{let i=o[0],s=o[2],c=o[1],u=r.reduce((l,m)=>l+=`${c} ${m} | ||
${u}${s} | ||
`}default:return e}}async function x(t,e){return await fetch(t,e).then(n=>n.json())}function w(t,...e){let n=t.replace(/\/$/,""),o=e.join("/").replace(/(\/){1,3}/gim,"/").replace(/^\//,"");return[n,o].join("/")}async function f(t,e="https://leetcode.cn/"){return await x(w(e,"graphql"),t)}function St(t){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionEditorData($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {\\n questionId\\n questionFrontendId\\n codeSnippets {\\n lang\\n langSlug\\n code\\n }\\n envInfo\\n enableRunCode\\n hasFrontendPreview\\n frontendPreviews\\n }\\n}\\n ","variables":{"titleSlug":"${t}"},"operationName":"questionEditorData"}`,method:"POST"}}async function Z(t){return(await f(St(t))).data.question?.codeSnippets}async function bt(t,e){return(await Z(t))?.find(o=>o.langSlug===e)?.code}async function kt(t){return(await Z(t)).map(n=>n?.langSlug)}function Qt(t,e){return e?`${h(t,"@QUESTION_START")+e} | ||
${h(t,"@QUESTION_END")}`:h(t,`!important: \u6B64\u9898\u76EE\u6CA1\u6709\u5F53\u524D\u8BED\u8A00[${t}]\u7684\u4EE3\u7801\u6A21\u677F!`)}async function _(t,e={}){let o=(await f(dt(t))).data.question,r=await j(),i=await bt(t,r);return{id:o?.questionId,slug:t,title:o?.translatedTitle,detail:o?.translatedContent,lang:r,code:i,...e}}function vt(){return{headers:{"content-type":"application/json"},body:'{"query":"\\n query questionOfToday {\\n todayRecord {\\n date\\n userStatus\\n question {\\n questionId\\n frontendQuestionId: questionFrontendId\\n difficulty\\n title\\n titleCn: translatedTitle\\n titleSlug\\n paidOnly: isPaidOnly\\n freqBar\\n isFavor\\n acRate\\n status\\n solutionNum\\n hasVideoSolution\\n topicTags {\\n name\\n nameTranslated: translatedName\\n id\\n }\\n extra {\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n lastSubmission {\\n id\\n }\\n }\\n}\\n ","variables":{},"operationName":"questionOfToday"}',method:"POST"}}async function E(){let t=await f(vt()),e=t.data.todayRecord[0].question,{date:n}=t.data.todayRecord[0];return await _(e.titleSlug,{date:n})}function I(t){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\n problemsetQuestionList(\\n categorySlug: $categorySlug\\n limit: $limit\\n skip: $skip\\n filters: $filters\\n ) {\\n hasMore\\n total\\n questions {\\n acRate\\n difficulty\\n freqBar\\n frontendQuestionId\\n isFavor\\n paidOnly\\n solutionNum\\n status\\n title\\n titleCn\\n titleSlug\\n topicTags {\\n name\\n nameTranslated\\n id\\n slug\\n }\\n extra {\\n hasVideoSolution\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n }\\n}\\n ","variables":{"categorySlug":"all-code-essentials","skip":0,"limit":50,"filters":{"searchKeywords":"${t}"}},"operationName":"problemsetQuestionList"}`,method:"POST"}}import{readdirSync as de}from"node:fs";function H(t=0,e=50){return{headers:{"content-type":"application/json"},body:`{"query":"query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\nproblemsetQuestionList(\\ncategorySlug: $categorySlug\\nlimit: $limit\\nskip: $skip\\nfilters: $filters) {\\ntotal\\nquestions {\\n frontendQuestionId\\n title\\n titleCn\\n titleSlug\\n}\\n}\\n}","variables":{"categorySlug":"all-code-essentials","skip":${t},"limit":${e},"filters":{}},"operationName":"problemsetQuestionList"}`,method:"POST"}}import K from"chalk";var W=class{constructor(e){}info(e,...n){console.log(K.blue(e,...n))}warn(e,...n){console.log(K.yellow(e,...n))}error(e,...n){console.log(K.red(e,...n))}},{env:fe=null}=await T("config")??{},a=new W(fe);async function ge(t,e=50){return(await f(H(t,e)))?.data?.problemsetQuestionList?.questions?.map(o=>o.frontendQuestionId)}function he(){return f(H(0)).then(t=>t?.data?.problemsetQuestionList?.total)}async function jt(){let t=s=>s.replace(/\.[a-zA-Z0-9-]+$/i,""),e=async(s,c)=>{let u=s[Tt(s.length)],m=(await ge(u)).filter(d=>!c.includes(d));return u===void 0?null:m.length?m[Tt(m.length)]:(s.splice(s.findIndex(d=>d===u)),await e(s,c))},n=de(process.cwd()).map(t),o=await he(),r=Array.from({length:Math.ceil(o/50)}).map((s,c)=>c),i=await e(r,n);if(i===null)a.info("\u606D\u559C\uFF01\u4F60\u5DF2\u7ECF\u5237\u5B8C\u4E86\u6240\u6709\u7684\u9898\u76EE\uFF01");else return i}function Tt(t=10){return Math.trunc(Math.random()*t%t)}async function N(){let t=await jt(),n=(await f(I(t.toString()))).data.problemsetQuestionList.questions.find(r=>r.frontendQuestionId===t.toString()).titleSlug;return await _(n)}import et from"node:path";import B from"inquirer";function D(t){return!t||!t?.id?"":`${t.id}.${t.slug}`}async function O(t){let n=(await f(I(t.toString())))?.data?.problemsetQuestionList?.questions?.find(i=>i?.frontendQuestionId===t.toString());if(!n)return{id:null};let o=n.titleSlug;return await _(o,{id:t})}import At from"node:fs";import Ut from"node:path";import we from"node:fs";function b(t){return t.replace(/<[^>]*>/g,"").replaceAll("\xA0"," ").replaceAll(" "," ").replaceAll("<","<").replaceAll(">",">").replaceAll("`","")}function X(t,e="param"){let o={param:/@param\s+{\s*([^}\s]+)\s*}/g,return:/@return\s+{\s*([^}\s]+)\s*}/g}[e],r=[],i;for(;(i=o.exec(t))!==null;)r.push(i[1]);return r}function ye(t,e,n,o){return`showLogs( | ||
`}default:return e}}async function w(t,e){return await fetch(t,e).then(n=>n.json())}function _(t,...e){let n=t.replace(/\/$/,""),o=e.join("/").replace(/(\/){1,3}/gim,"/").replace(/^\//,"");return[n,o].join("/")}async function f(t,e="https://leetcode.cn/"){return await w(_(e,"graphql"),t)}function St(t){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionEditorData($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {\\n questionId\\n questionFrontendId\\n codeSnippets {\\n lang\\n langSlug\\n code\\n }\\n envInfo\\n enableRunCode\\n hasFrontendPreview\\n frontendPreviews\\n }\\n}\\n ","variables":{"titleSlug":"${t}"},"operationName":"questionEditorData"}`,method:"POST"}}async function Z(t){return(await f(St(t))).data.question?.codeSnippets}async function bt(t,e){return(await Z(t))?.find(o=>o.langSlug===e)?.code}async function kt(t){return(await Z(t)).map(n=>n?.langSlug)}function Qt(t,e){return e?`${y(t,"@QUESTION_START")+e} | ||
${y(t,"@QUESTION_END")}`:y(t,`!important: \u6B64\u9898\u76EE\u6CA1\u6709\u5F53\u524D\u8BED\u8A00[${t}]\u7684\u4EE3\u7801\u6A21\u677F!`)}async function $(t,e={}){let o=(await f(dt(t))).data.question,r=await j(),i=await bt(t,r);return{id:o?.questionId,slug:t,title:o?.translatedTitle,detail:o?.translatedContent,lang:r,code:i,...e}}function vt(){return{headers:{"content-type":"application/json"},body:'{"query":"\\n query questionOfToday {\\n todayRecord {\\n date\\n userStatus\\n question {\\n questionId\\n frontendQuestionId: questionFrontendId\\n difficulty\\n title\\n titleCn: translatedTitle\\n titleSlug\\n paidOnly: isPaidOnly\\n freqBar\\n isFavor\\n acRate\\n status\\n solutionNum\\n hasVideoSolution\\n topicTags {\\n name\\n nameTranslated: translatedName\\n id\\n }\\n extra {\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n lastSubmission {\\n id\\n }\\n }\\n}\\n ","variables":{},"operationName":"questionOfToday"}',method:"POST"}}async function E(){let t=await f(vt()),e=t.data.todayRecord[0].question,{date:n}=t.data.todayRecord[0];return await $(e.titleSlug,{date:n})}function I(t){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\n problemsetQuestionList(\\n categorySlug: $categorySlug\\n limit: $limit\\n skip: $skip\\n filters: $filters\\n ) {\\n hasMore\\n total\\n questions {\\n acRate\\n difficulty\\n freqBar\\n frontendQuestionId\\n isFavor\\n paidOnly\\n solutionNum\\n status\\n title\\n titleCn\\n titleSlug\\n topicTags {\\n name\\n nameTranslated\\n id\\n slug\\n }\\n extra {\\n hasVideoSolution\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n }\\n}\\n ","variables":{"categorySlug":"all-code-essentials","skip":0,"limit":50,"filters":{"searchKeywords":"${t}"}},"operationName":"problemsetQuestionList"}`,method:"POST"}}import{readdirSync as de}from"node:fs";function H(t=0,e=50){return{headers:{"content-type":"application/json"},body:`{"query":"query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\nproblemsetQuestionList(\\ncategorySlug: $categorySlug\\nlimit: $limit\\nskip: $skip\\nfilters: $filters) {\\ntotal\\nquestions {\\n frontendQuestionId\\n title\\n titleCn\\n titleSlug\\n}\\n}\\n}","variables":{"categorySlug":"all-code-essentials","skip":${t},"limit":${e},"filters":{}},"operationName":"problemsetQuestionList"}`,method:"POST"}}import K from"chalk";var W=class{constructor(e){}info(e,...n){console.log(K.blue(e,...n))}warn(e,...n){console.log(K.yellow(e,...n))}error(e,...n){console.log(K.red(e,...n))}},{env:fe=null}=await T("config")??{},a=new W(fe);async function ge(t,e=50){return(await f(H(t,e)))?.data?.problemsetQuestionList?.questions?.map(o=>o.frontendQuestionId)}function he(){return f(H(0)).then(t=>t?.data?.problemsetQuestionList?.total)}async function jt(){let t=s=>s.replace(/\.[a-zA-Z0-9-]+$/i,""),e=async(s,c)=>{let u=s[Tt(s.length)],m=(await ge(u)).filter(d=>!c.includes(d));return u===void 0?null:m.length?m[Tt(m.length)]:(s.splice(s.findIndex(d=>d===u)),await e(s,c))},n=de(process.cwd()).map(t),o=await he(),r=Array.from({length:Math.ceil(o/50)}).map((s,c)=>c),i=await e(r,n);if(i===null)a.info("\u606D\u559C\uFF01\u4F60\u5DF2\u7ECF\u5237\u5B8C\u4E86\u6240\u6709\u7684\u9898\u76EE\uFF01");else return i}function Tt(t=10){return Math.trunc(Math.random()*t%t)}async function N(){let t=await jt(),n=(await f(I(t.toString()))).data.problemsetQuestionList.questions.find(r=>r.frontendQuestionId===t.toString()).titleSlug;return await $(n)}import et from"node:path";import P from"inquirer";function D(t){return!t||!t?.id?"":`${t.id}.${t.slug}`}async function U(t){let n=(await f(I(t.toString())))?.data?.problemsetQuestionList?.questions?.find(i=>i?.frontendQuestionId===t.toString());if(!n)return{id:null};let o=n.titleSlug;return await $(o,{id:t})}import At from"node:fs";import Rt from"node:path";import we from"node:fs";function k(t){return t.replace(/<[^>]*>/g,"").replaceAll("\xA0"," ").replaceAll(" "," ").replaceAll("<","<").replaceAll(">",">").replaceAll("`","")}function X(t,e="param"){let o={param:/@param\s+{\s*([^}\s]+)\s*}/g,return:/@return\s+{\s*([^}\s]+)\s*}/g}[e],r=[],i;for(;(i=o.exec(t))!==null;)r.push(i[1]);return r}function ye(t,e,n,o){return`showLogs( | ||
${e}, | ||
@@ -104,5 +104,5 @@ { | ||
} | ||
)`}function Lt(t){let e=/(<[a-zA-Z]+>)?输入[:|:](<\/[a-zA-Z]+>)?.+\n/g,n=/(<[a-zA-Z]+>)?输入[:|:]/gm,o=/(<[a-zA-Z]+>)?输出[:|:](<\/[a-zA-Z]+>)?.+\n/g,r=/(<[a-zA-Z]+>)?输出[:|:]/gm,i=/(<\/[a-zA-Z]+>)?/gm,s=t.detail.replaceAll("`",""),c=s.match(e)?.map(l=>`[${b(l?.replace(n,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,""))}]`),u=s.match(o)?.map(l=>b(l?.replace(r,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,"")));if(t.lang===p){let l=t.code?.match(/(var|let|const).+=/g)?.[0]?.replace(/((var|let|const)|=)\s?/gm,"").trim();return l?y(t.lang,"Test Cases")+ye(t,l,c,u):""}else{let l=`\u6682\u65E0\u6CD5\u652F\u6301\u9664JS\u5916\u7684\u8BED\u8A00\u6D4B\u8BD5,\u63D0\u53D6\u7684\u4E00\u4E9B\u5165\u53C2\u548C\u8FD4\u56DE\u503C\u4F9B\u81EA\u884C\u6D4B\u8BD5\uFF0C\u6BCF\u4E00\u4E2Acase\u4E2D\u7684\u7B2C\u4E00\u884C\u4E3A\u5165\u53C2\uFF0C\u7B2C\u4E8C\u884C\u4E3A\u8FD4\u56DE\u503C | ||
)`}function Lt(t){let e=/(<[a-zA-Z]+>)?输入[:|:](<\/[a-zA-Z]+>)?.+\n/g,n=/(<[a-zA-Z]+>)?输入[:|:]/gm,o=/(<[a-zA-Z]+>)?输出[:|:](<\/[a-zA-Z]+>)?.+\n/g,r=/(<[a-zA-Z]+>)?输出[:|:]/gm,i=/(<\/[a-zA-Z]+>)?/gm,s=t.detail.replaceAll("`",""),c=s.match(e)?.map(l=>`[${k(l?.replace(n,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,""))}]`),u=s.match(o)?.map(l=>k(l?.replace(r,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,"")));if(t.lang===p){let l=t.code?.match(/(var|let|const).+=/g)?.[0]?.replace(/((var|let|const)|=)\s?/gm,"").trim();return l?x(t.lang,"Test Cases")+ye(t,l,c,u):""}else{let l=`\u6682\u65E0\u6CD5\u652F\u6301\u9664JS\u5916\u7684\u8BED\u8A00\u6D4B\u8BD5,\u63D0\u53D6\u7684\u4E00\u4E9B\u5165\u53C2\u548C\u8FD4\u56DE\u503C\u4F9B\u81EA\u884C\u6D4B\u8BD5\uFF0C\u6BCF\u4E00\u4E2Acase\u4E2D\u7684\u7B2C\u4E00\u884C\u4E3A\u5165\u53C2\uFF0C\u7B2C\u4E8C\u884C\u4E3A\u8FD4\u56DE\u503C | ||
`;for(let m=0;m<Math.max(c?.length??0,u?.length??0);m++)l+=`case ${m+1}: | ||
@@ -114,3 +114,3 @@ `,l+=`${c?.[m]} | ||
`;return l+=` | ||
`,y(t.lang,l)}}import xe from"node:fs";import Et from"node:path";function It(t,e){let n=Et.dirname(e),o=Et.join(n,"description.md");xe.writeFileSync(o,t)}function R(t){return`${t.id}.${t.title}`}function Nt(t){return`https://leetcode.cn/problems/${t}/`}function Dt(t){let e=Nt(t.slug);return t.lang===p?`console.log('\u70B9\u51FB\u8DF3\u8F6C\u5230\u9898\u76EE\u63D0\u4EA4: ${e}');`:h(t.lang,`\u9898\u76EE\u5730\u5740\uFF1A${e}`)}var Ot=`@Title | ||
`,x(t.lang,l)}}import xe from"node:fs";import Et from"node:path";function It(t,e){let n=Et.dirname(e),o=Et.join(n,"description.md");xe.writeFileSync(o,t)}function O(t){return`${t.id}.${t.title}`}function Nt(t){return`https://leetcode.cn/problems/${t}/`}function Dt(t){let e=Nt(t.slug);return t.lang===p?`console.log('\u70B9\u51FB\u8DF3\u8F6C\u5230\u9898\u76EE\u63D0\u4EA4: ${e}');`:y(t.lang,`\u9898\u76EE\u5730\u5740\uFF1A${e}`)}var Ut=`@Title | ||
@Describe | ||
@@ -122,6 +122,6 @@ @Function | ||
@Console | ||
`;function _e(t){let e=`${R(t)} ${t.date?`[${t.date}]`:""} | ||
`,n=b(t.detail).replace(/\n+/g,` | ||
`),o=t.lang,r=t.code;return Ot.replace("@Title",y(o,e+n)).replace("@Describe","").replace("@Function",Qt(o,r)).replace("@TestCase",Lt(t)).replace("@Console",Dt(t))}function Rt(t,e){return new Promise(n=>{It(e.detail,t);let o=_e(e);we.writeFile(t,o,r=>{if(r)throw r;n()})})}function U(t,e){return new Promise(n=>{let o=Ut.normalize(Ut.join(e,`question${L(t.lang)}`));At.existsSync(o)?n(!1):Y(e,o,t).then(r=>n(r)).catch(()=>n(!1))})}function Y(t,e,n){return new Promise((o,r)=>{try{At.mkdir(t,{recursive:!0},async()=>{if(await Rt(e,n),!n.code){let i=await kt(n.slug);console.warn(`\u6B64\u9898\u76EE\u4E0D\u652F\u6301\u5F53\u524D\u8BED\u8A00[${n.lang}]!\u53D7\u652F\u6301\u7684\u8BED\u8A00\u6709[${i.join(",")}]!`)}o(e)})}catch(i){r(i)}})}import tt from"node:path";import{readdirSync as $e}from"node:fs";function Ft(t,e){return $e(t).filter(n=>n.includes(e)).length}function A(t,e){if(!t||!t.id)return Promise.reject(new Error("question is empty"));let n=tt.dirname(e),o=`${t.id}.${t.slug}`,r=` [${Ft(n,o)}]`,i=tt.join(n,`${o}${r}`),s=tt.join(i,`question${L(t.lang)}`);return Y(i,s,t)}function F(t,e){return S(n=>{let o;return n.write(()=>{n.delete(n.objects("Question").filtered("mode=$0",t)),o=n.create("Question",Object.assign(e,{mode:t}))}),o.toJSON()})}async function Bt(t=process.cwd()){let e=[{type:"list",name:"mode",message:"\u8BF7\u9009\u62E9\u521B\u5EFA\u95EE\u9898\u7684\u6A21\u5F0F:",choices:["today","identity","random"]}],{mode:n}=await B.prompt(e,null),o=[{type:"input",name:"identity",message:"\u8BF7\u8F93\u5165\u9898\u76EE\u7F16\u53F7:"}],r;switch(n){case"identity":{let{identity:d}=await B.prompt(o,null);a.info(d),r=await O(d);break}case"random":r=await N();break;case"today":default:r=await E();break}await F(n,r)||console.warn(`[create][${n}]\u95EE\u9898[${r.title}]\u672A\u6210\u529F\u7F13\u5B58`);let s=D(r),c=et.join(t,s),u=[{type:"confirm",name:"dirRight",message:`\u662F\u5426\u5728\u76EE\u5F55[ ${t} ]\u4E0B\u521B\u5EFA\u9898\u76EE[ ${s} ]?`}],{dirRight:l}=await B.prompt(u,null);if(!l){let d=[{type:"input",name:"newDir",message:`\u8BF7\u9009\u62E9\u65B0\u76EE\u5F55(\u57FA\u7840\u5730\u5740\u4E3A${t})[\u6309\u56DE\u8F66[Enter]\u7EC8\u6B62\u64CD\u4F5C]:`}],{newDir:at}=await B.prompt(d,null);at||(a.info("[LC-logger]\u7528\u6237\u7EC8\u6B62\u64CD\u4F5C~"),process.exit(0)),c=et.join(et.join(t,at),`${s}`)}let m=await U(r,c);m||(m=await A(r,c)),a.info(`\u9898\u76EE[${s}]\u521B\u5EFA\u5B8C\u6210\uFF01 | ||
\u6587\u4EF6\u5730\u5740\u4E3A: ${m}`),process.exit(0)}var Pt=` | ||
`;function _e(t){let e=`${O(t)} ${t.date?`[${t.date}]`:""} | ||
`,n=k(t.detail).replace(/\n+/g,` | ||
`),o=t.lang,r=t.code;return Ut.replace("@Title",x(o,e+n)).replace("@Describe","").replace("@Function",Qt(o,r)).replace("@TestCase",Lt(t)).replace("@Console",Dt(t))}function Ot(t,e){return new Promise(n=>{It(e.detail,t);let o=_e(e);we.writeFile(t,o,r=>{if(r)throw r;n()})})}function R(t,e){return new Promise(n=>{let o=Rt.normalize(Rt.join(e,`question${L(t.lang)}`));At.existsSync(o)?n(!1):Y(e,o,t).then(r=>n(r)).catch(()=>n(!1))})}function Y(t,e,n){return new Promise((o,r)=>{try{At.mkdir(t,{recursive:!0},async()=>{if(await Ot(e,n),!n.code){let i=await kt(n.slug);console.warn(`\u6B64\u9898\u76EE\u4E0D\u652F\u6301\u5F53\u524D\u8BED\u8A00[${n.lang}]!\u53D7\u652F\u6301\u7684\u8BED\u8A00\u6709[${i.join(",")}]!`)}o(e)})}catch(i){r(i)}})}import tt from"node:path";import{readdirSync as $e}from"node:fs";function Ft(t,e){return $e(t).filter(n=>n.includes(e)).length}function A(t,e){if(!t||!t.id)return Promise.reject(new Error("question is empty"));let n=tt.dirname(e),o=`${t.id}.${t.slug}`,r=` [${Ft(n,o)}]`,i=tt.join(n,`${o}${r}`),s=tt.join(i,`question${L(t.lang)}`);return Y(i,s,t)}function F(t,e){return b(n=>{let o;return n.write(()=>{n.delete(n.objects("Question").filtered("mode=$0",t)),o=n.create("Question",Object.assign(e,{mode:t}))}),o.toJSON()})}async function Pt(t=process.cwd()){let e=[{type:"list",name:"mode",message:"\u8BF7\u9009\u62E9\u521B\u5EFA\u95EE\u9898\u7684\u6A21\u5F0F:",choices:["today","identity","random"]}],{mode:n}=await P.prompt(e,null),o=[{type:"input",name:"identity",message:"\u8BF7\u8F93\u5165\u9898\u76EE\u7F16\u53F7:"}],r;switch(n){case"identity":{let{identity:d}=await P.prompt(o,null);a.info(d),r=await U(d);break}case"random":r=await N();break;case"today":default:r=await E();break}await F(n,r)||console.warn(`[create][${n}]\u95EE\u9898[${r.title}]\u672A\u6210\u529F\u7F13\u5B58`);let s=D(r),c=et.join(t,s),u=[{type:"confirm",name:"dirRight",message:`\u662F\u5426\u5728\u76EE\u5F55[ ${t} ]\u4E0B\u521B\u5EFA\u9898\u76EE[ ${s} ]?`}],{dirRight:l}=await P.prompt(u,null);if(!l){let d=[{type:"input",name:"newDir",message:`\u8BF7\u9009\u62E9\u65B0\u76EE\u5F55(\u57FA\u7840\u5730\u5740\u4E3A${t})[\u6309\u56DE\u8F66[Enter]\u7EC8\u6B62\u64CD\u4F5C]:`}],{newDir:at}=await P.prompt(d,null);at||(a.info("[LC-logger]\u7528\u6237\u7EC8\u6B62\u64CD\u4F5C~"),process.exit(0)),c=et.join(et.join(t,at),`${s}`)}let m=await R(r,c);m||(m=await A(r,c)),a.info(`\u9898\u76EE[${s}]\u521B\u5EFA\u5B8C\u6210\uFF01 | ||
\u6587\u4EF6\u5730\u5740\u4E3A: ${m}`),process.exit(0)}var Bt=` | ||
A powerful practice platform for leetcode. | ||
@@ -131,5 +131,5 @@ CLI / Template Project / Plugin, you can create question by any way you like. | ||
`;import Se from"node:path";import Ce from"node:fs";function Jt(t,e){return new Promise(n=>{let o=0,r=Ce.createReadStream(t,{encoding:"utf-8"});r.on("data",i=>{let s=i.split(` | ||
`);for(let c of s)if(o++,c.includes(e)){r.close(),n(o);return}}),r.on("end",()=>{console.warn(`"${e}" not found in file: ${t}`),n(0)}),r.on("error",()=>{console.warn(`"${e}" not found in file: ${t}`),n(0)})})}function k(t,e,n){return a.info(`MODE: ${t}`),new Promise(o=>{F(t,e);let r=Se.join(n,D(e));U(e,r).then(async i=>{i||(i=await A(e,r));let s=await Jt(i,"@QUESTION_START")+1;a.info(`\u9898\u76EE[${R(e)}]\u83B7\u53D6\u6210\u529F! | ||
\u9898\u76EE\u6587\u4EF6\u5730\u5740\u4E3A:file://${i}:${s}`),o(!0)})})}async function Gt(t,e=process.cwd()){let n=await O(t);n?.id||a.warn(`\u6307\u5B9A\u7F16\u53F7: [ ${t} ] \u9898\u76EE\u4E0D\u5B58\u5728.`),await k("identity",n,e)}import Wt from"node:path";import{fork as Oe}from"node:child_process";import Zt from"inquirer";import be from"node:fs";import ke from"node:path";var Qe=w(wt,q),ve=w(_t,M,q,"master/package.json"),Te=w($t,M,q,"raw","master/package.json");async function qe(){try{return(await x(Qe,{method:"GET"}))["dist-tags"]?.latest}catch(t){throw new Error(t)}}async function nt(){try{let[{reason:t,value:e},{reason:n,value:o}]=await Promise.allSettled([x(ve,{method:"GET"}),x(Te,{method:"GET"})]);return e?.version??o?.version}catch(t){throw new Error(t)}}function je(){try{let{version:t}=JSON.parse(be.readFileSync(ke.resolve(g,"package.json"),"utf-8"));return t}catch{return!1}}async function Mt(){let t=await qe(),e=await nt(),n=je();return{localVersion:n,npmVersion:t,githubVersion:e,isCliUpdate:t!==n,isGithubUpdate:e!==n}}import{exec as Vt}from"node:child_process";import Le from"node:https";import ot from"node:fs";import Ee from"inquirer";async function zt(t){switch(t){case"cli":return await Ie();case"project":return await Ne();default:throw new Error(`Unsupported environment: ${t}`)}}function Ie(){return new Promise((t,e)=>{Vt("npm install -g leetcode-practice",n=>{n?e(n):t()})})}async function Ne(){a.info("\u811A\u672C\u5347\u7EA7\u4E2D,\u8BF7\u7B49\u5F85\u540E\u7EED\u7248\u672C\u66F4\u65B0...");return;async function t(e){return new Promise((n,o)=>{Vt(e,(r,i)=>{r?o(r):n(i.trim())})})}try{let e=await nt(),{hasChanges:n}=await Ee.prompt([{type:"confirm",name:"hasChanges",message:"\u662F\u5426\u5B58\u5728\u81EA\u5DF1\u4FEE\u6539\u8FC7\u7684\u5185\u5BB9\uFF1F",default:!1}]);if(n){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u5904\u7406\u540E\u518D\u66F4\u65B0\u3002");return}if(await t("git status --porcelain")){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u63D0\u4EA4\u540E\u518D\u66F4\u65B0\u3002");return}let i=(await Le.get("https://raw.githubusercontent.com/wh131462/leetcode-practice")).data;for(let c in i)ot.writeFileSync(c,i[c]),await t(`git add ${c}`);let s=JSON.parse(ot.readFileSync("package.json","utf-8"));s.version=`${e}`,ot.writeFileSync("package.json",JSON.stringify(s,null,2)),await t(`git commit -m "update:${e}"`),a.info("\u9879\u76EE\u66F4\u65B0\u5B8C\u6210\u3002")}catch(e){console.error("\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF:",e)}}async function Ht(){let t=Q(),e={type:"list",name:"choseEnv",message:`\u81EA\u52A8\u68C0\u6D4B\u5230\u7684\u73AF\u5883\u4E3A[ ${t} ],\u5982\u679C\u4E0D\u662F,\u8BF7\u8FDB\u884C\u9009\u62E9,\u5982\u662F,\u8BF7\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4.`,choices:["cli","project"],default:t},{choseEnv:n}=await Zt.prompt(e,null),{localVersion:o="\u672A\u68C0\u51FA",npmVersion:r="\u672A\u68C0\u51FA",githubVersion:i="\u672A\u68C0\u51FA",isCliUpdate:s,isGithubUpdate:c}=await Mt();a.info(`\u5F53\u524D\u7248\u672C:[ ${o} ] npm\u5305\u6700\u65B0\u7248\u672C:[ ${r} ] github\u7248\u672C:[ ${i} ]`);let u=!1,l="\u672A\u77E5";switch(n){case"project":u=c,l=i;break;case"cli":u=s,l=r;break;default:a.warn("\u672A\u77E5\u73AF\u5883:",n),process.exit(0);break}if(u){let m={type:"confirm",name:"willUpdate",message:`\u68C0\u6D4B\u5230[ ${t} ]\u53EF\u66F4\u65B0\u7248\u672C[ ${l} ],\u662F\u5426\u8FDB\u884C\u66F4\u65B0?`},{willUpdate:d}=await Zt.prompt(m,null);d?(a.info("\u5F00\u59CB\u66F4\u65B0..."),await zt(t),a.info("\u66F4\u65B0\u5B8C\u6210~\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~")):a.info("\u4F60\u9009\u62E9\u8DF3\u8FC7\u6B64\u6B21\u66F4\u65B0,\u5982\u679C\u60F3\u8981\u8FDB\u884C\u66F4\u65B0,\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u53C2\u6570 -u \u8FDB\u884C\u66F4\u65B0\u68C0\u6D4B!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}else a.info("\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}import De from"inquirer";async function Kt(t=p){let n=[{type:"list",name:"newSet",message:"\u8BF7\u786E\u8BA4\u4F60\u8981\u8BBE\u7F6ECLI\u7684\u8BED\u8A00\u73AF\u5883(\u5982\u679C\u9009\u9879\u5339\u914D\u6210\u529F\uFF0C\u90A3\u4E48\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4\u5373\u53EF)",choices:V.map(r=>r.name),default:t}],{newSet:o}=await De.prompt(n,null);a.info("\u8BBE\u7F6E\u8BED\u8A00\u73AF\u5883\u4E3A:",o),await Ct(o),process.exit(0)}async function Xt(t,e){Oe(Wt.resolve(g,"common/utils/cli-utils/checkUpdate.js"));let n=t.directory?Wt.join(process.cwd(),t.directory):process.cwd();if(t.language){if(t.language!==!0)await Kt(t.language);else{let o=await j();a.info(`\u5F53\u524DCLI\u8BED\u8A00\u73AF\u5883\u4E3A:${o}`)}process.exit(0)}return t?.easy&&(await e(n),process.exit(0)),t.update&&(await Ht(),process.exit(0)),n}var Re="1.0.9-0";it.version(Re).description(`${Pt} | ||
`);for(let c of s)if(o++,c.includes(e)){r.close(),n(o);return}}),r.on("end",()=>{console.warn(`"${e}" not found in file: ${t}`),n(0)}),r.on("error",()=>{console.warn(`"${e}" not found in file: ${t}`),n(0)})})}function Q(t,e,n){return a.info(`MODE: ${t}`),new Promise(o=>{F(t,e);let r=Se.join(n,D(e));R(e,r).then(async i=>{i||(i=await A(e,r));let s=await Jt(i,"@QUESTION_START")+1;a.info(`\u9898\u76EE[${O(e)}]\u83B7\u53D6\u6210\u529F! | ||
\u9898\u76EE\u6587\u4EF6\u5730\u5740\u4E3A:file://${i}:${s}`),o(!0)})})}async function Gt(t,e=process.cwd()){let n=await U(t);n?.id||a.warn(`\u6307\u5B9A\u7F16\u53F7: [ ${t} ] \u9898\u76EE\u4E0D\u5B58\u5728.`),await Q("identity",n,e)}import Wt from"node:path";import{fork as Ue}from"node:child_process";import Zt from"inquirer";import be from"node:fs";import ke from"node:path";var Qe=_(wt,q),ve=_(_t,M,q,"master/package.json"),Te=_($t,M,q,"raw","master/package.json");async function qe(){try{return(await w(Qe,{method:"GET"}))["dist-tags"]?.latest}catch(t){throw new Error(t)}}async function nt(){try{let[{reason:t,value:e},{reason:n,value:o}]=await Promise.allSettled([w(ve,{method:"GET"}),w(Te,{method:"GET"})]);return e?.version??o?.version}catch(t){throw new Error(t)}}function je(){try{let{version:t}=JSON.parse(be.readFileSync(ke.resolve(h,"package.json"),"utf-8"));return t}catch{return!1}}async function Mt(){let t=await qe(),e=await nt(),n=je();return{localVersion:n,npmVersion:t,githubVersion:e,isCliUpdate:t!==n,isGithubUpdate:e!==n}}import{exec as Vt}from"node:child_process";import Le from"node:https";import ot from"node:fs";import Ee from"inquirer";async function zt(t){switch(t){case"cli":return await Ie();case"project":return await Ne();default:throw new Error(`Unsupported environment: ${t}`)}}function Ie(){return new Promise((t,e)=>{Vt("npm install -g leetcode-practice",n=>{n?e(n):t()})})}async function Ne(){a.info("\u811A\u672C\u5347\u7EA7\u4E2D,\u8BF7\u7B49\u5F85\u540E\u7EED\u7248\u672C\u66F4\u65B0...");return;async function t(e){return new Promise((n,o)=>{Vt(e,(r,i)=>{r?o(r):n(i.trim())})})}try{let e=await nt(),{hasChanges:n}=await Ee.prompt([{type:"confirm",name:"hasChanges",message:"\u662F\u5426\u5B58\u5728\u81EA\u5DF1\u4FEE\u6539\u8FC7\u7684\u5185\u5BB9\uFF1F",default:!1}]);if(n){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u5904\u7406\u540E\u518D\u66F4\u65B0\u3002");return}if(await t("git status --porcelain")){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u63D0\u4EA4\u540E\u518D\u66F4\u65B0\u3002");return}let i=(await Le.get("https://raw.githubusercontent.com/wh131462/leetcode-practice")).data;for(let c in i)ot.writeFileSync(c,i[c]),await t(`git add ${c}`);let s=JSON.parse(ot.readFileSync("package.json","utf-8"));s.version=`${e}`,ot.writeFileSync("package.json",JSON.stringify(s,null,2)),await t(`git commit -m "update:${e}"`),a.info("\u9879\u76EE\u66F4\u65B0\u5B8C\u6210\u3002")}catch(e){console.error("\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF:",e)}}async function Ht(){let t=g(),e={type:"list",name:"choseEnv",message:`\u81EA\u52A8\u68C0\u6D4B\u5230\u7684\u73AF\u5883\u4E3A[ ${t} ],\u5982\u679C\u4E0D\u662F,\u8BF7\u8FDB\u884C\u9009\u62E9,\u5982\u662F,\u8BF7\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4.`,choices:["cli","project"],default:t},{choseEnv:n}=await Zt.prompt(e,null),{localVersion:o="\u672A\u68C0\u51FA",npmVersion:r="\u672A\u68C0\u51FA",githubVersion:i="\u672A\u68C0\u51FA",isCliUpdate:s,isGithubUpdate:c}=await Mt();a.info(`\u5F53\u524D\u7248\u672C:[ ${o} ] npm\u5305\u6700\u65B0\u7248\u672C:[ ${r} ] github\u7248\u672C:[ ${i} ]`);let u=!1,l="\u672A\u77E5";switch(n){case"project":u=c,l=i;break;case"cli":u=s,l=r;break;default:a.warn("\u672A\u77E5\u73AF\u5883:",n),process.exit(0);break}if(u){let m={type:"confirm",name:"willUpdate",message:`\u68C0\u6D4B\u5230[ ${t} ]\u53EF\u66F4\u65B0\u7248\u672C[ ${l} ],\u662F\u5426\u8FDB\u884C\u66F4\u65B0?`},{willUpdate:d}=await Zt.prompt(m,null);d?(a.info("\u5F00\u59CB\u66F4\u65B0..."),await zt(t),a.info("\u66F4\u65B0\u5B8C\u6210~\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~")):a.info("\u4F60\u9009\u62E9\u8DF3\u8FC7\u6B64\u6B21\u66F4\u65B0,\u5982\u679C\u60F3\u8981\u8FDB\u884C\u66F4\u65B0,\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u53C2\u6570 -u \u8FDB\u884C\u66F4\u65B0\u68C0\u6D4B!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}else a.info("\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}import De from"inquirer";async function Kt(t=p){let n=[{type:"list",name:"newSet",message:"\u8BF7\u786E\u8BA4\u4F60\u8981\u8BBE\u7F6ECLI\u7684\u8BED\u8A00\u73AF\u5883(\u5982\u679C\u9009\u9879\u5339\u914D\u6210\u529F\uFF0C\u90A3\u4E48\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4\u5373\u53EF)",choices:V.map(r=>r.name),default:t}],{newSet:o}=await De.prompt(n,null);a.info("\u8BBE\u7F6E\u8BED\u8A00\u73AF\u5883\u4E3A:",o),await Ct(o),process.exit(0)}async function Xt(t,e){let n=Wt.resolve(h,g()==="cli"?"origin/checkUpdate.js":"common/origin/checkUpdate.js");Ue(n),a.info(n);let o=t.directory?Wt.join(process.cwd(),t.directory):process.cwd();if(t.language){if(t.language!==!0)await Kt(t.language);else{let r=await j();a.info(`\u5F53\u524DCLI\u8BED\u8A00\u73AF\u5883\u4E3A:${r}`)}process.exit(0)}return t?.easy&&(await e(o),process.exit(0)),t.update&&(await Ht(),process.exit(0)),o}var Oe="1.0.9-1";it.version(Oe).description(`${Bt} | ||
${ct} | ||
${ut}`).addHelpText("after",lt+mt).arguments("[identity]").option("-t, --today","Get a question today.").option("-i, --identity <identity>","Specify a question by identity.").option("-r, --random","Get a question randomly.").option("-e, --easy","Use easy mode.").option("-d, --directory <directory>","Set the question directory.").option("-l, --language [language]","Set/Get the code language of question.").option("-u, --update","Check the version to determine whether to update to the latest one.").parse(process.argv);var Yt=it.args,st=it.opts(),rt=await Xt(st,Bt),Ue={today:()=>{E().then(t=>{k("today",t,rt).then(()=>{process.exit(0)})})},random:()=>{N().then(t=>{k("random",t,rt).then(()=>{process.exit(0)})})},identity:async t=>{await Gt(t,rt),process.exit(0)}},te=pt(Yt,st),Ae=ft(te,Yt,st);await Ue[te](Ae);export{Ue as callModeAction}; | ||
${ut}`).addHelpText("after",lt+mt).arguments("[identity]").option("-t, --today","Get a question today.").option("-i, --identity <identity>","Specify a question by identity.").option("-r, --random","Get a question randomly.").option("-e, --easy","Use easy mode.").option("-d, --directory <directory>","Set the question directory.").option("-l, --language [language]","Set/Get the code language of question.").option("-u, --update","Check the version to determine whether to update to the latest one.").parse(process.argv);var Yt=it.args,st=it.opts(),rt=await Xt(st,Pt),Re={today:()=>{E().then(t=>{Q("today",t,rt).then(()=>{process.exit(0)})})},random:()=>{N().then(t=>{Q("random",t,rt).then(()=>{process.exit(0)})})},identity:async t=>{await Gt(t,rt),process.exit(0)}},te=pt(Yt,st),Ae=ft(te,Yt,st);await Re[te](Ae);export{Re as callModeAction}; |
@@ -26,3 +26,3 @@ #! /usr/bin/env node | ||
`;var ie="Made with \u2764\uFE0F by EternalHeart team.";var m="javascript";var k="leetcode-practice",U="EternalHeartTeam",se="https://registry.npmjs.org/",ae="https://raw.githubusercontent.com/";var ce="https://gitee.com/";import Ct from"node:path";import b,{Separator as Re}from"@inquirer/select";import $t from"@inquirer/input";function le(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionTranslations($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {questionId\\n translatedTitle\\n translatedContent\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionTranslations"}`,method:"POST"}}import O from"node:path";import{readdirSync as rt,rmSync as it}from"node:fs";import ue from"realm";import me from"realm";var _=class extends me.Object{static schema={name:"Question",properties:{_id:{type:"objectId",default:()=>new me.BSON.ObjectId},id:"string",mode:"string",slug:"string",title:"string",detail:"string",lang:"string",code:"string?",url:"string?",date:"string?",timestamp:{type:"date",default:()=>new Date}},primaryKey:"_id"}};import Q from"node:path";import{fileURLToPath as et}from"node:url";import{dirname as tt}from"node:path";var nt=et(import.meta.url),B=tt(nt);function v(){let e=import.meta.url;return/etc\/checkEnv.js$/im.test(e)?"project":"cli"}var d=v()==="project"?Q.dirname(Q.dirname(Q.dirname(B))):Q.dirname(B);import ot from"realm";var S=class extends ot.Object{static schema={name:"Store",properties:{key:"string",value:"string",timestamp:{type:"date",default:()=>new Date}},primaryKey:"key"}};var A=O.resolve(d,"resources/stores/store.realm");async function st(){let e;try{e=await ue.open({schema:[_,S],path:A})}catch(t){t?.message?.includes("Migration")&&await at(),e=await ue.open({schema:[_,S],path:A})}return e}async function C(e){let t=await st(),n=await e(t);return t.close(),n}function at(){return new Promise(e=>{let t=O.dirname(A);rt(t).forEach(o=>{it(O.resolve(t,o),{recursive:!0,force:!0})}),e()})}function pe(e){return e===null?"null":typeof e}function ct(e){let t=pe(e),n=t==="object"?JSON.stringify(e):e.toString();return`$<${t}>$`+n}function lt(e){let t=/^\$<.+>\$/im;if(!t.test(e))return null;let n=e.match(t)[0].replace(/[$<>]+/g,""),o=e.replace(t,"");switch(n){case"object":return JSON.parse(o);case"bigint":return BigInt(o);case"boolean":return o==="true";case"number":return Number(o);case"function":return()=>o;case"string":default:return o}}function fe(e,t){return C(n=>{let o;return n.write(()=>{let r=n.objects("Store").filtered(`key = "${e}"`)?.[0];r&&n.delete(r),o=n.create("Store",{key:e,value:ct(t)})}),o.toJSON()})}function L(e){return C(t=>{let o=t.objects("Store").filtered("key=$0",e)?.[0]?.toJSON();return lt(o?.value)})}var F=[{id:0,name:"cpp",extension:".cpp",blockComment:`/* | ||
`;var ie="Made with \u2764\uFE0F by EternalHeart team.";var m="javascript";var v="leetcode-practice",U="EternalHeartTeam",se="https://registry.npmjs.org/",ae="https://raw.githubusercontent.com/";var ce="https://gitee.com/";import Ct from"node:path";import k,{Separator as Re}from"@inquirer/select";import $t from"@inquirer/input";function le(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionTranslations($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {questionId\\n translatedTitle\\n translatedContent\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionTranslations"}`,method:"POST"}}import O from"node:path";import{readdirSync as rt,rmSync as it}from"node:fs";import ue from"realm";import me from"realm";var S=class extends me.Object{static schema={name:"Question",properties:{_id:{type:"objectId",default:()=>new me.BSON.ObjectId},id:"string",mode:"string",slug:"string",title:"string",detail:"string",lang:"string",code:"string?",url:"string?",date:"string?",timestamp:{type:"date",default:()=>new Date}},primaryKey:"_id"}};import Q from"node:path";import{fileURLToPath as et}from"node:url";import{dirname as tt}from"node:path";var nt=et(import.meta.url),B=tt(nt);function d(){let e=import.meta.url;return/etc\/checkEnv.js$/im.test(e)?"project":"cli"}var g=d()==="project"?Q.dirname(Q.dirname(Q.dirname(B))):Q.dirname(B);import ot from"realm";var C=class extends ot.Object{static schema={name:"Store",properties:{key:"string",value:"string",timestamp:{type:"date",default:()=>new Date}},primaryKey:"key"}};var A=O.resolve(g,"resources/stores/store.realm");async function st(){let e;try{e=await ue.open({schema:[S,C],path:A})}catch(t){t?.message?.includes("Migration")&&await at(),e=await ue.open({schema:[S,C],path:A})}return e}async function $(e){let t=await st(),n=await e(t);return t.close(),n}function at(){return new Promise(e=>{let t=O.dirname(A);rt(t).forEach(o=>{it(O.resolve(t,o),{recursive:!0,force:!0})}),e()})}function pe(e){return e===null?"null":typeof e}function ct(e){let t=pe(e),n=t==="object"?JSON.stringify(e):e.toString();return`$<${t}>$`+n}function lt(e){let t=/^\$<.+>\$/im;if(!t.test(e))return null;let n=e.match(t)[0].replace(/[$<>]+/g,""),o=e.replace(t,"");switch(n){case"object":return JSON.parse(o);case"bigint":return BigInt(o);case"boolean":return o==="true";case"number":return Number(o);case"function":return()=>o;case"string":default:return o}}function fe(e,t){return $(n=>{let o;return n.write(()=>{let r=n.objects("Store").filtered(`key = "${e}"`)?.[0];r&&n.delete(r),o=n.create("Store",{key:e,value:ct(t)})}),o.toJSON()})}function L(e){return $(t=>{let o=t.objects("Store").filtered("key=$0",e)?.[0]?.toJSON();return lt(o?.value)})}var F=[{id:0,name:"cpp",extension:".cpp",blockComment:`/* | ||
* | ||
@@ -85,5 +85,5 @@ */`,lineComment:"//"},{id:1,name:"java",extension:".java",blockComment:`/* | ||
* | ||
*/`,lineComment:"--"}];async function de(e=m){await fe("language",e)}async function T(){return await L("language")??m}function R(e){return F.find(t=>t.name.toLowerCase()===e.toLowerCase())}function j(e=m){return R(e)?.extension}function mt(e=m){let t=R(e);return t.lineComment!==""?t.lineComment:null}function ut(e=m){return R(e).blockComment}function g(e=m,t=""){let n=mt(e);return n!==null?t.split(` | ||
*/`,lineComment:"--"}];async function de(e=m){await fe("language",e)}async function T(){return await L("language")??m}function R(e){return F.find(t=>t.name.toLowerCase()===e.toLowerCase())}function j(e=m){return R(e)?.extension}function mt(e=m){let t=R(e);return t.lineComment!==""?t.lineComment:null}function ut(e=m){return R(e).blockComment}function h(e=m,t=""){let n=mt(e);return n!==null?t.split(` | ||
`).reduce((r,i)=>r+=`${n} ${i} | ||
`,""):h(e,t)}function h(e=m,t=""){let o=ut(e).split(` | ||
`,""):y(e,t)}function y(e=m,t=""){let o=ut(e).split(` | ||
`),r=t.split(` | ||
@@ -93,4 +93,4 @@ `);switch(o.length){case 3:{let i=o[0],s=o[2],l=o[1],p=r.reduce((c,f)=>c+=`${l} ${f} | ||
${p}${s} | ||
`}default:return t}}async function y(e,t){return await fetch(e,t).then(n=>n.json())}function x(e,...t){let n=e.replace(/\/$/,""),o=t.join("/").replace(/(\/){1,3}/gim,"/").replace(/^\//,"");return[n,o].join("/")}async function u(e,t="https://leetcode.cn/"){return await y(x(t,"graphql"),e)}function ge(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionEditorData($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {\\n questionId\\n questionFrontendId\\n codeSnippets {\\n lang\\n langSlug\\n code\\n }\\n envInfo\\n enableRunCode\\n hasFrontendPreview\\n frontendPreviews\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionEditorData"}`,method:"POST"}}async function G(e){return(await u(ge(e))).data.question?.codeSnippets}async function he(e,t){return(await G(e))?.find(o=>o.langSlug===t)?.code}async function ye(e){return(await G(e)).map(n=>n?.langSlug)}function xe(e,t){return t?`${g(e,"@QUESTION_START")+t} | ||
${g(e,"@QUESTION_END")}`:g(e,`!important: \u6B64\u9898\u76EE\u6CA1\u6709\u5F53\u524D\u8BED\u8A00[${e}]\u7684\u4EE3\u7801\u6A21\u677F!`)}async function we(e,t={}){let o=(await u(le(e))).data.question,r=await T(),i=await he(e,r);return{id:o?.questionId,slug:e,title:o?.translatedTitle,detail:o?.translatedContent,lang:r,code:i,...t}}function q(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\n problemsetQuestionList(\\n categorySlug: $categorySlug\\n limit: $limit\\n skip: $skip\\n filters: $filters\\n ) {\\n hasMore\\n total\\n questions {\\n acRate\\n difficulty\\n freqBar\\n frontendQuestionId\\n isFavor\\n paidOnly\\n solutionNum\\n status\\n title\\n titleCn\\n titleSlug\\n topicTags {\\n name\\n nameTranslated\\n id\\n slug\\n }\\n extra {\\n hasVideoSolution\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n }\\n}\\n ","variables":{"categorySlug":"all-code-essentials","skip":0,"limit":50,"filters":{"searchKeywords":"${e}"}},"operationName":"problemsetQuestionList"}`,method:"POST"}}async function _e(e){let n=(await u(q(e.toString())))?.data?.problemsetQuestionList?.questions?.find(i=>i?.frontendQuestionId===e.toString());if(!n)return{id:null};let o=n.titleSlug;return await we(o,{id:e})}var pt={"content-type":"application/json"};async function Se(e){let n={headers:pt,body:JSON.stringify({query:` | ||
`}default:return t}}async function x(e,t){return await fetch(e,t).then(n=>n.json())}function w(e,...t){let n=e.replace(/\/$/,""),o=t.join("/").replace(/(\/){1,3}/gim,"/").replace(/^\//,"");return[n,o].join("/")}async function u(e,t="https://leetcode.cn/"){return await x(w(t,"graphql"),e)}function ge(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionEditorData($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {\\n questionId\\n questionFrontendId\\n codeSnippets {\\n lang\\n langSlug\\n code\\n }\\n envInfo\\n enableRunCode\\n hasFrontendPreview\\n frontendPreviews\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionEditorData"}`,method:"POST"}}async function G(e){return(await u(ge(e))).data.question?.codeSnippets}async function he(e,t){return(await G(e))?.find(o=>o.langSlug===t)?.code}async function ye(e){return(await G(e)).map(n=>n?.langSlug)}function xe(e,t){return t?`${h(e,"@QUESTION_START")+t} | ||
${h(e,"@QUESTION_END")}`:h(e,`!important: \u6B64\u9898\u76EE\u6CA1\u6709\u5F53\u524D\u8BED\u8A00[${e}]\u7684\u4EE3\u7801\u6A21\u677F!`)}async function we(e,t={}){let o=(await u(le(e))).data.question,r=await T(),i=await he(e,r);return{id:o?.questionId,slug:e,title:o?.translatedTitle,detail:o?.translatedContent,lang:r,code:i,...t}}function q(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\n problemsetQuestionList(\\n categorySlug: $categorySlug\\n limit: $limit\\n skip: $skip\\n filters: $filters\\n ) {\\n hasMore\\n total\\n questions {\\n acRate\\n difficulty\\n freqBar\\n frontendQuestionId\\n isFavor\\n paidOnly\\n solutionNum\\n status\\n title\\n titleCn\\n titleSlug\\n topicTags {\\n name\\n nameTranslated\\n id\\n slug\\n }\\n extra {\\n hasVideoSolution\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n }\\n}\\n ","variables":{"categorySlug":"all-code-essentials","skip":0,"limit":50,"filters":{"searchKeywords":"${e}"}},"operationName":"problemsetQuestionList"}`,method:"POST"}}async function _e(e){let n=(await u(q(e.toString())))?.data?.problemsetQuestionList?.questions?.find(i=>i?.frontendQuestionId===e.toString());if(!n)return{id:null};let o=n.titleSlug;return await we(o,{id:e})}var pt={"content-type":"application/json"};async function Se(e){let n={headers:pt,body:JSON.stringify({query:` | ||
query questionTitle($titleSlug: String!) { | ||
@@ -109,3 +109,3 @@ question(titleSlug: $titleSlug) { | ||
} | ||
`,variables:{titleSlug:e},operationName:"questionTitle"}),method:"POST"},o=await u(n),{data:r}=o;return r}import M from"chalk";var V=class{constructor(t){}info(t,...n){console.log(M.blue(t,...n))}warn(t,...n){console.log(M.yellow(t,...n))}error(t,...n){console.log(M.red(t,...n))}},{env:ft=null}=await L("config")??{},a=new V(ft);import _t from"node:path";function Ce(e,t){return C(n=>{let o;return n.write(()=>{n.delete(n.objects("Question").filtered("mode=$0",e)),o=n.create("Question",Object.assign(t,{mode:e}))}),o.toJSON()})}function $e(e){return!e||!e?.id?"":`${e.id}.${e.slug}`}import Ee from"node:fs";import qe from"node:path";import ht from"node:fs";function $(e){return e.replace(/<[^>]*>/g,"").replaceAll("\xA0"," ").replaceAll(" "," ").replaceAll("<","<").replaceAll(">",">").replaceAll("`","")}function J(e,t="param"){let o={param:/@param\s+{\s*([^}\s]+)\s*}/g,return:/@return\s+{\s*([^}\s]+)\s*}/g}[t],r=[],i;for(;(i=o.exec(e))!==null;)r.push(i[1]);return r}function dt(e,t,n,o){return`showLogs( | ||
`,variables:{titleSlug:e},operationName:"questionTitle"}),method:"POST"},o=await u(n),{data:r}=o;return r}import M from"chalk";var V=class{constructor(t){}info(t,...n){console.log(M.blue(t,...n))}warn(t,...n){console.log(M.yellow(t,...n))}error(t,...n){console.log(M.red(t,...n))}},{env:ft=null}=await L("config")??{},a=new V(ft);import _t from"node:path";function Ce(e,t){return $(n=>{let o;return n.write(()=>{n.delete(n.objects("Question").filtered("mode=$0",e)),o=n.create("Question",Object.assign(t,{mode:e}))}),o.toJSON()})}function $e(e){return!e||!e?.id?"":`${e.id}.${e.slug}`}import Ee from"node:fs";import qe from"node:path";import ht from"node:fs";function b(e){return e.replace(/<[^>]*>/g,"").replaceAll("\xA0"," ").replaceAll(" "," ").replaceAll("<","<").replaceAll(">",">").replaceAll("`","")}function J(e,t="param"){let o={param:/@param\s+{\s*([^}\s]+)\s*}/g,return:/@return\s+{\s*([^}\s]+)\s*}/g}[t],r=[],i;for(;(i=o.exec(e))!==null;)r.push(i[1]);return r}function dt(e,t,n,o){return`showLogs( | ||
${t}, | ||
@@ -120,5 +120,5 @@ { | ||
} | ||
)`}function be(e){let t=/(<[a-zA-Z]+>)?输入[:|:](<\/[a-zA-Z]+>)?.+\n/g,n=/(<[a-zA-Z]+>)?输入[:|:]/gm,o=/(<[a-zA-Z]+>)?输出[:|:](<\/[a-zA-Z]+>)?.+\n/g,r=/(<[a-zA-Z]+>)?输出[:|:]/gm,i=/(<\/[a-zA-Z]+>)?/gm,s=e.detail.replaceAll("`",""),l=s.match(t)?.map(c=>`[${$(c?.replace(n,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,""))}]`),p=s.match(o)?.map(c=>$(c?.replace(r,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,"")));if(e.lang===m){let c=e.code?.match(/(var|let|const).+=/g)?.[0]?.replace(/((var|let|const)|=)\s?/gm,"").trim();return c?h(e.lang,"Test Cases")+dt(e,c,l,p):""}else{let c=`\u6682\u65E0\u6CD5\u652F\u6301\u9664JS\u5916\u7684\u8BED\u8A00\u6D4B\u8BD5,\u63D0\u53D6\u7684\u4E00\u4E9B\u5165\u53C2\u548C\u8FD4\u56DE\u503C\u4F9B\u81EA\u884C\u6D4B\u8BD5\uFF0C\u6BCF\u4E00\u4E2Acase\u4E2D\u7684\u7B2C\u4E00\u884C\u4E3A\u5165\u53C2\uFF0C\u7B2C\u4E8C\u884C\u4E3A\u8FD4\u56DE\u503C | ||
)`}function be(e){let t=/(<[a-zA-Z]+>)?输入[:|:](<\/[a-zA-Z]+>)?.+\n/g,n=/(<[a-zA-Z]+>)?输入[:|:]/gm,o=/(<[a-zA-Z]+>)?输出[:|:](<\/[a-zA-Z]+>)?.+\n/g,r=/(<[a-zA-Z]+>)?输出[:|:]/gm,i=/(<\/[a-zA-Z]+>)?/gm,s=e.detail.replaceAll("`",""),l=s.match(t)?.map(c=>`[${b(c?.replace(n,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,""))}]`),p=s.match(o)?.map(c=>b(c?.replace(r,"")?.replace(i,"")?.replace(` | ||
`,"").replace(/[a-zA-Z]+ =/g,"")));if(e.lang===m){let c=e.code?.match(/(var|let|const).+=/g)?.[0]?.replace(/((var|let|const)|=)\s?/gm,"").trim();return c?y(e.lang,"Test Cases")+dt(e,c,l,p):""}else{let c=`\u6682\u65E0\u6CD5\u652F\u6301\u9664JS\u5916\u7684\u8BED\u8A00\u6D4B\u8BD5,\u63D0\u53D6\u7684\u4E00\u4E9B\u5165\u53C2\u548C\u8FD4\u56DE\u503C\u4F9B\u81EA\u884C\u6D4B\u8BD5\uFF0C\u6BCF\u4E00\u4E2Acase\u4E2D\u7684\u7B2C\u4E00\u884C\u4E3A\u5165\u53C2\uFF0C\u7B2C\u4E8C\u884C\u4E3A\u8FD4\u56DE\u503C | ||
`;for(let f=0;f<Math.max(l?.length??0,p?.length??0);f++)c+=`case ${f+1}: | ||
@@ -130,3 +130,3 @@ `,c+=`${l?.[f]} | ||
`;return c+=` | ||
`,h(e.lang,c)}}import gt from"node:fs";import ke from"node:path";function ve(e,t){let n=ke.dirname(t),o=ke.join(n,"description.md");gt.writeFileSync(o,e)}function E(e){return`${e.id}.${e.title}`}function Qe(e){return`https://leetcode.cn/problems/${e}/`}function Le(e){let t=Qe(e.slug);return e.lang===m?`console.log('\u70B9\u51FB\u8DF3\u8F6C\u5230\u9898\u76EE\u63D0\u4EA4: ${t}');`:g(e.lang,`\u9898\u76EE\u5730\u5740\uFF1A${t}`)}var Te=`@Title | ||
`,y(e.lang,c)}}import gt from"node:fs";import ke from"node:path";function ve(e,t){let n=ke.dirname(t),o=ke.join(n,"description.md");gt.writeFileSync(o,e)}function E(e){return`${e.id}.${e.title}`}function Qe(e){return`https://leetcode.cn/problems/${e}/`}function Le(e){let t=Qe(e.slug);return e.lang===m?`console.log('\u70B9\u51FB\u8DF3\u8F6C\u5230\u9898\u76EE\u63D0\u4EA4: ${t}');`:h(e.lang,`\u9898\u76EE\u5730\u5740\uFF1A${t}`)}var Te=`@Title | ||
@Describe | ||
@@ -139,7 +139,7 @@ @Function | ||
`;function yt(e){let t=`${E(e)} ${e.date?`[${e.date}]`:""} | ||
`,n=$(e.detail).replace(/\n+/g,` | ||
`),o=e.lang,r=e.code;return Te.replace("@Title",h(o,t+n)).replace("@Describe","").replace("@Function",xe(o,r)).replace("@TestCase",be(e)).replace("@Console",Le(e))}function je(e,t){return new Promise(n=>{ve(t.detail,e);let o=yt(t);ht.writeFile(e,o,r=>{if(r)throw r;n()})})}function Pe(e,t){return new Promise(n=>{let o=qe.normalize(qe.join(t,`question${j(e.lang)}`));Ee.existsSync(o)?n(!1):z(t,o,e).then(r=>n(r)).catch(()=>n(!1))})}function z(e,t,n){return new Promise((o,r)=>{try{Ee.mkdir(e,{recursive:!0},async()=>{if(await je(t,n),!n.code){let i=await ye(n.slug);console.warn(`\u6B64\u9898\u76EE\u4E0D\u652F\u6301\u5F53\u524D\u8BED\u8A00[${n.lang}]!\u53D7\u652F\u6301\u7684\u8BED\u8A00\u6709[${i.join(",")}]!`)}o(t)})}catch(i){r(i)}})}import H from"node:path";import{readdirSync as xt}from"node:fs";function Ne(e,t){return xt(e).filter(n=>n.includes(t)).length}function Ie(e,t){if(!e||!e.id)return Promise.reject(new Error("question is empty"));let n=H.dirname(t),o=`${e.id}.${e.slug}`,r=` [${Ne(n,o)}]`,i=H.join(n,`${o}${r}`),s=H.join(i,`question${j(e.lang)}`);return z(i,s,e)}import wt from"node:fs";function De(e,t){return new Promise(n=>{let o=0,r=wt.createReadStream(e,{encoding:"utf-8"});r.on("data",i=>{let s=i.split(` | ||
`,n=b(e.detail).replace(/\n+/g,` | ||
`),o=e.lang,r=e.code;return Te.replace("@Title",y(o,t+n)).replace("@Describe","").replace("@Function",xe(o,r)).replace("@TestCase",be(e)).replace("@Console",Le(e))}function je(e,t){return new Promise(n=>{ve(t.detail,e);let o=yt(t);ht.writeFile(e,o,r=>{if(r)throw r;n()})})}function Pe(e,t){return new Promise(n=>{let o=qe.normalize(qe.join(t,`question${j(e.lang)}`));Ee.existsSync(o)?n(!1):z(t,o,e).then(r=>n(r)).catch(()=>n(!1))})}function z(e,t,n){return new Promise((o,r)=>{try{Ee.mkdir(e,{recursive:!0},async()=>{if(await je(t,n),!n.code){let i=await ye(n.slug);console.warn(`\u6B64\u9898\u76EE\u4E0D\u652F\u6301\u5F53\u524D\u8BED\u8A00[${n.lang}]!\u53D7\u652F\u6301\u7684\u8BED\u8A00\u6709[${i.join(",")}]!`)}o(t)})}catch(i){r(i)}})}import H from"node:path";import{readdirSync as xt}from"node:fs";function Ne(e,t){return xt(e).filter(n=>n.includes(t)).length}function Ie(e,t){if(!e||!e.id)return Promise.reject(new Error("question is empty"));let n=H.dirname(t),o=`${e.id}.${e.slug}`,r=` [${Ne(n,o)}]`,i=H.join(n,`${o}${r}`),s=H.join(i,`question${j(e.lang)}`);return z(i,s,e)}import wt from"node:fs";function De(e,t){return new Promise(n=>{let o=0,r=wt.createReadStream(e,{encoding:"utf-8"});r.on("data",i=>{let s=i.split(` | ||
`);for(let l of s)if(o++,l.includes(t)){r.close(),n(o);return}}),r.on("end",()=>{console.warn(`"${t}" not found in file: ${e}`),n(0)}),r.on("error",()=>{console.warn(`"${t}" not found in file: ${e}`),n(0)})})}function Ue(e,t,n){return a.info(`MODE: ${e}`),new Promise(o=>{Ce(e,t);let r=_t.join(n,$e(t));Pe(t,r).then(async i=>{i||(i=await Ie(t,r));let s=await De(i,"@QUESTION_START")+1;a.info(`\u9898\u76EE[${E(t)}]\u83B7\u53D6\u6210\u529F! | ||
\u9898\u76EE\u6587\u4EF6\u5730\u5740\u4E3A:file://${i}:${s}`),o(!0)})})}async function P(e,t=process.cwd()){let{question:n}=await Se(e);await Z(n.questionId,t)}async function Z(e,t=process.cwd()){let n=await _e(e);n?.id||a.warn(`\u6307\u5B9A\u7F16\u53F7: [ ${e} ] \u9898\u76EE\u4E0D\u5B58\u5728.`),await Ue("identity",n,t)}async function Be(e){return(await u(q(e.toString())))?.data?.problemsetQuestionList?.questions}function Oe(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query GetStudyPlanByCatalog($catalogSlug: String!, $offset: Int!, $limit: Int!) {\\n studyPlansV2ByCatalog(catalogSlug: $catalogSlug, offset: $offset, limit: $limit) {\\n hasMore\\n total\\n studyPlans {\\n slug\\n questionNum\\n premiumOnly\\n onGoing\\n name\\n highlight\\n cover\\n }\\n }\\n}\\n ","variables":{"offset":0,"catalogSlug":"${e}","limit":12},"operationName":"GetStudyPlanByCatalog"}`,method:"POST"}}async function N(e){let t=await u(Oe(e)),{data:{studyPlansV2ByCatalog:{studyPlans:n}}}=t;return n}function Ae(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query studyPlanPastSolved($slug: String!) {\\n studyPlanV2Detail(planSlug: $slug) {\\n planSubGroups {\\n slug\\n questions {\\n titleSlug\\n translatedTitle\\n status\\n }\\n }\\n }\\n}\\n ","variables":{"slug":"${e}"},"operationName":"studyPlanPastSolved"}`,method:"POST"}}async function I(e){let t=await u(Ae(e)),{data:{studyPlanV2Detail:n}}=t;return n}async function St(e,t=process.cwd()){return e.map(n=>P(n,t))}async function Fe(e,t){let{planSubGroups:n}=await I(e),o=n.reduce((i,s)=>(i.push(...s.questions.map(l=>l.titleSlug)),i),[]),r=await St(o,t);return await Promise.allSettled(r)}function K(e){return e.map(t=>({name:`${t.name}${t.premiumOnly?"(VIP)":""}`,value:t.slug}))}async function bt(e=process.cwd()){let t=await N("sprint-interview-company"),n=await N("cracking-coding-interview"),o=await N("deep-dive-topics"),i={message:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8BA1\u5212",choices:[...K(t),new Re,...K(n),new Re,...K(o)],pageSize:30},s=await b(i),l=await b({message:"\u62C9\u9898\u6A21\u5F0F",choices:[{name:"\u5355\u4E2A\u9009\u62E9",value:"single"},{name:"\u5168\u90E8\u62C9\u53D6(\u4E0D\u7A69\u5B9A)",value:"all"}]});if(l==="single"){let{planSubGroups:p}=await I(s),f={message:"\u8BF7\u9009\u62E9\u9898\u76EE?",choices:p.reduce((w,Ye)=>(w.push(...Ye.questions.map(ee=>({cnTitle:ee.translatedTitle,enTitle:ee.titleSlug}))),w),[]).map(w=>({name:w.cnTitle,value:w.enTitle})),pageSize:30},D=await b(f);await P(D,e)}l==="all"&&await Fe(s,Ct.resolve(e,s.toString()))}async function kt(e=process.cwd()){let t=await $t({message:"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD",name:"keyword"}),r={type:"list",name:"chooseQuestion",message:"\u8BF7\u9009\u62E9\u9898\u76EE",choices:(await Be(t))?.map(s=>({name:`${s.frontendQuestionId}.${s.titleCn}`,value:s.frontendQuestionId}))},i=await b(r);await Z(i,e)}async function vt(e){a.info(e)}async function Ge(e=process.cwd()){let o=await b({message:"\u8BF7\u9009\u62E9\u67E5\u627E\u7684\u6A21\u5F0F?",choices:[{name:"\u5173\u952E\u8BCD\u641C\u7D22",value:"keyword",description:"\u5173\u952E\u8BCD\u63CF\u8FF0"},{name:"\u5B66\u4E60\u8BA1\u5212",value:"study",description:"\u4F01\u4E1A\u548C\u7ECF\u5178\u9762\u8BD5\u9898\u76EE\u5217\u8868"},{name:"\u7B5B\u9009\u6A21\u5F0F",value:"select",description:"\u7B5B\u9009\u9898\u76EE"}]});await{study:bt,keyword:kt,select:vt}[o](e)}import Ke from"node:path";import{fork as Ot}from"node:child_process";import ze from"inquirer";import Qt from"node:fs";import Lt from"node:path";var Tt=x(se,k),jt=x(ae,U,k,"master/package.json"),qt=x(ce,U,k,"raw","master/package.json");async function Et(){try{return(await y(Tt,{method:"GET"}))["dist-tags"]?.latest}catch(e){throw new Error(e)}}async function W(){try{let[{reason:e,value:t},{reason:n,value:o}]=await Promise.allSettled([y(jt,{method:"GET"}),y(qt,{method:"GET"})]);return t?.version??o?.version}catch(e){throw new Error(e)}}function Pt(){try{let{version:e}=JSON.parse(Qt.readFileSync(Lt.resolve(d,"package.json"),"utf-8"));return e}catch{return!1}}async function Me(){let e=await Et(),t=await W(),n=Pt();return{localVersion:n,npmVersion:e,githubVersion:t,isCliUpdate:e!==n,isGithubUpdate:t!==n}}import{exec as Ve}from"node:child_process";import Nt from"node:https";import X from"node:fs";import It from"inquirer";async function Je(e){switch(e){case"cli":return await Dt();case"project":return await Ut();default:throw new Error(`Unsupported environment: ${e}`)}}function Dt(){return new Promise((e,t)=>{Ve("npm install -g leetcode-practice",n=>{n?t(n):e()})})}async function Ut(){a.info("\u811A\u672C\u5347\u7EA7\u4E2D,\u8BF7\u7B49\u5F85\u540E\u7EED\u7248\u672C\u66F4\u65B0...");return;async function e(t){return new Promise((n,o)=>{Ve(t,(r,i)=>{r?o(r):n(i.trim())})})}try{let t=await W(),{hasChanges:n}=await It.prompt([{type:"confirm",name:"hasChanges",message:"\u662F\u5426\u5B58\u5728\u81EA\u5DF1\u4FEE\u6539\u8FC7\u7684\u5185\u5BB9\uFF1F",default:!1}]);if(n){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u5904\u7406\u540E\u518D\u66F4\u65B0\u3002");return}if(await e("git status --porcelain")){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u63D0\u4EA4\u540E\u518D\u66F4\u65B0\u3002");return}let i=(await Nt.get("https://raw.githubusercontent.com/wh131462/leetcode-practice")).data;for(let l in i)X.writeFileSync(l,i[l]),await e(`git add ${l}`);let s=JSON.parse(X.readFileSync("package.json","utf-8"));s.version=`${t}`,X.writeFileSync("package.json",JSON.stringify(s,null,2)),await e(`git commit -m "update:${t}"`),a.info("\u9879\u76EE\u66F4\u65B0\u5B8C\u6210\u3002")}catch(t){console.error("\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF:",t)}}async function He(){let e=v(),t={type:"list",name:"choseEnv",message:`\u81EA\u52A8\u68C0\u6D4B\u5230\u7684\u73AF\u5883\u4E3A[ ${e} ],\u5982\u679C\u4E0D\u662F,\u8BF7\u8FDB\u884C\u9009\u62E9,\u5982\u662F,\u8BF7\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4.`,choices:["cli","project"],default:e},{choseEnv:n}=await ze.prompt(t,null),{localVersion:o="\u672A\u68C0\u51FA",npmVersion:r="\u672A\u68C0\u51FA",githubVersion:i="\u672A\u68C0\u51FA",isCliUpdate:s,isGithubUpdate:l}=await Me();a.info(`\u5F53\u524D\u7248\u672C:[ ${o} ] npm\u5305\u6700\u65B0\u7248\u672C:[ ${r} ] github\u7248\u672C:[ ${i} ]`);let p=!1,c="\u672A\u77E5";switch(n){case"project":p=l,c=i;break;case"cli":p=s,c=r;break;default:a.warn("\u672A\u77E5\u73AF\u5883:",n),process.exit(0);break}if(p){let f={type:"confirm",name:"willUpdate",message:`\u68C0\u6D4B\u5230[ ${e} ]\u53EF\u66F4\u65B0\u7248\u672C[ ${c} ],\u662F\u5426\u8FDB\u884C\u66F4\u65B0?`},{willUpdate:D}=await ze.prompt(f,null);D?(a.info("\u5F00\u59CB\u66F4\u65B0..."),await Je(e),a.info("\u66F4\u65B0\u5B8C\u6210~\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~")):a.info("\u4F60\u9009\u62E9\u8DF3\u8FC7\u6B64\u6B21\u66F4\u65B0,\u5982\u679C\u60F3\u8981\u8FDB\u884C\u66F4\u65B0,\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u53C2\u6570 -u \u8FDB\u884C\u66F4\u65B0\u68C0\u6D4B!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}else a.info("\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}import Bt from"inquirer";async function Ze(e=m){let n=[{type:"list",name:"newSet",message:"\u8BF7\u786E\u8BA4\u4F60\u8981\u8BBE\u7F6ECLI\u7684\u8BED\u8A00\u73AF\u5883(\u5982\u679C\u9009\u9879\u5339\u914D\u6210\u529F\uFF0C\u90A3\u4E48\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4\u5373\u53EF)",choices:F.map(r=>r.name),default:e}],{newSet:o}=await Bt.prompt(n,null);a.info("\u8BBE\u7F6E\u8BED\u8A00\u73AF\u5883\u4E3A:",o),await de(o),process.exit(0)}async function We(e,t){Ot(Ke.resolve(d,"common/utils/cli-utils/checkUpdate.js"));let n=e.directory?Ke.join(process.cwd(),e.directory):process.cwd();if(e.language){if(e.language!==!0)await Ze(e.language);else{let o=await T();a.info(`\u5F53\u524DCLI\u8BED\u8A00\u73AF\u5883\u4E3A:${o}`)}process.exit(0)}return e?.easy&&(await t(n),process.exit(0)),e.update&&(await He(),process.exit(0)),n}function Xe(...e){return e}var At="1.0.9-0";Y.version(At).description(`${te} | ||
\u9898\u76EE\u6587\u4EF6\u5730\u5740\u4E3A:file://${i}:${s}`),o(!0)})})}async function P(e,t=process.cwd()){let{question:n}=await Se(e);await Z(n.questionId,t)}async function Z(e,t=process.cwd()){let n=await _e(e);n?.id||a.warn(`\u6307\u5B9A\u7F16\u53F7: [ ${e} ] \u9898\u76EE\u4E0D\u5B58\u5728.`),await Ue("identity",n,t)}async function Be(e){return(await u(q(e.toString())))?.data?.problemsetQuestionList?.questions}function Oe(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query GetStudyPlanByCatalog($catalogSlug: String!, $offset: Int!, $limit: Int!) {\\n studyPlansV2ByCatalog(catalogSlug: $catalogSlug, offset: $offset, limit: $limit) {\\n hasMore\\n total\\n studyPlans {\\n slug\\n questionNum\\n premiumOnly\\n onGoing\\n name\\n highlight\\n cover\\n }\\n }\\n}\\n ","variables":{"offset":0,"catalogSlug":"${e}","limit":12},"operationName":"GetStudyPlanByCatalog"}`,method:"POST"}}async function N(e){let t=await u(Oe(e)),{data:{studyPlansV2ByCatalog:{studyPlans:n}}}=t;return n}function Ae(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query studyPlanPastSolved($slug: String!) {\\n studyPlanV2Detail(planSlug: $slug) {\\n planSubGroups {\\n slug\\n questions {\\n titleSlug\\n translatedTitle\\n status\\n }\\n }\\n }\\n}\\n ","variables":{"slug":"${e}"},"operationName":"studyPlanPastSolved"}`,method:"POST"}}async function I(e){let t=await u(Ae(e)),{data:{studyPlanV2Detail:n}}=t;return n}async function St(e,t=process.cwd()){return e.map(n=>P(n,t))}async function Fe(e,t){let{planSubGroups:n}=await I(e),o=n.reduce((i,s)=>(i.push(...s.questions.map(l=>l.titleSlug)),i),[]),r=await St(o,t);return await Promise.allSettled(r)}function K(e){return e.map(t=>({name:`${t.name}${t.premiumOnly?"(VIP)":""}`,value:t.slug}))}async function bt(e=process.cwd()){let t=await N("sprint-interview-company"),n=await N("cracking-coding-interview"),o=await N("deep-dive-topics"),i={message:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8BA1\u5212",choices:[...K(t),new Re,...K(n),new Re,...K(o)],pageSize:30},s=await k(i),l=await k({message:"\u62C9\u9898\u6A21\u5F0F",choices:[{name:"\u5355\u4E2A\u9009\u62E9",value:"single"},{name:"\u5168\u90E8\u62C9\u53D6(\u4E0D\u7A69\u5B9A)",value:"all"}]});if(l==="single"){let{planSubGroups:p}=await I(s),f={message:"\u8BF7\u9009\u62E9\u9898\u76EE?",choices:p.reduce((_,Ye)=>(_.push(...Ye.questions.map(ee=>({cnTitle:ee.translatedTitle,enTitle:ee.titleSlug}))),_),[]).map(_=>({name:_.cnTitle,value:_.enTitle})),pageSize:30},D=await k(f);await P(D,e)}l==="all"&&await Fe(s,Ct.resolve(e,s.toString()))}async function kt(e=process.cwd()){let t=await $t({message:"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD",name:"keyword"}),r={type:"list",name:"chooseQuestion",message:"\u8BF7\u9009\u62E9\u9898\u76EE",choices:(await Be(t))?.map(s=>({name:`${s.frontendQuestionId}.${s.titleCn}`,value:s.frontendQuestionId}))},i=await k(r);await Z(i,e)}async function vt(e){a.info(e)}async function Ge(e=process.cwd()){let o=await k({message:"\u8BF7\u9009\u62E9\u67E5\u627E\u7684\u6A21\u5F0F?",choices:[{name:"\u5173\u952E\u8BCD\u641C\u7D22",value:"keyword",description:"\u5173\u952E\u8BCD\u63CF\u8FF0"},{name:"\u5B66\u4E60\u8BA1\u5212",value:"study",description:"\u4F01\u4E1A\u548C\u7ECF\u5178\u9762\u8BD5\u9898\u76EE\u5217\u8868"},{name:"\u7B5B\u9009\u6A21\u5F0F",value:"select",description:"\u7B5B\u9009\u9898\u76EE"}]});await{study:bt,keyword:kt,select:vt}[o](e)}import Ke from"node:path";import{fork as Ot}from"node:child_process";import ze from"inquirer";import Qt from"node:fs";import Lt from"node:path";var Tt=w(se,v),jt=w(ae,U,v,"master/package.json"),qt=w(ce,U,v,"raw","master/package.json");async function Et(){try{return(await x(Tt,{method:"GET"}))["dist-tags"]?.latest}catch(e){throw new Error(e)}}async function W(){try{let[{reason:e,value:t},{reason:n,value:o}]=await Promise.allSettled([x(jt,{method:"GET"}),x(qt,{method:"GET"})]);return t?.version??o?.version}catch(e){throw new Error(e)}}function Pt(){try{let{version:e}=JSON.parse(Qt.readFileSync(Lt.resolve(g,"package.json"),"utf-8"));return e}catch{return!1}}async function Me(){let e=await Et(),t=await W(),n=Pt();return{localVersion:n,npmVersion:e,githubVersion:t,isCliUpdate:e!==n,isGithubUpdate:t!==n}}import{exec as Ve}from"node:child_process";import Nt from"node:https";import X from"node:fs";import It from"inquirer";async function Je(e){switch(e){case"cli":return await Dt();case"project":return await Ut();default:throw new Error(`Unsupported environment: ${e}`)}}function Dt(){return new Promise((e,t)=>{Ve("npm install -g leetcode-practice",n=>{n?t(n):e()})})}async function Ut(){a.info("\u811A\u672C\u5347\u7EA7\u4E2D,\u8BF7\u7B49\u5F85\u540E\u7EED\u7248\u672C\u66F4\u65B0...");return;async function e(t){return new Promise((n,o)=>{Ve(t,(r,i)=>{r?o(r):n(i.trim())})})}try{let t=await W(),{hasChanges:n}=await It.prompt([{type:"confirm",name:"hasChanges",message:"\u662F\u5426\u5B58\u5728\u81EA\u5DF1\u4FEE\u6539\u8FC7\u7684\u5185\u5BB9\uFF1F",default:!1}]);if(n){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u5904\u7406\u540E\u518D\u66F4\u65B0\u3002");return}if(await e("git status --porcelain")){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u63D0\u4EA4\u540E\u518D\u66F4\u65B0\u3002");return}let i=(await Nt.get("https://raw.githubusercontent.com/wh131462/leetcode-practice")).data;for(let l in i)X.writeFileSync(l,i[l]),await e(`git add ${l}`);let s=JSON.parse(X.readFileSync("package.json","utf-8"));s.version=`${t}`,X.writeFileSync("package.json",JSON.stringify(s,null,2)),await e(`git commit -m "update:${t}"`),a.info("\u9879\u76EE\u66F4\u65B0\u5B8C\u6210\u3002")}catch(t){console.error("\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF:",t)}}async function He(){let e=d(),t={type:"list",name:"choseEnv",message:`\u81EA\u52A8\u68C0\u6D4B\u5230\u7684\u73AF\u5883\u4E3A[ ${e} ],\u5982\u679C\u4E0D\u662F,\u8BF7\u8FDB\u884C\u9009\u62E9,\u5982\u662F,\u8BF7\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4.`,choices:["cli","project"],default:e},{choseEnv:n}=await ze.prompt(t,null),{localVersion:o="\u672A\u68C0\u51FA",npmVersion:r="\u672A\u68C0\u51FA",githubVersion:i="\u672A\u68C0\u51FA",isCliUpdate:s,isGithubUpdate:l}=await Me();a.info(`\u5F53\u524D\u7248\u672C:[ ${o} ] npm\u5305\u6700\u65B0\u7248\u672C:[ ${r} ] github\u7248\u672C:[ ${i} ]`);let p=!1,c="\u672A\u77E5";switch(n){case"project":p=l,c=i;break;case"cli":p=s,c=r;break;default:a.warn("\u672A\u77E5\u73AF\u5883:",n),process.exit(0);break}if(p){let f={type:"confirm",name:"willUpdate",message:`\u68C0\u6D4B\u5230[ ${e} ]\u53EF\u66F4\u65B0\u7248\u672C[ ${c} ],\u662F\u5426\u8FDB\u884C\u66F4\u65B0?`},{willUpdate:D}=await ze.prompt(f,null);D?(a.info("\u5F00\u59CB\u66F4\u65B0..."),await Je(e),a.info("\u66F4\u65B0\u5B8C\u6210~\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~")):a.info("\u4F60\u9009\u62E9\u8DF3\u8FC7\u6B64\u6B21\u66F4\u65B0,\u5982\u679C\u60F3\u8981\u8FDB\u884C\u66F4\u65B0,\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u53C2\u6570 -u \u8FDB\u884C\u66F4\u65B0\u68C0\u6D4B!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}else a.info("\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}import Bt from"inquirer";async function Ze(e=m){let n=[{type:"list",name:"newSet",message:"\u8BF7\u786E\u8BA4\u4F60\u8981\u8BBE\u7F6ECLI\u7684\u8BED\u8A00\u73AF\u5883(\u5982\u679C\u9009\u9879\u5339\u914D\u6210\u529F\uFF0C\u90A3\u4E48\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4\u5373\u53EF)",choices:F.map(r=>r.name),default:e}],{newSet:o}=await Bt.prompt(n,null);a.info("\u8BBE\u7F6E\u8BED\u8A00\u73AF\u5883\u4E3A:",o),await de(o),process.exit(0)}async function We(e,t){let n=Ke.resolve(g,d()==="cli"?"origin/checkUpdate.js":"common/origin/checkUpdate.js");Ot(n),a.info(n);let o=e.directory?Ke.join(process.cwd(),e.directory):process.cwd();if(e.language){if(e.language!==!0)await Ze(e.language);else{let r=await T();a.info(`\u5F53\u524DCLI\u8BED\u8A00\u73AF\u5883\u4E3A:${r}`)}process.exit(0)}return e?.easy&&(await t(o),process.exit(0)),e.update&&(await He(),process.exit(0)),o}function Xe(...e){return e}var At="1.0.9-1";Y.version(At).description(`${te} | ||
${ne} | ||
${oe}`).addHelpText("after",re+ie).option("-l, --language [language]","Set/Get the code language of question.").option("-d, --directory <directory>","Set the question directory.").option("-u, --update","Check the version to determine whether to update to the latest one.").parse(process.argv);var Ft=Y.args,Rt=Y.opts(),Gt=await We(Rt,Ge);Xe(Ft,Gt);process.exit(0); |
@@ -25,3 +25,3 @@ #! /usr/bin/env node | ||
`;var oe="Made with \u2764\uFE0F by EternalHeart team.";var re="\u2615\uFE0F Enjoy your time on coding.";function ie(e,t){return e.length>0||t.identity?"identity":t.random?"random":"today"}function se(e,t,n){switch(e){case"identity":return t.length?t.join(" "):n?.identity;case"random":case"today":default:return null}}import Je from"node:fs";import me from"node:vm";import ce from"node:v8";import{Table as Me}from"console-table-printer";function Ge(e){return e<1024?{size:1,label:"B"}:e<1048576?{size:1024,label:"KB"}:e<1073741824?{size:1048576,label:"MB"}:e<1099511627776?{size:1073741824,label:"GB"}:e<1099511627776?{size:1099511627776,label:"TB"}:{size:1099511627776,label:"PB"}}function ae(e,t=2){let n=Ge(e);return`${(e/n.size).toFixed(t)} ${n.label}`}function I(e,t){let n=typeof e;if(n!==typeof t)return!1;switch(n){case"bigint":case"boolean":case"number":case"string":case"symbol":case"undefined":return e===t;case"function":return e.toString()===t.toString();case"object":{if(e==null)return e===t;let r=Object.keys(e),i=Object.keys(t);return r.length!==i.length?!1:r.every(s=>I(e[s],t[s]))}}}var S=class e{constructor(t,n){this.val=t===void 0?0:t,this.neighbors=n===void 0?[]:n}static parse(t){let n=new Map,o=r=>{if(!n.has(r)){let i=new e(r);n.set(r,i)}return n.get(r)};return t.forEach((r,i)=>{let s=i+1,m=o(s);r.forEach(c=>{let l=o(c);m.neighbors.push(l)})}),n.size>0?n.values().next().value:null}static toArray(t){if(!t)return[];let n=new Set,o=[],r=i=>{if(n.has(i.val))return;let{neighbors:s,val:m}=i;n.add(m),o.push(s.map(({val:c})=>c)),i.neighbors.forEach(c=>{r(c)})};return r(t),o}};var C=class e{constructor(t,n,o){this.left=null,this.val=t===void 0?0:t,this.left=n===void 0?null:n,this.right=o===void 0?null:o}static parse(t){if(t.length===0)return null;let n=new e(t[0]),o=[n];for(let r=1;r<t.length;r+=2){let i=o.shift();t[r]!==null&&(i.left=new e(t[r]),o.push(i.left)),t[r+1]!==null&&(i.right=new e(t[r+1]),o.push(i.right))}return n}static toArray(t){let n=[];if(!t)return n;let o=[t];for(;o.length>0;){let r=o.shift();r?(n.push(r.val),o.push(r.left),o.push(r.right)):n.push(null)}for(;n.length>0&&n[n.length-1]===null;)n.pop();return n}};var h=class e{constructor(t,n){this.val=t===void 0?0:t,this.next=n===void 0?null:n}static parse(t){if(t.length===0)return null;let n=new e(t.shift(),null),o=n;for(;t.length>0;)o.next=new e(t.shift(),null),o=o.next;return n}static toArray(t,n=[]){return t==null?n:(n.push(t.val),e.toArray(t.next,n))}};var Re={cases:{ListNode:e=>h.parse(e),"ListNode[]":e=>e.map(t=>h.parse(t)),TreeNode:e=>C.parse(e),Node:e=>S.parse(e),default:e=>e},return:{ListNode:e=>h.toArray(e),"ListNode[]":e=>e.map(t=>h.toArray(t)),TreeNode:e=>C.toArray(e),Node:e=>S.toArray(e),default:e=>e}};function U(e,t,n="cases"){return e.map((o,r)=>{let i=t[r],s=Re[n];return s[i]?s[i](o):s.default(o)})}function Ve(e,t,n,o){let r=performance.now(),i=ce.getHeapSpaceStatistics(),s=e(...t),[m]=U([s],o,"return"),c=ce.getHeapSpaceStatistics(),l=performance.now(),u=i.reduce((f,D)=>f+=D.space_used_size,0),p=c.reduce((f,D)=>f+=D.space_used_size,0);return{\u6D4B\u8BD5\u7ED3\u679C:I(m,n)?"\u901A\u8FC7":"\u672A\u901A\u8FC7",\u9884\u671F\u7ED3\u679C:JSON.stringify(n),\u6267\u884C\u7ED3\u679C:JSON.stringify(m),\u6267\u884C\u7528\u65F6:`${Number(l-r).toFixed(4)}ms`,\u5185\u5B58\u5360\u7528:ae(p-u)}}function le(e,t,n){let o=[],{data:r,structure:i}=t,{data:s,structure:m}=n;r.forEach((l,u)=>{let p=U(l,i),f=Ve(e,p,s[u],m);o.push(f)});let c=new Me({columns:[{name:"\u6D4B\u8BD5\u7ED3\u679C",title:"\u6D4B\u8BD5\u7ED3\u679C",alignment:"center",maxLen:10},{name:"\u9884\u671F\u7ED3\u679C",title:"\u9884\u671F\u7ED3\u679C",alignment:"center",maxLen:40},{name:"\u6267\u884C\u7ED3\u679C",title:"\u6267\u884C\u7ED3\u679C",alignment:"center",maxLen:40},{name:"\u6267\u884C\u7528\u65F6",title:"\u6267\u884C\u7528\u65F6",alignment:"center",maxLen:10},{name:"\u5185\u5B58\u5360\u7528",title:"\u5185\u5B58\u5360\u7528",alignment:"center",maxLen:10}]});o.forEach(l=>{for(let u in l)(u==="\u9884\u671F\u7ED3\u679C"||u==="\u6267\u884C\u7ED3\u679C")&&(l[u]=l[u]?.length>=40?`${l[u].slice(0,37)}...`:l[u]);c.addRow(l,{color:l.\u6D4B\u8BD5\u7ED3\u679C==="\u901A\u8FC7"?"green":"red"})}),c.printTable()}function He(e,t){let n=Je.readFileSync(e,"utf-8");return new me.Script(n).runInContext(t)}async function k(e){return await He(e,me.createContext({showLogs:le,console}))}import O from"node:path";import{readdirSync as Xe,rmSync as Ye}from"node:fs";import pe from"realm";import ue from"realm";var $=class extends ue.Object{static schema={name:"Question",properties:{_id:{type:"objectId",default:()=>new ue.BSON.ObjectId},id:"string",mode:"string",slug:"string",title:"string",detail:"string",lang:"string",code:"string?",url:"string?",date:"string?",timestamp:{type:"date",default:()=>new Date}},primaryKey:"_id"}};import L from"node:path";import{fileURLToPath as ze}from"node:url";import{dirname as Ke}from"node:path";var We=ze(import.meta.url),P=Ke(We);function Q(){let e=import.meta.url;return/etc\/checkEnv.js$/im.test(e)?"project":"cli"}var y=Q()==="project"?L.dirname(L.dirname(L.dirname(P))):L.dirname(P);import Ze from"realm";var v=class extends Ze.Object{static schema={name:"Store",properties:{key:"string",value:"string",timestamp:{type:"date",default:()=>new Date}},primaryKey:"key"}};var F=O.resolve(y,"resources/stores/store.realm");async function et(){let e;try{e=await pe.open({schema:[$,v],path:F})}catch(t){t?.message?.includes("Migration")&&await tt(),e=await pe.open({schema:[$,v],path:F})}return e}async function q(e){let t=await et(),n=await e(t);return t.close(),n}function tt(){return new Promise(e=>{let t=O.dirname(F);Xe(t).forEach(o=>{Ye(O.resolve(t,o),{recursive:!0,force:!0})}),e()})}function g(e){return q(t=>t.objects("Question").filtered("mode=$0",e)?.[0]?.toJSON())}function B(e){return!e||!e?.id?"":`${e.id}.${e.slug}`}function fe(e){return`${e.id}.${e.title}`}import b from"node:path";import j from"inquirer";function de(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionTranslations($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {questionId\\n translatedTitle\\n translatedContent\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionTranslations"}`,method:"POST"}}function ge(e){return e===null?"null":typeof e}function nt(e){let t=ge(e),n=t==="object"?JSON.stringify(e):e.toString();return`$<${t}>$`+n}function ot(e){let t=/^\$<.+>\$/im;if(!t.test(e))return null;let n=e.match(t)[0].replace(/[$<>]+/g,""),o=e.replace(t,"");switch(n){case"object":return JSON.parse(o);case"bigint":return BigInt(o);case"boolean":return o==="true";case"number":return Number(o);case"function":return()=>o;case"string":default:return o}}function he(e,t){return q(n=>{let o;return n.write(()=>{let r=n.objects("Store").filtered(`key = "${e}"`)?.[0];r&&n.delete(r),o=n.create("Store",{key:e,value:nt(t)})}),o.toJSON()})}function E(e){return q(t=>{let o=t.objects("Store").filtered("key=$0",e)?.[0]?.toJSON();return ot(o?.value)})}var d="javascript";var T="leetcode-practice",A="EternalHeartTeam",ye="https://registry.npmjs.org/",xe="https://raw.githubusercontent.com/";var we="https://gitee.com/";var G=[{id:0,name:"cpp",extension:".cpp",blockComment:`/* | ||
`;var oe="Made with \u2764\uFE0F by EternalHeart team.";var re="\u2615\uFE0F Enjoy your time on coding.";function ie(e,t){return e.length>0||t.identity?"identity":t.random?"random":"today"}function se(e,t,n){switch(e){case"identity":return t.length?t.join(" "):n?.identity;case"random":case"today":default:return null}}import Je from"node:fs";import me from"node:vm";import ce from"node:v8";import{Table as Me}from"console-table-printer";function Ge(e){return e<1024?{size:1,label:"B"}:e<1048576?{size:1024,label:"KB"}:e<1073741824?{size:1048576,label:"MB"}:e<1099511627776?{size:1073741824,label:"GB"}:e<1099511627776?{size:1099511627776,label:"TB"}:{size:1099511627776,label:"PB"}}function ae(e,t=2){let n=Ge(e);return`${(e/n.size).toFixed(t)} ${n.label}`}function I(e,t){let n=typeof e;if(n!==typeof t)return!1;switch(n){case"bigint":case"boolean":case"number":case"string":case"symbol":case"undefined":return e===t;case"function":return e.toString()===t.toString();case"object":{if(e==null)return e===t;let r=Object.keys(e),i=Object.keys(t);return r.length!==i.length?!1:r.every(s=>I(e[s],t[s]))}}}var C=class e{constructor(t,n){this.val=t===void 0?0:t,this.neighbors=n===void 0?[]:n}static parse(t){let n=new Map,o=r=>{if(!n.has(r)){let i=new e(r);n.set(r,i)}return n.get(r)};return t.forEach((r,i)=>{let s=i+1,m=o(s);r.forEach(c=>{let l=o(c);m.neighbors.push(l)})}),n.size>0?n.values().next().value:null}static toArray(t){if(!t)return[];let n=new Set,o=[],r=i=>{if(n.has(i.val))return;let{neighbors:s,val:m}=i;n.add(m),o.push(s.map(({val:c})=>c)),i.neighbors.forEach(c=>{r(c)})};return r(t),o}};var k=class e{constructor(t,n,o){this.left=null,this.val=t===void 0?0:t,this.left=n===void 0?null:n,this.right=o===void 0?null:o}static parse(t){if(t.length===0)return null;let n=new e(t[0]),o=[n];for(let r=1;r<t.length;r+=2){let i=o.shift();t[r]!==null&&(i.left=new e(t[r]),o.push(i.left)),t[r+1]!==null&&(i.right=new e(t[r+1]),o.push(i.right))}return n}static toArray(t){let n=[];if(!t)return n;let o=[t];for(;o.length>0;){let r=o.shift();r?(n.push(r.val),o.push(r.left),o.push(r.right)):n.push(null)}for(;n.length>0&&n[n.length-1]===null;)n.pop();return n}};var h=class e{constructor(t,n){this.val=t===void 0?0:t,this.next=n===void 0?null:n}static parse(t){if(t.length===0)return null;let n=new e(t.shift(),null),o=n;for(;t.length>0;)o.next=new e(t.shift(),null),o=o.next;return n}static toArray(t,n=[]){return t==null?n:(n.push(t.val),e.toArray(t.next,n))}};var Re={cases:{ListNode:e=>h.parse(e),"ListNode[]":e=>e.map(t=>h.parse(t)),TreeNode:e=>k.parse(e),Node:e=>C.parse(e),default:e=>e},return:{ListNode:e=>h.toArray(e),"ListNode[]":e=>e.map(t=>h.toArray(t)),TreeNode:e=>k.toArray(e),Node:e=>C.toArray(e),default:e=>e}};function U(e,t,n="cases"){return e.map((o,r)=>{let i=t[r],s=Re[n];return s[i]?s[i](o):s.default(o)})}function Ve(e,t,n,o){let r=performance.now(),i=ce.getHeapSpaceStatistics(),s=e(...t),[m]=U([s],o,"return"),c=ce.getHeapSpaceStatistics(),l=performance.now(),u=i.reduce((f,D)=>f+=D.space_used_size,0),p=c.reduce((f,D)=>f+=D.space_used_size,0);return{\u6D4B\u8BD5\u7ED3\u679C:I(m,n)?"\u901A\u8FC7":"\u672A\u901A\u8FC7",\u9884\u671F\u7ED3\u679C:JSON.stringify(n),\u6267\u884C\u7ED3\u679C:JSON.stringify(m),\u6267\u884C\u7528\u65F6:`${Number(l-r).toFixed(4)}ms`,\u5185\u5B58\u5360\u7528:ae(p-u)}}function le(e,t,n){let o=[],{data:r,structure:i}=t,{data:s,structure:m}=n;r.forEach((l,u)=>{let p=U(l,i),f=Ve(e,p,s[u],m);o.push(f)});let c=new Me({columns:[{name:"\u6D4B\u8BD5\u7ED3\u679C",title:"\u6D4B\u8BD5\u7ED3\u679C",alignment:"center",maxLen:10},{name:"\u9884\u671F\u7ED3\u679C",title:"\u9884\u671F\u7ED3\u679C",alignment:"center",maxLen:40},{name:"\u6267\u884C\u7ED3\u679C",title:"\u6267\u884C\u7ED3\u679C",alignment:"center",maxLen:40},{name:"\u6267\u884C\u7528\u65F6",title:"\u6267\u884C\u7528\u65F6",alignment:"center",maxLen:10},{name:"\u5185\u5B58\u5360\u7528",title:"\u5185\u5B58\u5360\u7528",alignment:"center",maxLen:10}]});o.forEach(l=>{for(let u in l)(u==="\u9884\u671F\u7ED3\u679C"||u==="\u6267\u884C\u7ED3\u679C")&&(l[u]=l[u]?.length>=40?`${l[u].slice(0,37)}...`:l[u]);c.addRow(l,{color:l.\u6D4B\u8BD5\u7ED3\u679C==="\u901A\u8FC7"?"green":"red"})}),c.printTable()}function He(e,t){let n=Je.readFileSync(e,"utf-8");return new me.Script(n).runInContext(t)}async function $(e){return await He(e,me.createContext({showLogs:le,console}))}import O from"node:path";import{readdirSync as Xe,rmSync as Ye}from"node:fs";import pe from"realm";import ue from"realm";var v=class extends ue.Object{static schema={name:"Question",properties:{_id:{type:"objectId",default:()=>new ue.BSON.ObjectId},id:"string",mode:"string",slug:"string",title:"string",detail:"string",lang:"string",code:"string?",url:"string?",date:"string?",timestamp:{type:"date",default:()=>new Date}},primaryKey:"_id"}};import L from"node:path";import{fileURLToPath as ze}from"node:url";import{dirname as Ke}from"node:path";var We=ze(import.meta.url),P=Ke(We);function y(){let e=import.meta.url;return/etc\/checkEnv.js$/im.test(e)?"project":"cli"}var x=y()==="project"?L.dirname(L.dirname(L.dirname(P))):L.dirname(P);import Ze from"realm";var q=class extends Ze.Object{static schema={name:"Store",properties:{key:"string",value:"string",timestamp:{type:"date",default:()=>new Date}},primaryKey:"key"}};var F=O.resolve(x,"resources/stores/store.realm");async function et(){let e;try{e=await pe.open({schema:[v,q],path:F})}catch(t){t?.message?.includes("Migration")&&await tt(),e=await pe.open({schema:[v,q],path:F})}return e}async function j(e){let t=await et(),n=await e(t);return t.close(),n}function tt(){return new Promise(e=>{let t=O.dirname(F);Xe(t).forEach(o=>{Ye(O.resolve(t,o),{recursive:!0,force:!0})}),e()})}function g(e){return j(t=>t.objects("Question").filtered("mode=$0",e)?.[0]?.toJSON())}function E(e){return!e||!e?.id?"":`${e.id}.${e.slug}`}function fe(e){return`${e.id}.${e.title}`}import S from"node:path";import Q from"inquirer";function de(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionTranslations($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {questionId\\n translatedTitle\\n translatedContent\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionTranslations"}`,method:"POST"}}function ge(e){return e===null?"null":typeof e}function nt(e){let t=ge(e),n=t==="object"?JSON.stringify(e):e.toString();return`$<${t}>$`+n}function ot(e){let t=/^\$<.+>\$/im;if(!t.test(e))return null;let n=e.match(t)[0].replace(/[$<>]+/g,""),o=e.replace(t,"");switch(n){case"object":return JSON.parse(o);case"bigint":return BigInt(o);case"boolean":return o==="true";case"number":return Number(o);case"function":return()=>o;case"string":default:return o}}function he(e,t){return j(n=>{let o;return n.write(()=>{let r=n.objects("Store").filtered(`key = "${e}"`)?.[0];r&&n.delete(r),o=n.create("Store",{key:e,value:nt(t)})}),o.toJSON()})}function B(e){return j(t=>{let o=t.objects("Store").filtered("key=$0",e)?.[0]?.toJSON();return ot(o?.value)})}var d="javascript";var T="leetcode-practice",A="EternalHeartTeam",ye="https://registry.npmjs.org/",xe="https://raw.githubusercontent.com/";var we="https://gitee.com/";var G=[{id:0,name:"cpp",extension:".cpp",blockComment:`/* | ||
* | ||
@@ -84,3 +84,3 @@ */`,lineComment:"//"},{id:1,name:"java",extension:".java",blockComment:`/* | ||
* | ||
*/`,lineComment:"--"}];async function _e(e=d){await he("language",e)}async function N(){return await E("language")??d}function rt(e){return G.find(t=>t.name.toLowerCase()===e.toLowerCase())}function R(e=d){return rt(e)?.extension}async function x(e,t){return await fetch(e,t).then(n=>n.json())}function w(e,...t){let n=e.replace(/\/$/,""),o=t.join("/").replace(/(\/){1,3}/gim,"/").replace(/^\//,"");return[n,o].join("/")}async function _(e,t="https://leetcode.cn/"){return await x(w(t,"graphql"),e)}function be(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionEditorData($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {\\n questionId\\n questionFrontendId\\n codeSnippets {\\n lang\\n langSlug\\n code\\n }\\n envInfo\\n enableRunCode\\n hasFrontendPreview\\n frontendPreviews\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionEditorData"}`,method:"POST"}}async function Se(e){return(await _(be(e))).data.question?.codeSnippets}async function Ce(e,t){return(await Se(e))?.find(o=>o.langSlug===t)?.code}async function ke(e,t={}){let o=(await _(de(e))).data.question,r=await N(),i=await Ce(e,r);return{id:o?.questionId,slug:e,title:o?.translatedTitle,detail:o?.translatedContent,lang:r,code:i,...t}}function $e(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\n problemsetQuestionList(\\n categorySlug: $categorySlug\\n limit: $limit\\n skip: $skip\\n filters: $filters\\n ) {\\n hasMore\\n total\\n questions {\\n acRate\\n difficulty\\n freqBar\\n frontendQuestionId\\n isFavor\\n paidOnly\\n solutionNum\\n status\\n title\\n titleCn\\n titleSlug\\n topicTags {\\n name\\n nameTranslated\\n id\\n slug\\n }\\n extra {\\n hasVideoSolution\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n }\\n}\\n ","variables":{"categorySlug":"all-code-essentials","skip":0,"limit":50,"filters":{"searchKeywords":"${e}"}},"operationName":"problemsetQuestionList"}`,method:"POST"}}async function ve(e){let n=(await _($e(e.toString())))?.data?.problemsetQuestionList?.questions?.find(i=>i?.frontendQuestionId===e.toString());if(!n)return{id:null};let o=n.titleSlug;return await ke(o,{id:e})}import{readdirSync as it}from"node:fs";function qe(e,t){return it(e).filter(n=>n.includes(t)).length}import{readdirSync as st}from"node:fs";function je(e,t){return st(e).filter(n=>n.includes(t))}import M from"chalk";var V=class{constructor(t){}info(t,...n){console.log(M.blue(t,...n))}warn(t,...n){console.log(M.yellow(t,...n))}error(t,...n){console.log(M.red(t,...n))}},{env:at=null}=await E("config")??{},a=new V(at);async function Qe(){let e=[{type:"list",name:"mode",message:"\u8BF7\u9009\u62E9\u68C0\u67E5\u95EE\u9898\u7684\u6A21\u5F0F:",choices:["today","identity","random"]}],{mode:t}=await j.prompt(e,null),n=[{type:"input",name:"identity",message:"\u8BF7\u8F93\u5165\u9898\u76EE\u7F16\u53F7:"}],o;switch(t){case"identity":{let{identity:p}=await j.prompt(n,null);o=p?await ve(p):await g(t);break}case"random":o=await g(t);break;case"today":default:o=await g(t);break}let r=B(o),i=process.cwd(),s=b.join(i,r),m=[{type:"confirm",name:"dirRight",message:`\u662F\u5426\u68C0\u6D4B\u5F53\u524D\u76EE\u5F55[ ${i} ]\u4E0B\u7684\u9898\u76EE[ ${r} ]?`}],{dirRight:c}=await j.prompt(m,null);if(!c){let p=[{type:"input",name:"newDir",message:`\u8BF7\u9009\u62E9\u65B0\u76EE\u5F55(\u57FA\u7840\u5730\u5740\u4E3A${i})[\u6309\u56DE\u8F66[Enter]\u7EC8\u6B62\u64CD\u4F5C]:`}],{newDir:f}=await j.prompt(p,null);f||(a.info("[LK-logger]\u7528\u6237\u7EC8\u6B62\u64CD\u4F5C~"),process.exit(0)),s=b.join(b.join(process.cwd(),f),`${r}`)}let l=b.dirname(s);if(qe(l,r)>1){let p=[{type:"list",name:"selectQuestion",message:`\u9898\u76EE[ ${r} ]\u6709\u591A\u4E2A\u526F\u672C,\u8BF7\u9009\u62E9\u8981\u68C0\u6D4B\u7684\u526F\u672C:`,choices:je(l,r)}],{selectQuestion:f}=await j.prompt(p,null);s=b.join(l,f),a.info(`\u7528\u6237\u9009\u62E9\u9898\u76EE[ ${r}]\u7684\u526F\u672C[ ${f}]\u8FDB\u884C\u68C0\u6D4B`)}let u=b.join(s,`question${o.lang}`);await k(u),a.info(`\u9898\u76EE[${r}]\u68C0\u67E5\u5B8C\u6210\uFF01 | ||
*/`,lineComment:"--"}];async function _e(e=d){await he("language",e)}async function N(){return await B("language")??d}function rt(e){return G.find(t=>t.name.toLowerCase()===e.toLowerCase())}function R(e=d){return rt(e)?.extension}async function w(e,t){return await fetch(e,t).then(n=>n.json())}function _(e,...t){let n=e.replace(/\/$/,""),o=t.join("/").replace(/(\/){1,3}/gim,"/").replace(/^\//,"");return[n,o].join("/")}async function b(e,t="https://leetcode.cn/"){return await w(_(t,"graphql"),e)}function be(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query questionEditorData($titleSlug: String!) {\\n question(titleSlug: $titleSlug) {\\n questionId\\n questionFrontendId\\n codeSnippets {\\n lang\\n langSlug\\n code\\n }\\n envInfo\\n enableRunCode\\n hasFrontendPreview\\n frontendPreviews\\n }\\n}\\n ","variables":{"titleSlug":"${e}"},"operationName":"questionEditorData"}`,method:"POST"}}async function Se(e){return(await b(be(e))).data.question?.codeSnippets}async function Ce(e,t){return(await Se(e))?.find(o=>o.langSlug===t)?.code}async function ke(e,t={}){let o=(await b(de(e))).data.question,r=await N(),i=await Ce(e,r);return{id:o?.questionId,slug:e,title:o?.translatedTitle,detail:o?.translatedContent,lang:r,code:i,...t}}function $e(e){return{headers:{"content-type":"application/json"},body:`{"query":"\\n query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) {\\n problemsetQuestionList(\\n categorySlug: $categorySlug\\n limit: $limit\\n skip: $skip\\n filters: $filters\\n ) {\\n hasMore\\n total\\n questions {\\n acRate\\n difficulty\\n freqBar\\n frontendQuestionId\\n isFavor\\n paidOnly\\n solutionNum\\n status\\n title\\n titleCn\\n titleSlug\\n topicTags {\\n name\\n nameTranslated\\n id\\n slug\\n }\\n extra {\\n hasVideoSolution\\n topCompanyTags {\\n imgUrl\\n slug\\n numSubscribed\\n }\\n }\\n }\\n }\\n}\\n ","variables":{"categorySlug":"all-code-essentials","skip":0,"limit":50,"filters":{"searchKeywords":"${e}"}},"operationName":"problemsetQuestionList"}`,method:"POST"}}async function ve(e){let n=(await b($e(e.toString())))?.data?.problemsetQuestionList?.questions?.find(i=>i?.frontendQuestionId===e.toString());if(!n)return{id:null};let o=n.titleSlug;return await ke(o,{id:e})}import{readdirSync as it}from"node:fs";function qe(e,t){return it(e).filter(n=>n.includes(t)).length}import{readdirSync as st}from"node:fs";function je(e,t){return st(e).filter(n=>n.includes(t))}import M from"chalk";var V=class{constructor(t){}info(t,...n){console.log(M.blue(t,...n))}warn(t,...n){console.log(M.yellow(t,...n))}error(t,...n){console.log(M.red(t,...n))}},{env:at=null}=await B("config")??{},a=new V(at);async function Qe(){let e=[{type:"list",name:"mode",message:"\u8BF7\u9009\u62E9\u68C0\u67E5\u95EE\u9898\u7684\u6A21\u5F0F:",choices:["today","identity","random"]}],{mode:t}=await Q.prompt(e,null),n=[{type:"input",name:"identity",message:"\u8BF7\u8F93\u5165\u9898\u76EE\u7F16\u53F7:"}],o;switch(t){case"identity":{let{identity:p}=await Q.prompt(n,null);o=p?await ve(p):await g(t);break}case"random":o=await g(t);break;case"today":default:o=await g(t);break}let r=E(o),i=process.cwd(),s=S.join(i,r),m=[{type:"confirm",name:"dirRight",message:`\u662F\u5426\u68C0\u6D4B\u5F53\u524D\u76EE\u5F55[ ${i} ]\u4E0B\u7684\u9898\u76EE[ ${r} ]?`}],{dirRight:c}=await Q.prompt(m,null);if(!c){let p=[{type:"input",name:"newDir",message:`\u8BF7\u9009\u62E9\u65B0\u76EE\u5F55(\u57FA\u7840\u5730\u5740\u4E3A${i})[\u6309\u56DE\u8F66[Enter]\u7EC8\u6B62\u64CD\u4F5C]:`}],{newDir:f}=await Q.prompt(p,null);f||(a.info("[LK-logger]\u7528\u6237\u7EC8\u6B62\u64CD\u4F5C~"),process.exit(0)),s=S.join(S.join(process.cwd(),f),`${r}`)}let l=S.dirname(s);if(qe(l,r)>1){let p=[{type:"list",name:"selectQuestion",message:`\u9898\u76EE[ ${r} ]\u6709\u591A\u4E2A\u526F\u672C,\u8BF7\u9009\u62E9\u8981\u68C0\u6D4B\u7684\u526F\u672C:`,choices:je(l,r)}],{selectQuestion:f}=await Q.prompt(p,null);s=S.join(l,f),a.info(`\u7528\u6237\u9009\u62E9\u9898\u76EE[ ${r}]\u7684\u526F\u672C[ ${f}]\u8FDB\u884C\u68C0\u6D4B`)}let u=S.join(s,`question${o.lang}`);await $(u),a.info(`\u9898\u76EE[${r}]\u68C0\u67E5\u5B8C\u6210\uFF01 | ||
\u6587\u4EF6\u5730\u5740\u4E3A: ${u}`),process.exit(0)}var Le=` | ||
@@ -90,5 +90,5 @@ A powerful practice platform for leetcode. | ||
See https://github.com/wh131462/leetcode-practice | ||
`;import Ue from"node:path";import{fork as _t}from"node:child_process";import Ne from"inquirer";import ct from"node:fs";import lt from"node:path";var mt=w(ye,T),ut=w(xe,A,T,"master/package.json"),pt=w(we,A,T,"raw","master/package.json");async function ft(){try{return(await x(mt,{method:"GET"}))["dist-tags"]?.latest}catch(e){throw new Error(e)}}async function J(){try{let[{reason:e,value:t},{reason:n,value:o}]=await Promise.allSettled([x(ut,{method:"GET"}),x(pt,{method:"GET"})]);return t?.version??o?.version}catch(e){throw new Error(e)}}function dt(){try{let{version:e}=JSON.parse(ct.readFileSync(lt.resolve(y,"package.json"),"utf-8"));return e}catch{return!1}}async function Be(){let e=await ft(),t=await J(),n=dt();return{localVersion:n,npmVersion:e,githubVersion:t,isCliUpdate:e!==n,isGithubUpdate:t!==n}}import{exec as Ee}from"node:child_process";import gt from"node:https";import H from"node:fs";import ht from"inquirer";async function Te(e){switch(e){case"cli":return await yt();case"project":return await xt();default:throw new Error(`Unsupported environment: ${e}`)}}function yt(){return new Promise((e,t)=>{Ee("npm install -g leetcode-practice",n=>{n?t(n):e()})})}async function xt(){a.info("\u811A\u672C\u5347\u7EA7\u4E2D,\u8BF7\u7B49\u5F85\u540E\u7EED\u7248\u672C\u66F4\u65B0...");return;async function e(t){return new Promise((n,o)=>{Ee(t,(r,i)=>{r?o(r):n(i.trim())})})}try{let t=await J(),{hasChanges:n}=await ht.prompt([{type:"confirm",name:"hasChanges",message:"\u662F\u5426\u5B58\u5728\u81EA\u5DF1\u4FEE\u6539\u8FC7\u7684\u5185\u5BB9\uFF1F",default:!1}]);if(n){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u5904\u7406\u540E\u518D\u66F4\u65B0\u3002");return}if(await e("git status --porcelain")){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u63D0\u4EA4\u540E\u518D\u66F4\u65B0\u3002");return}let i=(await gt.get("https://raw.githubusercontent.com/wh131462/leetcode-practice")).data;for(let m in i)H.writeFileSync(m,i[m]),await e(`git add ${m}`);let s=JSON.parse(H.readFileSync("package.json","utf-8"));s.version=`${t}`,H.writeFileSync("package.json",JSON.stringify(s,null,2)),await e(`git commit -m "update:${t}"`),a.info("\u9879\u76EE\u66F4\u65B0\u5B8C\u6210\u3002")}catch(t){console.error("\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF:",t)}}async function De(){let e=Q(),t={type:"list",name:"choseEnv",message:`\u81EA\u52A8\u68C0\u6D4B\u5230\u7684\u73AF\u5883\u4E3A[ ${e} ],\u5982\u679C\u4E0D\u662F,\u8BF7\u8FDB\u884C\u9009\u62E9,\u5982\u662F,\u8BF7\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4.`,choices:["cli","project"],default:e},{choseEnv:n}=await Ne.prompt(t,null),{localVersion:o="\u672A\u68C0\u51FA",npmVersion:r="\u672A\u68C0\u51FA",githubVersion:i="\u672A\u68C0\u51FA",isCliUpdate:s,isGithubUpdate:m}=await Be();a.info(`\u5F53\u524D\u7248\u672C:[ ${o} ] npm\u5305\u6700\u65B0\u7248\u672C:[ ${r} ] github\u7248\u672C:[ ${i} ]`);let c=!1,l="\u672A\u77E5";switch(n){case"project":c=m,l=i;break;case"cli":c=s,l=r;break;default:a.warn("\u672A\u77E5\u73AF\u5883:",n),process.exit(0);break}if(c){let u={type:"confirm",name:"willUpdate",message:`\u68C0\u6D4B\u5230[ ${e} ]\u53EF\u66F4\u65B0\u7248\u672C[ ${l} ],\u662F\u5426\u8FDB\u884C\u66F4\u65B0?`},{willUpdate:p}=await Ne.prompt(u,null);p?(a.info("\u5F00\u59CB\u66F4\u65B0..."),await Te(e),a.info("\u66F4\u65B0\u5B8C\u6210~\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~")):a.info("\u4F60\u9009\u62E9\u8DF3\u8FC7\u6B64\u6B21\u66F4\u65B0,\u5982\u679C\u60F3\u8981\u8FDB\u884C\u66F4\u65B0,\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u53C2\u6570 -u \u8FDB\u884C\u66F4\u65B0\u68C0\u6D4B!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}else a.info("\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}import wt from"inquirer";async function Ie(e=d){let n=[{type:"list",name:"newSet",message:"\u8BF7\u786E\u8BA4\u4F60\u8981\u8BBE\u7F6ECLI\u7684\u8BED\u8A00\u73AF\u5883(\u5982\u679C\u9009\u9879\u5339\u914D\u6210\u529F\uFF0C\u90A3\u4E48\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4\u5373\u53EF)",choices:G.map(r=>r.name),default:e}],{newSet:o}=await wt.prompt(n,null);a.info("\u8BBE\u7F6E\u8BED\u8A00\u73AF\u5883\u4E3A:",o),await _e(o),process.exit(0)}async function Pe(e,t){_t(Ue.resolve(y,"common/utils/cli-utils/checkUpdate.js"));let n=e.directory?Ue.join(process.cwd(),e.directory):process.cwd();if(e.language){if(e.language!==!0)await Ie(e.language);else{let o=await N();a.info(`\u5F53\u524DCLI\u8BED\u8A00\u73AF\u5883\u4E3A:${o}`)}process.exit(0)}return e?.easy&&(await t(n),process.exit(0)),e.update&&(await De(),process.exit(0)),n}import bt from"node:fs";function Oe(e,t=process.cwd()){let o=bt.readdirSync(t).filter(r=>r.startsWith(`${e}.`));return o.length>1?o:o?.[0]}import St from"node:fs";import Ct from"node:path";function z(e){let n=St.readdirSync(e).filter(o=>o.startsWith("question")).map(o=>Ct.resolve(e,o));return n?.length===1?n[0]:n}var $t="1.0.9-0";X.version($t).description(`${Le} | ||
`;import Ue from"node:path";import{fork as _t}from"node:child_process";import Ne from"inquirer";import ct from"node:fs";import lt from"node:path";var mt=_(ye,T),ut=_(xe,A,T,"master/package.json"),pt=_(we,A,T,"raw","master/package.json");async function ft(){try{return(await w(mt,{method:"GET"}))["dist-tags"]?.latest}catch(e){throw new Error(e)}}async function J(){try{let[{reason:e,value:t},{reason:n,value:o}]=await Promise.allSettled([w(ut,{method:"GET"}),w(pt,{method:"GET"})]);return t?.version??o?.version}catch(e){throw new Error(e)}}function dt(){try{let{version:e}=JSON.parse(ct.readFileSync(lt.resolve(x,"package.json"),"utf-8"));return e}catch{return!1}}async function Ee(){let e=await ft(),t=await J(),n=dt();return{localVersion:n,npmVersion:e,githubVersion:t,isCliUpdate:e!==n,isGithubUpdate:t!==n}}import{exec as Be}from"node:child_process";import gt from"node:https";import H from"node:fs";import ht from"inquirer";async function Te(e){switch(e){case"cli":return await yt();case"project":return await xt();default:throw new Error(`Unsupported environment: ${e}`)}}function yt(){return new Promise((e,t)=>{Be("npm install -g leetcode-practice",n=>{n?t(n):e()})})}async function xt(){a.info("\u811A\u672C\u5347\u7EA7\u4E2D,\u8BF7\u7B49\u5F85\u540E\u7EED\u7248\u672C\u66F4\u65B0...");return;async function e(t){return new Promise((n,o)=>{Be(t,(r,i)=>{r?o(r):n(i.trim())})})}try{let t=await J(),{hasChanges:n}=await ht.prompt([{type:"confirm",name:"hasChanges",message:"\u662F\u5426\u5B58\u5728\u81EA\u5DF1\u4FEE\u6539\u8FC7\u7684\u5185\u5BB9\uFF1F",default:!1}]);if(n){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u5904\u7406\u540E\u518D\u66F4\u65B0\u3002");return}if(await e("git status --porcelain")){a.info("\u60A8\u6709\u672A\u63D0\u4EA4\u7684\u66F4\u6539\uFF0C\u8BF7\u5148\u63D0\u4EA4\u540E\u518D\u66F4\u65B0\u3002");return}let i=(await gt.get("https://raw.githubusercontent.com/wh131462/leetcode-practice")).data;for(let m in i)H.writeFileSync(m,i[m]),await e(`git add ${m}`);let s=JSON.parse(H.readFileSync("package.json","utf-8"));s.version=`${t}`,H.writeFileSync("package.json",JSON.stringify(s,null,2)),await e(`git commit -m "update:${t}"`),a.info("\u9879\u76EE\u66F4\u65B0\u5B8C\u6210\u3002")}catch(t){console.error("\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF:",t)}}async function De(){let e=y(),t={type:"list",name:"choseEnv",message:`\u81EA\u52A8\u68C0\u6D4B\u5230\u7684\u73AF\u5883\u4E3A[ ${e} ],\u5982\u679C\u4E0D\u662F,\u8BF7\u8FDB\u884C\u9009\u62E9,\u5982\u662F,\u8BF7\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4.`,choices:["cli","project"],default:e},{choseEnv:n}=await Ne.prompt(t,null),{localVersion:o="\u672A\u68C0\u51FA",npmVersion:r="\u672A\u68C0\u51FA",githubVersion:i="\u672A\u68C0\u51FA",isCliUpdate:s,isGithubUpdate:m}=await Ee();a.info(`\u5F53\u524D\u7248\u672C:[ ${o} ] npm\u5305\u6700\u65B0\u7248\u672C:[ ${r} ] github\u7248\u672C:[ ${i} ]`);let c=!1,l="\u672A\u77E5";switch(n){case"project":c=m,l=i;break;case"cli":c=s,l=r;break;default:a.warn("\u672A\u77E5\u73AF\u5883:",n),process.exit(0);break}if(c){let u={type:"confirm",name:"willUpdate",message:`\u68C0\u6D4B\u5230[ ${e} ]\u53EF\u66F4\u65B0\u7248\u672C[ ${l} ],\u662F\u5426\u8FDB\u884C\u66F4\u65B0?`},{willUpdate:p}=await Ne.prompt(u,null);p?(a.info("\u5F00\u59CB\u66F4\u65B0..."),await Te(e),a.info("\u66F4\u65B0\u5B8C\u6210~\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~")):a.info("\u4F60\u9009\u62E9\u8DF3\u8FC7\u6B64\u6B21\u66F4\u65B0,\u5982\u679C\u60F3\u8981\u8FDB\u884C\u66F4\u65B0,\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u53C2\u6570 -u \u8FDB\u884C\u66F4\u65B0\u68C0\u6D4B!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}else a.info("\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C!\u795D\u4F60\u4F7F\u7528\u6109\u5FEB~"),process.exit(0)}import wt from"inquirer";async function Ie(e=d){let n=[{type:"list",name:"newSet",message:"\u8BF7\u786E\u8BA4\u4F60\u8981\u8BBE\u7F6ECLI\u7684\u8BED\u8A00\u73AF\u5883(\u5982\u679C\u9009\u9879\u5339\u914D\u6210\u529F\uFF0C\u90A3\u4E48\u6309\u4E0B\u56DE\u8F66\u786E\u8BA4\u5373\u53EF)",choices:G.map(r=>r.name),default:e}],{newSet:o}=await wt.prompt(n,null);a.info("\u8BBE\u7F6E\u8BED\u8A00\u73AF\u5883\u4E3A:",o),await _e(o),process.exit(0)}async function Pe(e,t){let n=Ue.resolve(x,y()==="cli"?"origin/checkUpdate.js":"common/origin/checkUpdate.js");_t(n),a.info(n);let o=e.directory?Ue.join(process.cwd(),e.directory):process.cwd();if(e.language){if(e.language!==!0)await Ie(e.language);else{let r=await N();a.info(`\u5F53\u524DCLI\u8BED\u8A00\u73AF\u5883\u4E3A:${r}`)}process.exit(0)}return e?.easy&&(await t(o),process.exit(0)),e.update&&(await De(),process.exit(0)),o}import bt from"node:fs";function Oe(e,t=process.cwd()){let o=bt.readdirSync(t).filter(r=>r.startsWith(`${e}.`));return o.length>1?o:o?.[0]}import St from"node:fs";import Ct from"node:path";function z(e){let n=St.readdirSync(e).filter(o=>o.startsWith("question")).map(o=>Ct.resolve(e,o));return n?.length===1?n[0]:n}var $t="1.0.9-1";X.version($t).description(`${Le} | ||
${te} | ||
${re}`).addHelpText("after",ne+oe).arguments("[identity]").option("-t, --today","Check the question today.").option("-i, --identity <identity>","Check the specified question by identity.").option("-r, --random","Check the last random question.").option("-e, --easy","Use easy mode.").option("-d, --directory <directory>","Set the question directory.").option("-l, --language [language]","Set/Get the code language of question.").option("-u, --update","Check the version to determine whether to update to the latest one.").parse(process.argv);var Ae=X.args,Y=X.opts(),ee=ie(Ae,Y),vt=se(ee,Ae,Y),Z=await Pe(Y,Qe);async function K(e,t){if(!t)return a.info("\u9898\u76EE\u4FE1\u606F\u4E0D\u5B58\u5728,\u8BF7\u4F7F\u7528lc\u6307\u4EE4\u8FDB\u884C\u521B\u5EFA~"),!1;let n=W.join(Z,B(t),`question${R(t?.lang)}`);return kt.existsSync(n)?(a.info(`MODE: ${e} | ||
\u9898\u76EE[${fe(t)}]\u68C0\u6D4B\u7ED3\u679C:`),await k(n)):a.info(`\u6587\u4EF6[${n}]\u4E0D\u5B58\u5728,\u8BF7\u786E\u4FDD\u5DF2\u7ECF\u521B\u5EFA!`),!0}var qt={today:async()=>{let e=await g("today");await K("today",e),process.exit(0)},random:async()=>{let e=await g("random");await K("random",e),process.exit(0)},identity:async e=>{let t;if(!e)t=await g(ee),await K("identity",t);else{t=await Oe(e);let n={type:"list",name:"need",message:"\u5728\u5F53\u524D\u76EE\u5F55\u4E0B\u5B58\u5728\u591A\u4E2A\u9898\u76EE\uFF0C\u8BF7\u9009\u62E9\u4F60\u8981\u68C0\u6D4B\u7684\u9898\u76EE:",choices:[]},o=async i=>{let s={type:"list",name:"check",message:"\u5B58\u5728\u591A\u4E2A\u9898\u76EE\u6587\u4EF6\uFF0C\u8BF7\u9009\u62E9:",choices:[],default:null},m;switch(typeof i){case"undefined":a.warn(`\u867D\u7136\u5728\u9898\u76EE\u76EE\u5F55\u4E2D\uFF0C\u4F46\u5F53\u524D\u76EE\u5F55\u4E0B\u4E0D\u5B58\u5728[${e}]\u7684\u9898\u76EE\u6587\u4EF6\uFF01`),process.exit(0);break;case"string":m=i;break;case"object":s.choices=i.map(c=>({name:c,value:c})),s.default=i?.find(c=>c.endsWith(R(d))),m=await Fe(s);break}return await k(m)},r;switch(typeof t){case"undefined":a.warn(`\u5F53\u524D\u76EE\u5F55\u4E0B\u672A\u627E\u5230\u9898\u76EEid\u4E3A[${e}]\u7684\u9898\u76EE\uFF01`),process.exit(0);break;case"string":r=z(W.resolve(Z,t));break;case"object":n.choices=t.map(i=>({name:i,value:i})),r=z(W.resolve(Z,await Fe(n)));break}await o(r)}process.exit(0)}};qt[ee](vt); | ||
${re}`).addHelpText("after",ne+oe).arguments("[identity]").option("-t, --today","Check the question today.").option("-i, --identity <identity>","Check the specified question by identity.").option("-r, --random","Check the last random question.").option("-e, --easy","Use easy mode.").option("-d, --directory <directory>","Set the question directory.").option("-l, --language [language]","Set/Get the code language of question.").option("-u, --update","Check the version to determine whether to update to the latest one.").parse(process.argv);var Ae=X.args,Y=X.opts(),ee=ie(Ae,Y),vt=se(ee,Ae,Y),Z=await Pe(Y,Qe);async function K(e,t){if(!t)return a.info("\u9898\u76EE\u4FE1\u606F\u4E0D\u5B58\u5728,\u8BF7\u4F7F\u7528lc\u6307\u4EE4\u8FDB\u884C\u521B\u5EFA~"),!1;let n=W.join(Z,E(t),`question${R(t?.lang)}`);return kt.existsSync(n)?(a.info(`MODE: ${e} | ||
\u9898\u76EE[${fe(t)}]\u68C0\u6D4B\u7ED3\u679C:`),await $(n)):a.info(`\u6587\u4EF6[${n}]\u4E0D\u5B58\u5728,\u8BF7\u786E\u4FDD\u5DF2\u7ECF\u521B\u5EFA!`),!0}var qt={today:async()=>{let e=await g("today");await K("today",e),process.exit(0)},random:async()=>{let e=await g("random");await K("random",e),process.exit(0)},identity:async e=>{let t;if(!e)t=await g(ee),await K("identity",t);else{t=await Oe(e);let n={type:"list",name:"need",message:"\u5728\u5F53\u524D\u76EE\u5F55\u4E0B\u5B58\u5728\u591A\u4E2A\u9898\u76EE\uFF0C\u8BF7\u9009\u62E9\u4F60\u8981\u68C0\u6D4B\u7684\u9898\u76EE:",choices:[]},o=async i=>{let s={type:"list",name:"check",message:"\u5B58\u5728\u591A\u4E2A\u9898\u76EE\u6587\u4EF6\uFF0C\u8BF7\u9009\u62E9:",choices:[],default:null},m;switch(typeof i){case"undefined":a.warn(`\u867D\u7136\u5728\u9898\u76EE\u76EE\u5F55\u4E2D\uFF0C\u4F46\u5F53\u524D\u76EE\u5F55\u4E0B\u4E0D\u5B58\u5728[${e}]\u7684\u9898\u76EE\u6587\u4EF6\uFF01`),process.exit(0);break;case"string":m=i;break;case"object":s.choices=i.map(c=>({name:c,value:c})),s.default=i?.find(c=>c.endsWith(R(d))),m=await Fe(s);break}return await $(m)},r;switch(typeof t){case"undefined":a.warn(`\u5F53\u524D\u76EE\u5F55\u4E0B\u672A\u627E\u5230\u9898\u76EEid\u4E3A[${e}]\u7684\u9898\u76EE\uFF01`),process.exit(0);break;case"string":r=z(W.resolve(Z,t));break;case"object":n.choices=t.map(i=>({name:i,value:i})),r=z(W.resolve(Z,await Fe(n)));break}await o(r)}process.exit(0)}};qt[ee](vt); |
@@ -1,1 +0,1 @@ | ||
{"name":"leetcode-practice","type":"module","version":"1.0.9-0","description":"A powerful practice platform for leetcode.Using any way you want to create questions.","author":{"name":"EternalHeart","email":"hao131462@qq.com"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/wh131462/leetcode-practice.git"},"bin":{"lk":"bin/lk.js","lf":"bin/lf.js","lc":"bin/lc.js"},"dependencies":{"@inquirer/input":"^2.0.1","@inquirer/select":"^2.0.0","chalk":"^5.3.0","commander":"^12.0.0","console-table-printer":"^2.12.0","glob":"^10.3.10","inquirer":"^9.2.14","realm":"^12.6.2"},"lint-staged":{"*":["eslint","prettier --write"]}} | ||
{"name":"leetcode-practice","type":"module","version":"1.0.9-1","description":"A powerful practice platform for leetcode.Using any way you want to create questions.","author":{"name":"EternalHeart","email":"hao131462@qq.com"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/wh131462/leetcode-practice.git"},"bin":{"lk":"bin/lk.js","lf":"bin/lf.js","lc":"bin/lc.js"},"dependencies":{"@inquirer/input":"^2.0.1","@inquirer/select":"^2.0.0","chalk":"^5.3.0","commander":"^12.0.0","console-table-printer":"^2.12.0","glob":"^10.3.10","inquirer":"^9.2.14","realm":"^12.6.2"},"lint-staged":{"*":["eslint","prettier --write"]}} |
126823
3.45%9
12.5%533
3.5%4
33.33%