ascii-side-of-the-moon 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +13 -4
- package/dist/index.cjs +9 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +9 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as h from'astronomy-engine';var s=h.default??h;function X($,g){let n=new Date($.getTime());return n.setDate(n.getDate()+g),n}function k($){return ($%360+360)%360}function N($){let g=s.GeoVector(s.Body.Sun,$,true),n=s.GeoVector(s.Body.Moon,$,true),B=s.EquatorFromVector(g),t=s.EquatorFromVector(n),R=(B.ra-t.ra)*15*s.DEG2RAD,r=t.dec*s.DEG2RAD,a=B.dec*s.DEG2RAD,o=Math.sin(R),i=Math.cos(R),e=o,l=Math.cos(r)*Math.tan(a)-Math.sin(r)*i,A=Math.atan2(e,l)*s.RAD2DEG;return k(A)}function Y($){let g=($%24+24)%24;return g>12&&(g-=24),g}function G($){let g=s.Illumination(s.Body.Moon,$).phase_fraction;return s.Illumination(s.Body.Moon,X($,1)).phase_fraction>g}function H($,g,n){let B=s.SiderealTime($),t=g.longitude/15,R=Y(t+B-n.ra)*15*s.DEG2RAD,r=g.latitude*s.DEG2RAD,a=n.dec*s.DEG2RAD,o=Math.sin(R),i=Math.tan(r)*Math.cos(a)-Math.sin(a)*Math.cos(R);return Math.atan2(o,i)*s.RAD2DEG}function v($,g){let n=new s.Observer(g.latitude,g.longitude,g.elevationMeters??0),B=s.Equator(s.Body.Moon,$,n,true,true),t=s.Horizon($,n,B.ra,B.dec,"normal");return {azimuth:k(t.azimuth),altitude:t.altitude,parallacticAngle:H($,g,B)}}function J($,g){let n=s.Illumination(s.Body.Moon,$),B=s.Libration($);return {date:$,phase:{phaseAngleDeg:n.phase_angle,illuminatedFraction:n.phase_fraction,isWaxing:G($),brightLimbAngle:N($)},size:{distanceKm:B.dist_km,angularDiameterDeg:B.diam_deg},libration:{elon:B.elon,elat:B.elat},position:g?v($,g):void 0}}function V($){let{phaseAngleDeg:g,illuminatedFraction:n}=$.phase,B=$.phase.isWaxing??g>90,t=(g%360+360)%360,_=t>180?360-t:t,R=10,r=10,a=8,o=.98,i=.02,e=.02;return _<=R||n>=o?"Full Moon":_>=180-r||n<=i?"New Moon":Math.abs(_-90)<=a||Math.abs(n-.5)<=e?B?"First Quarter":"Last Quarter":_<90?B?"Waxing Gibbous":"Waning Gibbous":B?"Waxing Crescent":"Waning Crescent"}var T={moons:[{index:0,distance_km:405493.5,libration_elat:-0.888,libration_elon:-0.412,ascii:`
|
|
2
2
|
|
|
3
3
|
._ . - .
|
|
4
4
|
,_++> a, +. \`-.
|
|
@@ -894,12 +894,12 @@ import*as T from'astronomy-engine';var s=T.default??T;function p($,g){let n=new
|
|
|
894
894
|
'FFF'"Z"@MGR^^'\`
|
|
895
895
|
|
|
896
896
|
|
|
897
|
-
`}]};var c=60,d=29,
|
|
898
|
-
`),n=1/0,
|
|
899
|
-
`),
|
|
900
|
-
`)}function
|
|
901
|
-
`),
|
|
902
|
-
`);if($.position?.parallacticAngle!==void 0){let
|
|
903
|
-
`),o=g.size.angularDiameterDeg/Math.max(1,n.height),i=n.centerY+
|
|
904
|
-
`)}function
|
|
897
|
+
`}]};var c=60,d=29,L=-45;function I($){let g=$.split(`
|
|
898
|
+
`),n=1/0,B=-1/0,t=1/0,_=-1/0;if(g.forEach((a,o)=>{let i=a.search(/\S/);if(i!==-1){let e=a.search(/\s+$/);n=Math.min(n,i),B=Math.max(B,e===-1?a.length-1:e-1),t===1/0&&(t=o),_=o;}}),n===1/0)return {width:c,height:d,centerX:Math.floor(c/2),centerY:Math.floor(d/2)};let R=B-n+1,r=_-t+1;return {width:R,height:r,centerX:n+Math.floor(R/2),centerY:t+Math.floor(r/2)}}function P($,g,n){return Math.min(n,Math.max(g,$))}function K($){return $*Math.PI/180}function S($,g,n,B=0){let t=K($),_=K(B),R;g!==void 0?R=K(g):R=K(n?270:90);let r=-Math.sin(R),a=-Math.cos(R),o=r*Math.sin(t),i=a*Math.sin(t),e=Math.cos(t),l=i*Math.cos(_)-e*Math.sin(_),A=i*Math.sin(_)+e*Math.cos(_);i=l,e=A;let W=Math.sqrt(o*o+i*i+e*e);return {sx:o/W,sy:i/W,sz:e/W}}function q($,g,n,B,t){let _=1/c,R=1/d,r=[-0.5,-0.25,0,.25,.5],a=0,o=0;for(let i of r)for(let e of r){let l=$+i*_,A=g+e*R,W=l*l+A*A;if(W>1)continue;let w=Math.sqrt(Math.max(0,1-W)),b=l*n+A*B+w*t;a+=Math.max(0,b),o++;}return o===0?0:a/o}function C($){let B=0,t=1/0;for(let _=0;_<T.moons.length;_++){let R=T.moons[_],r=Math.abs(R.distance_km-$.size.distanceKm)*1,a=Math.abs(R.libration_elat-$.libration.elat)*1e4,o=Math.abs(R.libration_elon-$.libration.elon)*1e4,i=r+a+o;i<t&&(t=i,B=_);}return T.moons[B]}var j=22/10;function p($,g,n,B){let t=(g%360+360)%360;if(Math.abs(t)<.1)return $;let _=$.split(`
|
|
899
|
+
`),R=_.length,r=_[0]?.length??0,a=n??(r-1)/2,o=B??(R-1)/2,i=t*Math.PI/180,e=Math.cos(i),l=Math.sin(i),A=Array.from({length:R},()=>Array(r).fill(" "));for(let W=0;W<R;W++)for(let w=0;w<r;w++){let b=w-a,x=(W-o)*j,f=b*e-x*l,M=b*l+x*e,y=Math.round(f+a),u=Math.round(M/j+o);if(y>=0&&y<r&&u>=0&&u<R){let E=_[u]?.[y]??" ";A[W][w]=E;}}return A.map(W=>W.join("")).join(`
|
|
900
|
+
`)}function U($,g={}){let B=(g??{}).showHorizon!==false,t=C($),_=I(t.ascii),R=t.ascii;Math.abs(L)>.1&&(R=p(R,L,_.centerX,_.centerY));let r=R.split(`
|
|
901
|
+
`),{sx:a,sy:o,sz:i}=S($.phase.phaseAngleDeg,$.phase.brightLimbAngle,$.phase.isWaxing,$.libration.elat),e=Array.from({length:d},()=>Array(c).fill(0)),l=Array.from({length:d},()=>Array(c).fill(-1)),A=Array.from({length:d},()=>Array(c).fill(false)),W=0,w=0;for(let M=0;M<d;M++)for(let y=0;y<c;y++){let u=y-_.centerX,E=M-_.centerY,m=u/(_.width/2),F=E/(_.height/2),Z=m*m+F*F;if(Z>1){e[M][y]=0,l[M][y]=-1;continue}A[M][y]=true,W++;let z=q(m,F,a,o,i);e[M][y]=z,z>0&&w++;let D=Math.sqrt(Math.max(0,1-Z));l[M][y]=m*a+F*o+D*i;}let b=Array.from({length:d},()=>Array(c).fill(false));if(w>0)for(let M=0;M<d;M++)for(let y=0;y<c;y++)b[M][y]=e[M][y]>0;else {let M=P($.phase.illuminatedFraction??0,0,1),y=Math.max(1,Math.round(M*W)),u=[];for(let E=0;E<d;E++)for(let m=0;m<c;m++)A[E][m]&&u.push({ix:m,iy:E,v:l[E][m]});u.sort((E,m)=>m.v-E.v);for(let E=0;E<Math.min(y,u.length);E++){let{ix:m,iy:F}=u[E];b[F][m]=true;}}let x=[];for(let M=0;M<d;M++){let y="",u=r[M]??"";for(let E=0;E<c;E++)b[M][E]?y+=u[E]??" ":y+=" ";x.push(y);}let f=x.join(`
|
|
902
|
+
`);if($.position?.parallacticAngle!==void 0){let M=-$.position.parallacticAngle;Math.abs(M)>.1&&(f=p(f,M,_.centerX,_.centerY));}return B?O(f,$,_):f}function O($,g,n){let B=g.position;if(!B||g.size.angularDiameterDeg<=0)return $;let t=B.altitude??0,_=g.size.angularDiameterDeg/2,R=t+_;if(t-_>=0)return $;let a=$.split(`
|
|
903
|
+
`),o=g.size.angularDiameterDeg/Math.max(1,n.height),i=n.centerY+t/o;i=Math.round(P(i,0,d-1));let e;return R<=0?e=`${Math.abs(t).toFixed(1).replace(/\.0$/,"")}-deg-below-horizon`:e="horizon",a[i]=$$(e),a.join(`
|
|
904
|
+
`)}function $$($){let n=`--${$.trim().replace(/\s+/g,"-")}--`;if(n.length>c&&(n=n.slice(0,c)),n.length===c)return n;let B=c-n.length,t=Math.floor(B/2),_=B-t;return "-".repeat(t)+n+"-".repeat(_)}export{V as getMoonPhase,J as getMoonState,U as renderMoon};//# sourceMappingURL=index.mjs.map
|
|
905
905
|
//# sourceMappingURL=index.mjs.map
|