astro-ascendant 0.1.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.
Files changed (303) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +185 -0
  3. package/dist/astro-params/index.d.ts +3 -0
  4. package/dist/astro-params/index.d.ts.map +1 -0
  5. package/dist/astro-params/index.js +3 -0
  6. package/dist/astro-params/index.js.map +1 -0
  7. package/dist/astro-params/model.d.ts +11 -0
  8. package/dist/astro-params/model.d.ts.map +1 -0
  9. package/dist/astro-params/model.js +63 -0
  10. package/dist/astro-params/model.js.map +1 -0
  11. package/dist/astro-params/service.d.ts +12 -0
  12. package/dist/astro-params/service.d.ts.map +1 -0
  13. package/dist/astro-params/service.js +13 -0
  14. package/dist/astro-params/service.js.map +1 -0
  15. package/dist/chart/bhava/calculate.d.ts +6 -0
  16. package/dist/chart/bhava/calculate.d.ts.map +1 -0
  17. package/dist/chart/bhava/calculate.js +89 -0
  18. package/dist/chart/bhava/calculate.js.map +1 -0
  19. package/dist/chart/bhava/helper.d.ts +6 -0
  20. package/dist/chart/bhava/helper.d.ts.map +1 -0
  21. package/dist/chart/bhava/helper.js +22 -0
  22. package/dist/chart/bhava/helper.js.map +1 -0
  23. package/dist/chart/bhava/index.d.ts +2 -0
  24. package/dist/chart/bhava/index.d.ts.map +1 -0
  25. package/dist/chart/bhava/index.js +2 -0
  26. package/dist/chart/bhava/index.js.map +1 -0
  27. package/dist/chart/charts.d.ts +5 -0
  28. package/dist/chart/charts.d.ts.map +1 -0
  29. package/dist/chart/charts.js +74 -0
  30. package/dist/chart/charts.js.map +1 -0
  31. package/dist/chart/divisional-mapping/calculate.d.ts +6 -0
  32. package/dist/chart/divisional-mapping/calculate.d.ts.map +1 -0
  33. package/dist/chart/divisional-mapping/calculate.js +24 -0
  34. package/dist/chart/divisional-mapping/calculate.js.map +1 -0
  35. package/dist/chart/divisional-mapping/error.d.ts +9 -0
  36. package/dist/chart/divisional-mapping/error.d.ts.map +1 -0
  37. package/dist/chart/divisional-mapping/error.js +7 -0
  38. package/dist/chart/divisional-mapping/error.js.map +1 -0
  39. package/dist/chart/divisional-mapping/helper.d.ts +11 -0
  40. package/dist/chart/divisional-mapping/helper.d.ts.map +1 -0
  41. package/dist/chart/divisional-mapping/helper.js +92 -0
  42. package/dist/chart/divisional-mapping/helper.js.map +1 -0
  43. package/dist/chart/divisional-mapping/index.d.ts +4 -0
  44. package/dist/chart/divisional-mapping/index.d.ts.map +1 -0
  45. package/dist/chart/divisional-mapping/index.js +4 -0
  46. package/dist/chart/divisional-mapping/index.js.map +1 -0
  47. package/dist/chart/divisional-mapping/model.d.ts +16 -0
  48. package/dist/chart/divisional-mapping/model.d.ts.map +1 -0
  49. package/dist/chart/divisional-mapping/model.js +2 -0
  50. package/dist/chart/divisional-mapping/model.js.map +1 -0
  51. package/dist/chart/error.d.ts +21 -0
  52. package/dist/chart/error.d.ts.map +1 -0
  53. package/dist/chart/error.js +18 -0
  54. package/dist/chart/error.js.map +1 -0
  55. package/dist/chart/generate.d.ts +7 -0
  56. package/dist/chart/generate.d.ts.map +1 -0
  57. package/dist/chart/generate.js +62 -0
  58. package/dist/chart/generate.js.map +1 -0
  59. package/dist/chart/helper.d.ts +4 -0
  60. package/dist/chart/helper.d.ts.map +1 -0
  61. package/dist/chart/helper.js +21 -0
  62. package/dist/chart/helper.js.map +1 -0
  63. package/dist/chart/index.d.ts +5 -0
  64. package/dist/chart/index.d.ts.map +1 -0
  65. package/dist/chart/index.js +5 -0
  66. package/dist/chart/index.js.map +1 -0
  67. package/dist/chart/internal/constants.d.ts +210 -0
  68. package/dist/chart/internal/constants.d.ts.map +1 -0
  69. package/dist/chart/internal/constants.js +461 -0
  70. package/dist/chart/internal/constants.js.map +1 -0
  71. package/dist/chart/internal/position.d.ts +5 -0
  72. package/dist/chart/internal/position.d.ts.map +1 -0
  73. package/dist/chart/internal/position.js +14 -0
  74. package/dist/chart/internal/position.js.map +1 -0
  75. package/dist/chart/model.d.ts +153 -0
  76. package/dist/chart/model.d.ts.map +1 -0
  77. package/dist/chart/model.js +124 -0
  78. package/dist/chart/model.js.map +1 -0
  79. package/dist/chart/placements.d.ts +10 -0
  80. package/dist/chart/placements.d.ts.map +1 -0
  81. package/dist/chart/placements.js +41 -0
  82. package/dist/chart/placements.js.map +1 -0
  83. package/dist/dasha/calculate.d.ts +15 -0
  84. package/dist/dasha/calculate.d.ts.map +1 -0
  85. package/dist/dasha/calculate.js +106 -0
  86. package/dist/dasha/calculate.js.map +1 -0
  87. package/dist/dasha/error.d.ts +9 -0
  88. package/dist/dasha/error.d.ts.map +1 -0
  89. package/dist/dasha/error.js +7 -0
  90. package/dist/dasha/error.js.map +1 -0
  91. package/dist/dasha/index.d.ts +5 -0
  92. package/dist/dasha/index.d.ts.map +1 -0
  93. package/dist/dasha/index.js +5 -0
  94. package/dist/dasha/index.js.map +1 -0
  95. package/dist/dasha/model.d.ts +56 -0
  96. package/dist/dasha/model.d.ts.map +1 -0
  97. package/dist/dasha/model.js +20 -0
  98. package/dist/dasha/model.js.map +1 -0
  99. package/dist/dasha/query.d.ts +31 -0
  100. package/dist/dasha/query.d.ts.map +1 -0
  101. package/dist/dasha/query.js +19 -0
  102. package/dist/dasha/query.js.map +1 -0
  103. package/dist/ephemeris/error.d.ts +9 -0
  104. package/dist/ephemeris/error.d.ts.map +1 -0
  105. package/dist/ephemeris/error.js +7 -0
  106. package/dist/ephemeris/error.js.map +1 -0
  107. package/dist/ephemeris/index.d.ts +4 -0
  108. package/dist/ephemeris/index.d.ts.map +1 -0
  109. package/dist/ephemeris/index.js +4 -0
  110. package/dist/ephemeris/index.js.map +1 -0
  111. package/dist/ephemeris/model.d.ts +28 -0
  112. package/dist/ephemeris/model.d.ts.map +1 -0
  113. package/dist/ephemeris/model.js +14 -0
  114. package/dist/ephemeris/model.js.map +1 -0
  115. package/dist/ephemeris/service.d.ts +14 -0
  116. package/dist/ephemeris/service.d.ts.map +1 -0
  117. package/dist/ephemeris/service.js +8 -0
  118. package/dist/ephemeris/service.js.map +1 -0
  119. package/dist/index.d.ts +13 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +13 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/jaimini/argala/calculate.d.ts +28 -0
  124. package/dist/jaimini/argala/calculate.d.ts.map +1 -0
  125. package/dist/jaimini/argala/calculate.js +56 -0
  126. package/dist/jaimini/argala/calculate.js.map +1 -0
  127. package/dist/jaimini/argala/helper.d.ts +8 -0
  128. package/dist/jaimini/argala/helper.d.ts.map +1 -0
  129. package/dist/jaimini/argala/helper.js +12 -0
  130. package/dist/jaimini/argala/helper.js.map +1 -0
  131. package/dist/jaimini/argala/index.d.ts +3 -0
  132. package/dist/jaimini/argala/index.d.ts.map +1 -0
  133. package/dist/jaimini/argala/index.js +3 -0
  134. package/dist/jaimini/argala/index.js.map +1 -0
  135. package/dist/jaimini/argala/model.d.ts +96 -0
  136. package/dist/jaimini/argala/model.d.ts.map +1 -0
  137. package/dist/jaimini/argala/model.js +38 -0
  138. package/dist/jaimini/argala/model.js.map +1 -0
  139. package/dist/jaimini/arudha-pada/calculate.d.ts +16 -0
  140. package/dist/jaimini/arudha-pada/calculate.d.ts.map +1 -0
  141. package/dist/jaimini/arudha-pada/calculate.js +36 -0
  142. package/dist/jaimini/arudha-pada/calculate.js.map +1 -0
  143. package/dist/jaimini/arudha-pada/helper.d.ts +6 -0
  144. package/dist/jaimini/arudha-pada/helper.d.ts.map +1 -0
  145. package/dist/jaimini/arudha-pada/helper.js +8 -0
  146. package/dist/jaimini/arudha-pada/helper.js.map +1 -0
  147. package/dist/jaimini/arudha-pada/index.d.ts +3 -0
  148. package/dist/jaimini/arudha-pada/index.d.ts.map +1 -0
  149. package/dist/jaimini/arudha-pada/index.js +3 -0
  150. package/dist/jaimini/arudha-pada/index.js.map +1 -0
  151. package/dist/jaimini/arudha-pada/model.d.ts +31 -0
  152. package/dist/jaimini/arudha-pada/model.d.ts.map +1 -0
  153. package/dist/jaimini/arudha-pada/model.js +22 -0
  154. package/dist/jaimini/arudha-pada/model.js.map +1 -0
  155. package/dist/jaimini/chara-karakas/calculate.d.ts +21 -0
  156. package/dist/jaimini/chara-karakas/calculate.d.ts.map +1 -0
  157. package/dist/jaimini/chara-karakas/calculate.js +85 -0
  158. package/dist/jaimini/chara-karakas/calculate.js.map +1 -0
  159. package/dist/jaimini/chara-karakas/helper.d.ts +15 -0
  160. package/dist/jaimini/chara-karakas/helper.d.ts.map +1 -0
  161. package/dist/jaimini/chara-karakas/helper.js +50 -0
  162. package/dist/jaimini/chara-karakas/helper.js.map +1 -0
  163. package/dist/jaimini/chara-karakas/index.d.ts +3 -0
  164. package/dist/jaimini/chara-karakas/index.d.ts.map +1 -0
  165. package/dist/jaimini/chara-karakas/index.js +3 -0
  166. package/dist/jaimini/chara-karakas/index.js.map +1 -0
  167. package/dist/jaimini/chara-karakas/model.d.ts +60 -0
  168. package/dist/jaimini/chara-karakas/model.d.ts.map +1 -0
  169. package/dist/jaimini/chara-karakas/model.js +45 -0
  170. package/dist/jaimini/chara-karakas/model.js.map +1 -0
  171. package/dist/jaimini/karakamsha/calculate.d.ts +18 -0
  172. package/dist/jaimini/karakamsha/calculate.d.ts.map +1 -0
  173. package/dist/jaimini/karakamsha/calculate.js +46 -0
  174. package/dist/jaimini/karakamsha/calculate.js.map +1 -0
  175. package/dist/jaimini/karakamsha/helper.d.ts +3 -0
  176. package/dist/jaimini/karakamsha/helper.d.ts.map +1 -0
  177. package/dist/jaimini/karakamsha/helper.js +8 -0
  178. package/dist/jaimini/karakamsha/helper.js.map +1 -0
  179. package/dist/jaimini/karakamsha/index.d.ts +3 -0
  180. package/dist/jaimini/karakamsha/index.d.ts.map +1 -0
  181. package/dist/jaimini/karakamsha/index.js +3 -0
  182. package/dist/jaimini/karakamsha/index.js.map +1 -0
  183. package/dist/jaimini/karakamsha/model.d.ts +42 -0
  184. package/dist/jaimini/karakamsha/model.d.ts.map +1 -0
  185. package/dist/jaimini/karakamsha/model.js +28 -0
  186. package/dist/jaimini/karakamsha/model.js.map +1 -0
  187. package/dist/jaimini/rashi-drishti/calculate.d.ts +11 -0
  188. package/dist/jaimini/rashi-drishti/calculate.d.ts.map +1 -0
  189. package/dist/jaimini/rashi-drishti/calculate.js +16 -0
  190. package/dist/jaimini/rashi-drishti/calculate.js.map +1 -0
  191. package/dist/jaimini/rashi-drishti/helper.d.ts +3 -0
  192. package/dist/jaimini/rashi-drishti/helper.d.ts.map +1 -0
  193. package/dist/jaimini/rashi-drishti/helper.js +41 -0
  194. package/dist/jaimini/rashi-drishti/helper.js.map +1 -0
  195. package/dist/jaimini/rashi-drishti/index.d.ts +3 -0
  196. package/dist/jaimini/rashi-drishti/index.d.ts.map +1 -0
  197. package/dist/jaimini/rashi-drishti/index.js +3 -0
  198. package/dist/jaimini/rashi-drishti/index.js.map +1 -0
  199. package/dist/jaimini/rashi-drishti/model.d.ts +20 -0
  200. package/dist/jaimini/rashi-drishti/model.d.ts.map +1 -0
  201. package/dist/jaimini/rashi-drishti/model.js +13 -0
  202. package/dist/jaimini/rashi-drishti/model.js.map +1 -0
  203. package/dist/jaimini/upapada/calculate.d.ts +15 -0
  204. package/dist/jaimini/upapada/calculate.d.ts.map +1 -0
  205. package/dist/jaimini/upapada/calculate.js +19 -0
  206. package/dist/jaimini/upapada/calculate.js.map +1 -0
  207. package/dist/jaimini/upapada/helper.d.ts +18 -0
  208. package/dist/jaimini/upapada/helper.d.ts.map +1 -0
  209. package/dist/jaimini/upapada/helper.js +10 -0
  210. package/dist/jaimini/upapada/helper.js.map +1 -0
  211. package/dist/jaimini/upapada/index.d.ts +3 -0
  212. package/dist/jaimini/upapada/index.d.ts.map +1 -0
  213. package/dist/jaimini/upapada/index.js +3 -0
  214. package/dist/jaimini/upapada/index.js.map +1 -0
  215. package/dist/jaimini/upapada/model.d.ts +31 -0
  216. package/dist/jaimini/upapada/model.d.ts.map +1 -0
  217. package/dist/jaimini/upapada/model.js +22 -0
  218. package/dist/jaimini/upapada/model.js.map +1 -0
  219. package/dist/sav/calculate.d.ts +282 -0
  220. package/dist/sav/calculate.d.ts.map +1 -0
  221. package/dist/sav/calculate.js +128 -0
  222. package/dist/sav/calculate.js.map +1 -0
  223. package/dist/sav/constants.d.ts +108 -0
  224. package/dist/sav/constants.d.ts.map +1 -0
  225. package/dist/sav/constants.js +131 -0
  226. package/dist/sav/constants.js.map +1 -0
  227. package/dist/sav/error.d.ts +9 -0
  228. package/dist/sav/error.d.ts.map +1 -0
  229. package/dist/sav/error.js +7 -0
  230. package/dist/sav/error.js.map +1 -0
  231. package/dist/sav/index.d.ts +4 -0
  232. package/dist/sav/index.d.ts.map +1 -0
  233. package/dist/sav/index.js +4 -0
  234. package/dist/sav/index.js.map +1 -0
  235. package/dist/sav/model.d.ts +58 -0
  236. package/dist/sav/model.d.ts.map +1 -0
  237. package/dist/sav/model.js +40 -0
  238. package/dist/sav/model.js.map +1 -0
  239. package/dist/swisseph/calculate.d.ts +19 -0
  240. package/dist/swisseph/calculate.d.ts.map +1 -0
  241. package/dist/swisseph/calculate.js +54 -0
  242. package/dist/swisseph/calculate.js.map +1 -0
  243. package/dist/swisseph/helper.d.ts +14 -0
  244. package/dist/swisseph/helper.d.ts.map +1 -0
  245. package/dist/swisseph/helper.js +43 -0
  246. package/dist/swisseph/helper.js.map +1 -0
  247. package/dist/swisseph/index.d.ts +2 -0
  248. package/dist/swisseph/index.d.ts.map +1 -0
  249. package/dist/swisseph/index.js +2 -0
  250. package/dist/swisseph/index.js.map +1 -0
  251. package/dist/swisseph/model.d.ts +7 -0
  252. package/dist/swisseph/model.d.ts.map +1 -0
  253. package/dist/swisseph/model.js +70 -0
  254. package/dist/swisseph/model.js.map +1 -0
  255. package/dist/swisseph/service.d.ts +5 -0
  256. package/dist/swisseph/service.d.ts.map +1 -0
  257. package/dist/swisseph/service.js +10 -0
  258. package/dist/swisseph/service.js.map +1 -0
  259. package/dist/yoga/calculate.d.ts +9 -0
  260. package/dist/yoga/calculate.d.ts.map +1 -0
  261. package/dist/yoga/calculate.js +48 -0
  262. package/dist/yoga/calculate.js.map +1 -0
  263. package/dist/yoga/catalog.d.ts +7 -0
  264. package/dist/yoga/catalog.d.ts.map +1 -0
  265. package/dist/yoga/catalog.js +129 -0
  266. package/dist/yoga/catalog.js.map +1 -0
  267. package/dist/yoga/definitions/house-patterns.d.ts +42 -0
  268. package/dist/yoga/definitions/house-patterns.d.ts.map +1 -0
  269. package/dist/yoga/definitions/house-patterns.js +73 -0
  270. package/dist/yoga/definitions/house-patterns.js.map +1 -0
  271. package/dist/yoga/definitions/moon-relative.d.ts +94 -0
  272. package/dist/yoga/definitions/moon-relative.d.ts.map +1 -0
  273. package/dist/yoga/definitions/moon-relative.js +123 -0
  274. package/dist/yoga/definitions/moon-relative.js.map +1 -0
  275. package/dist/yoga/error.d.ts +38 -0
  276. package/dist/yoga/error.d.ts.map +1 -0
  277. package/dist/yoga/error.js +37 -0
  278. package/dist/yoga/error.js.map +1 -0
  279. package/dist/yoga/evaluate.d.ts +36 -0
  280. package/dist/yoga/evaluate.d.ts.map +1 -0
  281. package/dist/yoga/evaluate.js +173 -0
  282. package/dist/yoga/evaluate.js.map +1 -0
  283. package/dist/yoga/format.d.ts +3 -0
  284. package/dist/yoga/format.d.ts.map +1 -0
  285. package/dist/yoga/format.js +5 -0
  286. package/dist/yoga/format.js.map +1 -0
  287. package/dist/yoga/index.d.ts +6 -0
  288. package/dist/yoga/index.d.ts.map +1 -0
  289. package/dist/yoga/index.js +6 -0
  290. package/dist/yoga/index.js.map +1 -0
  291. package/dist/yoga/internal.d.ts +274 -0
  292. package/dist/yoga/internal.d.ts.map +1 -0
  293. package/dist/yoga/internal.js +4 -0
  294. package/dist/yoga/internal.js.map +1 -0
  295. package/dist/yoga/model.d.ts +107 -0
  296. package/dist/yoga/model.d.ts.map +1 -0
  297. package/dist/yoga/model.js +66 -0
  298. package/dist/yoga/model.js.map +1 -0
  299. package/dist/yoga/provenance.d.ts +3 -0
  300. package/dist/yoga/provenance.d.ts.map +1 -0
  301. package/dist/yoga/provenance.js +5 -0
  302. package/dist/yoga/provenance.js.map +1 -0
  303. package/package.json +122 -0
@@ -0,0 +1,124 @@
1
+ import { Schema } from "effect";
2
+ import { Options as AstroParamsOptions } from "../astro-params/model.js";
3
+ import { PLANETS, CLASSICAL_PLANETS, RASHIS, NAKSHATRAS, PLANET_DIGNITY, } from "./internal/constants.js";
4
+ export const Planets = Schema.Literals(PLANETS);
5
+ export const Rashis = Schema.Literals(RASHIS);
6
+ export const LagnaName = Schema.Literal("Lagna");
7
+ export const PlanetsLagna = Schema.Union([Planets, LagnaName]);
8
+ export const Houses = Schema.Literals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
9
+ export const RashiLords = Schema.Literals(CLASSICAL_PLANETS);
10
+ export const Nakshatras = Schema.Literals(NAKSHATRAS);
11
+ export const Pada = Schema.Literals([1, 2, 3, 4]);
12
+ export const PlanetDignity = Schema.Literals(PLANET_DIGNITY);
13
+ export const Division = Schema.Literals([
14
+ 1, 2, 3, 4, 7, 9, 10, 12, 16, 20, 24, 27, 30, 40, 45, 60,
15
+ ]);
16
+ export const Longitude = Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 360, exclusiveMaximum: true })).pipe(Schema.brand("Longitude"));
17
+ export const CircleAngle = Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 360, exclusiveMaximum: true })).pipe(Schema.brand("CircleAngle"));
18
+ export const Degree = Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 30, exclusiveMaximum: true })).pipe(Schema.brand("Degree"));
19
+ export class Nakshatra extends Schema.Class("Nakshatra")({
20
+ name: Nakshatras,
21
+ lord: Planets,
22
+ pada: Pada,
23
+ }) {
24
+ }
25
+ export class Sign extends Schema.Class("Sign")({
26
+ name: Rashis,
27
+ lord: RashiLords,
28
+ }) {
29
+ }
30
+ export class Planet extends Schema.Class("Planet")({
31
+ name: Planets,
32
+ longitude: Longitude,
33
+ degree: Degree,
34
+ is_retrograde: Schema.Boolean,
35
+ in_sign: Schema.Array(PlanetDignity),
36
+ sign: Sign,
37
+ }) {
38
+ }
39
+ export class Lagna extends Schema.Class("Lagna")({
40
+ name: LagnaName,
41
+ longitude: Longitude,
42
+ degree: Degree,
43
+ sign: Sign,
44
+ }) {
45
+ }
46
+ export class House extends Schema.Class("House")({
47
+ sign: Rashis,
48
+ planets: Schema.Array(Planet),
49
+ lagna: Schema.NullOr(Lagna),
50
+ }) {
51
+ }
52
+ export const ChartHouses = Schema.Record(Houses, House);
53
+ export class SourcePlanet extends Schema.Class("SourcePlanet")({
54
+ name: Planets,
55
+ longitude: Longitude,
56
+ is_retrograde: Schema.Boolean,
57
+ nakshatra: Nakshatra,
58
+ }) {
59
+ }
60
+ export class SourceLagna extends Schema.Class("SourceLagna")({
61
+ name: LagnaName,
62
+ longitude: Longitude,
63
+ nakshatra: Nakshatra,
64
+ }) {
65
+ }
66
+ export class Placements extends Schema.Class("Placements")({
67
+ lagna: SourceLagna,
68
+ planets: Schema.Array(SourcePlanet),
69
+ }) {
70
+ }
71
+ export const Provenance = Schema.Struct({
72
+ method: Schema.String,
73
+ version: Schema.String,
74
+ });
75
+ export class Chart extends Schema.Class("Chart")({
76
+ provenance: Provenance,
77
+ division: Division,
78
+ houses: ChartHouses,
79
+ }) {
80
+ }
81
+ export class BhavaHouse extends Schema.Class("BhavaHouse")({
82
+ cusp: Longitude,
83
+ planets: Schema.Array(Planet),
84
+ lagna: Schema.NullOr(Lagna),
85
+ }) {
86
+ }
87
+ export const BhavaHouses = Schema.Record(Houses, BhavaHouse);
88
+ export class BhavaAngles extends Schema.Class("BhavaAngles")({
89
+ ascendant: CircleAngle,
90
+ mc: CircleAngle,
91
+ armc: CircleAngle,
92
+ vertex: CircleAngle,
93
+ equatorialAscendant: CircleAngle,
94
+ coAscendant1: CircleAngle,
95
+ coAscendant2: CircleAngle,
96
+ polarAscendant: CircleAngle,
97
+ }) {
98
+ }
99
+ export class BhavaChart extends Schema.Class("BhavaChart")({
100
+ houses: BhavaHouses,
101
+ angles: BhavaAngles,
102
+ }) {
103
+ }
104
+ export const CalculationCharts = Schema.NonEmptyArray(Chart).check(Schema.makeFilter((charts) => charts[0].division === 1, {
105
+ expected: "A non-empty Chart collection beginning with D1",
106
+ }));
107
+ export class ChartCalculation extends Schema.Class("ChartCalculation")({
108
+ placements: Placements,
109
+ charts: CalculationCharts,
110
+ bhava: BhavaChart,
111
+ astroParams: AstroParamsOptions,
112
+ }) {
113
+ }
114
+ export class Moment extends Schema.Class("Moment")({
115
+ date: Schema.DateTimeUtc,
116
+ }) {
117
+ }
118
+ export class LocatedMoment extends Schema.Class("LocatedMoment")({
119
+ moment: Moment,
120
+ latitude: Schema.Finite,
121
+ longitude: Schema.Finite,
122
+ }) {
123
+ }
124
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/chart/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Effect } from "effect";
2
+ import type { HouseData, PlanetaryPosition } from "../ephemeris/model.js";
3
+ import { ChartCalculationError } from "./error.js";
4
+ import { Placements, SourcePlanet } from "./model.js";
5
+ export interface PlacementEvidence {
6
+ readonly houses: HouseData;
7
+ readonly planetEntries: readonly (readonly [SourcePlanet["name"], PlanetaryPosition])[];
8
+ }
9
+ export declare const placementsFromEvidence: (evidence: PlacementEvidence) => Effect.Effect<Placements, ChartCalculationError, never>;
10
+ //# sourceMappingURL=placements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placements.d.ts","sourceRoot":"","sources":["../../src/chart/placements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAyB,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;CACzF;AAED,eAAO,MAAM,sBAAsB,0FAmDlC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { Effect } from "effect";
2
+ import { normalizeLongitude } from "./divisional-mapping/calculate.js";
3
+ import { ChartCalculationError, MissingPlacementError } from "./error.js";
4
+ import { nakshatraOf } from "./helper.js";
5
+ import { Placements, SourceLagna, SourcePlanet } from "./model.js";
6
+ export const placementsFromEvidence = Effect.fn("Chart.placementsFromEvidence")(function* (evidence) {
7
+ const sourcePlanets = yield* Effect.all(evidence.planetEntries.map(([name, position]) => normalizeLongitude(position.longitude).pipe(Effect.map((longitude) => SourcePlanet.make({
8
+ name,
9
+ longitude,
10
+ is_retrograde: position.longitudeSpeed < 0,
11
+ nakshatra: nakshatraOf(longitude),
12
+ })))), { concurrency: "unbounded" });
13
+ const rahu = sourcePlanets.find((planet) => planet.name === "Rahu");
14
+ if (rahu === undefined) {
15
+ return yield* MissingPlacementError.make({ placement: "Rahu" });
16
+ }
17
+ const ketuLongitude = yield* normalizeLongitude(rahu.longitude + 180);
18
+ const ascendant = yield* normalizeLongitude(evidence.houses.ascendant);
19
+ const planets = [
20
+ ...sourcePlanets,
21
+ SourcePlanet.make({
22
+ name: "Ketu",
23
+ longitude: ketuLongitude,
24
+ is_retrograde: rahu.is_retrograde,
25
+ nakshatra: nakshatraOf(ketuLongitude),
26
+ }),
27
+ ];
28
+ return Placements.make({
29
+ lagna: SourceLagna.make({
30
+ name: "Lagna",
31
+ longitude: ascendant,
32
+ nakshatra: nakshatraOf(ascendant),
33
+ }),
34
+ planets,
35
+ });
36
+ }, Effect.mapError((cause) => ChartCalculationError.make({
37
+ stage: "placements",
38
+ message: "Could not calculate Placements",
39
+ cause,
40
+ })));
41
+ //# sourceMappingURL=placements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placements.js","sourceRoot":"","sources":["../../src/chart/placements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAC7E,QAAQ,CAAC,EAAE,QAA2B;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACrC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAC9C,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACvB,YAAY,CAAC,IAAI,CAAC;QAChB,IAAI;QACJ,SAAS;QACT,aAAa,EAAE,QAAQ,CAAC,cAAc,GAAG,CAAC;QAC1C,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC;KAClC,CAAC,CACH,CACF,CACF,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;IAEF,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG;QACd,GAAG,aAAa;QAChB,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC;SACtC,CAAC;KACH,CAAC;IAEF,OAAO,UAAU,CAAC,IAAI,CAAC;QACrB,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC;SAClC,CAAC;QACF,OAAO;KACR,CAAC,CAAC;AACL,CAAC,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,qBAAqB,CAAC,IAAI,CAAC;IACzB,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,gCAAgC;IACzC,KAAK;CACN,CAAC,CACH,CACF,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Effect, DateTime } from "effect";
2
+ import type { Moment, Placements } from "../chart/model.js";
3
+ import { DashaCalculationError } from "./error.js";
4
+ export declare const calculate: (moment: Moment, placements: Placements) => Effect.Effect<{
5
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
6
+ readonly start: DateTime.Utc;
7
+ readonly end: DateTime.Utc;
8
+ readonly antardashas: readonly {
9
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
10
+ readonly antardasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
11
+ readonly start: DateTime.Utc;
12
+ readonly end: DateTime.Utc;
13
+ }[];
14
+ }[], DashaCalculationError, never>;
15
+ //# sourceMappingURL=calculate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.d.ts","sourceRoot":"","sources":["../../src/dasha/calculate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAW,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAuEnD,eAAO,MAAM,SAAS;;;;;;;;;;kCA2DrB,CAAC"}
@@ -0,0 +1,106 @@
1
+ import { Effect, DateTime } from "effect";
2
+ import { DashaCalculationError } from "./error.js";
3
+ import { AntarDasha, MahaDasha } from "./model.js";
4
+ const VIMSHOTTARI_PLANETS = [
5
+ "Ketu",
6
+ "Venus",
7
+ "Sun",
8
+ "Moon",
9
+ "Mars",
10
+ "Rahu",
11
+ "Jupiter",
12
+ "Saturn",
13
+ "Mercury",
14
+ ];
15
+ const VIMSHOTTARI_YEARS = {
16
+ Ketu: 7,
17
+ Venus: 20,
18
+ Sun: 6,
19
+ Moon: 10,
20
+ Mars: 7,
21
+ Rahu: 18,
22
+ Jupiter: 16,
23
+ Saturn: 19,
24
+ Mercury: 17,
25
+ };
26
+ const NAKSHATRA_ARC_MINUTES = 800;
27
+ const VIMSHOTTARI_CYCLE_YEARS = 120;
28
+ function calendarDuration(decimalYears) {
29
+ const years = Math.trunc(decimalYears);
30
+ const monthsValue = (decimalYears - years) * 12;
31
+ const months = Math.trunc(monthsValue);
32
+ const daysValue = (monthsValue - months) * 30;
33
+ const days = Math.trunc(daysValue);
34
+ const hoursValue = (daysValue - days) * 24;
35
+ const hours = Math.trunc(hoursValue);
36
+ const minutes = Math.trunc((hoursValue - hours) * 60);
37
+ return { years, months, days, hours, minutes };
38
+ }
39
+ function shiftDate(date, decimalYears, direction) {
40
+ const duration = calendarDuration(decimalYears);
41
+ const months = duration.years * 12 + duration.months;
42
+ const shiftedMonth = DateTime.add(date, {
43
+ months: direction * months,
44
+ });
45
+ return DateTime.add(shiftedMonth, {
46
+ days: direction * duration.days,
47
+ hours: direction * duration.hours,
48
+ minutes: direction * duration.minutes,
49
+ });
50
+ }
51
+ function rotate(values, start) {
52
+ return [...values.slice(start), ...values.slice(0, start)];
53
+ }
54
+ export const calculate = Effect.fn("astro-ascendant/dasha/calculate")(function* (moment, placements) {
55
+ const moon = placements.planets.find((planet) => planet.name === "Moon");
56
+ if (moon === undefined) {
57
+ return yield* DashaCalculationError.make({
58
+ message: "Placements must contain the Moon",
59
+ cause: placements,
60
+ });
61
+ }
62
+ const nakshatraLord = moon?.nakshatra.lord;
63
+ const startIndex = VIMSHOTTARI_PLANETS.indexOf(nakshatraLord);
64
+ const sequence = rotate(VIMSHOTTARI_PLANETS, startIndex);
65
+ const nakshatraIndex = Math.floor(moon.longitude / (360 / 27));
66
+ const nakshatraStart = nakshatraIndex * NAKSHATRA_ARC_MINUTES;
67
+ const elapsedArcMinutes = Math.round(moon.longitude * 60 * 100) / 100 - nakshatraStart;
68
+ const remainingArcMinutes = NAKSHATRA_ARC_MINUTES - elapsedArcMinutes;
69
+ const lordYears = VIMSHOTTARI_YEARS[nakshatraLord];
70
+ const elapsedYears = lordYears - (lordYears / NAKSHATRA_ARC_MINUTES) * remainingArcMinutes;
71
+ let mahadashaStart = shiftDate(moment.date, elapsedYears, -1);
72
+ return sequence.map((mahadasha) => {
73
+ const mahadashaYears = VIMSHOTTARI_YEARS[mahadasha];
74
+ const mahadashaEnd = shiftDate(mahadashaStart, mahadashaYears, 1);
75
+ const antardashaSequence = rotate(sequence, sequence.indexOf(mahadasha));
76
+ let antardashaStart = mahadashaStart;
77
+ let elapsedAntardashaYears = 0;
78
+ const antardashas = antardashaSequence.map((antardasha, index) => {
79
+ elapsedAntardashaYears +=
80
+ (mahadashaYears * VIMSHOTTARI_YEARS[antardasha]) / VIMSHOTTARI_CYCLE_YEARS;
81
+ const antardashaEnd = index === antardashaSequence.length - 1
82
+ ? mahadashaEnd
83
+ : shiftDate(mahadashaStart, elapsedAntardashaYears, 1);
84
+ const period = AntarDasha.make({
85
+ mahadasha,
86
+ antardasha,
87
+ start: antardashaStart,
88
+ end: antardashaEnd,
89
+ });
90
+ antardashaStart = antardashaEnd;
91
+ return period;
92
+ });
93
+ const period = MahaDasha.make({
94
+ mahadasha,
95
+ start: mahadashaStart,
96
+ end: mahadashaEnd,
97
+ antardashas,
98
+ });
99
+ mahadashaStart = mahadashaEnd;
100
+ return period;
101
+ });
102
+ }, Effect.mapError((cause) => DashaCalculationError.make({
103
+ message: "Could not calculate Vimshottari Dasha",
104
+ cause,
105
+ })));
106
+ //# sourceMappingURL=calculate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.js","sourceRoot":"","sources":["../../src/dasha/calculate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;CAC4B,CAAC;AAExC,MAAM,iBAAiB,GAAmE;IACxF,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAUpC,SAAS,gBAAgB,CAAC,YAAoB;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,IAAkB,EAAE,YAAoB,EAAE,SAAiB;IAC5E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;IACrD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;QACtC,MAAM,EAAE,SAAS,GAAG,MAAM;KAC3B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE;QAChC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC,IAAI;QAC/B,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAK;QACjC,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC,OAAO;KACtC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAI,MAAoB,EAAE,KAAa;IACpD,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CACnE,QAAQ,CAAC,EAAE,MAAc,EAAE,UAAsB;IAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACzE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC;YACvC,OAAO,EAAE,kCAAkC;YAC3C,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC3C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC;IAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC;IACvF,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,CAAC;IACtE,MAAM,SAAS,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;IAE3F,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAChC,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACzE,IAAI,eAAe,GAAG,cAAc,CAAC;QACrC,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YAC/D,sBAAsB;gBACpB,CAAC,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,GAAG,uBAAuB,CAAC;YAC7E,MAAM,aAAa,GACjB,KAAK,KAAK,kBAAkB,CAAC,MAAM,GAAG,CAAC;gBACrC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC7B,SAAS;gBACT,UAAU;gBACV,KAAK,EAAE,eAAe;gBACtB,GAAG,EAAE,aAAa;aACnB,CAAC,CAAC;YACH,eAAe,GAAG,aAAa,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,SAAS;YACT,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,YAAY;YACjB,WAAW;SACZ,CAAC,CAAC;QACH,cAAc,GAAG,YAAY,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,qBAAqB,CAAC,IAAI,CAAC;IACzB,OAAO,EAAE,uCAAuC;IAChD,KAAK;CACN,CAAC,CACH,CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Schema } from "effect";
2
+ declare const DashaCalculationError_base: Schema.Class<DashaCalculationError, Schema.TaggedStruct<"DashaCalculationError", {
3
+ readonly message: Schema.String;
4
+ readonly cause: Schema.Defect;
5
+ }>, import("effect/Cause").YieldableError>;
6
+ export declare class DashaCalculationError extends DashaCalculationError_base {
7
+ }
8
+ export {};
9
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/dasha/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAEhC,qBAAa,qBAAsB,SAAQ,0BAM1C;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ export class DashaCalculationError extends Schema.TaggedError()("DashaCalculationError", {
3
+ message: Schema.String,
4
+ cause: Schema.Defect(),
5
+ }) {
6
+ }
7
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/dasha/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;CACvB,CACF;CAAG"}
@@ -0,0 +1,5 @@
1
+ export * from "./error.js";
2
+ export * from "./model.js";
3
+ export { calculate } from "./calculate.js";
4
+ export { at } from "./query.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dasha/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./error.js";
2
+ export * from "./model.js";
3
+ export { calculate } from "./calculate.js";
4
+ export { at } from "./query.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dasha/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { Schema } from "effect";
2
+ export declare const AntarDasha: Schema.Struct<{
3
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
4
+ readonly antardasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
5
+ readonly start: Schema.DateTimeUtc;
6
+ readonly end: Schema.DateTimeUtc;
7
+ }>;
8
+ export interface AntarDasha extends Schema.Schema.Type<typeof AntarDasha> {
9
+ }
10
+ export declare const MahaDasha: Schema.Struct<{
11
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
12
+ readonly start: Schema.DateTimeUtc;
13
+ readonly end: Schema.DateTimeUtc;
14
+ readonly antardashas: Schema.$Array<Schema.Struct<{
15
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
16
+ readonly antardasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
17
+ readonly start: Schema.DateTimeUtc;
18
+ readonly end: Schema.DateTimeUtc;
19
+ }>>;
20
+ }>;
21
+ export interface MahaDasha extends Schema.Schema.Type<typeof MahaDasha> {
22
+ }
23
+ export declare const VimshottariDasha: Schema.$Array<Schema.Struct<{
24
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
25
+ readonly start: Schema.DateTimeUtc;
26
+ readonly end: Schema.DateTimeUtc;
27
+ readonly antardashas: Schema.$Array<Schema.Struct<{
28
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
29
+ readonly antardasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
30
+ readonly start: Schema.DateTimeUtc;
31
+ readonly end: Schema.DateTimeUtc;
32
+ }>>;
33
+ }>>;
34
+ export type VimshottariDasha = typeof VimshottariDasha.Type;
35
+ export declare const CurrentDasha: Schema.Struct<{
36
+ readonly mahadasha: Schema.Struct<{
37
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
38
+ readonly start: Schema.DateTimeUtc;
39
+ readonly end: Schema.DateTimeUtc;
40
+ readonly antardashas: Schema.$Array<Schema.Struct<{
41
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
42
+ readonly antardasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
43
+ readonly start: Schema.DateTimeUtc;
44
+ readonly end: Schema.DateTimeUtc;
45
+ }>>;
46
+ }>;
47
+ readonly antardasha: Schema.Struct<{
48
+ readonly mahadasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
49
+ readonly antardasha: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "Rahu", "Ketu"]>;
50
+ readonly start: Schema.DateTimeUtc;
51
+ readonly end: Schema.DateTimeUtc;
52
+ }>;
53
+ }>;
54
+ export interface CurrentDasha extends Schema.Schema.Type<typeof CurrentDasha> {
55
+ }
56
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/dasha/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,eAAO,MAAM,UAAU;;;;;EAKrB,CAAC;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;AAE5E,eAAO,MAAM,SAAS;;;;;;;;;;EAKpB,CAAC;AACH,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC;CAAG;AAE1E,eAAO,MAAM,gBAAgB;;;;;;;;;;GAA0B,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAE5D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAGvB,CAAC;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;CAAG"}
@@ -0,0 +1,20 @@
1
+ import { Schema } from "effect";
2
+ import { Planets } from "../chart/model.js";
3
+ export const AntarDasha = Schema.Struct({
4
+ mahadasha: Planets,
5
+ antardasha: Planets,
6
+ start: Schema.DateTimeUtc,
7
+ end: Schema.DateTimeUtc,
8
+ });
9
+ export const MahaDasha = Schema.Struct({
10
+ mahadasha: Planets,
11
+ start: Schema.DateTimeUtc,
12
+ end: Schema.DateTimeUtc,
13
+ antardashas: Schema.Array(AntarDasha),
14
+ });
15
+ export const VimshottariDasha = Schema.Array(MahaDasha);
16
+ export const CurrentDasha = Schema.Struct({
17
+ mahadasha: MahaDasha,
18
+ antardasha: AntarDasha,
19
+ });
20
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/dasha/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,OAAO;IACnB,KAAK,EAAE,MAAM,CAAC,WAAW;IACzB,GAAG,EAAE,MAAM,CAAC,WAAW;CACxB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,OAAO;IAClB,KAAK,EAAE,MAAM,CAAC,WAAW;IACzB,GAAG,EAAE,MAAM,CAAC,WAAW;IACvB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;CACtC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAGxD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,UAAU;CACvB,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { DateTime, Effect } from "effect";
2
+ export declare const at: (timeline: readonly {
3
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
4
+ readonly start: DateTime.Utc;
5
+ readonly end: DateTime.Utc;
6
+ readonly antardashas: readonly {
7
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
8
+ readonly antardasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
9
+ readonly start: DateTime.Utc;
10
+ readonly end: DateTime.Utc;
11
+ }[];
12
+ }[], when?: DateTime.Utc | undefined) => Effect.Effect<{
13
+ mahadasha: {
14
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
15
+ readonly start: DateTime.Utc;
16
+ readonly end: DateTime.Utc;
17
+ readonly antardashas: readonly {
18
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
19
+ readonly antardasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
20
+ readonly start: DateTime.Utc;
21
+ readonly end: DateTime.Utc;
22
+ }[];
23
+ };
24
+ antardasha: {
25
+ readonly mahadasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
26
+ readonly antardasha: "Jupiter" | "Ketu" | "Mars" | "Mercury" | "Moon" | "Rahu" | "Saturn" | "Sun" | "Venus";
27
+ readonly start: DateTime.Utc;
28
+ readonly end: DateTime.Utc;
29
+ };
30
+ } | null, never, never>;
31
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/dasha/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAc1C,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAiBb,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { DateTime, Effect } from "effect";
2
+ function contains(period, instant) {
3
+ return (period.start.epochMilliseconds <= instant.epochMilliseconds &&
4
+ instant.epochMilliseconds < period.end.epochMilliseconds);
5
+ }
6
+ export const at = Effect.fn("astro-ascendant/dasha/at")(function* (timeline, when) {
7
+ const instant = when ?? (yield* DateTime.now);
8
+ for (const mahadasha of timeline) {
9
+ if (!contains(mahadasha, instant))
10
+ continue;
11
+ for (const antardasha of mahadasha.antardashas) {
12
+ if (contains(antardasha, instant)) {
13
+ return { mahadasha, antardasha };
14
+ }
15
+ }
16
+ }
17
+ return null;
18
+ });
19
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/dasha/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI1C,SAAS,QAAQ,CACf,MAAoE,EACpE,OAAqB;IAErB,OAAO,CACL,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB;QAC3D,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CACzD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAC/D,QAA0B,EAC1B,IAAmB;IAEnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9C,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;YAAE,SAAS;QAE5C,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAyB,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Schema } from "effect";
2
+ declare const EphemerisError_base: Schema.Class<EphemerisError, Schema.TaggedStruct<"EphemerisError", {
3
+ readonly operation: Schema.String;
4
+ readonly cause: Schema.Defect;
5
+ }>, import("effect/Cause").YieldableError>;
6
+ export declare class EphemerisError extends EphemerisError_base {
7
+ }
8
+ export {};
9
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/ephemeris/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAEhC,qBAAa,cAAe,SAAQ,mBAGlC;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ export class EphemerisError extends Schema.TaggedError()("EphemerisError", {
3
+ operation: Schema.String,
4
+ cause: Schema.Defect(),
5
+ }) {
6
+ }
7
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/ephemeris/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;CACvB,CAAC;CAAG"}
@@ -0,0 +1,4 @@
1
+ export * from "./error.js";
2
+ export * from "./model.js";
3
+ export * from "./service.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ephemeris/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./error.js";
2
+ export * from "./model.js";
3
+ export * from "./service.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ephemeris/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Schema } from "effect";
2
+ import { type HouseSystem } from "../astro-params/model.js";
3
+ export declare const JulianDay: Schema.brand<Schema.Finite, "JulianDay">;
4
+ export type JulianDay = typeof JulianDay.Type;
5
+ export declare const CelestialBody: Schema.Literals<readonly ["Sun", "Moon", "Mars", "Mercury", "Venus", "Jupiter", "Saturn", "TrueNode"]>;
6
+ export type CelestialBody = typeof CelestialBody.Type;
7
+ export interface PlanetaryPosition {
8
+ readonly longitude: number;
9
+ readonly latitude: number;
10
+ readonly distance: number;
11
+ readonly longitudeSpeed: number;
12
+ readonly latitudeSpeed: number;
13
+ readonly distanceSpeed: number;
14
+ readonly flags: number;
15
+ }
16
+ export interface HouseData {
17
+ readonly cusps: readonly number[];
18
+ readonly ascendant: number;
19
+ readonly mc: number;
20
+ readonly armc: number;
21
+ readonly vertex: number;
22
+ readonly equatorialAscendant: number;
23
+ readonly coAscendant1: number;
24
+ readonly coAscendant2: number;
25
+ readonly polarAscendant: number;
26
+ readonly houseSystem: typeof HouseSystem.Type;
27
+ }
28
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/ephemeris/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,SAAS,0CAErB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAE9C,eAAO,MAAM,aAAa,wGASxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC;CAC/C"}
@@ -0,0 +1,14 @@
1
+ import { Schema } from "effect";
2
+ import {} from "../astro-params/model.js";
3
+ export const JulianDay = Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1e7 })).pipe(Schema.brand("JulianDay"));
4
+ export const CelestialBody = Schema.Literals([
5
+ "Sun",
6
+ "Moon",
7
+ "Mars",
8
+ "Mercury",
9
+ "Venus",
10
+ "Jupiter",
11
+ "Saturn",
12
+ "TrueNode",
13
+ ]);
14
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ephemeris/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAoB,MAAM,0BAA0B,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/F,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAC1B,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3C,KAAK;IACL,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC,CAAC"}