mingpan 0.1.2 → 0.1.4

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 (194) hide show
  1. package/README.md +120 -47
  2. package/dist/core/bazi/BaziCore.d.ts +7 -1
  3. package/dist/core/bazi/BaziCore.d.ts.map +1 -1
  4. package/dist/core/bazi/BaziCore.js +37 -11
  5. package/dist/core/bazi/BaziCore.js.map +1 -1
  6. package/dist/core/bazi/types.d.ts +4 -0
  7. package/dist/core/bazi/types.d.ts.map +1 -1
  8. package/dist/core/qimen/FlyingRule.d.ts +60 -0
  9. package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
  10. package/dist/core/qimen/FlyingRule.js +94 -0
  11. package/dist/core/qimen/FlyingRule.js.map +1 -0
  12. package/dist/core/qimen/GongMapping.d.ts +29 -0
  13. package/dist/core/qimen/GongMapping.d.ts.map +1 -0
  14. package/dist/core/qimen/GongMapping.js +83 -0
  15. package/dist/core/qimen/GongMapping.js.map +1 -0
  16. package/dist/core/qimen/RotatingRule.d.ts +76 -0
  17. package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
  18. package/dist/core/qimen/RotatingRule.js +126 -0
  19. package/dist/core/qimen/RotatingRule.js.map +1 -0
  20. package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
  21. package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
  22. package/dist/core/qimen/YinYangDunCalculator.js +79 -0
  23. package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
  24. package/dist/core/qimen/index.d.ts +10 -0
  25. package/dist/core/qimen/index.d.ts.map +1 -0
  26. package/dist/core/qimen/index.js +58 -0
  27. package/dist/core/qimen/index.js.map +1 -0
  28. package/dist/core/qimen/types.d.ts +19 -0
  29. package/dist/core/qimen/types.d.ts.map +1 -0
  30. package/dist/core/qimen/types.js +7 -0
  31. package/dist/core/qimen/types.js.map +1 -0
  32. package/dist/index.d.ts +10 -5
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +14 -1311
  35. package/dist/index.js.map +1 -1
  36. package/dist/output/fortuneTextRenderer.d.ts +8 -7
  37. package/dist/output/fortuneTextRenderer.d.ts.map +1 -1
  38. package/dist/output/fortuneTextRenderer.js +83 -21
  39. package/dist/output/fortuneTextRenderer.js.map +1 -1
  40. package/dist/output/qimenTextRenderer.d.ts +36 -0
  41. package/dist/output/qimenTextRenderer.d.ts.map +1 -0
  42. package/dist/output/qimenTextRenderer.js +230 -0
  43. package/dist/output/qimenTextRenderer.js.map +1 -0
  44. package/dist/server.d.ts +11 -0
  45. package/dist/server.d.ts.map +1 -0
  46. package/dist/server.js +33 -0
  47. package/dist/server.js.map +1 -0
  48. package/dist/services/bazi/BaziService.d.ts +1 -17
  49. package/dist/services/bazi/BaziService.d.ts.map +1 -1
  50. package/dist/services/bazi/BaziService.js +9 -194
  51. package/dist/services/bazi/BaziService.js.map +1 -1
  52. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +12 -12
  53. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -1
  54. package/dist/services/bazi/index.d.ts +0 -2
  55. package/dist/services/bazi/index.d.ts.map +1 -1
  56. package/dist/services/bazi/index.js +1 -5
  57. package/dist/services/bazi/index.js.map +1 -1
  58. package/dist/services/bazi/types.d.ts +4 -112
  59. package/dist/services/bazi/types.d.ts.map +1 -1
  60. package/dist/services/bazi/types.js +3 -102
  61. package/dist/services/bazi/types.js.map +1 -1
  62. package/dist/services/daliuren/DaliurenService.d.ts +11 -1
  63. package/dist/services/daliuren/DaliurenService.d.ts.map +1 -1
  64. package/dist/services/daliuren/DaliurenService.js +30 -0
  65. package/dist/services/daliuren/DaliurenService.js.map +1 -1
  66. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -1
  67. package/dist/services/daliuren/calculators/TianDiPanCalculator.js +3 -4
  68. package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -1
  69. package/dist/services/daliuren/data/constants.d.ts +7 -0
  70. package/dist/services/daliuren/data/constants.d.ts.map +1 -1
  71. package/dist/services/daliuren/data/constants.js +17 -1
  72. package/dist/services/daliuren/data/constants.js.map +1 -1
  73. package/dist/services/daliuren/types.d.ts +13 -0
  74. package/dist/services/daliuren/types.d.ts.map +1 -1
  75. package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -1
  76. package/dist/services/meihua/calculators/TiyongCalculator.js +6 -5
  77. package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -1
  78. package/dist/services/qimen/QimenService.d.ts +76 -0
  79. package/dist/services/qimen/QimenService.d.ts.map +1 -0
  80. package/dist/services/qimen/QimenService.js +393 -0
  81. package/dist/services/qimen/QimenService.js.map +1 -0
  82. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +45 -0
  83. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
  84. package/dist/services/qimen/calculators/BaMenCalculator.js +87 -0
  85. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
  86. package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
  87. package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
  88. package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
  89. package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
  90. package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
  91. package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
  92. package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
  93. package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
  94. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +49 -0
  95. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
  96. package/dist/services/qimen/calculators/JiuGongCalculator.js +68 -0
  97. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
  98. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +44 -0
  99. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
  100. package/dist/services/qimen/calculators/JiuXingCalculator.js +72 -0
  101. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
  102. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +60 -0
  103. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
  104. package/dist/services/qimen/calculators/JuShuCalculator.js +110 -0
  105. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
  106. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
  107. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
  108. package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
  109. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
  110. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +41 -0
  111. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
  112. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +73 -0
  113. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
  114. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
  115. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
  116. package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
  117. package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
  118. package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
  119. package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
  120. package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
  121. package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
  122. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +111 -0
  123. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
  124. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +232 -0
  125. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
  126. package/dist/services/qimen/data/constants.d.ts +105 -0
  127. package/dist/services/qimen/data/constants.d.ts.map +1 -0
  128. package/dist/services/qimen/data/constants.js +295 -0
  129. package/dist/services/qimen/data/constants.js.map +1 -0
  130. package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
  131. package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
  132. package/dist/services/qimen/data/shensha-rules.js +397 -0
  133. package/dist/services/qimen/data/shensha-rules.js.map +1 -0
  134. package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
  135. package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
  136. package/dist/services/qimen/data/yongshen-rules.js +365 -0
  137. package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
  138. package/dist/services/qimen/index.d.ts +20 -0
  139. package/dist/services/qimen/index.d.ts.map +1 -0
  140. package/dist/services/qimen/index.js +43 -0
  141. package/dist/services/qimen/index.js.map +1 -0
  142. package/dist/services/qimen/types.d.ts +316 -0
  143. package/dist/services/qimen/types.d.ts.map +1 -0
  144. package/dist/services/qimen/types.js +21 -0
  145. package/dist/services/qimen/types.js.map +1 -0
  146. package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
  147. package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
  148. package/dist/services/qimen/utils/gongUtils.js +164 -0
  149. package/dist/services/qimen/utils/gongUtils.js.map +1 -0
  150. package/dist/shared/logger.d.ts +5 -0
  151. package/dist/shared/logger.d.ts.map +1 -1
  152. package/dist/shared/logger.js +11 -4
  153. package/dist/shared/logger.js.map +1 -1
  154. package/dist/tools/baziTools.d.ts +13 -0
  155. package/dist/tools/baziTools.d.ts.map +1 -0
  156. package/dist/tools/baziTools.js +331 -0
  157. package/dist/tools/baziTools.js.map +1 -0
  158. package/dist/tools/divinationTools.d.ts +9 -0
  159. package/dist/tools/divinationTools.d.ts.map +1 -0
  160. package/dist/tools/divinationTools.js +209 -0
  161. package/dist/tools/divinationTools.js.map +1 -0
  162. package/dist/tools/qimenTools.d.ts +10 -0
  163. package/dist/tools/qimenTools.d.ts.map +1 -0
  164. package/dist/tools/qimenTools.js +132 -0
  165. package/dist/tools/qimenTools.js.map +1 -0
  166. package/dist/tools/schemas.d.ts +99 -0
  167. package/dist/tools/schemas.d.ts.map +1 -0
  168. package/dist/tools/schemas.js +162 -0
  169. package/dist/tools/schemas.js.map +1 -0
  170. package/dist/tools/ziweiTools.d.ts +14 -0
  171. package/dist/tools/ziweiTools.d.ts.map +1 -0
  172. package/dist/tools/ziweiTools.js +483 -0
  173. package/dist/tools/ziweiTools.js.map +1 -0
  174. package/dist/utils/timeNormalization.d.ts +42 -17
  175. package/dist/utils/timeNormalization.d.ts.map +1 -1
  176. package/dist/utils/timeNormalization.js +99 -41
  177. package/dist/utils/timeNormalization.js.map +1 -1
  178. package/package.json +15 -9
  179. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +0 -16
  180. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +0 -1
  181. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +0 -60
  182. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +0 -1
  183. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +0 -33
  184. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +0 -1
  185. package/dist/services/bazi/analyzers/NaYinAnalyzer.js +0 -209
  186. package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +0 -1
  187. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +0 -236
  188. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +0 -1
  189. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +0 -2079
  190. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +0 -1
  191. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +0 -46
  192. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +0 -1
  193. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +0 -260
  194. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 九宫映射常量
3
+ * Gong (palace) mapping constants for Qimen calculations
4
+ */
5
+ import type { GongWei, DiZhi, WuXing, TianGan } from './types';
6
+ /**
7
+ * 九宫名称 (洛书顺序)
8
+ * 1-坎、2-坤、3-震、4-巽、5-中、6-乾、7-兑、8-艮、9-离
9
+ */
10
+ export declare const GONG_NAMES: Record<GongWei, string>;
11
+ /**
12
+ * 九宫五行
13
+ */
14
+ export declare const GONG_WUXING: Record<GongWei, WuXing>;
15
+ /**
16
+ * 地支 -> 宫位映射
17
+ */
18
+ export declare const DI_ZHI_GONG: Record<DiZhi, GongWei>;
19
+ /**
20
+ * 宫位冲对映射表
21
+ * 坎(1)↔离(9), 震(3)↔兑(7), 巽(4)↔乾(6), 坤(2)↔艮(8)
22
+ */
23
+ export declare const CHONG_GONG_MAP: Record<GongWei, GongWei>;
24
+ /**
25
+ * 天干五合映射表(奇仪相合)
26
+ * 甲己合不在此表中,因为甲遁于六仪,不会出现在盘面上
27
+ */
28
+ export declare const GAN_HE_MAP: Partial<Record<TianGan, TianGan>>;
29
+ //# sourceMappingURL=GongMapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GongMapping.d.ts","sourceRoot":"","sources":["../../../src/core/qimen/GongMapping.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAU9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAU/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAa9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAUnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CASxD,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * 九宫映射常量
4
+ * Gong (palace) mapping constants for Qimen calculations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.GAN_HE_MAP = exports.CHONG_GONG_MAP = exports.DI_ZHI_GONG = exports.GONG_WUXING = exports.GONG_NAMES = void 0;
8
+ /**
9
+ * 九宫名称 (洛书顺序)
10
+ * 1-坎、2-坤、3-震、4-巽、5-中、6-乾、7-兑、8-艮、9-离
11
+ */
12
+ exports.GONG_NAMES = {
13
+ 1: '坎',
14
+ 2: '坤',
15
+ 3: '震',
16
+ 4: '巽',
17
+ 5: '中',
18
+ 6: '乾',
19
+ 7: '兑',
20
+ 8: '艮',
21
+ 9: '离',
22
+ };
23
+ /**
24
+ * 九宫五行
25
+ */
26
+ exports.GONG_WUXING = {
27
+ 1: '水', // 坎
28
+ 2: '土', // 坤
29
+ 3: '木', // 震
30
+ 4: '木', // 巽
31
+ 5: '土', // 中
32
+ 6: '金', // 乾
33
+ 7: '金', // 兑
34
+ 8: '土', // 艮
35
+ 9: '火', // 离
36
+ };
37
+ /**
38
+ * 地支 -> 宫位映射
39
+ */
40
+ exports.DI_ZHI_GONG = {
41
+ '子': 1,
42
+ '丑': 8,
43
+ '寅': 8,
44
+ '卯': 3,
45
+ '辰': 4,
46
+ '巳': 4,
47
+ '午': 9,
48
+ '未': 2,
49
+ '申': 2,
50
+ '酉': 7,
51
+ '戌': 6,
52
+ '亥': 6,
53
+ };
54
+ /**
55
+ * 宫位冲对映射表
56
+ * 坎(1)↔离(9), 震(3)↔兑(7), 巽(4)↔乾(6), 坤(2)↔艮(8)
57
+ */
58
+ exports.CHONG_GONG_MAP = {
59
+ 1: 9, // 坎 ↔ 离
60
+ 9: 1,
61
+ 3: 7, // 震 ↔ 兑
62
+ 7: 3,
63
+ 4: 6, // 巽 ↔ 乾
64
+ 6: 4,
65
+ 2: 8, // 坤 ↔ 艮
66
+ 8: 2,
67
+ 5: 5, // 中宫无对冲
68
+ };
69
+ /**
70
+ * 天干五合映射表(奇仪相合)
71
+ * 甲己合不在此表中,因为甲遁于六仪,不会出现在盘面上
72
+ */
73
+ exports.GAN_HE_MAP = {
74
+ '乙': '庚',
75
+ '庚': '乙',
76
+ '丙': '辛',
77
+ '辛': '丙',
78
+ '丁': '壬',
79
+ '壬': '丁',
80
+ '戊': '癸',
81
+ '癸': '戊',
82
+ };
83
+ //# sourceMappingURL=GongMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GongMapping.js","sourceRoot":"","sources":["../../../src/core/qimen/GongMapping.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;;GAGG;AACU,QAAA,UAAU,GAA4B;IACjD,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;CACP,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAA4B;IAClD,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;IACZ,CAAC,EAAE,GAAG,EAAE,IAAI;CACb,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAA2B;IACjD,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC;AAEF;;;GAGG;AACU,QAAA,cAAc,GAA6B;IACtD,CAAC,EAAE,CAAC,EAAE,QAAQ;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,QAAQ;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,QAAQ;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,QAAQ;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,QAAQ;CACf,CAAC;AAEF;;;GAGG;AACU,QAAA,UAAU,GAAsC;IAC3D,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 转盘式旋转规则
3
+ * Rotating rules for Zhuan Pan style Qimen calculations
4
+ *
5
+ * 转盘式与飞盘式的区别:
6
+ * - 飞盘式:按洛书数字顺序飞布 (1→8→3→4→9→2→7→6)
7
+ * - 转盘式:按物理方向旋转(九宫格上顺/逆时针)
8
+ *
9
+ * 九宫格物理布局:
10
+ * ```
11
+ * 巽4 离9 坤2
12
+ * 震3 中5 兑7
13
+ * 艮8 坎1 乾6
14
+ * ```
15
+ *
16
+ * 物理顺时针顺序(从坎1开始):
17
+ * 1(坎) → 8(艮) → 3(震) → 4(巽) → 9(离) → 2(坤) → 7(兑) → 6(乾) → 回到1
18
+ *
19
+ * 参考:《神奇之门》(张志春著)
20
+ */
21
+ import type { GongWei } from './types';
22
+ /**
23
+ * 物理顺时针旋转顺序 - 8宫版本(不含中宫)
24
+ * 从坎1开始,顺时针:坎→艮→震→巽→离→坤→兑→乾
25
+ */
26
+ export declare const PHYSICAL_CLOCKWISE_ORDER: GongWei[];
27
+ /**
28
+ * 物理逆时针旋转顺序 - 8宫版本(不含中宫)
29
+ * 从坎1开始,逆时针:坎→乾→兑→坤→离→巽→震→艮
30
+ */
31
+ export declare const PHYSICAL_COUNTER_CLOCKWISE_ORDER: GongWei[];
32
+ /**
33
+ * 中宫寄宫 (天禽寄坤二)
34
+ */
35
+ export declare const ZHONG_GONG_JI_ZHUAN: GongWei;
36
+ /**
37
+ * 根据宫位获取物理顺时针顺序中的索引
38
+ * @param gong 宫位 (1-9)
39
+ * @returns 索引 (0-7),中宫返回 -1
40
+ */
41
+ export declare function getPhysicalClockwiseIndex(gong: GongWei): number;
42
+ /**
43
+ * 根据索引获取物理顺时针方向的宫位
44
+ * @param index 索引(可以超过7,会自动取模)
45
+ * @returns 宫位
46
+ */
47
+ export declare function getPhysicalClockwiseGong(index: number): GongWei;
48
+ /**
49
+ * 根据宫位获取物理逆时针顺序中的索引
50
+ * @param gong 宫位 (1-9)
51
+ * @returns 索引 (0-7),中宫返回 -1
52
+ */
53
+ export declare function getPhysicalCounterClockwiseIndex(gong: GongWei): number;
54
+ /**
55
+ * 根据索引获取物理逆时针方向的宫位
56
+ * @param index 索引(可以超过7,会自动取模)
57
+ * @returns 宫位
58
+ */
59
+ export declare function getPhysicalCounterClockwiseGong(index: number): GongWei;
60
+ /**
61
+ * 转盘式旋转:从某宫开始旋转指定步数
62
+ * @param startGong 起始宫位
63
+ * @param steps 步数
64
+ * @param isYang 是否阳遁(阳遁顺时针,阴遁逆时针)
65
+ * @returns 目标宫位
66
+ */
67
+ export declare function rotate(startGong: GongWei, steps: number, isYang: boolean): GongWei;
68
+ /**
69
+ * 计算两宫之间的旋转步数
70
+ * @param fromGong 起始宫位
71
+ * @param toGong 目标宫位
72
+ * @param isYang 是否阳遁
73
+ * @returns 步数
74
+ */
75
+ export declare function getRotationSteps(fromGong: GongWei, toGong: GongWei, isYang: boolean): number;
76
+ //# sourceMappingURL=RotatingRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RotatingRule.d.ts","sourceRoot":"","sources":["../../../src/core/qimen/RotatingRule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,OAAO,EAA6B,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,OAAO,EAA6B,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAW,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAGtE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAelF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAa5F"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /**
3
+ * 转盘式旋转规则
4
+ * Rotating rules for Zhuan Pan style Qimen calculations
5
+ *
6
+ * 转盘式与飞盘式的区别:
7
+ * - 飞盘式:按洛书数字顺序飞布 (1→8→3→4→9→2→7→6)
8
+ * - 转盘式:按物理方向旋转(九宫格上顺/逆时针)
9
+ *
10
+ * 九宫格物理布局:
11
+ * ```
12
+ * 巽4 离9 坤2
13
+ * 震3 中5 兑7
14
+ * 艮8 坎1 乾6
15
+ * ```
16
+ *
17
+ * 物理顺时针顺序(从坎1开始):
18
+ * 1(坎) → 8(艮) → 3(震) → 4(巽) → 9(离) → 2(坤) → 7(兑) → 6(乾) → 回到1
19
+ *
20
+ * 参考:《神奇之门》(张志春著)
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.ZHONG_GONG_JI_ZHUAN = exports.PHYSICAL_COUNTER_CLOCKWISE_ORDER = exports.PHYSICAL_CLOCKWISE_ORDER = void 0;
24
+ exports.getPhysicalClockwiseIndex = getPhysicalClockwiseIndex;
25
+ exports.getPhysicalClockwiseGong = getPhysicalClockwiseGong;
26
+ exports.getPhysicalCounterClockwiseIndex = getPhysicalCounterClockwiseIndex;
27
+ exports.getPhysicalCounterClockwiseGong = getPhysicalCounterClockwiseGong;
28
+ exports.rotate = rotate;
29
+ exports.getRotationSteps = getRotationSteps;
30
+ /**
31
+ * 物理顺时针旋转顺序 - 8宫版本(不含中宫)
32
+ * 从坎1开始,顺时针:坎→艮→震→巽→离→坤→兑→乾
33
+ */
34
+ exports.PHYSICAL_CLOCKWISE_ORDER = [1, 8, 3, 4, 9, 2, 7, 6];
35
+ /**
36
+ * 物理逆时针旋转顺序 - 8宫版本(不含中宫)
37
+ * 从坎1开始,逆时针:坎→乾→兑→坤→离→巽→震→艮
38
+ */
39
+ exports.PHYSICAL_COUNTER_CLOCKWISE_ORDER = [1, 6, 7, 2, 9, 4, 3, 8];
40
+ /**
41
+ * 中宫寄宫 (天禽寄坤二)
42
+ */
43
+ exports.ZHONG_GONG_JI_ZHUAN = 2;
44
+ /**
45
+ * 根据宫位获取物理顺时针顺序中的索引
46
+ * @param gong 宫位 (1-9)
47
+ * @returns 索引 (0-7),中宫返回 -1
48
+ */
49
+ function getPhysicalClockwiseIndex(gong) {
50
+ if (gong === 5)
51
+ return -1;
52
+ return exports.PHYSICAL_CLOCKWISE_ORDER.indexOf(gong);
53
+ }
54
+ /**
55
+ * 根据索引获取物理顺时针方向的宫位
56
+ * @param index 索引(可以超过7,会自动取模)
57
+ * @returns 宫位
58
+ */
59
+ function getPhysicalClockwiseGong(index) {
60
+ const normalizedIndex = ((index % 8) + 8) % 8;
61
+ return exports.PHYSICAL_CLOCKWISE_ORDER[normalizedIndex];
62
+ }
63
+ /**
64
+ * 根据宫位获取物理逆时针顺序中的索引
65
+ * @param gong 宫位 (1-9)
66
+ * @returns 索引 (0-7),中宫返回 -1
67
+ */
68
+ function getPhysicalCounterClockwiseIndex(gong) {
69
+ if (gong === 5)
70
+ return -1;
71
+ return exports.PHYSICAL_COUNTER_CLOCKWISE_ORDER.indexOf(gong);
72
+ }
73
+ /**
74
+ * 根据索引获取物理逆时针方向的宫位
75
+ * @param index 索引(可以超过7,会自动取模)
76
+ * @returns 宫位
77
+ */
78
+ function getPhysicalCounterClockwiseGong(index) {
79
+ const normalizedIndex = ((index % 8) + 8) % 8;
80
+ return exports.PHYSICAL_COUNTER_CLOCKWISE_ORDER[normalizedIndex];
81
+ }
82
+ /**
83
+ * 转盘式旋转:从某宫开始旋转指定步数
84
+ * @param startGong 起始宫位
85
+ * @param steps 步数
86
+ * @param isYang 是否阳遁(阳遁顺时针,阴遁逆时针)
87
+ * @returns 目标宫位
88
+ */
89
+ function rotate(startGong, steps, isYang) {
90
+ let actualStart = startGong;
91
+ if (actualStart === 5) {
92
+ actualStart = exports.ZHONG_GONG_JI_ZHUAN; // 中宫寄坤二
93
+ }
94
+ if (isYang) {
95
+ // 阳遁顺时针
96
+ const startIdx = getPhysicalClockwiseIndex(actualStart);
97
+ return getPhysicalClockwiseGong(startIdx + steps);
98
+ }
99
+ else {
100
+ // 阴遁逆时针
101
+ const startIdx = getPhysicalCounterClockwiseIndex(actualStart);
102
+ return getPhysicalCounterClockwiseGong(startIdx + steps);
103
+ }
104
+ }
105
+ /**
106
+ * 计算两宫之间的旋转步数
107
+ * @param fromGong 起始宫位
108
+ * @param toGong 目标宫位
109
+ * @param isYang 是否阳遁
110
+ * @returns 步数
111
+ */
112
+ function getRotationSteps(fromGong, toGong, isYang) {
113
+ let actualFrom = fromGong === 5 ? exports.ZHONG_GONG_JI_ZHUAN : fromGong;
114
+ let actualTo = toGong === 5 ? exports.ZHONG_GONG_JI_ZHUAN : toGong;
115
+ if (isYang) {
116
+ const fromIdx = getPhysicalClockwiseIndex(actualFrom);
117
+ const toIdx = getPhysicalClockwiseIndex(actualTo);
118
+ return ((toIdx - fromIdx) % 8 + 8) % 8;
119
+ }
120
+ else {
121
+ const fromIdx = getPhysicalCounterClockwiseIndex(actualFrom);
122
+ const toIdx = getPhysicalCounterClockwiseIndex(actualTo);
123
+ return ((toIdx - fromIdx) % 8 + 8) % 8;
124
+ }
125
+ }
126
+ //# sourceMappingURL=RotatingRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RotatingRule.js","sourceRoot":"","sources":["../../../src/core/qimen/RotatingRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * 阴阳遁与局数计算
3
+ * Yin-Yang Dun and Ju number calculations
4
+ */
5
+ import type { JuShu, YinYangDun, YuanType } from './types';
6
+ /**
7
+ * 节气 -> [阳遁/阴遁, [上元局, 中元局, 下元局]]
8
+ * 阳遁:冬至 -> 夏至前
9
+ * 阴遁:夏至 -> 冬至前
10
+ */
11
+ export declare const JIEQI_JU_MAP: Record<string, {
12
+ dun: YinYangDun;
13
+ ju: [JuShu, JuShu, JuShu];
14
+ }>;
15
+ /**
16
+ * 根据节气判定阴阳遁
17
+ * @param jieQi 节气名称
18
+ * @returns 阴阳遁
19
+ */
20
+ export declare function getYinYangDun(jieQi: string): YinYangDun;
21
+ /**
22
+ * 根据节气和元获取局数
23
+ * @param jieQi 节气名称
24
+ * @param yuan 上中下元
25
+ * @returns 局数 (1-9)
26
+ */
27
+ export declare function getJuShu(jieQi: string, yuan: YuanType): JuShu;
28
+ //# sourceMappingURL=YinYangDunCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YinYangDunCalculator.d.ts","sourceRoot":"","sources":["../../../src/core/qimen/YinYangDunCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;CAAE,CA2BvF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAMvD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,CAO7D"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * 阴阳遁与局数计算
4
+ * Yin-Yang Dun and Ju number calculations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.JIEQI_JU_MAP = void 0;
8
+ exports.getYinYangDun = getYinYangDun;
9
+ exports.getJuShu = getJuShu;
10
+ /**
11
+ * 节气 -> [阳遁/阴遁, [上元局, 中元局, 下元局]]
12
+ * 阳遁:冬至 -> 夏至前
13
+ * 阴遁:夏至 -> 冬至前
14
+ */
15
+ exports.JIEQI_JU_MAP = {
16
+ // 阳遁(冬至后)
17
+ '冬至': { dun: '阳遁', ju: [1, 7, 4] },
18
+ '小寒': { dun: '阳遁', ju: [2, 8, 5] },
19
+ '大寒': { dun: '阳遁', ju: [3, 9, 6] },
20
+ '立春': { dun: '阳遁', ju: [8, 5, 2] },
21
+ '雨水': { dun: '阳遁', ju: [9, 6, 3] },
22
+ '惊蛰': { dun: '阳遁', ju: [1, 7, 4] },
23
+ '春分': { dun: '阳遁', ju: [3, 9, 6] },
24
+ '清明': { dun: '阳遁', ju: [4, 1, 7] },
25
+ '谷雨': { dun: '阳遁', ju: [5, 2, 8] },
26
+ '立夏': { dun: '阳遁', ju: [4, 1, 7] },
27
+ '小满': { dun: '阳遁', ju: [5, 2, 8] },
28
+ '芒种': { dun: '阳遁', ju: [6, 3, 9] },
29
+ // 阴遁(夏至后)
30
+ '夏至': { dun: '阴遁', ju: [9, 3, 6] },
31
+ '小暑': { dun: '阴遁', ju: [8, 2, 5] },
32
+ '大暑': { dun: '阴遁', ju: [7, 1, 4] },
33
+ '立秋': { dun: '阴遁', ju: [2, 5, 8] },
34
+ '处暑': { dun: '阴遁', ju: [1, 4, 7] },
35
+ '白露': { dun: '阴遁', ju: [9, 3, 6] },
36
+ '秋分': { dun: '阴遁', ju: [7, 1, 4] },
37
+ '寒露': { dun: '阴遁', ju: [6, 9, 3] },
38
+ '霜降': { dun: '阴遁', ju: [5, 8, 2] },
39
+ '立冬': { dun: '阴遁', ju: [6, 9, 3] },
40
+ '小雪': { dun: '阴遁', ju: [5, 8, 2] },
41
+ '大雪': { dun: '阴遁', ju: [4, 7, 1] },
42
+ };
43
+ /**
44
+ * 根据节气判定阴阳遁
45
+ * @param jieQi 节气名称
46
+ * @returns 阴阳遁
47
+ */
48
+ function getYinYangDun(jieQi) {
49
+ const info = exports.JIEQI_JU_MAP[jieQi];
50
+ if (!info) {
51
+ throw new Error(`未知节气: ${jieQi}`);
52
+ }
53
+ return info.dun;
54
+ }
55
+ /**
56
+ * 根据节气和元获取局数
57
+ * @param jieQi 节气名称
58
+ * @param yuan 上中下元
59
+ * @returns 局数 (1-9)
60
+ */
61
+ function getJuShu(jieQi, yuan) {
62
+ const info = exports.JIEQI_JU_MAP[jieQi];
63
+ if (!info) {
64
+ throw new Error(`未知节气: ${jieQi}`);
65
+ }
66
+ const yuanIndex = getYuanIndex(yuan);
67
+ return info.ju[yuanIndex];
68
+ }
69
+ /**
70
+ * 根据元获取局数索引
71
+ */
72
+ function getYuanIndex(yuan) {
73
+ switch (yuan) {
74
+ case '上元': return 0;
75
+ case '中元': return 1;
76
+ case '下元': return 2;
77
+ }
78
+ }
79
+ //# sourceMappingURL=YinYangDunCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YinYangDunCalculator.js","sourceRoot":"","sources":["../../../src/core/qimen/YinYangDunCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA2CH,sCAMC;AAQD,4BAOC;AA5DD;;;;GAIG;AACU,QAAA,YAAY,GAAmE;IAC1F,UAAU;IACV,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,UAAU;IACV,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CACnC,CAAC;AAEF;;;;GAIG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,IAAI,GAAG,oBAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,KAAa,EAAE,IAAc;IACpD,MAAM,IAAI,GAAG,oBAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAc;IAClC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 奇门遁甲核心模块导出
3
+ * Core Qimen module exports
4
+ */
5
+ export * from './types';
6
+ export { LUOSHU_ORDER, LUOSHU_ORDER_9, ZHONG_GONG_JI, getLuoShuIndex, getLuoShuGong, getLuoShuIndex9, getLuoShuGong9, flyForward, flyBackward, } from './FlyingRule';
7
+ export { PHYSICAL_CLOCKWISE_ORDER, PHYSICAL_COUNTER_CLOCKWISE_ORDER, ZHONG_GONG_JI_ZHUAN, getPhysicalClockwiseIndex, getPhysicalClockwiseGong, getPhysicalCounterClockwiseIndex, getPhysicalCounterClockwiseGong, rotate, getRotationSteps, } from './RotatingRule';
8
+ export { GONG_NAMES, GONG_WUXING, DI_ZHI_GONG, CHONG_GONG_MAP, GAN_HE_MAP, } from './GongMapping';
9
+ export { JIEQI_JU_MAP, getYinYangDun, getJuShu, } from './YinYangDunCalculator';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/qimen/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,EACN,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GACT,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * 奇门遁甲核心模块导出
4
+ * Core Qimen module exports
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.getJuShu = exports.getYinYangDun = exports.JIEQI_JU_MAP = exports.GAN_HE_MAP = exports.CHONG_GONG_MAP = exports.DI_ZHI_GONG = exports.GONG_WUXING = exports.GONG_NAMES = exports.getRotationSteps = exports.rotate = exports.getPhysicalCounterClockwiseGong = exports.getPhysicalCounterClockwiseIndex = exports.getPhysicalClockwiseGong = exports.getPhysicalClockwiseIndex = exports.ZHONG_GONG_JI_ZHUAN = exports.PHYSICAL_COUNTER_CLOCKWISE_ORDER = exports.PHYSICAL_CLOCKWISE_ORDER = exports.flyBackward = exports.flyForward = exports.getLuoShuGong9 = exports.getLuoShuIndex9 = exports.getLuoShuGong = exports.getLuoShuIndex = exports.ZHONG_GONG_JI = exports.LUOSHU_ORDER_9 = exports.LUOSHU_ORDER = void 0;
22
+ // Types
23
+ __exportStar(require("./types"), exports);
24
+ // Flying rules (飞盘式)
25
+ var FlyingRule_1 = require("./FlyingRule");
26
+ Object.defineProperty(exports, "LUOSHU_ORDER", { enumerable: true, get: function () { return FlyingRule_1.LUOSHU_ORDER; } });
27
+ Object.defineProperty(exports, "LUOSHU_ORDER_9", { enumerable: true, get: function () { return FlyingRule_1.LUOSHU_ORDER_9; } });
28
+ Object.defineProperty(exports, "ZHONG_GONG_JI", { enumerable: true, get: function () { return FlyingRule_1.ZHONG_GONG_JI; } });
29
+ Object.defineProperty(exports, "getLuoShuIndex", { enumerable: true, get: function () { return FlyingRule_1.getLuoShuIndex; } });
30
+ Object.defineProperty(exports, "getLuoShuGong", { enumerable: true, get: function () { return FlyingRule_1.getLuoShuGong; } });
31
+ Object.defineProperty(exports, "getLuoShuIndex9", { enumerable: true, get: function () { return FlyingRule_1.getLuoShuIndex9; } });
32
+ Object.defineProperty(exports, "getLuoShuGong9", { enumerable: true, get: function () { return FlyingRule_1.getLuoShuGong9; } });
33
+ Object.defineProperty(exports, "flyForward", { enumerable: true, get: function () { return FlyingRule_1.flyForward; } });
34
+ Object.defineProperty(exports, "flyBackward", { enumerable: true, get: function () { return FlyingRule_1.flyBackward; } });
35
+ // Rotating rules (转盘式)
36
+ var RotatingRule_1 = require("./RotatingRule");
37
+ Object.defineProperty(exports, "PHYSICAL_CLOCKWISE_ORDER", { enumerable: true, get: function () { return RotatingRule_1.PHYSICAL_CLOCKWISE_ORDER; } });
38
+ Object.defineProperty(exports, "PHYSICAL_COUNTER_CLOCKWISE_ORDER", { enumerable: true, get: function () { return RotatingRule_1.PHYSICAL_COUNTER_CLOCKWISE_ORDER; } });
39
+ Object.defineProperty(exports, "ZHONG_GONG_JI_ZHUAN", { enumerable: true, get: function () { return RotatingRule_1.ZHONG_GONG_JI_ZHUAN; } });
40
+ Object.defineProperty(exports, "getPhysicalClockwiseIndex", { enumerable: true, get: function () { return RotatingRule_1.getPhysicalClockwiseIndex; } });
41
+ Object.defineProperty(exports, "getPhysicalClockwiseGong", { enumerable: true, get: function () { return RotatingRule_1.getPhysicalClockwiseGong; } });
42
+ Object.defineProperty(exports, "getPhysicalCounterClockwiseIndex", { enumerable: true, get: function () { return RotatingRule_1.getPhysicalCounterClockwiseIndex; } });
43
+ Object.defineProperty(exports, "getPhysicalCounterClockwiseGong", { enumerable: true, get: function () { return RotatingRule_1.getPhysicalCounterClockwiseGong; } });
44
+ Object.defineProperty(exports, "rotate", { enumerable: true, get: function () { return RotatingRule_1.rotate; } });
45
+ Object.defineProperty(exports, "getRotationSteps", { enumerable: true, get: function () { return RotatingRule_1.getRotationSteps; } });
46
+ // Gong mappings
47
+ var GongMapping_1 = require("./GongMapping");
48
+ Object.defineProperty(exports, "GONG_NAMES", { enumerable: true, get: function () { return GongMapping_1.GONG_NAMES; } });
49
+ Object.defineProperty(exports, "GONG_WUXING", { enumerable: true, get: function () { return GongMapping_1.GONG_WUXING; } });
50
+ Object.defineProperty(exports, "DI_ZHI_GONG", { enumerable: true, get: function () { return GongMapping_1.DI_ZHI_GONG; } });
51
+ Object.defineProperty(exports, "CHONG_GONG_MAP", { enumerable: true, get: function () { return GongMapping_1.CHONG_GONG_MAP; } });
52
+ Object.defineProperty(exports, "GAN_HE_MAP", { enumerable: true, get: function () { return GongMapping_1.GAN_HE_MAP; } });
53
+ // Yin-Yang Dun calculations
54
+ var YinYangDunCalculator_1 = require("./YinYangDunCalculator");
55
+ Object.defineProperty(exports, "JIEQI_JU_MAP", { enumerable: true, get: function () { return YinYangDunCalculator_1.JIEQI_JU_MAP; } });
56
+ Object.defineProperty(exports, "getYinYangDun", { enumerable: true, get: function () { return YinYangDunCalculator_1.getYinYangDun; } });
57
+ Object.defineProperty(exports, "getJuShu", { enumerable: true, get: function () { return YinYangDunCalculator_1.getJuShu; } });
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/qimen/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,0CAAwB;AAExB,qBAAqB;AACrB,2CAUsB;AATpB,0GAAA,YAAY,OAAA;AACZ,4GAAA,cAAc,OAAA;AACd,2GAAA,aAAa,OAAA;AACb,4GAAA,cAAc,OAAA;AACd,2GAAA,aAAa,OAAA;AACb,6GAAA,eAAe,OAAA;AACf,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,yGAAA,WAAW,OAAA;AAGb,uBAAuB;AACvB,+CAUwB;AATtB,wHAAA,wBAAwB,OAAA;AACxB,gIAAA,gCAAgC,OAAA;AAChC,mHAAA,mBAAmB,OAAA;AACnB,yHAAA,yBAAyB,OAAA;AACzB,wHAAA,wBAAwB,OAAA;AACxB,gIAAA,gCAAgC,OAAA;AAChC,+HAAA,+BAA+B,OAAA;AAC/B,sGAAA,MAAM,OAAA;AACN,gHAAA,gBAAgB,OAAA;AAGlB,gBAAgB;AAChB,6CAMuB;AALrB,yGAAA,UAAU,OAAA;AACV,0GAAA,WAAW,OAAA;AACX,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AACd,yGAAA,UAAU,OAAA;AAGZ,4BAA4B;AAC5B,+DAIgC;AAH9B,oHAAA,YAAY,OAAA;AACZ,qHAAA,aAAa,OAAA;AACb,gHAAA,QAAQ,OAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 奇门遁甲核心类型定义
3
+ * Core layer types for Qimen calculations
4
+ */
5
+ /** 十天干 */
6
+ export type TianGan = '甲' | '乙' | '丙' | '丁' | '戊' | '己' | '庚' | '辛' | '壬' | '癸';
7
+ /** 十二地支 */
8
+ export type DiZhi = '子' | '丑' | '寅' | '卯' | '辰' | '巳' | '午' | '未' | '申' | '酉' | '戌' | '亥';
9
+ /** 五行 */
10
+ export type WuXing = '木' | '火' | '土' | '金' | '水';
11
+ /** 宫位 (1-9,对应洛书九宫) */
12
+ export type GongWei = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
13
+ /** 局数 (1-9) */
14
+ export type JuShu = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
15
+ /** 阴阳遁 */
16
+ export type YinYangDun = '阳遁' | '阴遁';
17
+ /** 上中下元 */
18
+ export type YuanType = '上元' | '中元' | '下元';
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/qimen/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU;AACV,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhF,WAAW;AACX,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE1F,SAAS;AACT,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjD,sBAAsB;AACtB,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAExD,eAAe;AACf,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtD,UAAU;AACV,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * 奇门遁甲核心类型定义
4
+ * Core layer types for Qimen calculations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/qimen/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
package/dist/index.d.ts CHANGED
@@ -2,12 +2,17 @@
2
2
  /**
3
3
  * Mingpan MCP Server
4
4
  *
5
- * MCP service for accurate BaZi (八字) and ZiWei (紫微) chart calculations.
6
- * Takes birth date/time and outputs structured fortune-telling information.
5
+ * 中華傳統術數 MCP 服務:八字、紫微斗數、六爻、梅花易數、大六壬、奇門遁甲。
6
+ * AI 應用提供確定性排盤與占卜起卦的計算能力。
7
7
  *
8
- * Version 1.1.0: Added fortune list tools for DaYun, LiuNian, LiuYue, LiuRi
9
- * - 八字流月 uses 干支月 (solar term months)
10
- * - 紫微流月 uses 农历月 (lunar months)
8
+ * 架構:
9
+ * - src/tools/ MCP 工具註冊(按領域拆分,共享 schema tools/schemas.ts)
10
+ * - src/services/ 業務計算服務
11
+ * - src/core/ 純計算核心(曆法、規則)
12
+ * - src/output/ 文本渲染
13
+ *
14
+ * 時間口徑:內部規範表示為北京時間(UTC+8);
15
+ * 入口層統一完成農曆轉換與時區換算(見 utils/timeNormalization.ts)。
11
16
  */
12
17
  export {};
13
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}