mingpan 0.1.1 → 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 (239) hide show
  1. package/README.md +116 -42
  2. package/dist/core/bazi/types.d.ts +0 -1
  3. package/dist/core/bazi/types.d.ts.map +1 -1
  4. package/dist/core/qimen/FlyingRule.d.ts +60 -0
  5. package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
  6. package/dist/core/qimen/FlyingRule.js +94 -0
  7. package/dist/core/qimen/FlyingRule.js.map +1 -0
  8. package/dist/core/qimen/GongMapping.d.ts +29 -0
  9. package/dist/core/qimen/GongMapping.d.ts.map +1 -0
  10. package/dist/core/qimen/GongMapping.js +83 -0
  11. package/dist/core/qimen/GongMapping.js.map +1 -0
  12. package/dist/core/qimen/RotatingRule.d.ts +76 -0
  13. package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
  14. package/dist/core/qimen/RotatingRule.js +126 -0
  15. package/dist/core/qimen/RotatingRule.js.map +1 -0
  16. package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
  17. package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
  18. package/dist/core/qimen/YinYangDunCalculator.js +79 -0
  19. package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
  20. package/dist/core/qimen/index.d.ts +10 -0
  21. package/dist/core/qimen/index.d.ts.map +1 -0
  22. package/dist/core/qimen/index.js +58 -0
  23. package/dist/core/qimen/index.js.map +1 -0
  24. package/dist/core/qimen/types.d.ts +19 -0
  25. package/dist/core/qimen/types.d.ts.map +1 -0
  26. package/dist/core/qimen/types.js +7 -0
  27. package/dist/core/qimen/types.js.map +1 -0
  28. package/dist/index.js +665 -164
  29. package/dist/index.js.map +1 -1
  30. package/dist/output/daliurenTextRenderer.d.ts +23 -0
  31. package/dist/output/daliurenTextRenderer.d.ts.map +1 -0
  32. package/dist/output/daliurenTextRenderer.js +109 -0
  33. package/dist/output/daliurenTextRenderer.js.map +1 -0
  34. package/dist/output/liuyaoTextRenderer.d.ts +12 -0
  35. package/dist/output/liuyaoTextRenderer.d.ts.map +1 -0
  36. package/dist/output/liuyaoTextRenderer.js +148 -0
  37. package/dist/output/liuyaoTextRenderer.js.map +1 -0
  38. package/dist/output/meihuaTextRenderer.d.ts +12 -0
  39. package/dist/output/meihuaTextRenderer.d.ts.map +1 -0
  40. package/dist/output/meihuaTextRenderer.js +53 -0
  41. package/dist/output/meihuaTextRenderer.js.map +1 -0
  42. package/dist/output/qimenTextRenderer.d.ts +40 -0
  43. package/dist/output/qimenTextRenderer.d.ts.map +1 -0
  44. package/dist/output/qimenTextRenderer.js +363 -0
  45. package/dist/output/qimenTextRenderer.js.map +1 -0
  46. package/dist/services/bazi/types.d.ts +0 -2
  47. package/dist/services/bazi/types.d.ts.map +1 -1
  48. package/dist/services/bazi/types.js.map +1 -1
  49. package/dist/services/daliuren/DaliurenService.d.ts +24 -0
  50. package/dist/services/daliuren/DaliurenService.d.ts.map +1 -0
  51. package/dist/services/daliuren/DaliurenService.js +67 -0
  52. package/dist/services/daliuren/DaliurenService.js.map +1 -0
  53. package/dist/services/daliuren/calculators/SanChuanCalculator.d.ts +87 -0
  54. package/dist/services/daliuren/calculators/SanChuanCalculator.d.ts.map +1 -0
  55. package/dist/services/daliuren/calculators/SanChuanCalculator.js +443 -0
  56. package/dist/services/daliuren/calculators/SanChuanCalculator.js.map +1 -0
  57. package/dist/services/daliuren/calculators/ShenShaCalculator.d.ts +33 -0
  58. package/dist/services/daliuren/calculators/ShenShaCalculator.d.ts.map +1 -0
  59. package/dist/services/daliuren/calculators/ShenShaCalculator.js +92 -0
  60. package/dist/services/daliuren/calculators/ShenShaCalculator.js.map +1 -0
  61. package/dist/services/daliuren/calculators/SiKeCalculator.d.ts +35 -0
  62. package/dist/services/daliuren/calculators/SiKeCalculator.d.ts.map +1 -0
  63. package/dist/services/daliuren/calculators/SiKeCalculator.js +121 -0
  64. package/dist/services/daliuren/calculators/SiKeCalculator.js.map +1 -0
  65. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts +41 -0
  66. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -0
  67. package/dist/services/daliuren/calculators/TianDiPanCalculator.js +138 -0
  68. package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -0
  69. package/dist/services/daliuren/data/constants.d.ts +62 -0
  70. package/dist/services/daliuren/data/constants.d.ts.map +1 -0
  71. package/dist/services/daliuren/data/constants.js +240 -0
  72. package/dist/services/daliuren/data/constants.js.map +1 -0
  73. package/dist/services/daliuren/index.d.ts +11 -0
  74. package/dist/services/daliuren/index.d.ts.map +1 -0
  75. package/dist/services/daliuren/index.js +33 -0
  76. package/dist/services/daliuren/index.js.map +1 -0
  77. package/dist/services/daliuren/types.d.ts +152 -0
  78. package/dist/services/daliuren/types.d.ts.map +1 -0
  79. package/dist/services/daliuren/types.js +17 -0
  80. package/dist/services/daliuren/types.js.map +1 -0
  81. package/dist/services/liuyao/LiuyaoService.d.ts +37 -0
  82. package/dist/services/liuyao/LiuyaoService.d.ts.map +1 -0
  83. package/dist/services/liuyao/LiuyaoService.js +214 -0
  84. package/dist/services/liuyao/LiuyaoService.js.map +1 -0
  85. package/dist/services/liuyao/calculators/FushenCalculator.d.ts +40 -0
  86. package/dist/services/liuyao/calculators/FushenCalculator.d.ts.map +1 -0
  87. package/dist/services/liuyao/calculators/FushenCalculator.js +124 -0
  88. package/dist/services/liuyao/calculators/FushenCalculator.js.map +1 -0
  89. package/dist/services/liuyao/calculators/JintuishenCalculator.d.ts +37 -0
  90. package/dist/services/liuyao/calculators/JintuishenCalculator.d.ts.map +1 -0
  91. package/dist/services/liuyao/calculators/JintuishenCalculator.js +86 -0
  92. package/dist/services/liuyao/calculators/JintuishenCalculator.js.map +1 -0
  93. package/dist/services/liuyao/calculators/LiuqinCalculator.d.ts +24 -0
  94. package/dist/services/liuyao/calculators/LiuqinCalculator.d.ts.map +1 -0
  95. package/dist/services/liuyao/calculators/LiuqinCalculator.js +75 -0
  96. package/dist/services/liuyao/calculators/LiuqinCalculator.js.map +1 -0
  97. package/dist/services/liuyao/calculators/LiushenCalculator.d.ts +29 -0
  98. package/dist/services/liuyao/calculators/LiushenCalculator.d.ts.map +1 -0
  99. package/dist/services/liuyao/calculators/LiushenCalculator.js +58 -0
  100. package/dist/services/liuyao/calculators/LiushenCalculator.js.map +1 -0
  101. package/dist/services/liuyao/calculators/NajiaCalculator.d.ts +55 -0
  102. package/dist/services/liuyao/calculators/NajiaCalculator.d.ts.map +1 -0
  103. package/dist/services/liuyao/calculators/NajiaCalculator.js +87 -0
  104. package/dist/services/liuyao/calculators/NajiaCalculator.js.map +1 -0
  105. package/dist/services/liuyao/calculators/WangshuaiCalculator.d.ts +43 -0
  106. package/dist/services/liuyao/calculators/WangshuaiCalculator.d.ts.map +1 -0
  107. package/dist/services/liuyao/calculators/WangshuaiCalculator.js +100 -0
  108. package/dist/services/liuyao/calculators/WangshuaiCalculator.js.map +1 -0
  109. package/dist/services/liuyao/calculators/XunkongCalculator.d.ts +30 -0
  110. package/dist/services/liuyao/calculators/XunkongCalculator.d.ts.map +1 -0
  111. package/dist/services/liuyao/calculators/XunkongCalculator.js +58 -0
  112. package/dist/services/liuyao/calculators/XunkongCalculator.js.map +1 -0
  113. package/dist/services/liuyao/data/guagong.d.ts +94 -0
  114. package/dist/services/liuyao/data/guagong.d.ts.map +1 -0
  115. package/dist/services/liuyao/data/guagong.js +317 -0
  116. package/dist/services/liuyao/data/guagong.js.map +1 -0
  117. package/dist/services/liuyao/index.d.ts +13 -0
  118. package/dist/services/liuyao/index.d.ts.map +1 -0
  119. package/dist/services/liuyao/index.js +29 -0
  120. package/dist/services/liuyao/index.js.map +1 -0
  121. package/dist/services/liuyao/types.d.ts +154 -0
  122. package/dist/services/liuyao/types.d.ts.map +1 -0
  123. package/dist/services/liuyao/types.js +11 -0
  124. package/dist/services/liuyao/types.js.map +1 -0
  125. package/dist/services/meihua/MeihuaService.d.ts +32 -0
  126. package/dist/services/meihua/MeihuaService.d.ts.map +1 -0
  127. package/dist/services/meihua/MeihuaService.js +176 -0
  128. package/dist/services/meihua/MeihuaService.js.map +1 -0
  129. package/dist/services/meihua/calculators/BianguaCalculator.d.ts +21 -0
  130. package/dist/services/meihua/calculators/BianguaCalculator.d.ts.map +1 -0
  131. package/dist/services/meihua/calculators/BianguaCalculator.js +46 -0
  132. package/dist/services/meihua/calculators/BianguaCalculator.js.map +1 -0
  133. package/dist/services/meihua/calculators/HuguaCalculator.d.ts +22 -0
  134. package/dist/services/meihua/calculators/HuguaCalculator.d.ts.map +1 -0
  135. package/dist/services/meihua/calculators/HuguaCalculator.js +46 -0
  136. package/dist/services/meihua/calculators/HuguaCalculator.js.map +1 -0
  137. package/dist/services/meihua/calculators/QiguaCalculator.d.ts +40 -0
  138. package/dist/services/meihua/calculators/QiguaCalculator.d.ts.map +1 -0
  139. package/dist/services/meihua/calculators/QiguaCalculator.js +105 -0
  140. package/dist/services/meihua/calculators/QiguaCalculator.js.map +1 -0
  141. package/dist/services/meihua/calculators/TiyongCalculator.d.ts +34 -0
  142. package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -0
  143. package/dist/services/meihua/calculators/TiyongCalculator.js +105 -0
  144. package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -0
  145. package/dist/services/meihua/data/bagua.d.ts +19 -0
  146. package/dist/services/meihua/data/bagua.d.ts.map +1 -0
  147. package/dist/services/meihua/data/bagua.js +81 -0
  148. package/dist/services/meihua/data/bagua.js.map +1 -0
  149. package/dist/services/meihua/index.d.ts +11 -0
  150. package/dist/services/meihua/index.d.ts.map +1 -0
  151. package/dist/services/meihua/index.js +27 -0
  152. package/dist/services/meihua/index.js.map +1 -0
  153. package/dist/services/meihua/types.d.ts +95 -0
  154. package/dist/services/meihua/types.d.ts.map +1 -0
  155. package/dist/services/meihua/types.js +6 -0
  156. package/dist/services/meihua/types.js.map +1 -0
  157. package/dist/services/qimen/QimenService.d.ts +93 -0
  158. package/dist/services/qimen/QimenService.d.ts.map +1 -0
  159. package/dist/services/qimen/QimenService.js +427 -0
  160. package/dist/services/qimen/QimenService.js.map +1 -0
  161. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +53 -0
  162. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
  163. package/dist/services/qimen/calculators/BaMenCalculator.js +105 -0
  164. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
  165. package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
  166. package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
  167. package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
  168. package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
  169. package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
  170. package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
  171. package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
  172. package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
  173. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +56 -0
  174. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
  175. package/dist/services/qimen/calculators/JiuGongCalculator.js +98 -0
  176. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
  177. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +54 -0
  178. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
  179. package/dist/services/qimen/calculators/JiuXingCalculator.js +117 -0
  180. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
  181. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +57 -0
  182. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
  183. package/dist/services/qimen/calculators/JuShuCalculator.js +115 -0
  184. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
  185. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
  186. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
  187. package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
  188. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
  189. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +50 -0
  190. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
  191. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +86 -0
  192. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
  193. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
  194. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
  195. package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
  196. package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
  197. package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
  198. package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
  199. package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
  200. package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
  201. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +78 -0
  202. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +1 -0
  203. package/dist/services/qimen/calculators/ZeRiCalculator.js +431 -0
  204. package/dist/services/qimen/calculators/ZeRiCalculator.js.map +1 -0
  205. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +118 -0
  206. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
  207. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +260 -0
  208. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
  209. package/dist/services/qimen/data/constants.d.ts +105 -0
  210. package/dist/services/qimen/data/constants.d.ts.map +1 -0
  211. package/dist/services/qimen/data/constants.js +295 -0
  212. package/dist/services/qimen/data/constants.js.map +1 -0
  213. package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
  214. package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
  215. package/dist/services/qimen/data/shensha-rules.js +397 -0
  216. package/dist/services/qimen/data/shensha-rules.js.map +1 -0
  217. package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
  218. package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
  219. package/dist/services/qimen/data/yongshen-rules.js +365 -0
  220. package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
  221. package/dist/services/qimen/index.d.ts +20 -0
  222. package/dist/services/qimen/index.d.ts.map +1 -0
  223. package/dist/services/qimen/index.js +43 -0
  224. package/dist/services/qimen/index.js.map +1 -0
  225. package/dist/services/qimen/types.d.ts +390 -0
  226. package/dist/services/qimen/types.d.ts.map +1 -0
  227. package/dist/services/qimen/types.js +20 -0
  228. package/dist/services/qimen/types.js.map +1 -0
  229. package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
  230. package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
  231. package/dist/services/qimen/utils/gongUtils.js +164 -0
  232. package/dist/services/qimen/utils/gongUtils.js.map +1 -0
  233. package/dist/shared/types.d.ts +0 -1
  234. package/dist/shared/types.d.ts.map +1 -1
  235. package/dist/utils/timeNormalization.d.ts +48 -0
  236. package/dist/utils/timeNormalization.d.ts.map +1 -0
  237. package/dist/utils/timeNormalization.js +69 -0
  238. package/dist/utils/timeNormalization.js.map +1 -0
  239. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 六神計算器
3
+ *
4
+ * 六神(六獸)按日干起:
5
+ * - 甲乙日:青龍起初爻
6
+ * - 丙丁日:朱雀起初爻
7
+ * - 戊日:勾陳起初爻
8
+ * - 己日:螣蛇起初爻
9
+ * - 庚辛日:白虎起初爻
10
+ * - 壬癸日:玄武起初爻
11
+ *
12
+ * 順序:青龍 → 朱雀 → 勾陳 → 螣蛇 → 白虎 → 玄武
13
+ */
14
+ import { TianGan, LiuShen } from '../types';
15
+ export declare class LiushenCalculator {
16
+ /**
17
+ * 計算某爻的六神
18
+ * @param dayStem 日干
19
+ * @param position 爻位(1-6,自下而上)
20
+ */
21
+ static calculate(dayStem: TianGan, position: number): LiuShen;
22
+ /**
23
+ * 計算全卦六爻的六神
24
+ * @param dayStem 日干
25
+ * @returns 六爻六神(自下而上)
26
+ */
27
+ static calculateAll(dayStem: TianGan): LiuShen[];
28
+ }
29
+ //# sourceMappingURL=LiushenCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiushenCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/LiushenCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAmB5C,qBAAa,iBAAiB;IAC5B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAO7D;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE;CAOjD"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * 六神計算器
4
+ *
5
+ * 六神(六獸)按日干起:
6
+ * - 甲乙日:青龍起初爻
7
+ * - 丙丁日:朱雀起初爻
8
+ * - 戊日:勾陳起初爻
9
+ * - 己日:螣蛇起初爻
10
+ * - 庚辛日:白虎起初爻
11
+ * - 壬癸日:玄武起初爻
12
+ *
13
+ * 順序:青龍 → 朱雀 → 勾陳 → 螣蛇 → 白虎 → 玄武
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.LiushenCalculator = void 0;
17
+ /** 六神順序 */
18
+ const LIUSHEN_ORDER = ['青龍', '朱雀', '勾陳', '螣蛇', '白虎', '玄武'];
19
+ /** 日干對應的起始六神索引 */
20
+ const STEM_TO_START_INDEX = {
21
+ '甲': 0, // 青龍
22
+ '乙': 0, // 青龍
23
+ '丙': 1, // 朱雀
24
+ '丁': 1, // 朱雀
25
+ '戊': 2, // 勾陳
26
+ '己': 3, // 螣蛇
27
+ '庚': 4, // 白虎
28
+ '辛': 4, // 白虎
29
+ '壬': 5, // 玄武
30
+ '癸': 5, // 玄武
31
+ };
32
+ class LiushenCalculator {
33
+ /**
34
+ * 計算某爻的六神
35
+ * @param dayStem 日干
36
+ * @param position 爻位(1-6,自下而上)
37
+ */
38
+ static calculate(dayStem, position) {
39
+ const startIndex = STEM_TO_START_INDEX[dayStem];
40
+ // 初爻為起始六神,依次向上
41
+ const index = (startIndex + position - 1) % 6;
42
+ return LIUSHEN_ORDER[index];
43
+ }
44
+ /**
45
+ * 計算全卦六爻的六神
46
+ * @param dayStem 日干
47
+ * @returns 六爻六神(自下而上)
48
+ */
49
+ static calculateAll(dayStem) {
50
+ const results = [];
51
+ for (let i = 1; i <= 6; i++) {
52
+ results.push(this.calculate(dayStem, i));
53
+ }
54
+ return results;
55
+ }
56
+ }
57
+ exports.LiushenCalculator = LiushenCalculator;
58
+ //# sourceMappingURL=LiushenCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiushenCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/LiushenCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAIH,WAAW;AACX,MAAM,aAAa,GAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEtE,kBAAkB;AAClB,MAAM,mBAAmB,GAA4B;IACnD,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;CACd,CAAC;AAEF,MAAa,iBAAiB;IAC5B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,OAAgB,EAAE,QAAgB;QACjD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAChD,eAAe;QACf,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAgB;QAClC,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAzBD,8CAyBC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 納甲計算器
3
+ *
4
+ * 京房納甲體系:
5
+ * - 根據卦象確定每爻的地支
6
+ * - 地支決定五行屬性
7
+ */
8
+ import { BaGua, DiZhi, WuXing, YaoValue, YinYang } from '../types';
9
+ export interface NaJiaResult {
10
+ /** 地支 */
11
+ diZhi: DiZhi;
12
+ /** 五行 */
13
+ wuXing: WuXing;
14
+ }
15
+ export declare class NajiaCalculator {
16
+ /**
17
+ * 計算單爻的納甲
18
+ * @param position 爻位(1-6,自下而上)
19
+ * @param upperGua 上卦
20
+ * @param lowerGua 下卦
21
+ */
22
+ static calculate(position: number, upperGua: BaGua, lowerGua: BaGua): NaJiaResult;
23
+ /**
24
+ * 計算全卦六爻的納甲
25
+ * @param upperGua 上卦
26
+ * @param lowerGua 下卦
27
+ * @returns 六爻納甲結果(自下而上)
28
+ */
29
+ static calculateAll(upperGua: BaGua, lowerGua: BaGua): NaJiaResult[];
30
+ /**
31
+ * 根據爻值數組獲取上下卦
32
+ * @param yaoValues 六爻值(自下而上)
33
+ *
34
+ * 注意:BINARY_TO_BAGUA 的定義是"下爻是最高位"
35
+ * 例如:震 = 0b100 = 4,表示下爻阳(1)、中爻阴(0)、上爻阴(0)
36
+ * 計算方式:下爻*4 + 中爻*2 + 上爻*1
37
+ */
38
+ static getGuaFromYaoValues(yaoValues: YaoValue[]): {
39
+ upper: BaGua;
40
+ lower: BaGua;
41
+ };
42
+ /**
43
+ * 獲取爻的陰陽
44
+ */
45
+ static getYinYang(yaoValue: YaoValue): YinYang;
46
+ /**
47
+ * 判斷是否為動爻
48
+ */
49
+ static isMoving(yaoValue: YaoValue): boolean;
50
+ /**
51
+ * 獲取動爻變化後的陰陽
52
+ */
53
+ static getChangedYinYang(yaoValue: YaoValue): YinYang | undefined;
54
+ }
55
+ //# sourceMappingURL=NajiaCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NajiaCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/NajiaCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnE,MAAM,WAAW,WAAW;IAC1B,SAAS;IACT,KAAK,EAAE,KAAK,CAAC;IACb,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW;IAejF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW,EAAE;IAQpE;;;;;;;OAOG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE;IAejF;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAI9C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAI5C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;CAKlE"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /**
3
+ * 納甲計算器
4
+ *
5
+ * 京房納甲體系:
6
+ * - 根據卦象確定每爻的地支
7
+ * - 地支決定五行屬性
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NajiaCalculator = void 0;
11
+ const guagong_1 = require("../data/guagong");
12
+ class NajiaCalculator {
13
+ /**
14
+ * 計算單爻的納甲
15
+ * @param position 爻位(1-6,自下而上)
16
+ * @param upperGua 上卦
17
+ * @param lowerGua 下卦
18
+ */
19
+ static calculate(position, upperGua, lowerGua) {
20
+ const isOuter = position > 3;
21
+ const gua = isOuter ? upperGua : lowerGua;
22
+ const positionInGua = isOuter ? position - 3 : position;
23
+ const naJiaData = guagong_1.NAJIA_TABLE[gua];
24
+ const arr = isOuter ? naJiaData.outer : naJiaData.inner;
25
+ const diZhi = arr[positionInGua - 1];
26
+ return {
27
+ diZhi,
28
+ wuXing: guagong_1.DIZHI_WUXING[diZhi],
29
+ };
30
+ }
31
+ /**
32
+ * 計算全卦六爻的納甲
33
+ * @param upperGua 上卦
34
+ * @param lowerGua 下卦
35
+ * @returns 六爻納甲結果(自下而上)
36
+ */
37
+ static calculateAll(upperGua, lowerGua) {
38
+ const results = [];
39
+ for (let i = 1; i <= 6; i++) {
40
+ results.push(this.calculate(i, upperGua, lowerGua));
41
+ }
42
+ return results;
43
+ }
44
+ /**
45
+ * 根據爻值數組獲取上下卦
46
+ * @param yaoValues 六爻值(自下而上)
47
+ *
48
+ * 注意:BINARY_TO_BAGUA 的定義是"下爻是最高位"
49
+ * 例如:震 = 0b100 = 4,表示下爻阳(1)、中爻阴(0)、上爻阴(0)
50
+ * 計算方式:下爻*4 + 中爻*2 + 上爻*1
51
+ */
52
+ static getGuaFromYaoValues(yaoValues) {
53
+ // 將爻值轉換為陰陽(6,8=陰,7,9=陽)
54
+ const yinYang = yaoValues.map(v => v === 7 || v === 9);
55
+ // 計算下卦(初爻到三爻)- 初爻(下爻)是最高位 (bit 2)
56
+ const lowerBinary = (yinYang[0] ? 4 : 0) + (yinYang[1] ? 2 : 0) + (yinYang[2] ? 1 : 0);
57
+ // 計算上卦(四爻到上爻)- 四爻(下爻)是最高位 (bit 2)
58
+ const upperBinary = (yinYang[3] ? 4 : 0) + (yinYang[4] ? 2 : 0) + (yinYang[5] ? 1 : 0);
59
+ return {
60
+ upper: guagong_1.BINARY_TO_BAGUA[upperBinary],
61
+ lower: guagong_1.BINARY_TO_BAGUA[lowerBinary],
62
+ };
63
+ }
64
+ /**
65
+ * 獲取爻的陰陽
66
+ */
67
+ static getYinYang(yaoValue) {
68
+ return (yaoValue === 7 || yaoValue === 9) ? '陽' : '陰';
69
+ }
70
+ /**
71
+ * 判斷是否為動爻
72
+ */
73
+ static isMoving(yaoValue) {
74
+ return yaoValue === 6 || yaoValue === 9;
75
+ }
76
+ /**
77
+ * 獲取動爻變化後的陰陽
78
+ */
79
+ static getChangedYinYang(yaoValue) {
80
+ if (!this.isMoving(yaoValue))
81
+ return undefined;
82
+ // 動爻陰陽反轉
83
+ return yaoValue === 9 ? '陰' : '陽';
84
+ }
85
+ }
86
+ exports.NajiaCalculator = NajiaCalculator;
87
+ //# sourceMappingURL=NajiaCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NajiaCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/NajiaCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 旺衰計算器
3
+ *
4
+ * 理論來源:五行旺相休囚死(《淮南子》以來的傳統理論)
5
+ *
6
+ * 核心規則(以月令/日辰地支所屬五行為基準):
7
+ * - 旺:與月令/日辰同五行
8
+ * - 相:月令/日辰所生之五行
9
+ * - 休:生月令/日辰之五行
10
+ * - 囚:克月令/日辰之五行
11
+ * - 死:被月令/日辰所克之五行
12
+ *
13
+ * 簡化口訣:
14
+ * - 臨我者旺(同我)
15
+ * - 我生者相
16
+ * - 生我者休
17
+ * - 克我者囚
18
+ * - 我克者死
19
+ */
20
+ import { DiZhi, WuXing, WangShuaiState } from '../types';
21
+ export declare class WangshuaiCalculator {
22
+ /**
23
+ * 計算爻的旺衰狀態
24
+ *
25
+ * @param yaoWuXing 爻的五行
26
+ * @param lingDiZhi 月令或日辰的地支
27
+ * @returns 旺衰狀態
28
+ */
29
+ static calculate(yaoWuXing: WuXing, lingDiZhi: DiZhi): WangShuaiState;
30
+ /**
31
+ * 獲取旺衰說明
32
+ */
33
+ static getDescription(state: WangShuaiState): string;
34
+ /**
35
+ * 判斷是否為旺相(有力)
36
+ */
37
+ static isStrong(state: WangShuaiState): boolean;
38
+ /**
39
+ * 判斷是否為休囚死(無力)
40
+ */
41
+ static isWeak(state: WangShuaiState): boolean;
42
+ }
43
+ //# sourceMappingURL=WangshuaiCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WangshuaiCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/WangshuaiCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAqBzD,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,cAAc;IAgCrE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAWpD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAI/C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;CAG9C"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * 旺衰計算器
4
+ *
5
+ * 理論來源:五行旺相休囚死(《淮南子》以來的傳統理論)
6
+ *
7
+ * 核心規則(以月令/日辰地支所屬五行為基準):
8
+ * - 旺:與月令/日辰同五行
9
+ * - 相:月令/日辰所生之五行
10
+ * - 休:生月令/日辰之五行
11
+ * - 囚:克月令/日辰之五行
12
+ * - 死:被月令/日辰所克之五行
13
+ *
14
+ * 簡化口訣:
15
+ * - 臨我者旺(同我)
16
+ * - 我生者相
17
+ * - 生我者休
18
+ * - 克我者囚
19
+ * - 我克者死
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.WangshuaiCalculator = void 0;
23
+ const guagong_1 = require("../data/guagong");
24
+ /** 五行相生:A 生 B */
25
+ const SHENG = {
26
+ '金': '水',
27
+ '水': '木',
28
+ '木': '火',
29
+ '火': '土',
30
+ '土': '金',
31
+ };
32
+ /** 五行相剋:A 克 B */
33
+ const KE = {
34
+ '金': '木',
35
+ '木': '土',
36
+ '土': '水',
37
+ '水': '火',
38
+ '火': '金',
39
+ };
40
+ class WangshuaiCalculator {
41
+ /**
42
+ * 計算爻的旺衰狀態
43
+ *
44
+ * @param yaoWuXing 爻的五行
45
+ * @param lingDiZhi 月令或日辰的地支
46
+ * @returns 旺衰狀態
47
+ */
48
+ static calculate(yaoWuXing, lingDiZhi) {
49
+ const lingWuXing = guagong_1.DIZHI_WUXING[lingDiZhi];
50
+ // 同五行 = 旺
51
+ if (yaoWuXing === lingWuXing) {
52
+ return '旺';
53
+ }
54
+ // 令生爻 = 相(爻得生)
55
+ if (SHENG[lingWuXing] === yaoWuXing) {
56
+ return '相';
57
+ }
58
+ // 爻生令 = 休(爻洩氣)
59
+ if (SHENG[yaoWuXing] === lingWuXing) {
60
+ return '休';
61
+ }
62
+ // 爻克令 = 囚(爻耗力)
63
+ if (KE[yaoWuXing] === lingWuXing) {
64
+ return '囚';
65
+ }
66
+ // 令克爻 = 死(爻受制)
67
+ if (KE[lingWuXing] === yaoWuXing) {
68
+ return '死';
69
+ }
70
+ // 不應該到這裡
71
+ return '休';
72
+ }
73
+ /**
74
+ * 獲取旺衰說明
75
+ */
76
+ static getDescription(state) {
77
+ const descriptions = {
78
+ '旺': '當令,力量最強',
79
+ '相': '得生,力量次強',
80
+ '休': '洩氣,力量平平',
81
+ '囚': '耗力,力量較弱',
82
+ '死': '受制,力量最弱',
83
+ };
84
+ return descriptions[state];
85
+ }
86
+ /**
87
+ * 判斷是否為旺相(有力)
88
+ */
89
+ static isStrong(state) {
90
+ return state === '旺' || state === '相';
91
+ }
92
+ /**
93
+ * 判斷是否為休囚死(無力)
94
+ */
95
+ static isWeak(state) {
96
+ return state === '休' || state === '囚' || state === '死';
97
+ }
98
+ }
99
+ exports.WangshuaiCalculator = WangshuaiCalculator;
100
+ //# sourceMappingURL=WangshuaiCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WangshuaiCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/WangshuaiCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAGH,6CAA+C;AAE/C,iBAAiB;AACjB,MAAM,KAAK,GAA2B;IACpC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,iBAAiB;AACjB,MAAM,EAAE,GAA2B;IACjC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,SAAiB,EAAE,SAAgB;QAClD,MAAM,UAAU,GAAG,sBAAY,CAAC,SAAS,CAAC,CAAC;QAE3C,UAAU;QACV,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,SAAS;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAqB;QACzC,MAAM,YAAY,GAAmC;YACnD,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;SACf,CAAC;QACF,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAqB;QACnC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAqB;QACjC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;IACzD,CAAC;CACF;AAnED,kDAmEC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * 旬空計算器
3
+ *
4
+ * 旬空(空亡)規則:
5
+ * - 六十甲子分為六旬,每旬十天
6
+ * - 每旬有兩個地支輪空(因為天干10個,地支12個)
7
+ *
8
+ * 六旬空亡表:
9
+ * - 甲子旬:戌亥空
10
+ * - 甲戌旬:申酉空
11
+ * - 甲申旬:午未空
12
+ * - 甲午旬:辰巳空
13
+ * - 甲辰旬:寅卯空
14
+ * - 甲寅旬:子丑空
15
+ */
16
+ import { TianGan, DiZhi } from '../types';
17
+ export declare class XunkongCalculator {
18
+ /**
19
+ * 計算旬空
20
+ * @param dayStem 日干
21
+ * @param dayBranch 日支
22
+ * @returns 空亡的兩個地支
23
+ */
24
+ static calculate(dayStem: TianGan, dayBranch: DiZhi): [DiZhi, DiZhi];
25
+ /**
26
+ * 判斷某地支是否空亡
27
+ */
28
+ static isKong(diZhi: DiZhi, xunKong: [DiZhi, DiZhi]): boolean;
29
+ }
30
+ //# sourceMappingURL=XunkongCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XunkongCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/XunkongCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAiB1C,qBAAa,iBAAiB;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;IAgBpE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO;CAG9D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * 旬空計算器
4
+ *
5
+ * 旬空(空亡)規則:
6
+ * - 六十甲子分為六旬,每旬十天
7
+ * - 每旬有兩個地支輪空(因為天干10個,地支12個)
8
+ *
9
+ * 六旬空亡表:
10
+ * - 甲子旬:戌亥空
11
+ * - 甲戌旬:申酉空
12
+ * - 甲申旬:午未空
13
+ * - 甲午旬:辰巳空
14
+ * - 甲辰旬:寅卯空
15
+ * - 甲寅旬:子丑空
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.XunkongCalculator = void 0;
19
+ /** 天干索引 */
20
+ const TIANGAN_INDEX = {
21
+ '甲': 0, '乙': 1, '丙': 2, '丁': 3, '戊': 4,
22
+ '己': 5, '庚': 6, '辛': 7, '壬': 8, '癸': 9,
23
+ };
24
+ /** 地支索引 */
25
+ const DIZHI_INDEX = {
26
+ '子': 0, '丑': 1, '寅': 2, '卯': 3, '辰': 4, '巳': 5,
27
+ '午': 6, '未': 7, '申': 8, '酉': 9, '戌': 10, '亥': 11,
28
+ };
29
+ /** 地支數組 */
30
+ const DIZHI_ARRAY = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];
31
+ class XunkongCalculator {
32
+ /**
33
+ * 計算旬空
34
+ * @param dayStem 日干
35
+ * @param dayBranch 日支
36
+ * @returns 空亡的兩個地支
37
+ */
38
+ static calculate(dayStem, dayBranch) {
39
+ const stemIndex = TIANGAN_INDEX[dayStem];
40
+ const branchIndex = DIZHI_INDEX[dayBranch];
41
+ // 計算該日所在旬的起始地支索引
42
+ // 旬首的地支索引 = (日支索引 - 日干索引 + 12) % 12
43
+ const xunStartBranchIndex = (branchIndex - stemIndex + 12) % 12;
44
+ // 空亡的兩個地支是旬首地支往前數10和11位
45
+ // 即 (旬首索引 + 10) % 12 和 (旬首索引 + 11) % 12
46
+ const kong1Index = (xunStartBranchIndex + 10) % 12;
47
+ const kong2Index = (xunStartBranchIndex + 11) % 12;
48
+ return [DIZHI_ARRAY[kong1Index], DIZHI_ARRAY[kong2Index]];
49
+ }
50
+ /**
51
+ * 判斷某地支是否空亡
52
+ */
53
+ static isKong(diZhi, xunKong) {
54
+ return xunKong.includes(diZhi);
55
+ }
56
+ }
57
+ exports.XunkongCalculator = XunkongCalculator;
58
+ //# sourceMappingURL=XunkongCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XunkongCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/XunkongCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,WAAW;AACX,MAAM,aAAa,GAA4B;IAC7C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;CACvC,CAAC;AAEF,WAAW;AACX,MAAM,WAAW,GAA0B;IACzC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;CACjD,CAAC;AAEF,WAAW;AACX,MAAM,WAAW,GAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1F,MAAa,iBAAiB;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,OAAgB,EAAE,SAAgB;QACjD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAE3C,iBAAiB;QACjB,oCAAoC;QACpC,MAAM,mBAAmB,GAAG,CAAC,WAAW,GAAG,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAEhE,wBAAwB;QACxB,wCAAwC;QACxC,MAAM,UAAU,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAEnD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAY,EAAE,OAAuB;QACjD,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF;AA7BD,8CA6BC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * 八宮卦數據
3
+ *
4
+ * 京房易學體系:
5
+ * - 八宮:乾、兌、離、震、巽、坎、艮、坤
6
+ * - 每宮八卦:本宮卦、一世、二世、三世、四世、五世、遊魂、歸魂
7
+ * - 世應規則:本宮卦世在六爻,一世世在初爻,依次類推
8
+ *
9
+ * 數據來源:京房納甲體系標準口徑
10
+ */
11
+ import { BaGua, WuXing, DiZhi } from '../types';
12
+ /**
13
+ * 八卦對應的二進制值(陽爻=1,陰爻=0,上爻是最高位)
14
+ *
15
+ * 八卦符號從下往上看(下爻、中爻、上爻):
16
+ * - 乾 ☰ = 阳阳阳 -> 上爻*4 + 中爻*2 + 下爻*1 = 1*4 + 1*2 + 1*1 = 7
17
+ * - 兌 ☱ = 阴阳阳 -> 上爻*4 + 中爻*2 + 下爻*1 = 1*4 + 1*2 + 0*1 = 6
18
+ * - 離 ☲ = 阳阴阳 -> 上爻*4 + 中爻*2 + 下爻*1 = 1*4 + 0*2 + 1*1 = 5
19
+ * - 震 ☳ = 阴阴阳 -> 上爻*4 + 中爻*2 + 下爻*1 = 0*4 + 0*2 + 1*1 = 1 (錯誤!)
20
+ *
21
+ * 實際定義(與先天八卦數一致):
22
+ * - 震 ☳ = 100 = 4
23
+ * - 艮 ☶ = 001 = 1
24
+ *
25
+ * 這是因為二進制表示是"上爻是最高位",但八卦符號的閱讀順序是從下往上。
26
+ */
27
+ export declare const BAGUA_BINARY: Record<BaGua, number>;
28
+ /**
29
+ * 二進制值對應的八卦
30
+ *
31
+ * 計算方式:上爻*4 + 中爻*2 + 下爻*1
32
+ */
33
+ export declare const BINARY_TO_BAGUA: Record<number, BaGua>;
34
+ /** 八卦五行 */
35
+ export declare const BAGUA_WUXING: Record<BaGua, WuXing>;
36
+ /** 八卦符號 */
37
+ export declare const BAGUA_SYMBOL: Record<BaGua, string>;
38
+ export interface Gua64Info {
39
+ /** 卦名 */
40
+ name: string;
41
+ /** 上卦 */
42
+ upper: BaGua;
43
+ /** 下卦 */
44
+ lower: BaGua;
45
+ /** 所屬卦宮 */
46
+ gong: BaGua;
47
+ /** 卦序(1-8:本宮、一世、二世、三世、四世、五世、遊魂、歸魂) */
48
+ guaXu: number;
49
+ /** 世爻位置(1-6) */
50
+ shiYao: number;
51
+ /** 應爻位置(1-6) */
52
+ yingYao: number;
53
+ }
54
+ /**
55
+ * 六十四卦完整數據
56
+ * key = 上卦二進制 * 8 + 下卦二進制
57
+ */
58
+ export declare const GUA64_DATA: Record<number, Gua64Info>;
59
+ /**
60
+ * 京房納甲表
61
+ * 每個八卦的六爻對應的地支(自下而上:初爻到上爻)
62
+ *
63
+ * 規則:
64
+ * - 乾納甲壬,內卦子寅辰,外卦午申戌
65
+ * - 坤納乙癸,內卦未巳卯,外卦丑亥酉
66
+ * - 震納庚,內卦子寅辰,外卦午申戌
67
+ * - 巽納辛,內卦丑亥酉,外卦未巳卯
68
+ * - 坎納戊,內卦寅辰午,外卦申戌子
69
+ * - 離納己,內卦卯丑亥,外卦酉未巳
70
+ * - 艮納丙,內卦辰午申,外卦戌子寅
71
+ * - 兌納丁,內卦巳卯丑,外卦亥酉未
72
+ */
73
+ export declare const NAJIA_TABLE: Record<BaGua, {
74
+ inner: [DiZhi, DiZhi, DiZhi];
75
+ outer: [DiZhi, DiZhi, DiZhi];
76
+ }>;
77
+ export declare const DIZHI_WUXING: Record<DiZhi, WuXing>;
78
+ /**
79
+ * 根據上下卦獲取六十四卦信息
80
+ */
81
+ export declare function getGua64Info(upper: BaGua, lower: BaGua): Gua64Info;
82
+ /**
83
+ * 根據六爻陰陽獲取六十四卦信息
84
+ * @param yaoYinYang 六爻陰陽數組(自下而上,true=陽,false=陰)
85
+ */
86
+ export declare function getGua64InfoByYao(yaoYinYang: [boolean, boolean, boolean, boolean, boolean, boolean]): Gua64Info;
87
+ /**
88
+ * 獲取某爻的納甲地支
89
+ * @param gua 所屬八卦(上卦或下卦)
90
+ * @param position 爻位(1-3 為內卦,4-6 為外卦)
91
+ * @param isOuter 是否為外卦
92
+ */
93
+ export declare function getNaJia(gua: BaGua, positionInGua: number, isOuter: boolean): DiZhi;
94
+ //# sourceMappingURL=guagong.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guagong.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/data/guagong.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMhD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAS9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CASjD,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAS9C,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAS9C,CAAC;AAMF,MAAM,WAAW,SAAS;IACxB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,SAAS;IACT,KAAK,EAAE,KAAK,CAAC;IACb,SAAS;IACT,KAAK,EAAE,KAAK,CAAC;IACb,WAAW;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAgKhD,CAAC;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;CAAE,CASrG,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAa9C,CAAC;AAMF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAGlE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAa/G;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAInF"}