From 80d3bbe5840f1ac1c3816b21c8d0fd459699a45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E5=A4=A9?= Date: Mon, 13 Dec 2021 15:05:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=BC=E5=85=A5=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E8=8A=82=E5=81=87=E6=97=A5=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 9 +++++++++ index.js | 10 +++++----- package.json | 2 +- src/calendar.js | 42 ++++++++++++++++++++++++++++++++++++------ src/index.js | 19 +++++++++++++++++++ src/lunar/config.js | 4 ++++ src/lunar/index.js | 17 ++++++++++++++++- 7 files changed, 90 insertions(+), 13 deletions(-) diff --git a/Readme.md b/Readme.md index ed91112..f4fe69f 100644 --- a/Readme.md +++ b/Readme.md @@ -27,6 +27,7 @@ npm i -g bash-calendar * -m - 打印指定月份的日历 * -h - 查看帮助文档 * -v - 查看程序的版本 + * -c - 导入自定义休假日, 必须是标准json格式, 语法看下面的示例 示例: @@ -37,10 +38,18 @@ cal -y 2000 # 打印指定年份的所有月份 cal -y 2021 5 # 打印指定年份, 指定月份 cal -y 2000 -m 3 # 同上 cal -m 5 # 打印当前年份的 指定月份 +cal -c {"2021.12.11":"班","2021.12.12":"休"} # 导入自定义休假日 ``` ## 更新日志 +### v1.2.0 +* 增加导入自定义节假日的功能 +* 修复日历中 1月份和12月份中的 上一个月/下一个月的节日显示 + +### v1.1.0 +* 增加二四十节气的显示 + ### v1.0.2 * 修复当天农历是3个字时的排版异常 * 周末的农历增加暗红色显示 diff --git a/index.js b/index.js index 2c33b7f..ebd6158 100755 --- a/index.js +++ b/index.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -var J0=Object.create;var I=Object.defineProperty,Q0=Object.defineProperties,e2=Object.getOwnPropertyDescriptor,t2=Object.getOwnPropertyDescriptors,n2=Object.getOwnPropertyNames,n0=Object.getOwnPropertySymbols,r2=Object.getPrototypeOf,r0=Object.prototype.hasOwnProperty,o2=Object.prototype.propertyIsEnumerable;var o0=(e,t,n)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,s0=(e,t)=>{for(var n in t||(t={}))r0.call(t,n)&&o0(e,n,t[n]);if(n0)for(var n of n0(t))o2.call(t,n)&&o0(e,n,t[n]);return e},a0=(e,t)=>Q0(e,t2(t)),s2=e=>I(e,"__esModule",{value:!0});var v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var a2=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of n2(t))!r0.call(e,r)&&r!=="default"&&I(e,r,{get:()=>t[r],enumerable:!(n=e2(t,r))||n.enumerable});return e},l0=e=>a2(s2(I(e!=null?J0(r2(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var i0=v((G2,c0)=>{"use strict";c0.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var q=v((U2,f0)=>{var S=i0(),u0={};for(let e of Object.keys(S))u0[S[e]]=e;var i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};f0.exports=i;for(let e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(t,n,r),s=Math.max(t,n,r),a=s-o,c,l;s===o?c=0:t===s?c=(n-r)/a:n===s?c=2+(r-t)/a:r===s&&(c=4+(t-n)/a),c=Math.min(c*60,360),c<0&&(c+=360);let u=(o+s)/2;return s===o?l=0:u<=.5?l=a/(s+o):l=a/(2-s-o),[c,l*100,u*100]};i.rgb.hsv=function(e){let t,n,r,o,s,a=e[0]/255,c=e[1]/255,l=e[2]/255,u=Math.max(a,c,l),f=u-Math.min(a,c,l),h=function(Z0){return(u-Z0)/6/f+1/2};return f===0?(o=0,s=0):(s=f/u,t=h(a),n=h(c),r=h(l),a===u?o=r-n:c===u?o=1/3+t-r:l===u&&(o=2/3+n-t),o<0?o+=1:o>1&&(o-=1)),[o*360,s*100,u*100]};i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],o=i.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[o,s*100,r*100]};i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(1-t,1-n,1-r),s=(1-t-o)/(1-o)||0,a=(1-n-o)/(1-o)||0,c=(1-r-o)/(1-o)||0;return[s*100,a*100,c*100,o*100]};function l2(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=u0[e];if(t)return t;let n=1/0,r;for(let o of Object.keys(S)){let s=S[o],a=l2(e,s);a.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=t*.4124+n*.3576+r*.1805,s=t*.2126+n*.7152+r*.0722,a=t*.0193+n*.1192+r*.9505;return[o*100,s*100,a*100]};i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],o=t[2];n/=95.047,r/=100,o/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let s=116*r-16,a=500*(n-r),c=200*(r-o);return[s,a,c]};i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o,s,a;if(n===0)return a=r*255,[a,a,a];r<.5?o=r*(1+n):o=r+n-r*n;let c=2*r-o,l=[0,0,0];for(let u=0;u<3;u++)s=t+1/3*-(u-1),s<0&&s++,s>1&&s--,6*s<1?a=c+(o-c)*6*s:2*s<1?a=o:3*s<2?a=c+(o-c)*(2/3-s)*6:a=c,l[u]=a*255;return l};i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=n,s=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,o*=s<=1?s:2-s;let a=(r+n)/2,c=r===0?2*o/(s+o):2*n/(r+n);return[t,c*100,a*100]};i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,s=t-Math.floor(t),a=255*r*(1-n),c=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,o){case 0:return[r,l,a];case 1:return[c,r,a];case 2:return[a,r,l];case 3:return[a,c,r];case 4:return[l,a,r];case 5:return[r,a,c]}};i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=Math.max(r,.01),s,a;a=(2-n)*r;let c=(2-n)*o;return s=n*o,s/=c<=1?c:2-c,s=s||0,a/=2,[t,s*100,a*100]};i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o=n+r,s;o>1&&(n/=o,r/=o);let a=Math.floor(6*t),c=1-r;s=6*t-a,(a&1)!=0&&(s=1-s);let l=n+s*(c-n),u,f,h;switch(a){default:case 6:case 0:u=c,f=l,h=n;break;case 1:u=l,f=c,h=n;break;case 2:u=n,f=c,h=l;break;case 3:u=n,f=l,h=c;break;case 4:u=l,f=n,h=c;break;case 5:u=c,f=n,h=l;break}return[u*255,f*255,h*255]};i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o=e[3]/100,s=1-Math.min(1,t*(1-o)+o),a=1-Math.min(1,n*(1-o)+o),c=1-Math.min(1,r*(1-o)+o);return[s*255,a*255,c*255]};i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o,s,a;return o=t*3.2406+n*-1.5372+r*-.4986,s=t*-.9689+n*1.8758+r*.0415,a=t*.0557+n*-.204+r*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),a=Math.min(Math.max(0,a),1),[o*255,s*255,a*255]};i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*n-16,s=500*(t-n),a=200*(n-r);return[o,s,a]};i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],o,s,a;s=(t+16)/116,o=n/500+s,a=s-r/200;let c=s**3,l=o**3,u=a**3;return s=c>.008856?c:(s-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,a=u>.008856?u:(a-16/116)/7.787,o*=95.047,s*=100,a*=108.883,[o,s,a]};i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],o;o=Math.atan2(r,n)*360/2/Math.PI,o<0&&(o+=360);let a=Math.sqrt(n*n+r*r);return[t,a,o]};i.lch.lab=function(e){let t=e[0],n=e[1],o=e[2]/360*2*Math.PI,s=n*Math.cos(o),a=n*Math.sin(o);return[t,s,a]};i.rgb.ansi16=function(e,t=null){let[n,r,o]=e,s=t===null?i.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),s===0)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return s===2&&(a+=60),a};i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])};i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)};i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5,r=(t&1)*n*255,o=(t>>1&1)*n*255,s=(t>>2&1)*n*255;return[r,o,s]};i.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return[s,s,s]}e-=16;let t,n=Math.floor(e/36)/5*255,r=Math.floor((t=e%36)/6)/5*255,o=t%6/5*255;return[n,r,o]};i.rgb.hex=function(e){let n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n};i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split("").map(c=>c+c).join(""));let r=parseInt(n,16),o=r>>16&255,s=r>>8&255,a=r&255;return[o,s,a]};i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.max(Math.max(t,n),r),s=Math.min(Math.min(t,n),r),a=o-s,c,l;return a<1?c=s/(1-a):c=0,a<=0?l=0:o===t?l=(n-r)/a%6:o===n?l=2+(r-t)/a:l=4+(t-n)/a,l/=6,l%=1,[l*360,a*100,c*100]};i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),o=0;return r<1&&(o=(n-.5*r)/(1-r)),[e[0],r*100,o*100]};i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],r*100,o*100]};i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let o=[0,0,0],s=t%1*6,a=s%1,c=1-a,l=0;switch(Math.floor(s)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=c,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=c,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=c}return l=(1-n)*r,[(n*o[0]+l)*255,(n*o[1]+l)*255,(n*o[2]+l)*255]};i.hcg.hsv=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t),o=0;return r>0&&(o=t/r),[e[0],o*100,r*100]};i.hcg.hsl=function(e){let t=e[1]/100,r=e[2]/100*(1-t)+.5*t,o=0;return r>0&&r<.5?o=t/(2*r):r>=.5&&r<1&&(o=t/(2*(1-r))),[e[0],o*100,r*100]};i.hcg.hwb=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],(r-t)*100,(1-r)*100]};i.hwb.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=1-n,o=r-t,s=0;return o<1&&(s=(r-o)/(1-o)),[e[0],o*100,s*100]};i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};i.gray.hsl=function(e){return[0,0,e[0]]};i.gray.hsv=i.gray.hsl;i.gray.hwb=function(e){return[0,100,e[0]]};i.gray.cmyk=function(e){return[0,0,0,e[0]]};i.gray.lab=function(e){return[e[0],0,0]};i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r};i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var h0=v((V2,d0)=>{var N=q();function c2(){let e={},t=Object.keys(N);for(let n=t.length,r=0;r{var G=q(),d2=h0(),M={},h2=Object.keys(G);function b2(e){let t=function(...n){let r=n[0];return r==null?r:(r.length>1&&(n=r),e(n))};return"conversion"in e&&(t.conversion=e.conversion),t}function g2(e){let t=function(...n){let r=n[0];if(r==null)return r;r.length>1&&(n=r);let o=e(n);if(typeof o=="object")for(let s=o.length,a=0;a{M[e]={},Object.defineProperty(M[e],"channels",{value:G[e].channels}),Object.defineProperty(M[e],"labels",{value:G[e].labels});let t=d2(e);Object.keys(t).forEach(r=>{let o=t[r];M[e][r]=g2(o),M[e][r].raw=b2(o)})});b0.exports=M});var k0=v((z2,v0)=>{"use strict";var x0=(e,t)=>(...n)=>`[${e(...n)+t}m`,p0=(e,t)=>(...n)=>{let r=e(...n);return`[${38+t};5;${r}m`},y0=(e,t)=>(...n)=>{let r=e(...n);return`[${38+t};2;${r[0]};${r[1]};${r[2]}m`},F=e=>e,m0=(e,t,n)=>[e,t,n],O=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{let r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},U,R=(e,t,n,r)=>{U===void 0&&(U=g0());let o=r?10:0,s={};for(let[a,c]of Object.entries(U)){let l=a==="ansi16"?"ansi":a;a===t?s[l]=e(n,o):typeof c=="object"&&(s[l]=e(c[t],o))}return s};function x2(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[n,r]of Object.entries(t)){for(let[o,s]of Object.entries(r))t[o]={open:`[${s[0]}m`,close:`[${s[1]}m`},r[o]=t[o],e.set(s[0],s[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",O(t.color,"ansi",()=>R(x0,"ansi16",F,!1)),O(t.color,"ansi256",()=>R(p0,"ansi256",F,!1)),O(t.color,"ansi16m",()=>R(y0,"rgb",m0,!1)),O(t.bgColor,"ansi",()=>R(x0,"ansi16",F,!0)),O(t.bgColor,"ansi256",()=>R(p0,"ansi256",F,!0)),O(t.bgColor,"ansi16m",()=>R(y0,"rgb",m0,!0)),t}Object.defineProperty(v0,"exports",{enumerable:!0,get:x2})});var E0=v((W2,w0)=>{"use strict";w0.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),o=t.indexOf("--");return r!==-1&&(o===-1||r{"use strict";var p2=require("os"),C0=require("tty"),y=E0(),{env:b}=process,k;y("no-color")||y("no-colors")||y("color=false")||y("color=never")?k=0:(y("color")||y("colors")||y("color=true")||y("color=always"))&&(k=1);"FORCE_COLOR"in b&&(b.FORCE_COLOR==="true"?k=1:b.FORCE_COLOR==="false"?k=0:k=b.FORCE_COLOR.length===0?1:Math.min(parseInt(b.FORCE_COLOR,10),3));function V(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function H(e,t){if(k===0)return 0;if(y("color=16m")||y("color=full")||y("color=truecolor"))return 3;if(y("color=256"))return 2;if(e&&!t&&k===void 0)return 0;let n=k||0;if(b.TERM==="dumb")return n;if(process.platform==="win32"){let r=p2.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in b)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in b)||b.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in b)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(b.TEAMCITY_VERSION)?1:0;if(b.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in b){let r=parseInt((b.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(b.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(b.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(b.TERM)||"COLORTERM"in b?1:n}function y2(e){let t=H(e,e&&e.isTTY);return V(t)}M0.exports={supportsColor:y2,stdout:V(H(!0,C0.isatty(1))),stderr:V(H(!0,C0.isatty(2)))}});var A0=v((X2,R0)=>{"use strict";var m2=(e,t,n)=>{let r=e.indexOf(t);if(r===-1)return e;let o=t.length,s=0,a="";do a+=e.substr(s,r-s)+t+n,s=r+o,r=e.indexOf(t,s);while(r!==-1);return a+=e.substr(s),a},v2=(e,t,n,r)=>{let o=0,s="";do{let a=e[r-1]==="\r";s+=e.substr(o,(a?r-1:r)-o)+t+(a?`\r +var a2=Object.create;var Y=Object.defineProperty,l2=Object.defineProperties,c2=Object.getOwnPropertyDescriptor,i2=Object.getOwnPropertyDescriptors,u2=Object.getOwnPropertyNames,i0=Object.getOwnPropertySymbols,f2=Object.getPrototypeOf,u0=Object.prototype.hasOwnProperty,h2=Object.prototype.propertyIsEnumerable;var f0=(e,t,n)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,h0=(e,t)=>{for(var n in t||(t={}))u0.call(t,n)&&f0(e,n,t[n]);if(i0)for(var n of i0(t))h2.call(t,n)&&f0(e,n,t[n]);return e},d0=(e,t)=>l2(e,i2(t)),d2=e=>Y(e,"__esModule",{value:!0});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var b2=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of u2(t))!u0.call(e,r)&&r!=="default"&&Y(e,r,{get:()=>t[r],enumerable:!(n=c2(t,r))||n.enumerable});return e},B=e=>b2(d2(Y(e!=null?a2(f2(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var g0=w((J2,b0)=>{"use strict";b0.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var z=w((Z2,p0)=>{var L=g0(),x0={};for(let e of Object.keys(L))x0[L[e]]=e;var i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};p0.exports=i;for(let e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(t,n,r),s=Math.max(t,n,r),a=s-o,c,l;s===o?c=0:t===s?c=(n-r)/a:n===s?c=2+(r-t)/a:r===s&&(c=4+(t-n)/a),c=Math.min(c*60,360),c<0&&(c+=360);let u=(o+s)/2;return s===o?l=0:u<=.5?l=a/(s+o):l=a/(2-s-o),[c,l*100,u*100]};i.rgb.hsv=function(e){let t,n,r,o,s,a=e[0]/255,c=e[1]/255,l=e[2]/255,u=Math.max(a,c,l),b=u-Math.min(a,c,l),f=function(d){return(u-d)/6/b+1/2};return b===0?(o=0,s=0):(s=b/u,t=f(a),n=f(c),r=f(l),a===u?o=r-n:c===u?o=1/3+t-r:l===u&&(o=2/3+n-t),o<0?o+=1:o>1&&(o-=1)),[o*360,s*100,u*100]};i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],o=i.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[o,s*100,r*100]};i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(1-t,1-n,1-r),s=(1-t-o)/(1-o)||0,a=(1-n-o)/(1-o)||0,c=(1-r-o)/(1-o)||0;return[s*100,a*100,c*100,o*100]};function g2(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=x0[e];if(t)return t;let n=1/0,r;for(let o of Object.keys(L)){let s=L[o],a=g2(e,s);a.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=t*.4124+n*.3576+r*.1805,s=t*.2126+n*.7152+r*.0722,a=t*.0193+n*.1192+r*.9505;return[o*100,s*100,a*100]};i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],o=t[2];n/=95.047,r/=100,o/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let s=116*r-16,a=500*(n-r),c=200*(r-o);return[s,a,c]};i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o,s,a;if(n===0)return a=r*255,[a,a,a];r<.5?o=r*(1+n):o=r+n-r*n;let c=2*r-o,l=[0,0,0];for(let u=0;u<3;u++)s=t+1/3*-(u-1),s<0&&s++,s>1&&s--,6*s<1?a=c+(o-c)*6*s:2*s<1?a=o:3*s<2?a=c+(o-c)*(2/3-s)*6:a=c,l[u]=a*255;return l};i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=n,s=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,o*=s<=1?s:2-s;let a=(r+n)/2,c=r===0?2*o/(s+o):2*n/(r+n);return[t,c*100,a*100]};i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,s=t-Math.floor(t),a=255*r*(1-n),c=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,o){case 0:return[r,l,a];case 1:return[c,r,a];case 2:return[a,r,l];case 3:return[a,c,r];case 4:return[l,a,r];case 5:return[r,a,c]}};i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=Math.max(r,.01),s,a;a=(2-n)*r;let c=(2-n)*o;return s=n*o,s/=c<=1?c:2-c,s=s||0,a/=2,[t,s*100,a*100]};i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o=n+r,s;o>1&&(n/=o,r/=o);let a=Math.floor(6*t),c=1-r;s=6*t-a,(a&1)!=0&&(s=1-s);let l=n+s*(c-n),u,b,f;switch(a){default:case 6:case 0:u=c,b=l,f=n;break;case 1:u=l,b=c,f=n;break;case 2:u=n,b=c,f=l;break;case 3:u=n,b=l,f=c;break;case 4:u=l,b=n,f=c;break;case 5:u=c,b=n,f=l;break}return[u*255,b*255,f*255]};i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o=e[3]/100,s=1-Math.min(1,t*(1-o)+o),a=1-Math.min(1,n*(1-o)+o),c=1-Math.min(1,r*(1-o)+o);return[s*255,a*255,c*255]};i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o,s,a;return o=t*3.2406+n*-1.5372+r*-.4986,s=t*-.9689+n*1.8758+r*.0415,a=t*.0557+n*-.204+r*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),a=Math.min(Math.max(0,a),1),[o*255,s*255,a*255]};i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*n-16,s=500*(t-n),a=200*(n-r);return[o,s,a]};i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],o,s,a;s=(t+16)/116,o=n/500+s,a=s-r/200;let c=s**3,l=o**3,u=a**3;return s=c>.008856?c:(s-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,a=u>.008856?u:(a-16/116)/7.787,o*=95.047,s*=100,a*=108.883,[o,s,a]};i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],o;o=Math.atan2(r,n)*360/2/Math.PI,o<0&&(o+=360);let a=Math.sqrt(n*n+r*r);return[t,a,o]};i.lch.lab=function(e){let t=e[0],n=e[1],o=e[2]/360*2*Math.PI,s=n*Math.cos(o),a=n*Math.sin(o);return[t,s,a]};i.rgb.ansi16=function(e,t=null){let[n,r,o]=e,s=t===null?i.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),s===0)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return s===2&&(a+=60),a};i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])};i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)};i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5,r=(t&1)*n*255,o=(t>>1&1)*n*255,s=(t>>2&1)*n*255;return[r,o,s]};i.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return[s,s,s]}e-=16;let t,n=Math.floor(e/36)/5*255,r=Math.floor((t=e%36)/6)/5*255,o=t%6/5*255;return[n,r,o]};i.rgb.hex=function(e){let n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n};i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split("").map(c=>c+c).join(""));let r=parseInt(n,16),o=r>>16&255,s=r>>8&255,a=r&255;return[o,s,a]};i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.max(Math.max(t,n),r),s=Math.min(Math.min(t,n),r),a=o-s,c,l;return a<1?c=s/(1-a):c=0,a<=0?l=0:o===t?l=(n-r)/a%6:o===n?l=2+(r-t)/a:l=4+(t-n)/a,l/=6,l%=1,[l*360,a*100,c*100]};i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),o=0;return r<1&&(o=(n-.5*r)/(1-r)),[e[0],r*100,o*100]};i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],r*100,o*100]};i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let o=[0,0,0],s=t%1*6,a=s%1,c=1-a,l=0;switch(Math.floor(s)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=c,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=c,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=c}return l=(1-n)*r,[(n*o[0]+l)*255,(n*o[1]+l)*255,(n*o[2]+l)*255]};i.hcg.hsv=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t),o=0;return r>0&&(o=t/r),[e[0],o*100,r*100]};i.hcg.hsl=function(e){let t=e[1]/100,r=e[2]/100*(1-t)+.5*t,o=0;return r>0&&r<.5?o=t/(2*r):r>=.5&&r<1&&(o=t/(2*(1-r))),[e[0],o*100,r*100]};i.hcg.hwb=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],(r-t)*100,(1-r)*100]};i.hwb.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=1-n,o=r-t,s=0;return o<1&&(s=(r-o)/(1-o)),[e[0],o*100,s*100]};i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};i.gray.hsl=function(e){return[0,0,e[0]]};i.gray.hsv=i.gray.hsl;i.gray.hwb=function(e){return[0,100,e[0]]};i.gray.cmyk=function(e){return[0,0,0,e[0]]};i.gray.lab=function(e){return[e[0],0,0]};i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r};i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var m0=w((Q2,y0)=>{var D=z();function x2(){let e={},t=Object.keys(D);for(let n=t.length,r=0;r{var K=z(),v2=m0(),S={},k2=Object.keys(K);function w2(e){let t=function(...n){let r=n[0];return r==null?r:(r.length>1&&(n=r),e(n))};return"conversion"in e&&(t.conversion=e.conversion),t}function E2(e){let t=function(...n){let r=n[0];if(r==null)return r;r.length>1&&(n=r);let o=e(n);if(typeof o=="object")for(let s=o.length,a=0;a{S[e]={},Object.defineProperty(S[e],"channels",{value:K[e].channels}),Object.defineProperty(S[e],"labels",{value:K[e].labels});let t=v2(e);Object.keys(t).forEach(r=>{let o=t[r];S[e][r]=E2(o),S[e][r].raw=w2(o)})});v0.exports=S});var R0=w((te,M0)=>{"use strict";var w0=(e,t)=>(...n)=>`[${e(...n)+t}m`,E0=(e,t)=>(...n)=>{let r=e(...n);return`[${38+t};5;${r}m`},C0=(e,t)=>(...n)=>{let r=e(...n);return`[${38+t};2;${r[0]};${r[1]};${r[2]}m`},q=e=>e,O0=(e,t,n)=>[e,t,n],A=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{let r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},W,_=(e,t,n,r)=>{W===void 0&&(W=k0());let o=r?10:0,s={};for(let[a,c]of Object.entries(W)){let l=a==="ansi16"?"ansi":a;a===t?s[l]=e(n,o):typeof c=="object"&&(s[l]=e(c[t],o))}return s};function C2(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[n,r]of Object.entries(t)){for(let[o,s]of Object.entries(r))t[o]={open:`[${s[0]}m`,close:`[${s[1]}m`},r[o]=t[o],e.set(s[0],s[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",A(t.color,"ansi",()=>_(w0,"ansi16",q,!1)),A(t.color,"ansi256",()=>_(E0,"ansi256",q,!1)),A(t.color,"ansi16m",()=>_(C0,"rgb",O0,!1)),A(t.bgColor,"ansi",()=>_(w0,"ansi16",q,!0)),A(t.bgColor,"ansi256",()=>_(E0,"ansi256",q,!0)),A(t.bgColor,"ansi16m",()=>_(C0,"rgb",O0,!0)),t}Object.defineProperty(M0,"exports",{enumerable:!0,get:C2})});var A0=w((ne,S0)=>{"use strict";S0.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),o=t.indexOf("--");return r!==-1&&(o===-1||r{"use strict";var O2=require("os"),_0=require("tty"),m=A0(),{env:x}=process,C;m("no-color")||m("no-colors")||m("color=false")||m("color=never")?C=0:(m("color")||m("colors")||m("color=true")||m("color=always"))&&(C=1);"FORCE_COLOR"in x&&(x.FORCE_COLOR==="true"?C=1:x.FORCE_COLOR==="false"?C=0:C=x.FORCE_COLOR.length===0?1:Math.min(parseInt(x.FORCE_COLOR,10),3));function X(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function J(e,t){if(C===0)return 0;if(m("color=16m")||m("color=full")||m("color=truecolor"))return 3;if(m("color=256"))return 2;if(e&&!t&&C===void 0)return 0;let n=C||0;if(x.TERM==="dumb")return n;if(process.platform==="win32"){let r=O2.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in x)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in x)||x.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in x)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(x.TEAMCITY_VERSION)?1:0;if(x.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in x){let r=parseInt((x.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(x.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(x.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(x.TERM)||"COLORTERM"in x?1:n}function M2(e){let t=J(e,e&&e.isTTY);return X(t)}T0.exports={supportsColor:M2,stdout:X(J(!0,_0.isatty(1))),stderr:X(J(!0,_0.isatty(2)))}});var j0=w((oe,L0)=>{"use strict";var R2=(e,t,n)=>{let r=e.indexOf(t);if(r===-1)return e;let o=t.length,s=0,a="";do a+=e.substr(s,r-s)+t+n,s=r+o,r=e.indexOf(t,s);while(r!==-1);return a+=e.substr(s),a},S2=(e,t,n,r)=>{let o=0,s="";do{let a=e[r-1]==="\r";s+=e.substr(o,(a?r-1:r)-o)+t+(a?`\r `:` `)+n,o=r+1,r=e.indexOf(` -`,o)}while(r!==-1);return s+=e.substr(o),s};R0.exports={stringReplaceAll:m2,stringEncaseCRLFWithFirstIndex:v2}});var L0=v((Z2,B0)=>{"use strict";var k2=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,S0=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,w2=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,E2=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,C2=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function _0(e){let t=e[0]==="u",n=e[1]==="{";return t&&!n&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):C2.get(e)||e}function M2(e,t){let n=[],r=t.trim().split(/\s*,\s*/g),o;for(let s of r){let a=Number(s);if(!Number.isNaN(a))n.push(a);else if(o=s.match(w2))n.push(o[2].replace(E2,(c,l,u)=>l?_0(l):u));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${e}')`)}return n}function O2(e){S0.lastIndex=0;let t=[],n;for(;(n=S0.exec(e))!==null;){let r=n[1];if(n[2]){let o=M2(r,n[2]);t.push([r].concat(o))}else t.push([r])}return t}function T0(e,t){let n={};for(let o of t)for(let s of o.styles)n[s[0]]=o.inverse?null:s.slice(1);let r=e;for(let[o,s]of Object.entries(n))if(!!Array.isArray(s)){if(!(o in r))throw new Error(`Unknown Chalk style: ${o}`);r=s.length>0?r[o](...s):r[o]}return r}B0.exports=(e,t)=>{let n=[],r=[],o=[];if(t.replace(k2,(s,a,c,l,u,f)=>{if(a)o.push(_0(a));else if(l){let h=o.join("");o=[],r.push(n.length===0?h:T0(e,n)(h)),n.push({inverse:c,styles:O2(l)})}else if(u){if(n.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(T0(e,n)(o.join(""))),o=[],n.pop()}else o.push(f)}),r.push(o.join("")),n.length>0){let s=`Chalk template literal is missing ${n.length} closing bracket${n.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return r.join("")}});var Z=v((J2,P0)=>{"use strict";var _=k0(),{stdout:z,stderr:W}=O0(),{stringReplaceAll:R2,stringEncaseCRLFWithFirstIndex:A2}=A0(),j0=["ansi","ansi","ansi256","ansi16m"],A=Object.create(null),S2=(e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let n=z?z.level:0;e.level=t.level===void 0?n:t.level},I0=class{constructor(t){return N0(t)}},N0=e=>{let t={};return S2(t,e),t.template=(...n)=>B2(t.template,...n),Object.setPrototypeOf(t,P.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=I0,t.template};function P(e){return N0(e)}for(let[e,t]of Object.entries(_))A[e]={get(){let n=Y(this,K(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};A.visible={get(){let e=Y(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var F0=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of F0)A[e]={get(){let{level:t}=this;return function(...n){let r=K(_.color[j0[t]][e](...n),_.color.close,this._styler);return Y(this,r,this._isEmpty)}}};for(let e of F0){let t="bg"+e[0].toUpperCase()+e.slice(1);A[t]={get(){let{level:n}=this;return function(...r){let o=K(_.bgColor[j0[n]][e](...r),_.bgColor.close,this._styler);return Y(this,o,this._isEmpty)}}}}var _2=Object.defineProperties(()=>{},a0(s0({},A),{level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}})),K=(e,t,n)=>{let r,o;return n===void 0?(r=e,o=t):(r=n.openAll+e,o=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:o,parent:n}},Y=(e,t,n)=>{let r=(...o)=>T2(r,o.length===1?""+o[0]:o.join(" "));return r.__proto__=_2,r._generator=e,r._styler=t,r._isEmpty=n,r},T2=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(n===void 0)return t;let{openAll:r,closeAll:o}=n;if(t.indexOf("")!==-1)for(;n!==void 0;)t=R2(t,n.close,n.open),n=n.parent;let s=t.indexOf(` -`);return s!==-1&&(t=A2(t,o,r,s)),r+t+o},X,B2=(e,...t)=>{let[n]=t;if(!Array.isArray(n))return t.join(" ");let r=t.slice(1),o=[n.raw[0]];for(let s=1;s2100)return l;for(let f=1900;f<=2100;f++){let h=L2(f);if(s-=h,s<=0){l.year=f,s+=h;break}}a=V0(l.year),c=Q(l.year);for(let f=0;f0&&f>=c&&(l.leap=f===c,l.month-=1);break}if(u){let f=u.slice(t*4,(t+1)*4);+f.slice(0,2)===n?l.solarTerms=J[t*2]:+f.slice(2)===n&&(l.solarTerms=J[t*2+1])}return l.festival=U0[`${t+1}.${n}`]||"",l.leap||(l.month===11&&l.day===a.pop()?(l.festival=B["12.30"],l.lunarFestival=B["12.30"]):(l.festival=B[`${l.month+1}.${l.day}`]||l.festival,l.lunarFestival=B[`${l.month+1}.${l.day}`]||"")),l.yearCN=e0(l.year),l.monthCN=(l.leap>0?"\u95F0":"")+Y0[l.month]+"\u6708",l.day<11?l.dayCN=m[0]+m[l.day]:l.day<20?l.dayCN=m[10]+m[l.day-10]:l.day===20?l.dayCN=m[2]+m[10]:l.day<30?l.dayCN=m[20]+m[l.day-20]:l.day===30&&(l.dayCN=m[3]+m[10]),l.short=l.festival?l.festival:l.solarTerms?l.solarTerms:l.day===1?l.monthCN:l.dayCN,l}function L2(e){var t=V0(e);return t.reduce((n,r)=>n+=r,0)}function Q(e){var t=D[e-1900];return t&15}function j2(e){var t=D[e-1900],n=Q(e);return n>0?t&983040?30:29:0}function V0(e){var t=D[e-1900],n=Q(e),r=j2(e),o=[];for(let s=32768;s>8;s>>=1)o.push(t&s?30:29);return n>0&&o.splice(n,0,r),o}function e0(e){var t=(e-3)%10,n=(e-3)%12;return t=t===0?10:t,n=n===0?12:n,$0[t-1]+q0[n-1]+D0[(e-4)%12]+"\u5E74"}var I2=["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"].map((e,t)=>(e="\u661F\u671F"+e,(t===0||t===6)&&(e=d.default.red(e))," "+e+" "+d.default.grey("|"))),L=d.default.grey("|"),re=d.default.grey("|"+(" ".repeat(10)+"|").repeat(7));function H0(e="",t=" "){return d.default.grey(e+(t.repeat(10)+"|").repeat(7))}function z0(){var e=new Date;return[e.getFullYear(),e.getMonth()]}function W0(e,t){return new Date(e,t+1,0).getDate()}function K0(e,t,n){return new Date(e,t,n||1).getDay()}function N2({year:e,month:t,day:n},r){return r.year===e&&r.month===t&&r.day===n}function F2(){var e=new Date;return{year:e.getFullYear(),month:e.getMonth(),day:e.getDate()}}function P2(e,t){var n=W0(e,t-1),r=W0(e,t),o=1-K0(e,t),s=0,a=F2(),c=[];for(let l=o;l<=r;l++){let u={day:l<1?n- -l:(l+"").padStart(2,"0")};if(l>0){let f=K0(e,t,l),h=$(e,t,l);u.weekend=f===0||f===6,u.picked=!!N2({year:e,month:t,day:l},a),u.lunar=h.short,u.highlight=!!h.festival||!!h.solarTerms}else u.grey=1,u.lunar=$(e,t-1,n+l).short;c.push(u)}s=c.length%7,s=s>0?7-s:0;for(let l=1;l<=s;l++)c.push({day:(l+"").padStart(2,"0"),lunar:$(e,t+1,l).short,grey:1});return c}function Y2(e,t){var n=`${e}\u5E74${t+1}\u6708${" ".repeat(10)}${e0(e,t)}`;n=d.default.grey("| ")+d.default.cyan(n)+" ".repeat(71-n.length-2)+d.default.grey("|"),console.log(d.default.grey(" "+"_".repeat(76))),console.log(d.default.grey("|"+" ".repeat(76)+"|")),console.log(n),console.log(d.default.grey("|"+"_".repeat(76)+"|")),console.log(H0("|")),console.log(d.default.grey("|")+I2.join("")),console.log(H0("|","_"))}function D2(e,t){var n=P2(e,t),r=0;for(let o=0;o<3*Math.ceil(n.length/7)+1;o++){let s="";for(let a=0;a<7;a++){let c=n[r+a];if(!c)break;switch(a===0&&(s+=L),o%3){case 0:o===0?s+=d.default.grey(" ".repeat(10)+"|"):(s+=d.default.grey("-".repeat(a===6?10:11)+(a===6?"|":"")),a===6&&(r+=7));break;case 1:c.picked?s+=" "+d.default.bgBlue.whiteBright.bold(" "+c.day+" ")+" "+L:(c.grey?c.day=d.default.grey(c.day):c.weekend?c.day=d.default.redBright.bold(c.day):c.day=d.default.whiteBright.bold(c.day),s+=" ".repeat(4)+c.day+" ".repeat(4)+L);break;case 2:let l=5;c.lunar&&(l=(10-c.lunar.length*2)/2-2),c.picked?s+=" "+d.default.bgBlue.white.bold(" ".repeat(l)+c.lunar+" ".repeat(l))+" "+L:(c.lunar&&(c.lunar=c.highlight?d.default.cyan.dim(c.lunar):c.weekend?d.default.red.dim(c.lunar):d.default.grey(c.lunar)),s+=" ".repeat(l+2)+c.lunar+" ".repeat(l+2)+L);break}}console.log(s)}console.log("")}function E(e,t){Y2(e,t),D2(e,t)}var X0="1.1.0",w=process.argv.slice(2),j=w.shift(),[p,g]=z0();function t0(e){for(let t=0;t<12;t++)E(e,t)}function x(...e){e[0]=e[0].padEnd(20," "),e.length>1&&e.splice(1,0," - "),console.log.apply(null,e)}function $2(){x("=".repeat(64)),x(`\u7EC8\u7AEF\u7248\u4E07\u5E74\u5386 v${X0}, \u4F5C\u8005: \u5B87\u5929`),x("=".repeat(64)),x("\u7528\u6CD5: cal [command] args..."),x("Commands:"),x(" -y {year}","\u6253\u5370\u6307\u5B9A\u5E74\u4EFD\u7684\u65E5\u5386"),x(" -m","\u6253\u5370\u6307\u5B9A\u6708\u4EFD\u7684\u65E5\u5386"),x(" -h","\u67E5\u770B\u5E2E\u52A9\u6587\u6863"),x(" -v",`\u67E5\u770B\u7A0B\u5E8F\u7684\u7248\u672C -`),x("\u793A\u4F8B: "),x(" cal "+C.default.grey("# \u4E0D\u5E26\u53C2\u6570\u6253\u5370\u5F53\u524D\u5E74\u6708")),x(" cal -y "+C.default.grey("# -y \u4E0D\u63A5\u53C2\u6570, \u6253\u5370\u5F53\u524D\u5E74\u7684\u6240\u6709\u6708\u4EFD")),x(" cal -y 2000 "+C.default.grey("# \u6253\u5370\u6307\u5B9A\u5E74\u4EFD\u7684\u6240\u6709\u6708\u4EFD")),x(" cal -y 2021 5 "+C.default.grey("# \u6253\u5370\u6307\u5B9A\u5E74\u4EFD, \u6307\u5B9A\u6708\u4EFD")),x(" cal -y 2000 -m 3 "+C.default.grey("# \u540C\u4E0A")),x(" cal -m 5 "+C.default.grey("# \u6253\u5370\u5F53\u524D\u5E74\u4EFD\u7684 \u6307\u5B9A\u6708\u4EFD")),process.exit()}switch(j){case"-y":switch(w.length){case 0:t0(p);break;case 1:case 2:p=+w.shift(),g=+w.shift(),p===p?g<13&&g>0?E(p,g-1):t0(p):console.log("-y \u53C2\u6570\u5F02\u5E38");break;case 3:j=w.shift(),g=+w.shift(),j==="-m"&&g<13&&g>0?E(p,g-1):console.log("-m \u53C2\u6570\u5F02\u5E38");break;default:console.log("-y \u53C2\u6570\u5F02\u5E38");break}break;case"-m":g=+w.shift(),g<13&&g>0?E(p,g-1):console.log("-m \u53C2\u6570\u5F02\u5E38");break;case"-v":x(X0);break;case"-h":$2();break;default:j?(p=+j,g=+w.shift(),p===p?g<13&&g>0?E(p,g-1):t0(p):console.log("\u53C2\u6570\u5F02\u5E38")):E(p,g);break}process.exit(); +`,o)}while(r!==-1);return s+=e.substr(o),s};L0.exports={stringReplaceAll:R2,stringEncaseCRLFWithFirstIndex:S2}});var $0=w((se,P0)=>{"use strict";var A2=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,I0=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,_2=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,T2=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,B2=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function F0(e){let t=e[0]==="u",n=e[1]==="{";return t&&!n&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):B2.get(e)||e}function L2(e,t){let n=[],r=t.trim().split(/\s*,\s*/g),o;for(let s of r){let a=Number(s);if(!Number.isNaN(a))n.push(a);else if(o=s.match(_2))n.push(o[2].replace(T2,(c,l,u)=>l?F0(l):u));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${e}')`)}return n}function j2(e){I0.lastIndex=0;let t=[],n;for(;(n=I0.exec(e))!==null;){let r=n[1];if(n[2]){let o=L2(r,n[2]);t.push([r].concat(o))}else t.push([r])}return t}function N0(e,t){let n={};for(let o of t)for(let s of o.styles)n[s[0]]=o.inverse?null:s.slice(1);let r=e;for(let[o,s]of Object.entries(n))if(!!Array.isArray(s)){if(!(o in r))throw new Error(`Unknown Chalk style: ${o}`);r=s.length>0?r[o](...s):r[o]}return r}P0.exports=(e,t)=>{let n=[],r=[],o=[];if(t.replace(A2,(s,a,c,l,u,b)=>{if(a)o.push(F0(a));else if(l){let f=o.join("");o=[],r.push(n.length===0?f:N0(e,n)(f)),n.push({inverse:c,styles:j2(l)})}else if(u){if(n.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(N0(e,n)(o.join(""))),o=[],n.pop()}else o.push(b)}),r.push(o.join("")),n.length>0){let s=`Chalk template literal is missing ${n.length} closing bracket${n.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return r.join("")}});var n0=w((ae,U0)=>{"use strict";var j=R0(),{stdout:Z,stderr:Q}=B0(),{stringReplaceAll:I2,stringEncaseCRLFWithFirstIndex:F2}=j0(),Y0=["ansi","ansi","ansi256","ansi16m"],T=Object.create(null),N2=(e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let n=Z?Z.level:0;e.level=t.level===void 0?n:t.level},D0=class{constructor(t){return q0(t)}},q0=e=>{let t={};return N2(t,e),t.template=(...n)=>Y2(t.template,...n),Object.setPrototypeOf(t,H.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=D0,t.template};function H(e){return q0(e)}for(let[e,t]of Object.entries(j))T[e]={get(){let n=U(this,e0(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};T.visible={get(){let e=U(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var H0=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of H0)T[e]={get(){let{level:t}=this;return function(...n){let r=e0(j.color[Y0[t]][e](...n),j.color.close,this._styler);return U(this,r,this._isEmpty)}}};for(let e of H0){let t="bg"+e[0].toUpperCase()+e.slice(1);T[t]={get(){let{level:n}=this;return function(...r){let o=e0(j.bgColor[Y0[n]][e](...r),j.bgColor.close,this._styler);return U(this,o,this._isEmpty)}}}}var P2=Object.defineProperties(()=>{},d0(h0({},T),{level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}})),e0=(e,t,n)=>{let r,o;return n===void 0?(r=e,o=t):(r=n.openAll+e,o=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:o,parent:n}},U=(e,t,n)=>{let r=(...o)=>$2(r,o.length===1?""+o[0]:o.join(" "));return r.__proto__=P2,r._generator=e,r._styler=t,r._isEmpty=n,r},$2=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(n===void 0)return t;let{openAll:r,closeAll:o}=n;if(t.indexOf("")!==-1)for(;n!==void 0;)t=I2(t,n.close,n.open),n=n.parent;let s=t.indexOf(` +`);return s!==-1&&(t=F2(t,o,r,s)),r+t+o},t0,Y2=(e,...t)=>{let[n]=t;if(!Array.isArray(n))return t.join(" ");let r=t.slice(1),o=[n.raw[0]];for(let s=1;s2100)return l;for(let f=1900;f<=2100;f++){let d=D2(f);if(s-=d,s<=0){l.year=f,s+=d;break}}a=Q0(l.year),c=s0(l.year);for(let f=0;f0&&f>=c&&(l.leap=f===c,l.month-=1);break}if(l.custom=Z0[b]||"",u){let f=u.slice(t*4,(t+1)*4);+f.slice(0,2)===n?l.solarTerms=r0[t*2]:+f.slice(2)===n&&(l.solarTerms=r0[t*2+1])}return l.festival=J0[`${t+1}.${n}`]||"",l.leap||(l.month===11&&l.day===a.pop()?(l.festival=F["12.30"],l.lunarFestival=F["12.30"]):(l.festival=F[`${l.month+1}.${l.day}`]||l.festival,l.lunarFestival=F[`${l.month+1}.${l.day}`]||"")),l.yearCN=a0(l.year),l.monthCN=(l.leap>0?"\u95F0":"")+G0[l.month]+"\u6708",l.day<11?l.dayCN=v[0]+v[l.day]:l.day<20?l.dayCN=v[10]+v[l.day-10]:l.day===20?l.dayCN=v[2]+v[10]:l.day<30?l.dayCN=v[20]+v[l.day-20]:l.day===30&&(l.dayCN=v[3]+v[10]),l.short=l.festival?l.festival:l.solarTerms?l.solarTerms:l.day===1?l.monthCN:l.dayCN,l}function D2(e){var t=Q0(e);return t.reduce((n,r)=>n+=r,0)}function s0(e){var t=V[e-1900];return t&15}function q2(e){var t=V[e-1900],n=s0(e);return n>0?t&983040?30:29:0}function Q0(e){var t=V[e-1900],n=s0(e),r=q2(e),o=[];for(let s=32768;s>8;s>>=1)o.push(t&s?30:29);return n>0&&o.splice(n,0,r),o}function a0(e){var t=(e-3)%10,n=(e-3)%12;return t=t===0?10:t,n=n===0?12:n,K0[t-1]+W0[n-1]+z0[(e-4)%12]+"\u5E74"}var H2=["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"].map((e,t)=>(e="\u661F\u671F"+e,(t===0||t===6)&&(e=h.default.red(e))," "+e+" "+h.default.grey("|"))),P=h.default.grey("|"),fe=h.default.grey("|"+(" ".repeat(10)+"|").repeat(7));function e2(e="",t=" "){return h.default.grey(e+(t.repeat(10)+"|").repeat(7))}function t2(){var e=new Date;return[e.getFullYear(),e.getMonth()]}function n2(e,t){return new Date(e,t+1,0).getDate()}function r2(e,t,n){return new Date(e,t,n||1).getDay()}function U2({year:e,month:t,day:n},r){return r.year===e&&r.month===t&&r.day===n}function V2(){var e=new Date;return{year:e.getFullYear(),month:e.getMonth(),day:e.getDate()}}function G2(e,t){var n=n2(e,t-1),r=n2(e,t),o=1-r2(e,t),s=0,a=V2(),c=[],l,u,b,f;o<1&&(l=e,u=t-1,u<0&&(u=11,l--));for(let d=o;d<=r;d++){let k={day:d<1?n- -d:(d+"").padStart(2,"0")},R;if(d>0){let c0=r2(e,t,d);R=G(e,t,d),k.weekend=c0===0||c0===6,k.picked=!!U2({year:e,month:t,day:d},a),k.highlight=!!R.festival||!!R.solarTerms}else R=G(l,u,n+d),k.grey=1;k.lunar=R.short,k.custom=R.custom,c.push(k)}s=c.length%7,s=s>0?7-s:0,s>0&&(b=e,f=t+1,f>11&&(f=0,b++));for(let d=1;d<=s;d++){let k=G(b,f,d);c.push({day:(d+"").padStart(2,"0"),lunar:k.short,custom:k.custom,grey:1})}return c}function z2(e,t){var n=`${e}\u5E74${t+1}\u6708${" ".repeat(10)}${a0(e,t)}`;n=h.default.grey("| ")+h.default.cyan(n)+" ".repeat(71-n.length-2)+h.default.grey("|"),console.log(h.default.grey(" "+"_".repeat(76))),console.log(h.default.grey("|"+" ".repeat(76)+"|")),console.log(n),console.log(h.default.grey("|"+"_".repeat(76)+"|")),console.log(e2("|")),console.log(h.default.grey("|")+H2.join("")),console.log(e2("|","_"))}function K2(e,t){var n=G2(e,t),r=0;for(let o=0;o<3*Math.ceil(n.length/7)+1;o++){let s="";for(let a=0;a<7;a++){let c=n[r+a];if(!c)break;switch(a===0&&(s+=P),o%3){case 0:o===0?s+=h.default.grey(" ".repeat(10)+"|"):(s+=h.default.grey("-".repeat(a===6?10:11)+(a===6?"|":"")),a===6&&(r+=7));break;case 1:let l=" ";c.custom&&(l=h.default.blue(c.custom)),c.picked?s+=" "+h.default.bgBlue.whiteBright.bold(" "+c.day+" ")+l+P:(c.grey?c.day=h.default.grey(c.day):c.weekend?c.day=h.default.redBright.bold(c.day):c.day=h.default.whiteBright.bold(c.day),s+=" ".repeat(4)+c.day+" "+l+P);break;case 2:let u=5;c.lunar&&(u=(10-c.lunar.length*2)/2-2),c.picked?s+=" "+h.default.bgBlue.white.bold(" ".repeat(u)+c.lunar+" ".repeat(u))+" "+P:(c.lunar&&(c.lunar=c.highlight?h.default.cyan.dim(c.lunar):c.weekend?h.default.red.dim(c.lunar):h.default.grey(c.lunar)),s+=" ".repeat(u+2)+c.lunar+" ".repeat(u+2)+P);break}}console.log(s)}console.log("")}function M(e,t){z2(e,t),K2(e,t)}var s2="1.2.0",E=process.argv.slice(2),$=E.shift(),[y,p]=t2();function l0(e){for(let t=0;t<12;t++)M(e,t)}function g(...e){e[0]=e[0].padEnd(20," "),e.length>1&&e.splice(1,0," - "),console.log.apply(null,e)}function W2(){g("=".repeat(64)),g(`\u7EC8\u7AEF\u7248\u4E07\u5E74\u5386 v${s2}, \u4F5C\u8005: \u5B87\u5929`),g("=".repeat(64)),g("\u7528\u6CD5: cal [command] args..."),g("Commands:"),g(" -y {year}","\u6253\u5370\u6307\u5B9A\u5E74\u4EFD\u7684\u65E5\u5386"),g(" -m","\u6253\u5370\u6307\u5B9A\u6708\u4EFD\u7684\u65E5\u5386"),g(" -c","\u5BFC\u5165\u81EA\u5B9A\u4E49\u4F11\u5047\u65E5, \u5FC5\u987B\u662F\u6807\u51C6json\u683C\u5F0F, \u8BED\u6CD5\u770B\u4E0B\u9762\u7684\u793A\u4F8B"),g(" -h","\u67E5\u770B\u5E2E\u52A9\u6587\u6863"),g(" -v",`\u67E5\u770B\u7A0B\u5E8F\u7684\u7248\u672C +`),g("\u793A\u4F8B: "),g(" cal "+O.default.grey("# \u4E0D\u5E26\u53C2\u6570\u6253\u5370\u5F53\u524D\u5E74\u6708")),g(" cal -y "+O.default.grey("# -y \u4E0D\u63A5\u53C2\u6570, \u6253\u5370\u5F53\u524D\u5E74\u7684\u6240\u6709\u6708\u4EFD")),g(" cal -y 2000 "+O.default.grey("# \u6253\u5370\u6307\u5B9A\u5E74\u4EFD\u7684\u6240\u6709\u6708\u4EFD")),g(" cal -y 2021 5 "+O.default.grey("# \u6253\u5370\u6307\u5B9A\u5E74\u4EFD, \u6307\u5B9A\u6708\u4EFD")),g(" cal -y 2000 -m 3 "+O.default.grey("# \u540C\u4E0A")),g(" cal -m 5 "+O.default.grey("# \u6253\u5370\u5F53\u524D\u5E74\u4EFD\u7684 \u6307\u5B9A\u6708\u4EFD")),g(' cal -c {"2021.12.11":"\u73ED","2021.12.12":"\u4F11"} '+O.default.grey("# \u5BFC\u5165\u81EA\u5B9A\u4E49\u4F11\u5047\u65E5")),process.exit()}switch($){case"-y":switch(E.length){case 0:l0(y);break;case 1:case 2:y=+E.shift(),p=+E.shift(),y===y?p<13&&p>0?M(y,p-1):l0(y):console.log("-y \u53C2\u6570\u5F02\u5E38");break;case 3:$=E.shift(),p=+E.shift(),$==="-m"&&p<13&&p>0?M(y,p-1):console.log("-m \u53C2\u6570\u5F02\u5E38");break;default:console.log("-y \u53C2\u6570\u5F02\u5E38");break}break;case"-m":p=+E.shift(),p<13&&p>0?M(y,p-1):console.log("-m \u53C2\u6570\u5F02\u5E38");break;case"-v":g(s2);break;case"-h":W2();break;case"-c":let e=E.shift();if(e)try{JSON.parse(e),o2.default.writeFileSync(N,e),console.log("\u5BFC\u5165\u6210\u529F")}catch{console.log("\u9519\u8BEF\u7684json\u6570\u636E")}else console.log("\u5BFC\u5165\u7684\u6570\u636E\u4E3A\u7A7A");break;default:$?(y=+$,p=+E.shift(),y===y?p<13&&p>0?M(y,p-1):l0(y):console.log("\u53C2\u6570\u5F02\u5E38")):M(y,p);break}process.exit(); diff --git a/package.json b/package.json index 36fdd2d..5512776 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "bash-calendar", "description": "终端版万年历", - "version": "1.1.0", + "version": "1.2.0", "author": "yutent ", "bin": { "calendar": "index.js", diff --git a/src/calendar.js b/src/calendar.js index 5bf3624..18d9ae8 100644 --- a/src/calendar.js +++ b/src/calendar.js @@ -56,34 +56,60 @@ export function getCalendarTable(year, month) { var nd = 0 // 最后一周需要补多少天, 具体看下方的计算 var today = getToday() var list = [] + var lyear, lmonth, nyear, nmonth + + // 修正年月日的数值, 以匹配节假日 + if (ld < 1) { + lyear = year + lmonth = month - 1 + if (lmonth < 0) { + lmonth = 11 + lyear-- + } + } for (let i = ld; i <= nums; i++) { let tmp = { day: i < 1 ? lnums - -i : (i + '').padStart(2, '0') } + let lunar + if (i > 0) { let week = getFirstDay(year, month, i) - let lunar = solar2lunar(year, month, i) + lunar = solar2lunar(year, month, i) tmp.weekend = week === 0 || week === 6 tmp.picked = !!isPicked({ year, month, day: i }, today) - tmp.lunar = lunar.short tmp.highlight = !!lunar.festival || !!lunar.solarTerms } else { // 从上个月中补齐第1周 + lunar = solar2lunar(lyear, lmonth, lnums + i) tmp.grey = 1 - tmp.lunar = solar2lunar(year, month - 1, lnums + i).short } + tmp.lunar = lunar.short + tmp.custom = lunar.custom list.push(tmp) } nd = list.length % 7 nd = nd > 0 ? 7 - nd : 0 + // 修正年月日的数值, 以匹配节假日 + if (nd > 0) { + nyear = year + nmonth = month + 1 + if (nmonth > 11) { + nmonth = 0 + nyear++ + } + } + // 最后一行不够1周时, 从下个月的日期中补齐 for (let day = 1; day <= nd; day++) { + let lunar = solar2lunar(nyear, nmonth, day) list.push({ day: (day + '').padStart(2, '0'), - lunar: solar2lunar(year, month + 1, day).short, + lunar: lunar.short, + custom: lunar.custom, grey: 1 }) } @@ -136,8 +162,12 @@ function drawTbody(year, month) { break case 1: + let right = ' ' + if (tmp.custom) { + right = chalk.blue(tmp.custom) + } if (tmp.picked) { - tr += ' ' + chalk.bgBlue.whiteBright.bold(' ' + tmp.day + ' ') + ' ' + VLINE + tr += ' ' + chalk.bgBlue.whiteBright.bold(' ' + tmp.day + ' ') + right + VLINE } else { // 有grey字段的, 优先置灰, 这种为 非本月份的日期 if (tmp.grey) { @@ -149,7 +179,7 @@ function drawTbody(year, month) { tmp.day = chalk.whiteBright.bold(tmp.day) } } - tr += ' '.repeat(4) + tmp.day + ' '.repeat(4) + VLINE + tr += ' '.repeat(4) + tmp.day + ' ' + right + VLINE } break diff --git a/src/index.js b/src/index.js index fccfba6..c6a9769 100644 --- a/src/index.js +++ b/src/index.js @@ -6,7 +6,9 @@ * @date 2021/11/26 17:20:02 */ +import fs from 'fs' import chalk from 'chalk' +import { CACHE_FILE } from './lunar/config.js' import { getThisYearMonth, drawCalendar } from './calendar.js' var version = process.env.APP_VERSION @@ -36,6 +38,7 @@ function print_help() { print('Commands:') print(' -y {year}', '打印指定年份的日历') print(' -m', '打印指定月份的日历') + print(' -c', '导入自定义休假日, 必须是标准json格式, 语法看下面的示例') print(' -h', '查看帮助文档') print(' -v', '查看程序的版本\n') print('示例: ') @@ -45,6 +48,7 @@ function print_help() { print(' cal -y 2021 5 ' + chalk.grey('# 打印指定年份, 指定月份')) print(' cal -y 2000 -m 3 ' + chalk.grey('# 同上')) print(' cal -m 5 ' + chalk.grey('# 打印当前年份的 指定月份')) + print(' cal -c {"2021.12.11":"班","2021.12.12":"休"} ' + chalk.grey('# 导入自定义休假日')) process.exit() } @@ -107,6 +111,21 @@ switch (action) { print_help() break + case '-c': + let str = argvs.shift() + if (str) { + try { + JSON.parse(str) + fs.writeFileSync(CACHE_FILE, str) + console.log('导入成功') + } catch (e) { + console.log('错误的json数据') + } + } else { + console.log('导入的数据为空') + } + break + default: if (action) { year = +action diff --git a/src/lunar/config.js b/src/lunar/config.js index 93717fc..9ba11c1 100644 --- a/src/lunar/config.js +++ b/src/lunar/config.js @@ -1,3 +1,5 @@ +import { join } from 'path' + // 农历1900-2100年查询表 export const LUNAR_YEARS = [ 0x04bd8, // 1900 @@ -505,3 +507,5 @@ export const SOLAR_FESTIVALS = { '12.24': '平安夜', '12.25': '圣诞节' } + +export const CACHE_FILE = join(process.env.HOME, '.festivals.json') diff --git a/src/lunar/index.js b/src/lunar/index.js index 6e59883..f43140f 100644 --- a/src/lunar/index.js +++ b/src/lunar/index.js @@ -4,6 +4,8 @@ * @date 2021/11/30 13:31:34 */ +import fs from 'fs' + import { LUNAR_YEARS, LUNAR_MONTH, @@ -14,9 +16,18 @@ import { FESTIVALS, SOLAR_FESTIVALS, SOLAR_TERMS, - SOLAR_TERMS_YEARS + SOLAR_TERMS_YEARS, + CACHE_FILE } from './config.js' +let CUSTOM_FESTIVALS = {} + +if (fs.existsSync(CACHE_FILE)) { + try { + CUSTOM_FESTIVALS = JSON.parse(fs.readFileSync(CACHE_FILE)) + } catch (e) {} +} + /** * 公历转农历函数 * 传入公历{年月日}, 返回农历信息, 范围支持 1901/01/01 ~ 2100/12/31 @@ -28,6 +39,7 @@ export function solar2lunar(year = 1901, month = 0, day = 1) { var months, leap var result = { short: '', solarTerms: '', festival: '', lunarFestival: '' } var solarTermsYear = SOLAR_TERMS_YEARS[year - 1900] + var customKey = `${year}.${month + 1}.${day}` if (year < 1901 || year > 2100) { return result @@ -66,6 +78,9 @@ export function solar2lunar(year = 1901, month = 0, day = 1) { } } + // 自定义节假日 + result.custom = CUSTOM_FESTIVALS[customKey] || '' + // 二十四节气 if (solarTermsYear) { let tmp = solarTermsYear.slice(month * 4, (month + 1) * 4)