mingpan 0.1.2 → 0.1.3

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 (108) hide show
  1. package/README.md +72 -44
  2. package/dist/core/qimen/FlyingRule.d.ts +60 -0
  3. package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
  4. package/dist/core/qimen/FlyingRule.js +94 -0
  5. package/dist/core/qimen/FlyingRule.js.map +1 -0
  6. package/dist/core/qimen/GongMapping.d.ts +29 -0
  7. package/dist/core/qimen/GongMapping.d.ts.map +1 -0
  8. package/dist/core/qimen/GongMapping.js +83 -0
  9. package/dist/core/qimen/GongMapping.js.map +1 -0
  10. package/dist/core/qimen/RotatingRule.d.ts +76 -0
  11. package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
  12. package/dist/core/qimen/RotatingRule.js +126 -0
  13. package/dist/core/qimen/RotatingRule.js.map +1 -0
  14. package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
  15. package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
  16. package/dist/core/qimen/YinYangDunCalculator.js +79 -0
  17. package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
  18. package/dist/core/qimen/index.d.ts +10 -0
  19. package/dist/core/qimen/index.d.ts.map +1 -0
  20. package/dist/core/qimen/index.js +58 -0
  21. package/dist/core/qimen/index.js.map +1 -0
  22. package/dist/core/qimen/types.d.ts +19 -0
  23. package/dist/core/qimen/types.d.ts.map +1 -0
  24. package/dist/core/qimen/types.js +7 -0
  25. package/dist/core/qimen/types.js.map +1 -0
  26. package/dist/index.js +269 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/output/qimenTextRenderer.d.ts +40 -0
  29. package/dist/output/qimenTextRenderer.d.ts.map +1 -0
  30. package/dist/output/qimenTextRenderer.js +363 -0
  31. package/dist/output/qimenTextRenderer.js.map +1 -0
  32. package/dist/services/qimen/QimenService.d.ts +93 -0
  33. package/dist/services/qimen/QimenService.d.ts.map +1 -0
  34. package/dist/services/qimen/QimenService.js +427 -0
  35. package/dist/services/qimen/QimenService.js.map +1 -0
  36. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +53 -0
  37. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
  38. package/dist/services/qimen/calculators/BaMenCalculator.js +105 -0
  39. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
  40. package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
  41. package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
  42. package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
  43. package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
  44. package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
  45. package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
  46. package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
  47. package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
  48. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +56 -0
  49. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
  50. package/dist/services/qimen/calculators/JiuGongCalculator.js +98 -0
  51. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
  52. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +54 -0
  53. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
  54. package/dist/services/qimen/calculators/JiuXingCalculator.js +117 -0
  55. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
  56. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +57 -0
  57. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
  58. package/dist/services/qimen/calculators/JuShuCalculator.js +115 -0
  59. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
  60. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
  61. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
  62. package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
  63. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
  64. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +50 -0
  65. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
  66. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +86 -0
  67. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
  68. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
  69. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
  70. package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
  71. package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
  72. package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
  73. package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
  74. package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
  75. package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
  76. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +78 -0
  77. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +1 -0
  78. package/dist/services/qimen/calculators/ZeRiCalculator.js +431 -0
  79. package/dist/services/qimen/calculators/ZeRiCalculator.js.map +1 -0
  80. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +118 -0
  81. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
  82. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +260 -0
  83. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
  84. package/dist/services/qimen/data/constants.d.ts +105 -0
  85. package/dist/services/qimen/data/constants.d.ts.map +1 -0
  86. package/dist/services/qimen/data/constants.js +295 -0
  87. package/dist/services/qimen/data/constants.js.map +1 -0
  88. package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
  89. package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
  90. package/dist/services/qimen/data/shensha-rules.js +397 -0
  91. package/dist/services/qimen/data/shensha-rules.js.map +1 -0
  92. package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
  93. package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
  94. package/dist/services/qimen/data/yongshen-rules.js +365 -0
  95. package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
  96. package/dist/services/qimen/index.d.ts +20 -0
  97. package/dist/services/qimen/index.d.ts.map +1 -0
  98. package/dist/services/qimen/index.js +43 -0
  99. package/dist/services/qimen/index.js.map +1 -0
  100. package/dist/services/qimen/types.d.ts +390 -0
  101. package/dist/services/qimen/types.d.ts.map +1 -0
  102. package/dist/services/qimen/types.js +20 -0
  103. package/dist/services/qimen/types.js.map +1 -0
  104. package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
  105. package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
  106. package/dist/services/qimen/utils/gongUtils.js +164 -0
  107. package/dist/services/qimen/utils/gongUtils.js.map +1 -0
  108. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeJuCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/GeJuCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * 九宫计算器
3
+ * 计算地盘布局(三奇六仪在九宫中的分布)
4
+ */
5
+ import type { GongWei, JuShu, TianGan, YinYangDun } from '../types';
6
+ export interface DiPanResult {
7
+ /** 各宫地盘干 (宫位 -> 干) */
8
+ gongGan: Record<GongWei, TianGan>;
9
+ /** 干找宫位映射 (干 -> 宫位) */
10
+ ganGong: Record<TianGan, GongWei>;
11
+ }
12
+ /**
13
+ * 九宫计算器
14
+ * 负责计算地盘布局(三奇六仪的分布)
15
+ */
16
+ export declare class JiuGongCalculator {
17
+ /**
18
+ * 计算地盘布局
19
+ * @param juShu 局数 (1-9)
20
+ * @param yinYangDun 阴阳遁
21
+ * @returns 地盘各宫的干
22
+ *
23
+ * 原理:
24
+ * - 阳遁:从局数对应的宫位开始,按洛书顺序顺布戊己庚辛壬癸丁丙乙
25
+ * - 阴遁:从局数对应的宫位开始,按洛书逆序顺布戊己庚辛壬癸丁丙乙
26
+ *
27
+ * 例如阳遁一局:
28
+ * - 从坎一宫开始,顺时针布:戊-坎1, 己-艮8, 庚-震3, 辛-巽4, 壬-离9, 癸-坤2, 丁-兑7, 丙-乾6, 乙-中5(寄坤2)
29
+ *
30
+ * 例如阴遁九局:
31
+ * - 从离九宫开始,逆时针布:戊-离9, 己-巽4, 庚-震3, 辛-艮8, 壬-坎1, 癸-乾6, 丁-兑7, 丙-坤2, 乙-中5(寄坤2)
32
+ */
33
+ static calculate(juShu: JuShu, yinYangDun: YinYangDun): DiPanResult;
34
+ /**
35
+ * 根据起始宫位和步数计算目标宫位
36
+ * @param startGong 起始宫位
37
+ * @param steps 步数 (0-7)
38
+ * @param isYang 是否阳遁(顺飞)
39
+ */
40
+ private static getGongByStep;
41
+ /**
42
+ * 根据天干找落宫
43
+ * @param diPan 地盘信息
44
+ * @param gan 要查找的天干
45
+ * @returns 该天干所在的宫位
46
+ */
47
+ static findGongByGan(ganGong: Record<TianGan, GongWei>, gan: TianGan): GongWei;
48
+ /**
49
+ * 根据宫位找天干
50
+ * @param gongGan 地盘各宫的干
51
+ * @param gong 宫位
52
+ * @returns 该宫位的天干
53
+ */
54
+ static findGanByGong(gongGan: Record<GongWei, TianGan>, gong: GongWei): TianGan;
55
+ }
56
+ //# sourceMappingURL=JiuGongCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JiuGongCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuGongCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AASpE,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,WAAW;IA+BnE;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO;IAM9E;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;CAGhF"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * 九宫计算器
4
+ * 计算地盘布局(三奇六仪在九宫中的分布)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.JiuGongCalculator = void 0;
8
+ const constants_1 = require("../data/constants");
9
+ /**
10
+ * 九宫计算器
11
+ * 负责计算地盘布局(三奇六仪的分布)
12
+ */
13
+ class JiuGongCalculator {
14
+ /**
15
+ * 计算地盘布局
16
+ * @param juShu 局数 (1-9)
17
+ * @param yinYangDun 阴阳遁
18
+ * @returns 地盘各宫的干
19
+ *
20
+ * 原理:
21
+ * - 阳遁:从局数对应的宫位开始,按洛书顺序顺布戊己庚辛壬癸丁丙乙
22
+ * - 阴遁:从局数对应的宫位开始,按洛书逆序顺布戊己庚辛壬癸丁丙乙
23
+ *
24
+ * 例如阳遁一局:
25
+ * - 从坎一宫开始,顺时针布:戊-坎1, 己-艮8, 庚-震3, 辛-巽4, 壬-离9, 癸-坤2, 丁-兑7, 丙-乾6, 乙-中5(寄坤2)
26
+ *
27
+ * 例如阴遁九局:
28
+ * - 从离九宫开始,逆时针布:戊-离9, 己-巽4, 庚-震3, 辛-艮8, 壬-坎1, 癸-乾6, 丁-兑7, 丙-坤2, 乙-中5(寄坤2)
29
+ */
30
+ static calculate(juShu, yinYangDun) {
31
+ const isYang = yinYangDun === '阳遁';
32
+ const gongGan = {};
33
+ const ganGong = {};
34
+ // 起始宫位就是局数
35
+ const startGong = juShu;
36
+ // 遍历九个干(三奇六仪),依次布入九宫
37
+ for (let i = 0; i < 9; i++) {
38
+ const gan = constants_1.SAN_QI_LIU_YI[i];
39
+ let gong;
40
+ if (i === 8) {
41
+ // 第9个干(乙)布入中宫,但中宫寄坤二
42
+ // 注意:实际上乙是布入"中五宫"的位置
43
+ gong = 5;
44
+ // 记录乙在中宫
45
+ gongGan[5] = gan;
46
+ ganGong[gan] = 5;
47
+ }
48
+ else {
49
+ // 计算当前干应该布入的宫位
50
+ gong = this.getGongByStep(startGong, i, isYang);
51
+ gongGan[gong] = gan;
52
+ ganGong[gan] = gong;
53
+ }
54
+ }
55
+ return { gongGan, ganGong };
56
+ }
57
+ /**
58
+ * 根据起始宫位和步数计算目标宫位
59
+ * @param startGong 起始宫位
60
+ * @param steps 步数 (0-7)
61
+ * @param isYang 是否阳遁(顺飞)
62
+ */
63
+ static getGongByStep(startGong, steps, isYang) {
64
+ // 如果起始宫位是中宫,需要特殊处理
65
+ let actualStart = startGong;
66
+ if (actualStart === 5) {
67
+ actualStart = constants_1.ZHONG_GONG_JI; // 中宫寄坤二
68
+ }
69
+ const startIdx = (0, constants_1.getLuoShuIndex)(actualStart);
70
+ // 阳遁顺飞,阴遁逆飞
71
+ const targetIdx = isYang
72
+ ? (startIdx + steps) % 8
73
+ : ((startIdx - steps) % 8 + 8) % 8;
74
+ return (0, constants_1.getLuoShuGong)(targetIdx);
75
+ }
76
+ /**
77
+ * 根据天干找落宫
78
+ * @param diPan 地盘信息
79
+ * @param gan 要查找的天干
80
+ * @returns 该天干所在的宫位
81
+ */
82
+ static findGongByGan(ganGong, gan) {
83
+ const gong = ganGong[gan];
84
+ // 如果在中宫,返回寄宫
85
+ return gong === 5 ? constants_1.ZHONG_GONG_JI : gong;
86
+ }
87
+ /**
88
+ * 根据宫位找天干
89
+ * @param gongGan 地盘各宫的干
90
+ * @param gong 宫位
91
+ * @returns 该宫位的天干
92
+ */
93
+ static findGanByGong(gongGan, gong) {
94
+ return gongGan[gong];
95
+ }
96
+ }
97
+ exports.JiuGongCalculator = JiuGongCalculator;
98
+ //# sourceMappingURL=JiuGongCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JiuGongCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuGongCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,iDAM2B;AAS3B;;;GAGG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,UAAsB;QACnD,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;QACnC,MAAM,OAAO,GAA6B,EAA8B,CAAC;QACzE,MAAM,OAAO,GAA6B,EAA8B,CAAC;QAEzE,WAAW;QACX,MAAM,SAAS,GAAY,KAAgB,CAAC;QAE5C,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,yBAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAa,CAAC;YAElB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,qBAAqB;gBACrB,qBAAqB;gBACrB,IAAI,GAAG,CAAC,CAAC;gBACT,SAAS;gBACT,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAAC,SAAkB,EAAE,KAAa,EAAE,MAAe;QAC7E,mBAAmB;QACnB,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,WAAW,GAAG,yBAAa,CAAC,CAAC,QAAQ;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,WAAW,CAAC,CAAC;QAE7C,YAAY;QACZ,MAAM,SAAS,GAAG,MAAM;YACtB,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;YACxB,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAErC,OAAO,IAAA,yBAAa,EAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAiC,EAAE,GAAY;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,aAAa;QACb,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAiC,EAAE,IAAa;QACnE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AA5FD,8CA4FC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * 九星计算器
3
+ * 计算九星在九宫中的分布
4
+ */
5
+ import type { DiZhi, GongWei, JiuXing, YinYangDun } from '../types';
6
+ export interface JiuXingResult {
7
+ /** 各宫九星 (宫位 -> 星) */
8
+ gongXing: Record<GongWei, JiuXing>;
9
+ /** 值符星 */
10
+ zhiFuXing: JiuXing;
11
+ /** 值符星原始宫位 */
12
+ zhiFuGong: GongWei;
13
+ /** 值符星落宫 */
14
+ zhiFuLuoGong: GongWei;
15
+ }
16
+ /**
17
+ * 九星计算器
18
+ * 负责计算九星的飞布
19
+ */
20
+ export declare class JiuXingCalculator {
21
+ /**
22
+ * 计算九星布局
23
+ * @param xunShouGong 旬首遁干在地盘的宫位
24
+ * @param hourZhi 时支
25
+ * @param yinYangDun 阴阳遁
26
+ * @returns 九星布局
27
+ *
28
+ * 原理:
29
+ * 1. 确定值符星:旬首遁干落宫对应的星就是值符星
30
+ * 2. 值符星随时干飞布,从地盘旬首落宫起,按时辰数飞布
31
+ * 3. 阳遁顺飞,阴遁逆飞
32
+ * 4. 天禽星(中五宫)随天芮星,或寄坤二
33
+ */
34
+ static calculate(xunShouGong: GongWei, hourZhi: DiZhi, yinYangDun: YinYangDun): JiuXingResult;
35
+ /**
36
+ * 根据宫位获取原始星
37
+ */
38
+ private static getXingByGong;
39
+ /**
40
+ * 飞星:从某宫开始飞布指定步数
41
+ */
42
+ private static flyXing;
43
+ /**
44
+ * 计算所有九星的落宫
45
+ * 从值符星落宫开始,按洛书顺序排列其他八星
46
+ * 天禽星随天芮星
47
+ */
48
+ private static calculateAllXing;
49
+ /**
50
+ * 根据宫位找星
51
+ */
52
+ static findXingByGong(gongXing: Record<GongWei, JiuXing>, gong: GongWei): JiuXing;
53
+ }
54
+ //# sourceMappingURL=JiuXingCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JiuXingCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuXingCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAW,UAAU,EAAE,MAAM,UAAU,CAAC;AAW7E,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU;IACV,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY;IACZ,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CACd,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,UAAU,GACrB,aAAa;IAyBhB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAetB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAuC/B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;CAMlF"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /**
3
+ * 九星计算器
4
+ * 计算九星在九宫中的分布
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.JiuXingCalculator = void 0;
8
+ const constants_1 = require("../data/constants");
9
+ /**
10
+ * 九星计算器
11
+ * 负责计算九星的飞布
12
+ */
13
+ class JiuXingCalculator {
14
+ /**
15
+ * 计算九星布局
16
+ * @param xunShouGong 旬首遁干在地盘的宫位
17
+ * @param hourZhi 时支
18
+ * @param yinYangDun 阴阳遁
19
+ * @returns 九星布局
20
+ *
21
+ * 原理:
22
+ * 1. 确定值符星:旬首遁干落宫对应的星就是值符星
23
+ * 2. 值符星随时干飞布,从地盘旬首落宫起,按时辰数飞布
24
+ * 3. 阳遁顺飞,阴遁逆飞
25
+ * 4. 天禽星(中五宫)随天芮星,或寄坤二
26
+ */
27
+ static calculate(xunShouGong, hourZhi, yinYangDun) {
28
+ const isYang = yinYangDun === '阳遁';
29
+ // 1. 确定值符星(旬首落宫对应的星)
30
+ const zhiFuXing = this.getXingByGong(xunShouGong);
31
+ const zhiFuGong = constants_1.JIU_XING_GONG[zhiFuXing];
32
+ // 2. 计算时辰数(子时为1)
33
+ const hourNum = constants_1.DI_ZHI.indexOf(hourZhi) + 1;
34
+ // 3. 计算值符星落宫
35
+ // 值符星随时干,从旬首落宫起飞布
36
+ const zhiFuLuoGong = this.flyXing(xunShouGong, hourNum - 1, isYang);
37
+ // 4. 计算所有九星的落宫
38
+ const gongXing = this.calculateAllXing(zhiFuXing, zhiFuLuoGong, isYang);
39
+ return {
40
+ gongXing,
41
+ zhiFuXing,
42
+ zhiFuGong,
43
+ zhiFuLuoGong,
44
+ };
45
+ }
46
+ /**
47
+ * 根据宫位获取原始星
48
+ */
49
+ static getXingByGong(gong) {
50
+ for (const [xing, xingGong] of Object.entries(constants_1.JIU_XING_GONG)) {
51
+ if (xingGong === gong) {
52
+ return xing;
53
+ }
54
+ }
55
+ // 中宫为天禽
56
+ if (gong === 5) {
57
+ return '禽';
58
+ }
59
+ return '芮'; // 默认天芮
60
+ }
61
+ /**
62
+ * 飞星:从某宫开始飞布指定步数
63
+ */
64
+ static flyXing(startGong, steps, isYang) {
65
+ let actualStart = startGong;
66
+ if (actualStart === 5) {
67
+ actualStart = constants_1.ZHONG_GONG_JI; // 中宫寄坤二
68
+ }
69
+ const startIdx = (0, constants_1.getLuoShuIndex)(actualStart);
70
+ const targetIdx = isYang
71
+ ? (startIdx + steps) % 8
72
+ : ((startIdx - steps) % 8 + 8) % 8;
73
+ return (0, constants_1.getLuoShuGong)(targetIdx);
74
+ }
75
+ /**
76
+ * 计算所有九星的落宫
77
+ * 从值符星落宫开始,按洛书顺序排列其他八星
78
+ * 天禽星随天芮星
79
+ */
80
+ static calculateAllXing(zhiFuXing, zhiFuLuoGong, isYang) {
81
+ const gongXing = {};
82
+ // 九星顺序(不含天禽,因为天禽随天芮)
83
+ const xingOrderWithoutQin = ['蓬', '芮', '冲', '辅', '心', '柱', '任', '英'];
84
+ // 找到值符星在顺序中的索引
85
+ let zhiFuIdx = xingOrderWithoutQin.indexOf(zhiFuXing);
86
+ if (zhiFuIdx === -1) {
87
+ // 如果值符星是天禽,则以天芮为准
88
+ zhiFuIdx = xingOrderWithoutQin.indexOf('芮');
89
+ }
90
+ // 获取值符星落宫在洛书中的索引
91
+ let startIdx = (0, constants_1.getLuoShuIndex)(zhiFuLuoGong === 5 ? constants_1.ZHONG_GONG_JI : zhiFuLuoGong);
92
+ // 依次排列八星(不含天禽)
93
+ for (let i = 0; i < 8; i++) {
94
+ const xingIdx = (zhiFuIdx + i) % 8;
95
+ const xing = xingOrderWithoutQin[xingIdx];
96
+ const gongIdx = isYang
97
+ ? (startIdx + i) % 8
98
+ : ((startIdx - i) % 8 + 8) % 8;
99
+ const gong = (0, constants_1.getLuoShuGong)(gongIdx);
100
+ gongXing[gong] = xing;
101
+ }
102
+ // 天禽星寄中宫,实际显示时随天芮
103
+ gongXing[5] = '禽';
104
+ return gongXing;
105
+ }
106
+ /**
107
+ * 根据宫位找星
108
+ */
109
+ static findXingByGong(gongXing, gong) {
110
+ if (gong === 5) {
111
+ return '禽';
112
+ }
113
+ return gongXing[gong];
114
+ }
115
+ }
116
+ exports.JiuXingCalculator = JiuXingCalculator;
117
+ //# sourceMappingURL=JiuXingCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JiuXingCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuXingCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * 局数计算器
3
+ * 根据节气和置闰法确定阴阳遁和局数
4
+ */
5
+ import type { JuShu, YinYangDun, YuanType, ZhiRunMethod } from '../types';
6
+ export interface JuShuResult {
7
+ /** 阴阳遁 */
8
+ yinYangDun: YinYangDun;
9
+ /** 局数 (1-9) */
10
+ juShu: JuShu;
11
+ /** 上中下元 */
12
+ yuan: YuanType;
13
+ }
14
+ /**
15
+ * 局数计算器
16
+ */
17
+ export declare class JuShuCalculator {
18
+ /**
19
+ * 计算局数
20
+ * @param jieQi 当前节气名称
21
+ * @param dayGanZhi 日干支
22
+ * @param method 置闰方法
23
+ * @param jieQiDate 节气开始日期 (茅山法需要)
24
+ * @param currentDate 当前日期 (茅山法需要)
25
+ */
26
+ static calculate(jieQi: string, dayGanZhi: string, method: ZhiRunMethod, jieQiDate?: Date, currentDate?: Date): JuShuResult;
27
+ /**
28
+ * 拆补法计算上中下元
29
+ * 根据日干支确定符头,从而确定上中下元
30
+ *
31
+ * 原理:
32
+ * - 每个节气 15 天分为三元,每元 5 天
33
+ * - 上元:符头为甲子、甲午(甲子旬或甲午旬的开头)
34
+ * - 中元:符头为甲戌、甲辰
35
+ * - 下元:符头为甲申、甲寅
36
+ */
37
+ private static calculateYuanChaibu;
38
+ /**
39
+ * 茅山法计算上中下元
40
+ * 根据节气交节后的天数确定
41
+ *
42
+ * 原理:
43
+ * - 节气交节后 1-5 天为上元
44
+ * - 节气交节后 6-10 天为中元
45
+ * - 节气交节后 11-15 天为下元
46
+ */
47
+ private static calculateYuanMaoshan;
48
+ /**
49
+ * 根据日干支获取其在六十甲子中的索引
50
+ */
51
+ static getGanZhiIndex(ganZhi: string): number;
52
+ /**
53
+ * 判断是否为阳遁
54
+ */
55
+ static isYangDun(yinYangDun: YinYangDun): boolean;
56
+ }
57
+ //# sourceMappingURL=JuShuCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JuShuCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JuShuCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,KAAK,EAAW,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQnG,MAAM,WAAW,WAAW;IAC1B,UAAU;IACV,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,IAAI,EAChB,WAAW,CAAC,EAAE,IAAI,GACjB,WAAW;IA6Bd;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAmBlC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmBnC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;CAGlD"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * 局数计算器
4
+ * 根据节气和置闰法确定阴阳遁和局数
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.JuShuCalculator = void 0;
8
+ const constants_1 = require("../data/constants");
9
+ /**
10
+ * 局数计算器
11
+ */
12
+ class JuShuCalculator {
13
+ /**
14
+ * 计算局数
15
+ * @param jieQi 当前节气名称
16
+ * @param dayGanZhi 日干支
17
+ * @param method 置闰方法
18
+ * @param jieQiDate 节气开始日期 (茅山法需要)
19
+ * @param currentDate 当前日期 (茅山法需要)
20
+ */
21
+ static calculate(jieQi, dayGanZhi, method, jieQiDate, currentDate) {
22
+ // 获取节气对应的阴阳遁和局数表
23
+ const jieQiInfo = constants_1.JIEQI_JU_MAP[jieQi];
24
+ if (!jieQiInfo) {
25
+ throw new Error(`未知节气: ${jieQi}`);
26
+ }
27
+ const { dun, ju } = jieQiInfo;
28
+ const yinYangDun = dun;
29
+ // 根据置闰方法计算元
30
+ let yuan;
31
+ if (method === 'chaibu') {
32
+ yuan = this.calculateYuanChaibu(dayGanZhi);
33
+ }
34
+ else {
35
+ yuan = this.calculateYuanMaoshan(jieQiDate, currentDate);
36
+ }
37
+ // 根据元获取对应局数
38
+ const yuanIdx = (0, constants_1.getYuanIndex)(yuan);
39
+ const juShu = ju[yuanIdx];
40
+ return {
41
+ yinYangDun,
42
+ juShu,
43
+ yuan,
44
+ };
45
+ }
46
+ /**
47
+ * 拆补法计算上中下元
48
+ * 根据日干支确定符头,从而确定上中下元
49
+ *
50
+ * 原理:
51
+ * - 每个节气 15 天分为三元,每元 5 天
52
+ * - 上元:符头为甲子、甲午(甲子旬或甲午旬的开头)
53
+ * - 中元:符头为甲戌、甲辰
54
+ * - 下元:符头为甲申、甲寅
55
+ */
56
+ static calculateYuanChaibu(dayGanZhi) {
57
+ const xunShou = (0, constants_1.getXunShou)(dayGanZhi);
58
+ // 根据旬首判断上中下元
59
+ switch (xunShou) {
60
+ case '甲子':
61
+ case '甲午':
62
+ return '上元';
63
+ case '甲戌':
64
+ case '甲辰':
65
+ return '中元';
66
+ case '甲申':
67
+ case '甲寅':
68
+ return '下元';
69
+ default:
70
+ return '上元';
71
+ }
72
+ }
73
+ /**
74
+ * 茅山法计算上中下元
75
+ * 根据节气交节后的天数确定
76
+ *
77
+ * 原理:
78
+ * - 节气交节后 1-5 天为上元
79
+ * - 节气交节后 6-10 天为中元
80
+ * - 节气交节后 11-15 天为下元
81
+ */
82
+ static calculateYuanMaoshan(jieQiDate, currentDate) {
83
+ // 使用 UTC 日期避免时区和时间精度问题
84
+ const jieQiDay = Date.UTC(jieQiDate.getFullYear(), jieQiDate.getMonth(), jieQiDate.getDate());
85
+ const currentDay = Date.UTC(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
86
+ const diffDays = Math.floor((currentDay - jieQiDay) / (1000 * 60 * 60 * 24)) + 1; // 交节当天算第1天
87
+ // 处理边界情况
88
+ if (diffDays < 1) {
89
+ return '上元'; // 节气当天之前,默认上元
90
+ }
91
+ else if (diffDays <= 5) {
92
+ return '上元';
93
+ }
94
+ else if (diffDays <= 10) {
95
+ return '中元';
96
+ }
97
+ else {
98
+ return '下元';
99
+ }
100
+ }
101
+ /**
102
+ * 根据日干支获取其在六十甲子中的索引
103
+ */
104
+ static getGanZhiIndex(ganZhi) {
105
+ return constants_1.JIA_ZI_60.indexOf(ganZhi);
106
+ }
107
+ /**
108
+ * 判断是否为阳遁
109
+ */
110
+ static isYangDun(yinYangDun) {
111
+ return yinYangDun === '阳遁';
112
+ }
113
+ }
114
+ exports.JuShuCalculator = JuShuCalculator;
115
+ //# sourceMappingURL=JuShuCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JuShuCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JuShuCalculator.ts"],"names":[],"mappings":"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"}