thoth-cli 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -6,13 +6,17 @@ interface Planet {
6
6
  sign: string;
7
7
  position: number;
8
8
  abs_position: number;
9
- house?: number | null;
9
+ house?: string | null;
10
10
  retrograde: boolean;
11
11
  }
12
12
  interface House {
13
13
  sign: string | null;
14
14
  position: number | null;
15
15
  }
16
+ interface LunarPhase {
17
+ name: string;
18
+ emoji: string;
19
+ }
16
20
  interface ChartResult {
17
21
  name: string;
18
22
  datetime: {
@@ -25,9 +29,19 @@ interface ChartResult {
25
29
  location: {
26
30
  lat: number;
27
31
  lng: number;
32
+ city?: string;
28
33
  };
29
34
  planets: Record<string, Planet>;
30
35
  houses: Record<string, House>;
36
+ aspects: Array<{
37
+ planet1: string;
38
+ planet2: string;
39
+ aspect: string;
40
+ orb: number;
41
+ }>;
42
+ elements: Record<string, number>;
43
+ modes: Record<string, number>;
44
+ lunar_phase?: LunarPhase;
31
45
  ascendant: {
32
46
  sign: string | null;
33
47
  position: number | null;
@@ -36,24 +50,30 @@ interface ChartResult {
36
50
  sign: string | null;
37
51
  position: number | null;
38
52
  };
53
+ svg?: string;
54
+ type?: string;
39
55
  }
40
56
  interface Aspect {
41
57
  transit_planet: string;
42
58
  natal_planet: string;
43
- aspect: 'conjunction' | 'opposition' | 'trine' | 'square' | 'sextile';
59
+ aspect: string;
44
60
  orb: number;
45
- transit_position: number;
46
- natal_position: number;
47
- applying: boolean;
61
+ transit_house?: number;
62
+ natal_house?: number;
48
63
  }
49
64
  interface TransitResult {
50
65
  natal: {
51
66
  datetime: string;
67
+ city?: string;
52
68
  };
53
69
  transit: {
54
70
  datetime: string;
71
+ planets?: Record<string, Planet>;
72
+ lunar_phase?: LunarPhase;
55
73
  };
56
74
  aspects: Aspect[];
75
+ svg?: string;
76
+ type?: string;
57
77
  }
58
78
  interface MoonResult {
59
79
  datetime: string;
@@ -76,6 +96,128 @@ interface EphemerisResult {
76
96
  abs_position: number;
77
97
  retrograde: boolean;
78
98
  }
99
+ interface SolarReturnResult {
100
+ type: string;
101
+ natal_date: string;
102
+ return_year: number;
103
+ exact_datetime: string;
104
+ location: {
105
+ city?: string;
106
+ lat?: number;
107
+ lng?: number;
108
+ };
109
+ planets: Record<string, Planet>;
110
+ houses: Record<string, House>;
111
+ ascendant: {
112
+ sign: string;
113
+ position: number;
114
+ };
115
+ midheaven: {
116
+ sign: string;
117
+ position: number;
118
+ };
119
+ lunar_phase?: LunarPhase;
120
+ svg?: string;
121
+ }
122
+ interface LunarReturnResult {
123
+ type: string;
124
+ natal_date: string;
125
+ natal_moon: {
126
+ sign: string;
127
+ position: number;
128
+ };
129
+ search_from: string;
130
+ exact_datetime: string;
131
+ location: {
132
+ city?: string;
133
+ };
134
+ planets: Record<string, Planet>;
135
+ houses: Record<string, House>;
136
+ ascendant: {
137
+ sign: string;
138
+ position: number;
139
+ };
140
+ midheaven: {
141
+ sign: string;
142
+ position: number;
143
+ };
144
+ svg?: string;
145
+ }
146
+ interface SynastryResult {
147
+ type: string;
148
+ person1: {
149
+ name: string;
150
+ date: string;
151
+ planets: Record<string, Planet>;
152
+ };
153
+ person2: {
154
+ name: string;
155
+ date: string;
156
+ planets: Record<string, Planet>;
157
+ };
158
+ aspects: Array<{
159
+ planet1: string;
160
+ planet2: string;
161
+ aspect: string;
162
+ orb: number;
163
+ }>;
164
+ aspect_count: number;
165
+ svg?: string;
166
+ }
167
+ interface ProgressionsResult {
168
+ type: string;
169
+ method: string;
170
+ natal_date: string;
171
+ target_date: string;
172
+ age_at_target: number;
173
+ progressed_date: string;
174
+ progressed_planets: Record<string, Planet>;
175
+ natal_planets: Record<string, Planet>;
176
+ progressed_to_natal_aspects: Array<{
177
+ progressed: string;
178
+ natal: string;
179
+ aspect: string;
180
+ orb: number;
181
+ }>;
182
+ progressed_ascendant: {
183
+ sign: string;
184
+ position: number;
185
+ };
186
+ progressed_midheaven: {
187
+ sign: string;
188
+ position: number;
189
+ };
190
+ svg?: string;
191
+ }
192
+ interface EphemerisPosition {
193
+ date: string;
194
+ sign: string;
195
+ position: number;
196
+ abs_position: number;
197
+ retrograde: boolean;
198
+ }
199
+ interface SignChange {
200
+ date: string;
201
+ from: string;
202
+ to: string;
203
+ }
204
+ interface RetrogradeStation {
205
+ date: string;
206
+ station: 'retrograde' | 'direct';
207
+ sign: string;
208
+ position: number;
209
+ }
210
+ interface EphemerisRangeResult {
211
+ body: string;
212
+ range: {
213
+ start: string;
214
+ end: string;
215
+ step: string;
216
+ };
217
+ positions: EphemerisPosition[];
218
+ sign_changes: SignChange[];
219
+ retrograde_stations: RetrogradeStation[];
220
+ }
79
221
  interface ChartOptions {
80
222
  year: number;
81
223
  month: number;
@@ -87,6 +229,7 @@ interface ChartOptions {
87
229
  city?: string;
88
230
  nation?: string;
89
231
  name?: string;
232
+ svg?: boolean;
90
233
  }
91
234
  interface TransitOptions {
92
235
  natalYear: number;
@@ -102,6 +245,86 @@ interface TransitOptions {
102
245
  transitMonth?: number;
103
246
  transitDay?: number;
104
247
  orb?: number;
248
+ svg?: boolean;
249
+ }
250
+ interface SolarReturnOptions {
251
+ natalYear: number;
252
+ natalMonth: number;
253
+ natalDay: number;
254
+ natalHour?: number;
255
+ natalMinute?: number;
256
+ natalLat?: number;
257
+ natalLng?: number;
258
+ natalCity?: string;
259
+ nation?: string;
260
+ returnYear: number;
261
+ returnCity?: string;
262
+ svg?: boolean;
263
+ }
264
+ interface LunarReturnOptions {
265
+ natalYear: number;
266
+ natalMonth: number;
267
+ natalDay: number;
268
+ natalHour?: number;
269
+ natalMinute?: number;
270
+ natalLat?: number;
271
+ natalLng?: number;
272
+ natalCity?: string;
273
+ nation?: string;
274
+ fromYear: number;
275
+ fromMonth: number;
276
+ fromDay?: number;
277
+ returnCity?: string;
278
+ svg?: boolean;
279
+ }
280
+ interface SynastryOptions {
281
+ year1: number;
282
+ month1: number;
283
+ day1: number;
284
+ hour1?: number;
285
+ minute1?: number;
286
+ lat1?: number;
287
+ lng1?: number;
288
+ city1?: string;
289
+ nation1?: string;
290
+ name1?: string;
291
+ year2: number;
292
+ month2: number;
293
+ day2: number;
294
+ hour2?: number;
295
+ minute2?: number;
296
+ lat2?: number;
297
+ lng2?: number;
298
+ city2?: string;
299
+ nation2?: string;
300
+ name2?: string;
301
+ orb?: number;
302
+ svg?: boolean;
303
+ }
304
+ interface ProgressionsOptions {
305
+ natalYear: number;
306
+ natalMonth: number;
307
+ natalDay: number;
308
+ natalHour?: number;
309
+ natalMinute?: number;
310
+ natalLat?: number;
311
+ natalLng?: number;
312
+ natalCity?: string;
313
+ nation?: string;
314
+ targetYear: number;
315
+ targetMonth?: number;
316
+ targetDay?: number;
317
+ svg?: boolean;
318
+ }
319
+ interface EphemerisRangeOptions {
320
+ body: string;
321
+ startYear: number;
322
+ startMonth?: number;
323
+ startDay?: number;
324
+ endYear: number;
325
+ endMonth?: number;
326
+ endDay?: number;
327
+ step?: 'day' | 'week' | 'month';
105
328
  }
106
329
  interface MoonOptions {
107
330
  year?: number;
@@ -110,6 +333,160 @@ interface MoonOptions {
110
333
  lat?: number;
111
334
  lng?: number;
112
335
  }
336
+ interface CompositeResult {
337
+ type: string;
338
+ method: string;
339
+ person1: {
340
+ name: string;
341
+ date: string;
342
+ };
343
+ person2: {
344
+ name: string;
345
+ date: string;
346
+ };
347
+ name: string;
348
+ planets: Record<string, {
349
+ sign: string;
350
+ position: number;
351
+ abs_position: number;
352
+ house?: string;
353
+ }>;
354
+ houses: Record<string, House>;
355
+ ascendant: {
356
+ sign: string;
357
+ position: number;
358
+ };
359
+ midheaven: {
360
+ sign: string;
361
+ position: number;
362
+ };
363
+ svg?: string;
364
+ }
365
+ interface CompositeOptions {
366
+ year1: number;
367
+ month1: number;
368
+ day1: number;
369
+ hour1?: number;
370
+ minute1?: number;
371
+ lat1?: number;
372
+ lng1?: number;
373
+ city1?: string;
374
+ nation1?: string;
375
+ name1?: string;
376
+ year2: number;
377
+ month2: number;
378
+ day2: number;
379
+ hour2?: number;
380
+ minute2?: number;
381
+ lat2?: number;
382
+ lng2?: number;
383
+ city2?: string;
384
+ nation2?: string;
385
+ name2?: string;
386
+ svg?: boolean;
387
+ }
388
+ interface DirectedPlanet {
389
+ sign: string;
390
+ position: number;
391
+ abs_position: number;
392
+ natal_sign: string;
393
+ natal_position: number;
394
+ }
395
+ interface SolarArcResult {
396
+ type: string;
397
+ method: string;
398
+ natal_date: string;
399
+ target_date: string;
400
+ age_at_target: number;
401
+ solar_arc: number;
402
+ directed_planets: Record<string, DirectedPlanet>;
403
+ directed_ascendant: DirectedPlanet;
404
+ directed_midheaven: DirectedPlanet;
405
+ directed_to_natal_aspects: Array<{
406
+ directed: string;
407
+ natal: string;
408
+ aspect: string;
409
+ orb: number;
410
+ }>;
411
+ }
412
+ interface SolarArcOptions {
413
+ natalYear: number;
414
+ natalMonth: number;
415
+ natalDay: number;
416
+ natalHour?: number;
417
+ natalMinute?: number;
418
+ natalLat?: number;
419
+ natalLng?: number;
420
+ natalCity?: string;
421
+ nation?: string;
422
+ targetYear: number;
423
+ targetMonth?: number;
424
+ targetDay?: number;
425
+ }
426
+ interface MoonAspect {
427
+ planet: string;
428
+ aspect: string;
429
+ orb: number;
430
+ applying: boolean;
431
+ }
432
+ interface HoraryHouse {
433
+ sign: string;
434
+ position: number;
435
+ ruler: string;
436
+ topic: string;
437
+ }
438
+ interface HoraryResult {
439
+ type: string;
440
+ question: string;
441
+ cast_time: {
442
+ datetime: string;
443
+ city?: string;
444
+ };
445
+ planetary_hour: string;
446
+ day_ruler: string;
447
+ querent: {
448
+ house: number;
449
+ sign: string;
450
+ ruler: string;
451
+ ruler_position: {
452
+ sign: string;
453
+ position: number;
454
+ house?: string;
455
+ retrograde: boolean;
456
+ };
457
+ };
458
+ moon: {
459
+ sign: string;
460
+ position: number;
461
+ house?: string;
462
+ void_of_course: boolean;
463
+ degrees_until_sign_change: number;
464
+ aspects: MoonAspect[];
465
+ };
466
+ strictures: string[];
467
+ houses: Record<string, HoraryHouse>;
468
+ planets: Record<string, Planet>;
469
+ ascendant: {
470
+ sign: string;
471
+ position: number;
472
+ };
473
+ midheaven: {
474
+ sign: string;
475
+ position: number;
476
+ };
477
+ }
478
+ interface HoraryOptions {
479
+ question: string;
480
+ year?: number;
481
+ month?: number;
482
+ day?: number;
483
+ hour?: number;
484
+ minute?: number;
485
+ lat?: number;
486
+ lng?: number;
487
+ city?: string;
488
+ nation?: string;
489
+ }
113
490
  interface EphemerisOptions {
114
491
  body: string;
115
492
  year?: number;
@@ -135,6 +512,26 @@ declare function chart(options: ChartOptions): Promise<ThothResult<ChartResult>>
135
512
  * Calculate transits to a natal chart
136
513
  */
137
514
  declare function transit(options: TransitOptions): Promise<ThothResult<TransitResult>>;
515
+ /**
516
+ * Calculate solar return chart
517
+ */
518
+ declare function solarReturn(options: SolarReturnOptions): Promise<ThothResult<SolarReturnResult>>;
519
+ /**
520
+ * Calculate lunar return chart
521
+ */
522
+ declare function lunarReturn(options: LunarReturnOptions): Promise<ThothResult<LunarReturnResult>>;
523
+ /**
524
+ * Calculate synastry between two charts
525
+ */
526
+ declare function synastry(options: SynastryOptions): Promise<ThothResult<SynastryResult>>;
527
+ /**
528
+ * Calculate secondary progressions
529
+ */
530
+ declare function progressions(options: ProgressionsOptions): Promise<ThothResult<ProgressionsResult>>;
531
+ /**
532
+ * Get ephemeris positions over a date range
533
+ */
534
+ declare function ephemerisRange(options: EphemerisRangeOptions): Promise<ThothResult<EphemerisRangeResult>>;
138
535
  /**
139
536
  * Get moon phase and position
140
537
  */
@@ -143,6 +540,18 @@ declare function moon(options?: MoonOptions): Promise<ThothResult<MoonResult>>;
143
540
  * Get ephemeris position for a celestial body
144
541
  */
145
542
  declare function ephemeris(options: EphemerisOptions): Promise<ThothResult<EphemerisResult>>;
543
+ /**
544
+ * Calculate composite chart
545
+ */
546
+ declare function composite(options: CompositeOptions): Promise<ThothResult<CompositeResult>>;
547
+ /**
548
+ * Calculate solar arc directions
549
+ */
550
+ declare function solarArc(options: SolarArcOptions): Promise<ThothResult<SolarArcResult>>;
551
+ /**
552
+ * Cast a horary chart
553
+ */
554
+ declare function horary(options: HoraryOptions): Promise<ThothResult<HoraryResult>>;
146
555
  /**
147
556
  * Get version
148
557
  */
@@ -187,5 +596,37 @@ declare function formatMoon(result: MoonResult): string;
187
596
  * Format ephemeris result
188
597
  */
189
598
  declare function formatEphemeris(result: EphemerisResult): string;
599
+ /**
600
+ * Format solar return result
601
+ */
602
+ declare function formatSolarReturn(result: SolarReturnResult): string;
603
+ /**
604
+ * Format lunar return result
605
+ */
606
+ declare function formatLunarReturn(result: LunarReturnResult): string;
607
+ /**
608
+ * Format synastry result
609
+ */
610
+ declare function formatSynastry(result: SynastryResult): string;
611
+ /**
612
+ * Format progressions result
613
+ */
614
+ declare function formatProgressions(result: ProgressionsResult): string;
615
+ /**
616
+ * Format ephemeris range result
617
+ */
618
+ declare function formatEphemerisRange(result: EphemerisRangeResult): string;
619
+ /**
620
+ * Format composite chart result
621
+ */
622
+ declare function formatComposite(result: CompositeResult): string;
623
+ /**
624
+ * Format solar arc directions result
625
+ */
626
+ declare function formatSolarArc(result: SolarArcResult): string;
627
+ /**
628
+ * Format horary chart result
629
+ */
630
+ declare function formatHorary(result: HoraryResult): string;
190
631
 
191
- export { type Aspect, type ChartOptions, type ChartResult, type EphemerisOptions, type EphemerisResult, type House, type MoonOptions, type MoonResult, type Planet, type ThothError, type ThothResult, type TransitOptions, type TransitResult, chart, ephemeris, formatChart, formatDegrees, formatEphemeris, formatMoon, formatTransits, getAspectSymbol, getPlanetSymbol, getZodiacSymbol, isError, moon, transit, version };
632
+ export { type Aspect, type ChartOptions, type ChartResult, type CompositeOptions, type CompositeResult, type DirectedPlanet, type EphemerisOptions, type EphemerisPosition, type EphemerisRangeOptions, type EphemerisRangeResult, type EphemerisResult, type HoraryHouse, type HoraryOptions, type HoraryResult, type House, type LunarPhase, type LunarReturnOptions, type LunarReturnResult, type MoonAspect, type MoonOptions, type MoonResult, type Planet, type ProgressionsOptions, type ProgressionsResult, type RetrogradeStation, type SignChange, type SolarArcOptions, type SolarArcResult, type SolarReturnOptions, type SolarReturnResult, type SynastryOptions, type SynastryResult, type ThothError, type ThothResult, type TransitOptions, type TransitResult, chart, composite, ephemeris, ephemerisRange, formatChart, formatComposite, formatDegrees, formatEphemeris, formatEphemerisRange, formatHorary, formatLunarReturn, formatMoon, formatProgressions, formatSolarArc, formatSolarReturn, formatSynastry, formatTransits, getAspectSymbol, getPlanetSymbol, getZodiacSymbol, horary, isError, lunarReturn, moon, progressions, solarArc, solarReturn, synastry, transit, version };
package/dist/index.js CHANGED
@@ -1,32 +1,64 @@
1
1
  import {
2
2
  chart,
3
+ composite,
3
4
  ephemeris,
5
+ ephemerisRange,
4
6
  formatChart,
7
+ formatComposite,
5
8
  formatDegrees,
6
9
  formatEphemeris,
10
+ formatEphemerisRange,
11
+ formatHorary,
12
+ formatLunarReturn,
7
13
  formatMoon,
14
+ formatProgressions,
15
+ formatSolarArc,
16
+ formatSolarReturn,
17
+ formatSynastry,
8
18
  formatTransits,
9
19
  getAspectSymbol,
10
20
  getPlanetSymbol,
11
21
  getZodiacSymbol,
22
+ horary,
12
23
  isError,
24
+ lunarReturn,
13
25
  moon,
26
+ progressions,
27
+ solarArc,
28
+ solarReturn,
29
+ synastry,
14
30
  transit,
15
31
  version
16
- } from "./chunk-NYXKYHNK.js";
32
+ } from "./chunk-NEQKNEBO.js";
17
33
  export {
18
34
  chart,
35
+ composite,
19
36
  ephemeris,
37
+ ephemerisRange,
20
38
  formatChart,
39
+ formatComposite,
21
40
  formatDegrees,
22
41
  formatEphemeris,
42
+ formatEphemerisRange,
43
+ formatHorary,
44
+ formatLunarReturn,
23
45
  formatMoon,
46
+ formatProgressions,
47
+ formatSolarArc,
48
+ formatSolarReturn,
49
+ formatSynastry,
24
50
  formatTransits,
25
51
  getAspectSymbol,
26
52
  getPlanetSymbol,
27
53
  getZodiacSymbol,
54
+ horary,
28
55
  isError,
56
+ lunarReturn,
29
57
  moon,
58
+ progressions,
59
+ solarArc,
60
+ solarReturn,
61
+ synastry,
30
62
  transit,
31
63
  version
32
64
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thoth-cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "𓅝 Astrological calculations from the command line. Swiss Ephemeris precision. Built for humans and agents.",
5
5
  "author": "AKLO <aklo@aklolabs.com>",
6
6
  "license": "MIT",