@gracefullight/saju 0.5.0 → 0.6.0

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.
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { analyzeTenGods, countElements, countTenGods, getBranchElement, getHiddenStems, getStemElement, getStemPolarity, getTenGod, } from "../core/ten-gods";
2
+ import { analyzeTenGods, countElements, countTenGods, getBranchElement, getHiddenStems, getStemElement, getStemPolarity, getTenGodKey, getTenGodLabel, } from "../core/ten-gods";
3
3
  describe("ten-gods", () => {
4
4
  describe("getStemElement", () => {
5
5
  it("returns correct element for each stem", () => {
@@ -42,46 +42,60 @@ describe("ten-gods", () => {
42
42
  expect(getHiddenStems("午")).toEqual(["丁", "己"]);
43
43
  });
44
44
  });
45
- describe("getTenGod", () => {
46
- it("correctly identifies 비견 (same element, same polarity)", () => {
47
- expect(getTenGod("甲", "甲")).toBe("비견");
48
- expect(getTenGod("乙", "乙")).toBe("비견");
49
- });
50
- it("correctly identifies 겁재 (same element, different polarity)", () => {
51
- expect(getTenGod("甲", "乙")).toBe("겁재");
52
- expect(getTenGod("乙", "甲")).toBe("겁재");
53
- });
54
- it("correctly identifies 식신 (I generate, same polarity)", () => {
55
- expect(getTenGod("甲", "丙")).toBe("식신");
56
- expect(getTenGod("丙", "戊")).toBe("식신");
57
- });
58
- it("correctly identifies 상관 (I generate, different polarity)", () => {
59
- expect(getTenGod("甲", "丁")).toBe("상관");
60
- expect(getTenGod("丙", "己")).toBe("상관");
61
- });
62
- it("correctly identifies 편재 (I control, same polarity)", () => {
63
- expect(getTenGod("甲", "戊")).toBe("편재");
64
- expect(getTenGod("丙", "庚")).toBe("편재");
65
- });
66
- it("correctly identifies 정재 (I control, different polarity)", () => {
67
- expect(getTenGod("甲", "己")).toBe("정재");
68
- expect(getTenGod("丙", "辛")).toBe("정재");
69
- });
70
- it("correctly identifies 편관 (controls me, same polarity)", () => {
71
- expect(getTenGod("甲", "庚")).toBe("편관");
72
- expect(getTenGod("丙", "壬")).toBe("편관");
73
- });
74
- it("correctly identifies 정관 (controls me, different polarity)", () => {
75
- expect(getTenGod("甲", "辛")).toBe("정관");
76
- expect(getTenGod("丙", "癸")).toBe("정관");
77
- });
78
- it("correctly identifies 편인 (generates me, same polarity)", () => {
79
- expect(getTenGod("甲", "壬")).toBe("편인");
80
- expect(getTenGod("丙", "甲")).toBe("편인");
81
- });
82
- it("correctly identifies 정인 (generates me, different polarity)", () => {
83
- expect(getTenGod("甲", "癸")).toBe("정인");
84
- expect(getTenGod("丙", "乙")).toBe("정인");
45
+ describe("getTenGodKey", () => {
46
+ it("correctly identifies companion (same element, same polarity)", () => {
47
+ expect(getTenGodKey("甲", "甲")).toBe("companion");
48
+ expect(getTenGodKey("乙", "乙")).toBe("companion");
49
+ });
50
+ it("correctly identifies robWealth (same element, different polarity)", () => {
51
+ expect(getTenGodKey("甲", "乙")).toBe("robWealth");
52
+ expect(getTenGodKey("乙", "甲")).toBe("robWealth");
53
+ });
54
+ it("correctly identifies eatingGod (I generate, same polarity)", () => {
55
+ expect(getTenGodKey("甲", "丙")).toBe("eatingGod");
56
+ expect(getTenGodKey("丙", "戊")).toBe("eatingGod");
57
+ });
58
+ it("correctly identifies hurtingOfficer (I generate, different polarity)", () => {
59
+ expect(getTenGodKey("甲", "丁")).toBe("hurtingOfficer");
60
+ expect(getTenGodKey("丙", "己")).toBe("hurtingOfficer");
61
+ });
62
+ it("correctly identifies indirectWealth (I control, same polarity)", () => {
63
+ expect(getTenGodKey("甲", "戊")).toBe("indirectWealth");
64
+ expect(getTenGodKey("丙", "庚")).toBe("indirectWealth");
65
+ });
66
+ it("correctly identifies directWealth (I control, different polarity)", () => {
67
+ expect(getTenGodKey("甲", "己")).toBe("directWealth");
68
+ expect(getTenGodKey("丙", "辛")).toBe("directWealth");
69
+ });
70
+ it("correctly identifies sevenKillings (controls me, same polarity)", () => {
71
+ expect(getTenGodKey("甲", "庚")).toBe("sevenKillings");
72
+ expect(getTenGodKey("丙", "壬")).toBe("sevenKillings");
73
+ });
74
+ it("correctly identifies directOfficer (controls me, different polarity)", () => {
75
+ expect(getTenGodKey("甲", "辛")).toBe("directOfficer");
76
+ expect(getTenGodKey("丙", "癸")).toBe("directOfficer");
77
+ });
78
+ it("correctly identifies indirectSeal (generates me, same polarity)", () => {
79
+ expect(getTenGodKey("甲", "壬")).toBe("indirectSeal");
80
+ expect(getTenGodKey("丙", "甲")).toBe("indirectSeal");
81
+ });
82
+ it("correctly identifies directSeal (generates me, different polarity)", () => {
83
+ expect(getTenGodKey("甲", "癸")).toBe("directSeal");
84
+ expect(getTenGodKey("丙", "乙")).toBe("directSeal");
85
+ });
86
+ });
87
+ describe("getTenGodLabel", () => {
88
+ it("returns correct Korean labels", () => {
89
+ expect(getTenGodLabel("companion").korean).toBe("비견");
90
+ expect(getTenGodLabel("robWealth").korean).toBe("겁재");
91
+ expect(getTenGodLabel("eatingGod").korean).toBe("식신");
92
+ expect(getTenGodLabel("hurtingOfficer").korean).toBe("상관");
93
+ expect(getTenGodLabel("indirectWealth").korean).toBe("편재");
94
+ expect(getTenGodLabel("directWealth").korean).toBe("정재");
95
+ expect(getTenGodLabel("sevenKillings").korean).toBe("편관");
96
+ expect(getTenGodLabel("directOfficer").korean).toBe("정관");
97
+ expect(getTenGodLabel("indirectSeal").korean).toBe("편인");
98
+ expect(getTenGodLabel("directSeal").korean).toBe("정인");
85
99
  });
86
100
  });
87
101
  describe("analyzeTenGods", () => {
@@ -1,86 +1,90 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { analyzeTwelveStages, getTwelveStage, STAGE_INFO, TWELVE_STAGES, } from "../core/twelve-stages";
2
+ import { analyzeTwelveStages, getTwelveStageLabel, TWELVE_STAGES } from "../core/twelve-stages";
3
3
  describe("twelve-stages", () => {
4
- describe("getTwelveStage", () => {
4
+ describe("analyzeTwelveStages", () => {
5
+ it("should analyze all four pillars", () => {
6
+ const result = analyzeTwelveStages("甲子", "丙寅", "戊辰", "庚午");
7
+ expect(result.year).toBeDefined();
8
+ expect(result.month).toBeDefined();
9
+ expect(result.day).toBeDefined();
10
+ expect(result.hour).toBeDefined();
11
+ expect(TWELVE_STAGES).toContain(result.year.key);
12
+ expect(TWELVE_STAGES).toContain(result.month.key);
13
+ expect(TWELVE_STAGES).toContain(result.day.key);
14
+ expect(TWELVE_STAGES).toContain(result.hour.key);
15
+ });
16
+ it("should correctly analyze 戊 day master", () => {
17
+ const result = analyzeTwelveStages("甲子", "丙寅", "戊辰", "庚午");
18
+ expect(result.month.key).toBe("longLife");
19
+ expect(result.hour.key).toBe("imperial");
20
+ });
5
21
  it("should return longLife for 甲 at 亥", () => {
6
- expect(getTwelveStage("", "")).toBe("longLife");
22
+ const result = analyzeTwelveStages("甲亥", "甲亥", "甲亥", "甲亥");
23
+ expect(result.year.key).toBe("longLife");
7
24
  });
8
25
  it("should return imperial for 甲 at 卯", () => {
9
- expect(getTwelveStage("", "")).toBe("imperial");
26
+ const result = analyzeTwelveStages("甲卯", "甲卯", "甲卯", "甲卯");
27
+ expect(result.year.key).toBe("imperial");
10
28
  });
11
29
  it("should return tomb for 甲 at 未", () => {
12
- expect(getTwelveStage("", "")).toBe("tomb");
30
+ const result = analyzeTwelveStages("甲未", "甲未", "甲未", "甲未");
31
+ expect(result.year.key).toBe("tomb");
13
32
  });
14
33
  it("should return longLife for 乙 at 午", () => {
15
- expect(getTwelveStage("", "")).toBe("longLife");
34
+ const result = analyzeTwelveStages("乙午", "乙午", "乙午", "乙午");
35
+ expect(result.year.key).toBe("longLife");
16
36
  });
17
37
  it("should return imperial for 乙 at 寅", () => {
18
- expect(getTwelveStage("", "")).toBe("imperial");
38
+ const result = analyzeTwelveStages("乙寅", "乙寅", "乙寅", "乙寅");
39
+ expect(result.year.key).toBe("imperial");
19
40
  });
20
41
  it("should return longLife for 丙 at 寅", () => {
21
- expect(getTwelveStage("", "")).toBe("longLife");
42
+ const result = analyzeTwelveStages("丙寅", "丙寅", "丙寅", "丙寅");
43
+ expect(result.year.key).toBe("longLife");
22
44
  });
23
45
  it("should return imperial for 丙 at 午", () => {
24
- expect(getTwelveStage("", "")).toBe("imperial");
46
+ const result = analyzeTwelveStages("丙午", "丙午", "丙午", "丙午");
47
+ expect(result.year.key).toBe("imperial");
25
48
  });
26
49
  it("should return longLife for 庚 at 巳", () => {
27
- expect(getTwelveStage("", "")).toBe("longLife");
50
+ const result = analyzeTwelveStages("庚巳", "庚巳", "庚巳", "庚巳");
51
+ expect(result.year.key).toBe("longLife");
28
52
  });
29
53
  it("should return imperial for 庚 at 酉", () => {
30
- expect(getTwelveStage("", "")).toBe("imperial");
54
+ const result = analyzeTwelveStages("庚酉", "庚酉", "庚酉", "庚酉");
55
+ expect(result.year.key).toBe("imperial");
31
56
  });
32
57
  it("should return longLife for 壬 at 申", () => {
33
- expect(getTwelveStage("", "")).toBe("longLife");
58
+ const result = analyzeTwelveStages("壬申", "壬申", "壬申", "壬申");
59
+ expect(result.year.key).toBe("longLife");
34
60
  });
35
61
  it("should return imperial for 壬 at 子", () => {
36
- expect(getTwelveStage("", "")).toBe("imperial");
37
- });
38
- it("should throw error for invalid stem", () => {
39
- expect(() => getTwelveStage("X", "子")).toThrow("Invalid stem: X");
40
- });
41
- it("should throw error for invalid branch", () => {
42
- expect(() => getTwelveStage("甲", "X")).toThrow("Invalid branch: X");
43
- });
44
- });
45
- describe("analyzeTwelveStages", () => {
46
- it("should analyze all four pillars", () => {
47
- const result = analyzeTwelveStages("甲子", "丙寅", "戊辰", "庚午");
48
- expect(result.year).toBeDefined();
49
- expect(result.month).toBeDefined();
50
- expect(result.day).toBeDefined();
51
- expect(result.hour).toBeDefined();
52
- expect(TWELVE_STAGES).toContain(result.year.key);
53
- expect(TWELVE_STAGES).toContain(result.month.key);
54
- expect(TWELVE_STAGES).toContain(result.day.key);
55
- expect(TWELVE_STAGES).toContain(result.hour.key);
56
- });
57
- it("should correctly analyze 戊 day master", () => {
58
- const result = analyzeTwelveStages("甲子", "丙寅", "戊辰", "庚午");
59
- expect(result.month.key).toBe("longLife");
60
- expect(result.hour.key).toBe("imperial");
62
+ const result = analyzeTwelveStages("壬子", "壬子", "壬子", "壬子");
63
+ expect(result.year.key).toBe("imperial");
61
64
  });
62
65
  });
63
- describe("STAGE_INFO", () => {
66
+ describe("getTwelveStageLabel", () => {
64
67
  it("should have info for all twelve stages", () => {
65
68
  for (const stage of TWELVE_STAGES) {
66
- expect(STAGE_INFO[stage]).toBeDefined();
67
- expect(STAGE_INFO[stage].korean).toBeDefined();
68
- expect(STAGE_INFO[stage].hanja).toBeDefined();
69
- expect(STAGE_INFO[stage].meaning).toBeDefined();
70
- expect(["strong", "neutral", "weak"]).toContain(STAGE_INFO[stage].strength);
69
+ const label = getTwelveStageLabel(stage);
70
+ expect(label.key).toBe(stage);
71
+ expect(label.korean).toBeDefined();
72
+ expect(label.hanja).toBeDefined();
73
+ expect(label.meaning).toBeDefined();
74
+ expect(["strong", "neutral", "weak"]).toContain(label.strength);
71
75
  }
72
76
  });
73
77
  it("should have correct korean names", () => {
74
- expect(STAGE_INFO.longLife.korean).toBe("장생");
75
- expect(STAGE_INFO.bathing.korean).toBe("목욕");
76
- expect(STAGE_INFO.imperial.korean).toBe("제왕");
77
- expect(STAGE_INFO.death.korean).toBe("사");
78
+ expect(getTwelveStageLabel("longLife").korean).toBe("장생");
79
+ expect(getTwelveStageLabel("bathing").korean).toBe("목욕");
80
+ expect(getTwelveStageLabel("imperial").korean).toBe("제왕");
81
+ expect(getTwelveStageLabel("death").korean).toBe("사");
78
82
  });
79
83
  it("should have correct strength classifications", () => {
80
- expect(STAGE_INFO.longLife.strength).toBe("strong");
81
- expect(STAGE_INFO.imperial.strength).toBe("strong");
82
- expect(STAGE_INFO.decline.strength).toBe("weak");
83
- expect(STAGE_INFO.tomb.strength).toBe("neutral");
84
+ expect(getTwelveStageLabel("longLife").strength).toBe("strong");
85
+ expect(getTwelveStageLabel("imperial").strength).toBe("strong");
86
+ expect(getTwelveStageLabel("decline").strength).toBe("weak");
87
+ expect(getTwelveStageLabel("tomb").strength).toBe("neutral");
84
88
  });
85
89
  });
86
90
  });
@@ -1 +1 @@
1
- {"version":3,"file":"luck.d.ts","sourceRoot":"","sources":["../../src/core/luck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"luck.d.ts","sourceRoot":"","sources":["../../src/core/luck.ts"],"names":[],"mappings":"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"}
package/dist/core/luck.js CHANGED
@@ -24,7 +24,8 @@ export function calculateMajorLuck(adapter, birthDateTime, gender, yearPillar, m
24
24
  const years = Math.floor(totalMonths / 12);
25
25
  const months = totalMonths % 12;
26
26
  const days = Math.round(((daysToTerm / 3) * 12 - totalMonths) * 30);
27
- const startAge = years;
27
+ // 전통적으로 6개월 이상이면 반올림하여 1년 추가
28
+ const startAge = months >= 6 ? years + 1 : years;
28
29
  const startAgeDetail = { years, months, days: Math.abs(days) };
29
30
  const monthIdx60 = getPillarIndex(monthPillar);
30
31
  const pillars = [];
@@ -15,8 +15,6 @@ export type PunishmentTypeKey = (typeof PUNISHMENT_TYPE_KEYS)[number];
15
15
  export interface PunishmentTypeLabel extends Label<PunishmentTypeKey> {
16
16
  }
17
17
  export declare function getPunishmentTypeLabel(key: PunishmentTypeKey): PunishmentTypeLabel;
18
- /** @deprecated Use TransformationStatusKey instead */
19
- export type TransformationStatus = "합" | "반합" | "화" | "불화";
20
18
  export type StemCombinationResult = {
21
19
  stems: [string, string];
22
20
  resultElement: Element;
@@ -1 +1 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/core/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/core/relations.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import type { Label, PillarPosition } from "../types";
2
2
  export declare const SINSALS: readonly ["peachBlossom", "skyHorse", "floweryCanopy", "ghostGate", "solitaryStar", "widowStar", "heavenlyVirtue", "monthlyVirtue", "skyNoble", "moonNoble", "literaryNoble", "academicHall", "bloodKnife", "sixHarms", "whiteCloth", "heavenlyDoctor"];
3
3
  export type SinsalKey = (typeof SINSALS)[number];
4
- /**
5
- * @deprecated Use SinsalKey instead
6
- */
7
- export type Sinsal = SinsalKey;
8
4
  export type SinsalType = "auspicious" | "inauspicious" | "neutral";
9
5
  export interface SinsalLabel extends Label<SinsalKey> {
10
6
  meaning: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sinsals.d.ts","sourceRoot":"","sources":["../../src/core/sinsals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,OAAO,yPAiBV,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC;AAE/B,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AA+LD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;CACvD;AA6CD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,YAAY,CAqId;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,SAAS,EACT;IACE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB,CAmFF,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,CAS1D"}
1
+ {"version":3,"file":"sinsals.d.ts","sourceRoot":"","sources":["../../src/core/sinsals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,OAAO,yPAiBV,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AA+LD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;CACvD;AA6CD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,YAAY,CAqId;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,SAAS,EACT;IACE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB,CAmFF,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,CAS1D"}
@@ -4,10 +4,6 @@ export type StrengthLevelKey = (typeof STRENGTH_LEVEL_KEYS)[number];
4
4
  export interface StrengthLevelLabel extends Label<StrengthLevelKey> {
5
5
  }
6
6
  export declare function getStrengthLevelLabel(key: StrengthLevelKey): StrengthLevelLabel;
7
- /** @deprecated Use StrengthLevelKey instead */
8
- export type StrengthLevel = "극약" | "태약" | "신약" | "중화신약" | "중화" | "중화신강" | "신강" | "태강" | "극왕";
9
- /** @deprecated Use STRENGTH_LEVEL_KEYS instead */
10
- export declare const STRENGTH_LEVELS: StrengthLevel[];
11
7
  export interface StrengthFactors {
12
8
  deukryeong: number;
13
9
  deukji: number;
@@ -1 +1 @@
1
- {"version":3,"file":"strength.d.ts","sourceRoot":"","sources":["../../src/core/strength.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,eAAO,MAAM,mBAAmB,sIAUtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;CAAG;AActE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,CAG/E;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,IAAI,GACJ,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,kDAAkD;AAClD,eAAO,MAAM,eAAe,EAAE,aAAa,EAU1C,CAAC;AAsKF,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,cAAc,CAsGhB"}
1
+ {"version":3,"file":"strength.d.ts","sourceRoot":"","sources":["../../src/core/strength.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AASrC,eAAO,MAAM,mBAAmB,sIAUtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;CAAG;AActE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,CAG/E;AAgLD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,cAAc,CAsGhB"}
@@ -1,4 +1,4 @@
1
- import { getStemElement, getStemPolarity, getTenGod } from "./ten-gods";
1
+ import { getStemElement, getStemPolarity, getTenGodKey, } from "./ten-gods";
2
2
  export const STRENGTH_LEVEL_KEYS = [
3
3
  "extremelyWeak",
4
4
  "veryWeak",
@@ -25,18 +25,6 @@ export function getStrengthLevelLabel(key) {
25
25
  const data = STRENGTH_LEVEL_DATA[key];
26
26
  return { key, ...data };
27
27
  }
28
- /** @deprecated Use STRENGTH_LEVEL_KEYS instead */
29
- export const STRENGTH_LEVELS = [
30
- "극약",
31
- "태약",
32
- "신약",
33
- "중화신약",
34
- "중화",
35
- "중화신강",
36
- "신강",
37
- "태강",
38
- "극왕",
39
- ];
40
28
  const HIDDEN_STEM_WEIGHTS = {
41
29
  子: [{ stem: "癸", weight: 1.0, type: "본기" }],
42
30
  丑: [
@@ -174,11 +162,20 @@ function calculateRootStrength(dayMaster, branch) {
174
162
  function isTransparent(stem, allStems) {
175
163
  return allStems.includes(stem);
176
164
  }
165
+ const HELPFUL_TEN_GODS = ["companion", "robWealth", "directSeal", "indirectSeal"];
166
+ const WEAKENING_TEN_GODS = [
167
+ "eatingGod",
168
+ "hurtingOfficer",
169
+ "indirectWealth",
170
+ "directWealth",
171
+ "sevenKillings",
172
+ "directOfficer",
173
+ ];
177
174
  function isHelpfulTenGod(tenGod) {
178
- return ["비견", "겁재", "정인", "편인"].includes(tenGod);
175
+ return HELPFUL_TEN_GODS.includes(tenGod);
179
176
  }
180
177
  function isWeakeningTenGod(tenGod) {
181
- return ["식신", "상관", "편재", "정재", "편관", "정관"].includes(tenGod);
178
+ return WEAKENING_TEN_GODS.includes(tenGod);
182
179
  }
183
180
  export function analyzeStrength(yearPillar, monthPillar, dayPillar, hourPillar) {
184
181
  const dayMaster = dayPillar[0];
@@ -195,7 +192,7 @@ export function analyzeStrength(yearPillar, monthPillar, dayPillar, hourPillar)
195
192
  let transparentBonus = 0;
196
193
  for (const hs of monthHiddenStems) {
197
194
  if (isTransparent(hs.stem, allStems)) {
198
- const tenGod = getTenGod(dayMaster, hs.stem);
195
+ const tenGod = getTenGodKey(dayMaster, hs.stem);
199
196
  if (isHelpfulTenGod(tenGod)) {
200
197
  transparentBonus += hs.weight * 0.3;
201
198
  }
@@ -209,7 +206,7 @@ export function analyzeStrength(yearPillar, monthPillar, dayPillar, hourPillar)
209
206
  let deukse = 0;
210
207
  const otherStems = [yearPillar[0], monthPillar[0], hourPillar[0]];
211
208
  for (const stem of otherStems) {
212
- const tenGod = getTenGod(dayMaster, stem);
209
+ const tenGod = getTenGodKey(dayMaster, stem);
213
210
  if (isHelpfulTenGod(tenGod)) {
214
211
  deukse += 1;
215
212
  }
@@ -217,7 +214,7 @@ export function analyzeStrength(yearPillar, monthPillar, dayPillar, hourPillar)
217
214
  let helpCount = 0;
218
215
  let weakenCount = 0;
219
216
  for (const stem of otherStems) {
220
- const tenGod = getTenGod(dayMaster, stem);
217
+ const tenGod = getTenGodKey(dayMaster, stem);
221
218
  if (isHelpfulTenGod(tenGod))
222
219
  helpCount++;
223
220
  if (isWeakeningTenGod(tenGod))
@@ -227,7 +224,7 @@ export function analyzeStrength(yearPillar, monthPillar, dayPillar, hourPillar)
227
224
  const hiddenStems = HIDDEN_STEM_WEIGHTS[branch] || [];
228
225
  const mainStem = hiddenStems[0]?.stem;
229
226
  if (mainStem) {
230
- const tenGod = getTenGod(dayMaster, mainStem);
227
+ const tenGod = getTenGodKey(dayMaster, mainStem);
231
228
  if (isHelpfulTenGod(tenGod))
232
229
  helpCount++;
233
230
  if (isWeakeningTenGod(tenGod))
@@ -16,6 +16,7 @@ export declare function getStemPolarity(stem: string): Polarity;
16
16
  export declare function getBranchElement(branch: string): Element;
17
17
  export declare function getBranchPolarity(branch: string): Polarity;
18
18
  export declare function getHiddenStems(branch: string): string[];
19
+ export declare function getTenGodKey(dayMaster: string, targetStem: string): TenGodKey;
19
20
  export declare function getTenGodForBranch(dayMaster: string, branch: string): TenGodLabel;
20
21
  export declare function getTenGodsForBranch(dayMaster: string, branch: string): {
21
22
  stem: string;
@@ -86,14 +87,4 @@ export interface FourPillarsTenGods {
86
87
  export declare function analyzeTenGods(yearPillar: string, monthPillar: string, dayPillar: string, hourPillar: string): FourPillarsTenGods;
87
88
  export declare function countTenGods(analysis: FourPillarsTenGods): Record<TenGodKey, number>;
88
89
  export declare function countElements(analysis: FourPillarsTenGods): Record<Element, number>;
89
- /** @deprecated Use TenGodKey instead */
90
- export type TenGod = "비견" | "겁재" | "식신" | "상관" | "편재" | "정재" | "편관" | "정관" | "편인" | "정인";
91
- /** @deprecated Use TEN_GOD_KEYS instead */
92
- export declare const TEN_GODS: TenGod[];
93
- /** @deprecated Use TEN_GOD_DATA instead */
94
- export declare const TEN_GOD_HANJA: Record<TenGod, string>;
95
- /** @deprecated Use TEN_GOD_DATA instead */
96
- export declare const TEN_GOD_ENGLISH: Record<TenGod, string>;
97
- /** @deprecated Use getTenGodLabel(getTenGodKey(...)) instead */
98
- export declare function getTenGod(dayMaster: string, targetStem: string): TenGod;
99
90
  //# sourceMappingURL=ten-gods.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ten-gods.d.ts","sourceRoot":"","sources":["../../src/core/ten-gods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ten-gods.d.ts","sourceRoot":"","sources":["../../src/core/ten-gods.ts"],"names":[],"mappings":"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"}
@@ -149,7 +149,7 @@ export function getHiddenStems(branch) {
149
149
  throw new Error(`Invalid branch: ${branch}`);
150
150
  return [...hidden];
151
151
  }
152
- function getTenGodKey(dayMaster, targetStem) {
152
+ export function getTenGodKey(dayMaster, targetStem) {
153
153
  const dmElement = getStemElement(dayMaster);
154
154
  const dmPolarity = getStemPolarity(dayMaster);
155
155
  const targetElement = getStemElement(targetStem);
@@ -275,47 +275,3 @@ export function countElements(analysis) {
275
275
  }
276
276
  return counts;
277
277
  }
278
- /** @deprecated Use TEN_GOD_KEYS instead */
279
- export const TEN_GODS = [
280
- "비견",
281
- "겁재",
282
- "식신",
283
- "상관",
284
- "편재",
285
- "정재",
286
- "편관",
287
- "정관",
288
- "편인",
289
- "정인",
290
- ];
291
- /** @deprecated Use TEN_GOD_DATA instead */
292
- export const TEN_GOD_HANJA = {
293
- 비견: "比肩",
294
- 겁재: "劫財",
295
- 식신: "食神",
296
- 상관: "傷官",
297
- 편재: "偏財",
298
- 정재: "正財",
299
- 편관: "偏官",
300
- 정관: "正官",
301
- 편인: "偏印",
302
- 정인: "正印",
303
- };
304
- /** @deprecated Use TEN_GOD_DATA instead */
305
- export const TEN_GOD_ENGLISH = {
306
- 비견: "Companion",
307
- 겁재: "Rob Wealth",
308
- 식신: "Eating God",
309
- 상관: "Hurting Officer",
310
- 편재: "Indirect Wealth",
311
- 정재: "Direct Wealth",
312
- 편관: "Seven Killings",
313
- 정관: "Direct Officer",
314
- 편인: "Indirect Seal",
315
- 정인: "Direct Seal",
316
- };
317
- /** @deprecated Use getTenGodLabel(getTenGodKey(...)) instead */
318
- export function getTenGod(dayMaster, targetStem) {
319
- const key = getTenGodKey(dayMaster, targetStem);
320
- return TEN_GOD_DATA[key].korean;
321
- }
@@ -14,15 +14,4 @@ export interface TwelveStagesResult {
14
14
  hour: TwelveStageLabel;
15
15
  }
16
16
  export declare function analyzeTwelveStages(yearPillar: string, monthPillar: string, dayPillar: string, hourPillar: string): TwelveStagesResult;
17
- /** @deprecated Use getTwelveStageLabel instead */
18
- export declare const STAGE_INFO: Record<"longLife" | "bathing" | "crownBelt" | "establishment" | "imperial" | "decline" | "illness" | "death" | "tomb" | "extinction" | "conception" | "nurturing", {
19
- korean: string;
20
- hanja: string;
21
- meaning: string;
22
- strength: TwelveStageStrength;
23
- }>;
24
- /** @deprecated Use TwelveStageKey instead */
25
- export type TwelveStage = TwelveStageKey;
26
- /** @deprecated Use getTwelveStageKey and getTwelveStageLabel instead */
27
- export declare function getTwelveStage(stem: string, branch: string): TwelveStageKey;
28
17
  //# sourceMappingURL=twelve-stages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"twelve-stages.d.ts","sourceRoot":"","sources":["../../src/core/twelve-stages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,eAAO,MAAM,aAAa,4JAahB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAyCD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,CAGzE;AA4BD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CASpB;AAED,kDAAkD;AAClD,eAAO,MAAM,UAAU;YA5EX,MAAM;WAAS,MAAM;aAAW,MAAM;cAAY,mBAAmB;EA4E7C,CAAC;AAErC,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC;AAEzC,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAE3E"}
1
+ {"version":3,"file":"twelve-stages.d.ts","sourceRoot":"","sources":["../../src/core/twelve-stages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,eAAO,MAAM,aAAa,4JAahB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAyCD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,CAGzE;AA4BD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CASpB"}
@@ -79,9 +79,3 @@ export function analyzeTwelveStages(yearPillar, monthPillar, dayPillar, hourPill
79
79
  hour: getTwelveStageLabel(getTwelveStageKey(dayMaster, hourPillar[1])),
80
80
  };
81
81
  }
82
- /** @deprecated Use getTwelveStageLabel instead */
83
- export const STAGE_INFO = STAGE_DATA;
84
- /** @deprecated Use getTwelveStageKey and getTwelveStageLabel instead */
85
- export function getTwelveStage(stem, branch) {
86
- return getTwelveStageKey(stem, branch);
87
- }
@@ -13,9 +13,12 @@ export interface YongShenResult {
13
13
  isKiShen: boolean;
14
14
  }>;
15
15
  johuAdjustment: ElementLabel | null;
16
+ /** 종격 성립 시 억부 기준 용신도 함께 제공 */
17
+ alternativeBalance?: {
18
+ primary: ElementLabel;
19
+ secondary: ElementLabel | null;
20
+ };
16
21
  }
17
- /** @deprecated Use YongShenMethodKey instead */
18
- export type YongShenMethod = "격국" | "억부" | "조후" | "통관" | "병약";
19
22
  import type { Label } from "../types";
20
23
  export declare function analyzeYongShen(yearPillar: string, monthPillar: string, dayPillar: string, hourPillar: string): YongShenResult;
21
24
  export declare function getElementRecommendations(yongShen: YongShenResult): {
@@ -1 +1 @@
1
- {"version":3,"file":"yongshen.d.ts","sourceRoot":"","sources":["../../src/core/yongshen.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,YAAY,EAIlB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,iBAAiB,CAAC;CAAG;AAUxE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,mBAAmB,CAGlF;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzE,cAAc,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA0JrC,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,cAAc,CA+EhB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,GAAG;IACnE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA0BA"}
1
+ {"version":3,"file":"yongshen.d.ts","sourceRoot":"","sources":["../../src/core/yongshen.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,YAAY,EAIlB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,iBAAiB,CAAC;CAAG;AAUxE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,mBAAmB,CAGlF;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzE,cAAc,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,8BAA8B;IAC9B,kBAAkB,CAAC,EAAE;QACnB,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;KAChC,CAAC;CACH;AAED,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA0JrC,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,cAAc,CA2FhB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,GAAG;IACnE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA0BA"}
@@ -94,7 +94,7 @@ function isStrongLevel(level) {
94
94
  }
95
95
  function getYokbuYongShen(dayMasterElement, level) {
96
96
  if (isStrongLevel(level)) {
97
- const primary = CONTROLS[dayMasterElement];
97
+ const primary = CONTROLLED_BY[dayMasterElement];
98
98
  const secondary = GENERATES[dayMasterElement];
99
99
  return { primary, secondary };
100
100
  }
@@ -150,11 +150,14 @@ export function analyzeYongShen(yearPillar, monthPillar, dayPillar, hourPillar)
150
150
  let methodKey;
151
151
  let reasoning;
152
152
  let johuAdjustmentKey = null;
153
+ let alternativeBalance;
153
154
  if (specialFormation.isSpecial && specialFormation.followElement) {
154
155
  primaryKey = specialFormation.followElement;
155
156
  secondaryKey = GENERATES[specialFormation.followElement];
156
157
  methodKey = "formation";
157
158
  reasoning = `종격 성립. ${getElementLabel(specialFormation.followElement).korean} 세력을 따름`;
159
+ const yokbu = getYokbuYongShen(dayMasterElement, strength.level);
160
+ alternativeBalance = { primary: yokbu.primary, secondary: yokbu.secondary };
158
161
  }
159
162
  else {
160
163
  const yokbu = getYokbuYongShen(dayMasterElement, strength.level);
@@ -206,6 +209,14 @@ export function analyzeYongShen(yearPillar, monthPillar, dayPillar, hourPillar)
206
209
  reasoning,
207
210
  allElements,
208
211
  johuAdjustment: johuAdjustmentKey ? getElementLabel(johuAdjustmentKey) : null,
212
+ alternativeBalance: alternativeBalance
213
+ ? {
214
+ primary: getElementLabel(alternativeBalance.primary),
215
+ secondary: alternativeBalance.secondary
216
+ ? getElementLabel(alternativeBalance.secondary)
217
+ : null,
218
+ }
219
+ : undefined,
209
220
  };
210
221
  }
211
222
  export function getElementRecommendations(yongShen) {
package/dist/index.d.ts CHANGED
@@ -3,12 +3,12 @@ export { applyMeanSolarTime, BRANCHES, dayPillarFromDate, effectiveDayDate, getF
3
3
  export { calculateDailyLuck, calculateMajorLuck, calculateMonthlyLuck, calculateYearlyLuck, type DailyLuckResult, type Gender, getCurrentMajorLuck, getDayPillar, getMonthPillar, getYearPillar, type LuckPillar, type MajorLuckResult, type MonthlyLuckResult, type StartAgeDetail, type YearlyLuckResult, } from "./core/luck";
4
4
  export { getLunarDate, getSolarDate, type LunarDate } from "./core/lunar";
5
5
  export { analyzeRelations, BRANCH_CLASHES, BRANCH_DESTRUCTIONS, BRANCH_DIRECTIONAL_COMBINATIONS, BRANCH_HARMS, BRANCH_PUNISHMENTS, BRANCH_SIX_COMBINATIONS, BRANCH_TRIPLE_COMBINATIONS, type BranchClash, type BranchDestruction, type BranchDirectionalCombination, type BranchHarm, type BranchPunishment, type BranchSixCombination, type BranchTripleCombination, findBranchClash, findBranchSixCombination, findStemCombination, type Relation, type RelationsResult, STEM_COMBINATIONS, type StemCombination, } from "./core/relations";
6
- export { analyzeSinsals, getSinsalLabel, SINSAL_INFO, SINSALS, type Sinsal, type SinsalKey, type SinsalLabel, type SinsalMatch, type SinsalResult, type SinsalType, } from "./core/sinsals";
6
+ export { analyzeSinsals, getSinsalLabel, SINSAL_INFO, SINSALS, type SinsalKey, type SinsalLabel, type SinsalMatch, type SinsalResult, type SinsalType, } from "./core/sinsals";
7
7
  export { analyzeSolarTerms, getSolarTermLabel, getSolarTermsForYear, SOLAR_TERM_KEYS, SOLAR_TERMS, type SolarTerm, type SolarTermDateInfo, type SolarTermHanja, type SolarTermInfo, type SolarTermKey, type SolarTermLabel, type SolarTermName, } from "./core/solar-terms";
8
- export { analyzeStrength, getStrengthLevelLabel, STRENGTH_LEVEL_KEYS, STRENGTH_LEVELS, type StrengthFactors, type StrengthLevel, type StrengthLevelKey, type StrengthLevelLabel, type StrengthResult, } from "./core/strength";
9
- export { analyzeTenGods, countElements, countTenGods, type DayMasterLabel, ELEMENTS, type Element, type ElementLabel, type FourPillarsTenGods, getBranchElement, getBranchPolarity, getElementLabel, getHiddenStems, getStemElement, getStemPolarity, getTenGod, getTenGodForBranch, getTenGodLabel, getTenGodsForBranch, HIDDEN_STEMS, type Polarity, TEN_GOD_ENGLISH, TEN_GOD_HANJA, TEN_GOD_KEYS, TEN_GODS, type TenGod, type TenGodKey, type TenGodLabel, } from "./core/ten-gods";
10
- export { analyzeTwelveStages, getTwelveStage, getTwelveStageLabel, STAGE_INFO, TWELVE_STAGES, type TwelveStage, type TwelveStageKey, type TwelveStageLabel, type TwelveStagesResult, } from "./core/twelve-stages";
11
- export { analyzeYongShen, getElementRecommendations, getYongShenMethodLabel, type YongShenMethod, type YongShenMethodKey, type YongShenMethodLabel, type YongShenResult, } from "./core/yongshen";
8
+ export { analyzeStrength, getStrengthLevelLabel, STRENGTH_LEVEL_KEYS, type StrengthFactors, type StrengthLevelKey, type StrengthLevelLabel, type StrengthResult, } from "./core/strength";
9
+ export { analyzeTenGods, countElements, countTenGods, type DayMasterLabel, ELEMENTS, type Element, type ElementLabel, type FourPillarsTenGods, getBranchElement, getBranchPolarity, getElementLabel, getHiddenStems, getStemElement, getStemPolarity, getTenGodForBranch, getTenGodKey, getTenGodLabel, getTenGodsForBranch, HIDDEN_STEMS, type Polarity, TEN_GOD_KEYS, type TenGodKey, type TenGodLabel, } from "./core/ten-gods";
10
+ export { analyzeTwelveStages, getTwelveStageLabel, TWELVE_STAGES, type TwelveStageKey, type TwelveStageLabel, type TwelveStagesResult, } from "./core/twelve-stages";
11
+ export { analyzeYongShen, getElementRecommendations, getYongShenMethodLabel, type YongShenMethodKey, type YongShenMethodLabel, type YongShenResult, } from "./core/yongshen";
12
12
  export type { Branch, Label, Pillar, PillarPosition, Stem } from "./types";
13
13
  import type { DateAdapter } from "./adapters/date-adapter";
14
14
  import { type presetA } from "./core/four-pillars";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,9 +4,9 @@ export { getLunarDate, getSolarDate } from "./core/lunar";
4
4
  export { analyzeRelations, BRANCH_CLASHES, BRANCH_DESTRUCTIONS, BRANCH_DIRECTIONAL_COMBINATIONS, BRANCH_HARMS, BRANCH_PUNISHMENTS, BRANCH_SIX_COMBINATIONS, BRANCH_TRIPLE_COMBINATIONS, findBranchClash, findBranchSixCombination, findStemCombination, STEM_COMBINATIONS, } from "./core/relations";
5
5
  export { analyzeSinsals, getSinsalLabel, SINSAL_INFO, SINSALS, } from "./core/sinsals";
6
6
  export { analyzeSolarTerms, getSolarTermLabel, getSolarTermsForYear, SOLAR_TERM_KEYS, SOLAR_TERMS, } from "./core/solar-terms";
7
- export { analyzeStrength, getStrengthLevelLabel, STRENGTH_LEVEL_KEYS, STRENGTH_LEVELS, } from "./core/strength";
8
- export { analyzeTenGods, countElements, countTenGods, ELEMENTS, getBranchElement, getBranchPolarity, getElementLabel, getHiddenStems, getStemElement, getStemPolarity, getTenGod, getTenGodForBranch, getTenGodLabel, getTenGodsForBranch, HIDDEN_STEMS, TEN_GOD_ENGLISH, TEN_GOD_HANJA, TEN_GOD_KEYS, TEN_GODS, } from "./core/ten-gods";
9
- export { analyzeTwelveStages, getTwelveStage, getTwelveStageLabel, STAGE_INFO, TWELVE_STAGES, } from "./core/twelve-stages";
7
+ export { analyzeStrength, getStrengthLevelLabel, STRENGTH_LEVEL_KEYS, } from "./core/strength";
8
+ export { analyzeTenGods, countElements, countTenGods, ELEMENTS, getBranchElement, getBranchPolarity, getElementLabel, getHiddenStems, getStemElement, getStemPolarity, getTenGodForBranch, getTenGodKey, getTenGodLabel, getTenGodsForBranch, HIDDEN_STEMS, TEN_GOD_KEYS, } from "./core/ten-gods";
9
+ export { analyzeTwelveStages, getTwelveStageLabel, TWELVE_STAGES, } from "./core/twelve-stages";
10
10
  export { analyzeYongShen, getElementRecommendations, getYongShenMethodLabel, } from "./core/yongshen";
11
11
  import { getFourPillars } from "./core/four-pillars";
12
12
  import { calculateMajorLuck, calculateYearlyLuck, } from "./core/luck";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gracefullight/saju",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Four Pillars (四柱) calculator with flexible date adapter support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",