@gracefullight/saju 0.2.0 → 0.4.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.
Files changed (81) hide show
  1. package/README.en.md +250 -32
  2. package/README.md +250 -32
  3. package/dist/__tests__/date-fns-adapter.test.js +1 -1
  4. package/dist/__tests__/four-pillars.test.js +10 -9
  5. package/dist/__tests__/luck.test.d.ts +2 -0
  6. package/dist/__tests__/luck.test.d.ts.map +1 -0
  7. package/dist/__tests__/luck.test.js +33 -0
  8. package/dist/__tests__/lunar.test.js +1 -1
  9. package/dist/__tests__/luxon-adapter.test.js +1 -1
  10. package/dist/__tests__/relations.test.d.ts +2 -0
  11. package/dist/__tests__/relations.test.d.ts.map +1 -0
  12. package/dist/__tests__/relations.test.js +90 -0
  13. package/dist/__tests__/saju.test.d.ts +2 -0
  14. package/dist/__tests__/saju.test.d.ts.map +1 -0
  15. package/dist/__tests__/saju.test.js +133 -0
  16. package/dist/__tests__/sinsals.test.d.ts +2 -0
  17. package/dist/__tests__/sinsals.test.d.ts.map +1 -0
  18. package/dist/__tests__/sinsals.test.js +64 -0
  19. package/dist/__tests__/solar-terms.test.d.ts +2 -0
  20. package/dist/__tests__/solar-terms.test.d.ts.map +1 -0
  21. package/dist/__tests__/solar-terms.test.js +121 -0
  22. package/dist/__tests__/strength.test.d.ts +2 -0
  23. package/dist/__tests__/strength.test.d.ts.map +1 -0
  24. package/dist/__tests__/strength.test.js +44 -0
  25. package/dist/__tests__/ten-gods.test.d.ts +2 -0
  26. package/dist/__tests__/ten-gods.test.d.ts.map +1 -0
  27. package/dist/__tests__/ten-gods.test.js +119 -0
  28. package/dist/__tests__/twelve-stages.test.d.ts +2 -0
  29. package/dist/__tests__/twelve-stages.test.d.ts.map +1 -0
  30. package/dist/__tests__/twelve-stages.test.js +86 -0
  31. package/dist/__tests__/utils.test.d.ts +2 -0
  32. package/dist/__tests__/utils.test.d.ts.map +1 -0
  33. package/dist/__tests__/utils.test.js +130 -0
  34. package/dist/__tests__/yongshen.test.d.ts +2 -0
  35. package/dist/__tests__/yongshen.test.d.ts.map +1 -0
  36. package/dist/__tests__/yongshen.test.js +62 -0
  37. package/dist/adapters/date-fns.d.ts +1 -1
  38. package/dist/adapters/luxon.d.ts +1 -1
  39. package/dist/core/four-pillars.d.ts +6 -6
  40. package/dist/core/four-pillars.d.ts.map +1 -1
  41. package/dist/core/four-pillars.js +10 -26
  42. package/dist/core/luck.d.ts +60 -0
  43. package/dist/core/luck.d.ts.map +1 -0
  44. package/dist/core/luck.js +137 -0
  45. package/dist/core/relations.d.ts +94 -0
  46. package/dist/core/relations.d.ts.map +1 -0
  47. package/dist/core/relations.js +309 -0
  48. package/dist/core/sinsals.d.ts +19 -0
  49. package/dist/core/sinsals.d.ts.map +1 -0
  50. package/dist/core/sinsals.js +339 -0
  51. package/dist/core/solar-terms.d.ts +155 -0
  52. package/dist/core/solar-terms.d.ts.map +1 -0
  53. package/dist/core/solar-terms.js +266 -0
  54. package/dist/core/strength.d.ts +18 -0
  55. package/dist/core/strength.d.ts.map +1 -0
  56. package/dist/core/strength.js +255 -0
  57. package/dist/core/ten-gods.d.ts +127 -0
  58. package/dist/core/ten-gods.d.ts.map +1 -0
  59. package/dist/core/ten-gods.js +331 -0
  60. package/dist/core/twelve-stages.d.ts +17 -0
  61. package/dist/core/twelve-stages.d.ts.map +1 -0
  62. package/dist/core/twelve-stages.js +77 -0
  63. package/dist/core/yongshen.d.ts +20 -0
  64. package/dist/core/yongshen.d.ts.map +1 -0
  65. package/dist/core/yongshen.js +216 -0
  66. package/dist/index.d.ts +63 -3
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +57 -2
  69. package/dist/types/common.d.ts +12 -0
  70. package/dist/types/common.d.ts.map +1 -0
  71. package/dist/types/common.js +1 -0
  72. package/dist/types/index.d.ts +2 -0
  73. package/dist/types/index.d.ts.map +1 -0
  74. package/dist/types/index.js +1 -0
  75. package/dist/utils/constants.d.ts +13 -0
  76. package/dist/utils/constants.d.ts.map +1 -0
  77. package/dist/utils/constants.js +59 -0
  78. package/dist/utils/index.d.ts +2 -0
  79. package/dist/utils/index.d.ts.map +1 -0
  80. package/dist/utils/index.js +1 -0
  81. package/package.json +13 -12
@@ -0,0 +1,339 @@
1
+ export const SINSALS = [
2
+ "peachBlossom",
3
+ "skyHorse",
4
+ "floweryCanopy",
5
+ "ghostGate",
6
+ "solitaryStar",
7
+ "widowStar",
8
+ "heavenlyVirtue",
9
+ "monthlyVirtue",
10
+ "skyNoble",
11
+ "moonNoble",
12
+ "literaryNoble",
13
+ "academicHall",
14
+ "bloodKnife",
15
+ "sixHarms",
16
+ "whiteCloth",
17
+ "heavenlyDoctor",
18
+ ];
19
+ const PEACH_BLOSSOM_MAP = {
20
+ 寅: "卯",
21
+ 午: "卯",
22
+ 戌: "卯",
23
+ 申: "酉",
24
+ 子: "酉",
25
+ 辰: "酉",
26
+ 巳: "午",
27
+ 酉: "午",
28
+ 丑: "午",
29
+ 亥: "子",
30
+ 卯: "子",
31
+ 未: "子",
32
+ };
33
+ const SKY_HORSE_MAP = {
34
+ 寅: "申",
35
+ 午: "申",
36
+ 戌: "申",
37
+ 申: "寅",
38
+ 子: "寅",
39
+ 辰: "寅",
40
+ 巳: "亥",
41
+ 酉: "亥",
42
+ 丑: "亥",
43
+ 亥: "巳",
44
+ 卯: "巳",
45
+ 未: "巳",
46
+ };
47
+ const FLOWERY_CANOPY_MAP = {
48
+ 寅: "戌",
49
+ 午: "戌",
50
+ 戌: "戌",
51
+ 申: "辰",
52
+ 子: "辰",
53
+ 辰: "辰",
54
+ 巳: "丑",
55
+ 酉: "丑",
56
+ 丑: "丑",
57
+ 亥: "未",
58
+ 卯: "未",
59
+ 未: "未",
60
+ };
61
+ const GHOST_GATE_MAP = {
62
+ 子: "卯",
63
+ 丑: "寅",
64
+ 寅: "丑",
65
+ 卯: "子",
66
+ 辰: "亥",
67
+ 巳: "戌",
68
+ 午: "酉",
69
+ 未: "申",
70
+ 申: "未",
71
+ 酉: "午",
72
+ 戌: "巳",
73
+ 亥: "辰",
74
+ };
75
+ const SOLITARY_STAR_MAP = {
76
+ 子: "寅",
77
+ 丑: "寅",
78
+ 寅: "巳",
79
+ 卯: "巳",
80
+ 辰: "巳",
81
+ 巳: "申",
82
+ 午: "申",
83
+ 未: "申",
84
+ 申: "亥",
85
+ 酉: "亥",
86
+ 戌: "亥",
87
+ 亥: "寅",
88
+ };
89
+ const WIDOW_STAR_MAP = {
90
+ 子: "戌",
91
+ 丑: "戌",
92
+ 寅: "丑",
93
+ 卯: "丑",
94
+ 辰: "丑",
95
+ 巳: "辰",
96
+ 午: "辰",
97
+ 未: "辰",
98
+ 申: "未",
99
+ 酉: "未",
100
+ 戌: "未",
101
+ 亥: "戌",
102
+ };
103
+ const HEAVENLY_VIRTUE_MAP = {
104
+ 寅: "丁",
105
+ 卯: "申",
106
+ 辰: "壬",
107
+ 巳: "辛",
108
+ 午: "亥",
109
+ 未: "甲",
110
+ 申: "癸",
111
+ 酉: "寅",
112
+ 戌: "丙",
113
+ 亥: "乙",
114
+ 子: "巳",
115
+ 丑: "庚",
116
+ };
117
+ const MONTHLY_VIRTUE_MAP = {
118
+ 寅: "丙",
119
+ 卯: "甲",
120
+ 辰: "壬",
121
+ 巳: "庚",
122
+ 午: "丙",
123
+ 未: "甲",
124
+ 申: "壬",
125
+ 酉: "庚",
126
+ 戌: "丙",
127
+ 亥: "甲",
128
+ 子: "壬",
129
+ 丑: "庚",
130
+ };
131
+ const SKY_NOBLE_MAP = {
132
+ 甲: ["丑", "未"],
133
+ 戊: ["丑", "未"],
134
+ 庚: ["丑", "未"],
135
+ 乙: ["子", "申"],
136
+ 己: ["子", "申"],
137
+ 丙: ["亥", "酉"],
138
+ 丁: ["亥", "酉"],
139
+ 壬: ["卯", "巳"],
140
+ 癸: ["卯", "巳"],
141
+ 辛: ["午", "寅"],
142
+ };
143
+ const LITERARY_NOBLE_MAP = {
144
+ 甲: "巳",
145
+ 乙: "午",
146
+ 丙: "申",
147
+ 丁: "酉",
148
+ 戊: "申",
149
+ 己: "酉",
150
+ 庚: "亥",
151
+ 辛: "子",
152
+ 壬: "寅",
153
+ 癸: "卯",
154
+ };
155
+ const ACADEMIC_HALL_MAP = {
156
+ 甲: "亥",
157
+ 乙: "子",
158
+ 丙: "寅",
159
+ 丁: "卯",
160
+ 戊: "寅",
161
+ 己: "卯",
162
+ 庚: "巳",
163
+ 辛: "午",
164
+ 壬: "申",
165
+ 癸: "酉",
166
+ };
167
+ const BLOOD_KNIFE_MAP = {
168
+ 子: "酉",
169
+ 丑: "戌",
170
+ 寅: "亥",
171
+ 卯: "子",
172
+ 辰: "丑",
173
+ 巳: "寅",
174
+ 午: "卯",
175
+ 未: "辰",
176
+ 申: "巳",
177
+ 酉: "午",
178
+ 戌: "未",
179
+ 亥: "申",
180
+ };
181
+ const HEAVENLY_DOCTOR_MAP = {
182
+ 子: "亥",
183
+ 丑: "子",
184
+ 寅: "丑",
185
+ 卯: "寅",
186
+ 辰: "卯",
187
+ 巳: "辰",
188
+ 午: "巳",
189
+ 未: "午",
190
+ 申: "未",
191
+ 酉: "申",
192
+ 戌: "酉",
193
+ 亥: "戌",
194
+ };
195
+ function checkBranchBasedSinsal(baseBranch, targetBranches, positions, map, sinsal) {
196
+ const matches = [];
197
+ const targetSinsal = map[baseBranch];
198
+ if (targetSinsal) {
199
+ targetBranches.forEach((branch, idx) => {
200
+ if (branch === targetSinsal) {
201
+ matches.push({ sinsal, position: positions[idx] });
202
+ }
203
+ });
204
+ }
205
+ return matches;
206
+ }
207
+ function checkStemBasedSinsal(baseStem, targetBranches, positions, map, sinsal) {
208
+ const matches = [];
209
+ const targetSinsal = map[baseStem];
210
+ if (targetSinsal) {
211
+ const targets = Array.isArray(targetSinsal) ? targetSinsal : [targetSinsal];
212
+ targetBranches.forEach((branch, idx) => {
213
+ if (targets.includes(branch)) {
214
+ matches.push({ sinsal, position: positions[idx] });
215
+ }
216
+ });
217
+ }
218
+ return matches;
219
+ }
220
+ export function analyzeSinsals(yearPillar, monthPillar, dayPillar, hourPillar) {
221
+ const yearBranch = yearPillar[1];
222
+ const monthBranch = monthPillar[1];
223
+ const dayBranch = dayPillar[1];
224
+ const hourBranch = hourPillar[1];
225
+ const dayStem = dayPillar[0];
226
+ const yearStem = yearPillar[0];
227
+ const allBranches = [yearBranch, monthBranch, dayBranch, hourBranch];
228
+ const positions = ["year", "month", "day", "hour"];
229
+ const matches = [];
230
+ matches.push(...checkBranchBasedSinsal(yearBranch, allBranches, positions, PEACH_BLOSSOM_MAP, "peachBlossom"));
231
+ matches.push(...checkBranchBasedSinsal(dayBranch, allBranches, positions, PEACH_BLOSSOM_MAP, "peachBlossom"));
232
+ matches.push(...checkBranchBasedSinsal(yearBranch, allBranches, positions, SKY_HORSE_MAP, "skyHorse"));
233
+ matches.push(...checkBranchBasedSinsal(dayBranch, allBranches, positions, SKY_HORSE_MAP, "skyHorse"));
234
+ matches.push(...checkBranchBasedSinsal(yearBranch, allBranches, positions, FLOWERY_CANOPY_MAP, "floweryCanopy"));
235
+ matches.push(...checkBranchBasedSinsal(dayBranch, allBranches, positions, FLOWERY_CANOPY_MAP, "floweryCanopy"));
236
+ matches.push(...checkBranchBasedSinsal(dayBranch, allBranches, positions, GHOST_GATE_MAP, "ghostGate"));
237
+ matches.push(...checkBranchBasedSinsal(yearBranch, allBranches, positions, SOLITARY_STAR_MAP, "solitaryStar"));
238
+ matches.push(...checkBranchBasedSinsal(yearBranch, allBranches, positions, WIDOW_STAR_MAP, "widowStar"));
239
+ matches.push(...checkBranchBasedSinsal(monthBranch, [yearPillar[0], monthPillar[0], dayPillar[0], hourPillar[0]].map((s) => s), positions, HEAVENLY_VIRTUE_MAP, "heavenlyVirtue"));
240
+ matches.push(...checkBranchBasedSinsal(monthBranch, [yearPillar[0], monthPillar[0], dayPillar[0], hourPillar[0]].map((s) => s), positions, MONTHLY_VIRTUE_MAP, "monthlyVirtue"));
241
+ matches.push(...checkStemBasedSinsal(dayStem, allBranches, positions, SKY_NOBLE_MAP, "skyNoble"));
242
+ matches.push(...checkStemBasedSinsal(yearStem, allBranches, positions, SKY_NOBLE_MAP, "moonNoble"));
243
+ matches.push(...checkStemBasedSinsal(dayStem, allBranches, positions, LITERARY_NOBLE_MAP, "literaryNoble"));
244
+ matches.push(...checkStemBasedSinsal(dayStem, allBranches, positions, ACADEMIC_HALL_MAP, "academicHall"));
245
+ matches.push(...checkBranchBasedSinsal(dayBranch, allBranches, positions, BLOOD_KNIFE_MAP, "bloodKnife"));
246
+ matches.push(...checkBranchBasedSinsal(monthBranch, allBranches, positions, HEAVENLY_DOCTOR_MAP, "heavenlyDoctor"));
247
+ const uniqueMatches = matches.filter((match, index, self) => index === self.findIndex((m) => m.sinsal === match.sinsal && m.position === match.position));
248
+ const summary = {};
249
+ for (const match of uniqueMatches) {
250
+ if (!summary[match.sinsal]) {
251
+ summary[match.sinsal] = [];
252
+ }
253
+ summary[match.sinsal]?.push(match.position);
254
+ }
255
+ return { matches: uniqueMatches, summary };
256
+ }
257
+ export const SINSAL_INFO = {
258
+ peachBlossom: {
259
+ korean: "도화살",
260
+ hanja: "桃花煞",
261
+ meaning: "이성 인연, 매력, 색정",
262
+ type: "neutral",
263
+ },
264
+ skyHorse: { korean: "역마살", hanja: "驛馬煞", meaning: "이동, 변화, 해외", type: "neutral" },
265
+ floweryCanopy: {
266
+ korean: "화개살",
267
+ hanja: "華蓋煞",
268
+ meaning: "예술, 종교, 고독",
269
+ type: "neutral",
270
+ },
271
+ ghostGate: {
272
+ korean: "귀문관살",
273
+ hanja: "鬼門關煞",
274
+ meaning: "귀신, 영적 감각, 불안",
275
+ type: "inauspicious",
276
+ },
277
+ solitaryStar: {
278
+ korean: "고진살",
279
+ hanja: "孤辰煞",
280
+ meaning: "고독, 독립, 자립",
281
+ type: "inauspicious",
282
+ },
283
+ widowStar: {
284
+ korean: "과숙살",
285
+ hanja: "寡宿煞",
286
+ meaning: "외로움, 배우자 인연 약함",
287
+ type: "inauspicious",
288
+ },
289
+ heavenlyVirtue: {
290
+ korean: "천덕귀인",
291
+ hanja: "天德貴人",
292
+ meaning: "하늘의 덕, 재난 해소",
293
+ type: "auspicious",
294
+ },
295
+ monthlyVirtue: {
296
+ korean: "월덕귀인",
297
+ hanja: "月德貴人",
298
+ meaning: "달의 덕, 흉화 해소",
299
+ type: "auspicious",
300
+ },
301
+ skyNoble: {
302
+ korean: "천을귀인",
303
+ hanja: "天乙貴人",
304
+ meaning: "귀인의 도움, 위기 극복",
305
+ type: "auspicious",
306
+ },
307
+ moonNoble: { korean: "월을귀인", hanja: "月乙貴人", meaning: "귀인의 도움", type: "auspicious" },
308
+ literaryNoble: {
309
+ korean: "문창귀인",
310
+ hanja: "文昌貴人",
311
+ meaning: "학업, 시험, 문서",
312
+ type: "auspicious",
313
+ },
314
+ academicHall: {
315
+ korean: "학당귀인",
316
+ hanja: "學堂貴人",
317
+ meaning: "학문, 교육, 지식",
318
+ type: "auspicious",
319
+ },
320
+ bloodKnife: {
321
+ korean: "혈인살",
322
+ hanja: "血刃煞",
323
+ meaning: "수술, 출혈, 부상",
324
+ type: "inauspicious",
325
+ },
326
+ sixHarms: { korean: "육해살", hanja: "六害煞", meaning: "인관계 해침", type: "inauspicious" },
327
+ whiteCloth: {
328
+ korean: "백호살",
329
+ hanja: "白虎煞",
330
+ meaning: "상해, 사고, 흉사",
331
+ type: "inauspicious",
332
+ },
333
+ heavenlyDoctor: {
334
+ korean: "천의성",
335
+ hanja: "天醫星",
336
+ meaning: "치료, 의료, 건강 회복",
337
+ type: "auspicious",
338
+ },
339
+ };
@@ -0,0 +1,155 @@
1
+ import type { DateAdapter } from "../adapters/date-adapter";
2
+ /**
3
+ * 24 Solar Terms (二十四節氣)
4
+ * Each term corresponds to a specific solar longitude
5
+ */
6
+ export declare const SOLAR_TERMS: readonly [{
7
+ readonly name: "소한";
8
+ readonly hanja: "小寒";
9
+ readonly longitude: 285;
10
+ }, {
11
+ readonly name: "대한";
12
+ readonly hanja: "大寒";
13
+ readonly longitude: 300;
14
+ }, {
15
+ readonly name: "입춘";
16
+ readonly hanja: "立春";
17
+ readonly longitude: 315;
18
+ }, {
19
+ readonly name: "우수";
20
+ readonly hanja: "雨水";
21
+ readonly longitude: 330;
22
+ }, {
23
+ readonly name: "경칩";
24
+ readonly hanja: "驚蟄";
25
+ readonly longitude: 345;
26
+ }, {
27
+ readonly name: "춘분";
28
+ readonly hanja: "春分";
29
+ readonly longitude: 0;
30
+ }, {
31
+ readonly name: "청명";
32
+ readonly hanja: "淸明";
33
+ readonly longitude: 15;
34
+ }, {
35
+ readonly name: "곡우";
36
+ readonly hanja: "穀雨";
37
+ readonly longitude: 30;
38
+ }, {
39
+ readonly name: "입하";
40
+ readonly hanja: "立夏";
41
+ readonly longitude: 45;
42
+ }, {
43
+ readonly name: "소만";
44
+ readonly hanja: "小滿";
45
+ readonly longitude: 60;
46
+ }, {
47
+ readonly name: "망종";
48
+ readonly hanja: "芒種";
49
+ readonly longitude: 75;
50
+ }, {
51
+ readonly name: "하지";
52
+ readonly hanja: "夏至";
53
+ readonly longitude: 90;
54
+ }, {
55
+ readonly name: "소서";
56
+ readonly hanja: "小暑";
57
+ readonly longitude: 105;
58
+ }, {
59
+ readonly name: "대서";
60
+ readonly hanja: "大暑";
61
+ readonly longitude: 120;
62
+ }, {
63
+ readonly name: "입추";
64
+ readonly hanja: "立秋";
65
+ readonly longitude: 135;
66
+ }, {
67
+ readonly name: "처서";
68
+ readonly hanja: "處暑";
69
+ readonly longitude: 150;
70
+ }, {
71
+ readonly name: "백로";
72
+ readonly hanja: "白露";
73
+ readonly longitude: 165;
74
+ }, {
75
+ readonly name: "추분";
76
+ readonly hanja: "秋分";
77
+ readonly longitude: 180;
78
+ }, {
79
+ readonly name: "한로";
80
+ readonly hanja: "寒露";
81
+ readonly longitude: 195;
82
+ }, {
83
+ readonly name: "상강";
84
+ readonly hanja: "霜降";
85
+ readonly longitude: 210;
86
+ }, {
87
+ readonly name: "입동";
88
+ readonly hanja: "立冬";
89
+ readonly longitude: 225;
90
+ }, {
91
+ readonly name: "소설";
92
+ readonly hanja: "小雪";
93
+ readonly longitude: 240;
94
+ }, {
95
+ readonly name: "대설";
96
+ readonly hanja: "大雪";
97
+ readonly longitude: 255;
98
+ }, {
99
+ readonly name: "동지";
100
+ readonly hanja: "冬至";
101
+ readonly longitude: 270;
102
+ }];
103
+ export type SolarTermName = (typeof SOLAR_TERMS)[number]["name"];
104
+ export type SolarTermHanja = (typeof SOLAR_TERMS)[number]["hanja"];
105
+ export interface SolarTerm {
106
+ name: SolarTermName;
107
+ hanja: SolarTermHanja;
108
+ longitude: number;
109
+ }
110
+ export interface SolarTermDateInfo {
111
+ year: number;
112
+ month: number;
113
+ day: number;
114
+ hour: number;
115
+ minute: number;
116
+ }
117
+ export interface SolarTermInfo {
118
+ /** Current solar term (the one that has passed) */
119
+ current: SolarTerm;
120
+ /** Date when the current solar term started */
121
+ currentDate: SolarTermDateInfo;
122
+ /** Milliseconds timestamp of current solar term (for calculations) */
123
+ currentMillis: number;
124
+ /** Days elapsed since the current solar term */
125
+ daysSinceCurrent: number;
126
+ /** Next solar term (upcoming) */
127
+ next: SolarTerm;
128
+ /** Date when the next solar term will start */
129
+ nextDate: SolarTermDateInfo;
130
+ /** Milliseconds timestamp of next solar term (for calculations) */
131
+ nextMillis: number;
132
+ /** Days until the next solar term */
133
+ daysUntilNext: number;
134
+ /** Previous "節" (Jie) - the solar term that marks month boundary (for major luck calculation) */
135
+ prevJie: SolarTerm;
136
+ /** Date of previous Jie */
137
+ prevJieDate: SolarTermDateInfo;
138
+ /** Milliseconds timestamp of previous Jie */
139
+ prevJieMillis: number;
140
+ /** Next "節" (Jie) - the solar term that marks month boundary (for major luck calculation) */
141
+ nextJie: SolarTerm;
142
+ /** Date of next Jie */
143
+ nextJieDate: SolarTermDateInfo;
144
+ /** Milliseconds timestamp of next Jie */
145
+ nextJieMillis: number;
146
+ }
147
+ export declare function analyzeSolarTerms<T>(adapter: DateAdapter<T>, dtLocal: T): SolarTermInfo;
148
+ /**
149
+ * Get all solar term dates for a given year
150
+ */
151
+ export declare function getSolarTermsForYear<T>(adapter: DateAdapter<T>, year: number, timezone: string): Array<{
152
+ term: SolarTerm;
153
+ date: SolarTermDateInfo;
154
+ }>;
155
+ //# sourceMappingURL=solar-terms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solar-terms.d.ts","sourceRoot":"","sources":["../../src/core/solar-terms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,OAAO,EAAE,SAAS,CAAC;IACnB,+CAA+C;IAC/C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,+CAA+C;IAC/C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,OAAO,EAAE,SAAS,CAAC;IACnB,2BAA2B;IAC3B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,OAAO,EAAE,SAAS,CAAC;IACnB,uBAAuB;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;CACvB;AAuMD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,aAAa,CA0EvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IACP,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC,CAuBD"}