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,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":"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"}
@@ -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"}