@simplysm/core-common 13.0.100 → 14.0.4

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 (184) hide show
  1. package/README.md +86 -92
  2. package/dist/common.types.d.ts +14 -14
  3. package/dist/common.types.js +2 -1
  4. package/dist/common.types.js.map +1 -6
  5. package/dist/env.d.ts +8 -1
  6. package/dist/env.d.ts.map +1 -1
  7. package/dist/env.js +13 -9
  8. package/dist/env.js.map +1 -6
  9. package/dist/errors/argument-error.d.ts +10 -10
  10. package/dist/errors/argument-error.d.ts.map +1 -1
  11. package/dist/errors/argument-error.js +31 -14
  12. package/dist/errors/argument-error.js.map +1 -6
  13. package/dist/errors/not-implemented-error.d.ts +8 -8
  14. package/dist/errors/not-implemented-error.js +30 -12
  15. package/dist/errors/not-implemented-error.js.map +1 -6
  16. package/dist/errors/sd-error.d.ts +10 -10
  17. package/dist/errors/sd-error.d.ts.map +1 -1
  18. package/dist/errors/sd-error.js +45 -24
  19. package/dist/errors/sd-error.js.map +1 -6
  20. package/dist/errors/timeout-error.d.ts +10 -10
  21. package/dist/errors/timeout-error.js +34 -15
  22. package/dist/errors/timeout-error.js.map +1 -6
  23. package/dist/extensions/arr-ext.d.ts +2 -2
  24. package/dist/extensions/arr-ext.helpers.d.ts +10 -10
  25. package/dist/extensions/arr-ext.helpers.js +112 -89
  26. package/dist/extensions/arr-ext.helpers.js.map +1 -6
  27. package/dist/extensions/arr-ext.js +458 -422
  28. package/dist/extensions/arr-ext.js.map +1 -6
  29. package/dist/extensions/arr-ext.types.d.ts +57 -57
  30. package/dist/extensions/arr-ext.types.d.ts.map +1 -1
  31. package/dist/extensions/arr-ext.types.js +6 -1
  32. package/dist/extensions/arr-ext.types.js.map +1 -6
  33. package/dist/extensions/map-ext.d.ts +16 -16
  34. package/dist/extensions/map-ext.js +27 -22
  35. package/dist/extensions/map-ext.js.map +1 -6
  36. package/dist/extensions/set-ext.d.ts +11 -11
  37. package/dist/extensions/set-ext.js +32 -25
  38. package/dist/extensions/set-ext.js.map +1 -6
  39. package/dist/features/debounce-queue.d.ts +17 -17
  40. package/dist/features/debounce-queue.js +98 -70
  41. package/dist/features/debounce-queue.js.map +1 -6
  42. package/dist/features/event-emitter.d.ts +20 -20
  43. package/dist/features/event-emitter.js +101 -78
  44. package/dist/features/event-emitter.js.map +1 -6
  45. package/dist/features/serial-queue.d.ts +11 -11
  46. package/dist/features/serial-queue.js +78 -57
  47. package/dist/features/serial-queue.js.map +1 -6
  48. package/dist/globals.d.ts +4 -4
  49. package/dist/globals.js +9 -1
  50. package/dist/globals.js.map +1 -6
  51. package/dist/index.js +28 -27
  52. package/dist/index.js.map +1 -6
  53. package/dist/types/date-only.d.ts +64 -64
  54. package/dist/types/date-only.d.ts.map +1 -1
  55. package/dist/types/date-only.js +263 -252
  56. package/dist/types/date-only.js.map +1 -6
  57. package/dist/types/date-time.d.ts +36 -36
  58. package/dist/types/date-time.d.ts.map +1 -1
  59. package/dist/types/date-time.js +196 -288
  60. package/dist/types/date-time.js.map +1 -6
  61. package/dist/types/lazy-gc-map.d.ts +26 -26
  62. package/dist/types/lazy-gc-map.d.ts.map +1 -1
  63. package/dist/types/lazy-gc-map.js +202 -159
  64. package/dist/types/lazy-gc-map.js.map +1 -6
  65. package/dist/types/time.d.ts +23 -23
  66. package/dist/types/time.d.ts.map +1 -1
  67. package/dist/types/time.js +169 -158
  68. package/dist/types/time.js.map +1 -6
  69. package/dist/types/uuid.d.ts +11 -11
  70. package/dist/types/uuid.d.ts.map +1 -1
  71. package/dist/types/uuid.js +95 -70
  72. package/dist/types/uuid.js.map +1 -6
  73. package/dist/utils/bytes.d.ts +17 -17
  74. package/dist/utils/bytes.js +137 -81
  75. package/dist/utils/bytes.js.map +1 -6
  76. package/dist/utils/date-format.d.ts +40 -40
  77. package/dist/utils/date-format.js +187 -101
  78. package/dist/utils/date-format.js.map +1 -6
  79. package/dist/utils/error.d.ts +4 -4
  80. package/dist/utils/error.js +11 -6
  81. package/dist/utils/error.js.map +1 -6
  82. package/dist/utils/json.d.ts +19 -19
  83. package/dist/utils/json.js +187 -135
  84. package/dist/utils/json.js.map +1 -6
  85. package/dist/utils/num.d.ts +20 -20
  86. package/dist/utils/num.js +76 -34
  87. package/dist/utils/num.js.map +1 -6
  88. package/dist/utils/obj.d.ts +111 -111
  89. package/dist/utils/obj.d.ts.map +1 -1
  90. package/dist/utils/obj.js +706 -496
  91. package/dist/utils/obj.js.map +1 -6
  92. package/dist/utils/path.d.ts +10 -10
  93. package/dist/utils/path.js +35 -18
  94. package/dist/utils/path.js.map +1 -6
  95. package/dist/utils/primitive.d.ts +5 -5
  96. package/dist/utils/primitive.js +34 -14
  97. package/dist/utils/primitive.js.map +1 -6
  98. package/dist/utils/str.d.ts +38 -38
  99. package/dist/utils/str.js +217 -113
  100. package/dist/utils/str.js.map +1 -6
  101. package/dist/utils/template-strings.d.ts +26 -26
  102. package/dist/utils/template-strings.js +113 -40
  103. package/dist/utils/template-strings.js.map +1 -6
  104. package/dist/utils/transferable.d.ts +18 -18
  105. package/dist/utils/transferable.js +218 -151
  106. package/dist/utils/transferable.js.map +1 -6
  107. package/dist/utils/wait.d.ts +9 -9
  108. package/dist/utils/wait.js +30 -15
  109. package/dist/utils/wait.js.map +1 -6
  110. package/dist/utils/xml.d.ts +13 -13
  111. package/dist/utils/xml.js +84 -46
  112. package/dist/utils/xml.js.map +1 -6
  113. package/dist/utils/zip.d.ts +22 -22
  114. package/dist/utils/zip.js +172 -148
  115. package/dist/utils/zip.js.map +1 -6
  116. package/docs/array-extensions.md +430 -0
  117. package/docs/env.md +52 -0
  118. package/docs/errors.md +41 -56
  119. package/docs/features.md +82 -97
  120. package/docs/type-utilities.md +91 -0
  121. package/docs/types.md +221 -201
  122. package/docs/utils.md +319 -435
  123. package/package.json +7 -5
  124. package/src/common.types.ts +14 -14
  125. package/src/env.ts +12 -3
  126. package/src/errors/argument-error.ts +15 -15
  127. package/src/errors/not-implemented-error.ts +9 -9
  128. package/src/errors/sd-error.ts +12 -12
  129. package/src/errors/timeout-error.ts +12 -12
  130. package/src/extensions/arr-ext.helpers.ts +16 -16
  131. package/src/extensions/arr-ext.ts +35 -35
  132. package/src/extensions/arr-ext.types.ts +57 -57
  133. package/src/extensions/map-ext.ts +16 -16
  134. package/src/extensions/set-ext.ts +11 -11
  135. package/src/features/debounce-queue.ts +23 -23
  136. package/src/features/event-emitter.ts +25 -25
  137. package/src/features/serial-queue.ts +13 -13
  138. package/src/globals.ts +4 -4
  139. package/src/index.ts +5 -5
  140. package/src/types/date-only.ts +84 -83
  141. package/src/types/date-time.ts +43 -42
  142. package/src/types/lazy-gc-map.ts +44 -44
  143. package/src/types/time.ts +29 -29
  144. package/src/types/uuid.ts +15 -15
  145. package/src/utils/bytes.ts +35 -35
  146. package/src/utils/date-format.ts +59 -59
  147. package/src/utils/error.ts +4 -4
  148. package/src/utils/json.ts +41 -41
  149. package/src/utils/num.ts +20 -20
  150. package/src/utils/obj.ts +138 -138
  151. package/src/utils/path.ts +10 -10
  152. package/src/utils/primitive.ts +6 -6
  153. package/src/utils/str.ts +48 -48
  154. package/src/utils/template-strings.ts +29 -29
  155. package/src/utils/transferable.ts +38 -38
  156. package/src/utils/wait.ts +10 -10
  157. package/src/utils/xml.ts +19 -19
  158. package/src/utils/zip.ts +25 -25
  159. package/docs/extensions.md +0 -387
  160. package/tests/errors/errors.spec.ts +0 -80
  161. package/tests/extensions/array-extension.spec.ts +0 -654
  162. package/tests/extensions/map-extension.spec.ts +0 -117
  163. package/tests/extensions/set-extension.spec.ts +0 -67
  164. package/tests/types/date-only.spec.ts +0 -533
  165. package/tests/types/date-time.spec.ts +0 -246
  166. package/tests/types/lazy-gc-map.spec.ts +0 -606
  167. package/tests/types/time.spec.ts +0 -428
  168. package/tests/types/uuid.spec.ts +0 -74
  169. package/tests/utils/bytes-utils.spec.ts +0 -197
  170. package/tests/utils/date-format.spec.ts +0 -350
  171. package/tests/utils/debounce-queue.spec.ts +0 -226
  172. package/tests/utils/json.spec.ts +0 -400
  173. package/tests/utils/number.spec.ts +0 -136
  174. package/tests/utils/object.spec.ts +0 -810
  175. package/tests/utils/path.spec.ts +0 -70
  176. package/tests/utils/primitive.spec.ts +0 -43
  177. package/tests/utils/sd-event-emitter.spec.ts +0 -189
  178. package/tests/utils/serial-queue.spec.ts +0 -305
  179. package/tests/utils/string.spec.ts +0 -265
  180. package/tests/utils/template-strings.spec.ts +0 -48
  181. package/tests/utils/transferable.spec.ts +0 -639
  182. package/tests/utils/wait.spec.ts +0 -123
  183. package/tests/utils/xml.spec.ts +0 -146
  184. package/tests/utils/zip.spec.ts +0 -221
@@ -1,106 +1,192 @@
1
- function normalizeMonth(year, month, day) {
2
- const normalizedYear = year + Math.floor((month - 1) / 12);
3
- const normalizedMonth = ((month - 1) % 12 + 12) % 12 + 1;
4
- const lastDay = new Date(normalizedYear, normalizedMonth, 0).getDate();
5
- const normalizedDay = Math.min(day, lastDay);
6
- return { year: normalizedYear, month: normalizedMonth, day: normalizedDay };
1
+ /**
2
+ * 설정 연/월/일 정규화
3
+ * - 월이 1-12 범위를 벗어나면 연도 조정
4
+ * - 현재 일이 대상 월의 일수보다 크면 해당 월의 마지막 일로 조정
5
+ *
6
+ * @param year 기준 연도
7
+ * @param month 설정할 월 (1-12 범위 밖의 값 허용)
8
+ * @param day 기준 일
9
+ * @returns 정규화된 연도, 월, 일
10
+ *
11
+ * @example
12
+ * normalizeMonth(2025, 13, 15) // { year: 2026, month: 1, day: 15 }
13
+ * normalizeMonth(2025, 2, 31) // { year: 2025, month: 2, day: 28 }
14
+ */
15
+ export function normalizeMonth(year, month, day) {
16
+ // 월 오버플로우/언더플로우 정규화
17
+ // 월이 1-12 범위를 벗어나면 연도 조정
18
+ const normalizedYear = year + Math.floor((month - 1) / 12);
19
+ // JavaScript % 연산자는 음수에 대해 음수를 반환하므로 (% 12 + 12) % 12 패턴으로 0-11 범위를 보장한 후 1-12로 변환
20
+ const normalizedMonth = ((((month - 1) % 12) + 12) % 12) + 1;
21
+ // 대상 월의 마지막 일 조회
22
+ const lastDay = new Date(normalizedYear, normalizedMonth, 0).getDate();
23
+ const normalizedDay = Math.min(day, lastDay);
24
+ return { year: normalizedYear, month: normalizedMonth, day: normalizedDay };
7
25
  }
8
- function convert12To24(rawHour, isPM) {
9
- if (rawHour === 12) {
10
- return isPM ? 12 : 0;
11
- }
12
- return isPM ? rawHour + 12 : rawHour;
26
+ /**
27
+ * 12시간 형식을 24시간 형식으로 변환
28
+ * - 12:00 AM = 0:00, 12:00 PM = 12:00
29
+ * - 1-11 AM = 1-11, 1-11 PM = 13-23
30
+ *
31
+ * @param rawHour 12시간 형식의 시 (1-12)
32
+ * @param isPM 오후 여부
33
+ * @returns 24시간 형식의 시 (0-23)
34
+ */
35
+ export function convert12To24(rawHour, isPM) {
36
+ if (rawHour === 12) {
37
+ return isPM ? 12 : 0;
38
+ }
39
+ return isPM ? rawHour + 12 : rawHour;
13
40
  }
41
+ //#region 정규식 캐싱 (모듈 로드 시 한 번만 생성)
42
+ /**
43
+ * 형식 패턴 정규식
44
+ *
45
+ * 순서가 중요함:
46
+ * dtFormat() 함수에서 긴 패턴(yyyy, MM, dd 등)이 먼저 처리되어야
47
+ * 짧은 패턴(y, M, d 등)이 부분적으로 매칭되는 것을 방지함.
48
+ * 예: "yyyy"가 먼저 처리되지 않으면 "yy"가 두 번 매칭될 수 있음
49
+ */
14
50
  const patterns = {
15
- yyyy: /yyyy/g,
16
- yy: /yy/g,
17
- MM: /MM/g,
18
- M: /M/g,
19
- ddd: /ddd/g,
20
- dd: /dd/g,
21
- d: /d/g,
22
- tt: /tt/g,
23
- hh: /hh/g,
24
- h: /h/g,
25
- HH: /HH/g,
26
- H: /H/g,
27
- mm: /mm/g,
28
- m: /m/g,
29
- ss: /ss/g,
30
- s: /s/g,
31
- fff: /fff/g,
32
- ff: /ff/g,
33
- f: /f/g,
34
- zzz: /zzz/g,
35
- zz: /zz/g,
36
- z: /z/g
51
+ yyyy: /yyyy/g,
52
+ yy: /yy/g,
53
+ MM: /MM/g,
54
+ M: /M/g,
55
+ ddd: /ddd/g,
56
+ dd: /dd/g,
57
+ d: /d/g,
58
+ tt: /tt/g,
59
+ hh: /hh/g,
60
+ h: /h/g,
61
+ HH: /HH/g,
62
+ H: /H/g,
63
+ mm: /mm/g,
64
+ m: /m/g,
65
+ ss: /ss/g,
66
+ s: /s/g,
67
+ fff: /fff/g,
68
+ ff: /ff/g,
69
+ f: /f/g,
70
+ zzz: /zzz/g,
71
+ zz: /zz/g,
72
+ z: /z/g,
37
73
  };
38
- const weekStrings = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
39
- function format(formatString, args) {
40
- const { year, month, day, hour, minute, second, millisecond, timezoneOffsetMinutes } = args;
41
- const absOffsetMinutes = timezoneOffsetMinutes !== void 0 ? Math.abs(timezoneOffsetMinutes) : void 0;
42
- const offsetHour = absOffsetMinutes !== void 0 ? Math.floor(absOffsetMinutes / 60) : void 0;
43
- const offsetMinute = absOffsetMinutes !== void 0 ? absOffsetMinutes % 60 : void 0;
44
- const offsetSign = timezoneOffsetMinutes !== void 0 ? timezoneOffsetMinutes >= 0 ? "+" : "-" : void 0;
45
- const week = year !== void 0 && month !== void 0 && day !== void 0 ? new Date(year, month - 1, day).getDay() : void 0;
46
- let result = formatString;
47
- if (year !== void 0) {
48
- const yearStr = year.toString();
49
- result = result.replace(patterns.yyyy, yearStr);
50
- result = result.replace(patterns.yy, yearStr.substring(2, 4));
51
- }
52
- if (month !== void 0) {
53
- const monthStr = month.toString();
54
- result = result.replace(patterns.MM, monthStr.padStart(2, "0"));
55
- result = result.replace(patterns.M, monthStr);
56
- }
57
- if (week !== void 0) {
58
- result = result.replace(patterns.ddd, weekStrings[week]);
59
- }
60
- if (day !== void 0) {
61
- const dayStr = day.toString();
62
- result = result.replace(patterns.dd, dayStr.padStart(2, "0"));
63
- result = result.replace(patterns.d, dayStr);
64
- }
65
- if (hour !== void 0) {
66
- result = result.replace(patterns.tt, hour < 12 ? "AM" : "PM");
67
- const hour12 = hour % 12 || 12;
68
- const hour12Str = hour12.toString();
69
- result = result.replace(patterns.hh, hour12Str.padStart(2, "0"));
70
- result = result.replace(patterns.h, hour12Str);
71
- const hourStr = hour.toString();
72
- result = result.replace(patterns.HH, hourStr.padStart(2, "0"));
73
- result = result.replace(patterns.H, hourStr);
74
- }
75
- if (minute !== void 0) {
76
- const minuteStr = minute.toString();
77
- result = result.replace(patterns.mm, minuteStr.padStart(2, "0"));
78
- result = result.replace(patterns.m, minuteStr);
79
- }
80
- if (second !== void 0) {
81
- const secondStr = second.toString();
82
- result = result.replace(patterns.ss, secondStr.padStart(2, "0"));
83
- result = result.replace(patterns.s, secondStr);
84
- }
85
- if (millisecond !== void 0) {
86
- const msStr = millisecond.toString().padStart(3, "0");
87
- result = result.replace(patterns.fff, msStr);
88
- result = result.replace(patterns.ff, msStr.substring(0, 2));
89
- result = result.replace(patterns.f, msStr.substring(0, 1));
90
- }
91
- if (offsetSign !== void 0 && offsetHour !== void 0 && offsetMinute !== void 0) {
92
- result = result.replace(
93
- patterns.zzz,
94
- `${offsetSign}${offsetHour.toString().padStart(2, "0")}:${offsetMinute.toString().padStart(2, "0")}`
95
- );
96
- result = result.replace(patterns.zz, `${offsetSign}${offsetHour.toString().padStart(2, "0")}`);
97
- result = result.replace(patterns.z, `${offsetSign}${offsetHour}`);
98
- }
99
- return result;
74
+ const weekStrings = ["", "", "", "", "", "", ""];
75
+ //#endregion
76
+ /**
77
+ * 형식 문자열에 따라 날짜/시간을 문자열로 변환
78
+ *
79
+ * @param formatString 형식 문자열
80
+ * @param args 날짜/시간 구성요소
81
+ *
82
+ * @remarks
83
+ * C#과 동일한 형식 문자열을 지원:
84
+ *
85
+ * | 형식 | 설명 | 예시 |
86
+ * |------|------|------|
87
+ * | yyyy | 4자리 연도 | 2024 |
88
+ * | yy | 2자리 연도 | 24 |
89
+ * | MM | 0 채움 월 | 01~12 |
90
+ * | M | 월 | 1~12 |
91
+ * | ddd | 요일 | 일, 월, 화, 수, 목, 금, 토 |
92
+ * | dd | 0 채움 일 | 01~31 |
93
+ * | d | 일 | 1~31 |
94
+ * | tt | 오전/오후 | AM, PM |
95
+ * | hh | 0 채움 12시간 | 01~12 |
96
+ * | h | 12시간 | 1~12 |
97
+ * | HH | 0 채움 24시간 | 00~23 |
98
+ * | H | 24시간 | 0~23 |
99
+ * | mm | 0 채움 분 | 00~59 |
100
+ * | m | 분 | 0~59 |
101
+ * | ss | 0 채움 초 | 00~59 |
102
+ * | s | | 0~59 |
103
+ * | fff | 밀리초 (3자리) | 000~999 |
104
+ * | ff | 밀리초 (2자리) | 00~99 |
105
+ * | f | 밀리초 (1자리) | 0~9 |
106
+ * | zzz | 타임존 오프셋 (±HH:mm) | +09:00 |
107
+ * | zz | 타임존 오프셋 (±HH) | +09 |
108
+ * | z | 타임존 오프셋 (±H) | +9 |
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * formatDate("yyyy-MM-dd", { year: 2024, month: 3, day: 15 });
113
+ * // "2024-03-15"
114
+ *
115
+ * formatDate("yyyy-M-d (ddd)", { year: 2024, month: 3, day: 15 });
116
+ * // "2024-3-15 (Fri)"
117
+ *
118
+ * formatDate("tt h:mm:ss", { hour: 14, minute: 30, second: 45 });
119
+ * // "PM 2:30:45"
120
+ * ```
121
+ */
122
+ export function format(formatString, args) {
123
+ const { year, month, day, hour, minute, second, millisecond, timezoneOffsetMinutes } = args;
124
+ const absOffsetMinutes = timezoneOffsetMinutes !== undefined ? Math.abs(timezoneOffsetMinutes) : undefined;
125
+ const offsetHour = absOffsetMinutes !== undefined ? Math.floor(absOffsetMinutes / 60) : undefined;
126
+ const offsetMinute = absOffsetMinutes !== undefined ? absOffsetMinutes % 60 : undefined;
127
+ const offsetSign = timezoneOffsetMinutes !== undefined ? (timezoneOffsetMinutes >= 0 ? "+" : "-") : undefined;
128
+ const week = year !== undefined && month !== undefined && day !== undefined
129
+ ? new Date(year, month - 1, day).getDay()
130
+ : undefined;
131
+ let result = formatString;
132
+ // 연도
133
+ if (year !== undefined) {
134
+ const yearStr = year.toString();
135
+ result = result.replace(patterns.yyyy, yearStr);
136
+ result = result.replace(patterns.yy, yearStr.substring(2, 4));
137
+ }
138
+ // 월
139
+ if (month !== undefined) {
140
+ const monthStr = month.toString();
141
+ result = result.replace(patterns.MM, monthStr.padStart(2, "0"));
142
+ result = result.replace(patterns.M, monthStr);
143
+ }
144
+ // 요일
145
+ if (week !== undefined) {
146
+ result = result.replace(patterns.ddd, weekStrings[week]);
147
+ }
148
+ // 일
149
+ if (day !== undefined) {
150
+ const dayStr = day.toString();
151
+ result = result.replace(patterns.dd, dayStr.padStart(2, "0"));
152
+ result = result.replace(patterns.d, dayStr);
153
+ }
154
+ // 시
155
+ if (hour !== undefined) {
156
+ result = result.replace(patterns.tt, hour < 12 ? "AM" : "PM");
157
+ const hour12 = hour % 12 || 12;
158
+ const hour12Str = hour12.toString();
159
+ result = result.replace(patterns.hh, hour12Str.padStart(2, "0"));
160
+ result = result.replace(patterns.h, hour12Str);
161
+ const hourStr = hour.toString();
162
+ result = result.replace(patterns.HH, hourStr.padStart(2, "0"));
163
+ result = result.replace(patterns.H, hourStr);
164
+ }
165
+ // 분
166
+ if (minute !== undefined) {
167
+ const minuteStr = minute.toString();
168
+ result = result.replace(patterns.mm, minuteStr.padStart(2, "0"));
169
+ result = result.replace(patterns.m, minuteStr);
170
+ }
171
+ // 초
172
+ if (second !== undefined) {
173
+ const secondStr = second.toString();
174
+ result = result.replace(patterns.ss, secondStr.padStart(2, "0"));
175
+ result = result.replace(patterns.s, secondStr);
176
+ }
177
+ // 밀리초
178
+ if (millisecond !== undefined) {
179
+ const msStr = millisecond.toString().padStart(3, "0");
180
+ result = result.replace(patterns.fff, msStr);
181
+ result = result.replace(patterns.ff, msStr.substring(0, 2));
182
+ result = result.replace(patterns.f, msStr.substring(0, 1));
183
+ }
184
+ // 타임존
185
+ if (offsetSign !== undefined && offsetHour !== undefined && offsetMinute !== undefined) {
186
+ result = result.replace(patterns.zzz, `${offsetSign}${offsetHour.toString().padStart(2, "0")}:${offsetMinute.toString().padStart(2, "0")}`);
187
+ result = result.replace(patterns.zz, `${offsetSign}${offsetHour.toString().padStart(2, "0")}`);
188
+ result = result.replace(patterns.z, `${offsetSign}${offsetHour}`);
189
+ }
190
+ return result;
100
191
  }
101
- export {
102
- convert12To24,
103
- format,
104
- normalizeMonth
105
- };
106
- //# sourceMappingURL=date-format.js.map
192
+ //# sourceMappingURL=date-format.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/date-format.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
1
+ {"version":3,"file":"date-format.js","sourceRoot":"","sources":["../../src/utils/date-format.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Utility to extract message from unknown type error.
2
+ * unknown 타입 에러에서 메시지를 추출하는 유틸리티.
3
3
  *
4
- * Returns the message property if it's an Error instance, otherwise returns String conversion.
4
+ * Error 인스턴스이면 message 속성을 반환하고, 그렇지 않으면 String 변환 결과를 반환.
5
5
  *
6
- * @param err - Unknown error from catch block
7
- * @returns Error message string
6
+ * @param err - catch 블록의 unknown 에러
7
+ * @returns 에러 메시지 문자열
8
8
  */
9
9
  export declare function message(err: unknown): string;
10
10
  //# sourceMappingURL=error.d.ts.map
@@ -1,7 +1,12 @@
1
- function message(err) {
2
- return err instanceof Error ? err.message : String(err);
1
+ /**
2
+ * unknown 타입 에러에서 메시지를 추출하는 유틸리티.
3
+ *
4
+ * Error 인스턴스이면 message 속성을 반환하고, 그렇지 않으면 String 변환 결과를 반환.
5
+ *
6
+ * @param err - catch 블록의 unknown 에러
7
+ * @returns 에러 메시지 문자열
8
+ */
9
+ export function message(err) {
10
+ return err instanceof Error ? err.message : String(err);
3
11
  }
4
- export {
5
- message
6
- };
7
- //# sourceMappingURL=error.js.map
12
+ //# sourceMappingURL=error.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/error.ts"],
4
- "mappings": "AAQO,SAAS,QAAQ,KAAsB;AAC5C,SAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AACxD;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Serialize object to JSON string
3
- * Supports custom types like DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array, etc.
2
+ * 객체를 JSON 문자열로 직렬화
3
+ * DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array 등 커스텀 타입 지원.
4
4
  *
5
- * @param obj Object to serialize
6
- * @param options Serialization options
7
- * @param options.space JSON indentation (number: number of spaces, string: indentation string)
8
- * @param options.replacer Custom replacer function. Called before default type conversion
9
- * @param options.redactBytes If true, replace Uint8Array contents with "__hidden__" (for logging). Results serialized with this option cannot restore original Uint8Array via jsonParse()
5
+ * @param obj 직렬화할 객체
6
+ * @param options 직렬화 옵션
7
+ * @param options.space JSON 들여쓰기 (숫자: 공백 수, 문자열: 들여쓰기 문자열)
8
+ * @param options.replacer 커스텀 replacer 함수. 기본 타입 변환 전에 호출됨
9
+ * @param options.redactBytes true이면 Uint8Array 내용을 "__hidden__"으로 대체 (로깅용). 옵션으로 직렬화된 결과는 jsonParse()로 원래 Uint8Array를 복원할 없음
10
10
  *
11
11
  * @remarks
12
- * - Objects with circular references throw TypeError
13
- * - If object has toJSON method, it is called and the result is used (except for custom types like Date, DateTime)
14
- * - Safe in Worker environments as global prototypes are not modified
12
+ * - 순환 참조가 있는 객체는 TypeError를 발생시킴
13
+ * - 객체에 toJSON 메서드가 있으면 호출하여 결과를 사용 (Date, DateTime 같은 커스텀 타입 제외)
14
+ * - 전역 프로토타입을 수정하지 않으므로 Worker 환경에서 안전
15
15
  */
16
16
  export declare function stringify(obj: unknown, options?: {
17
17
  space?: string | number;
@@ -19,18 +19,18 @@ export declare function stringify(obj: unknown, options?: {
19
19
  redactBytes?: boolean;
20
20
  }): string;
21
21
  /**
22
- * Deserialize JSON string to object
23
- * Restore custom types like DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array, etc.
22
+ * JSON 문자열을 객체로 역직렬화
23
+ * DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array 등 커스텀 타입 복원.
24
24
  *
25
25
  * @remarks
26
- * Objects with `__type__` and `data` keys are used for type restoration.
27
- * Be careful if user data contains objects with `{ __type__: "Date" | "DateTime" | "DateOnly" | "Time" | "Uuid" | "Set" | "Map" | "Error" | "Uint8Array", data: ... }`
28
- * format as they may be unintentionally converted to types.
29
- * All JSON null values are converted to undefined.
30
- * This is intentional for the simplysm framework's null-free convention.
26
+ * `__type__`과 `data` key를 가진 객체가 타입 복원에 사용됨.
27
+ * 사용자 데이터에 `{ __type__: "Date" | "DateTime" | "DateOnly" | "Time" | "Uuid" | "Set" | "Map" | "Error" | "Uint8Array", data: ... }`
28
+ * 형식의 객체가 포함되어 있으면 의도치 않게 타입으로 변환될 수 있으므로 주의.
29
+ * 모든 JSON null 값은 undefined로 변환됨.
30
+ * 이는 simplysm 프레임워크의 null-free 규칙을 위한 의도적인 동작.
31
31
  *
32
- * @security In development mode (`__DEV__`), the error message includes the entire JSON string.
33
- * In production mode, only JSON length is included.
32
+ * @security 개발 모드(`__DEV__`)에서는 에러 메시지에 전체 JSON 문자열이 포함됨.
33
+ * 운영 모드에서는 JSON 길이만 포함됨.
34
34
  */
35
35
  export declare function parse<TResult = unknown>(json: string): TResult;
36
36
  //# sourceMappingURL=json.d.ts.map