mingpan 0.1.1

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 (231) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +118 -0
  3. package/dist/core/bazi/BaziCore.d.ts +112 -0
  4. package/dist/core/bazi/BaziCore.d.ts.map +1 -0
  5. package/dist/core/bazi/BaziCore.js +606 -0
  6. package/dist/core/bazi/BaziCore.js.map +1 -0
  7. package/dist/core/bazi/SolarTermCalculator.d.ts +46 -0
  8. package/dist/core/bazi/SolarTermCalculator.d.ts.map +1 -0
  9. package/dist/core/bazi/SolarTermCalculator.js +452 -0
  10. package/dist/core/bazi/SolarTermCalculator.js.map +1 -0
  11. package/dist/core/bazi/TrueSolarTime.d.ts +64 -0
  12. package/dist/core/bazi/TrueSolarTime.d.ts.map +1 -0
  13. package/dist/core/bazi/TrueSolarTime.js +210 -0
  14. package/dist/core/bazi/TrueSolarTime.js.map +1 -0
  15. package/dist/core/bazi/ephemerisData.d.ts +10 -0
  16. package/dist/core/bazi/ephemerisData.d.ts.map +1 -0
  17. package/dist/core/bazi/ephemerisData.js +88 -0
  18. package/dist/core/bazi/ephemerisData.js.map +1 -0
  19. package/dist/core/bazi/index.d.ts +8 -0
  20. package/dist/core/bazi/index.d.ts.map +1 -0
  21. package/dist/core/bazi/index.js +30 -0
  22. package/dist/core/bazi/index.js.map +1 -0
  23. package/dist/core/bazi/types.d.ts +116 -0
  24. package/dist/core/bazi/types.d.ts.map +1 -0
  25. package/dist/core/bazi/types.js +7 -0
  26. package/dist/core/bazi/types.js.map +1 -0
  27. package/dist/core/calendar/SolarTermsCalculator.d.ts +33 -0
  28. package/dist/core/calendar/SolarTermsCalculator.d.ts.map +1 -0
  29. package/dist/core/calendar/SolarTermsCalculator.js +111 -0
  30. package/dist/core/calendar/SolarTermsCalculator.js.map +1 -0
  31. package/dist/core/calendar/astronomicalCalendar.d.ts +74 -0
  32. package/dist/core/calendar/astronomicalCalendar.d.ts.map +1 -0
  33. package/dist/core/calendar/astronomicalCalendar.js +276 -0
  34. package/dist/core/calendar/astronomicalCalendar.js.map +1 -0
  35. package/dist/core/calendar/calendar.d.ts +81 -0
  36. package/dist/core/calendar/calendar.d.ts.map +1 -0
  37. package/dist/core/calendar/calendar.js +223 -0
  38. package/dist/core/calendar/calendar.js.map +1 -0
  39. package/dist/core/calendar/constants.d.ts +151 -0
  40. package/dist/core/calendar/constants.d.ts.map +1 -0
  41. package/dist/core/calendar/constants.js +97 -0
  42. package/dist/core/calendar/constants.js.map +1 -0
  43. package/dist/core/calendar/julian.d.ts +54 -0
  44. package/dist/core/calendar/julian.d.ts.map +1 -0
  45. package/dist/core/calendar/julian.js +142 -0
  46. package/dist/core/calendar/julian.js.map +1 -0
  47. package/dist/core/calendar/lunarCalendar.d.ts +79 -0
  48. package/dist/core/calendar/lunarCalendar.d.ts.map +1 -0
  49. package/dist/core/calendar/lunarCalendar.js +164 -0
  50. package/dist/core/calendar/lunarCalendar.js.map +1 -0
  51. package/dist/core/calendar/solarTerms.d.ts +105 -0
  52. package/dist/core/calendar/solarTerms.d.ts.map +1 -0
  53. package/dist/core/calendar/solarTerms.js +487 -0
  54. package/dist/core/calendar/solarTerms.js.map +1 -0
  55. package/dist/core/constants/bazi.d.ts +138 -0
  56. package/dist/core/constants/bazi.d.ts.map +1 -0
  57. package/dist/core/constants/bazi.js +332 -0
  58. package/dist/core/constants/bazi.js.map +1 -0
  59. package/dist/core/constants/index.d.ts +6 -0
  60. package/dist/core/constants/index.d.ts.map +1 -0
  61. package/dist/core/constants/index.js +37 -0
  62. package/dist/core/constants/index.js.map +1 -0
  63. package/dist/core/constants/positions.d.ts +27 -0
  64. package/dist/core/constants/positions.d.ts.map +1 -0
  65. package/dist/core/constants/positions.js +39 -0
  66. package/dist/core/constants/positions.js.map +1 -0
  67. package/dist/core/ziwei/BrightnessSystem.d.ts +53 -0
  68. package/dist/core/ziwei/BrightnessSystem.d.ts.map +1 -0
  69. package/dist/core/ziwei/BrightnessSystem.js +278 -0
  70. package/dist/core/ziwei/BrightnessSystem.js.map +1 -0
  71. package/dist/core/ziwei/IztroAdapter.d.ts +78 -0
  72. package/dist/core/ziwei/IztroAdapter.d.ts.map +1 -0
  73. package/dist/core/ziwei/IztroAdapter.js +314 -0
  74. package/dist/core/ziwei/IztroAdapter.js.map +1 -0
  75. package/dist/core/ziwei/MutagenCore.d.ts +81 -0
  76. package/dist/core/ziwei/MutagenCore.d.ts.map +1 -0
  77. package/dist/core/ziwei/MutagenCore.js +246 -0
  78. package/dist/core/ziwei/MutagenCore.js.map +1 -0
  79. package/dist/index.d.ts +13 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +1101 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/output/fortuneTextRenderer.d.ts +63 -0
  84. package/dist/output/fortuneTextRenderer.d.ts.map +1 -0
  85. package/dist/output/fortuneTextRenderer.js +384 -0
  86. package/dist/output/fortuneTextRenderer.js.map +1 -0
  87. package/dist/output/listTextRenderer.d.ts +298 -0
  88. package/dist/output/listTextRenderer.d.ts.map +1 -0
  89. package/dist/output/listTextRenderer.js +942 -0
  90. package/dist/output/listTextRenderer.js.map +1 -0
  91. package/dist/services/bazi/BaziService.d.ts +83 -0
  92. package/dist/services/bazi/BaziService.d.ts.map +1 -0
  93. package/dist/services/bazi/BaziService.js +635 -0
  94. package/dist/services/bazi/BaziService.js.map +1 -0
  95. package/dist/services/bazi/analyzers/ClimateAnalyzer.d.ts +31 -0
  96. package/dist/services/bazi/analyzers/ClimateAnalyzer.d.ts.map +1 -0
  97. package/dist/services/bazi/analyzers/ClimateAnalyzer.js +194 -0
  98. package/dist/services/bazi/analyzers/ClimateAnalyzer.js.map +1 -0
  99. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +16 -0
  100. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +1 -0
  101. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +60 -0
  102. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +1 -0
  103. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +33 -0
  104. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +1 -0
  105. package/dist/services/bazi/analyzers/NaYinAnalyzer.js +209 -0
  106. package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +1 -0
  107. package/dist/services/bazi/analyzers/PatternAnalyzer.d.ts +159 -0
  108. package/dist/services/bazi/analyzers/PatternAnalyzer.d.ts.map +1 -0
  109. package/dist/services/bazi/analyzers/PatternAnalyzer.js +1150 -0
  110. package/dist/services/bazi/analyzers/PatternAnalyzer.js.map +1 -0
  111. package/dist/services/bazi/analyzers/RelationsAnalyzer.d.ts +114 -0
  112. package/dist/services/bazi/analyzers/RelationsAnalyzer.d.ts.map +1 -0
  113. package/dist/services/bazi/analyzers/RelationsAnalyzer.js +704 -0
  114. package/dist/services/bazi/analyzers/RelationsAnalyzer.js.map +1 -0
  115. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +236 -0
  116. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +1 -0
  117. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +2079 -0
  118. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +1 -0
  119. package/dist/services/bazi/analyzers/StrengthAnalyzer.d.ts +181 -0
  120. package/dist/services/bazi/analyzers/StrengthAnalyzer.d.ts.map +1 -0
  121. package/dist/services/bazi/analyzers/StrengthAnalyzer.js +1119 -0
  122. package/dist/services/bazi/analyzers/StrengthAnalyzer.js.map +1 -0
  123. package/dist/services/bazi/analyzers/TenGodsAnalyzer.d.ts +78 -0
  124. package/dist/services/bazi/analyzers/TenGodsAnalyzer.d.ts.map +1 -0
  125. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +383 -0
  126. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -0
  127. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +46 -0
  128. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +1 -0
  129. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +260 -0
  130. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +1 -0
  131. package/dist/services/bazi/analyzers/YongShenAnalyzer.d.ts +70 -0
  132. package/dist/services/bazi/analyzers/YongShenAnalyzer.d.ts.map +1 -0
  133. package/dist/services/bazi/analyzers/YongShenAnalyzer.js +858 -0
  134. package/dist/services/bazi/analyzers/YongShenAnalyzer.js.map +1 -0
  135. package/dist/services/bazi/calculators/DaYunCalculator.d.ts +71 -0
  136. package/dist/services/bazi/calculators/DaYunCalculator.d.ts.map +1 -0
  137. package/dist/services/bazi/calculators/DaYunCalculator.js +496 -0
  138. package/dist/services/bazi/calculators/DaYunCalculator.js.map +1 -0
  139. package/dist/services/bazi/calculators/LiuNianCalculator.d.ts +88 -0
  140. package/dist/services/bazi/calculators/LiuNianCalculator.d.ts.map +1 -0
  141. package/dist/services/bazi/calculators/LiuNianCalculator.js +546 -0
  142. package/dist/services/bazi/calculators/LiuNianCalculator.js.map +1 -0
  143. package/dist/services/bazi/calculators/LiuRiCalculator.d.ts +66 -0
  144. package/dist/services/bazi/calculators/LiuRiCalculator.d.ts.map +1 -0
  145. package/dist/services/bazi/calculators/LiuRiCalculator.js +497 -0
  146. package/dist/services/bazi/calculators/LiuRiCalculator.js.map +1 -0
  147. package/dist/services/bazi/calculators/LiuYueCalculator.d.ts +50 -0
  148. package/dist/services/bazi/calculators/LiuYueCalculator.d.ts.map +1 -0
  149. package/dist/services/bazi/calculators/LiuYueCalculator.js +338 -0
  150. package/dist/services/bazi/calculators/LiuYueCalculator.js.map +1 -0
  151. package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts +123 -0
  152. package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts.map +1 -0
  153. package/dist/services/bazi/calculators/LuckCycleCalculator.js +414 -0
  154. package/dist/services/bazi/calculators/LuckCycleCalculator.js.map +1 -0
  155. package/dist/services/bazi/index.d.ts +21 -0
  156. package/dist/services/bazi/index.d.ts.map +1 -0
  157. package/dist/services/bazi/index.js +83 -0
  158. package/dist/services/bazi/index.js.map +1 -0
  159. package/dist/services/bazi/types.d.ts +597 -0
  160. package/dist/services/bazi/types.d.ts.map +1 -0
  161. package/dist/services/bazi/types.js +123 -0
  162. package/dist/services/bazi/types.js.map +1 -0
  163. package/dist/services/ziwei/ZiweiService.d.ts +86 -0
  164. package/dist/services/ziwei/ZiweiService.d.ts.map +1 -0
  165. package/dist/services/ziwei/ZiweiService.js +343 -0
  166. package/dist/services/ziwei/ZiweiService.js.map +1 -0
  167. package/dist/services/ziwei/calculators/BrightnessCalculator.d.ts +38 -0
  168. package/dist/services/ziwei/calculators/BrightnessCalculator.d.ts.map +1 -0
  169. package/dist/services/ziwei/calculators/BrightnessCalculator.js +142 -0
  170. package/dist/services/ziwei/calculators/BrightnessCalculator.js.map +1 -0
  171. package/dist/services/ziwei/calculators/DailyCalculator.d.ts +27 -0
  172. package/dist/services/ziwei/calculators/DailyCalculator.d.ts.map +1 -0
  173. package/dist/services/ziwei/calculators/DailyCalculator.js +55 -0
  174. package/dist/services/ziwei/calculators/DailyCalculator.js.map +1 -0
  175. package/dist/services/ziwei/calculators/DecadeCalculator.d.ts +46 -0
  176. package/dist/services/ziwei/calculators/DecadeCalculator.d.ts.map +1 -0
  177. package/dist/services/ziwei/calculators/DecadeCalculator.js +181 -0
  178. package/dist/services/ziwei/calculators/DecadeCalculator.js.map +1 -0
  179. package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.d.ts +28 -0
  180. package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.d.ts.map +1 -0
  181. package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.js +84 -0
  182. package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.js.map +1 -0
  183. package/dist/services/ziwei/calculators/HourlyCalculator.d.ts +41 -0
  184. package/dist/services/ziwei/calculators/HourlyCalculator.d.ts.map +1 -0
  185. package/dist/services/ziwei/calculators/HourlyCalculator.js +139 -0
  186. package/dist/services/ziwei/calculators/HourlyCalculator.js.map +1 -0
  187. package/dist/services/ziwei/calculators/MinorLimitCalculator.d.ts +30 -0
  188. package/dist/services/ziwei/calculators/MinorLimitCalculator.d.ts.map +1 -0
  189. package/dist/services/ziwei/calculators/MinorLimitCalculator.js +90 -0
  190. package/dist/services/ziwei/calculators/MinorLimitCalculator.js.map +1 -0
  191. package/dist/services/ziwei/calculators/MonthlyCalculator.d.ts +39 -0
  192. package/dist/services/ziwei/calculators/MonthlyCalculator.d.ts.map +1 -0
  193. package/dist/services/ziwei/calculators/MonthlyCalculator.js +128 -0
  194. package/dist/services/ziwei/calculators/MonthlyCalculator.js.map +1 -0
  195. package/dist/services/ziwei/calculators/MutagenCalculator.d.ts +20 -0
  196. package/dist/services/ziwei/calculators/MutagenCalculator.d.ts.map +1 -0
  197. package/dist/services/ziwei/calculators/MutagenCalculator.js +121 -0
  198. package/dist/services/ziwei/calculators/MutagenCalculator.js.map +1 -0
  199. package/dist/services/ziwei/calculators/PalaceDynamicCalculator.d.ts +35 -0
  200. package/dist/services/ziwei/calculators/PalaceDynamicCalculator.d.ts.map +1 -0
  201. package/dist/services/ziwei/calculators/PalaceDynamicCalculator.js +55 -0
  202. package/dist/services/ziwei/calculators/PalaceDynamicCalculator.js.map +1 -0
  203. package/dist/services/ziwei/calculators/YearlyCalculator.d.ts +35 -0
  204. package/dist/services/ziwei/calculators/YearlyCalculator.d.ts.map +1 -0
  205. package/dist/services/ziwei/calculators/YearlyCalculator.js +119 -0
  206. package/dist/services/ziwei/calculators/YearlyCalculator.js.map +1 -0
  207. package/dist/services/ziwei/index.d.ts +15 -0
  208. package/dist/services/ziwei/index.d.ts.map +1 -0
  209. package/dist/services/ziwei/index.js +48 -0
  210. package/dist/services/ziwei/index.js.map +1 -0
  211. package/dist/services/ziwei/transformers/PalaceTransformer.d.ts +62 -0
  212. package/dist/services/ziwei/transformers/PalaceTransformer.d.ts.map +1 -0
  213. package/dist/services/ziwei/transformers/PalaceTransformer.js +153 -0
  214. package/dist/services/ziwei/transformers/PalaceTransformer.js.map +1 -0
  215. package/dist/services/ziwei/types.d.ts +185 -0
  216. package/dist/services/ziwei/types.d.ts.map +1 -0
  217. package/dist/services/ziwei/types.js +54 -0
  218. package/dist/services/ziwei/types.js.map +1 -0
  219. package/dist/shared/logger.d.ts +51 -0
  220. package/dist/shared/logger.d.ts.map +1 -0
  221. package/dist/shared/logger.js +136 -0
  222. package/dist/shared/logger.js.map +1 -0
  223. package/dist/shared/types.d.ts +91 -0
  224. package/dist/shared/types.d.ts.map +1 -0
  225. package/dist/shared/types.js +7 -0
  226. package/dist/shared/types.js.map +1 -0
  227. package/dist/utils/ageCalculator.d.ts +30 -0
  228. package/dist/utils/ageCalculator.d.ts.map +1 -0
  229. package/dist/utils/ageCalculator.js +51 -0
  230. package/dist/utils/ageCalculator.js.map +1 -0
  231. package/package.json +54 -0
@@ -0,0 +1,414 @@
1
+ "use strict";
2
+ /**
3
+ * Luck Cycle Calculator
4
+ * Implements taro-bazi's complete luck cycle system
5
+ * Handles DaYun (大運), LiuNian (流年), LiuYue (流月), and LiuRi (流日)
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.LuckCycleCalculator = void 0;
9
+ const bazi_1 = require("../../../core/constants/bazi");
10
+ const astronomicalCalendar_1 = require("../../../core/calendar/astronomicalCalendar");
11
+ const ageCalculator_1 = require("../../../utils/ageCalculator");
12
+ class LuckCycleCalculator {
13
+ /**
14
+ * Calculate delivery stems based on birth year stem
15
+ * Returns the stems of years when DaYun changes
16
+ */
17
+ static calculateDeliveryStems(yearStemIndex) {
18
+ // Delivery occurs every 10 years on years with specific stems
19
+ // Pattern: if birth year stem index is n, delivery on (n+2)%10 and (n+7)%10
20
+ const stem1Index = (yearStemIndex + 2) % 10;
21
+ const stem2Index = (yearStemIndex + 7) % 10;
22
+ return [
23
+ bazi_1.HEAVENLY_STEMS[stem1Index].name,
24
+ bazi_1.HEAVENLY_STEMS[stem2Index].name
25
+ ].sort();
26
+ }
27
+ /**
28
+ * Calculate delivery timing based on solar term
29
+ * This should calculate the exact days after the solar term for delivery
30
+ */
31
+ static calculateDeliveryTiming(solarTermName, daysDiff) {
32
+ // Use absolute value and determine if before or after
33
+ const absDays = Math.abs(Math.round(daysDiff));
34
+ if (absDays === 0) {
35
+ return `${solarTermName}当天`;
36
+ }
37
+ else if (daysDiff > 0) {
38
+ return `${solarTermName}后${absDays}天`;
39
+ }
40
+ else {
41
+ return `${solarTermName}前${absDays}天`;
42
+ }
43
+ }
44
+ /**
45
+ * Calculate void branches (空亡) for a stem-branch combination
46
+ */
47
+ static calculateVoidBranches(stem, branch) {
48
+ const stemIndex = bazi_1.HEAVENLY_STEMS.findIndex(s => s.name === stem);
49
+ const branchIndex = bazi_1.EARTHLY_BRANCHES.findIndex(b => b.name === branch);
50
+ if (stemIndex === -1 || branchIndex === -1)
51
+ return [];
52
+ // Calculate the JiaZi cycle position
53
+ const cyclePosition = (branchIndex - stemIndex + 12) % 12;
54
+ // Determine void branches based on the 60-cycle position
55
+ const voidMap = {
56
+ 0: ['戌', '亥'], // 甲子旬
57
+ 1: ['戌', '亥'], // 甲子旬
58
+ 2: ['申', '酉'], // 甲戌旬
59
+ 3: ['申', '酉'], // 甲戌旬
60
+ 4: ['午', '未'], // 甲申旬
61
+ 5: ['午', '未'], // 甲申旬
62
+ 6: ['辰', '巳'], // 甲午旬
63
+ 7: ['辰', '巳'], // 甲午旬
64
+ 8: ['寅', '卯'], // 甲辰旬
65
+ 9: ['寅', '卯'], // 甲辰旬
66
+ 10: ['子', '丑'], // 甲寅旬
67
+ 11: ['子', '丑'] // 甲寅旬
68
+ };
69
+ return voidMap[cyclePosition] || [];
70
+ }
71
+ /**
72
+ * Calculate luck sequence direction based on gender and year stem
73
+ * Male + Yang year OR Female + Yin year = Forward
74
+ * Male + Yin year OR Female + Yang year = Backward
75
+ */
76
+ static calLuckySequence(gender, yearStem) {
77
+ const stemData = bazi_1.HEAVENLY_STEMS.find(s => s.name === yearStem);
78
+ const isYangStem = stemData?.yinYang === 'yang';
79
+ // Male with Yang stem or Female with Yin stem goes forward
80
+ if ((gender === 'male' && isYangStem) || (gender === 'female' && !isYangStem)) {
81
+ return 'forward';
82
+ }
83
+ // Male with Yin stem or Female with Yang stem goes backward
84
+ return 'backward';
85
+ }
86
+ /**
87
+ * Calculate the starting age and date for luck cycles
88
+ * Based on distance to nearest solar term (forward or backward)
89
+ */
90
+ static calLuckyAge(birthDate, gender, yearStem) {
91
+ const direction = this.calLuckySequence(gender, yearStem);
92
+ const year = birthDate.getFullYear();
93
+ // Define JIE terms (节) - only these are used for DaYun calculation
94
+ const jieTerms = ['立春', '惊蛰', '清明', '立夏', '芒种', '小暑', '立秋', '白露', '寒露', '立冬', '大雪', '小寒'];
95
+ // Get all solar terms for birth year and adjacent years
96
+ const allSolarTerms = [
97
+ ...(0, astronomicalCalendar_1.getSolarTermsForYear)(year - 1),
98
+ ...(0, astronomicalCalendar_1.getSolarTermsForYear)(year),
99
+ ...(0, astronomicalCalendar_1.getSolarTermsForYear)(year + 1)
100
+ ];
101
+ // Filter to only include JIE terms
102
+ const solarTerms = allSolarTerms.filter(term => jieTerms.includes(term.name));
103
+ // Find nearest JIE term based on direction
104
+ let nearestTerm = null;
105
+ let minDays = Infinity;
106
+ for (const term of solarTerms) {
107
+ const daysDiff = Math.abs(term.date.getTime() - birthDate.getTime()) / (1000 * 60 * 60 * 24);
108
+ if (direction === 'forward') {
109
+ // Find next JIE term
110
+ if (term.date > birthDate && daysDiff < minDays) {
111
+ minDays = daysDiff;
112
+ nearestTerm = term;
113
+ }
114
+ }
115
+ else {
116
+ // Find previous JIE term
117
+ if (term.date < birthDate && daysDiff < minDays) {
118
+ minDays = daysDiff;
119
+ nearestTerm = term;
120
+ }
121
+ }
122
+ }
123
+ // Calculate starting age using traditional formula from 八字命理算法开发指南2
124
+ // Get precise time difference in minutes
125
+ const totalMinutes = minDays * 24 * 60;
126
+ const totalHours = totalMinutes / 60;
127
+ const totalDaysExact = totalHours / 24;
128
+ // Traditional conversion: 3 days = 1 year, 1 day = 4 months, 1 hour = 5 days
129
+ // First convert to total hours for more precision
130
+ const totalHoursExact = totalDaysExact * 24;
131
+ // 3 days = 1 year, so 72 hours = 1 year
132
+ const years = Math.floor(totalHoursExact / 72);
133
+ const remainingHoursAfterYears = totalHoursExact - (years * 72);
134
+ // 1 day = 4 months, so 24 hours = 4 months, 6 hours = 1 month
135
+ const months = Math.floor(remainingHoursAfterYears / 6);
136
+ const remainingHoursAfterMonths = remainingHoursAfterYears - (months * 6);
137
+ // 1 hour = 5 days (传统算法)
138
+ const days = Math.floor(remainingHoursAfterMonths * 5);
139
+ const remainingDayFraction = (remainingHoursAfterMonths * 5) - days;
140
+ // Convert remaining day fraction to hours: 1 day = 24 hours
141
+ const hours = Math.round(remainingDayFraction * 24);
142
+ // Calculate start age based on the detailed time
143
+ // 起运时间是出生后的时间,需要加上虚岁1
144
+ // 如果起运时间是2年9月多,那么第一个大运从虚岁4岁开始
145
+ const startAge = years + 1 + (months >= 6 ? 1 : 0);
146
+ // Calculate actual start date
147
+ const startDate = new Date(birthDate);
148
+ startDate.setFullYear(birthDate.getFullYear() + startAge);
149
+ // Calculate delivery years pattern
150
+ const yearStemIndex = bazi_1.HEAVENLY_STEMS.findIndex(s => s.name === yearStem);
151
+ const deliveryStems = this.calculateDeliveryStems(yearStemIndex);
152
+ // For delivery timing, we need to calculate when DaYun changes occur
153
+ // According to traditional BaZi rules:
154
+ // Delivery happens on the exact time offset from birth
155
+ // The solar term reference is based on the original calculation direction
156
+ let deliveryTiming = '';
157
+ if (nearestTerm && years >= 0) {
158
+ // The delivery timing is based on the same solar term used for start calculation
159
+ // For backward direction (like this case), it's relative to the previous JIE term
160
+ // Calculate the exact delivery timing based on the start time offset
161
+ // Birth time + start time = first delivery moment
162
+ // This happens at birth hour + hours, birth day + days, etc.
163
+ // Then find which solar term this is closest to
164
+ // Since we calculated from Jingzhe (backward), delivery timing should be relative to a JIE term
165
+ // The delivery pattern follows the birth time pattern based on calculated offset
166
+ // Traditional rule: delivery occurs at the same time offset as the DaYun start
167
+ // So if DaYun starts at 2年9月28天15時 after birth,
168
+ // delivery happens at this exact time offset in delivery years
169
+ // Find the solar term closest to this time pattern
170
+ const deliveryHour = birthDate.getHours() + hours;
171
+ const deliveryDayOfMonth = birthDate.getDate() + days;
172
+ // For the expected case: birth March 14 + 28 days ≈ April 11
173
+ // The nearest JIE term would be 清明 (April 5) or 立夏 (May 5)
174
+ // But traditionally, for backward calculation from 惊蛰,
175
+ // the delivery reference should be 小寒 (previous year's cycle)
176
+ // Traditional rule: DaYun changes occur at the same time offset as initial DaYun start
177
+ // The delivery happens in specific years (丁、壬) at birth time + DaYun start offset
178
+ // Calculate the exact delivery date/time pattern
179
+ const deliveryDate = new Date(birthDate);
180
+ deliveryDate.setFullYear(deliveryDate.getFullYear() + years);
181
+ deliveryDate.setMonth(deliveryDate.getMonth() + months);
182
+ deliveryDate.setDate(deliveryDate.getDate() + days);
183
+ deliveryDate.setHours(deliveryDate.getHours() + hours);
184
+ // Find which solar term this delivery date is closest to
185
+ const deliveryYear = deliveryDate.getFullYear();
186
+ const deliveryTerms = (0, astronomicalCalendar_1.getSolarTermsForYear)(deliveryYear).filter(term => jieTerms.includes(term.name));
187
+ let closestTerm = deliveryTerms[0];
188
+ let minDiff = Math.abs(deliveryDate.getTime() - closestTerm.date.getTime());
189
+ for (const term of deliveryTerms) {
190
+ const diff = Math.abs(deliveryDate.getTime() - term.date.getTime());
191
+ if (diff < minDiff) {
192
+ minDiff = diff;
193
+ closestTerm = term;
194
+ }
195
+ }
196
+ // Calculate days offset from the closest solar term
197
+ const daysDiff = (deliveryDate.getTime() - closestTerm.date.getTime()) / (1000 * 60 * 60 * 24);
198
+ const deliveryTermName = closestTerm.name;
199
+ const daysOffset = daysDiff;
200
+ deliveryTiming = this.calculateDeliveryTiming(deliveryTermName, daysOffset);
201
+ }
202
+ return {
203
+ direction,
204
+ startAge,
205
+ startDate,
206
+ detailedStartTime: {
207
+ years,
208
+ months,
209
+ days,
210
+ hours
211
+ },
212
+ deliveryYears: deliveryStems,
213
+ deliveryTiming
214
+ };
215
+ }
216
+ /**
217
+ * Calculate complete list of 10-year luck pillars (大運)
218
+ * Usually calculates 8-10 periods covering 80-100 years
219
+ */
220
+ static calLuckyList(chart, gender, birthDate, numberOfPeriods = 10) {
221
+ const luckSequence = this.calLuckyAge(birthDate, gender, chart.year.stem);
222
+ const { direction, startAge } = luckSequence;
223
+ // Find starting point from month pillar
224
+ const monthStemIndex = bazi_1.HEAVENLY_STEMS.findIndex(s => s.name === chart.month.stem);
225
+ const monthBranchIndex = bazi_1.EARTHLY_BRANCHES.findIndex(b => b.name === chart.month.branch);
226
+ const periods = [];
227
+ for (let i = 0; i < numberOfPeriods; i++) {
228
+ // Calculate stem and branch indices
229
+ let stemIndex;
230
+ let branchIndex;
231
+ if (direction === 'forward') {
232
+ stemIndex = (monthStemIndex + i + 1) % 10;
233
+ branchIndex = (monthBranchIndex + i + 1) % 12;
234
+ }
235
+ else {
236
+ // 修复负数模运算问题:确保结果始终为正数
237
+ stemIndex = ((monthStemIndex - i - 1) % 10 + 10) % 10;
238
+ branchIndex = ((monthBranchIndex - i - 1) % 12 + 12) % 12;
239
+ }
240
+ // 添加防御性检查确保索引有效
241
+ if (stemIndex < 0 || stemIndex >= bazi_1.HEAVENLY_STEMS.length || !bazi_1.HEAVENLY_STEMS[stemIndex]) {
242
+ throw new Error(`Invalid stem index: ${stemIndex} for period ${i}, monthStemIndex: ${monthStemIndex}, direction: ${direction}`);
243
+ }
244
+ if (branchIndex < 0 || branchIndex >= bazi_1.EARTHLY_BRANCHES.length || !bazi_1.EARTHLY_BRANCHES[branchIndex]) {
245
+ throw new Error(`Invalid branch index: ${branchIndex} for period ${i}, monthBranchIndex: ${monthBranchIndex}, direction: ${direction}`);
246
+ }
247
+ const stem = bazi_1.HEAVENLY_STEMS[stemIndex].name;
248
+ const branch = bazi_1.EARTHLY_BRANCHES[branchIndex].name;
249
+ // Get element from stem
250
+ const element = bazi_1.HEAVENLY_STEMS[stemIndex].element;
251
+ // Calculate void branches for this DaYun period
252
+ const voidBranches = this.calculateVoidBranches(stem, branch);
253
+ periods.push({
254
+ index: i,
255
+ startAge: startAge + (i * 10),
256
+ endAge: startAge + ((i + 1) * 10) - 1,
257
+ stemBranch: { stem, branch },
258
+ element,
259
+ yinYang: bazi_1.HEAVENLY_STEMS[stemIndex].yinYang,
260
+ voidBranches
261
+ });
262
+ }
263
+ return periods;
264
+ }
265
+ /**
266
+ * Calculate fleeting year list (流年)
267
+ * Returns yearly pillars for specified years
268
+ */
269
+ static calFleetingYearList(birthYear, years) {
270
+ const liuNianList = [];
271
+ for (const year of years) {
272
+ // Calculate stem and branch for the year
273
+ const stemIndex = (year - 4) % 10;
274
+ const branchIndex = (year - 4) % 12;
275
+ const stem = bazi_1.HEAVENLY_STEMS[stemIndex].name;
276
+ const branch = bazi_1.EARTHLY_BRANCHES[branchIndex].name;
277
+ // Get element from stem
278
+ const element = bazi_1.HEAVENLY_STEMS[stemIndex].element;
279
+ liuNianList.push({
280
+ year,
281
+ age: (0, ageCalculator_1.calculateNominalAge)(birthYear, year), // Chinese age (虚岁)
282
+ stemBranch: { stem, branch },
283
+ element,
284
+ yinYang: bazi_1.HEAVENLY_STEMS[stemIndex].yinYang
285
+ });
286
+ }
287
+ return liuNianList;
288
+ }
289
+ /**
290
+ * Calculate fleeting month list (流月)
291
+ * Returns monthly pillars for a specific year
292
+ */
293
+ static calFleetingMonthList(year) {
294
+ const months = [];
295
+ // Get year stem index for month calculation
296
+ const yearStemIndex = (year - 4) % 10;
297
+ // Month stem calculation formula:
298
+ // First month stem = (year stem * 2 + 1) % 10
299
+ const firstMonthStemIndex = (yearStemIndex * 2 + 2) % 10;
300
+ for (let month = 1; month <= 12; month++) {
301
+ const stemIndex = (firstMonthStemIndex + month - 1) % 10;
302
+ const branchIndex = (month + 1) % 12; // 寅月 is first month
303
+ const stem = bazi_1.HEAVENLY_STEMS[stemIndex].name;
304
+ const branch = bazi_1.EARTHLY_BRANCHES[branchIndex].name;
305
+ // Get element from stem
306
+ const element = bazi_1.HEAVENLY_STEMS[stemIndex].element;
307
+ months.push({
308
+ year,
309
+ month,
310
+ stemBranch: { stem, branch },
311
+ element
312
+ });
313
+ }
314
+ return months;
315
+ }
316
+ /**
317
+ * Calculate fleeting day list (流日)
318
+ * Returns daily pillars for a specific month
319
+ */
320
+ static calFleetingDayList(year, month) {
321
+ const days = [];
322
+ // Calculate starting Julian Day for the month
323
+ const startJD = (0, astronomicalCalendar_1.gregorianToJulianDay)(year, month, 1);
324
+ // Reference date: 甲子日 = JD 2394479.5 (1845-12-31)
325
+ const referenceJD = 2394479.5;
326
+ const daysSinceReference = Math.floor(startJD - referenceJD);
327
+ // Get days in month
328
+ const daysInMonth = new Date(year, month, 0).getDate();
329
+ for (let day = 1; day <= daysInMonth; day++) {
330
+ const currentJD = startJD + day - 1;
331
+ const dayIndex = Math.floor(currentJD - referenceJD);
332
+ const stemIndex = dayIndex % 10;
333
+ const branchIndex = dayIndex % 12;
334
+ const stem = bazi_1.HEAVENLY_STEMS[stemIndex].name;
335
+ const branch = bazi_1.EARTHLY_BRANCHES[branchIndex].name;
336
+ // Get element from stem
337
+ const element = bazi_1.HEAVENLY_STEMS[stemIndex].element;
338
+ days.push({
339
+ date: new Date(year, month - 1, day),
340
+ stemBranch: { stem, branch },
341
+ element
342
+ });
343
+ }
344
+ return days;
345
+ }
346
+ /**
347
+ * Get current DaYun period for a specific age
348
+ */
349
+ static getCurrentDaYun(daYunList, age) {
350
+ return daYunList.find(period => age >= period.startAge && age <= period.endAge) || null;
351
+ }
352
+ /**
353
+ * Get current LiuNian for a specific year
354
+ */
355
+ static getCurrentLiuNian(birthYear, currentYear) {
356
+ const [liuNian] = this.calFleetingYearList(birthYear, [currentYear]);
357
+ return liuNian;
358
+ }
359
+ /**
360
+ * Calculate interaction between DaYun and LiuNian
361
+ * Returns analysis of their combined influence
362
+ */
363
+ static analyzeDaYunLiuNian(daYun, liuNian) {
364
+ // Analyze stem relationship
365
+ const daYunStemIndex = bazi_1.HEAVENLY_STEMS.findIndex(s => s.name === daYun.stemBranch.stem);
366
+ const liuNianStemIndex = bazi_1.HEAVENLY_STEMS.findIndex(s => s.name === liuNian.stemBranch.stem);
367
+ let stemRelation = '中性';
368
+ const stemDiff = Math.abs(daYunStemIndex - liuNianStemIndex);
369
+ if (stemDiff === 5) {
370
+ stemRelation = 'combine'; // 天干合
371
+ }
372
+ else if (stemDiff === 4 || stemDiff === 6) {
373
+ stemRelation = 'clash'; // 天干冲
374
+ }
375
+ // Analyze branch relationship
376
+ const daYunBranchIndex = bazi_1.EARTHLY_BRANCHES.findIndex(b => b.name === daYun.stemBranch.branch);
377
+ const liuNianBranchIndex = bazi_1.EARTHLY_BRANCHES.findIndex(b => b.name === liuNian.stemBranch.branch);
378
+ let branchRelation = '中性';
379
+ const branchDiff = Math.abs(daYunBranchIndex - liuNianBranchIndex);
380
+ if (branchDiff === 6) {
381
+ branchRelation = 'clash'; // 地支冲
382
+ }
383
+ else if ([1, 5, 7, 11].includes(branchDiff)) {
384
+ branchRelation = 'harmony'; // 地支合
385
+ }
386
+ // Analyze elemental balance
387
+ let elementalBalance = '平衡';
388
+ if (daYun.element === liuNian.element) {
389
+ elementalBalance = 'reinforced';
390
+ }
391
+ else {
392
+ // Check generating/controlling cycle
393
+ const generatingCycle = {
394
+ '木': '火', '火': '土', '土': '金', '金': '水', '水': '木'
395
+ };
396
+ const controllingCycle = {
397
+ '木': '土', '土': '水', '水': '火', '火': '金', '金': '木'
398
+ };
399
+ if (generatingCycle[daYun.element] === liuNian.element) {
400
+ elementalBalance = 'generating';
401
+ }
402
+ else if (controllingCycle[daYun.element] === liuNian.element) {
403
+ elementalBalance = 'controlling';
404
+ }
405
+ }
406
+ return {
407
+ stemRelation,
408
+ branchRelation,
409
+ elementalBalance
410
+ };
411
+ }
412
+ }
413
+ exports.LuckCycleCalculator = LuckCycleCalculator;
414
+ //# sourceMappingURL=LuckCycleCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LuckCycleCalculator.js","sourceRoot":"","sources":["../../../../src/services/bazi/calculators/LuckCycleCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * BaZi Service Exports
3
+ * Unified exports for the BaZi service module
4
+ */
5
+ export { BaziService, baziService } from './BaziService';
6
+ export * from './types';
7
+ export { BaziCore, TrueSolarTime } from '../../core/bazi';
8
+ export { StrengthAnalyzer } from './analyzers/StrengthAnalyzer';
9
+ export { TenGodsAnalyzer, TEN_GOD_ATTRIBUTES } from './analyzers/TenGodsAnalyzer';
10
+ export { YongShenAnalyzer } from './analyzers/YongShenAnalyzer';
11
+ export { PatternAnalyzer } from './analyzers/PatternAnalyzer';
12
+ export { RelationsAnalyzer } from './analyzers/RelationsAnalyzer';
13
+ export { ShenShaAnalyzer } from './analyzers/ShenShaAnalyzer';
14
+ export { NaYinAnalyzer } from './analyzers/NaYinAnalyzer';
15
+ export { DaYunCalculator } from './calculators/DaYunCalculator';
16
+ export { LiuNianCalculator } from './calculators/LiuNianCalculator';
17
+ export { LiuYueCalculator } from './calculators/LiuYueCalculator';
18
+ export { LiuRiCalculator } from './calculators/LiuRiCalculator';
19
+ export { LuckCycleCalculator } from './calculators/LuckCycleCalculator';
20
+ export * as BaziConstants from '../../core/constants/bazi';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/bazi/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGzD,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * BaZi Service Exports
4
+ * Unified exports for the BaZi service module
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
23
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
+ };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.BaziConstants = exports.LuckCycleCalculator = exports.LiuRiCalculator = exports.LiuYueCalculator = exports.LiuNianCalculator = exports.DaYunCalculator = exports.NaYinAnalyzer = exports.ShenShaAnalyzer = exports.RelationsAnalyzer = exports.PatternAnalyzer = exports.YongShenAnalyzer = exports.TEN_GOD_ATTRIBUTES = exports.TenGodsAnalyzer = exports.StrengthAnalyzer = exports.TrueSolarTime = exports.BaziCore = exports.baziService = exports.BaziService = void 0;
44
+ // Export main service
45
+ var BaziService_1 = require("./BaziService");
46
+ Object.defineProperty(exports, "BaziService", { enumerable: true, get: function () { return BaziService_1.BaziService; } });
47
+ Object.defineProperty(exports, "baziService", { enumerable: true, get: function () { return BaziService_1.baziService; } });
48
+ // Export all types
49
+ __exportStar(require("./types"), exports);
50
+ // Export core classes if needed for advanced usage
51
+ var bazi_1 = require("../../core/bazi");
52
+ Object.defineProperty(exports, "BaziCore", { enumerable: true, get: function () { return bazi_1.BaziCore; } });
53
+ Object.defineProperty(exports, "TrueSolarTime", { enumerable: true, get: function () { return bazi_1.TrueSolarTime; } });
54
+ // Export analyzers for component usage
55
+ var StrengthAnalyzer_1 = require("./analyzers/StrengthAnalyzer");
56
+ Object.defineProperty(exports, "StrengthAnalyzer", { enumerable: true, get: function () { return StrengthAnalyzer_1.StrengthAnalyzer; } });
57
+ var TenGodsAnalyzer_1 = require("./analyzers/TenGodsAnalyzer");
58
+ Object.defineProperty(exports, "TenGodsAnalyzer", { enumerable: true, get: function () { return TenGodsAnalyzer_1.TenGodsAnalyzer; } });
59
+ Object.defineProperty(exports, "TEN_GOD_ATTRIBUTES", { enumerable: true, get: function () { return TenGodsAnalyzer_1.TEN_GOD_ATTRIBUTES; } });
60
+ var YongShenAnalyzer_1 = require("./analyzers/YongShenAnalyzer");
61
+ Object.defineProperty(exports, "YongShenAnalyzer", { enumerable: true, get: function () { return YongShenAnalyzer_1.YongShenAnalyzer; } });
62
+ var PatternAnalyzer_1 = require("./analyzers/PatternAnalyzer");
63
+ Object.defineProperty(exports, "PatternAnalyzer", { enumerable: true, get: function () { return PatternAnalyzer_1.PatternAnalyzer; } });
64
+ var RelationsAnalyzer_1 = require("./analyzers/RelationsAnalyzer");
65
+ Object.defineProperty(exports, "RelationsAnalyzer", { enumerable: true, get: function () { return RelationsAnalyzer_1.RelationsAnalyzer; } });
66
+ var ShenShaAnalyzer_1 = require("./analyzers/ShenShaAnalyzer");
67
+ Object.defineProperty(exports, "ShenShaAnalyzer", { enumerable: true, get: function () { return ShenShaAnalyzer_1.ShenShaAnalyzer; } });
68
+ var NaYinAnalyzer_1 = require("./analyzers/NaYinAnalyzer");
69
+ Object.defineProperty(exports, "NaYinAnalyzer", { enumerable: true, get: function () { return NaYinAnalyzer_1.NaYinAnalyzer; } });
70
+ // Export calculators for advanced usage
71
+ var DaYunCalculator_1 = require("./calculators/DaYunCalculator");
72
+ Object.defineProperty(exports, "DaYunCalculator", { enumerable: true, get: function () { return DaYunCalculator_1.DaYunCalculator; } });
73
+ var LiuNianCalculator_1 = require("./calculators/LiuNianCalculator");
74
+ Object.defineProperty(exports, "LiuNianCalculator", { enumerable: true, get: function () { return LiuNianCalculator_1.LiuNianCalculator; } });
75
+ var LiuYueCalculator_1 = require("./calculators/LiuYueCalculator");
76
+ Object.defineProperty(exports, "LiuYueCalculator", { enumerable: true, get: function () { return LiuYueCalculator_1.LiuYueCalculator; } });
77
+ var LiuRiCalculator_1 = require("./calculators/LiuRiCalculator");
78
+ Object.defineProperty(exports, "LiuRiCalculator", { enumerable: true, get: function () { return LiuRiCalculator_1.LiuRiCalculator; } });
79
+ var LuckCycleCalculator_1 = require("./calculators/LuckCycleCalculator");
80
+ Object.defineProperty(exports, "LuckCycleCalculator", { enumerable: true, get: function () { return LuckCycleCalculator_1.LuckCycleCalculator; } });
81
+ // Export constants for reference
82
+ exports.BaziConstants = __importStar(require("../../core/constants/bazi"));
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/bazi/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sBAAsB;AACtB,6CAAyD;AAAhD,0GAAA,WAAW,OAAA;AAAE,0GAAA,WAAW,OAAA;AAEjC,mBAAmB;AACnB,0CAAwB;AAExB,mDAAmD;AACnD,wCAA0D;AAAjD,gGAAA,QAAQ,OAAA;AAAE,qGAAA,aAAa,OAAA;AAEhC,uCAAuC;AACvC,iEAAgE;AAAvD,oHAAA,gBAAgB,OAAA;AACzB,+DAAkF;AAAzE,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC5C,iEAAgE;AAAvD,oHAAA,gBAAgB,OAAA;AACzB,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AAEtB,wCAAwC;AACxC,iEAAgE;AAAvD,kHAAA,eAAe,OAAA;AACxB,qEAAoE;AAA3D,sHAAA,iBAAiB,OAAA;AAC1B,mEAAkE;AAAzD,oHAAA,gBAAgB,OAAA;AACzB,iEAAgE;AAAvD,kHAAA,eAAe,OAAA;AACxB,yEAAwE;AAA/D,0HAAA,mBAAmB,OAAA;AAE5B,iCAAiC;AACjC,2EAA2D"}