thoth-cli 0.2.20 → 0.2.21
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/bin.js +39 -16
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
formatEphemerisRange,
|
|
13
13
|
formatHorary,
|
|
14
14
|
formatLunarReturn,
|
|
15
|
+
formatMoon,
|
|
15
16
|
formatMoonExtended,
|
|
16
17
|
formatProgressions,
|
|
17
18
|
formatScore,
|
|
@@ -23,6 +24,7 @@ import {
|
|
|
23
24
|
horary,
|
|
24
25
|
isError,
|
|
25
26
|
lunarReturn,
|
|
27
|
+
moon,
|
|
26
28
|
moonExtended,
|
|
27
29
|
progressions,
|
|
28
30
|
score,
|
|
@@ -94,7 +96,7 @@ EPHEMERIS & MOON
|
|
|
94
96
|
\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
|
|
95
97
|
REFERENCE
|
|
96
98
|
\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
|
|
97
|
-
thoth key # full symbol reference`).version("0.2.
|
|
99
|
+
thoth key # full symbol reference`).version("0.2.21");
|
|
98
100
|
program.command("chart").description("Calculate a natal chart").requiredOption("--date <date>", "Birth date (YYYY-MM-DD)").requiredOption("--time <time>", "Birth time (HH:MM)").option("--lat <lat>", "Latitude", parseFloat).option("--lng <lng>", "Longitude", parseFloat).option("--city <city>", "City name").option("--nation <nation>", "Country code", "US").option("--name <name>", "Name", "Subject").option("--json", "Output raw JSON").option("--svg", "Output SVG chart").option("--svg-file <path>", "Save SVG to file").action(async (options) => {
|
|
99
101
|
if (!options.city && (!options.lat || !options.lng)) {
|
|
100
102
|
console.error(chalk.red("Error: Must provide either --city or both --lat and --lng"));
|
|
@@ -479,19 +481,40 @@ program.command("horary").description("Cast a horary chart for divination (like
|
|
|
479
481
|
console.log(formatHorary(result));
|
|
480
482
|
}
|
|
481
483
|
});
|
|
482
|
-
program.command("moon").description("Get moon phase
|
|
484
|
+
program.command("moon").description("Get moon phase and position").option("--date <date>", "Date (YYYY-MM-DD, default: today)").option("--lat <lat>", "Latitude", parseFloat, 40.7128).option("--lng <lng>", "Longitude", parseFloat, -74.006).option("--tz <tz>", "Timezone (for --extended)", "America/New_York").option("-e, --extended", "Show eclipses, sunrise/sunset, upcoming phases").option("--json", "Output raw JSON").action(async (options) => {
|
|
483
485
|
let year, month, day;
|
|
484
486
|
if (options.date) {
|
|
485
487
|
[year, month, day] = options.date.split("-").map(Number);
|
|
486
488
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
+
if (options.extended) {
|
|
490
|
+
const spinner2 = ora("Getting moon details...").start();
|
|
491
|
+
const result2 = await moonExtended({
|
|
492
|
+
year,
|
|
493
|
+
month,
|
|
494
|
+
day,
|
|
495
|
+
lat: options.lat,
|
|
496
|
+
lng: options.lng,
|
|
497
|
+
tz: options.tz
|
|
498
|
+
});
|
|
499
|
+
spinner2.stop();
|
|
500
|
+
if (isError(result2)) {
|
|
501
|
+
console.error(chalk.red(`Error: ${result2.error}`));
|
|
502
|
+
process.exit(1);
|
|
503
|
+
}
|
|
504
|
+
if (options.json) {
|
|
505
|
+
console.log(JSON.stringify(result2, null, 2));
|
|
506
|
+
} else {
|
|
507
|
+
console.log(formatMoonExtended(result2));
|
|
508
|
+
}
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
const spinner = ora("Getting moon phase...").start();
|
|
512
|
+
const result = await moon({
|
|
489
513
|
year,
|
|
490
514
|
month,
|
|
491
515
|
day,
|
|
492
516
|
lat: options.lat,
|
|
493
|
-
lng: options.lng
|
|
494
|
-
tz: options.tz
|
|
517
|
+
lng: options.lng
|
|
495
518
|
});
|
|
496
519
|
spinner.stop();
|
|
497
520
|
if (isError(result)) {
|
|
@@ -501,7 +524,7 @@ program.command("moon").description("Get moon phase, eclipses, sunrise/sunset").
|
|
|
501
524
|
if (options.json) {
|
|
502
525
|
console.log(JSON.stringify(result, null, 2));
|
|
503
526
|
} else {
|
|
504
|
-
console.log(
|
|
527
|
+
console.log(formatMoon(result));
|
|
505
528
|
}
|
|
506
529
|
});
|
|
507
530
|
program.command("ephemeris").description("Get ephemeris position for a celestial body").requiredOption("--body <body>", "Celestial body (sun, moon, mars, etc.)").option("--date <date>", "Date (YYYY-MM-DD, default: today)").option("--json", "Output raw JSON").action(async (options) => {
|
|
@@ -537,7 +560,7 @@ program.command("core-version").description("Show thoth-core version").action(as
|
|
|
537
560
|
});
|
|
538
561
|
program.command("key").description("Symbol reference guide").action(() => {
|
|
539
562
|
const sun = chalk.hex("#FFD700");
|
|
540
|
-
const
|
|
563
|
+
const moon2 = chalk.hex("#C0C0C0");
|
|
541
564
|
const mercury = chalk.hex("#FF8C00");
|
|
542
565
|
const venus = chalk.hex("#00FF7F");
|
|
543
566
|
const mars = chalk.hex("#FF0000");
|
|
@@ -554,8 +577,8 @@ program.command("key").description("Symbol reference guide").action(() => {
|
|
|
554
577
|
console.log(chalk.bold.cyan("\u2550\u2550 PLANETS \u2550\u2550"));
|
|
555
578
|
console.log(` ${sun("\u2609 Sun")} Identity, vitality, ego, life force`);
|
|
556
579
|
console.log(` ${chalk.dim("Rules:")} ${sun("Leo")} ${chalk.dim("Sephira:")} Tiphareth`);
|
|
557
|
-
console.log(` ${
|
|
558
|
-
console.log(` ${chalk.dim("Rules:")} ${
|
|
580
|
+
console.log(` ${moon2("\u263D Moon")} Emotions, instincts, the unconscious, mother`);
|
|
581
|
+
console.log(` ${chalk.dim("Rules:")} ${moon2("Cancer")} ${chalk.dim("Sephira:")} Yesod`);
|
|
559
582
|
console.log(` ${mercury("\u263F Mercury")} Mind, communication, learning, commerce`);
|
|
560
583
|
console.log(` ${chalk.dim("Rules:")} ${mercury("Gemini, Virgo")} ${chalk.dim("Sephira:")} Hod`);
|
|
561
584
|
console.log(` ${venus("\u2640 Venus")} Love, beauty, values, attraction, harmony`);
|
|
@@ -586,8 +609,8 @@ program.command("key").description("Symbol reference guide").action(() => {
|
|
|
586
609
|
console.log(` ${chalk.dim("Ruler:")} ${venus("Venus")} ${chalk.dim('"I HAVE"')}`);
|
|
587
610
|
console.log(` ${mercury("\u264A Gemini")} ${chalk.dim("Mutable Air")} Curiosity, duality, scattered`);
|
|
588
611
|
console.log(` ${chalk.dim("Ruler:")} ${mercury("Mercury")} ${chalk.dim('"I THINK"')}`);
|
|
589
|
-
console.log(` ${
|
|
590
|
-
console.log(` ${chalk.dim("Ruler:")} ${
|
|
612
|
+
console.log(` ${moon2("\u264B Cancer")} ${chalk.dim("Cardinal Water")} Nurturing, protective, moody`);
|
|
613
|
+
console.log(` ${chalk.dim("Ruler:")} ${moon2("Moon")} ${chalk.dim('"I FEEL"')}`);
|
|
591
614
|
console.log(` ${sun("\u264C Leo")} ${chalk.dim("Fixed Fire")} Creative, proud, dramatic`);
|
|
592
615
|
console.log(` ${chalk.dim("Ruler:")} ${sun("Sun")} ${chalk.dim('"I WILL"')}`);
|
|
593
616
|
console.log(` ${mercury("\u264D Virgo")} ${chalk.dim("Mutable Earth")} Analytical, service, critical`);
|
|
@@ -622,7 +645,7 @@ program.command("key").description("Symbol reference guide").action(() => {
|
|
|
622
645
|
console.log(chalk.bold.cyan("\u2550\u2550 ASPECTS \u2550\u2550"));
|
|
623
646
|
console.log(` ${sun("\u260C Conjunction")} 0\xB0 Fusion, intensification, new cycle`);
|
|
624
647
|
console.log(` ${chalk.dim("Sephira: Tiphareth (Sun) \u2014 creative union")}`);
|
|
625
|
-
console.log(` ${
|
|
648
|
+
console.log(` ${moon2("\u260D Opposition")} 180\xB0 Awareness, tension, projection`);
|
|
626
649
|
console.log(` ${chalk.dim("Sephira: Yesod (Moon) \u2014 polarity, reflection")}`);
|
|
627
650
|
console.log(` ${jupiter("\u25B3 Trine")} 120\xB0 Harmony, ease, natural talent`);
|
|
628
651
|
console.log(` ${chalk.dim("Sephira: Chesed (Jupiter) \u2014 grace, flow")}`);
|
|
@@ -644,12 +667,12 @@ program.command("key").description("Symbol reference guide").action(() => {
|
|
|
644
667
|
console.log(` ${mercury("\u{1F701} Air")} ${mercury("Gemini, Libra, Aquarius")}`);
|
|
645
668
|
console.log(` Mind, communication, connection, ideas`);
|
|
646
669
|
console.log(` ${chalk.dim("Hot & Wet \u2014 Sanguine \u2014 Thinking function")}`);
|
|
647
|
-
console.log(` ${jupiter("\u{1F704} Water")} ${
|
|
670
|
+
console.log(` ${jupiter("\u{1F704} Water")} ${moon2("Cancer, Scorpio, Pisces")}`);
|
|
648
671
|
console.log(` Emotion, intuition, the unconscious, soul`);
|
|
649
672
|
console.log(` ${chalk.dim("Cold & Wet \u2014 Phlegmatic \u2014 Feeling function")}`);
|
|
650
673
|
console.log("");
|
|
651
674
|
console.log(chalk.bold.cyan("\u2550\u2550 MODALITIES \u2550\u2550"));
|
|
652
|
-
console.log(` ${chalk.bold("Cardinal")} ${mars("Aries")}, ${
|
|
675
|
+
console.log(` ${chalk.bold("Cardinal")} ${mars("Aries")}, ${moon2("Cancer")}, ${venus("Libra")}, ${saturn("Capricorn")}`);
|
|
653
676
|
console.log(` Initiating, leadership, action`);
|
|
654
677
|
console.log(` ${chalk.dim('The spark. Begins seasons. "I start."')}`);
|
|
655
678
|
console.log(` ${chalk.bold("Fixed")} ${venus("Taurus")}, ${sun("Leo")}, ${pluto("Scorpio")}, ${uranus("Aquarius")}`);
|
|
@@ -774,6 +797,6 @@ program.command("ephemeris-multi").description("Get ephemeris for multiple bodie
|
|
|
774
797
|
}
|
|
775
798
|
});
|
|
776
799
|
console.log(chalk.dim(""));
|
|
777
|
-
console.log(chalk.yellow(" \u{1315D}") + chalk.dim(" thoth-cli v0.2.
|
|
800
|
+
console.log(chalk.yellow(" \u{1315D}") + chalk.dim(" thoth-cli v0.2.21"));
|
|
778
801
|
console.log(chalk.dim(""));
|
|
779
802
|
program.parse();
|
package/package.json
CHANGED