liuyao 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +12 -5
- package/dist/index.mjs +62 -49
- package/dist/parser.skill.js +1 -0
- package/package.json +9 -3
package/dist/index.d.ts
CHANGED
|
@@ -26,11 +26,11 @@ interface SetupGramInfo {
|
|
|
26
26
|
hostGuest?: '世' | '应';
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
interface
|
|
29
|
+
interface PalaceOrderName {
|
|
30
30
|
name: string;
|
|
31
31
|
nameEn: string;
|
|
32
32
|
}
|
|
33
|
-
declare const
|
|
33
|
+
declare const PalaceOrderTable: PalaceOrderName[];
|
|
34
34
|
interface HexagramInfo {
|
|
35
35
|
/**
|
|
36
36
|
* Binary representation of the hexagram, where 0 represents a yin line and 1 represents a yang line. The lines are ordered from the bottom (first line) to the top (sixth line).
|
|
@@ -249,6 +249,10 @@ declare class Hexagram {
|
|
|
249
249
|
* Try to create a Hexagram from an array of counts of Yang. If the input is invalid, null will be returned.
|
|
250
250
|
*/
|
|
251
251
|
static fromYangCounts(counts: number[]): Hexagram | null;
|
|
252
|
+
/**
|
|
253
|
+
* Create a Hexagram from its id, which is the name of the hexagram without the palace name.
|
|
254
|
+
* @param id "坤为地", "地雷复", "地水师"
|
|
255
|
+
*/
|
|
252
256
|
static fromId(id: string): Hexagram | null;
|
|
253
257
|
/**
|
|
254
258
|
* Find Original Palace Hexagram by the palace name, which is the last character of the hexagram id. For example, '天' for '乾为天', '地' for '坤为地', etc.
|
|
@@ -263,6 +267,7 @@ declare class Hexagram {
|
|
|
263
267
|
* HexagramInfo of this hexagram, which can be used to get more information about this hexagram, such as its name, sign, phase, palace, etc.
|
|
264
268
|
*/
|
|
265
269
|
get info(): HexagramInfo;
|
|
270
|
+
get palace(): string;
|
|
266
271
|
/**
|
|
267
272
|
* Whether the 6 Yaos of this hexagram contain any dynamic Yao.
|
|
268
273
|
*/
|
|
@@ -298,15 +303,16 @@ declare class Hexagram {
|
|
|
298
303
|
toAIReadable(): {
|
|
299
304
|
本卦: HexagramAIReadable<'本卦'>;
|
|
300
305
|
变卦: HexagramAIReadable<'变卦'> | null;
|
|
306
|
+
世应变化: string;
|
|
301
307
|
};
|
|
302
308
|
clone(): Hexagram;
|
|
303
309
|
toString(): string;
|
|
304
310
|
[Symbol.toPrimitive](): string;
|
|
305
311
|
}
|
|
306
312
|
interface YaoInfo {
|
|
307
|
-
|
|
313
|
+
爻: string;
|
|
308
314
|
类型: '世' | '应' | null;
|
|
309
|
-
|
|
315
|
+
六亲地支五行: string;
|
|
310
316
|
}
|
|
311
317
|
interface HexagramAIReadable<T extends '本卦' | '变卦'> {
|
|
312
318
|
初爻: YaoInfo;
|
|
@@ -316,8 +322,9 @@ interface HexagramAIReadable<T extends '本卦' | '变卦'> {
|
|
|
316
322
|
五爻: YaoInfo;
|
|
317
323
|
上爻: YaoInfo;
|
|
318
324
|
卦名: string;
|
|
325
|
+
宫: string;
|
|
319
326
|
变爻?: string[];
|
|
320
327
|
}
|
|
321
328
|
|
|
322
|
-
export { Hexagram, HexagramInfoTable, HexagramYaoOrder, PalaceIndexTable, SixGodTable, TrigramInfoTable, Yao };
|
|
329
|
+
export { Hexagram, HexagramInfoTable, HexagramYaoOrder, PalaceOrderTable as PalaceIndexTable, SixGodTable, TrigramInfoTable, Yao };
|
|
323
330
|
export type { HexagramInfo, SetupGramInfo, SixGod, SixGodInfo, TrigramInfo };
|
package/dist/index.mjs
CHANGED
|
@@ -1682,6 +1682,10 @@ class l {
|
|
|
1682
1682
|
get info() {
|
|
1683
1683
|
return i.find(n => n.binary === this.yaos.map(n => n.polar).join(""));
|
|
1684
1684
|
}
|
|
1685
|
+
get palace() {
|
|
1686
|
+
const i = this.info;
|
|
1687
|
+
return `${i.palace}宫(${i.phase})${n[i.palaceIndex].name}`;
|
|
1688
|
+
}
|
|
1685
1689
|
get isDynamic() {
|
|
1686
1690
|
return this.yaos.some(n => n.isDynamic || n.isChanged);
|
|
1687
1691
|
}
|
|
@@ -1720,75 +1724,84 @@ class l {
|
|
|
1720
1724
|
return e.join(",");
|
|
1721
1725
|
}
|
|
1722
1726
|
toAIReadable() {
|
|
1723
|
-
const n = this.info.setupInfo, i = this.toChanged(), e = i?.info.setupInfo;
|
|
1727
|
+
const n = this.info.setupInfo, i = this.toChanged(), e = i?.info.setupInfo, s = [];
|
|
1728
|
+
if (e) {
|
|
1729
|
+
const n = this.yaos.map((n, i) => n.isDynamic ? i : null).filter(n => null !== n);
|
|
1730
|
+
e.forEach((e, t) => {
|
|
1731
|
+
n.includes(t) && ("世" === e.hostGuest && s.push(`新世爻为${i.info.id}的${r[t]}`), "应" === e.hostGuest && s.push(`新应爻为${i.info.id}的${r[t]}`));
|
|
1732
|
+
});
|
|
1733
|
+
} else s.push("没有新的世应爻出现,世应不变");
|
|
1724
1734
|
return {
|
|
1725
1735
|
"本卦": {
|
|
1726
|
-
"
|
|
1727
|
-
"
|
|
1728
|
-
"类型": n[
|
|
1729
|
-
"
|
|
1730
|
-
},
|
|
1731
|
-
"二爻": {
|
|
1732
|
-
"爻象": this.yaos[1].name,
|
|
1733
|
-
"类型": n[1].hostGuest || null,
|
|
1734
|
-
"六亲五行": n[1].kin
|
|
1736
|
+
"上爻": {
|
|
1737
|
+
"爻": this.yaos[5].name,
|
|
1738
|
+
"类型": n[5].hostGuest || null,
|
|
1739
|
+
"六亲地支五行": n[5].kin
|
|
1735
1740
|
},
|
|
1736
|
-
"
|
|
1737
|
-
"
|
|
1738
|
-
"类型": n[
|
|
1739
|
-
"
|
|
1741
|
+
"五爻": {
|
|
1742
|
+
"爻": this.yaos[4].name,
|
|
1743
|
+
"类型": n[4].hostGuest || null,
|
|
1744
|
+
"六亲地支五行": n[4].kin
|
|
1740
1745
|
},
|
|
1741
1746
|
"四爻": {
|
|
1742
|
-
"
|
|
1747
|
+
"爻": this.yaos[3].name,
|
|
1743
1748
|
"类型": n[3].hostGuest || null,
|
|
1744
|
-
"
|
|
1749
|
+
"六亲地支五行": n[3].kin
|
|
1745
1750
|
},
|
|
1746
|
-
"
|
|
1747
|
-
"
|
|
1748
|
-
"类型": n[
|
|
1749
|
-
"
|
|
1751
|
+
"三爻": {
|
|
1752
|
+
"爻": this.yaos[2].name,
|
|
1753
|
+
"类型": n[2].hostGuest || null,
|
|
1754
|
+
"六亲地支五行": n[2].kin
|
|
1750
1755
|
},
|
|
1751
|
-
"
|
|
1752
|
-
"
|
|
1753
|
-
"类型": n[
|
|
1754
|
-
"
|
|
1756
|
+
"二爻": {
|
|
1757
|
+
"爻": this.yaos[1].name,
|
|
1758
|
+
"类型": n[1].hostGuest || null,
|
|
1759
|
+
"六亲地支五行": n[1].kin
|
|
1760
|
+
},
|
|
1761
|
+
"初爻": {
|
|
1762
|
+
"爻": this.yaos[0].name,
|
|
1763
|
+
"类型": n[0].hostGuest || null,
|
|
1764
|
+
"六亲地支五行": n[0].kin
|
|
1755
1765
|
},
|
|
1756
1766
|
"卦名": this.info.id,
|
|
1767
|
+
"宫": this.palace,
|
|
1757
1768
|
"变爻": this.isDynamic ? this.yaos.map((n, i) => n.isDynamic ? r[i] : null).filter(n => null !== n) : void 0
|
|
1758
1769
|
},
|
|
1759
1770
|
"变卦": e ? {
|
|
1760
|
-
"
|
|
1761
|
-
"
|
|
1762
|
-
"类型": e[
|
|
1763
|
-
"
|
|
1764
|
-
},
|
|
1765
|
-
"二爻": {
|
|
1766
|
-
"爻象": i.yaos[1].name,
|
|
1767
|
-
"类型": e[1].hostGuest || null,
|
|
1768
|
-
"六亲五行": e[1].kin
|
|
1771
|
+
"上爻": {
|
|
1772
|
+
"爻": i.yaos[5].name,
|
|
1773
|
+
"类型": e[5].hostGuest || null,
|
|
1774
|
+
"六亲地支五行": e[5].kin
|
|
1769
1775
|
},
|
|
1770
|
-
"
|
|
1771
|
-
"
|
|
1772
|
-
"类型": e[
|
|
1773
|
-
"
|
|
1776
|
+
"五爻": {
|
|
1777
|
+
"爻": i.yaos[4].name,
|
|
1778
|
+
"类型": e[4].hostGuest || null,
|
|
1779
|
+
"六亲地支五行": e[4].kin
|
|
1774
1780
|
},
|
|
1775
1781
|
"四爻": {
|
|
1776
|
-
"
|
|
1782
|
+
"爻": i.yaos[3].name,
|
|
1777
1783
|
"类型": e[3].hostGuest || null,
|
|
1778
|
-
"
|
|
1784
|
+
"六亲地支五行": e[3].kin
|
|
1779
1785
|
},
|
|
1780
|
-
"
|
|
1781
|
-
"
|
|
1782
|
-
"类型": e[
|
|
1783
|
-
"
|
|
1786
|
+
"三爻": {
|
|
1787
|
+
"爻": i.yaos[2].name,
|
|
1788
|
+
"类型": e[2].hostGuest || null,
|
|
1789
|
+
"六亲地支五行": e[2].kin
|
|
1784
1790
|
},
|
|
1785
|
-
"
|
|
1786
|
-
"
|
|
1787
|
-
"类型": e[
|
|
1788
|
-
"
|
|
1791
|
+
"二爻": {
|
|
1792
|
+
"爻": i.yaos[1].name,
|
|
1793
|
+
"类型": e[1].hostGuest || null,
|
|
1794
|
+
"六亲地支五行": e[1].kin
|
|
1795
|
+
},
|
|
1796
|
+
"初爻": {
|
|
1797
|
+
"爻": i.yaos[0].name,
|
|
1798
|
+
"类型": e[0].hostGuest || null,
|
|
1799
|
+
"六亲地支五行": e[0].kin
|
|
1789
1800
|
},
|
|
1790
|
-
"卦名": i.info.id
|
|
1791
|
-
|
|
1801
|
+
"卦名": i.info.id,
|
|
1802
|
+
"宫": i.palace
|
|
1803
|
+
} : null,
|
|
1804
|
+
"世应变化": s.join(",")
|
|
1792
1805
|
};
|
|
1793
1806
|
}
|
|
1794
1807
|
clone() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42416,83315,21168,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46752,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,23232,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19195,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448,84835,37744,18936,18800,25776,92326,59984,27424,108228,43744,37600,53987,51552,54615,54432,55888,23893,22176,42704,21972,21200,43448,43344,46240,46758,44368,21920,43940,42416,21168,45683,26928,29495,27296,44368,84821,19296,42352,21732,53600,59752,54560,55968,92838,22224,19168,43476,42192,53584,62034,54560],e=[31,28,31,30,31,30,31,31,30,31,30,31],s=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],t=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],a=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],i=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"],b=["9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c3598082c95f8c965cc920f","97bd0b06bdb0722c965ce1cfcc920f","b027097bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c359801ec95f8c965cc920f","97bd0b06bdb0722c965ce1cfcc920f","b027097bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c359801ec95f8c965cc920f","97bd0b06bdb0722c965ce1cfcc920f","b027097bd097c36b0b6fc9274c91aa","9778397bd19801ec9210c965cc920e","97b6b97bd19801ec95f8c965cc920f","97bd09801d98082c95f8e1cfcc920f","97bd097bd097c36b0b6fc9210c8dc2","9778397bd197c36c9210c9274c91aa","97b6b97bd19801ec95f8c965cc920e","97bd09801d98082c95f8e1cfcc920f","97bd097bd097c36b0b6fc9210c8dc2","9778397bd097c36c9210c9274c91aa","97b6b97bd19801ec95f8c965cc920e","97bcf97c3598082c95f8e1cfcc920f","97bd097bd097c36b0b6fc9210c8dc2","9778397bd097c36c9210c9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c3598082c95f8c965cc920f","97bd097bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c3598082c95f8c965cc920f","97bd097bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c359801ec95f8c965cc920f","97bd097bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c359801ec95f8c965cc920f","97bd097bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf97c359801ec95f8c965cc920f","97bd097bd07f595b0b6fc920fb0722","9778397bd097c36b0b6fc9210c8dc2","9778397bd19801ec9210c9274c920e","97b6b97bd19801ec95f8c965cc920f","97bd07f5307f595b0b0bc920fb0722","7f0e397bd097c36b0b6fc9210c8dc2","9778397bd097c36c9210c9274c920e","97b6b97bd19801ec95f8c965cc920f","97bd07f5307f595b0b0bc920fb0722","7f0e397bd097c36b0b6fc9210c8dc2","9778397bd097c36c9210c9274c91aa","97b6b97bd19801ec9210c965cc920e","97bd07f1487f595b0b0bc920fb0722","7f0e397bd097c36b0b6fc9210c8dc2","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf7f1487f595b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf7f1487f595b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf7f1487f531b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c965cc920e","97bcf7f1487f531b0b0bb0b6fb0722","7f0e397bd07f595b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b97bd19801ec9210c9274c920e","97bcf7f0e47f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","9778397bd097c36b0b6fc9210c91aa","97b6b97bd197c36c9210c9274c920e","97bcf7f0e47f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","9778397bd097c36b0b6fc9210c8dc2","9778397bd097c36c9210c9274c920e","97b6b7f0e47f531b0723b0b6fb0722","7f0e37f5307f595b0b0bc920fb0722","7f0e397bd097c36b0b6fc9210c8dc2","9778397bd097c36b0b70c9274c91aa","97b6b7f0e47f531b0723b0b6fb0721","7f0e37f1487f595b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc9210c8dc2","9778397bd097c36b0b6fc9274c91aa","97b6b7f0e47f531b0723b0b6fb0721","7f0e27f1487f595b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","9778397bd097c36b0b6fc9274c91aa","97b6b7f0e47f531b0723b0787b0721","7f0e27f0e47f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","9778397bd097c36b0b6fc9210c91aa","97b6b7f0e47f149b0723b0787b0721","7f0e27f0e47f531b0723b0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","9778397bd097c36b0b6fc9210c8dc2","977837f0e37f149b0723b0787b0721","7f07e7f0e47f531b0723b0b6fb0722","7f0e37f5307f595b0b0bc920fb0722","7f0e397bd097c35b0b6fc9210c8dc2","977837f0e37f14998082b0787b0721","7f07e7f0e47f531b0723b0b6fb0721","7f0e37f1487f595b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc9210c8dc2","977837f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","977837f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd097c35b0b6fc920fb0722","977837f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","977837f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","977837f0e37f14998082b0787b06bd","7f07e7f0e47f149b0723b0787b0721","7f0e27f0e47f531b0b0bb0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","977837f0e37f14998082b0723b06bd","7f07e7f0e37f149b0723b0787b0721","7f0e27f0e47f531b0723b0b6fb0722","7f0e397bd07f595b0b0bc920fb0722","977837f0e37f14898082b0723b02d5","7ec967f0e37f14998082b0787b0721","7f07e7f0e47f531b0723b0b6fb0722","7f0e37f1487f595b0b0bb0b6fb0722","7f0e37f0e37f14898082b0723b02d5","7ec967f0e37f14998082b0787b0721","7f07e7f0e47f531b0723b0b6fb0722","7f0e37f1487f531b0b0bb0b6fb0722","7f0e37f0e37f14898082b0723b02d5","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e37f1487f531b0b0bb0b6fb0722","7f0e37f0e37f14898082b072297c35","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e37f0e37f14898082b072297c35","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e37f0e366aa89801eb072297c35","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f149b0723b0787b0721","7f0e27f1487f531b0b0bb0b6fb0722","7f0e37f0e366aa89801eb072297c35","7ec967f0e37f14998082b0723b06bd","7f07e7f0e47f149b0723b0787b0721","7f0e27f0e47f531b0723b0b6fb0722","7f0e37f0e366aa89801eb072297c35","7ec967f0e37f14998082b0723b06bd","7f07e7f0e37f14998083b0787b0721","7f0e27f0e47f531b0723b0b6fb0722","7f0e37f0e366aa89801eb072297c35","7ec967f0e37f14898082b0723b02d5","7f07e7f0e37f14998082b0787b0721","7f07e7f0e47f531b0723b0b6fb0722","7f0e36665b66aa89801e9808297c35","665f67f0e37f14898082b0723b02d5","7ec967f0e37f14998082b0787b0721","7f07e7f0e47f531b0723b0b6fb0722","7f0e36665b66a449801e9808297c35","665f67f0e37f14898082b0723b02d5","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e36665b66a449801e9808297c35","665f67f0e37f14898082b072297c35","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e26665b66a449801e9808297c35","665f67f0e37f1489801eb072297c35","7ec967f0e37f14998082b0787b06bd","7f07e7f0e47f531b0723b0b6fb0721","7f0e27f1487f531b0b0bb0b6fb0722"],f=["日","一","二","三","四","五","六","七","八","九","十"],c=["初","十","廿","卅"],o=["正","二","三","四","五","六","七","八","九","十","冬","腊"],u=["零","一","二","三","四","五","六","七","八","九","十"];const r={lunarInfo:n,solarMonth:e,gan:s,zhi:t,animals:a,lunarTerm:i,lTermInfo:b,nStr1:f,nStr2:c,nStr3:o,nStr4:u,lYearDays(e){let s=348;const t=n[e-1900];return s+=32768&t?1:0,s+=16384&t?1:0,s+=8192&t?1:0,s+=4096&t?1:0,s+=2048&t?1:0,s+=1024&t?1:0,s+=512&t?1:0,s+=256&t?1:0,s+=128&t?1:0,s+=64&t?1:0,s+=32&t?1:0,s+=16&t?1:0,s+r.leapDays(e)},leapMonth:e=>15&n[e-1900],leapDays:e=>r.leapMonth(e)?65536&n[e-1900]?30:29:0,monthDays:(e,s)=>s>12||s<1?-1:n[e-1900]&65536>>s?30:29,getShiChen(n,e){const a=(n+1)/2>=24?0:Math.floor((n+1)/2)%12;return s[(2*e+a)%10]+t[a]},solarDays(n,s){if(s>12||s<1)return-1;const t=s-1;return 1===t?n%4==0&&n%100!=0||n%400==0?29:28:e[t]},toGanZhi:n=>s[n%10]+t[n%12],getTerm(n,e){if(n<1900||n>2100)return-1;if(e<1||e>24)return-1;const s=b[n-1900],t=[parseInt("0x"+s.substr(0,5)).toString(),parseInt("0x"+s.substr(5,5)).toString(),parseInt("0x"+s.substr(10,5)).toString(),parseInt("0x"+s.substr(15,5)).toString(),parseInt("0x"+s.substr(20,5)).toString(),parseInt("0x"+s.substr(25,5)).toString()],a=[t[0].substr(0,1),t[0].substr(1,2),t[0].substr(3,1),t[0].substr(4,2),t[1].substr(0,1),t[1].substr(1,2),t[1].substr(3,1),t[1].substr(4,2),t[2].substr(0,1),t[2].substr(1,2),t[2].substr(3,1),t[2].substr(4,2),t[3].substr(0,1),t[3].substr(1,2),t[3].substr(3,1),t[3].substr(4,2),t[4].substr(0,1),t[4].substr(1,2),t[4].substr(3,1),t[4].substr(4,2),t[5].substr(0,1),t[5].substr(1,2),t[5].substr(3,1),t[5].substr(4,2)];return parseInt(a[e-1])},toChinaYear(n){const e=Math.floor(n/1e3),s=Math.floor(n%1e3/100),t=Math.floor(n%100/10);return u[e]+u[s]+u[t]+u[n%10]+"年"},toChinaMonth(n){if(n>12||n<1)return-1;let e=o[n-1];return e+="月",e},toChinaDay(n){let e="";switch(n){case 10:e="初十";break;case 20:e="二十";break;case 30:e="三十";break;default:e=c[Math.floor(n/10)],e+=f[n%10]}return e},getAnimal(n,e,s){if(void 0!==e&&void 0!==s){const t=r.getTerm(n,3);(e<2||2===e&&s<t)&&(n-=1)}return a[(n-4)%12]},solar2lunar(n,e,s){if(null==n||null==e||null==s){const t=new Date;n=t.getFullYear(),e=t.getMonth()+1,s=t.getDate()}if(n=Number(n),e=Number(e),s=Number(s),isNaN(n)||isNaN(e)||isNaN(s))return-1;if(n<1900||n>2100)return-1;if(1900===n&&1===e&&s<31)return-1;if(e<1||e>12)return-1;const t=r.solarDays(n,e);if(s<1||s>t)return-1;const a=new Date(n,parseInt(e)-1,s);let b,c=0;n=a.getFullYear(),e=a.getMonth()+1,s=a.getDate();let o=(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate())-Date.UTC(1900,0,31))/864e5;for(c=0,b=1900;b<2101&&o>0;b++)c=r.lYearDays(b),o-=c;o<0&&(o+=c,b--);const u=b,k=new Date;let h=!1;k.getFullYear()===n&&k.getMonth()+1===e&&k.getDate()===s&&(h=!0);const d=a.getDay(),l=f[d],p=0===d?7:d,g=u,y=r.leapMonth(u);let m=!1;for(b=1;b<13&&o>0;b++)y>0&&b===y+1&&!1===m?(--b,m=!0,c=r.leapDays(g)):c=r.monthDays(g,b),!0===m&&b===y+1&&(m=!1),o-=c;0===o&&y>0&&b===y+1&&(m?m=!1:(m=!0,--b)),o<0&&(o+=c,--b);const G=b,I=o+1,C=e-1,x=r.getTerm(n,3);let D=r.toGanZhi(n-4);(e<2||2===e&&s<x)&&(D=r.toGanZhi(n-1-4));const v=r.getTerm(n,2*e-1),S=r.getTerm(n,2*e);let w=r.toGanZhi(12*(n-1900)+e+11);s>=v&&(w=r.toGanZhi(12*(n-1900)+e+12));let E=!1,N="";v===s&&(E=!0,N=i[2*e-2]),S===s&&(E=!0,N=i[2*e-1]);const M=Date.UTC(n,C,1,0,0,0,0)/864e5+25567+10,T=r.toGanZhi(M+s-1);return{lYear:g,lMonth:G,lDay:I,animal:r.getAnimal(g),yearCn:r.toChinaYear(g),monthCn:(m&&y===G?"闰":"")+r.toChinaMonth(G),dayCn:r.toChinaDay(I),cYear:n,cMonth:e,cDay:s,gzYear:D,gzMonth:w,gzDay:T,isToday:h,isLeap:m,nWeek:p,ncWeek:"星期"+l,isTerm:E,term:N}},lunar2solar(n,e,s,t){if(n=Number(n),e=Number(e),s=Number(s),t=Boolean(t),isNaN(n)||isNaN(e)||isNaN(s))return-1;const a=r.leapMonth(n);if(t&&a!==e)return-1;if(2100===n&&12===e&&s>1||1900===n&&1===e&&s<31)return-1;const i=r.monthDays(n,e);if(n<1900||n>2100||s>i)return-1;let b=0;for(let e=1900;e<n;e++)b+=r.lYearDays(e);let f=0,c=!1;for(let s=1;s<e;s++)f=r.leapMonth(n),c||f<=s&&f>0&&(b+=r.leapDays(n),c=!0),b+=r.monthDays(n,s);t&&(b+=i);const o=Date.UTC(1900,1,30,0,0,0),u=new Date(864e5*(b+s-31)+o),k=u.getUTCFullYear(),h=u.getUTCMonth()+1,d=u.getUTCDate();return r.solar2lunar(k,h,d)},getFestivals(n,e,s){const t=[],a=r.solar2lunar(n,e,s);if(-1===a)return t;const{lMonth:i,lDay:b}=a,f={"1-1":"春节","1-15":"元宵节","5-5":"端午节","7-7":"七夕节","8-15":"中秋节","9-9":"重阳节","12-8":"腊八节","12-23":"小年"},c=`${i}-${b}`;return f[c]&&t.push(f[c]),1===i&&1===b&&t.push("农历新年"),r.customFestivals&&r.customFestivals.forEach(n=>{n.month===i&&n.day===b&&t.push(n.name)}),t},addFestival(n,e,s){r.customFestivals||(r.customFestivals=[]),r.customFestivals.push({name:n,month:e,day:s})},clearFestivals(){r.customFestivals=[]}},k=[{name:"本宫卦",nameEn:"Original Palace"},{name:"一世卦",nameEn:"First Generation"},{name:"二世卦",nameEn:"Second Generation"},{name:"三世卦",nameEn:"Third Generation"},{name:"四世卦",nameEn:"Fourth Generation"},{name:"五世卦",nameEn:"Fifth Generation"},{name:"游魂卦",nameEn:"Wandering Soul"},{name:"归魂卦",nameEn:"Returning Soul"}],h=Object.freeze([{binary:"000000",id:"坤为地",sign:"䷁",phase:"土",palace:"坤",palaceIndex:0,setupInfo:[{kin:"兄弟未土"},{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"应"},{kin:"兄弟丑土"},{kin:"妻财亥水"},{kin:"子孙酉金",hostGuest:"世"}],yangCounts:[2,2,2,2,2,2]},{binary:"100000",id:"地雷复",sign:"䷗",phase:"土",palace:"坤",palaceIndex:1,setupInfo:[{kin:"妻财子水",hostGuest:"世"},{kin:"官鬼寅木"},{kin:"兄弟辰土"},{kin:"兄弟丑土",hostGuest:"应"},{kin:"妻财亥水"},{kin:"子孙酉金"}],yangCounts:[1,2,2,2,2,2]},{binary:"010000",id:"地水师",sign:"䷆",phase:"水",palace:"坎",palaceIndex:7,setupInfo:[{kin:"子孙寅木"},{kin:"官鬼辰土"},{kin:"妻财午火",hostGuest:"世"},{kin:"官鬼丑土"},{kin:"兄弟亥水"},{kin:"父母酉金",hostGuest:"应"}],yangCounts:[2,1,2,2,2,2]},{binary:"110000",id:"地泽临",sign:"䷒",phase:"土",palace:"坤",palaceIndex:2,setupInfo:[{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"世"},{kin:"兄弟丑土"},{kin:"兄弟丑土"},{kin:"妻财亥水",hostGuest:"应"},{kin:"子孙酉金"}],yangCounts:[1,1,2,2,2,2]},{binary:"001000",id:"地山谦",sign:"䷎",phase:"土",palace:"兑",palaceIndex:5,setupInfo:[{kin:"父母辰土"},{kin:"官鬼午火",hostGuest:"应"},{kin:"兄弟申金"},{kin:"父母丑土"},{kin:"子孙亥水",hostGuest:"世"},{kin:"兄弟酉金"}],yangCounts:[2,2,1,2,2,2]},{binary:"101000",id:"地火明夷",sign:"䷣",phase:"水",palace:"坎",palaceIndex:6,setupInfo:[{kin:"子孙卯木",hostGuest:"应"},{kin:"官鬼丑土"},{kin:"兄弟亥水"},{kin:"官鬼丑土",hostGuest:"世"},{kin:"兄弟亥水"},{kin:"父母酉金"}],yangCounts:[1,2,1,2,2,2]},{binary:"011000",id:"地风升",sign:"䷭",phase:"木",palace:"震",palaceIndex:4,setupInfo:[{kin:"妻财丑土",hostGuest:"应"},{kin:"父母亥水"},{kin:"官鬼酉金"},{kin:"妻财丑土",hostGuest:"世"},{kin:"父母亥水"},{kin:"官鬼酉金"}],yangCounts:[2,1,1,2,2,2]},{binary:"111000",id:"地天泰",sign:"䷊",phase:"土",palace:"坤",palaceIndex:3,setupInfo:[{kin:"妻财子水"},{kin:"官鬼寅木"},{kin:"兄弟辰土",hostGuest:"世"},{kin:"兄弟丑土"},{kin:"妻财亥水"},{kin:"子孙酉金",hostGuest:"应"}],yangCounts:[1,1,1,2,2,2]},{binary:"000100",id:"雷地豫",sign:"䷏",phase:"木",palace:"震",palaceIndex:1,setupInfo:[{kin:"妻财未土",hostGuest:"世"},{kin:"子孙巳火"},{kin:"兄弟卯木"},{kin:"子孙午火",hostGuest:"应"},{kin:"官鬼申金"},{kin:"妻财戌土"}],yangCounts:[2,2,2,1,2,2]},{binary:"100100",id:"震为雷",sign:"䷲",phase:"木",palace:"震",palaceIndex:0,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"应"},{kin:"子孙午火"},{kin:"官鬼申金"},{kin:"妻财戌土",hostGuest:"世"}],yangCounts:[1,2,2,1,2,2]},{binary:"010100",id:"雷水解",sign:"䷧",phase:"木",palace:"震",palaceIndex:2,setupInfo:[{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"世"},{kin:"子孙午火"},{kin:"子孙午火"},{kin:"官鬼申金",hostGuest:"应"},{kin:"妻财戌土"}],yangCounts:[2,1,2,1,2,2]},{binary:"110100",id:"雷泽归妹",sign:"䷵",phase:"金",palace:"兑",palaceIndex:7,setupInfo:[{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"父母丑土",hostGuest:"世"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"父母戌土",hostGuest:"应"}],yangCounts:[1,1,2,1,2,2]},{binary:"001100",id:"雷山小过",sign:"䷽",phase:"金",palace:"兑",palaceIndex:6,setupInfo:[{kin:"父母辰土",hostGuest:"应"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"官鬼午火",hostGuest:"世"},{kin:"兄弟申金"},{kin:"父母戌土"}],yangCounts:[2,2,1,1,2,2]},{binary:"101100",id:"雷火丰",sign:"䷶",phase:"水",palace:"坎",palaceIndex:5,setupInfo:[{kin:"子孙卯木"},{kin:"官鬼丑土",hostGuest:"应"},{kin:"兄弟亥水"},{kin:"妻财午火"},{kin:"父母申金",hostGuest:"世"},{kin:"官鬼戌土"}],yangCounts:[1,2,1,1,2,2]},{binary:"011100",id:"雷风恒",sign:"䷟",phase:"木",palace:"震",palaceIndex:3,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水"},{kin:"官鬼酉金",hostGuest:"世"},{kin:"子孙午火"},{kin:"官鬼申金"},{kin:"妻财戌土",hostGuest:"应"}],yangCounts:[2,1,1,1,2,2]},{binary:"111100",id:"雷天大壮",sign:"䷡",phase:"土",palace:"坤",palaceIndex:4,setupInfo:[{kin:"妻财子水",hostGuest:"应"},{kin:"官鬼寅木"},{kin:"兄弟辰土"},{kin:"父母午火",hostGuest:"世"},{kin:"子孙申金"},{kin:"兄弟戌土"}],yangCounts:[1,1,1,1,2,2]},{binary:"000010",id:"水地比",sign:"䷇",phase:"土",palace:"坤",palaceIndex:7,setupInfo:[{kin:"兄弟未土"},{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"世"},{kin:"子孙申金"},{kin:"兄弟戌土"},{kin:"妻财子水",hostGuest:"应"}],yangCounts:[2,2,2,2,1,2]},{binary:"100010",id:"水雷屯",sign:"䷂",phase:"水",palace:"坎",palaceIndex:2,setupInfo:[{kin:"兄弟子水"},{kin:"子孙寅木",hostGuest:"世"},{kin:"官鬼辰土"},{kin:"父母申金"},{kin:"官鬼戌土",hostGuest:"应"},{kin:"兄弟子水"}],yangCounts:[1,2,2,2,1,2]},{binary:"010010",id:"坎为水",sign:"䷜",phase:"水",palace:"坎",palaceIndex:0,setupInfo:[{kin:"子孙寅木"},{kin:"官鬼辰土"},{kin:"妻财午火",hostGuest:"应"},{kin:"父母申金"},{kin:"官鬼戌土"},{kin:"兄弟子水",hostGuest:"世"}],yangCounts:[2,1,2,2,1,2]},{binary:"110010",id:"水泽节",sign:"䷻",phase:"水",palace:"坎",palaceIndex:1,setupInfo:[{kin:"妻财巳火",hostGuest:"世"},{kin:"子孙卯木"},{kin:"官鬼丑土"},{kin:"父母申金",hostGuest:"应"},{kin:"官鬼戌土"},{kin:"兄弟子水"}],yangCounts:[1,1,2,2,1,2]},{binary:"001010",id:"水山蹇",sign:"䷦",phase:"金",palace:"兑",palaceIndex:4,setupInfo:[{kin:"父母辰土",hostGuest:"应"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"兄弟申金",hostGuest:"世"},{kin:"父母戌土"},{kin:"子孙子水"}],yangCounts:[2,2,1,2,1,2]},{binary:"101010",id:"水火既济",sign:"䷾",phase:"水",palace:"坎",palaceIndex:3,setupInfo:[{kin:"子孙卯木"},{kin:"官鬼丑土"},{kin:"兄弟亥水",hostGuest:"世"},{kin:"父母申金"},{kin:"官鬼戌土"},{kin:"兄弟子水",hostGuest:"应"}],yangCounts:[1,2,1,2,1,2]},{binary:"011010",id:"水风井",sign:"䷯",phase:"木",palace:"震",palaceIndex:5,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水",hostGuest:"应"},{kin:"官鬼酉金"},{kin:"官鬼申金"},{kin:"妻财戌土",hostGuest:"世"},{kin:"父母子水"}],yangCounts:[2,1,1,2,1,2]},{binary:"111010",id:"水天需",sign:"䷄",phase:"土",palace:"坤",palaceIndex:6,setupInfo:[{kin:"妻财子水",hostGuest:"应"},{kin:"官鬼寅木"},{kin:"兄弟辰土"},{kin:"子孙申金",hostGuest:"世"},{kin:"兄弟戌土"},{kin:"妻财子水"}],yangCounts:[1,1,1,2,1,2]},{binary:"000110",id:"泽地萃",sign:"䷬",phase:"金",palace:"兑",palaceIndex:2,setupInfo:[{kin:"父母未土"},{kin:"官鬼巳火",hostGuest:"世"},{kin:"妻财卯木"},{kin:"子孙亥水"},{kin:"兄弟酉金",hostGuest:"应"},{kin:"父母未土"}],yangCounts:[2,2,2,1,1,2]},{binary:"100110",id:"泽雷随",sign:"䷐",phase:"木",palace:"震",palaceIndex:7,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"世"},{kin:"父母亥水"},{kin:"官鬼酉金"},{kin:"妻财未土",hostGuest:"应"}],yangCounts:[1,2,2,1,1,2]},{binary:"010110",id:"泽水困",sign:"䷮",phase:"金",palace:"兑",palaceIndex:1,setupInfo:[{kin:"妻财卯木",hostGuest:"世"},{kin:"父母辰土"},{kin:"官鬼午火"},{kin:"子孙亥水",hostGuest:"应"},{kin:"兄弟酉金"},{kin:"父母未土"}],yangCounts:[2,1,2,1,1,2]},{binary:"110110",id:"兑为泽",sign:"䷹",phase:"金",palace:"兑",palaceIndex:0,setupInfo:[{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"父母丑土",hostGuest:"应"},{kin:"子孙亥水"},{kin:"兄弟酉金"},{kin:"父母未土",hostGuest:"世"}],yangCounts:[1,1,2,1,1,2]},{binary:"001110",id:"泽山咸",sign:"䷞",phase:"金",palace:"兑",palaceIndex:3,setupInfo:[{kin:"父母辰土"},{kin:"官鬼午火"},{kin:"兄弟申金",hostGuest:"世"},{kin:"子孙亥水"},{kin:"兄弟酉金"},{kin:"父母未土",hostGuest:"应"}],yangCounts:[2,2,1,1,1,2]},{binary:"101110",id:"泽火革",sign:"䷰",phase:"水",palace:"坎",palaceIndex:4,setupInfo:[{kin:"子孙卯木",hostGuest:"应"},{kin:"官鬼丑土"},{kin:"兄弟亥水"},{kin:"兄弟亥水",hostGuest:"世"},{kin:"父母酉金"},{kin:"官鬼未土"}],yangCounts:[1,2,1,1,1,2]},{binary:"011110",id:"泽风大过",sign:"䷛",phase:"木",palace:"震",palaceIndex:6,setupInfo:[{kin:"妻财丑土",hostGuest:"应"},{kin:"父母亥水"},{kin:"官鬼酉金"},{kin:"父母亥水",hostGuest:"世"},{kin:"官鬼酉金"},{kin:"妻财未土"}],yangCounts:[2,1,1,1,1,2]},{binary:"111110",id:"泽天夬",sign:"䷪",phase:"土",palace:"坤",palaceIndex:5,setupInfo:[{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"应"},{kin:"兄弟辰土"},{kin:"妻财亥水"},{kin:"子孙酉金",hostGuest:"世"},{kin:"兄弟未土"}],yangCounts:[1,1,1,1,1,2]},{binary:"000001",id:"山地剥",sign:"䷖",phase:"金",palace:"乾",palaceIndex:5,setupInfo:[{kin:"父母未土"},{kin:"官鬼巳火",hostGuest:"应"},{kin:"妻财卯木"},{kin:"父母戌土"},{kin:"子孙子水",hostGuest:"世"},{kin:"妻财卯木"}],yangCounts:[2,2,2,2,2,1]},{binary:"100001",id:"山雷颐",sign:"䷚",phase:"木",palace:"巽",palaceIndex:6,setupInfo:[{kin:"父母子水",hostGuest:"应"},{kin:"兄弟寅木"},{kin:"妻财辰土"},{kin:"妻财戌土",hostGuest:"世"},{kin:"父母子水"},{kin:"兄弟寅木"}],yangCounts:[1,2,2,2,2,1]},{binary:"010001",id:"山水蒙",sign:"䷃",phase:"火",palace:"离",palaceIndex:4,setupInfo:[{kin:"父母寅木",hostGuest:"应"},{kin:"子孙辰土"},{kin:"兄弟午火"},{kin:"子孙戌土",hostGuest:"世"},{kin:"官鬼子水"},{kin:"父母寅木"}],yangCounts:[2,1,2,2,2,1]},{binary:"110001",id:"山泽损",sign:"䷨",phase:"土",palace:"艮",palaceIndex:3,setupInfo:[{kin:"父母巳火"},{kin:"官鬼卯木"},{kin:"兄弟丑土",hostGuest:"世"},{kin:"兄弟戌土"},{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"应"}],yangCounts:[1,1,2,2,2,1]},{binary:"001001",id:"艮为山",sign:"䷳",phase:"土",palace:"艮",palaceIndex:0,setupInfo:[{kin:"兄弟辰土"},{kin:"父母午火"},{kin:"子孙申金",hostGuest:"应"},{kin:"兄弟戌土"},{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"世"}],yangCounts:[2,2,1,2,2,1]},{binary:"101001",id:"山火贲",sign:"䷕",phase:"土",palace:"艮",palaceIndex:1,setupInfo:[{kin:"官鬼卯木",hostGuest:"世"},{kin:"兄弟丑土"},{kin:"妻财亥水"},{kin:"兄弟戌土",hostGuest:"应"},{kin:"妻财子水"},{kin:"官鬼寅木"}],yangCounts:[1,2,1,2,2,1]},{binary:"011001",id:"山风蛊",sign:"䷑",phase:"木",palace:"巽",palaceIndex:7,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水"},{kin:"官鬼酉金",hostGuest:"世"},{kin:"妻财戌土"},{kin:"父母子水"},{kin:"兄弟寅木",hostGuest:"应"}],yangCounts:[2,1,1,2,2,1]},{binary:"111001",id:"山天大畜",sign:"䷙",phase:"土",palace:"艮",palaceIndex:2,setupInfo:[{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"世"},{kin:"兄弟辰土"},{kin:"兄弟戌土"},{kin:"妻财子水",hostGuest:"应"},{kin:"官鬼寅木"}],yangCounts:[1,1,1,2,2,1]},{binary:"000101",id:"火地晋",sign:"䷢",phase:"金",palace:"乾",palaceIndex:6,setupInfo:[{kin:"父母未土",hostGuest:"应"},{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"兄弟酉金",hostGuest:"世"},{kin:"父母未土"},{kin:"官鬼巳火"}],yangCounts:[2,2,2,1,2,1]},{binary:"100101",id:"火雷噬嗑",sign:"䷔",phase:"木",palace:"巽",palaceIndex:5,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木",hostGuest:"应"},{kin:"妻财辰土"},{kin:"官鬼酉金"},{kin:"妻财未土",hostGuest:"世"},{kin:"子孙巳火"}],yangCounts:[1,2,2,1,2,1]},{binary:"010101",id:"火水未济",sign:"䷿",phase:"火",palace:"离",palaceIndex:3,setupInfo:[{kin:"父母寅木"},{kin:"子孙辰土"},{kin:"兄弟午火",hostGuest:"世"},{kin:"妻财酉金"},{kin:"子孙未土"},{kin:"兄弟巳火",hostGuest:"应"}],yangCounts:[2,1,2,1,2,1]},{binary:"110101",id:"火泽睽",sign:"䷥",phase:"土",palace:"艮",palaceIndex:4,setupInfo:[{kin:"父母巳火",hostGuest:"应"},{kin:"官鬼卯木"},{kin:"兄弟丑土"},{kin:"子孙酉金",hostGuest:"世"},{kin:"兄弟未土"},{kin:"父母巳火"}],yangCounts:[1,1,2,1,2,1]},{binary:"001101",id:"火山旅",sign:"䷷",phase:"火",palace:"离",palaceIndex:1,setupInfo:[{kin:"子孙辰土",hostGuest:"世"},{kin:"兄弟午火"},{kin:"妻财申金"},{kin:"妻财酉金",hostGuest:"应"},{kin:"子孙未土"},{kin:"兄弟巳火"}],yangCounts:[2,2,1,1,2,1]},{binary:"101101",id:"离为火",sign:"䷝",phase:"火",palace:"离",palaceIndex:0,setupInfo:[{kin:"父母卯木"},{kin:"子孙丑土"},{kin:"官鬼亥水",hostGuest:"应"},{kin:"妻财酉金"},{kin:"子孙未土"},{kin:"兄弟巳火",hostGuest:"世"}],yangCounts:[1,2,1,1,2,1]},{binary:"011101",id:"火风鼎",sign:"䷱",phase:"火",palace:"离",palaceIndex:2,setupInfo:[{kin:"子孙丑土"},{kin:"官鬼亥水",hostGuest:"世"},{kin:"妻财酉金"},{kin:"妻财酉金"},{kin:"子孙未土",hostGuest:"应"},{kin:"兄弟巳火"}],yangCounts:[2,1,1,1,2,1]},{binary:"111101",id:"火天大有",sign:"䷍",phase:"金",palace:"乾",palaceIndex:7,setupInfo:[{kin:"子孙子水"},{kin:"妻财寅木"},{kin:"父母辰土",hostGuest:"世"},{kin:"兄弟酉金"},{kin:"父母未土"},{kin:"官鬼巳火",hostGuest:"应"}],yangCounts:[1,1,1,1,2,1]},{binary:"000011",id:"风地观",sign:"䷓",phase:"金",palace:"乾",palaceIndex:4,setupInfo:[{kin:"父母未土",hostGuest:"应"},{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"父母未土",hostGuest:"世"},{kin:"官鬼巳火"},{kin:"妻财卯木"}],yangCounts:[2,2,2,2,1,1]},{binary:"100011",id:"风雷益",sign:"䷩",phase:"木",palace:"巽",palaceIndex:3,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"世"},{kin:"妻财未土"},{kin:"子孙巳火"},{kin:"兄弟卯木",hostGuest:"应"}],yangCounts:[1,2,2,2,1,1]},{binary:"010011",id:"风水涣",sign:"䷺",phase:"火",palace:"离",palaceIndex:5,setupInfo:[{kin:"父母寅木"},{kin:"子孙辰土",hostGuest:"应"},{kin:"兄弟午火"},{kin:"子孙未土"},{kin:"兄弟巳火",hostGuest:"世"},{kin:"父母卯木"}],yangCounts:[2,1,2,2,1,1]},{binary:"110011",id:"风泽中孚",sign:"䷼",phase:"土",palace:"艮",palaceIndex:6,setupInfo:[{kin:"父母巳火",hostGuest:"应"},{kin:"官鬼卯木"},{kin:"兄弟丑土"},{kin:"兄弟未土",hostGuest:"世"},{kin:"父母巳火"},{kin:"官鬼卯木"}],yangCounts:[1,1,2,2,1,1]},{binary:"001011",id:"风山渐",sign:"䷴",phase:"土",palace:"艮",palaceIndex:7,setupInfo:[{kin:"兄弟辰土"},{kin:"父母午火"},{kin:"子孙申金",hostGuest:"世"},{kin:"兄弟未土"},{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"应"}],yangCounts:[2,2,1,2,1,1]},{binary:"101011",id:"风火家人",sign:"䷤",phase:"木",palace:"巽",palaceIndex:2,setupInfo:[{kin:"兄弟卯木"},{kin:"妻财丑土",hostGuest:"世"},{kin:"父母亥水"},{kin:"妻财未土"},{kin:"子孙巳火",hostGuest:"应"},{kin:"兄弟卯木"}],yangCounts:[1,2,1,2,1,1]},{binary:"011011",id:"巽为风",sign:"䷸",phase:"木",palace:"巽",palaceIndex:0,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水"},{kin:"官鬼酉金",hostGuest:"应"},{kin:"妻财未土"},{kin:"子孙巳火"},{kin:"兄弟卯木",hostGuest:"世"}],yangCounts:[2,1,1,2,1,1]},{binary:"111011",id:"风天小畜",sign:"䷈",phase:"木",palace:"巽",palaceIndex:1,setupInfo:[{kin:"父母子水",hostGuest:"世"},{kin:"兄弟寅木"},{kin:"妻财辰土"},{kin:"妻财未土",hostGuest:"应"},{kin:"子孙巳火"},{kin:"兄弟卯木"}],yangCounts:[1,1,1,2,1,1]},{binary:"000111",id:"天地否",sign:"䷋",phase:"金",palace:"乾",palaceIndex:3,setupInfo:[{kin:"父母未土"},{kin:"官鬼巳火"},{kin:"妻财卯木",hostGuest:"世"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"父母戌土",hostGuest:"应"}],yangCounts:[2,2,2,1,1,1]},{binary:"100111",id:"天雷无妄",sign:"䷘",phase:"木",palace:"巽",palaceIndex:4,setupInfo:[{kin:"父母子水",hostGuest:"应"},{kin:"兄弟寅木"},{kin:"妻财辰土"},{kin:"子孙午火",hostGuest:"世"},{kin:"官鬼申金"},{kin:"妻财戌土"}],yangCounts:[1,2,2,1,1,1]},{binary:"010111",id:"天水讼",sign:"䷅",phase:"火",palace:"离",palaceIndex:6,setupInfo:[{kin:"父母寅木",hostGuest:"应"},{kin:"子孙辰土"},{kin:"兄弟午火"},{kin:"兄弟午火",hostGuest:"世"},{kin:"妻财申金"},{kin:"子孙戌土"}],yangCounts:[2,1,2,1,1,1]},{binary:"110111",id:"天泽履",sign:"䷉",phase:"土",palace:"艮",palaceIndex:5,setupInfo:[{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"应"},{kin:"兄弟丑土"},{kin:"父母午火"},{kin:"子孙申金",hostGuest:"世"},{kin:"兄弟戌土"}],yangCounts:[1,1,2,1,1,1]},{binary:"001111",id:"天山遁",sign:"䷠",phase:"金",palace:"乾",palaceIndex:2,setupInfo:[{kin:"父母辰土"},{kin:"官鬼午火",hostGuest:"世"},{kin:"兄弟申金"},{kin:"官鬼午火"},{kin:"兄弟申金",hostGuest:"应"},{kin:"父母戌土"}],yangCounts:[2,2,1,1,1,1]},{binary:"101111",id:"天火同人",sign:"䷌",phase:"火",palace:"离",palaceIndex:7,setupInfo:[{kin:"父母寅木"},{kin:"子孙辰土"},{kin:"兄弟午火",hostGuest:"世"},{kin:"子孙未土"},{kin:"父母巳火"},{kin:"子孙戌土",hostGuest:"应"}],yangCounts:[1,2,1,1,1,1]},{binary:"011111",id:"天风姤",sign:"䷫",phase:"金",palace:"乾",palaceIndex:1,setupInfo:[{kin:"父母丑土",hostGuest:"世"},{kin:"子孙亥水"},{kin:"兄弟酉金"},{kin:"官鬼午火",hostGuest:"应"},{kin:"兄弟申金"},{kin:"父母戌土"}],yangCounts:[2,1,1,1,1,1]},{binary:"111111",id:"乾为天",sign:"䷀",phase:"金",palace:"乾",palaceIndex:0,setupInfo:[{kin:"子孙子水"},{kin:"妻财寅木"},{kin:"父母辰土",hostGuest:"应"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"父母戌土",hostGuest:"世"}],yangCounts:[1,1,1,1,1,1]}]),d=Object.freeze([{id:"坤",binary:"000",yangCount:0,represents:"地",nameEn:"kun",representsEn:"earth",sign:"☷"},{id:"震",binary:"100",yangCount:1,represents:"雷",nameEn:"zhen",representsEn:"thunder",sign:"☳"},{id:"坎",binary:"010",yangCount:1,represents:"水",nameEn:"kan",representsEn:"water",sign:"☵"},{id:"兑",binary:"110",yangCount:2,represents:"泽",nameEn:"dui",representsEn:"lake",sign:"☱"},{id:"艮",binary:"001",yangCount:1,represents:"山",nameEn:"gen",representsEn:"mountain",sign:"☶"},{id:"离",binary:"101",yangCount:2,represents:"火",nameEn:"li",representsEn:"fire",sign:"☲"},{id:"巽",binary:"011",yangCount:2,represents:"风",nameEn:"xun",representsEn:"wind",sign:"☴"},{id:"乾",binary:"111",yangCount:3,represents:"天",nameEn:"qian",representsEn:"heaven",sign:"☰"}]),l=["老阴","少阳","少阴","老阳"],p="交单拆重",g="×’”○",y=[1,1,2,2],m=[0,1,0,1];function G(n){if(0!==n&&1!==n&&2!==n&&3!==n)throw new Error("Count of yang must be 0, 1, 2 or 3")}class I{static getName(n){return l[n]}static fromSymbol(n){const e=g.indexOf(n);return-1!==e?new I(e):null}static fromSymbolName(n){const e=p.indexOf(n);return-1!==e?new I(e):null}static fromName(n){const e=l.indexOf(n);return-1!==e?new I(e):null}static fromDigitString(n){const e="0123".indexOf(n);return-1!==e?new I(e):null}static fromTrigramField(n){const e=d.find(e=>e.id===n||e.yangCount===n||e.binary===n||e.nameEn===n||e.represents===n||e.representsEn===n||e.sign===n);return e?new I(e.yangCount):null}_yangCount;get yangCount(){return this._yangCount}get polar(){return m[this.yangCount]}get isDynamic(){return 0===this.yangCount||3===this.yangCount}isChanged;get symbol(){return g[this.yangCount]}get symbolName(){return p[this.yangCount]}get name(){return l[this.yangCount]}constructor(n,e=!1){G(n),this._yangCount=n,this.isChanged=e}set(n){G(n),this._yangCount=n}clone(){return new I(this.yangCount,this.isChanged)}toChanged(){return this.isDynamic?new I(y[this.yangCount],!0):new I(this.yangCount,!1)}}const C=["初爻","二爻","三爻","四爻","五爻","上爻"];class x{static fromQuaternary(n){const e=n.split("").map(I.fromDigitString);return e.every(n=>null!==n)?new x(e):null}static fromSymbolName(n){const e=n.split("").map(I.fromSymbolName);return e.every(n=>null!==n)?new x(e):null}static fromYangCounts(n){try{return new x(n.map(n=>new I(n)))}catch{return null}}static fromId(n){const e=h.find(e=>e.id===n||e.id.slice(2)===n||e.id.startsWith(n)&&n.length>1);return e?x.fromYangCounts(e.yangCounts):null}static fromPalace(n){const e=h.find(e=>e.id[2]===n);return e?x.fromYangCounts(e.yangCounts):null}yaos;get info(){return h.find(n=>n.binary===this.yaos.map(n=>n.polar).join(""))}get palace(){const n=this.info;return`${n.palace}宫(${n.phase})${k[n.palaceIndex].name}`}get isDynamic(){return this.yaos.some(n=>n.isDynamic||n.isChanged)}get isChanged(){return this.yaos.some(n=>n.isChanged)}get dynamicOuter(){return this.yaos.slice(3).some(n=>n.isDynamic||n.isChanged)}get dynamicInner(){return this.yaos.slice(0,3).some(n=>n.isDynamic||n.isChanged)}constructor(n){if(6!==n.length)throw new Error("Array length mismatch, A Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang");if(!n.every(n=>n instanceof I))throw new Error("Invalid Arguments, Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang");this.yaos=n.map(n=>n.clone())}setYao(n,e){this.yaos[n].set(e)}toChanged(){if(!this.isDynamic)return null;if(this.isChanged)throw new Error("已经是变卦了,无法再变");return new x(this.yaos.map(n=>n.toChanged()))}toDescription(){const n=this.info.setupInfo.findIndex(n=>"世"===n.hostGuest),e=this.info.setupInfo.findIndex(n=>"应"===n.hostGuest),s=[`本卦${this.info.id}`,`世爻为${C[n]}`,`应爻为${C[e]}`],t=this.toChanged();if(t){s.push(`${this.yaos.map((n,e)=>n.isDynamic?`${C[e]}`:null).filter(n=>null!==n).join("、")}是动爻`),s.push(`变卦为${t.info.id}`);const n=t.info.setupInfo.findIndex(n=>"世"===n.hostGuest);this.yaos[n].isDynamic?s.push(`变卦世爻为${C[n]}`):s.push("未变出新的世爻");const e=t.info.setupInfo.findIndex(n=>"应"===n.hostGuest);this.yaos[e].isDynamic?s.push(`变卦应爻为${C[e]}`):s.push("未变出新的应爻")}else s.push("无动爻");return s.join(",")}toAIReadable(){const n=this.info.setupInfo,e=this.toChanged(),s=e?.info.setupInfo,t=[];if(s){const n=this.yaos.map((n,e)=>n.isDynamic?e:null).filter(n=>null!==n);s.forEach((s,a)=>{n.includes(a)&&("世"===s.hostGuest&&t.push(`新世爻为${e.info.id}的${C[a]}`),"应"===s.hostGuest&&t.push(`新应爻为${e.info.id}的${C[a]}`))})}else t.push("没有新的世应爻出现,世应不变");return{"本卦":{"上爻":{"爻":this.yaos[5].name,"类型":n[5].hostGuest||null,"六亲地支五行":n[5].kin},"五爻":{"爻":this.yaos[4].name,"类型":n[4].hostGuest||null,"六亲地支五行":n[4].kin},"四爻":{"爻":this.yaos[3].name,"类型":n[3].hostGuest||null,"六亲地支五行":n[3].kin},"三爻":{"爻":this.yaos[2].name,"类型":n[2].hostGuest||null,"六亲地支五行":n[2].kin},"二爻":{"爻":this.yaos[1].name,"类型":n[1].hostGuest||null,"六亲地支五行":n[1].kin},"初爻":{"爻":this.yaos[0].name,"类型":n[0].hostGuest||null,"六亲地支五行":n[0].kin},"卦名":this.info.id,"宫":this.palace,"变爻":this.isDynamic?this.yaos.map((n,e)=>n.isDynamic?C[e]:null).filter(n=>null!==n):void 0},"变卦":s?{"上爻":{"爻":e.yaos[5].name,"类型":s[5].hostGuest||null,"六亲地支五行":s[5].kin},"五爻":{"爻":e.yaos[4].name,"类型":s[4].hostGuest||null,"六亲地支五行":s[4].kin},"四爻":{"爻":e.yaos[3].name,"类型":s[3].hostGuest||null,"六亲地支五行":s[3].kin},"三爻":{"爻":e.yaos[2].name,"类型":s[2].hostGuest||null,"六亲地支五行":s[2].kin},"二爻":{"爻":e.yaos[1].name,"类型":s[1].hostGuest||null,"六亲地支五行":s[1].kin},"初爻":{"爻":e.yaos[0].name,"类型":s[0].hostGuest||null,"六亲地支五行":s[0].kin},"卦名":e.info.id,"宫":e.palace}:null,"世应变化":t.join(",")}}clone(){return new x(this.yaos)}toString(){return this.info.id}[Symbol.toPrimitive](){return this.info.id}}const D=Object.freeze([{heavenlyStem:"甲",gods:["青龙","朱雀","勾陈","螣蛇","白虎","玄武"]},{heavenlyStem:"乙",gods:["青龙","朱雀","勾陈","螣蛇","白虎","玄武"]},{heavenlyStem:"丙",gods:["朱雀","勾陈","螣蛇","白虎","玄武","青龙"]},{heavenlyStem:"丁",gods:["朱雀","勾陈","螣蛇","白虎","玄武","青龙"]},{heavenlyStem:"戊",gods:["勾陈","螣蛇","白虎","玄武","青龙","朱雀"]},{heavenlyStem:"己",gods:["螣蛇","白虎","玄武","青龙","朱雀","勾陈"]},{heavenlyStem:"庚",gods:["白虎","玄武","青龙","朱雀","勾陈","螣蛇"]},{heavenlyStem:"辛",gods:["白虎","玄武","青龙","朱雀","勾陈","螣蛇"]},{heavenlyStem:"壬",gods:["玄武","青龙","朱雀","勾陈","螣蛇","白虎"]},{heavenlyStem:"癸",gods:["玄武","青龙","朱雀","勾陈","螣蛇","白虎"]}]);console.dir({version:'"2026-05-17T23:03:38.032Z"',"卦象":function(){const n=process.argv[2];if(!n)return null;const e=n.split("").map(I.fromTrigramField);return e.every(n=>null!==n)&&e.length>=6?new x(e):x.fromQuaternary(n)||x.fromId(n)||x.fromSymbolName(n)}()?.toAIReadable(),"时辰信息":function(){const n=process.argv[3],e=new Date(n);if(Number.isNaN(e.getTime()))return null;const s=r.solar2lunar(e.getFullYear(),e.getMonth()+1,e.getDate());if(-1===s)return null;const t=D.find(n=>n.heavenlyStem===s.gzDay[0]).gods;return{"年":s.gzYear,"月":s.gzMonth,"日":s.gzDay,"时":(a=e,"子丑丑寅寅卯卯辰辰巳巳午午未未申申酉酉戌戌亥亥子"[a.getHours()]??"未知"),"六神顺序":{"上爻":t[5],"五爻":t[4],"四爻":t[3],"三爻":t[2],"二爻":t[1],"初爻":t[0]}};var a}()},{depth:6});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "liuyao",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Kasukabe Tsumugi",
|
|
6
6
|
"email": "futami16237@gmail.com"
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"import": "./dist/index.mjs",
|
|
17
17
|
"default": "./dist/index.mjs"
|
|
18
18
|
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"skill": "rollup -c ./rollup.config.skill.mjs"
|
|
21
|
+
},
|
|
19
22
|
"files": [
|
|
20
23
|
"dist"
|
|
21
24
|
],
|
|
@@ -37,5 +40,8 @@
|
|
|
37
40
|
"bugs": {
|
|
38
41
|
"url": "https://github.com/baendlorel/kt-packages/issues"
|
|
39
42
|
},
|
|
40
|
-
"homepage": "https://github.com/baendlorel/kt-packages/tree/main/packages/liuyao#readme"
|
|
41
|
-
|
|
43
|
+
"homepage": "https://github.com/baendlorel/kt-packages/tree/main/packages/liuyao#readme",
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"solarlunar": "^3.1.0"
|
|
46
|
+
}
|
|
47
|
+
}
|