@simplysm/core-common 13.0.69 → 13.0.71

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 (151) hide show
  1. package/README.md +66 -267
  2. package/dist/common.types.d.ts +14 -14
  3. package/dist/errors/argument-error.d.ts +10 -10
  4. package/dist/errors/argument-error.d.ts.map +1 -1
  5. package/dist/errors/argument-error.js +2 -2
  6. package/dist/errors/argument-error.js.map +1 -1
  7. package/dist/errors/not-implemented-error.d.ts +8 -8
  8. package/dist/errors/not-implemented-error.js +2 -2
  9. package/dist/errors/not-implemented-error.js.map +1 -1
  10. package/dist/errors/sd-error.d.ts +10 -10
  11. package/dist/errors/sd-error.d.ts.map +1 -1
  12. package/dist/errors/timeout-error.d.ts +10 -10
  13. package/dist/errors/timeout-error.js +3 -3
  14. package/dist/errors/timeout-error.js.map +1 -1
  15. package/dist/extensions/arr-ext.d.ts +2 -2
  16. package/dist/extensions/arr-ext.helpers.d.ts +8 -8
  17. package/dist/extensions/arr-ext.helpers.js +1 -1
  18. package/dist/extensions/arr-ext.helpers.js.map +1 -1
  19. package/dist/extensions/arr-ext.js +13 -13
  20. package/dist/extensions/arr-ext.js.map +1 -1
  21. package/dist/extensions/arr-ext.types.d.ts +57 -57
  22. package/dist/extensions/arr-ext.types.d.ts.map +1 -1
  23. package/dist/extensions/map-ext.d.ts +16 -16
  24. package/dist/extensions/set-ext.d.ts +11 -11
  25. package/dist/features/debounce-queue.d.ts +17 -15
  26. package/dist/features/debounce-queue.d.ts.map +1 -1
  27. package/dist/features/debounce-queue.js +6 -6
  28. package/dist/features/debounce-queue.js.map +1 -1
  29. package/dist/features/event-emitter.d.ts +20 -20
  30. package/dist/features/event-emitter.js +17 -17
  31. package/dist/features/serial-queue.d.ts +11 -11
  32. package/dist/features/serial-queue.js +5 -5
  33. package/dist/features/serial-queue.js.map +1 -1
  34. package/dist/globals.d.ts +4 -4
  35. package/dist/types/date-only.d.ts +64 -64
  36. package/dist/types/date-only.d.ts.map +1 -1
  37. package/dist/types/date-only.js +63 -63
  38. package/dist/types/date-time.d.ts +37 -37
  39. package/dist/types/date-time.d.ts.map +1 -1
  40. package/dist/types/date-time.js +54 -37
  41. package/dist/types/date-time.js.map +1 -1
  42. package/dist/types/lazy-gc-map.d.ts +26 -26
  43. package/dist/types/lazy-gc-map.d.ts.map +1 -1
  44. package/dist/types/lazy-gc-map.js +26 -26
  45. package/dist/types/lazy-gc-map.js.map +1 -1
  46. package/dist/types/time.d.ts +25 -25
  47. package/dist/types/time.d.ts.map +1 -1
  48. package/dist/types/time.js +25 -25
  49. package/dist/types/time.js.map +1 -1
  50. package/dist/types/uuid.d.ts +11 -11
  51. package/dist/types/uuid.d.ts.map +1 -1
  52. package/dist/types/uuid.js +12 -12
  53. package/dist/types/uuid.js.map +1 -1
  54. package/dist/utils/bytes.d.ts +17 -17
  55. package/dist/utils/bytes.js +4 -4
  56. package/dist/utils/bytes.js.map +1 -1
  57. package/dist/utils/date-format.d.ts +45 -45
  58. package/dist/utils/date-format.js +1 -1
  59. package/dist/utils/date-format.js.map +1 -1
  60. package/dist/utils/error.d.ts +4 -4
  61. package/dist/utils/json.d.ts +17 -17
  62. package/dist/utils/json.js +3 -3
  63. package/dist/utils/json.js.map +1 -1
  64. package/dist/utils/num.d.ts +23 -23
  65. package/dist/utils/obj.d.ts +111 -111
  66. package/dist/utils/obj.d.ts.map +1 -1
  67. package/dist/utils/obj.js +3 -3
  68. package/dist/utils/obj.js.map +1 -1
  69. package/dist/utils/path.d.ts +10 -10
  70. package/dist/utils/primitive.d.ts +5 -5
  71. package/dist/utils/primitive.js +1 -1
  72. package/dist/utils/primitive.js.map +1 -1
  73. package/dist/utils/str.d.ts +46 -46
  74. package/dist/utils/str.d.ts.map +1 -1
  75. package/dist/utils/str.js +5 -5
  76. package/dist/utils/str.js.map +1 -1
  77. package/dist/utils/template-strings.d.ts +26 -26
  78. package/dist/utils/transferable.d.ts +18 -18
  79. package/dist/utils/transferable.js +1 -1
  80. package/dist/utils/transferable.js.map +1 -1
  81. package/dist/utils/wait.d.ts +9 -9
  82. package/dist/utils/xml.d.ts +13 -13
  83. package/dist/utils/xml.d.ts.map +1 -1
  84. package/dist/utils/xml.js +1 -0
  85. package/dist/utils/xml.js.map +1 -1
  86. package/dist/zip/sd-zip.d.ts +22 -22
  87. package/dist/zip/sd-zip.js +16 -16
  88. package/package.json +4 -4
  89. package/src/common.types.ts +17 -17
  90. package/src/errors/argument-error.ts +15 -15
  91. package/src/errors/not-implemented-error.ts +9 -9
  92. package/src/errors/sd-error.ts +12 -12
  93. package/src/errors/timeout-error.ts +12 -12
  94. package/src/extensions/arr-ext.helpers.ts +10 -10
  95. package/src/extensions/arr-ext.ts +57 -57
  96. package/src/extensions/arr-ext.types.ts +59 -59
  97. package/src/extensions/map-ext.ts +16 -16
  98. package/src/extensions/set-ext.ts +11 -11
  99. package/src/features/debounce-queue.ts +21 -19
  100. package/src/features/event-emitter.ts +25 -25
  101. package/src/features/serial-queue.ts +13 -13
  102. package/src/globals.ts +4 -4
  103. package/src/index.ts +1 -1
  104. package/src/types/date-only.ts +83 -83
  105. package/src/types/date-time.ts +64 -44
  106. package/src/types/lazy-gc-map.ts +45 -45
  107. package/src/types/time.ts +34 -34
  108. package/src/types/uuid.ts +17 -17
  109. package/src/utils/bytes.ts +35 -35
  110. package/src/utils/date-format.ts +65 -65
  111. package/src/utils/error.ts +4 -4
  112. package/src/utils/json.ts +39 -39
  113. package/src/utils/num.ts +23 -23
  114. package/src/utils/obj.ts +138 -138
  115. package/src/utils/path.ts +10 -10
  116. package/src/utils/primitive.ts +6 -6
  117. package/src/utils/str.ts +260 -261
  118. package/src/utils/template-strings.ts +29 -29
  119. package/src/utils/transferable.ts +284 -284
  120. package/src/utils/wait.ts +10 -10
  121. package/src/utils/xml.ts +20 -19
  122. package/src/zip/sd-zip.ts +25 -25
  123. package/tests/errors/errors.spec.ts +80 -0
  124. package/tests/extensions/array-extension.spec.ts +796 -0
  125. package/tests/extensions/map-extension.spec.ts +147 -0
  126. package/tests/extensions/set-extension.spec.ts +74 -0
  127. package/tests/types/date-only.spec.ts +638 -0
  128. package/tests/types/date-time.spec.ts +391 -0
  129. package/tests/types/lazy-gc-map.spec.ts +692 -0
  130. package/tests/types/time.spec.ts +559 -0
  131. package/tests/types/uuid.spec.ts +74 -0
  132. package/tests/utils/bytes-utils.spec.ts +230 -0
  133. package/tests/utils/date-format.spec.ts +373 -0
  134. package/tests/utils/debounce-queue.spec.ts +272 -0
  135. package/tests/utils/json.spec.ts +486 -0
  136. package/tests/utils/number.spec.ts +157 -0
  137. package/tests/utils/object.spec.ts +829 -0
  138. package/tests/utils/path.spec.ts +78 -0
  139. package/tests/utils/primitive.spec.ts +43 -0
  140. package/tests/utils/sd-event-emitter.spec.ts +216 -0
  141. package/tests/utils/serial-queue.spec.ts +365 -0
  142. package/tests/utils/string.spec.ts +281 -0
  143. package/tests/utils/template-strings.spec.ts +57 -0
  144. package/tests/utils/transferable.spec.ts +703 -0
  145. package/tests/utils/wait.spec.ts +145 -0
  146. package/tests/utils/xml.spec.ts +146 -0
  147. package/tests/zip/sd-zip.spec.ts +238 -0
  148. package/docs/extensions.md +0 -503
  149. package/docs/features.md +0 -109
  150. package/docs/types.md +0 -486
  151. package/docs/utils.md +0 -780
@@ -20,23 +20,23 @@ class Time {
20
20
  }
21
21
  }
22
22
  /**
23
- * 문자열을 파싱하여 Time 인스턴스를 생성
23
+ * Parse a string to create Time instance
24
24
  *
25
- * @param str 시간 문자열
26
- * @returns 파싱된 Time 인스턴스
27
- * @throws ArgumentError 지원하지 않는 형식인 경우
25
+ * @param str Time string
26
+ * @returns Parsed Time instance
27
+ * @throws ArgumentError If unsupported format
28
28
  *
29
29
  * @example
30
30
  * Time.parse("10:30:00") // HH:mm:ss
31
31
  * Time.parse("10:30:00.123") // HH:mm:ss.fff
32
- * Time.parse("오전 10:30:00") // 오전/오후 HH:mm:ss
33
- * Time.parse("2025-01-15T10:30:00") // ISO 8601 (시간 부분만 추출)
32
+ * Time.parse("AM 10:30:00") // AM/PM HH:mm:ss
33
+ * Time.parse("2025-01-15T10:30:00") // ISO 8601 (extract time part only)
34
34
  */
35
35
  static parse(str) {
36
- const match1 = /(오전|오후) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})(\.([0-9]{1,3}))?$/.exec(str);
36
+ const match1 = /(AM|PM) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})(\.([0-9]{1,3}))?$/i.exec(str);
37
37
  if (match1 != null) {
38
38
  const rawHour = Number(match1[2]);
39
- const isPM = match1[1] === "\uC624\uD6C4";
39
+ const isPM = match1[1].toUpperCase() === "PM";
40
40
  const hour = convert12To24(rawHour, isPM);
41
41
  return new Time(
42
42
  hour,
@@ -67,11 +67,11 @@ class Time {
67
67
  }
68
68
  }
69
69
  throw new ArgumentError(
70
- `\uC2DC\uAC04 \uD615\uC2DD\uC744 \uD30C\uC2F1\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC9C0\uC6D0 \uD615\uC2DD: 'HH:mm:ss', 'HH:mm:ss.fff', '\uC624\uC804/\uC624\uD6C4 HH:mm:ss', ISO 8601`,
70
+ `Failed to parse time format. Supported formats: 'HH:mm:ss', 'HH:mm:ss.fff', 'AM/PM HH:mm:ss', ISO 8601`,
71
71
  { input: str }
72
72
  );
73
73
  }
74
- //#region Getters (읽기 전용)
74
+ //#region Getters (read-only)
75
75
  get hour() {
76
76
  return Math.floor(this._tick / (60 * 60 * 1e3));
77
77
  }
@@ -87,60 +87,60 @@ class Time {
87
87
  get tick() {
88
88
  return this._tick;
89
89
  }
90
- /** 시간 세팅이 제대로 되었는지 여부 */
90
+ /** Whether time is set correctly */
91
91
  get isValid() {
92
92
  return !Number.isNaN(this._tick);
93
93
  }
94
94
  //#endregion
95
- //#region 불변 변환 메서드 ( 인스턴스 반환)
96
- /** 지정된 시로 인스턴스 반환 */
95
+ //#region Immutable transformation methods (returns new instance)
96
+ /** Return new instance with specified hour */
97
97
  setHour(hour) {
98
98
  return new Time(hour, this.minute, this.second, this.millisecond);
99
99
  }
100
- /** 지정된 분으로 인스턴스 반환 */
100
+ /** Return new instance with specified minute */
101
101
  setMinute(minute) {
102
102
  return new Time(this.hour, minute, this.second, this.millisecond);
103
103
  }
104
- /** 지정된 초로 인스턴스 반환 */
104
+ /** Return new instance with specified second */
105
105
  setSecond(second) {
106
106
  return new Time(this.hour, this.minute, second, this.millisecond);
107
107
  }
108
- /** 지정된 밀리초로 인스턴스 반환 */
108
+ /** Return new instance with specified millisecond */
109
109
  setMillisecond(millisecond) {
110
110
  return new Time(this.hour, this.minute, this.second, millisecond);
111
111
  }
112
112
  //#endregion
113
- //#region 산술 메서드 ( 인스턴스 반환)
114
- /** 지정된 시간을 더한 인스턴스 반환 (24시간 순환) */
113
+ //#region Arithmetic methods (returns new instance)
114
+ /** Return new instance with specified hours added (24-hour wraparound) */
115
115
  addHours(hours) {
116
116
  let newTick = (this._tick + hours * 60 * 60 * 1e3) % Time.MS_PER_DAY;
117
117
  if (newTick < 0) newTick += Time.MS_PER_DAY;
118
118
  return new Time(newTick);
119
119
  }
120
- /** 지정된 분을 더한 인스턴스 반환 (24시간 순환) */
120
+ /** Return new instance with specified minutes added (24-hour wraparound) */
121
121
  addMinutes(minutes) {
122
122
  let newTick = (this._tick + minutes * 60 * 1e3) % Time.MS_PER_DAY;
123
123
  if (newTick < 0) newTick += Time.MS_PER_DAY;
124
124
  return new Time(newTick);
125
125
  }
126
- /** 지정된 초를 더한 인스턴스 반환 (24시간 순환) */
126
+ /** Return new instance with specified seconds added (24-hour wraparound) */
127
127
  addSeconds(seconds) {
128
128
  let newTick = (this._tick + seconds * 1e3) % Time.MS_PER_DAY;
129
129
  if (newTick < 0) newTick += Time.MS_PER_DAY;
130
130
  return new Time(newTick);
131
131
  }
132
- /** 지정된 밀리초를 더한 인스턴스 반환 (24시간 순환) */
132
+ /** Return new instance with specified milliseconds added (24-hour wraparound) */
133
133
  addMilliseconds(milliseconds) {
134
134
  let newTick = (this._tick + milliseconds) % Time.MS_PER_DAY;
135
135
  if (newTick < 0) newTick += Time.MS_PER_DAY;
136
136
  return new Time(newTick);
137
137
  }
138
138
  //#endregion
139
- //#region 포맷팅
139
+ //#region Formatting
140
140
  /**
141
- * 지정된 포맷으로 문자열 변환
142
- * @param format 포맷 문자열
143
- * @see dtFormat 지원 포맷 문자열 참조
141
+ * Convert to string with specified format
142
+ * @param format Format string
143
+ * @see dtFormat for supported format strings
144
144
  */
145
145
  toFormatString(formatStr) {
146
146
  return formatDate(formatStr, {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types/time.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,8 +1,8 @@
1
1
  import type { Bytes } from "../common.types";
2
2
  /**
3
- * UUID v4 클래스
3
+ * UUID v4 class
4
4
  *
5
- * crypto.getRandomValues 기반으로 암호학적으로 안전한 UUID를 생성한다. (Chrome 79+, Node.js 공용)
5
+ * Generates cryptographically secure UUIDs based on crypto.getRandomValues. (Chrome 79+, Node.js compatible)
6
6
  *
7
7
  * @example
8
8
  * const id = Uuid.new();
@@ -11,25 +11,25 @@ import type { Bytes } from "../common.types";
11
11
  export declare class Uuid {
12
12
  private static readonly _hexTable;
13
13
  private static readonly _uuidRegex;
14
- /** 16바이트 배열을 UUID 문자열로 변환 */
14
+ /** Convert 16-byte array to UUID string */
15
15
  private static _bytesToUuidStr;
16
- /** UUID v4 인스턴스 생성 */
16
+ /** Create new UUID v4 instance */
17
17
  static new(): Uuid;
18
18
  /**
19
- * 16바이트 Uint8Array에서 UUID 생성
20
- * @param bytes 16바이트 배열
21
- * @throws {ArgumentError} 바이트 크기가 16이 아닌 경우
19
+ * Create UUID from 16-byte Uint8Array
20
+ * @param bytes 16-byte array
21
+ * @throws {ArgumentError} If byte size is not 16
22
22
  */
23
23
  static fromBytes(bytes: Bytes): Uuid;
24
24
  private readonly _uuid;
25
25
  /**
26
- * @param uuid UUID 문자열 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식)
27
- * @throws {ArgumentError} 형식이 올바르지 않은 경우
26
+ * @param uuid UUID string (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
27
+ * @throws {ArgumentError} If format is invalid
28
28
  */
29
29
  constructor(uuid: string);
30
- /** UUID 문자열로 변환 */
30
+ /** Convert UUID to string */
31
31
  toString(): string;
32
- /** UUID 16바이트 Uint8Array 변환 */
32
+ /** Convert UUID to 16-byte Uint8Array */
33
33
  toBytes(): Bytes;
34
34
  }
35
35
  //# sourceMappingURL=uuid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/types/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;;;;GAQG;AACH,qBAAa,IAAI;IAEf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAE/B;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CACkC;IAEpE,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAC,eAAe;IA0B9B,wBAAwB;IACxB,MAAM,CAAC,GAAG,IAAI,IAAI;IAWlB;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B;;;OAGG;gBACS,IAAI,EAAE,MAAM;IAOxB,oBAAoB;IACpB,QAAQ,IAAI,MAAM;IAIlB,iCAAiC;IACjC,OAAO,IAAI,KAAK;CAuBjB"}
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/types/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;;;;GAQG;AACH,qBAAa,IAAI;IAEf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAE/B;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CACkC;IAEpE,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,eAAe;IA0B9B,kCAAkC;IAClC,MAAM,CAAC,GAAG,IAAI,IAAI;IAWlB;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B;;;OAGG;gBACS,IAAI,EAAE,MAAM;IAOxB,6BAA6B;IAC7B,QAAQ,IAAI,MAAM;IAIlB,yCAAyC;IACzC,OAAO,IAAI,KAAK;CAuBjB"}
@@ -1,17 +1,17 @@
1
1
  import { ArgumentError } from "../errors/argument-error.js";
2
2
  class Uuid {
3
- // 0x00 ~ 0xFF에 대한 hex 문자열 미리 계산 (256)
3
+ // Pre-calculate hex strings for 0x00 ~ 0xFF (256 entries)
4
4
  static _hexTable = Array.from(
5
5
  { length: 256 },
6
6
  (_, i) => i.toString(16).padStart(2, "0")
7
7
  );
8
8
  static _uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
9
- /** 16바이트 배열을 UUID 문자열로 변환 */
9
+ /** Convert 16-byte array to UUID string */
10
10
  static _bytesToUuidStr(bytes) {
11
11
  const h = Uuid._hexTable;
12
12
  return h[bytes[0]] + h[bytes[1]] + h[bytes[2]] + h[bytes[3]] + "-" + h[bytes[4]] + h[bytes[5]] + "-" + h[bytes[6]] + h[bytes[7]] + "-" + h[bytes[8]] + h[bytes[9]] + "-" + h[bytes[10]] + h[bytes[11]] + h[bytes[12]] + h[bytes[13]] + h[bytes[14]] + h[bytes[15]];
13
13
  }
14
- /** UUID v4 인스턴스 생성 */
14
+ /** Create new UUID v4 instance */
15
15
  static new() {
16
16
  const bytes = new Uint8Array(16);
17
17
  crypto.getRandomValues(bytes);
@@ -20,32 +20,32 @@ class Uuid {
20
20
  return new Uuid(Uuid._bytesToUuidStr(bytes));
21
21
  }
22
22
  /**
23
- * 16바이트 Uint8Array에서 UUID 생성
24
- * @param bytes 16바이트 배열
25
- * @throws {ArgumentError} 바이트 크기가 16이 아닌 경우
23
+ * Create UUID from 16-byte Uint8Array
24
+ * @param bytes 16-byte array
25
+ * @throws {ArgumentError} If byte size is not 16
26
26
  */
27
27
  static fromBytes(bytes) {
28
28
  if (bytes.length !== 16) {
29
- throw new ArgumentError("UUID \uBC14\uC774\uD2B8 \uD06C\uAE30\uB294 16\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.", { length: bytes.length });
29
+ throw new ArgumentError("UUID byte size must be 16.", { length: bytes.length });
30
30
  }
31
31
  return new Uuid(Uuid._bytesToUuidStr(bytes));
32
32
  }
33
33
  _uuid;
34
34
  /**
35
- * @param uuid UUID 문자열 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식)
36
- * @throws {ArgumentError} 형식이 올바르지 않은 경우
35
+ * @param uuid UUID string (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
36
+ * @throws {ArgumentError} If format is invalid
37
37
  */
38
38
  constructor(uuid) {
39
39
  if (!Uuid._uuidRegex.test(uuid)) {
40
- throw new ArgumentError("UUID \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.", { uuid });
40
+ throw new ArgumentError("Invalid UUID format.", { uuid });
41
41
  }
42
42
  this._uuid = uuid;
43
43
  }
44
- /** UUID 문자열로 변환 */
44
+ /** Convert UUID to string */
45
45
  toString() {
46
46
  return this._uuid;
47
47
  }
48
- /** UUID 16바이트 Uint8Array 변환 */
48
+ /** Convert UUID to 16-byte Uint8Array */
49
49
  toBytes() {
50
50
  const u = this._uuid;
51
51
  return new Uint8Array([
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types/uuid.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,8 +1,8 @@
1
1
  import type { Bytes } from "../common.types";
2
2
  /**
3
- * 여러 Uint8Array 연결
4
- * @param arrays 연결할 Uint8Array 배열
5
- * @returns 연결된 Uint8Array
3
+ * Concatenate multiple Uint8Arrays
4
+ * @param arrays Uint8Array array to concatenate
5
+ * @returns New concatenated Uint8Array
6
6
  * @example
7
7
  * const a = new Uint8Array([1, 2]);
8
8
  * const b = new Uint8Array([3, 4]);
@@ -11,38 +11,38 @@ import type { Bytes } from "../common.types";
11
11
  */
12
12
  export declare function bytesConcat(arrays: Bytes[]): Bytes;
13
13
  /**
14
- * hex 문자열로 변환
15
- * @param bytes 변환할 Uint8Array
16
- * @returns 소문자 hex 문자열
14
+ * Convert to hex string
15
+ * @param bytes Uint8Array to convert
16
+ * @returns Lowercase hex string
17
17
  * @example
18
18
  * bytesToHex(new Uint8Array([255, 0, 127]));
19
19
  * // "ff007f"
20
20
  */
21
21
  export declare function bytesToHex(bytes: Bytes): string;
22
22
  /**
23
- * hex 문자열에서 Uint8Array로 변환
24
- * @param hex 변환할 hex 문자열 (소문자/대문자 모두 허용)
25
- * @returns 변환된 Uint8Array
26
- * @throws {ArgumentError} 홀수 길이 또는 유효하지 않은 hex 문자가 포함된 경우
23
+ * Convert from hex string to Uint8Array
24
+ * @param hex Hex string to convert (lowercase and uppercase allowed)
25
+ * @returns Converted Uint8Array
26
+ * @throws {ArgumentError} If odd length or invalid hex characters are present
27
27
  * @example
28
28
  * bytesFromHex("ff007f");
29
29
  * // Uint8Array([255, 0, 127])
30
30
  */
31
31
  export declare function bytesFromHex(hex: string): Bytes;
32
32
  /**
33
- * Bytes base64 문자열로 변환
34
- * @param bytes 변환할 Uint8Array
35
- * @returns base64 인코딩된 문자열
33
+ * Convert Bytes to base64 string
34
+ * @param bytes Uint8Array to convert
35
+ * @returns Base64 encoded string
36
36
  * @example
37
37
  * bytesToBase64(new Uint8Array([72, 101, 108, 108, 111]));
38
38
  * // "SGVsbG8="
39
39
  */
40
40
  export declare function bytesToBase64(bytes: Bytes): string;
41
41
  /**
42
- * base64 문자열을 Bytes로 변환
43
- * @param base64 변환할 base64 문자열
44
- * @returns 디코딩된 Uint8Array
45
- * @throws {ArgumentError} 유효하지 않은 base64 문자가 포함된 경우
42
+ * Convert base64 string to Bytes
43
+ * @param base64 Base64 string to convert
44
+ * @returns Decoded Uint8Array
45
+ * @throws {ArgumentError} If invalid base64 character is present
46
46
  * @example
47
47
  * bytesFromBase64("SGVsbG8=");
48
48
  * // Uint8Array([72, 101, 108, 108, 111])
@@ -25,10 +25,10 @@ function bytesToHex(bytes) {
25
25
  }
26
26
  function bytesFromHex(hex) {
27
27
  if (hex.length % 2 !== 0) {
28
- throw new ArgumentError("hex \uBB38\uC790\uC5F4\uC740 \uC9DD\uC218 \uAE38\uC774\uC5EC\uC57C \uD569\uB2C8\uB2E4", { hex });
28
+ throw new ArgumentError("Hex string must have even length", { hex });
29
29
  }
30
30
  if (hex.length > 0 && !/^[0-9a-fA-F]+$/.test(hex)) {
31
- throw new ArgumentError("\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 hex \uBB38\uC790\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4", { hex });
31
+ throw new ArgumentError("Invalid hex character included", { hex });
32
32
  }
33
33
  const bytes = new Uint8Array(hex.length / 2);
34
34
  for (let i = 0; i < bytes.length; i++) {
@@ -59,12 +59,12 @@ function bytesFromBase64(base64) {
59
59
  return new Uint8Array(0);
60
60
  }
61
61
  if (!/^[A-Za-z0-9+/]+$/.test(cleanBase64)) {
62
- throw new ArgumentError("\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 base64 \uBB38\uC790\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4", {
62
+ throw new ArgumentError("Invalid base64 character included", {
63
63
  base64: base64.substring(0, 20)
64
64
  });
65
65
  }
66
66
  if (cleanBase64.length % 4 === 1) {
67
- throw new ArgumentError("\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 base64 \uAE38\uC774\uC785\uB2C8\uB2E4", { length: cleanBase64.length });
67
+ throw new ArgumentError("Invalid base64 length", { length: cleanBase64.length });
68
68
  }
69
69
  const len = cleanBase64.length;
70
70
  const byteLen = Math.floor(len * 3 / 4);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/bytes.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 설정 연도/월/일 정규화 결과
2
+ * Result of year/month/day normalization when setting month
3
3
  */
4
4
  export interface DtNormalizedMonth {
5
5
  year: number;
@@ -7,14 +7,14 @@ export interface DtNormalizedMonth {
7
7
  day: number;
8
8
  }
9
9
  /**
10
- * 설정 연도/월/일을 정규화
11
- * - 월이 1-12 범위를 벗어나면 연도를 조정
12
- * - 대상 월의 일수보다 현재 일자가 크면 해당 월의 마지막 날로 조정
10
+ * Normalize year/month/day when setting month
11
+ * - Adjust year if month is outside 1-12 range
12
+ * - Adjust to last day of target month if current day is greater than the number of days in the target month
13
13
  *
14
- * @param year 기준 연도
15
- * @param month 설정할 (1-12 범위 외의 값도 허용)
16
- * @param day 기준 일자
17
- * @returns 정규화된 연도, 월,
14
+ * @param year Base year
15
+ * @param month Month to set (values outside 1-12 range allowed)
16
+ * @param day Base day
17
+ * @returns Normalized year, month, day
18
18
  *
19
19
  * @example
20
20
  * normalizeMonth(2025, 13, 15) // { year: 2026, month: 1, day: 15 }
@@ -22,59 +22,59 @@ export interface DtNormalizedMonth {
22
22
  */
23
23
  export declare function normalizeMonth(year: number, month: number, day: number): DtNormalizedMonth;
24
24
  /**
25
- * 12시간제를 24시간제로 변환
26
- * - 오전 12 = 0시, 오후 12 = 12
27
- * - 오전 1-11 = 1-11시, 오후 1-11 = 13-23
25
+ * Convert 12-hour format to 24-hour format
26
+ * - 12:00 AM = 0:00, 12:00 PM = 12:00
27
+ * - 1-11 AM = 1-11, 1-11 PM = 13-23
28
28
  *
29
- * @param rawHour 12시간제 (1-12)
30
- * @param isPM 오후 여부
31
- * @returns 24시간제 (0-23)
29
+ * @param rawHour 12-hour format hour (1-12)
30
+ * @param isPM Whether PM
31
+ * @returns 24-hour format hour (0-23)
32
32
  */
33
33
  export declare function convert12To24(rawHour: number, isPM: boolean): number;
34
34
  /**
35
- * 포맷 문자열에 따라 날짜/시간을 문자열로 변환한다
35
+ * Convert date/time to string according to format string
36
36
  *
37
- * @param formatString 포맷 문자열
38
- * @param args 날짜/시간 구성 요소
37
+ * @param formatString Format string
38
+ * @param args Date/time components
39
39
  *
40
40
  * @remarks
41
- * C#과 동일한 포맷 문자열을 지원한다:
41
+ * Supports the same format strings as C#:
42
42
  *
43
- * | 포맷 | 설명 | 예시 |
44
- * |------|------|------|
45
- * | yyyy | 4자리 연도 | 2024 |
46
- * | yy | 2자리 연도 | 24 |
47
- * | MM | 0으로 패딩된 | 01~12 |
48
- * | M | | 1~12 |
49
- * | ddd | 요일 (한글) | 일, 월, 화, 수, 목, 금, |
50
- * | dd | 0으로 패딩된 | 01~31 |
51
- * | d | | 1~31 |
52
- * | tt | 오전/오후 | 오전, 오후 |
53
- * | hh | 0으로 패딩된 12시간 | 01~12 |
54
- * | h | 12시간 | 1~12 |
55
- * | HH | 0으로 패딩된 24시간 | 00~23 |
56
- * | H | 24시간 | 0~23 |
57
- * | mm | 0으로 패딩된 | 00~59 |
58
- * | m | | 0~59 |
59
- * | ss | 0으로 패딩된 | 00~59 |
60
- * | s | | 0~59 |
61
- * | fff | 밀리초 (3자리) | 000~999 |
62
- * | ff | 밀리초 (2자리) | 00~99 |
63
- * | f | 밀리초 (1자리) | 0~9 |
64
- * | zzz | 타임존 오프셋 (±HH:mm) | +09:00 |
65
- * | zz | 타임존 오프셋 (±HH) | +09 |
66
- * | z | 타임존 오프셋 (±H) | +9 |
43
+ * | Format | Description | Example |
44
+ * |--------|-------------|---------|
45
+ * | yyyy | 4-digit year | 2024 |
46
+ * | yy | 2-digit year | 24 |
47
+ * | MM | Zero-padded month | 01~12 |
48
+ * | M | Month | 1~12 |
49
+ * | ddd | Day of week | Sun, Mon, Tue, Wed, Thu, Fri, Sat |
50
+ * | dd | Zero-padded day | 01~31 |
51
+ * | d | Day | 1~31 |
52
+ * | tt | AM/PM | AM, PM |
53
+ * | hh | Zero-padded 12-hour | 01~12 |
54
+ * | h | 12-hour | 1~12 |
55
+ * | HH | Zero-padded 24-hour | 00~23 |
56
+ * | H | 24-hour | 0~23 |
57
+ * | mm | Zero-padded minute | 00~59 |
58
+ * | m | Minute | 0~59 |
59
+ * | ss | Zero-padded second | 00~59 |
60
+ * | s | Second | 0~59 |
61
+ * | fff | Milliseconds (3 digits) | 000~999 |
62
+ * | ff | Milliseconds (2 digits) | 00~99 |
63
+ * | f | Milliseconds (1 digit) | 0~9 |
64
+ * | zzz | Timezone offset (±HH:mm) | +09:00 |
65
+ * | zz | Timezone offset (±HH) | +09 |
66
+ * | z | Timezone offset (±H) | +9 |
67
67
  *
68
68
  * @example
69
69
  * ```typescript
70
70
  * formatDate("yyyy-MM-dd", { year: 2024, month: 3, day: 15 });
71
71
  * // "2024-03-15"
72
72
  *
73
- * formatDate("yyyyMd (ddd)", { year: 2024, month: 3, day: 15 });
74
- * // "2024315 ()"
73
+ * formatDate("yyyy-M-d (ddd)", { year: 2024, month: 3, day: 15 });
74
+ * // "2024-3-15 (Fri)"
75
75
  *
76
76
  * formatDate("tt h:mm:ss", { hour: 14, minute: 30, second: 45 });
77
- * // "오후 2:30:45"
77
+ * // "PM 2:30:45"
78
78
  * ```
79
79
  */
80
80
  export declare function formatDate(formatString: string, args: {
@@ -63,7 +63,7 @@ function formatDate(formatString, args) {
63
63
  result = result.replace(patterns.d, dayStr);
64
64
  }
65
65
  if (hour !== void 0) {
66
- result = result.replace(patterns.tt, hour < 12 ? "\uC624\uC804" : "\uC624\uD6C4");
66
+ result = result.replace(patterns.tt, hour < 12 ? "AM" : "PM");
67
67
  const hour12 = hour % 12 || 12;
68
68
  const hour12Str = hour12.toString();
69
69
  result = result.replace(patterns.hh, hour12Str.padStart(2, "0"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/date-format.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,10 +1,10 @@
1
1
  /**
2
- * unknown 타입의 에러에서 메시지를 추출하는 유틸리티.
2
+ * Utility to extract message from unknown type error.
3
3
  *
4
- * Error 인스턴스이면 message 속성을, 아니면 String 변환을 반환한다.
4
+ * Returns the message property if it's an Error instance, otherwise returns String conversion.
5
5
  *
6
- * @param err - catch 블록의 unknown 에러
7
- * @returns 에러 메시지 문자열
6
+ * @param err - Unknown error from catch block
7
+ * @returns Error message string
8
8
  */
9
9
  export declare function errorMessage(err: unknown): string;
10
10
  //# sourceMappingURL=error.d.ts.map
@@ -1,17 +1,17 @@
1
1
  /**
2
- * 객체를 JSON 문자열로 직렬화
3
- * DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array 등 커스텀 타입 지원
2
+ * Serialize object to JSON string
3
+ * Supports custom types like DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array, etc.
4
4
  *
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 복원할 수 없음
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()
10
10
  *
11
11
  * @remarks
12
- * - 순환 참조가 있는 객체는 TypeError를 던짐
13
- * - 객체의 toJSON 메서드가 있으면 호출하여 결과를 사용함 (Date, DateTime 커스텀 타입 제외)
14
- * - 전역 프로토타입을 수정하지 않아 Worker 환경에서도 안전함
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
15
15
  */
16
16
  export declare function jsonStringify(obj: unknown, options?: {
17
17
  space?: string | number;
@@ -19,16 +19,16 @@ export declare function jsonStringify(obj: unknown, options?: {
19
19
  redactBytes?: boolean;
20
20
  }): string;
21
21
  /**
22
- * JSON 문자열을 객체로 역직렬화
23
- * DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array 등 커스텀 타입 복원
22
+ * Deserialize JSON string to object
23
+ * Restore custom types like DateTime, DateOnly, Time, Uuid, Set, Map, Error, Uint8Array, etc.
24
24
  *
25
25
  * @remarks
26
- * `__type__`과 `data` 키를 가진 객체는 타입 복원에 사용된다.
27
- * 사용자 데이터에 `{ __type__: "Date" | "DateTime" | "DateOnly" | "Time" | "Uuid" | "Set" | "Map" | "Error" | "Uint8Array", data: ... }`
28
- * 형태가 있으면 의도치 않게 타입 변환될 있으므로 주의한다.
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
29
  *
30
- * @security 개발 모드(`__DEV__`)에서만 에러 메시지에 JSON 문자열 전체가 포함된다.
31
- * 프로덕션 모드에서는 JSON 길이만 포함된다.
30
+ * @security In development mode (`__DEV__`), the error message includes the entire JSON string.
31
+ * In production mode, only JSON length is included.
32
32
  */
33
33
  export declare function jsonParse<TResult = unknown>(json: string): TResult;
34
34
  //# sourceMappingURL=json.d.ts.map