@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
package/src/utils/num.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  /**
2
- * 숫자 유틸리티 함수
2
+ * Number utility functions
3
3
  */
4
4
 
5
5
  //#region numParseInt / numParseFloat / numParseRoundedInt
6
6
 
7
7
  /**
8
- * 문자열을 정수로 파싱
9
- * 숫자가 아닌 문자(0-9, -, . 제외) 제거 후 파싱
8
+ * Parse string to integer
9
+ * Remove non-numeric characters (except 0-9, -, .) before parsing
10
10
  *
11
- * @note 소수점이 포함된 문자열은 정수 부분만 반환됩니다 (예: '12.34' → 12).
12
- * 반올림이 필요하면 {@link numParseRoundedInt} 사용하세요.
13
- * @note 문자열 중간의 `-`도 유지되므로 의도치 않은 음수가 있습니다.
14
- * 예: `"가-123나"` → `-123`
11
+ * @note Strings with decimal points return only the integer part (e.g., '12.34' → 12).
12
+ * Use {@link numParseRoundedInt} if rounding is needed.
13
+ * @note Hyphens (-) in the middle of the string are preserved, which may result in unintended negative numbers.
14
+ * Example: `"가-123나"` → `-123`
15
15
  */
16
16
  export function numParseInt(text: unknown): number | undefined {
17
17
  if (typeof text === "number") return Math.trunc(text);
@@ -24,7 +24,7 @@ export function numParseInt(text: unknown): number | undefined {
24
24
  }
25
25
 
26
26
  /**
27
- * 문자열을 실수로 파싱 반올림하여 정수 반환
27
+ * Parse string to float, then round and return integer
28
28
  */
29
29
  export function numParseRoundedInt(text: unknown): number | undefined {
30
30
  const float = numParseFloat(text);
@@ -32,8 +32,8 @@ export function numParseRoundedInt(text: unknown): number | undefined {
32
32
  }
33
33
 
34
34
  /**
35
- * 문자열을 실수로 파싱
36
- * 숫자가 아닌 문자는 제거 후 파싱
35
+ * Parse string to float
36
+ * Remove non-numeric characters before parsing
37
37
  */
38
38
  export function numParseFloat(text: unknown): number | undefined {
39
39
  if (typeof text === "number") return text;
@@ -50,21 +50,21 @@ export function numParseFloat(text: unknown): number | undefined {
50
50
  //#region numIsNullOrEmpty
51
51
 
52
52
  /**
53
- * undefined, null, 0 체크 (타입 가드)
53
+ * Check undefined, null, 0 (type guard)
54
54
  *
55
- * 타입 가드로 동작하여, true 반환 `val`이 `0 | undefined`임을 보장합니다.
56
- * false 반환 `val`이 0이 아닌 유효한 숫자임이 보장됩니다.
55
+ * Acts as a type guard, guaranteeing that if true is returned, `val` is `0 | undefined`.
56
+ * If false is returned, `val` is guaranteed to be a valid non-zero number.
57
57
  *
58
- * @param val 체크할
59
- * @returns undefined, null, 0이면 true
58
+ * @param val Value to check
59
+ * @returns true if undefined, null, or 0
60
60
  * @example
61
61
  * const count: number | undefined = getValue();
62
62
  * if (numIsNullOrEmpty(count)) {
63
63
  * // count: 0 | undefined
64
- * console.log("비어있음");
64
+ * console.log("Empty");
65
65
  * } else {
66
- * // count: number (0이 아닌 값)
67
- * console.log(`개수: ${count}`);
66
+ * // count: number (non-zero value)
67
+ * console.log(`Count: ${count}`);
68
68
  * }
69
69
  */
70
70
  export function numIsNullOrEmpty(val: number | undefined): val is 0 | undefined {
@@ -76,11 +76,11 @@ export function numIsNullOrEmpty(val: number | undefined): val is 0 | undefined
76
76
  //#region numFormat
77
77
 
78
78
  /**
79
- * 숫자를 천단위 구분자가 포함된 문자열로 포맷팅
80
- * @param val 포맷팅할 숫자
81
- * @param digit 소수점 자릿수 옵션
82
- * @param digit.max 최대 소수점 자릿수
83
- * @param digit.min 최소 소수점 자릿수 (부족하면 0으로 채움)
79
+ * Format number to string with thousand separators
80
+ * @param val Number to format
81
+ * @param digit Decimal place options
82
+ * @param digit.max Maximum decimal places
83
+ * @param digit.min Minimum decimal places (pad with 0 if insufficient)
84
84
  * @example
85
85
  * numFormat(1234.567, { max: 2 }) // "1,234.57"
86
86
  * numFormat(1234, { min: 2 }) // "1,234.00"