@sazuapp/client 0.2.0 → 0.3.1

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.md CHANGED
@@ -74,6 +74,30 @@ console.log(result.relationships) // 합형충파해 (Pro)
74
74
 
75
75
  <br/><br/><br/>
76
76
 
77
+ ## 진태양시 옵션 (v0.3.0+ · API v1.1.0+)
78
+
79
+ `trueSolarTime` 로 시각 보정 방식을 선택합니다. 생략 시 한국 만세력 관습(자시 23:30, 경도차 보정)이며, `true` 로 한국천문연구원 방식의 진태양시(자시 23:00, **경도차 + 균시차**)를 적용합니다.
80
+
81
+ ```ts
82
+ // 진태양시(경도 + 균시차) 적용
83
+ const result = await sazu.calculate({
84
+ birthYear: 1990, birthMonth: 11, birthDay: 7,
85
+ birthHour: 23, birthMinute: 20,
86
+ isFemale: false,
87
+ birthCity: '서울',
88
+ trueSolarTime: true, // 기본 false (관습)
89
+ })
90
+
91
+ // 적용 내역은 응답 timezone 에서 확인
92
+ console.log(result.timezone.mode) // 'convention' | 'trueSolar'
93
+ console.log(result.timezone.longitude) // 도시 경도 (°)
94
+ console.log(result.timezone.equationOfTimeMinutes) // 균시차 (분, 관습 모드는 null)
95
+ ```
96
+
97
+ > 같은 생년월일·시각이라도 두 방식의 시주(時柱)가 시(時) 경계 부근에서 달라질 수 있습니다. 문서: https://www.sazu.app/manse-api/docs#birth-city
98
+
99
+ <br/><br/><br/>
100
+
77
101
  ## 음/양력 변환
78
102
 
79
103
  ```ts
package/dist/types.d.ts CHANGED
@@ -50,7 +50,7 @@ export interface CalculateInput {
50
50
  isFemale: boolean;
51
51
  /** 음력 여부. 기본 false. */
52
52
  isLunar?: boolean;
53
- /** 출생 도시 (진태양시 보정용). 기본 '서울'. */
53
+ /** 출생 도시 (도시 경도 보정용). 기본 '서울'. */
54
54
  birthCity?: string;
55
55
  /** 한글 또는 한자 출력. 기본 'ko'. */
56
56
  locale?: Locale;
@@ -58,6 +58,11 @@ export interface CalculateInput {
58
58
  modules?: string[];
59
59
  /** 대운 개수 (13~20) */
60
60
  decadeCount?: number;
61
+ /**
62
+ * 진태양시(경도차 + 균시차) 적용 여부. 기본 false.
63
+ * false = 한국 관습(자시 23:30, 경도차만). true = 진태양시(자시 23:00, 균시차 포함).
64
+ */
65
+ trueSolarTime?: boolean;
61
66
  /** 응답 상세 수준. 기본 'standard'. */
62
67
  detail?: DetailLevel;
63
68
  }
@@ -92,14 +97,35 @@ export interface CalculateModules {
92
97
  /** 기타 모듈 (확장 가능) */
93
98
  [moduleId: string]: unknown;
94
99
  }
100
+ /**
101
+ * 시간대·경도·진태양시 보정 정보 (응답 timezone).
102
+ */
103
+ export interface TimezoneInfo {
104
+ /** 출생 도시 (요청값 echo) */
105
+ city: string;
106
+ /** 도시 표준시 UTC offset (분) */
107
+ utcOffset: number;
108
+ /** 도시 경도 (°, 동경 +) */
109
+ longitude: number;
110
+ /** 'convention' = 관습(자시 23:30, 경도만) / 'trueSolar' = 진태양시(자시 23:00, 균시차 포함) */
111
+ mode: 'convention' | 'trueSolar';
112
+ /** 경도차 보정 (분) */
113
+ longitudeCorrectionMinutes: number;
114
+ /** 균시차 (분). 관습 모드는 null. */
115
+ equationOfTimeMinutes: number | null;
116
+ /** 최종 보정 (분) */
117
+ correctionMinutes: number;
118
+ /** 확장 필드 대비 */
119
+ [key: string]: unknown;
120
+ }
95
121
  /**
96
122
  * 사주 분석 응답 — 서버가 반환하는 data 전체.
97
123
  */
98
124
  export interface CalculateResult {
99
125
  /** 정규화된 입력값 (서버 측 검증·변환 결과) */
100
126
  input: Record<string, unknown>;
101
- /** 시간대·진태양시 등 보정 정보 */
102
- timezone: Record<string, unknown>;
127
+ /** 시간대·경도·진태양시 등 보정 정보 */
128
+ timezone: TimezoneInfo;
103
129
  /** 요청한 모듈별 분석 결과 */
104
130
  modules: CalculateModules;
105
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sazuapp/client",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "SAZU API 공식 TypeScript SDK — 사주·만세력·합형충파해·격국·용신 등 14개 명리 분석을 한 줄로.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,7 +19,8 @@
19
19
  "scripts": {
20
20
  "build": "tsc -p tsconfig.json",
21
21
  "typecheck": "tsc -p tsconfig.json --noEmit",
22
- "dev": "tsc -p tsconfig.json --watch"
22
+ "dev": "tsc -p tsconfig.json --watch",
23
+ "prepublishOnly": "tsc -p tsconfig.json"
23
24
  },
24
25
  "engines": {
25
26
  "node": ">=18"