@gracefullight/saju 1.1.2 → 1.2.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.
package/README.ko.md CHANGED
@@ -38,8 +38,8 @@
38
38
  ## 설치
39
39
 
40
40
  ```bash
41
- # pnpm 사용
42
- pnpm add @gracefullight/saju
41
+ # bun 사용
42
+ bun add @gracefullight/saju
43
43
 
44
44
  # npm 사용
45
45
  npm install @gracefullight/saju
@@ -54,10 +54,10 @@ yarn add @gracefullight/saju
54
54
 
55
55
  ```bash
56
56
  # 옵션 1: Luxon (현대적인 앱에 권장)
57
- pnpm add luxon @types/luxon
57
+ bun add luxon @types/luxon
58
58
 
59
59
  # 옵션 2: date-fns (가벼운 대안)
60
- pnpm add date-fns date-fns-tz
60
+ bun add date-fns date-fns-tz
61
61
  ```
62
62
 
63
63
  ## 빠른 시작
@@ -803,22 +803,22 @@ git clone https://github.com/gracefullight/saju.git
803
803
  cd saju
804
804
 
805
805
  # 의존성 설치
806
- pnpm install
806
+ bun install
807
807
 
808
808
  # 테스트 실행
809
- pnpm test
809
+ bun test
810
810
 
811
811
  # 커버리지 확인
812
- pnpm test:coverage
812
+ bun test:coverage
813
813
 
814
814
  # 빌드
815
- pnpm build
815
+ bun build
816
816
 
817
817
  # 린트
818
- pnpm lint
818
+ bun lint
819
819
 
820
820
  # 포맷
821
- pnpm lint:fix
821
+ bun lint:fix
822
822
  ```
823
823
 
824
824
  ### 프로젝트 구조
@@ -851,13 +851,13 @@ packages/saju/
851
851
 
852
852
  ```bash
853
853
  # 모든 테스트 실행
854
- pnpm test
854
+ bun test
855
855
 
856
856
  # watch 모드로 테스트 실행
857
- pnpm test:watch
857
+ bun test:watch
858
858
 
859
859
  # 커버리지 리포트 생성
860
- pnpm test:coverage
860
+ bun test:coverage
861
861
  ```
862
862
 
863
863
  커버리지 결과:
@@ -951,6 +951,18 @@ MIT © [gracefullight](https://github.com/gracefullight)
951
951
  - [Luxon](https://moment.github.io/luxon/) - 현대적인 날짜/시간 라이브러리
952
952
  - [date-fns](https://date-fns.org/) - 현대적인 JavaScript 날짜 유틸리티 라이브러리
953
953
 
954
+ ## 후원
955
+
956
+ 이 프로젝트가 도움이 되셨다면 커피 한 잔 부탁드립니다!
957
+
958
+ <a href="https://www.buymeacoffee.com/gracefullight" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
959
+
960
+ 또는 스타를 눌러주세요:
961
+
962
+ ```bash
963
+ gh api --method PUT /user/starred/gracefullight/pkgs
964
+ ```
965
+
954
966
  ## 지원
955
967
 
956
968
  - [문서](https://github.com/gracefullight/saju#readme)
package/README.md CHANGED
@@ -38,8 +38,8 @@ This library calculates these pillars using:
38
38
  ## Installation
39
39
 
40
40
  ```bash
41
- # Using pnpm
42
- pnpm add @gracefullight/saju
41
+ # Using bun
42
+ bun add @gracefullight/saju
43
43
 
44
44
  # Using npm
45
45
  npm install @gracefullight/saju
@@ -54,10 +54,10 @@ Choose one based on your preference:
54
54
 
55
55
  ```bash
56
56
  # Option 1: Luxon (recommended for modern apps)
57
- pnpm add luxon @types/luxon
57
+ bun add luxon @types/luxon
58
58
 
59
59
  # Option 2: date-fns (lightweight alternative)
60
- pnpm add date-fns date-fns-tz
60
+ bun add date-fns date-fns-tz
61
61
  ```
62
62
 
63
63
  ## Quick Start
@@ -803,22 +803,22 @@ git clone https://github.com/gracefullight/saju.git
803
803
  cd saju
804
804
 
805
805
  # Install dependencies
806
- pnpm install
806
+ bun install
807
807
 
808
808
  # Run tests
809
- pnpm test
809
+ bun test
810
810
 
811
811
  # Run tests with coverage
812
- pnpm test:coverage
812
+ bun test:coverage
813
813
 
814
814
  # Build
815
- pnpm build
815
+ bun build
816
816
 
817
817
  # Lint
818
- pnpm lint
818
+ bun lint
819
819
 
820
820
  # Format
821
- pnpm lint:fix
821
+ bun lint:fix
822
822
  ```
823
823
 
824
824
  ### Project Structure
@@ -851,13 +851,13 @@ packages/saju/
851
851
 
852
852
  ```bash
853
853
  # Run all tests
854
- pnpm test
854
+ bun test
855
855
 
856
856
  # Run tests in watch mode
857
- pnpm test:watch
857
+ bun test:watch
858
858
 
859
859
  # Generate coverage report
860
- pnpm test:coverage
860
+ bun test:coverage
861
861
  ```
862
862
 
863
863
  Coverage results:
@@ -951,6 +951,18 @@ This library is based on traditional Chinese calendar algorithms and astronomica
951
951
  - [Luxon](https://moment.github.io/luxon/) - Modern date/time library
952
952
  - [date-fns](https://date-fns.org/) - Modern JavaScript date utility library
953
953
 
954
+ ## Sponsors
955
+
956
+ If this project helped you, please consider buying me a coffee!
957
+
958
+ <a href="https://www.buymeacoffee.com/gracefullight" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
959
+
960
+ Or leave a star:
961
+
962
+ ```bash
963
+ gh api --method PUT /user/starred/gracefullight/pkgs
964
+ ```
965
+
954
966
  ## Support
955
967
 
956
968
  - [Documentation](https://github.com/gracefullight/saju#readme)
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { analyzeTenGods, countElements, countTenGods, getBranchElement, getHiddenStems, getStemElement, getStemPolarity, getTenGodKey, getTenGodLabel, } from "../core/ten-gods";
2
+ import { analyzeTenGods, countElements, countTenGods, getBranchElement, getHiddenStems, getStemElement, getStemPolarity, getTenGodForBranch, getTenGodForStem, getTenGodKey, getTenGodLabel, } from "../core/ten-gods";
3
3
  describe("ten-gods", () => {
4
4
  describe("getStemElement", () => {
5
5
  it("returns correct element for each stem", () => {
@@ -130,4 +130,36 @@ describe("ten-gods", () => {
130
130
  expect(counts.fire).toBeGreaterThanOrEqual(1);
131
131
  });
132
132
  });
133
+ describe("getTenGodForStem", () => {
134
+ it("returns correct ten god label for stem", () => {
135
+ // 甲 (day master) -> 甲 (stem) = 비견 (companion)
136
+ const result1 = getTenGodForStem("甲", "甲");
137
+ expect(result1.key).toBe("companion");
138
+ expect(result1.korean).toBe("비견");
139
+ // 甲 (day master) -> 乙 (stem) = 겁재 (robWealth)
140
+ const result2 = getTenGodForStem("甲", "乙");
141
+ expect(result2.key).toBe("robWealth");
142
+ expect(result2.korean).toBe("겁재");
143
+ // 甲 (day master) -> 丙 (stem) = 식신 (eatingGod)
144
+ const result3 = getTenGodForStem("甲", "丙");
145
+ expect(result3.key).toBe("eatingGod");
146
+ expect(result3.korean).toBe("식신");
147
+ // 丙 (day master) -> 庚 (stem) = 편재 (indirectWealth)
148
+ const result4 = getTenGodForStem("丙", "庚");
149
+ expect(result4.key).toBe("indirectWealth");
150
+ expect(result4.korean).toBe("편재");
151
+ });
152
+ });
153
+ describe("getTenGodForBranch", () => {
154
+ it("returns correct ten god label for branch (first hidden stem)", () => {
155
+ // 甲 (day master) -> 子 (branch, hidden stem: 癸) = 정인 (directSeal)
156
+ const result1 = getTenGodForBranch("甲", "子");
157
+ expect(result1.key).toBe("directSeal");
158
+ expect(result1.korean).toBe("정인");
159
+ // 甲 (day master) -> 寅 (branch, hidden stem: 甲) = 비견 (companion)
160
+ const result2 = getTenGodForBranch("甲", "寅");
161
+ expect(result2.key).toBe("companion");
162
+ expect(result2.korean).toBe("비견");
163
+ });
164
+ });
133
165
  });
@@ -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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"}
@@ -176,6 +176,7 @@ function checkStemTransformationCondition(resultElement, monthBranch, allStems)
176
176
  reason: "월령 및 기세 미충족으로 화 불성립",
177
177
  };
178
178
  }
179
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Complex domain algorithm for traditional Chinese four-pillars astrology
179
180
  export function analyzeRelations(yearPillar, monthPillar, dayPillar, hourPillar) {
180
181
  const monthBranch = monthPillar[1];
181
182
  const stems = [
@@ -1 +1 @@
1
- {"version":3,"file":"strength.d.ts","sourceRoot":"","sources":["../../src/core/strength.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,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
+ {"version":3,"file":"strength.d.ts","sourceRoot":"","sources":["../../src/core/strength.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,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;AAGD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,cAAc,CAsGhB"}
@@ -177,6 +177,7 @@ function isHelpfulTenGod(tenGod) {
177
177
  function isWeakeningTenGod(tenGod) {
178
178
  return WEAKENING_TEN_GODS.includes(tenGod);
179
179
  }
180
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Complex domain algorithm for traditional Chinese four-pillars strength assessment
180
181
  export function analyzeStrength(yearPillar, monthPillar, dayPillar, hourPillar) {
181
182
  const dayMaster = dayPillar[0];
182
183
  const dayMasterElement = getStemElement(dayMaster);
@@ -17,6 +17,7 @@ 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
19
  export declare function getTenGodKey(dayMaster: string, targetStem: string): TenGodKey;
20
+ export declare function getTenGodForStem(dayMaster: string, stem: string): TenGodLabel;
20
21
  export declare function getTenGodForBranch(dayMaster: string, branch: string): TenGodLabel;
21
22
  export declare function getTenGodsForBranch(dayMaster: string, branch: string): {
22
23
  stem: string;
@@ -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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"}
@@ -172,6 +172,9 @@ export function getTenGodKey(dayMaster, targetStem) {
172
172
  }
173
173
  throw new Error(`Unable to determine ten god relationship: ${dayMaster} -> ${targetStem}`);
174
174
  }
175
+ export function getTenGodForStem(dayMaster, stem) {
176
+ return getTenGodLabel(getTenGodKey(dayMaster, stem));
177
+ }
175
178
  export function getTenGodForBranch(dayMaster, branch) {
176
179
  const hiddenStems = getHiddenStems(branch);
177
180
  return getTenGodLabel(getTenGodKey(dayMaster, hiddenStems[0]));
@@ -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,iBAAiB,CAAC;AAEzB,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"}
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,iBAAiB,CAAC;AAEzB,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;AA2JrC,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"}
@@ -136,6 +136,7 @@ function getJohuAdjustment(dayMasterElement, season, yokbuPrimary) {
136
136
  }
137
137
  return null;
138
138
  }
139
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Complex domain algorithm for traditional Chinese four-pillars yongshen (favorable element) analysis
139
140
  export function analyzeYongShen(yearPillar, monthPillar, dayPillar, hourPillar) {
140
141
  const dayMaster = dayPillar[0];
141
142
  const dayMasterElement = getStemElement(dayMaster);
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { analyzeRelations, BRANCH_CLASHES, BRANCH_DESTRUCTIONS, BRANCH_DIRECTION
6
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
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";
9
+ export { analyzeTenGods, countElements, countTenGods, type DayMasterLabel, ELEMENTS, type Element, type ElementLabel, type FourPillarsTenGods, getBranchElement, getBranchPolarity, getElementLabel, getHiddenStems, getStemElement, getStemPolarity, getTenGodForBranch, getTenGodForStem, getTenGodKey, getTenGodLabel, getTenGodsForBranch, HIDDEN_STEMS, type Polarity, TEN_GOD_KEYS, type TenGodKey, type TenGodLabel, } from "./core/ten-gods";
10
10
  export { analyzeTwelveStages, getTwelveStageLabel, TWELVE_STAGES, type TwelveStageKey, type TwelveStageLabel, type TwelveStagesResult, } from "./core/twelve-stages";
11
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";
@@ -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
@@ -5,7 +5,7 @@ export { analyzeRelations, BRANCH_CLASHES, BRANCH_DESTRUCTIONS, BRANCH_DIRECTION
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
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";
8
+ export { analyzeTenGods, countElements, countTenGods, ELEMENTS, getBranchElement, getBranchPolarity, getElementLabel, getHiddenStems, getStemElement, getStemPolarity, getTenGodForBranch, getTenGodForStem, getTenGodKey, getTenGodLabel, getTenGodsForBranch, HIDDEN_STEMS, TEN_GOD_KEYS, } from "./core/ten-gods";
9
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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gracefullight/saju",
3
- "version": "1.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "Four Pillars (四柱) calculator with flexible date adapter support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",