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.
- package/LICENSE +201 -0
- package/README.md +118 -0
- package/dist/core/bazi/BaziCore.d.ts +112 -0
- package/dist/core/bazi/BaziCore.d.ts.map +1 -0
- package/dist/core/bazi/BaziCore.js +606 -0
- package/dist/core/bazi/BaziCore.js.map +1 -0
- package/dist/core/bazi/SolarTermCalculator.d.ts +46 -0
- package/dist/core/bazi/SolarTermCalculator.d.ts.map +1 -0
- package/dist/core/bazi/SolarTermCalculator.js +452 -0
- package/dist/core/bazi/SolarTermCalculator.js.map +1 -0
- package/dist/core/bazi/TrueSolarTime.d.ts +64 -0
- package/dist/core/bazi/TrueSolarTime.d.ts.map +1 -0
- package/dist/core/bazi/TrueSolarTime.js +210 -0
- package/dist/core/bazi/TrueSolarTime.js.map +1 -0
- package/dist/core/bazi/ephemerisData.d.ts +10 -0
- package/dist/core/bazi/ephemerisData.d.ts.map +1 -0
- package/dist/core/bazi/ephemerisData.js +88 -0
- package/dist/core/bazi/ephemerisData.js.map +1 -0
- package/dist/core/bazi/index.d.ts +8 -0
- package/dist/core/bazi/index.d.ts.map +1 -0
- package/dist/core/bazi/index.js +30 -0
- package/dist/core/bazi/index.js.map +1 -0
- package/dist/core/bazi/types.d.ts +116 -0
- package/dist/core/bazi/types.d.ts.map +1 -0
- package/dist/core/bazi/types.js +7 -0
- package/dist/core/bazi/types.js.map +1 -0
- package/dist/core/calendar/SolarTermsCalculator.d.ts +33 -0
- package/dist/core/calendar/SolarTermsCalculator.d.ts.map +1 -0
- package/dist/core/calendar/SolarTermsCalculator.js +111 -0
- package/dist/core/calendar/SolarTermsCalculator.js.map +1 -0
- package/dist/core/calendar/astronomicalCalendar.d.ts +74 -0
- package/dist/core/calendar/astronomicalCalendar.d.ts.map +1 -0
- package/dist/core/calendar/astronomicalCalendar.js +276 -0
- package/dist/core/calendar/astronomicalCalendar.js.map +1 -0
- package/dist/core/calendar/calendar.d.ts +81 -0
- package/dist/core/calendar/calendar.d.ts.map +1 -0
- package/dist/core/calendar/calendar.js +223 -0
- package/dist/core/calendar/calendar.js.map +1 -0
- package/dist/core/calendar/constants.d.ts +151 -0
- package/dist/core/calendar/constants.d.ts.map +1 -0
- package/dist/core/calendar/constants.js +97 -0
- package/dist/core/calendar/constants.js.map +1 -0
- package/dist/core/calendar/julian.d.ts +54 -0
- package/dist/core/calendar/julian.d.ts.map +1 -0
- package/dist/core/calendar/julian.js +142 -0
- package/dist/core/calendar/julian.js.map +1 -0
- package/dist/core/calendar/lunarCalendar.d.ts +79 -0
- package/dist/core/calendar/lunarCalendar.d.ts.map +1 -0
- package/dist/core/calendar/lunarCalendar.js +164 -0
- package/dist/core/calendar/lunarCalendar.js.map +1 -0
- package/dist/core/calendar/solarTerms.d.ts +105 -0
- package/dist/core/calendar/solarTerms.d.ts.map +1 -0
- package/dist/core/calendar/solarTerms.js +487 -0
- package/dist/core/calendar/solarTerms.js.map +1 -0
- package/dist/core/constants/bazi.d.ts +138 -0
- package/dist/core/constants/bazi.d.ts.map +1 -0
- package/dist/core/constants/bazi.js +332 -0
- package/dist/core/constants/bazi.js.map +1 -0
- package/dist/core/constants/index.d.ts +6 -0
- package/dist/core/constants/index.d.ts.map +1 -0
- package/dist/core/constants/index.js +37 -0
- package/dist/core/constants/index.js.map +1 -0
- package/dist/core/constants/positions.d.ts +27 -0
- package/dist/core/constants/positions.d.ts.map +1 -0
- package/dist/core/constants/positions.js +39 -0
- package/dist/core/constants/positions.js.map +1 -0
- package/dist/core/ziwei/BrightnessSystem.d.ts +53 -0
- package/dist/core/ziwei/BrightnessSystem.d.ts.map +1 -0
- package/dist/core/ziwei/BrightnessSystem.js +278 -0
- package/dist/core/ziwei/BrightnessSystem.js.map +1 -0
- package/dist/core/ziwei/IztroAdapter.d.ts +78 -0
- package/dist/core/ziwei/IztroAdapter.d.ts.map +1 -0
- package/dist/core/ziwei/IztroAdapter.js +314 -0
- package/dist/core/ziwei/IztroAdapter.js.map +1 -0
- package/dist/core/ziwei/MutagenCore.d.ts +81 -0
- package/dist/core/ziwei/MutagenCore.d.ts.map +1 -0
- package/dist/core/ziwei/MutagenCore.js +246 -0
- package/dist/core/ziwei/MutagenCore.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1101 -0
- package/dist/index.js.map +1 -0
- package/dist/output/fortuneTextRenderer.d.ts +63 -0
- package/dist/output/fortuneTextRenderer.d.ts.map +1 -0
- package/dist/output/fortuneTextRenderer.js +384 -0
- package/dist/output/fortuneTextRenderer.js.map +1 -0
- package/dist/output/listTextRenderer.d.ts +298 -0
- package/dist/output/listTextRenderer.d.ts.map +1 -0
- package/dist/output/listTextRenderer.js +942 -0
- package/dist/output/listTextRenderer.js.map +1 -0
- package/dist/services/bazi/BaziService.d.ts +83 -0
- package/dist/services/bazi/BaziService.d.ts.map +1 -0
- package/dist/services/bazi/BaziService.js +635 -0
- package/dist/services/bazi/BaziService.js.map +1 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.d.ts +31 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.js +194 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +16 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +60 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +33 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js +209 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.d.ts +159 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.js +1150 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.d.ts +114 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.js +704 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +236 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +2079 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.d.ts +181 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.js +1119 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.d.ts +78 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +383 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +46 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +260 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.d.ts +70 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.js +858 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.js.map +1 -0
- package/dist/services/bazi/calculators/DaYunCalculator.d.ts +71 -0
- package/dist/services/bazi/calculators/DaYunCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/DaYunCalculator.js +496 -0
- package/dist/services/bazi/calculators/DaYunCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.d.ts +88 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.js +546 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.d.ts +66 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.js +497 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.d.ts +50 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.js +338 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts +123 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.js +414 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.js.map +1 -0
- package/dist/services/bazi/index.d.ts +21 -0
- package/dist/services/bazi/index.d.ts.map +1 -0
- package/dist/services/bazi/index.js +83 -0
- package/dist/services/bazi/index.js.map +1 -0
- package/dist/services/bazi/types.d.ts +597 -0
- package/dist/services/bazi/types.d.ts.map +1 -0
- package/dist/services/bazi/types.js +123 -0
- package/dist/services/bazi/types.js.map +1 -0
- package/dist/services/ziwei/ZiweiService.d.ts +86 -0
- package/dist/services/ziwei/ZiweiService.d.ts.map +1 -0
- package/dist/services/ziwei/ZiweiService.js +343 -0
- package/dist/services/ziwei/ZiweiService.js.map +1 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.d.ts +38 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.js +142 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/DailyCalculator.d.ts +27 -0
- package/dist/services/ziwei/calculators/DailyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/DailyCalculator.js +55 -0
- package/dist/services/ziwei/calculators/DailyCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.d.ts +46 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.js +181 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.d.ts +28 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.js +84 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.d.ts +41 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.js +139 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.d.ts +30 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.js +90 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.d.ts +39 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.js +128 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.d.ts +20 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.js +121 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.d.ts +35 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.js +55 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.d.ts +35 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.js +119 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.js.map +1 -0
- package/dist/services/ziwei/index.d.ts +15 -0
- package/dist/services/ziwei/index.d.ts.map +1 -0
- package/dist/services/ziwei/index.js +48 -0
- package/dist/services/ziwei/index.js.map +1 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.d.ts +62 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.d.ts.map +1 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.js +153 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.js.map +1 -0
- package/dist/services/ziwei/types.d.ts +185 -0
- package/dist/services/ziwei/types.d.ts.map +1 -0
- package/dist/services/ziwei/types.js +54 -0
- package/dist/services/ziwei/types.js.map +1 -0
- package/dist/shared/logger.d.ts +51 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +136 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/types.d.ts +91 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +7 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/utils/ageCalculator.d.ts +30 -0
- package/dist/utils/ageCalculator.d.ts.map +1 -0
- package/dist/utils/ageCalculator.js +51 -0
- package/dist/utils/ageCalculator.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* BaZi Service Type Definitions
|
|
4
|
+
* Comprehensive types for the unified BaZi service
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BaziTypeConverter = exports.BaziCalculationError = void 0;
|
|
8
|
+
// Error Types
|
|
9
|
+
class BaziCalculationError extends Error {
|
|
10
|
+
code;
|
|
11
|
+
details;
|
|
12
|
+
constructor(message, code, details) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.code = code;
|
|
15
|
+
this.details = details;
|
|
16
|
+
this.name = 'BaziCalculationError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.BaziCalculationError = BaziCalculationError;
|
|
20
|
+
/**
|
|
21
|
+
* Converter functions to transform between service types and component types
|
|
22
|
+
*/
|
|
23
|
+
class BaziTypeConverter {
|
|
24
|
+
/**
|
|
25
|
+
* Convert BirthInfo to BaziInput
|
|
26
|
+
*/
|
|
27
|
+
static toBaziInput(birthInfo) {
|
|
28
|
+
return {
|
|
29
|
+
year: birthInfo.year,
|
|
30
|
+
month: birthInfo.month,
|
|
31
|
+
day: birthInfo.day,
|
|
32
|
+
hour: birthInfo.hour,
|
|
33
|
+
minute: birthInfo.minute,
|
|
34
|
+
gender: birthInfo.gender,
|
|
35
|
+
longitude: birthInfo.longitude,
|
|
36
|
+
options: {
|
|
37
|
+
includeEnhanced: true,
|
|
38
|
+
includeShenSha: true,
|
|
39
|
+
includeTraditional: true
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Convert BaziResult to BaziAnalysis
|
|
45
|
+
*/
|
|
46
|
+
static toBaziAnalysis(result, birthInfo) {
|
|
47
|
+
return {
|
|
48
|
+
chart: result.chart,
|
|
49
|
+
birthInfo,
|
|
50
|
+
zodiac: result.basic.zodiac,
|
|
51
|
+
dayMaster: result.basic.dayMaster,
|
|
52
|
+
dayMasterElement: result.basic.dayMasterElement,
|
|
53
|
+
fiveElements: {
|
|
54
|
+
木: result.basic.fiveElements.木,
|
|
55
|
+
火: result.basic.fiveElements.火,
|
|
56
|
+
土: result.basic.fiveElements.土,
|
|
57
|
+
金: result.basic.fiveElements.金,
|
|
58
|
+
水: result.basic.fiveElements.水
|
|
59
|
+
},
|
|
60
|
+
tenGods: result.basic.tenGods.map(tg => ({
|
|
61
|
+
god: tg.name,
|
|
62
|
+
element: tg.element,
|
|
63
|
+
position: tg.position,
|
|
64
|
+
strength: tg.strength,
|
|
65
|
+
stem: ''
|
|
66
|
+
})),
|
|
67
|
+
shenSha: result.basic.shenSha || [],
|
|
68
|
+
strength: this.mapStrength(result.traditional?.strength),
|
|
69
|
+
daYun: result.timeBased.daYun,
|
|
70
|
+
lunarInfo: result.birthInfo.lunar,
|
|
71
|
+
yongShenAnalysis: result.traditional?.yongShen,
|
|
72
|
+
geJuAnalysis: result.traditional?.geJu,
|
|
73
|
+
elementStrengths: result.enhanced?.strengthAnalysis,
|
|
74
|
+
elementBalance: result.basic.fiveElements.balance,
|
|
75
|
+
advancedAnalysis: {
|
|
76
|
+
hiddenStems: result.enhanced?.hiddenStems,
|
|
77
|
+
twelveGrowthStages: result.enhanced?.twelveGrowthStages,
|
|
78
|
+
voidBranches: result.enhanced?.voidBranches,
|
|
79
|
+
branchRelations: result.enhanced?.branchRelations,
|
|
80
|
+
climate: result.enhanced?.climate,
|
|
81
|
+
monthStrength: result.enhanced?.monthStrength
|
|
82
|
+
},
|
|
83
|
+
strengthAnalysis: result.enhanced?.strengthAnalysis
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Map strength values
|
|
88
|
+
*/
|
|
89
|
+
static mapStrength(strength) {
|
|
90
|
+
if (!strength)
|
|
91
|
+
return undefined;
|
|
92
|
+
const mapping = {
|
|
93
|
+
'衰极': '身弱',
|
|
94
|
+
'身弱': '身弱',
|
|
95
|
+
'偏弱': '身弱',
|
|
96
|
+
'中和': '正格',
|
|
97
|
+
'偏强': '身旺',
|
|
98
|
+
'身旺': '身旺',
|
|
99
|
+
'旺极': '身旺'
|
|
100
|
+
};
|
|
101
|
+
return mapping[strength];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Convert simple pillar to full pillar
|
|
105
|
+
*/
|
|
106
|
+
static toFullPillar(pillar) {
|
|
107
|
+
return {
|
|
108
|
+
stem: pillar.stem,
|
|
109
|
+
branch: pillar.branch
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Convert full pillar to simple pillar
|
|
114
|
+
*/
|
|
115
|
+
static toSimplePillar(pillar) {
|
|
116
|
+
return {
|
|
117
|
+
stem: pillar.stem,
|
|
118
|
+
branch: pillar.branch
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.BaziTypeConverter = BaziTypeConverter;
|
|
123
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/bazi/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwiBH,cAAc;AACd,MAAa,oBAAqB,SAAQ,KAAK;IAGpC;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,OAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAM;QAGpB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AATD,oDASC;AAmHD;;GAEG;AACH,MAAa,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,SAAoB;QACrC,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS,CAAC,MAAgB;YAClC,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,OAAO,EAAE;gBACP,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,IAAI;gBACpB,kBAAkB,EAAE,IAAI;aACzB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAkB,EAAE,SAAoB;QAC5D,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;YACjC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB;YAC/C,YAAY,EAAE;gBACZ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aAC/B;YACD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvC,GAAG,EAAE,EAAE,CAAC,IAAI;gBACZ,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,QAAQ,EAAE,EAAE,CAAC,QAAkB;gBAC/B,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,IAAI,EAAE,EAAE;aACT,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;YACxD,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;YACjC,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ;YAC9C,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI;YACtC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB;YACnD,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO;YACjD,gBAAgB,EAAE;gBAChB,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW;gBACzC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,kBAAkB;gBACvD,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY;gBAC3C,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe;gBACjD,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;gBACjC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa;aAC9C;YACD,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB;SACpD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,QAA4B;QACrD,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEhC,MAAM,OAAO,GAAkD;YAC7D,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;SACX,CAAC;QAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAkB;QACpC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAc;QAClC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;CACF;AAvGD,8CAuGC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 紫微斗数服务主类
|
|
3
|
+
* 提供统一的对外接口,整合所有计算功能
|
|
4
|
+
*/
|
|
5
|
+
import { ZiweiInput, ZiweiResult, ZiweiServiceConfig } from './types';
|
|
6
|
+
import { MinorLimitCalculator } from './calculators/MinorLimitCalculator';
|
|
7
|
+
import { MonthlyCalculator } from './calculators/MonthlyCalculator';
|
|
8
|
+
import { DailyCalculator } from './calculators/DailyCalculator';
|
|
9
|
+
import { HourlyCalculator } from './calculators/HourlyCalculator';
|
|
10
|
+
export declare class ZiweiService {
|
|
11
|
+
private adapter;
|
|
12
|
+
private config;
|
|
13
|
+
private currentGender;
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(config?: ZiweiServiceConfig);
|
|
16
|
+
/**
|
|
17
|
+
* 更新服务配置
|
|
18
|
+
*/
|
|
19
|
+
setConfig(config: Partial<ZiweiServiceConfig>): void;
|
|
20
|
+
/**
|
|
21
|
+
* 计算紫微斗数命盘
|
|
22
|
+
*/
|
|
23
|
+
calculate(input: ZiweiInput): ZiweiResult;
|
|
24
|
+
/**
|
|
25
|
+
* 计算指定日期的运限信息
|
|
26
|
+
*/
|
|
27
|
+
calculateHoroscope(date: string): any;
|
|
28
|
+
/**
|
|
29
|
+
* 计算小限年龄
|
|
30
|
+
* 小限计算规则:
|
|
31
|
+
* 1. 根据出生年支确定起始宫位
|
|
32
|
+
* 2. 男顺女逆运行
|
|
33
|
+
* 3. 每年一宫,12年一轮回
|
|
34
|
+
*/
|
|
35
|
+
private calculateMinorLimitAges;
|
|
36
|
+
/**
|
|
37
|
+
* 增强宫位信息
|
|
38
|
+
*/
|
|
39
|
+
private enhancePalaces;
|
|
40
|
+
/**
|
|
41
|
+
* 获取小限信息
|
|
42
|
+
*/
|
|
43
|
+
getMinorLimitInfo(birthYear: number, targetYear: number): ReturnType<typeof MinorLimitCalculator.calculate>;
|
|
44
|
+
/**
|
|
45
|
+
* 获取小限列表(年龄范围)
|
|
46
|
+
*/
|
|
47
|
+
getMinorLimitRange(birthYear: number, startAge: number, endAge: number): ReturnType<typeof MinorLimitCalculator.calculateRange>;
|
|
48
|
+
/**
|
|
49
|
+
* 获取小限列表(年份范围)
|
|
50
|
+
*/
|
|
51
|
+
getMinorLimitByYearRange(birthYear: number, startYear: number, endYear: number): ReturnType<typeof MinorLimitCalculator.calculateByYearRange>;
|
|
52
|
+
/**
|
|
53
|
+
* 获取所有小限(1-96岁)
|
|
54
|
+
*/
|
|
55
|
+
getAllMinorLimits(birthYear: number, maxAge?: number): ReturnType<typeof MinorLimitCalculator.calculateAll>;
|
|
56
|
+
/**
|
|
57
|
+
* 获取流月信息
|
|
58
|
+
* @param year - 公历年份
|
|
59
|
+
* @param monthIndex - 农历月份索引
|
|
60
|
+
* @param lunarMonth - 农历月份号(1-12)
|
|
61
|
+
* @param isLeapMonth - 是否闰月
|
|
62
|
+
*/
|
|
63
|
+
getMonthlyInfo(year: number, monthIndex: number, lunarMonth?: number, isLeapMonth?: boolean): ReturnType<typeof MonthlyCalculator.calculate>;
|
|
64
|
+
/**
|
|
65
|
+
* 获取一年的流月信息
|
|
66
|
+
*/
|
|
67
|
+
getYearlyMonths(year: number): ReturnType<typeof MonthlyCalculator.calculateYear>;
|
|
68
|
+
/**
|
|
69
|
+
* 获取流日信息
|
|
70
|
+
*/
|
|
71
|
+
getDailyInfo(year: number, month: number, day: number): ReturnType<typeof DailyCalculator.calculate>;
|
|
72
|
+
/**
|
|
73
|
+
* 获取一个月的流日信息
|
|
74
|
+
*/
|
|
75
|
+
getMonthlyDays(year: number, month: number): ReturnType<typeof DailyCalculator.calculateMonth>;
|
|
76
|
+
/**
|
|
77
|
+
* 获取流时信息
|
|
78
|
+
*/
|
|
79
|
+
getHourlyInfo(year: number, month: number, day: number, hour: number): ReturnType<typeof HourlyCalculator.calculate>;
|
|
80
|
+
/**
|
|
81
|
+
* 获取一天的流时信息
|
|
82
|
+
*/
|
|
83
|
+
getDailyHours(year: number, month: number, day: number): ReturnType<typeof HourlyCalculator.calculateDay>;
|
|
84
|
+
}
|
|
85
|
+
export declare const ziweiService: ZiweiService;
|
|
86
|
+
//# sourceMappingURL=ZiweiService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZiweiService.d.ts","sourceRoot":"","sources":["../../../src/services/ziwei/ZiweiService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKlE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,kBAAuB;IAY3C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAOpD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW;IA0JzC;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAYrC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA6D/B;;OAEG;IACH,OAAO,CAAC,cAAc;IA0EtB;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,UAAU,CAAC,OAAO,oBAAoB,CAAC,SAAS,CAAC;IAIpD;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,UAAU,CAAC,OAAO,oBAAoB,CAAC,cAAc,CAAC;IAIzD;;OAEG;IACH,wBAAwB,CACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,OAAO,oBAAoB,CAAC,oBAAoB,CAAC;IAI/D;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAW,GAClB,UAAU,CAAC,OAAO,oBAAoB,CAAC,YAAY,CAAC;IAIvD;;;;;;OAMG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,OAAO,GACpB,UAAU,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC;IAIjD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,aAAa,CAAC;IAIjF;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC;IAIpG;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC;IAI9F;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC;IAIpH;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC;CAG1G;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 紫微斗数服务主类
|
|
4
|
+
* 提供统一的对外接口,整合所有计算功能
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ziweiService = exports.ZiweiService = void 0;
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
const IztroAdapter_1 = require("../../core/ziwei/IztroAdapter");
|
|
10
|
+
const DecadeCalculator_1 = require("./calculators/DecadeCalculator");
|
|
11
|
+
const YearlyCalculator_1 = require("./calculators/YearlyCalculator");
|
|
12
|
+
const MinorLimitCalculator_1 = require("./calculators/MinorLimitCalculator");
|
|
13
|
+
const MutagenCalculator_1 = require("./calculators/MutagenCalculator");
|
|
14
|
+
const BrightnessCalculator_1 = require("./calculators/BrightnessCalculator");
|
|
15
|
+
const MonthlyCalculator_1 = require("./calculators/MonthlyCalculator");
|
|
16
|
+
const DailyCalculator_1 = require("./calculators/DailyCalculator");
|
|
17
|
+
const HourlyCalculator_1 = require("./calculators/HourlyCalculator");
|
|
18
|
+
const HoroscopeStarsCalculator_1 = require("./calculators/HoroscopeStarsCalculator");
|
|
19
|
+
const PalaceTransformer_1 = require("./transformers/PalaceTransformer");
|
|
20
|
+
const logger_1 = require("../../shared/logger");
|
|
21
|
+
class ZiweiService {
|
|
22
|
+
adapter;
|
|
23
|
+
config;
|
|
24
|
+
currentGender = 'male';
|
|
25
|
+
logger;
|
|
26
|
+
constructor(config = {}) {
|
|
27
|
+
this.adapter = new IztroAdapter_1.IztroAdapter();
|
|
28
|
+
this.config = {
|
|
29
|
+
language: 'zh-TW',
|
|
30
|
+
includeYearlyInfo: true,
|
|
31
|
+
includeMutagenInfo: true,
|
|
32
|
+
debug: false,
|
|
33
|
+
...config
|
|
34
|
+
};
|
|
35
|
+
this.logger = new logger_1.Logger('ZiweiService');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 更新服务配置
|
|
39
|
+
*/
|
|
40
|
+
setConfig(config) {
|
|
41
|
+
this.config = {
|
|
42
|
+
...this.config,
|
|
43
|
+
...config
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 计算紫微斗数命盘
|
|
48
|
+
*/
|
|
49
|
+
calculate(input) {
|
|
50
|
+
const startTime = Date.now();
|
|
51
|
+
// 入口日志
|
|
52
|
+
this.logger.info('开始紫微计算', {
|
|
53
|
+
type: '紫微',
|
|
54
|
+
input: logger_1.LogMasker.maskObject(input, ['name', 'birthDate']),
|
|
55
|
+
palaceCount: 12
|
|
56
|
+
});
|
|
57
|
+
try {
|
|
58
|
+
// 设置语言
|
|
59
|
+
const language = input.language || this.config.language || 'zh-TW';
|
|
60
|
+
// 保存性别信息
|
|
61
|
+
this.currentGender = input.gender;
|
|
62
|
+
// 初始化适配器
|
|
63
|
+
this.adapter.init({ ...input, language });
|
|
64
|
+
// 获取基本信息
|
|
65
|
+
const basicInfo = this.adapter.getBasicInfo();
|
|
66
|
+
const fourPillars = this.adapter.getFourPillars();
|
|
67
|
+
const lunarDate = this.adapter.getLunarDate();
|
|
68
|
+
// 获取宫位信息
|
|
69
|
+
let palaces = this.adapter.getPalaces();
|
|
70
|
+
// 计算星曜亮度
|
|
71
|
+
palaces = BrightnessCalculator_1.BrightnessCalculator.calculateForAllPalaces(palaces);
|
|
72
|
+
// 计算大限信息
|
|
73
|
+
let decades = DecadeCalculator_1.DecadeCalculator.calculate(palaces, basicInfo, fourPillars, input.gender, input.year);
|
|
74
|
+
// 获取增强的大限信息(包含正确的天干地支)
|
|
75
|
+
decades = DecadeCalculator_1.DecadeCalculator.getEnhancedDecadeInfo(decades, this.adapter, input.year);
|
|
76
|
+
// 获取当前大限 - 使用目标年份或当前年份
|
|
77
|
+
const targetYear = this.config.targetYear || new Date().getFullYear();
|
|
78
|
+
const targetAge = DecadeCalculator_1.DecadeCalculator.getCurrentAge(input.year, targetYear);
|
|
79
|
+
const currentDecade = DecadeCalculator_1.DecadeCalculator.getCurrentDecade(targetAge, decades);
|
|
80
|
+
// 计算流年信息(如果需要)
|
|
81
|
+
let yearlyInfo;
|
|
82
|
+
if (this.config.includeYearlyInfo) {
|
|
83
|
+
yearlyInfo = YearlyCalculator_1.YearlyCalculator.calculate(targetYear, input.year, palaces);
|
|
84
|
+
}
|
|
85
|
+
// 计算四化信息(如果需要)
|
|
86
|
+
let mutagenInfo;
|
|
87
|
+
if (this.config.includeMutagenInfo) {
|
|
88
|
+
const natalStem = fourPillars.year.stem;
|
|
89
|
+
const decadalStem = currentDecade?.heavenlyStem;
|
|
90
|
+
const yearlyStem = yearlyInfo?.heavenlyStem;
|
|
91
|
+
mutagenInfo = MutagenCalculator_1.MutagenCalculator.calculateCompleteMutagen(natalStem, decadalStem, yearlyStem, language);
|
|
92
|
+
// 应用四化到宫位
|
|
93
|
+
palaces = MutagenCalculator_1.MutagenCalculator.applyMutagenToPalaces(palaces, mutagenInfo);
|
|
94
|
+
}
|
|
95
|
+
// 提取并应用流曜 - 使用目标年份构建日期
|
|
96
|
+
const targetYearForHoroscope = this.config.targetYear || new Date().getFullYear();
|
|
97
|
+
const targetDate = `${targetYearForHoroscope}-01-01`; // 使用目标年份的第一天
|
|
98
|
+
const horoscope = this.adapter.getHoroscope(targetDate);
|
|
99
|
+
const yearlyStars = HoroscopeStarsCalculator_1.HoroscopeStarsCalculator.extractYearlyStars(horoscope);
|
|
100
|
+
const decadalStars = HoroscopeStarsCalculator_1.HoroscopeStarsCalculator.extractDecadalStars(horoscope);
|
|
101
|
+
// 将流曜应用到宫位
|
|
102
|
+
palaces = HoroscopeStarsCalculator_1.HoroscopeStarsCalculator.applyHoroscopeStarsToPalaces(palaces, yearlyStars, decadalStars);
|
|
103
|
+
// 将流曜信息添加到年份和大限信息中
|
|
104
|
+
if (yearlyInfo && yearlyStars) {
|
|
105
|
+
yearlyInfo.stars = yearlyStars;
|
|
106
|
+
}
|
|
107
|
+
if (currentDecade && decadalStars) {
|
|
108
|
+
currentDecade.stars = decadalStars;
|
|
109
|
+
}
|
|
110
|
+
// 增强宫位信息
|
|
111
|
+
const enhancedPalaces = this.enhancePalaces(palaces, decades, currentDecade || undefined, yearlyInfo);
|
|
112
|
+
// 构建返回结果
|
|
113
|
+
const result = {
|
|
114
|
+
basicInfo,
|
|
115
|
+
solarDate: `${input.year}-${input.month.toString().padStart(2, '0')}-${input.day.toString().padStart(2, '0')}`,
|
|
116
|
+
lunarDate,
|
|
117
|
+
palaces: enhancedPalaces,
|
|
118
|
+
decades,
|
|
119
|
+
currentDecade: currentDecade || undefined,
|
|
120
|
+
yearlyInfo,
|
|
121
|
+
mutagenInfo,
|
|
122
|
+
gender: input.gender,
|
|
123
|
+
birthYear: input.year,
|
|
124
|
+
language
|
|
125
|
+
};
|
|
126
|
+
if (this.config.debug) {
|
|
127
|
+
this.logger.debug('ZiweiService Debug Info:', this.adapter.getDebugInfo());
|
|
128
|
+
}
|
|
129
|
+
// 成功出口日志
|
|
130
|
+
this.logger.info('紫微计算完成', {
|
|
131
|
+
duration: Date.now() - startTime,
|
|
132
|
+
starCount: result.palaces.reduce((count, palace) => count + palace.majorStars.length + palace.minorStars.length, 0)
|
|
133
|
+
});
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
// 错误日志
|
|
138
|
+
this.logger.error('紫微计算失败', error, {
|
|
139
|
+
duration: Date.now() - startTime,
|
|
140
|
+
input: logger_1.LogMasker.maskObject(input, ['name', 'birthDate'])
|
|
141
|
+
});
|
|
142
|
+
if (error instanceof types_1.ZiweiCalculationError) {
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
throw new types_1.ZiweiCalculationError('Ziwei calculation failed', 'CALCULATION_FAILED', error);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 计算指定日期的运限信息
|
|
150
|
+
*/
|
|
151
|
+
calculateHoroscope(date) {
|
|
152
|
+
const horoscope = this.adapter.getHoroscope(date);
|
|
153
|
+
// 修正流年信息
|
|
154
|
+
if (horoscope?.yearly) {
|
|
155
|
+
const targetYear = new Date(date).getFullYear();
|
|
156
|
+
horoscope.yearly = YearlyCalculator_1.YearlyCalculator.fixYearlyInfo(horoscope.yearly, targetYear);
|
|
157
|
+
}
|
|
158
|
+
return horoscope;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* 计算小限年龄
|
|
162
|
+
* 小限计算规则:
|
|
163
|
+
* 1. 根据出生年支确定起始宫位
|
|
164
|
+
* 2. 男顺女逆运行
|
|
165
|
+
* 3. 每年一宫,12年一轮回
|
|
166
|
+
*/
|
|
167
|
+
calculateMinorLimitAges(palace, gender, yearBranch) {
|
|
168
|
+
const ages = [];
|
|
169
|
+
// 地支顺序
|
|
170
|
+
const branches = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];
|
|
171
|
+
const palaceBranchIndex = branches.indexOf(palace.earthlyBranch);
|
|
172
|
+
if (palaceBranchIndex === -1) {
|
|
173
|
+
console.warn(`Palace branch not found: ${palace.earthlyBranch}`);
|
|
174
|
+
return ages;
|
|
175
|
+
}
|
|
176
|
+
// 根据出生年支确定起始宫位
|
|
177
|
+
let startBranch;
|
|
178
|
+
if (['寅', '午', '戌'].includes(yearBranch)) {
|
|
179
|
+
startBranch = '辰'; // 寅午戌年生人:从辰宫起1岁
|
|
180
|
+
}
|
|
181
|
+
else if (['申', '子', '辰'].includes(yearBranch)) {
|
|
182
|
+
startBranch = '戌'; // 申子辰年生人:从戌宫起1岁
|
|
183
|
+
}
|
|
184
|
+
else if (['巳', '酉', '丑'].includes(yearBranch)) {
|
|
185
|
+
startBranch = '未'; // 巳酉丑年生人:从未宫起1岁
|
|
186
|
+
}
|
|
187
|
+
else if (['亥', '卯', '未'].includes(yearBranch)) {
|
|
188
|
+
startBranch = '丑'; // 亥卯未年生人:从丑宫起1岁
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
console.warn(`Year branch not in any group: ${yearBranch}`);
|
|
192
|
+
return ages;
|
|
193
|
+
}
|
|
194
|
+
const startBranchIndex = branches.indexOf(startBranch);
|
|
195
|
+
if (startBranchIndex === -1) {
|
|
196
|
+
console.warn(`Start branch not found: ${startBranch}`);
|
|
197
|
+
return ages;
|
|
198
|
+
}
|
|
199
|
+
// 计算该宫位的小限年龄
|
|
200
|
+
for (let cycle = 0; cycle < 8; cycle++) {
|
|
201
|
+
for (let offset = 0; offset < 12; offset++) {
|
|
202
|
+
const currentAge = offset + 1 + (cycle * 12);
|
|
203
|
+
if (currentAge > 96)
|
|
204
|
+
break;
|
|
205
|
+
// 计算当前年龄对应的宫位
|
|
206
|
+
let currentBranchIndex;
|
|
207
|
+
if (gender === 'male') {
|
|
208
|
+
// 男命顺行
|
|
209
|
+
currentBranchIndex = (startBranchIndex + offset) % 12;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// 女命逆行
|
|
213
|
+
currentBranchIndex = (startBranchIndex - offset + 12) % 12;
|
|
214
|
+
}
|
|
215
|
+
// 如果当前宫位与传入的宫位匹配,记录年龄
|
|
216
|
+
if (currentBranchIndex === palaceBranchIndex) {
|
|
217
|
+
ages.push(currentAge);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return ages;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* 增强宫位信息
|
|
225
|
+
*/
|
|
226
|
+
enhancePalaces(palaces, decades, currentDecade, yearlyInfo) {
|
|
227
|
+
// 获取年支和性别信息
|
|
228
|
+
const yearBranch = this.adapter.getFourPillars().year.branch;
|
|
229
|
+
const gender = this.currentGender;
|
|
230
|
+
return palaces.map((palace, index) => {
|
|
231
|
+
const enhanced = {
|
|
232
|
+
...palace,
|
|
233
|
+
minorLimitAges: this.calculateMinorLimitAges(palace, gender, yearBranch)
|
|
234
|
+
};
|
|
235
|
+
// Find the decade that is assigned to THIS palace
|
|
236
|
+
// Match by earthly branch since palace array order might not match decade calculation order
|
|
237
|
+
// Skip 童限 (index = -1) and find the actual decade
|
|
238
|
+
const decade = decades.find(d => {
|
|
239
|
+
if (d.index < 0)
|
|
240
|
+
return false; // Skip 童限
|
|
241
|
+
// Match by earthly branch which is more reliable than array index
|
|
242
|
+
return d.earthlyBranch === palace.earthlyBranch;
|
|
243
|
+
});
|
|
244
|
+
if (decade) {
|
|
245
|
+
enhanced.decadeInfo = {
|
|
246
|
+
startAge: decade.startAge,
|
|
247
|
+
endAge: decade.endAge,
|
|
248
|
+
isCurrent: currentDecade?.index === decade.index
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
// 设置动态宫位名称
|
|
252
|
+
if (currentDecade && currentDecade.palaceIndex !== undefined) {
|
|
253
|
+
// 获取命宫索引
|
|
254
|
+
const mingGongIndex = palaces.findIndex(p => p.name === '命宮' || p.name === '命宫' || p.name === 'Life' || p.name === '命');
|
|
255
|
+
if (mingGongIndex >= 0) {
|
|
256
|
+
const isClockwise = DecadeCalculator_1.DecadeCalculator.isClockwise(this.adapter.getFourPillars().year.stem, this.currentGender);
|
|
257
|
+
const palaceInfo = PalaceTransformer_1.PalaceTransformer.getCompletePalaceInfo(palace, index, mingGongIndex, currentDecade, yearlyInfo, isClockwise, palaces);
|
|
258
|
+
enhanced.dynamicNames = {
|
|
259
|
+
decadal: palaceInfo.decadal,
|
|
260
|
+
yearly: palaceInfo.yearly
|
|
261
|
+
};
|
|
262
|
+
enhanced.isDecadeHighlight = palaceInfo.isDecadalMing || false;
|
|
263
|
+
enhanced.isYearlyHighlight = palaceInfo.isYearlyMing || false;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
enhanced.isDecadeHighlight = index === currentDecade.palaceIndex;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
enhanced.isDecadeHighlight = false;
|
|
271
|
+
}
|
|
272
|
+
return enhanced;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* 获取小限信息
|
|
277
|
+
*/
|
|
278
|
+
getMinorLimitInfo(birthYear, targetYear) {
|
|
279
|
+
return MinorLimitCalculator_1.MinorLimitCalculator.calculate(this.adapter, birthYear, targetYear);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* 获取小限列表(年龄范围)
|
|
283
|
+
*/
|
|
284
|
+
getMinorLimitRange(birthYear, startAge, endAge) {
|
|
285
|
+
return MinorLimitCalculator_1.MinorLimitCalculator.calculateRange(this.adapter, birthYear, startAge, endAge);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* 获取小限列表(年份范围)
|
|
289
|
+
*/
|
|
290
|
+
getMinorLimitByYearRange(birthYear, startYear, endYear) {
|
|
291
|
+
return MinorLimitCalculator_1.MinorLimitCalculator.calculateByYearRange(this.adapter, birthYear, startYear, endYear);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* 获取所有小限(1-96岁)
|
|
295
|
+
*/
|
|
296
|
+
getAllMinorLimits(birthYear, maxAge = 96) {
|
|
297
|
+
return MinorLimitCalculator_1.MinorLimitCalculator.calculateAll(this.adapter, birthYear, maxAge);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* 获取流月信息
|
|
301
|
+
* @param year - 公历年份
|
|
302
|
+
* @param monthIndex - 农历月份索引
|
|
303
|
+
* @param lunarMonth - 农历月份号(1-12)
|
|
304
|
+
* @param isLeapMonth - 是否闰月
|
|
305
|
+
*/
|
|
306
|
+
getMonthlyInfo(year, monthIndex, lunarMonth, isLeapMonth) {
|
|
307
|
+
return MonthlyCalculator_1.MonthlyCalculator.calculate(this.adapter, year, monthIndex, lunarMonth, isLeapMonth);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* 获取一年的流月信息
|
|
311
|
+
*/
|
|
312
|
+
getYearlyMonths(year) {
|
|
313
|
+
return MonthlyCalculator_1.MonthlyCalculator.calculateYear(this.adapter, year);
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* 获取流日信息
|
|
317
|
+
*/
|
|
318
|
+
getDailyInfo(year, month, day) {
|
|
319
|
+
return DailyCalculator_1.DailyCalculator.calculate(this.adapter, year, month, day);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* 获取一个月的流日信息
|
|
323
|
+
*/
|
|
324
|
+
getMonthlyDays(year, month) {
|
|
325
|
+
return DailyCalculator_1.DailyCalculator.calculateMonth(this.adapter, year, month);
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* 获取流时信息
|
|
329
|
+
*/
|
|
330
|
+
getHourlyInfo(year, month, day, hour) {
|
|
331
|
+
return HourlyCalculator_1.HourlyCalculator.calculate(this.adapter, year, month, day, hour);
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* 获取一天的流时信息
|
|
335
|
+
*/
|
|
336
|
+
getDailyHours(year, month, day) {
|
|
337
|
+
return HourlyCalculator_1.HourlyCalculator.calculateDay(this.adapter, year, month, day);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
exports.ZiweiService = ZiweiService;
|
|
341
|
+
// 导出单例实例
|
|
342
|
+
exports.ziweiService = new ZiweiService();
|
|
343
|
+
//# sourceMappingURL=ZiweiService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZiweiService.js","sourceRoot":"","sources":["../../../src/services/ziwei/ZiweiService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 亮度计算器
|
|
3
|
+
* 负责计算和应用星曜亮度
|
|
4
|
+
*/
|
|
5
|
+
import { Palace, StarWithMutagen } from '../types';
|
|
6
|
+
import { BrightnessLevel } from '../../../core/ziwei/BrightnessSystem';
|
|
7
|
+
export declare class BrightnessCalculator {
|
|
8
|
+
/**
|
|
9
|
+
* 为宫位中的所有星曜计算亮度
|
|
10
|
+
*/
|
|
11
|
+
static calculateForPalace(palace: Palace): Palace;
|
|
12
|
+
/**
|
|
13
|
+
* 批量计算所有宫位的星曜亮度
|
|
14
|
+
*/
|
|
15
|
+
static calculateForAllPalaces(palaces: Palace[]): Palace[];
|
|
16
|
+
/**
|
|
17
|
+
* 获取宫位中最亮的星曜
|
|
18
|
+
*/
|
|
19
|
+
static getBrightest(palace: Palace): StarWithMutagen[];
|
|
20
|
+
/**
|
|
21
|
+
* 计算宫位的整体亮度分数
|
|
22
|
+
*/
|
|
23
|
+
static calculatePalaceScore(palace: Palace): number;
|
|
24
|
+
/**
|
|
25
|
+
* 获取亮度描述(支持多语言)
|
|
26
|
+
*/
|
|
27
|
+
static getBrightnessDescription(level: BrightnessLevel, language?: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* 分析宫位亮度对运势的影响
|
|
30
|
+
*/
|
|
31
|
+
static analyzeBrightnessImpact(palace: Palace, language?: string): {
|
|
32
|
+
score: number;
|
|
33
|
+
level: string;
|
|
34
|
+
description: string;
|
|
35
|
+
suggestions: string[];
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=BrightnessCalculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrightnessCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/ziwei/calculators/BrightnessCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAoB,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEzF,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAoBjD;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAI1D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE;IAStD;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAuBnD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,GAAE,MAAgB,GAAG,MAAM;IAI3F;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAgB,GAAG;QAC1E,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;CA0DF"}
|