@hyunbinseo/holidays-kr 4.2026.0 → 5.2027.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.md CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  우주항공청에서 발표한 월력요항을 사용합니다. [English](#usage)
4
4
 
5
- - `Date` 객체의 공휴일 여부와 그 명칭들을 확인합니다.
5
+ - `Date` 객체의 공휴일 여부와 그 명칭들을 확인합니다
6
6
  - `CSV`, `JSON`, `ICS`, 캘린더 구독도 제공됩니다. [링크](https://github.com/hyunbinseo/holidays-kr#readme)
7
7
 
8
+ API는 연도별 공휴일 정보를 동적으로 불러오며, 데이터가 존재하지 않으면 `RangeError`를 던집니다.
9
+
8
10
  ```js
9
- // 요청한 연도의 공휴일 정보를 동적으로 불러옵니다.
10
11
  import { getHolidayNames, isHoliday } from '@hyunbinseo/holidays-kr';
11
12
 
12
13
  // 공휴일 여부
13
14
  await isHoliday(new Date('2026-01-01T00:00:00+0900')); // true
14
15
  await isHoliday(new Date('2026-01-02T00:00:00+0900')); // false
15
- await isHoliday(new Date('2999-01-01T00:00:00+0900')); // RangeError
16
16
 
17
17
  // 공휴일 명칭(들)
18
18
  await getHolidayNames(new Date('2026-05-05T00:00:00+0900')); // ['어린이날']
@@ -20,8 +20,11 @@ await getHolidayNames(new Date('2026-05-04T00:00:00+0900')); // null
20
20
  ```
21
21
 
22
22
  ```js
23
- // 연도별 공휴일 정보를 정적으로 불러옵니다.
24
- import { y2026 } from '@hyunbinseo/holidays-kr';
23
+ import { getHolidayPreset } from '@hyunbinseo/holidays-kr';
24
+
25
+ const y2026 = await getHolidayPreset('2026');
26
+ '2026-01-01' in y2026; // true
27
+ '2026-01-02' in y2026; // false
25
28
  ```
26
29
 
27
30
  ```jsonc
@@ -37,18 +40,36 @@ import { y2026 } from '@hyunbinseo/holidays-kr';
37
40
 
38
41
  ## Usage
39
42
 
40
- Check if a `yyyy-mm-dd` date string is a holiday:
43
+ APIs dynamically load yearly presets. `RangeError` is thrown if not available.
44
+
45
+ ```js
46
+ import { isHoliday } from '@hyunbinseo/holidays-kr';
47
+
48
+ // Jan 01 2026 00:00:00 GMT+0900 is a holiday in ROK
49
+ await isHoliday(new Date('2026-01-01T00:00:00+0900')); // true
50
+
51
+ // Be cautious with the date's time zone!
52
+ // Dec 31 2025 23:00:00 GMT+0900 is not a holiday in ROK
53
+ await isHoliday(new Date('2026-01-01T00:00:00+1000')); // false
54
+ ```
55
+
56
+ ```js
57
+ import { getHolidayNames } from '@hyunbinseo/holidays-kr';
58
+
59
+ await getHolidayNames(new Date('2026-05-05T00:00:00+0900')); // ['어린이날']
60
+ await getHolidayNames(new Date('2026-05-04T00:00:00+0900')); // null
61
+ ```
41
62
 
42
63
  ```js
43
- import { y2026 } from '@hyunbinseo/holidays-kr';
64
+ import { getHolidayPreset } from '@hyunbinseo/holidays-kr';
44
65
 
66
+ const y2026 = await getHolidayPreset('2026');
45
67
  '2026-01-01' in y2026; // true
46
68
  '2026-01-02' in y2026; // false
47
- '2025-01-01' in y2026; // false - different year
48
69
  ```
49
70
 
50
71
  ```jsonc
51
- // y2026 is shaped like this:
72
+ // y2026 shape:
52
73
  {
53
74
  "2026-01-01": ["1월 1일"],
54
75
  // ...
@@ -56,38 +77,29 @@ import { y2026 } from '@hyunbinseo/holidays-kr';
56
77
  }
57
78
  ```
58
79
 
59
- Check if a JavaScript Date is a holiday:
60
-
61
- ```js
62
- // Dynamically imports the preset for the requested year.
63
- import { isHoliday } from '@hyunbinseo/holidays-kr';
80
+ ## Migration
64
81
 
65
- // Jan 01 2026 00:00:00 GMT+0900 is a holiday in ROK.
66
- await isHoliday(new Date('2026-01-01T00:00:00+0900')); // true
82
+ ### 5.x
67
83
 
68
- // Be cautious with the date's time zone!
69
- // Dec 31 2025 23:00:00 GMT+0900 is not a holiday in ROK.
70
- await isHoliday(new Date('2026-01-01T00:00:00+1000')); // false
84
+ `getHolidayPreset` is now the recommended API for loading yearly presets:
71
85
 
72
- // Throws RangeError if no preset exists for the year.
73
- await isHoliday(new Date('2999-01-01T00:00:00+0900'));
86
+ ```js
87
+ import { getHolidayPreset } from '@hyunbinseo/holidays-kr';
88
+ const y2026 = await getHolidayPreset('2026');
74
89
  ```
75
90
 
76
- Get holiday names of a given JavaScript Date:
91
+ Static `y20XX` named exports have been moved to the `./all` subpath:
77
92
 
78
- ```js
79
- import { getHolidayNames } from '@hyunbinseo/holidays-kr';
80
-
81
- await getHolidayNames(new Date('2026-05-05T00:00:00+0900')); // ['어린이날']
82
- await getHolidayNames(new Date('2026-05-04T00:00:00+0900')); // null
93
+ ```diff
94
+ - import { y2026 } from '@hyunbinseo/holidays-kr';
95
+ + import { y2026 } from '@hyunbinseo/holidays-kr/all';
83
96
  ```
84
97
 
85
- ## Migration
86
-
87
98
  ### 4.x
88
99
 
89
- - `isHoliday` and `getHolidayNames` are now async
90
- - `isHolidayE` and `getHolidayNamesE` are removed
100
+ - ESM only. No longer includes CJS output
101
+ - `isHoliday` and `getHolidayNames` have become async
102
+ - `isHolidayE` and `getHolidayNamesE` have been removed
91
103
  - Holiday presets are dynamically imported per year
92
104
 
93
105
  ```diff
@@ -104,20 +116,20 @@ await getHolidayNames(new Date('2026-05-04T00:00:00+0900')); // null
104
116
 
105
117
  ### 3.x
106
118
 
107
- - `/public` directory is no longer included.
108
- - `TypeError` is thrown instead of being returned.
109
- - `RangeError` is thrown instead of returning `null`.
110
- - `isHoliday` uses the latest 2 years of holiday data.
111
- - `isHoliday` no longer supports the `options` parameter.
119
+ - `/public` directory is no longer included
120
+ - `TypeError` is thrown instead of being returned
121
+ - `RangeError` is thrown instead of returning `null`
122
+ - `isHoliday` uses the latest 2 years of holiday data
123
+ - `isHoliday` no longer supports the `options` parameter
112
124
 
113
125
  ```diff
114
- # Yearly holidays changed from a Map to an Object.
126
+ # Yearly holidays changed from a Map to an Object
115
127
  - y2025.has('2025-01-01');
116
128
  + '2025-01-01' in y2025;
117
129
  ```
118
130
 
119
131
  ```js
120
- // Check the day value of a `Date` object.
132
+ // Check the day value of a `Date` object
121
133
  import { dateToDayWithOffset } from '@hyunbinseo/tools';
122
134
  const date = new Date('2023-01-07T00:00:00+0900');
123
135
  dateToDayWithOffset(date, '+09:00'); // 6 - Saturday
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2018.ts
3
3
  var _2018_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2018,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2019.ts
3
3
  var _2019_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2019,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2020.ts
3
3
  var _2020_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2020,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2021.ts
3
3
  var _2021_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2021,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2022.ts
3
3
  var _2022_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2022,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2023.ts
3
3
  var _2023_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2023,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2024.ts
3
3
  var _2024_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2024,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2025.ts
3
3
  var _2025_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2025,
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  //#region src/holidays/2026.ts
3
3
  var _2026_exports = /* @__PURE__ */ __exportAll({
4
4
  default: () => y2026,
@@ -0,0 +1,34 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
+ //#region src/holidays/2027.ts
3
+ var _2027_exports = /* @__PURE__ */ __exportAll({
4
+ default: () => y2027,
5
+ y2027: () => y2027
6
+ });
7
+ const y2027 = {
8
+ "2027-01-01": ["1월 1일"],
9
+ "2027-02-06": ["설날 전날"],
10
+ "2027-02-07": ["설날"],
11
+ "2027-02-08": ["설날 다음 날"],
12
+ "2027-02-09": ["대체공휴일(설날)"],
13
+ "2027-03-01": ["3ㆍ1절"],
14
+ "2027-05-01": ["노동절"],
15
+ "2027-05-03": ["대체공휴일(노동절)"],
16
+ "2027-05-05": ["어린이날"],
17
+ "2027-05-13": ["부처님 오신 날"],
18
+ "2027-06-06": ["현충일"],
19
+ "2027-07-17": ["제헌절"],
20
+ "2027-07-19": ["대체공휴일(제헌절)"],
21
+ "2027-08-15": ["광복절"],
22
+ "2027-08-16": ["대체공휴일(광복절)"],
23
+ "2027-09-14": ["추석 전날"],
24
+ "2027-09-15": ["추석"],
25
+ "2027-09-16": ["추석 다음 날"],
26
+ "2027-10-03": ["개천절"],
27
+ "2027-10-04": ["대체공휴일(개천절)"],
28
+ "2027-10-09": ["한글날"],
29
+ "2027-10-11": ["대체공휴일(한글날)"],
30
+ "2027-12-25": ["기독탄신일"],
31
+ "2027-12-27": ["대체공휴일(기독탄신일)"]
32
+ };
33
+ //#endregion
34
+ export { y2027 as n, _2027_exports as t };
package/dist/all.d.ts ADDED
@@ -0,0 +1,232 @@
1
+ //#region src/holidays/2018.d.ts
2
+ declare const y2018: {
3
+ readonly '2018-01-01': readonly ["1월 1일"];
4
+ readonly '2018-02-15': readonly ["설날 전날"];
5
+ readonly '2018-02-16': readonly ["설날"];
6
+ readonly '2018-02-17': readonly ["설날 다음 날"];
7
+ readonly '2018-03-01': readonly ["3ㆍ1절"];
8
+ readonly '2018-05-05': readonly ["어린이날"];
9
+ readonly '2018-05-07': readonly ["대체공휴일(어린이날)"];
10
+ readonly '2018-05-22': readonly ["부처님 오신 날"];
11
+ readonly '2018-06-06': readonly ["현충일"];
12
+ readonly '2018-06-13': readonly ["전국동시지방선거"];
13
+ readonly '2018-08-15': readonly ["광복절"];
14
+ readonly '2018-09-23': readonly ["추석 전날"];
15
+ readonly '2018-09-24': readonly ["추석"];
16
+ readonly '2018-09-25': readonly ["추석 다음 날"];
17
+ readonly '2018-09-26': readonly ["대체공휴일(추석)"];
18
+ readonly '2018-10-03': readonly ["개천절"];
19
+ readonly '2018-10-09': readonly ["한글날"];
20
+ readonly '2018-12-25': readonly ["기독탄신일"];
21
+ };
22
+ //#endregion
23
+ //#region src/holidays/2019.d.ts
24
+ declare const y2019: {
25
+ readonly '2019-01-01': readonly ["1월 1일"];
26
+ readonly '2019-02-04': readonly ["설날 전날"];
27
+ readonly '2019-02-05': readonly ["설날"];
28
+ readonly '2019-02-06': readonly ["설날 다음 날"];
29
+ readonly '2019-03-01': readonly ["3ㆍ1절"];
30
+ readonly '2019-05-05': readonly ["어린이날"];
31
+ readonly '2019-05-06': readonly ["대체공휴일(어린이날)"];
32
+ readonly '2019-05-12': readonly ["부처님 오신 날"];
33
+ readonly '2019-06-06': readonly ["현충일"];
34
+ readonly '2019-08-15': readonly ["광복절"];
35
+ readonly '2019-09-12': readonly ["추석 전날"];
36
+ readonly '2019-09-13': readonly ["추석"];
37
+ readonly '2019-09-14': readonly ["추석 다음 날"];
38
+ readonly '2019-10-03': readonly ["개천절"];
39
+ readonly '2019-10-09': readonly ["한글날"];
40
+ readonly '2019-12-25': readonly ["기독탄신일"];
41
+ };
42
+ //#endregion
43
+ //#region src/holidays/2020.d.ts
44
+ declare const y2020: {
45
+ readonly '2020-01-01': readonly ["1월 1일"];
46
+ readonly '2020-01-24': readonly ["설날 전날"];
47
+ readonly '2020-01-25': readonly ["설날"];
48
+ readonly '2020-01-26': readonly ["설날 다음 날"];
49
+ readonly '2020-01-27': readonly ["대체공휴일(설날)"];
50
+ readonly '2020-03-01': readonly ["3ㆍ1절"];
51
+ readonly '2020-04-15': readonly ["제21대 국회의원선거"];
52
+ readonly '2020-04-30': readonly ["부처님 오신 날"];
53
+ readonly '2020-05-05': readonly ["어린이날"];
54
+ readonly '2020-06-06': readonly ["현충일"];
55
+ readonly '2020-08-15': readonly ["광복절"];
56
+ readonly '2020-08-17': readonly ["임시공휴일"];
57
+ readonly '2020-09-30': readonly ["추석 전날"];
58
+ readonly '2020-10-01': readonly ["추석"];
59
+ readonly '2020-10-02': readonly ["추석 다음 날"];
60
+ readonly '2020-10-03': readonly ["개천절"];
61
+ readonly '2020-10-09': readonly ["한글날"];
62
+ readonly '2020-12-25': readonly ["기독탄신일"];
63
+ };
64
+ //#endregion
65
+ //#region src/holidays/2021.d.ts
66
+ declare const y2021: {
67
+ readonly '2021-01-01': readonly ["1월 1일"];
68
+ readonly '2021-02-11': readonly ["설날 전날"];
69
+ readonly '2021-02-12': readonly ["설날"];
70
+ readonly '2021-02-13': readonly ["설날 다음 날"];
71
+ readonly '2021-03-01': readonly ["3ㆍ1절"];
72
+ readonly '2021-05-05': readonly ["어린이날"];
73
+ readonly '2021-05-19': readonly ["부처님 오신 날"];
74
+ readonly '2021-06-06': readonly ["현충일"];
75
+ readonly '2021-08-15': readonly ["광복절"];
76
+ readonly '2021-08-16': readonly ["대체공휴일(광복절)"];
77
+ readonly '2021-09-20': readonly ["추석 전날"];
78
+ readonly '2021-09-21': readonly ["추석"];
79
+ readonly '2021-09-22': readonly ["추석 다음 날"];
80
+ readonly '2021-10-03': readonly ["개천절"];
81
+ readonly '2021-10-04': readonly ["대체공휴일(개천절)"];
82
+ readonly '2021-10-09': readonly ["한글날"];
83
+ readonly '2021-10-11': readonly ["대체공휴일(한글날)"];
84
+ readonly '2021-12-25': readonly ["기독탄신일"];
85
+ };
86
+ //#endregion
87
+ //#region src/holidays/2022.d.ts
88
+ declare const y2022: {
89
+ readonly '2022-01-01': readonly ["1월 1일"];
90
+ readonly '2022-01-31': readonly ["설날 전날"];
91
+ readonly '2022-02-01': readonly ["설날"];
92
+ readonly '2022-02-02': readonly ["설날 다음 날"];
93
+ readonly '2022-03-01': readonly ["3ㆍ1절"];
94
+ readonly '2022-03-09': readonly ["대통령선거"];
95
+ readonly '2022-05-05': readonly ["어린이날"];
96
+ readonly '2022-05-08': readonly ["부처님 오신 날"];
97
+ readonly '2022-06-01': readonly ["전국동시지방선거"];
98
+ readonly '2022-06-06': readonly ["현충일"];
99
+ readonly '2022-08-15': readonly ["광복절"];
100
+ readonly '2022-09-09': readonly ["추석 전날"];
101
+ readonly '2022-09-10': readonly ["추석"];
102
+ readonly '2022-09-11': readonly ["추석 다음 날"];
103
+ readonly '2022-09-12': readonly ["대체공휴일(추석)"];
104
+ readonly '2022-10-03': readonly ["개천절"];
105
+ readonly '2022-10-09': readonly ["한글날"];
106
+ readonly '2022-10-10': readonly ["대체공휴일(한글날)"];
107
+ readonly '2022-12-25': readonly ["기독탄신일"];
108
+ };
109
+ //#endregion
110
+ //#region src/holidays/2023.d.ts
111
+ declare const y2023: {
112
+ readonly '2023-01-01': readonly ["1월 1일"];
113
+ readonly '2023-01-21': readonly ["설날 전날"];
114
+ readonly '2023-01-22': readonly ["설날"];
115
+ readonly '2023-01-23': readonly ["설날 다음 날"];
116
+ readonly '2023-01-24': readonly ["대체공휴일(설날)"];
117
+ readonly '2023-03-01': readonly ["3ㆍ1절"];
118
+ readonly '2023-05-05': readonly ["어린이날"];
119
+ readonly '2023-05-27': readonly ["부처님 오신 날"];
120
+ readonly '2023-05-29': readonly ["대체공휴일(부처님 오신 날)"];
121
+ readonly '2023-06-06': readonly ["현충일"];
122
+ readonly '2023-08-15': readonly ["광복절"];
123
+ readonly '2023-09-28': readonly ["추석 전날"];
124
+ readonly '2023-09-29': readonly ["추석"];
125
+ readonly '2023-09-30': readonly ["추석 다음 날"];
126
+ readonly '2023-10-02': readonly ["임시공휴일"];
127
+ readonly '2023-10-03': readonly ["개천절"];
128
+ readonly '2023-10-09': readonly ["한글날"];
129
+ readonly '2023-12-25': readonly ["기독탄신일"];
130
+ };
131
+ //#endregion
132
+ //#region src/holidays/2024.d.ts
133
+ declare const y2024: {
134
+ readonly '2024-01-01': readonly ["1월 1일"];
135
+ readonly '2024-02-09': readonly ["설날 전날"];
136
+ readonly '2024-02-10': readonly ["설날"];
137
+ readonly '2024-02-11': readonly ["설날 다음 날"];
138
+ readonly '2024-02-12': readonly ["대체공휴일(설날)"];
139
+ readonly '2024-03-01': readonly ["3ㆍ1절"];
140
+ readonly '2024-04-10': readonly ["제22대국회의원선거"];
141
+ readonly '2024-05-05': readonly ["어린이날"];
142
+ readonly '2024-05-06': readonly ["대체공휴일(어린이날)"];
143
+ readonly '2024-05-15': readonly ["부처님 오신 날"];
144
+ readonly '2024-06-06': readonly ["현충일"];
145
+ readonly '2024-08-15': readonly ["광복절"];
146
+ readonly '2024-09-16': readonly ["추석 전날"];
147
+ readonly '2024-09-17': readonly ["추석"];
148
+ readonly '2024-09-18': readonly ["추석 다음 날"];
149
+ readonly '2024-10-01': readonly ["임시공휴일"];
150
+ readonly '2024-10-03': readonly ["개천절"];
151
+ readonly '2024-10-09': readonly ["한글날"];
152
+ readonly '2024-12-25': readonly ["기독탄신일"];
153
+ };
154
+ //#endregion
155
+ //#region src/holidays/2025.d.ts
156
+ declare const y2025: {
157
+ readonly '2025-01-01': readonly ["1월 1일"];
158
+ readonly '2025-01-27': readonly ["임시공휴일"];
159
+ readonly '2025-01-28': readonly ["설날 전날"];
160
+ readonly '2025-01-29': readonly ["설날"];
161
+ readonly '2025-01-30': readonly ["설날 다음 날"];
162
+ readonly '2025-03-01': readonly ["3ㆍ1절"];
163
+ readonly '2025-03-03': readonly ["대체공휴일(3ㆍ1절)"];
164
+ readonly '2025-05-05': readonly ["어린이날", "부처님 오신 날"];
165
+ readonly '2025-05-06': readonly ["대체공휴일(부처님 오신 날)"];
166
+ readonly '2025-06-03': readonly ["임시공휴일(대통령선거)"];
167
+ readonly '2025-06-06': readonly ["현충일"];
168
+ readonly '2025-08-15': readonly ["광복절"];
169
+ readonly '2025-10-03': readonly ["개천절"];
170
+ readonly '2025-10-05': readonly ["추석 전날"];
171
+ readonly '2025-10-06': readonly ["추석"];
172
+ readonly '2025-10-07': readonly ["추석 다음 날"];
173
+ readonly '2025-10-08': readonly ["대체공휴일(추석)"];
174
+ readonly '2025-10-09': readonly ["한글날"];
175
+ readonly '2025-12-25': readonly ["기독탄신일"];
176
+ };
177
+ //#endregion
178
+ //#region src/holidays/2026.d.ts
179
+ declare const y2026: {
180
+ readonly '2026-01-01': readonly ["1월 1일"];
181
+ readonly '2026-02-16': readonly ["설날 전날"];
182
+ readonly '2026-02-17': readonly ["설날"];
183
+ readonly '2026-02-18': readonly ["설날 다음 날"];
184
+ readonly '2026-03-01': readonly ["3ㆍ1절"];
185
+ readonly '2026-03-02': readonly ["대체공휴일(3ㆍ1절)"];
186
+ readonly '2026-05-01': readonly ["노동절"];
187
+ readonly '2026-05-05': readonly ["어린이날"];
188
+ readonly '2026-05-24': readonly ["부처님 오신 날"];
189
+ readonly '2026-05-25': readonly ["대체공휴일(부처님 오신 날)"];
190
+ readonly '2026-06-03': readonly ["전국동시지방선거"];
191
+ readonly '2026-06-06': readonly ["현충일"];
192
+ readonly '2026-07-17': readonly ["제헌절"];
193
+ readonly '2026-08-15': readonly ["광복절"];
194
+ readonly '2026-08-17': readonly ["대체공휴일(광복절)"];
195
+ readonly '2026-09-24': readonly ["추석 전날"];
196
+ readonly '2026-09-25': readonly ["추석"];
197
+ readonly '2026-09-26': readonly ["추석 다음 날"];
198
+ readonly '2026-10-03': readonly ["개천절"];
199
+ readonly '2026-10-05': readonly ["대체공휴일(개천절)"];
200
+ readonly '2026-10-09': readonly ["한글날"];
201
+ readonly '2026-12-25': readonly ["기독탄신일"];
202
+ };
203
+ //#endregion
204
+ //#region src/holidays/2027.d.ts
205
+ declare const y2027: {
206
+ readonly '2027-01-01': readonly ["1월 1일"];
207
+ readonly '2027-02-06': readonly ["설날 전날"];
208
+ readonly '2027-02-07': readonly ["설날"];
209
+ readonly '2027-02-08': readonly ["설날 다음 날"];
210
+ readonly '2027-02-09': readonly ["대체공휴일(설날)"];
211
+ readonly '2027-03-01': readonly ["3ㆍ1절"];
212
+ readonly '2027-05-01': readonly ["노동절"];
213
+ readonly '2027-05-03': readonly ["대체공휴일(노동절)"];
214
+ readonly '2027-05-05': readonly ["어린이날"];
215
+ readonly '2027-05-13': readonly ["부처님 오신 날"];
216
+ readonly '2027-06-06': readonly ["현충일"];
217
+ readonly '2027-07-17': readonly ["제헌절"];
218
+ readonly '2027-07-19': readonly ["대체공휴일(제헌절)"];
219
+ readonly '2027-08-15': readonly ["광복절"];
220
+ readonly '2027-08-16': readonly ["대체공휴일(광복절)"];
221
+ readonly '2027-09-14': readonly ["추석 전날"];
222
+ readonly '2027-09-15': readonly ["추석"];
223
+ readonly '2027-09-16': readonly ["추석 다음 날"];
224
+ readonly '2027-10-03': readonly ["개천절"];
225
+ readonly '2027-10-04': readonly ["대체공휴일(개천절)"];
226
+ readonly '2027-10-09': readonly ["한글날"];
227
+ readonly '2027-10-11': readonly ["대체공휴일(한글날)"];
228
+ readonly '2027-12-25': readonly ["기독탄신일"];
229
+ readonly '2027-12-27': readonly ["대체공휴일(기독탄신일)"];
230
+ };
231
+ //#endregion
232
+ export { y2018, y2019, y2020, y2021, y2022, y2023, y2024, y2025, y2026, y2027 };
package/dist/all.js ADDED
@@ -0,0 +1,11 @@
1
+ import { n as y2018 } from "./2018-CHZjwTM_.js";
2
+ import { n as y2019 } from "./2019-_6NrILve.js";
3
+ import { n as y2020 } from "./2020-CqFVgEif.js";
4
+ import { n as y2021 } from "./2021-C5PWxTCA.js";
5
+ import { n as y2022 } from "./2022-CLgZmPxy.js";
6
+ import { n as y2023 } from "./2023-D7s4YeXp.js";
7
+ import { n as y2024 } from "./2024-BjGDilD3.js";
8
+ import { n as y2025 } from "./2025-Ct_fzTJp.js";
9
+ import { n as y2026 } from "./2026-CCnV5XUt.js";
10
+ import { n as y2027 } from "./2027-B0ejo23X.js";
11
+ export { y2018, y2019, y2020, y2021, y2022, y2023, y2024, y2025, y2026, y2027 };
package/dist/index.d.ts CHANGED
@@ -1,208 +1,6 @@
1
- //#region src/holidays/2018.d.ts
2
- declare const y2018: {
3
- readonly '2018-01-01': readonly ["1월 1일"];
4
- readonly '2018-02-15': readonly ["설날 전날"];
5
- readonly '2018-02-16': readonly ["설날"];
6
- readonly '2018-02-17': readonly ["설날 다음 날"];
7
- readonly '2018-03-01': readonly ["3ㆍ1절"];
8
- readonly '2018-05-05': readonly ["어린이날"];
9
- readonly '2018-05-07': readonly ["대체공휴일(어린이날)"];
10
- readonly '2018-05-22': readonly ["부처님 오신 날"];
11
- readonly '2018-06-06': readonly ["현충일"];
12
- readonly '2018-06-13': readonly ["전국동시지방선거"];
13
- readonly '2018-08-15': readonly ["광복절"];
14
- readonly '2018-09-23': readonly ["추석 전날"];
15
- readonly '2018-09-24': readonly ["추석"];
16
- readonly '2018-09-25': readonly ["추석 다음 날"];
17
- readonly '2018-09-26': readonly ["대체공휴일(추석)"];
18
- readonly '2018-10-03': readonly ["개천절"];
19
- readonly '2018-10-09': readonly ["한글날"];
20
- readonly '2018-12-25': readonly ["기독탄신일"];
21
- };
22
- //#endregion
23
- //#region src/holidays/2019.d.ts
24
- declare const y2019: {
25
- readonly '2019-01-01': readonly ["1월 1일"];
26
- readonly '2019-02-04': readonly ["설날 전날"];
27
- readonly '2019-02-05': readonly ["설날"];
28
- readonly '2019-02-06': readonly ["설날 다음 날"];
29
- readonly '2019-03-01': readonly ["3ㆍ1절"];
30
- readonly '2019-05-05': readonly ["어린이날"];
31
- readonly '2019-05-06': readonly ["대체공휴일(어린이날)"];
32
- readonly '2019-05-12': readonly ["부처님 오신 날"];
33
- readonly '2019-06-06': readonly ["현충일"];
34
- readonly '2019-08-15': readonly ["광복절"];
35
- readonly '2019-09-12': readonly ["추석 전날"];
36
- readonly '2019-09-13': readonly ["추석"];
37
- readonly '2019-09-14': readonly ["추석 다음 날"];
38
- readonly '2019-10-03': readonly ["개천절"];
39
- readonly '2019-10-09': readonly ["한글날"];
40
- readonly '2019-12-25': readonly ["기독탄신일"];
41
- };
42
- //#endregion
43
- //#region src/holidays/2020.d.ts
44
- declare const y2020: {
45
- readonly '2020-01-01': readonly ["1월 1일"];
46
- readonly '2020-01-24': readonly ["설날 전날"];
47
- readonly '2020-01-25': readonly ["설날"];
48
- readonly '2020-01-26': readonly ["설날 다음 날"];
49
- readonly '2020-01-27': readonly ["대체공휴일(설날)"];
50
- readonly '2020-03-01': readonly ["3ㆍ1절"];
51
- readonly '2020-04-15': readonly ["제21대 국회의원선거"];
52
- readonly '2020-04-30': readonly ["부처님 오신 날"];
53
- readonly '2020-05-05': readonly ["어린이날"];
54
- readonly '2020-06-06': readonly ["현충일"];
55
- readonly '2020-08-15': readonly ["광복절"];
56
- readonly '2020-08-17': readonly ["임시공휴일"];
57
- readonly '2020-09-30': readonly ["추석 전날"];
58
- readonly '2020-10-01': readonly ["추석"];
59
- readonly '2020-10-02': readonly ["추석 다음 날"];
60
- readonly '2020-10-03': readonly ["개천절"];
61
- readonly '2020-10-09': readonly ["한글날"];
62
- readonly '2020-12-25': readonly ["기독탄신일"];
63
- };
64
- //#endregion
65
- //#region src/holidays/2021.d.ts
66
- declare const y2021: {
67
- readonly '2021-01-01': readonly ["1월 1일"];
68
- readonly '2021-02-11': readonly ["설날 전날"];
69
- readonly '2021-02-12': readonly ["설날"];
70
- readonly '2021-02-13': readonly ["설날 다음 날"];
71
- readonly '2021-03-01': readonly ["3ㆍ1절"];
72
- readonly '2021-05-05': readonly ["어린이날"];
73
- readonly '2021-05-19': readonly ["부처님 오신 날"];
74
- readonly '2021-06-06': readonly ["현충일"];
75
- readonly '2021-08-15': readonly ["광복절"];
76
- readonly '2021-08-16': readonly ["대체공휴일(광복절)"];
77
- readonly '2021-09-20': readonly ["추석 전날"];
78
- readonly '2021-09-21': readonly ["추석"];
79
- readonly '2021-09-22': readonly ["추석 다음 날"];
80
- readonly '2021-10-03': readonly ["개천절"];
81
- readonly '2021-10-04': readonly ["대체공휴일(개천절)"];
82
- readonly '2021-10-09': readonly ["한글날"];
83
- readonly '2021-10-11': readonly ["대체공휴일(한글날)"];
84
- readonly '2021-12-25': readonly ["기독탄신일"];
85
- };
86
- //#endregion
87
- //#region src/holidays/2022.d.ts
88
- declare const y2022: {
89
- readonly '2022-01-01': readonly ["1월 1일"];
90
- readonly '2022-01-31': readonly ["설날 전날"];
91
- readonly '2022-02-01': readonly ["설날"];
92
- readonly '2022-02-02': readonly ["설날 다음 날"];
93
- readonly '2022-03-01': readonly ["3ㆍ1절"];
94
- readonly '2022-03-09': readonly ["대통령선거"];
95
- readonly '2022-05-05': readonly ["어린이날"];
96
- readonly '2022-05-08': readonly ["부처님 오신 날"];
97
- readonly '2022-06-01': readonly ["전국동시지방선거"];
98
- readonly '2022-06-06': readonly ["현충일"];
99
- readonly '2022-08-15': readonly ["광복절"];
100
- readonly '2022-09-09': readonly ["추석 전날"];
101
- readonly '2022-09-10': readonly ["추석"];
102
- readonly '2022-09-11': readonly ["추석 다음 날"];
103
- readonly '2022-09-12': readonly ["대체공휴일(추석)"];
104
- readonly '2022-10-03': readonly ["개천절"];
105
- readonly '2022-10-09': readonly ["한글날"];
106
- readonly '2022-10-10': readonly ["대체공휴일(한글날)"];
107
- readonly '2022-12-25': readonly ["기독탄신일"];
108
- };
109
- //#endregion
110
- //#region src/holidays/2023.d.ts
111
- declare const y2023: {
112
- readonly '2023-01-01': readonly ["1월 1일"];
113
- readonly '2023-01-21': readonly ["설날 전날"];
114
- readonly '2023-01-22': readonly ["설날"];
115
- readonly '2023-01-23': readonly ["설날 다음 날"];
116
- readonly '2023-01-24': readonly ["대체공휴일(설날)"];
117
- readonly '2023-03-01': readonly ["3ㆍ1절"];
118
- readonly '2023-05-05': readonly ["어린이날"];
119
- readonly '2023-05-27': readonly ["부처님 오신 날"];
120
- readonly '2023-05-29': readonly ["대체공휴일(부처님 오신 날)"];
121
- readonly '2023-06-06': readonly ["현충일"];
122
- readonly '2023-08-15': readonly ["광복절"];
123
- readonly '2023-09-28': readonly ["추석 전날"];
124
- readonly '2023-09-29': readonly ["추석"];
125
- readonly '2023-09-30': readonly ["추석 다음 날"];
126
- readonly '2023-10-02': readonly ["임시공휴일"];
127
- readonly '2023-10-03': readonly ["개천절"];
128
- readonly '2023-10-09': readonly ["한글날"];
129
- readonly '2023-12-25': readonly ["기독탄신일"];
130
- };
131
- //#endregion
132
- //#region src/holidays/2024.d.ts
133
- declare const y2024: {
134
- readonly '2024-01-01': readonly ["1월 1일"];
135
- readonly '2024-02-09': readonly ["설날 전날"];
136
- readonly '2024-02-10': readonly ["설날"];
137
- readonly '2024-02-11': readonly ["설날 다음 날"];
138
- readonly '2024-02-12': readonly ["대체공휴일(설날)"];
139
- readonly '2024-03-01': readonly ["3ㆍ1절"];
140
- readonly '2024-04-10': readonly ["제22대국회의원선거"];
141
- readonly '2024-05-05': readonly ["어린이날"];
142
- readonly '2024-05-06': readonly ["대체공휴일(어린이날)"];
143
- readonly '2024-05-15': readonly ["부처님 오신 날"];
144
- readonly '2024-06-06': readonly ["현충일"];
145
- readonly '2024-08-15': readonly ["광복절"];
146
- readonly '2024-09-16': readonly ["추석 전날"];
147
- readonly '2024-09-17': readonly ["추석"];
148
- readonly '2024-09-18': readonly ["추석 다음 날"];
149
- readonly '2024-10-01': readonly ["임시공휴일"];
150
- readonly '2024-10-03': readonly ["개천절"];
151
- readonly '2024-10-09': readonly ["한글날"];
152
- readonly '2024-12-25': readonly ["기독탄신일"];
153
- };
154
- //#endregion
155
- //#region src/holidays/2025.d.ts
156
- declare const y2025: {
157
- readonly '2025-01-01': readonly ["1월 1일"];
158
- readonly '2025-01-27': readonly ["임시공휴일"];
159
- readonly '2025-01-28': readonly ["설날 전날"];
160
- readonly '2025-01-29': readonly ["설날"];
161
- readonly '2025-01-30': readonly ["설날 다음 날"];
162
- readonly '2025-03-01': readonly ["3ㆍ1절"];
163
- readonly '2025-03-03': readonly ["대체공휴일(3ㆍ1절)"];
164
- readonly '2025-05-05': readonly ["어린이날", "부처님 오신 날"];
165
- readonly '2025-05-06': readonly ["대체공휴일(부처님 오신 날)"];
166
- readonly '2025-06-03': readonly ["임시공휴일(대통령선거)"];
167
- readonly '2025-06-06': readonly ["현충일"];
168
- readonly '2025-08-15': readonly ["광복절"];
169
- readonly '2025-10-03': readonly ["개천절"];
170
- readonly '2025-10-05': readonly ["추석 전날"];
171
- readonly '2025-10-06': readonly ["추석"];
172
- readonly '2025-10-07': readonly ["추석 다음 날"];
173
- readonly '2025-10-08': readonly ["대체공휴일(추석)"];
174
- readonly '2025-10-09': readonly ["한글날"];
175
- readonly '2025-12-25': readonly ["기독탄신일"];
176
- };
177
- //#endregion
178
- //#region src/holidays/2026.d.ts
179
- declare const y2026: {
180
- readonly '2026-01-01': readonly ["1월 1일"];
181
- readonly '2026-02-16': readonly ["설날 전날"];
182
- readonly '2026-02-17': readonly ["설날"];
183
- readonly '2026-02-18': readonly ["설날 다음 날"];
184
- readonly '2026-03-01': readonly ["3ㆍ1절"];
185
- readonly '2026-03-02': readonly ["대체공휴일(3ㆍ1절)"];
186
- readonly '2026-05-01': readonly ["노동절"];
187
- readonly '2026-05-05': readonly ["어린이날"];
188
- readonly '2026-05-24': readonly ["부처님 오신 날"];
189
- readonly '2026-05-25': readonly ["대체공휴일(부처님 오신 날)"];
190
- readonly '2026-06-03': readonly ["전국동시지방선거"];
191
- readonly '2026-06-06': readonly ["현충일"];
192
- readonly '2026-07-17': readonly ["제헌절"];
193
- readonly '2026-08-15': readonly ["광복절"];
194
- readonly '2026-08-17': readonly ["대체공휴일(광복절)"];
195
- readonly '2026-09-24': readonly ["추석 전날"];
196
- readonly '2026-09-25': readonly ["추석"];
197
- readonly '2026-09-26': readonly ["추석 다음 날"];
198
- readonly '2026-10-03': readonly ["개천절"];
199
- readonly '2026-10-05': readonly ["대체공휴일(개천절)"];
200
- readonly '2026-10-09': readonly ["한글날"];
201
- readonly '2026-12-25': readonly ["기독탄신일"];
202
- };
203
- //#endregion
204
1
  //#region src/holidays/utils.d.ts
2
+ declare const getHolidayPreset: (yyyy: string) => Promise<Readonly<Record<`${number}-${number}-${number}`, readonly string[]>>>;
205
3
  declare const getHolidayNames: (date: Date) => Promise<readonly string[] | null>;
206
4
  declare const isHoliday: (date: Date) => Promise<boolean>;
207
5
  //#endregion
208
- export { getHolidayNames, isHoliday, y2018, y2019, y2020, y2021, y2022, y2023, y2024, y2025, y2026 };
6
+ export { getHolidayNames, getHolidayPreset, isHoliday };
package/dist/index.js CHANGED
@@ -1,33 +1,27 @@
1
- import { n as y2018 } from "./2018-C5AwMa7y.js";
2
- import { n as y2019 } from "./2019-CsvcRi6c.js";
3
- import { n as y2020 } from "./2020-Do-jf8yU.js";
4
- import { n as y2021 } from "./2021-kMgaJFlk.js";
5
- import { n as y2022 } from "./2022-JrHXz0nq.js";
6
- import { n as y2023 } from "./2023-B1YUK2Tb.js";
7
- import { n as y2024 } from "./2024-Bc6AOiCH.js";
8
- import { n as y2025 } from "./2025-DhUTK95M.js";
9
- import { n as y2026 } from "./2026-94COvbcH.js";
10
1
  //#region src/holidays/utils.ts
11
2
  const KST_OFFSET = 540 * 6e4;
12
- const modules = /* @__PURE__ */ Object.assign({
13
- "./2018.ts": () => import("./2018-C5AwMa7y.js").then((n) => n.t).then((m) => m["default"]),
14
- "./2019.ts": () => import("./2019-CsvcRi6c.js").then((n) => n.t).then((m) => m["default"]),
15
- "./2020.ts": () => import("./2020-Do-jf8yU.js").then((n) => n.t).then((m) => m["default"]),
16
- "./2021.ts": () => import("./2021-kMgaJFlk.js").then((n) => n.t).then((m) => m["default"]),
17
- "./2022.ts": () => import("./2022-JrHXz0nq.js").then((n) => n.t).then((m) => m["default"]),
18
- "./2023.ts": () => import("./2023-B1YUK2Tb.js").then((n) => n.t).then((m) => m["default"]),
19
- "./2024.ts": () => import("./2024-Bc6AOiCH.js").then((n) => n.t).then((m) => m["default"]),
20
- "./2025.ts": () => import("./2025-DhUTK95M.js").then((n) => n.t).then((m) => m["default"]),
21
- "./2026.ts": () => import("./2026-94COvbcH.js").then((n) => n.t).then((m) => m["default"])
3
+ const holidayPresets = /* #__PURE__ */ Object.assign({
4
+ "./2018.ts": () => import("./2018-CHZjwTM_.js").then((n) => n.t).then((m) => m["default"]),
5
+ "./2019.ts": () => import("./2019-_6NrILve.js").then((n) => n.t).then((m) => m["default"]),
6
+ "./2020.ts": () => import("./2020-CqFVgEif.js").then((n) => n.t).then((m) => m["default"]),
7
+ "./2021.ts": () => import("./2021-C5PWxTCA.js").then((n) => n.t).then((m) => m["default"]),
8
+ "./2022.ts": () => import("./2022-CLgZmPxy.js").then((n) => n.t).then((m) => m["default"]),
9
+ "./2023.ts": () => import("./2023-D7s4YeXp.js").then((n) => n.t).then((m) => m["default"]),
10
+ "./2024.ts": () => import("./2024-BjGDilD3.js").then((n) => n.t).then((m) => m["default"]),
11
+ "./2025.ts": () => import("./2025-Ct_fzTJp.js").then((n) => n.t).then((m) => m["default"]),
12
+ "./2026.ts": () => import("./2026-CCnV5XUt.js").then((n) => n.t).then((m) => m["default"]),
13
+ "./2027.ts": () => import("./2027-B0ejo23X.js").then((n) => n.t).then((m) => m["default"])
22
14
  });
15
+ const getHolidayPreset = async (yyyy) => {
16
+ const loader = holidayPresets[`./${yyyy}.ts`];
17
+ if (!loader) throw new RangeError(`No preset for year ${yyyy}`);
18
+ return loader();
19
+ };
23
20
  const getHolidayNames = async (date) => {
24
21
  if (!(date instanceof Date)) throw new TypeError(`${date} is not a Date`);
25
22
  const yyyy_mm_dd = new Date(date.valueOf() + KST_OFFSET).toISOString().slice(0, 10);
26
- const yyyy = yyyy_mm_dd.slice(0, 4);
27
- const loader = modules[`./${yyyy}.ts`];
28
- if (!loader) throw new RangeError(`No preset for year ${yyyy}.`);
29
- return (await loader())[yyyy_mm_dd] ?? null;
23
+ return (await getHolidayPreset(yyyy_mm_dd.slice(0, 4)))[yyyy_mm_dd] ?? null;
30
24
  };
31
25
  const isHoliday = async (date) => !!await getHolidayNames(date);
32
26
  //#endregion
33
- export { getHolidayNames, isHoliday, y2018, y2019, y2020, y2021, y2022, y2023, y2024, y2025, y2026 };
27
+ export { getHolidayNames, getHolidayPreset, isHoliday };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyunbinseo/holidays-kr",
3
- "version": "4.2026.0",
3
+ "version": "5.2027.0",
4
4
  "description": "South Korea's national holidays, based on the official gazette",
5
5
  "keywords": [
6
6
  "Korean",
@@ -23,26 +23,31 @@
23
23
  "dist"
24
24
  ],
25
25
  "type": "module",
26
+ "imports": {
27
+ "#cli/*": "./cli/*",
28
+ "#src/*": "./src/*"
29
+ },
26
30
  "exports": {
27
31
  ".": "./dist/index.js",
32
+ "./all": "./dist/all.js",
28
33
  "./package.json": "./package.json"
29
34
  },
30
35
  "devDependencies": {
31
- "@arethetypeswrong/core": "^0.18.2",
32
- "@types/node": "^24.12.2",
33
- "oxfmt": "^0.44.0",
34
- "oxlint": "^1.59.0",
35
- "publint": "^0.3.18",
36
- "tsdown": "^0.21.7",
37
- "typescript": "^6.0.2",
38
- "vitest": "^4.1.2"
36
+ "@arethetypeswrong/core": "^0.18.4",
37
+ "@types/node": "^24.13.2",
38
+ "oxfmt": "^0.56.0",
39
+ "oxlint": "^1.71.0",
40
+ "publint": "^0.3.21",
41
+ "tsdown": "^0.22.3",
42
+ "typescript": "^6.0.3",
43
+ "vitest": "^4.1.9"
39
44
  },
40
45
  "engines": {
41
46
  "node": ">=18"
42
47
  },
43
48
  "scripts": {
44
49
  "preversion": "vitest run",
45
- "version": "node cli/write.ts && git add -A public",
50
+ "version": "node cli/write/all.ts && git add -A public",
46
51
  "postversion": "git push && git push --tags && node cli/postversion.ts",
47
52
  "check": "tsc --noEmit",
48
53
  "fmt": "oxfmt",